<!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>January 2, 2014</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>

<h4>Cocoa Binding</h4>

<p>The &quot;Cocoa Binding&quot; is a binding to the Cocoa API.  The Content may include any or all of three portions of the Cocoa Binding:</p>

<p>The following files in the plug-in JAR shall be defined as the native code portion of the Cocoa Binding:</p>
<ul>
	<li>libswt-pi-cocoa-xxxx.jnilib (where &quot;xxxx&quot; is the version number)</li>	
</ul>

<p>The following files in both the plug-in JAR and the src.zip shall be defined respectively as the bytecode and source code portions of the Cocoa Binding:</p>

<ul>
	<li>The contents of the directory org/eclipse/swt/internal/cocoa (but not including any sub-directories)</li>
</ul>

<p>The Cocoa Binding contains portions of Apple Computer's Cocoa API header files which are:</p>

<blockquote>Copyright &copy; 1983-2002 Apple Computer, Inc.</blockquote>

<p>In addition to the terms and conditions of the EPL, the following notice applies to your use of the Cocoa Binding and must be retained and reproduced in its entirety with all redistributions of the
Cocoa Binding:</p>

<blockquote>
Copyright &copy; 2004 Apple Computer, Inc.<br>
This text and the following notice must be retained and reproduced in their entirety with all redistributions of this project:<br><br>
<strong>IMPORTANT NOTICE</strong>: This project, which consists of certain Java bindings, includes or otherwise makes references to application programming interfaces
(APIs) that are owned by Apple Computer, Inc., including but not limited to certain Apple Cocoa APIs. While you may use, copy, modify and redistribute
this Java bindings project in accordance with the terms of the Eclipse Public License (EPL) version 1.0, you are not granted any rights under any Apple or
third party intellectual property rights (including without limitation, patent, copyright, trademark and trade secret rights) to Apple's Cocoa API header files
themselves, nor to any underlying implementations of any Apple Cocoa APIs or to any functionality that is invoked by calling any of those APIs. Without
limiting the generality of the foregoing, you understand that it is not Apple's intention by way of this project to authorize the reverse engineering of the Java
bindings into Apple's original Cocoa.h header files.
</blockquote>

<h4>Mozilla Binding</h4>

<p>The &quot;Mozilla Binding&quot; is a binding to the Mozilla API.  The Content may include any or all of the following files:</p>

<p>The following files in the plug-in JAR shall be defined as the native code portion of the Mozilla Binding:</p>
<ul>
	<li>libswt-xulrunner-cocoa-xxxx.so (where &quot;xxxx&quot; is the version number)</li>
	<li>libswt-xulrunner24-cocoa-xxxx.so (where &quot;xxxx&quot; is the version number)</li>
	<li>libswt-xpcominit-cocoa-xxxx.so (where &quot;xxxx&quot; is the version number)</li>
</ul>

<p>The following files in both the plug-in JAR and the src.zip shall be defined respectively as the bytecode and source code portions of the Mozilla Binding:</p>
<ul>
	<li>The contents of the directory org/eclipse/swt/internal/mozilla (but not including any sub-directories)</li>
</ul>

<p>The Mozilla Binding contains portions of Mozilla (&quot;Mozilla&quot;).  Mozilla is made available by Mozilla.org.  Use of Mozilla is governed by the terms and
conditions of the Mozilla Public License Version 2.0 (&quot;MPL&quot;).  A copy of the MPL is provided with the Content (<a href="about_files/mpl-v20.txt" target="_blank">mpl-v20.txt</a>) and is also available at
<a href="http://www.mozilla.org/MPL/2.0/" target="_blank">http://www.mozilla.org/MPL/2.0/</a>.</p>

<h4>XULRunner 24 (subset, derivative work)</h4>

The library swt-xulrunner24-cocoa-xxxx.dll (where &quot;xxxx&quot; is the version number) contains a small portion of XULRunner 24 content (header files) that have
been modified from the Original Code provided by mozilla.org, and whose Initial Developer is Netscape Communications Corporation. Use of this code is governed by
the terms and conditions of the Mozilla Public License Version 2.0 ("MPL").  A copy of the MPL is provided with the Content (<a href="./about_files/mpl-v20.txt" target="_blank">mpl-v20.txt</a>)
and is also available at <a href="http://www.mozilla.org/MPL/2.0/" target="_blank">http://www.mozilla.org/MPL/2.0/</a>.
<p>The changed files are:
<ul>
  <li>org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIGlobalObject_24.h</code>
  <li>org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptContext_24.h</code>
  <li>org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptGlobalObject_24.h</code>
</ul>
Changes to the original files were made by SWT on September 18, 2013 and are marked with trailing comment <em>&quot;//SWT-20130918&quot;</em>.

<h4>XULRunner 1.9 (subset, derivative work)</h4>

The library libswt-xulrunner-cocoa-xxxx.jnilib (where &quot;xxxx&quot; is the version number) contains a small portion of XULRunner 1.9 content (header files) that have
been modified from the Original Code provided by mozilla.org, and whose Initial Developer is Netscape Communications Corporation. Use of this code is governed by
the terms and conditions of the Mozilla Public License Version 1.1 ("MPL").  A copy of the MPL is provided with the Content (<a href="./about_files/mpl-v11.txt" target="_blank">mpl-v11.txt</a>)
and is also available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html" target="_blank">http://www.mozilla.org/MPL/MPL-1.1.html</a>.
<p>The changed files are:
<ul>
  <li>org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptContext.h</code>
  <li>org.eclipse.swt/Eclipse SWT Mozilla/common/library/nsIScriptGlobalObject.h</code>
