<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>About</title>
</head>
<body lang="EN-US">
<h2>About This Content</h2>

<p>September 26, 2008</p>
<h3>License</h3>

<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise indicated
below, the Content is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
(&quot;EPL&quot;). A copy of the EPL is available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>

<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is being redistributed by another
party (&quot;Redistributor&quot;) and different terms and conditions may apply to your use of any object code in the Content.
Check the Redistributor's license that was provided with the Content. If no such license exists, contact the Redistributor.
Unless otherwise indicated below, the terms and conditions of the EPL still apply to any source code in the Content and such
source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>

<h3>Third Party Content</h3>

<p>The Content includes items that have been sourced from third parties as set out below. If you did not receive this
Content directly from the Eclipse Foundation, the following is provided for informational purposes only, and you should look to
the Redistributor&rsquo;s license for terms and conditions of use.</p>


<!-- Apache Nutch 0.8.1 -->
<h4>Apache Nutch 0.8.1</h4>

<p>The plug-in includes software developed by The Apache Software Foundation as part of the Nutch project.</p>

<p>Your use of the Nutch code subject to the terms and conditions of the Apache License, Version 2.0. A copy of the license is
contained in the file <a href="about_files/LICENSE.txt">LICENSE</a> and is also available at <a
  href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>.
<p>The Apache attribution <a href="about_files/NOTICE.txt">NOTICE.txt</a> file is included with the Content in accordance with 4d of
the Apache License, Version 2.0.</p>

<p>Source code and further information about Apache Nutch is available at <a href="http://lucene.apache.org/nutch/">http://lucene.apache.org/nutch/</a>.</p>


<!-- Jakarta Commons HttpClient 3.0.1 -->
<h4>Jakarta Commons HttpClient 3.0.1</h4>

<p>The plug-in includes software developed by The Apache Software Foundation as part of the Jakarta Commons HttpClient project.</p>

<p>Your use of the Jakarta Commons HttpClient code subject to the terms and conditions of the Apache License, Version 2.0. A copy of the license is
contained in the file <a href="about_files/LICENSE.txt">LICENSE</a> and is also available at <a
  href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>.
<p>The Apache attribution <a href="about_files/NOTICE.txt">NOTICE.txt</a> file is included with the Content in accordance with 4d of
the Apache License, Version 2.0.</p>

<p>Source code and further information about Jakarta Commons HttpClient is available at <a href="http://hc.apache.org/httpclient-3.x/index.html">http://hc.apache.org/httpclient-3.x/index.html</a>.</p>


<!-- Commons Configuration 1.2 -->
<h4>Commons Configuration 1.2</h4>

<p>The plug-in includes software developed by The Apache Software Foundation as part of the Commons Configuration project.</p>

<p>Your use of the Commons Configuration code subject to the terms and conditions of the Apache License, Version 2.0. A copy of the license is
contained in the file <a href="about_files/LICENSE.txt">LICENSE</a> and is also available at <a
  href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>.
<p>The Apache attribution <a href="about_files/NOTICE.txt">NOTICE.txt</a> file is included with the Content in accordance with 4d of
the Apache License, Version 2.0.</p>

<p>Source code and further information about Commons Configuration is available at <a href="http://commons.apache.org/configuration/">http://commons.apache.org/configuration/</a>.</p>


<!-- Jakarta ORO 2.0.8 -->
<h4>Jakarta ORO 2.0.8</h4>

<p>The plug-in includes software developed by The Apache Software Foundation as part of the Jakarta ORO project.</p>

<p>Your use of the Jakarta ORO code subject to the terms and conditions of the Apache License, Version 1.1. A copy of the license is
contained in the file <a href="about_files/LICENSE">LICENSE</a> and is also available at <a
  href="http://www.apache.org/licenses/LICENSE-1.1">http://www.apache.org/licenses/LICENSE-1.1</a>.
<p>The Apache attribution <a href="about_files/NOTICE.txt">NOTICE.txt</a> file is included with the Content in accordance with 1 of
the Apache License, Version 1.1.</p>

<p>Source code and further information about Jakarta ORO is available at <a href="http://jakarta.apache.org/oro/">http://jakarta.apache.org/oro/</a>.</p>


<!-- TagSoup 1.2 -->
<h4>TagSoup 1.2</h4>

<p>The plug-in includes software developed by the TagSoup project.</p>

<p>Your use of the TagSoup code subject to the terms and conditions of the Apache License, Version 2.0. A copy of the license is
contained in the file <a href="about_files/LICENSE.txt">LICENSE</a> and is also available at <a
  href="http://www.apache.org/licenses/LICENSE-2.0.html">http://www.apache.org/licenses/LICENSE-2.0.html</a>.

<p>Source code and further information about TagSoup is available at <a href="http://home.ccil.org/~cowan/XML/tagsoup/">http://home.ccil.org/~cowan/XML/tagsoup/</a>.</p>


</body>
</html>