<?xml version="1.0" encoding="utf-8"?>
<!--

 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.

-->

<module>
  <inherits name="com.google.gwt.user.User"/>
  <inherits name="org.waveprotocol.wave.client.editor.Editor"/>
  <inherits name="org.waveprotocol.wave.client.editor.testing.Testing"/>
  <inherits name="org.waveprotocol.wave.client.editor.restrict_permutations"/>
  <inherits name="org.waveprotocol.wave.client.widget.popup.simple.Simple"/>
  <inherits name="org.waveprotocol.wave.model.Model"/>
  <inherits name="org.waveprotocol.wave.model.conversation.Conversation"/>
   
  <source path=""/>
   
  <source path="img"/>
   
  <source path="paragraph"/>
    
</module>
