<?php  																														require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php");	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/nav.class.php"); 	require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/menu.class.php"); 	$App 	= new App();	$Nav	= new Nav();	$Menu 	= new Menu();		include($App->getProjectCommon());    # All on the same line to unclutter the user's desktop'
/*******************************************************************************
 * Copyright (c) 2009, 2013
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *    Stephan Herrmann
 *******************************************************************************/

	$pageTitle 		= "Object Teams - Download of Previous Releases";
	$App->AddExtraHtmlHeader('<link rel="stylesheet" type="text/css" href="/objectteams/css/style.css"/>');
	$App->AddExtraHtmlHeader('<style type="text/css">.col-md-4 { width: 20%; !important; }</style>');
	
	$Nav->addNavSeparator("On this page", "/objectteams/download-prev.php", "_self");
	$Nav->addCustomNav("Releases 2.1.x", "#R21", "_self", 3);
	$Nav->addCustomNav("Releases 2.0.x", "#R20", "_self", 3);
	$Nav->addCustomNav("Releases 0.7.x", "#R07", "_self", 3);
	$Nav->addCustomNav("How To Install", "#howto", 3);
	$Nav->addCustomNav("Even&nbsp;Older", "#previous", 3);
	$Nav->addCustomNav("Retention Policy", "#retention", 3);
	
	$Nav->addNavSeparator("Documentation Quicklinks", "");
	$Nav->addCustomNav("Quick-Start", 	"http://wiki.eclipse.org/Object_Teams_Quick-Start", "_blank", 2);
	$Nav->addCustomNav("User Guide", 	"http://help.eclipse.org/topic/org.eclipse.objectteams.otdt.doc/guide/develop.html", "_blank", 2);
	$Nav->addCustomNav("Language&nbsp;Definition", 	"http://help.eclipse.org/topic/org.eclipse.objectteams.otdt.doc/guide/otjld/def/index.html", "_blank", 2);

	
	$html  = <<<EOHTML
