Google Web Toolkit @GWT_VERSION@
Copyright (c) Google, Inc. 2007.  All rights reserved.
Visit Google Code (http://code.google.com/webtoolkit/).

This product includes software developed by:
 - The Apache Software Foundation (http://www.apache.org/).
   - Tomcat (http://tomcat.apache.org/) with modifications
   - Xerces (http://xerces.apache.org/)
   - Tapestry (http://tapestry.apache.org/)
 - The Eclipse Foundation (http://www.eclipse.org/).
   - Java Development Tools (http://www.eclipse.org/jdt/)
   - Standard Widget Toolkit (http://www.eclipse.org/swt/) with modifications
 - The JFreeChart project (http://www.jfree.org/jfreechart/)
 - The Mozilla Foundation (http://www.mozilla.org/).
   - Mozilla 1.7.12 (http://www.mozilla.org/releases/mozilla1.7.12/)
   - Rhino (http://www.mozilla.org/rhino/) with modifications
 - The SAX project (http://www.saxproject.org/)
 - The WebKit Open Source Project (http://www.webkit.org)
 - The W3C consortium (http://www.w3.org/)

For source availability and license information see COPYING.