</ul>
Changes to the original files were made by SWT on April 7, 2009 and are marked with trailing comment <em>&quot;//SWT-20090407&quot;</em>.

<h4>Independent JPEG Group's JPEG software release 6b</h4>

<p>This software is based in part on the work of the Independent JPEG Group's JPEG software release 6b (&quot;LIBJPEG&quot;).
LIBJPEG was used to implement the decoding of JPEG format files in Java (TM).  The Content does NOT include any portion of the LIBJPEG file ansi2knr.c.</p>

<p>Your use of LIBJPEG is subject to the terms and conditions located in the <a href="about_files/IJG_README">about_files/IJG_README</a> file which is included
with the Content.</p>

<p>The IJG's website is located at <a href="http://ijg.org/" target="_blank">http://ijg.org</a>.</p>

<p>The class org.eclipse.swt.internal.image.JPEGFileFormat is based on following files from LIBJPEG:</p>

<ul>
    <li>cderror.h</li>
    <li>cdjpeg.h</li>
    <li>jchuff.h</li>
    <li>jdcolor.c</li>
    <li>jdct.h</li>
    <li>jdhuff.h</li>
    <li>jerror.h</li>
    <li>jidctint.c</li>
    <li>jinclude.h</li>
    <li>jmemsys.h</li>
    <li>jmorecfg.h</li>
    <li>jpegint.h</li>
    <li>jpeglib.h</li>
    <li>jversion.h</li>
    <li>transupp.h</li>
</ul>

<p>The class org.eclipse.swt.internal.image.JPEGDecoder is based on the following files from LIBJPEG:</p>

<ul>
	<li>jcapimin.c</li>
	<li>jcapistd.c</li>
	<li>jccoefct.c</li>
	<li>jccolor.c</li>
	<li>jcdctmgr.c</li>
	<li>jchuff.c</li>
	<li>jcinit.c</li>
	<li>jcmainct.c</li>
	<li>jcmarker.c</li>
	<li>jcmaster.c</li>
	<li>jcomapi.c</li>
	<li>jcparam.c</li>
	<li>jcphuff.c</li>
	<li>jcprepct.c</li>
	<li>jcsample.c</li>
	<li>jctrans.c</li>
	<li>jdapimin.c</li>
	<li>jdapistd.c</li>
	<li>jdatadst.c</li>
	<li>jdatasrc.c</li>
	<li>jdcoefct.c</li>
	<li>jdcolor.c</li>
	<li>jddctmgr.c</li>
	<li>jdhuff.c</li>
	<li>jdinput.c</li>
	<li>jdmainct.c</li>
	<li>jdmarker.c</li>
	<li>jdmaster.c</li>
	<li>jdmerge.c</li>
	<li>jdphuff.c</li>
	<li>jdpostct.c</li>
	<li>jdsample.c</li>
	<li>jdtrans.c</li>
	<li>jerror.c</li>
	<li>jfdctflt.c</li>
	<li>jfdctfst.c</li>
	<li>jfdctint.c</li>
	<li>jidctflt.c</li>
	<li>jidctfst.c</li>
	<li>jidctint.c</li>
	<li>jidctred.c</li>
	<li>jpegtran.c</li>
	<li>jquant1.c</li>
	<li>jquant2.c</li>
	<li>jutils.c</li>
	<li>cderror.h</li>
	<li>cdjpeg.h</li>
	<li>jchuff.h</li>
	<li>jconfig.h</li>
	<li>jdct.h</li>
	<li>jdhuff.h</li>
	<li>jerror.h</li>
	<li>jinclude.h</li>
	<li>jmorecfg.h</li>
	<li>jpegint.h</li>
	<li>jpeglib.h</li>
	<li>jversion.h</li>
	<li>transupp.h</li>
</ul>
	
<p>The following changes were made to the LIBJPEG code in the Content:</p>

<ol>
	<li>In Java, pointer math is not allowed so indexing was used instead.</li>
	<li>Function pointers were replaced with switch statements.</li>
	<li>The virtual memory, tracing and progress monitoring were removed.</li>
	<li>The error handling was simplified and now uses Java exceptions.</li>
</ol>

<h4>PuTTY 0.58 (derivative work)</h4>

<p>Portions of the SWT class org/eclipse/swt/internal/image/PngDeflater are based on PuTTY's sshzlib.c. PuTTY is made available by Mozilla.org.  Use of PuTTY is governed by the terms and
conditions of the the following MIT-style license:  </p>
<blockquote>
  <p><em>PuTTY is copyright 1997-2007 Simon Tatham.</em> </p>
  <p><em>Portions copyright Robert de Bath, Joris van Rantwijk, Delian  Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas Barry,  Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, Markus Kuhn,  and CORE SDI S.A.</em> </p>
  <p><em>Permission is hereby granted, free of charge, to any person  obtaining a copy of this software and associated documentation files  (the &quot;Software&quot;), to deal in the Software without restriction,  including without limitation the rights to use, copy, modify, merge,  publish, distribute, sublicense, and/or sell copies of the Software,  and to permit persons to whom the Software is furnished to do so,  subject to the following conditions:</em> </p>
  <p><em>The above copyright notice and this permission notice shall be  included in all copies or substantial portions of the Software.</em> </p>
  <p><em>THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND  NONINFRINGEMENT.  IN NO EVENT SHALL SIMON TATHAM BE LIABLE FOR ANY  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</em> </p>
</blockquote>
<p>A copy of the license is also available at <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/licence.html" target="_blank">http://www.chiark.greenend.org.uk/~sgtatham/putty/licence.html</a>.</p>

<p><small>Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.</small></p>

</body>
</html>