<div id="midcolumn" style="width:80%; !important;>
	<h1>$pageTitle</h1>
	<p>All downloads are provided under the terms and conditions of the <a href="/legal/epl/notice.php">Eclipse Foundation Software User Agreement</a> unless otherwise specified.</p>
	
		<ul class="novaArrow">
        <li><a href="features.php">Features of the Object Teams Development Tooling (OTDT)</a></li>
        </ul>
	
	<h2><a name="R21"></a>Stable Release 2.1.x for Eclipse 4.2/3.8 (Juno)</h2>
        <table class="btn-warning orange-box" style="margin:0px;padding:4px;width:100%">
            <tr>
                <td><img src="images/Idea.png"></td>
                <td style="width:100%;padding-left:6px;">
               		Object Teams participated in the <b><a href="http://www.eclipse.org/juno">Juno simultaneous release</a></b> train.
					This means, no further URL must be configured for installing the OTDT and/or OT/Equinox,
					simply select the <a href="http://download.eclipse.org/releases/juno">Juno - http://download.eclipse.org/releases/juno</a> 
					software site and open the <b>Programming Languages</b> category.
                </td>
            </tr>
        </table>

        <table border="0" style="margin-left:30px;margin-top:10px;margin-bottom:10px;">
            <tbody><tr>
                <td><a href="http://download.eclipse.org/objectteams/updates/ot2.1"><img src="http://dev.eclipse.org/huge_icons/actions/go-bottom.png" alt="Download" align="left"></a></td>
                <td style="width: 100%; padding-left: 6px;">A specific repository containing just Object Teams 2.1.x  can be found at
			<a href="http://download.eclipse.org/objectteams/updates/ot2.1">http://download.eclipse.org/objectteams/updates/ot2.1</a>
                </td>
            </tr>
        </tbody></table>
        <div style="margin-left:30px;" class="block-box block-box-classic">
            <h3 style="margin-bottom:2px;">Releases 2.1.x:</h3>
            <table width="100%">
	            <tbody><tr valign="top"><th>&nbsp;</th><th class="dl-cell">Required Eclipse Version</th><th class="dl-cell">Command Line Compiler</th>
							<th class="dl-cell">New&nbsp;&amp; Noteworthy</th><th class="dl-cell">Bugs Fixed</th></tr>
	            <tr><td colspan="5" class="release-cell"><strong>OTDT 2.1.2 Service Release</strong> &mdash; (2013/03/01)</td></tr>
                <tr><td style="width: 50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops4/R-4.2.2-201302041200/"><img src="images/arrow.gif">Eclipse&nbsp;SDK&nbsp;4.2.2</a></td>
                    <td class="dl-cell" style="min-width: 110px;padding-left:5px;"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-M-2.1.2-201301271215.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell">&nbsp;</td>
                    <td class="dl-cell">&nbsp;</td>
                </tr>
	            <tr><td colspan="5" class="release-cell"><strong>OTDT 2.1.1 Service Release</strong> &mdash; (2012/09/29)</td></tr>
                <tr><td style="width: 50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops4/R-4.2.1-201209141800/"><img src="images/arrow.gif">Eclipse&nbsp;SDK&nbsp;4.2.1</a></td>
                    <td class="dl-cell" style="min-width: 110px;padding-left:5px;"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-S-2.1.1-201209011843.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell">&nbsp;</td>
                    <td class="dl-cell">&nbsp;</td>
                </tr>
	            <tr><td colspan="5" class="release-cell"><strong>OTDT 2.1.0 Final Release</strong> &mdash; (2012/06/27)</td></tr>
                <tr><td style="width: 50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops4/R-4.2-201206081400/index.php"><img src="images/arrow.gif">Eclipse&nbsp;SDK&nbsp;4.2</a></td>
                    <td class="dl-cell" style="min-width: 110px;padding-left:5px;"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-R-2.1.0-201206090440.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell"><a href="http://www.eclipse.org/objectteams/pages/new_in_2.1.html"><img src="http://www.eclipse.org/jdt/core/images/new.png"></a></td>
                    <td class="dl-cell"><a href="https://bugs.eclipse.org/bugs/buglist.cgi?list_id=2099361;resolution=FIXED;classification=Tools;query_format=advanced;target_milestone=2.1%20M1;target_milestone=2.1%20M2;target_milestone=2.1%20M3;target_milestone=2.1%20M4;target_milestone=2.1%20M5;target_milestone=2.1%20M6;target_milestone=2.1%20M7;target_milestone=2.1%20RC1;target_milestone=2.1%20RC2;target_milestone=2.1%20RC3;target_milestone=2.1%20RC4;target_milestone=2.1;product=Objectteams"><img title="Bugs fixed for 2.1" src="images/bug.gif"></a></td>
                </tr>
            </tbody></table>
        </div>

	<h2><a name="R20"></a>Stable Release 2.0.x for Eclipse 3.7 (Indigo)</h2>
        <table  class="btn-warning orange-box" style="margin:0px;padding:4px;width:100%">
            <tr>
                <td><img src="images/Idea.png"></td>
                <td style="width:100%;padding-left:6px;">
               		Object Teams participated in the <b>Indigo simultaneous release</b> train.
					This means, no further URL must be configured for installing the OTDT and/or OT/Equinox,
					simply select the <a href="http://download.eclipse.org/releases/indigo">Indigo - http://download.eclipse.org/releases/indigo</a> 
					software site and open the <b>Programming Languages</b> category.
                </td>
            </tr>
        </table>
        <blockquote style="margin:20px;"><b>Version numbers:</b><em>Before moving to Eclipse.org the project shipped releases 
				up-to version 1.4.0 from <a href="http://www.objectteams.org/distrib/otdt.html">objectteams.org</a>. 
				Then, during the "incubation" phase at Eclipse.org the project was obliged to use version numbers below 1.0,
				thus we released 0.7.0 - 0.7.2 (Incubation) and some milestones 0.8 Mx (Incubation).
				With the project <b>graduation</b> on June 8, 2011, we switched to <b>version 2.0.0</b>,
				indicating the advance over the aforementioned release 1.4.0.</em>	 
			</blockquote>
        <table border="0">
            <tbody><tr>
                <td><a href="http://download.eclipse.org/objectteams/updates/2.0"><img src="http://dev.eclipse.org/huge_icons/actions/go-bottom.png" alt="Download" align="left"></a></td>
                <td style="width: 100%; padding-left: 6px;">A specific repository containing just Object Teams 2.0.x can be found at
			<a href="http://download.eclipse.org/objectteams/updates/2.0">http://download.eclipse.org/objectteams/updates/2.0</a>
                </td>
            </tr>
        </tbody></table>
        <div style="margin-left:30px;" class="block-box block-box-classic">
            <h3 style="margin-bottom:2px;">Releases 2.0.x:</h3>
            <table width="100%">
	            <tbody><tr valign="top"><th>&nbsp;</th><th class="dl-cell">Required Eclipse Version</th><th class="dl-cell">Command Line Compiler</th><th class="dl-cell">New&nbsp;&amp; Noteworthy</th><th class="dl-cell">Bugs Fixed</th></tr>
	            <tr><td colspan="5" class="release-cell"><strong>OTDT 2.0.2 (Service Release 2)</strong> &mdash; (2012/02/24)</td></tr>
                <tr><td style="width: 50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.7.2-201202080800/index.php"><img src="images/arrow.gif">Eclipse&nbsp;SDK&nbsp;3.7.2</a></td>
                    <td class="dl-cell" style="min-width: 110px;padding-left:5px;"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-R-2.0.2-201201310613.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell">&nbsp;</td>
                    <td class="dl-cell"><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;resolution=FIXED;target_milestone=2.0.2;product=Objectteams;classification=Tools"><img title="Bugs fixed for 2.0.2" src="images/bug.gif"></a></td>
                </tr>
	            <tr><td colspan="5" class="release-cell"><strong>OTDT 2.0.1 (Service Release 1)</strong> &mdash; (2011/09/23)</td></tr>
                <tr><td style="width: 50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.7.1-201109091335/index.php"><img src="images/arrow.gif">Eclipse&nbsp;SDK&nbsp;3.7.1</a></td>
                    <td class="dl-cell" style="min-width: 110px;padding-left:5px;"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-R-2.0.1-201109101022.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell">&nbsp;</td>
                    <td class="dl-cell"><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;resolution=FIXED;target_milestone=2.0.1;product=Objectteams;classification=Tools"><img title="Bugs fixed for 2.0.1" src="images/bug.gif"></a></td>
                </tr>
	            <tr><td colspan="5" class="release-cell"><strong>OTDT 2.0.0 Final Release</strong> &mdash; (2011/06/22)</td></tr>
                <tr><td style="width: 50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.7-201106131736/index.php"><img src="images/arrow.gif">Eclipse&nbsp;SDK&nbsp;3.7</a></td>
                    <td class="dl-cell" style="min-width: 110px;padding-left:5px;"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-R-2.0.0-201106070718.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell"><a href="http://www.eclipse.org/objectteams/pages/new_in_2.0.html"><img src="http://www.eclipse.org/jdt/core/images/new.png"></a></td>
                    <td class="dl-cell"><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;resolution=FIXED;target_milestone=0.8%20M3;target_milestone=0.8%20M4;target_milestone=0.8%20M5;target_milestone=0.8%20M6;target_milestone=0.8%20M7;target_milestone=0.8;target_milestone=2.0%20RC1;target_milestone=2.0%20RC2;target_milestone=2.0%20RC3;target_milestone=2.0%20RC4;target_milestone=2.0;product=Objectteams;classification=Tools"><img title="Bugs fixed for 2.0" src="images/bug.gif"></a></td>
                </tr>
            </tbody></table>
        </div>
        <!--div id="SR" style="margin-left:30px;" class="sideitem">
            <h6>Release candidates towards SR1:</h6>
            <table width="100%">
	            <tbody><tr valign="top"><th>&nbsp;</th><th class="dl-cell">Required Eclipse Version</th><th class="dl-cell">Command Line Compiler</th><th class="dl-cell">New&nbsp;&amp; Noteworthy</th><th class="dl-cell">Bugs Fixed</th></tr>
	            <tr><td colspan="5"><strong>OTDT 2.0.1 RC2</strong> &mdash; (2011/08/27)</td></tr>
                <tr><td style="width: 50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops/M20110825-0847/index.php"><img src="images/arrow.gif">Eclipse&nbsp;SDK&nbsp;3.7.1RC2</a></td>
                    <td style="width: 105px;" class="dl-cell"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-S-2.0.1-201108270525.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell"><a href="http://www.eclipse.org/objectteams/pages/new_in_2.0.html#language"><img src="http://www.eclipse.org/jdt/core/images/new.png"></a></td>
                    <td class="dl-cell"><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;resolution=FIXED;target_milestone=2.0.1;product=Objectteams;classification=Tools"><img title="Bugs fixed for 2.0.1" src="images/bug.gif"></a></td>
                </tr>
	            <tr><td colspan="5"><strong>OTDT 2.0.1 RC1</strong> &mdash; (2011/08/19)</td></tr>
                <tr><td style="width: 50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops/M20110810-0800/index.php"><img src="images/arrow.gif">Eclipse&nbsp;SDK&nbsp;3.7.1RC1</a></td>
                    <td style="width: 105px;" class="dl-cell"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-I-2.0.1-201108161749.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell"><a href="http://www.eclipse.org/objectteams/pages/new_in_2.0.html#language"><img src="http://www.eclipse.org/jdt/core/images/new.png"></a></td>
                    <td class="dl-cell"><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;resolution=FIXED;target_milestone=2.0.1;product=Objectteams;classification=Tools"><img title="Bugs fixed for 2.0.1" src="images/bug.gif"></a></td>
                </tr>
            </tbody></table>
        </div-->


	<h2><a name="R07"></a>Releases 0.7.x for Eclipse 3.6.x (Helios)</h2>
                <p>During the incubation phase of the Object Teams project, releases had to be numbered 0.7.x,
                   which are the direct successors of the stable release 1.4.0 from <a href="http://www.objectteams.org/distrib/otdt.html">objectteams.org</a>.</p>
        <table border="0">
            <tbody><tr>
                <td><a href="http://download.eclipse.org/objectteams/updates/0.7"><img src="http://dev.eclipse.org/huge_icons/actions/go-bottom.png" alt="Download" align="left"></a></td>
                <td style="width: 100%; padding-left: 6px;"><b>Update site:</b> <a href="http://download.eclipse.org/objectteams/updates/0.7">http://download.eclipse.org/objectteams/updates/0.7</a>
                </td>
            </tr>
        </tbody></table>
        <div  style="margin-left:30px;" class="block-box block-box-classic">
            <h3 style="margin-bottom:2px;">Releases 0.7.x:</h3>
            <table width="100%">
	            <tr valign="top"><th>&nbsp;</th><th class="dl-cell">Required Eclipse Version</th><th class="dl-cell">Command Line Compiler</th><th class="dl-cell">New&nbsp;&amp; Noteworthy</th><th class="dl-cell">Bugs Fixed</th></tr>
	            <tr><td colspan=5 class="release-cell"><strong>OTDT 0.7.2 Release</strong> &mdash; (2011/02/25)</td></tr>
                <tr><td style="width:50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/index.php"><img src="images/arrow.gif">Eclipse SDK 3.6.2</a></td>
                    <td class="dl-cell"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-R-0.7.2-201102150409.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell"><em>no new features</em></a></td>
                    <td class="dl-cell"><a href="https://bugs.eclipse.org/bugs/buglist.cgi?quicksearch=330304%2C331702%2C326042"><img title="Bugs fixed for 0.7.2 (since 0.7.1)" src="images/bug.gif"></a></td>
                </tr>
	            <tr><td colspan=5 class="release-cell"><strong>OTDT 0.7.1 Release</strong> &mdash; (2010/09/24)</td></tr>
                <tr><td style="width:50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/index.php"><img src="images/arrow.gif">Eclipse SDK 3.6.1</a></td>
                    <td class="dl-cell"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-R-0.7.1-201009231848.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell"><a href="pages/new_in_0.7.1.html"><img src="http://www.eclipse.org/jdt/core/images/new.png"></a></td>
                    <td class="dl-cell"><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;resolution=FIXED;classification=Tools;product=Objectteams;target_milestone=0.7.1;"><img title="Bugs fixed for 0.7.1 (since 0.7.0)" src="images/bug.gif"></a></td>
                </tr>
	            <tr><td colspan=5 class="release-cell"><strong>OTDT 0.7.0 Release</strong> &mdash; (2010/07/07)</td></tr>
                <tr><td style="width:50px;">&nbsp;</td>
                    <td class="dl-cell"><a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/index.php"><img src="images/arrow.gif">Eclipse SDK 3.6.0</a></td>
                    <td class="dl-cell"><a href="http://www.eclipse.org/downloads/download.php?file=/objectteams/ecotj/ecotj-R-0.7.0-201007050922.jar"><img src="images/otdt/jar_obj.gif" valign="middle"> ecotj.jar</a></td>
                    <td class="dl-cell"><a href="pages/new_in_0.7.html"><img src="http://www.eclipse.org/jdt/core/images/new.png"></a></td>
                    <td class="dl-cell"><a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;resolution=FIXED;classification=Tools;product=Objectteams;target_milestone=0.7%20M1;target_milestone=0.7%20M2;target_milestone=0.7%20M3;target_milestone=0.7%20M4;target_milestone=0.7"><img title="Bugs fixed for 0.7 (since 1.4)" src="images/bug.gif"></a></td>
                </tr>
                <tr><td>&nbsp;</td></tr>
	            <tr><td colspan=4><strong><a href="pages/archive/download_pre_0.7.php">Archived Milestone Releases</a></strong> &mdash; (as of 2010/06/23)</td></tr>
            </table>
            <h6>Common Documentation:</h6>
            <ul>
                    <li>See this <a href="http://wiki.eclipse.org/OTHowtos/Migrating_Projects_To_0.7">HowTo</a> for migrating your projects from an older tool version (from objectteams.org)</li>
            </ul>
        </div>
	
	<h2><a name="howto"></a>Howto Install</h2>
	<strong>Nothing special, just...</strong>
	<ol>
	<li>Install <a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/index.php">Eclipse SDK 3.6.2</a> (you may also use your favorite Eclipse Package but it has to be exactly 3.6.2 for OTDT 0.7.2).</li>
	<li>Open "<code>Help &gt; Install New Software ...</code>"</li> 
	<li>Add <a href="http://download.eclipse.org/objectteams/updates/0.7">http://download.eclipse.org/objectteams/updates/0.7</a> as a new site to work with</li>
	<li>Select both provided features
		<ul>
		<li><strong>Object Teams Development Tooling (Incubation)</strong>: the IDE for Object Teams</li>
		<li><strong>Object Teams Equinox Integration (Incubation)</strong>: runtime required by the above feature</li>
		</ul>
		or simply check the parent category <strong>"OTDT 0.7.x (Incubation) based on Eclipse 3.6"</strong>.</li>
	<li><i>Recommended: un-check "Contact all update sites during install to find required software"</i></li>
	<li>Click through the wizard upto and including the required restart of Eclipse.</li>
	</ol>
		 
	<strong>Some hints on how you may check the installation:</strong>
	<ul>
	<li>Browse content from the welcome page or from help ("Object Teams Development User Guide").</li>
	<li>Find new icons in "About Eclipse SDK" dialog</li>
	<li>From this about dialog click through to the plug-ins of "Eclipse RCP" and scroll to the "Workbench" plug-in:<br>
	    You should see a note that this plug-in is adapted by two Object Teams plug-ins.</li>
	<li>Install a shipped OT/J example via "<code>File &gt; New &gt; Example ...</code>", one of
		<ul>
		<li>Stop Watch Example (easiest).</li>
		<li>Observer Example (straight forward).</li>
		<li>Flight Bonus Example (comprehensive, high density of OT/J concepts).</li>
		<li>Order System Example (comprehensive, not quite as dense).</li>
		<li>ATM Example (special demo for guard predicates).</li>
		</ul></li>
	</ul>

	<h2><a name="previous"></a>Previous Releases for Eclipse 3.3 - 3.6 M6</h2>
		<p>For older versions, you may still
		consult our <a href="http://www.objectteams.org/distrib/otdt.html">old download page</a> at <b>www.objectteams.org</b> for existing releases.</p>		

	<h2><a name="retention"></a>Retention Policy</h2>
	<ul>
	<li>Official releases (incl. service releases) will never be removed from the server<br>(old versions may be moved to the archive site, though)</li>
	<li>Milestone builds will be kept until the final release</li>
	<li>No such promises are made for any intermediate ("unstable") versions</li>
	</ul> 
	
</div> <!-- midcolumn -->

EOHTML;
	# Generate the web page
	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
?>