diff --git a/development/plans/eclipse_project_plan_4_18.xml b/development/plans/eclipse_project_plan_4_18.xml
index 46be476..6968dc7 100644
--- a/development/plans/eclipse_project_plan_4_18.xml
+++ b/development/plans/eclipse_project_plan_4_18.xml
@@ -123,9 +123,8 @@
 <p>PMC approval is required for API changes and additions after M3.</p>
 <p>Dates for builds and test passes after M3 will be available in the 
 Eclipse 4.18 Endgame Plan.
-<!--
+
 <a href="http://www.eclipse.org/eclipse/development/plans/freeze_plan_4_18.php">Eclipse 4.18 Endgame Plan</a>.
--->
 
 </p>
 </div>
diff --git a/development/plans/eclipse_project_plan_4_19.xml b/development/plans/eclipse_project_plan_4_19.xml
index cc1fca3..dfe5c23 100644
--- a/development/plans/eclipse_project_plan_4_19.xml
+++ b/development/plans/eclipse_project_plan_4_19.xml
@@ -123,9 +123,7 @@
 <p>PMC approval is required for API changes and additions after M3.</p>
 <p>Dates for builds and test passes after M3 will be available in the 
 Eclipse 4.19 Endgame Plan.
-<!--
 <a href="http://www.eclipse.org/eclipse/development/plans/freeze_plan_4_19.php">Eclipse 4.19 Endgame Plan</a>.
--->
 
 </p>
 </div>
diff --git a/development/plans/freeze_plan_4_18.php b/development/plans/freeze_plan_4_18.php
index dbff962..bc26346 100644
--- a/development/plans/freeze_plan_4_18.php
+++ b/development/plans/freeze_plan_4_18.php
@@ -18,7 +18,7 @@
 	# Begin: page-specific settings.  Change these. 
 	$pageTitle 		= "Eclipse 2020-12 (4.18) Endgame Plan";
 	$pageKeywords	= "eclipse, 4.18, 2020-12, milestone, schedule, endgame";
-	$pageAuthor		= "Dani Megert";
+	$pageAuthor		= "Sravan Kumar Lakkimsetti";
 	
 	# Add page-specific Nav bars here
 	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
@@ -199,7 +199,7 @@
 	
 			<strong>2020-12 (4.18) Release</strong>
 			<p>The 2020-12 (4.18) release should be complete and available for download by 
-	              September 16, 2020 as part of the <a href="https://wiki.eclipse.org/Category:SimRel-2020-12">2020-12 Simultaneous Release</a>. If product teams intending 
+	              December 16, 2020 as part of the <a href="https://wiki.eclipse.org/Category:SimRel-2020-12">2020-12 Simultaneous Release</a>. If product teams intending 
 	              to ship on 2020-12 (4.18) uncover further serious defects during the endgame, 
 	              we may schedule additional release candidate builds to incorporate fixes.
 			</p>    
diff --git a/development/plans/freeze_plan_4_19.php b/development/plans/freeze_plan_4_19.php
new file mode 100644
index 0000000..d331b62
--- /dev/null
+++ b/development/plans/freeze_plan_4_19.php
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<?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'
+
+	#*****************************************************************************
+	#
+	# index.php
+	#
+	# Author: 		Sravan Kumar Lakkimsetti
+	# Date:			2021-02-18
+	#
+	# Description: Eclipse project 4.19 release freeze plan
+	#
+	#
+	#****************************************************************************
+	
+	#
+	# Begin: page-specific settings.  Change these. 
+	$pageTitle 		= "Eclipse 2021-03 (4.19) Endgame Plan";
+	$pageKeywords	= "eclipse, 4.19, 2021-03, milestone, schedule, endgame";
+	$pageAuthor		= "Sravan Kumar Lakkimsetti";
+	
+	# Add page-specific Nav bars here
+	# Format is Link text, link URL (can be http://www.someothersite.com/), target (_self, _blank), level (1, 2 or 3)
+	# $Nav->addNavSeparator("My Page Links", 	"downloads.php");
+	# $Nav->addCustomNav("My Link", "mypage.php", "_self", 3);
+	# $Nav->addCustomNav("Google", "http://www.google.com/", "_blank", 3);
+
+	# End: page-specific settings
+	#
+		
+	# Paste your HTML content between the markers!
+ob_start();
+?>		
+	<style type="text/css">
+		table.schedule td {font-weight:bold; padding-left:10px;}
+		table.schedule td.date {font-weight:normal; }
+		table.schedule td.spacer {padding-top:10px; padding-bottom:10px; }
+		table.schedule tr.current td {
+			background-color: #F4EEFF;
+		}
+	</style>
+
+	<div id="midcolumn">
+		<h1><?= $pageTitle ?></h1>
+		<div class="homeitem3col">
+			<h3>Status</h3>
+			<p><b>Released</b></p>
+      	</div>
+		<div class="homeitem3col">
+			<h3>Detailed Timeline</h3>
+	        <table class="schedule" border="0" cellspacing="0" align="center" width=100%>
+	          <tr>
+	            <td>February 2021</td>
+	          </tr>
+	          <tr>
+	            <td></td>
+	            <td></td>
+	            <td></td>
+	            <td></td>
+	            <td>Two daily I-builds towards RC1</td>
+	            <td></td>
+	          </tr>
+			  <tr>
+	            <td class="spacer">&nbsp;</td>
+	          </tr>
+	          <tr>
+	            <td></td>
+	            <td class="date">24</td>
+	            <td class="date">Wed 18:00 EST</td>
+	            <td></td>
+	            <td>API and feature freeze</td>
+	            <td></td>
+	          </tr>
+	          <tr>
+	            <td></td>
+	            <td class="date">24</td>
+	            <td class="date">Wed 18:00 EST</td>
+	            <td></td>
+	            <td>Release Candidate 1 build</td>
+	            <td></td>
+	          </tr>
+	          <tr>
+	            <td></td>
+	            <td class="date">26</td>
+	            <td class="date">Fri</td>
+	            <td></td>
+	            <td>Submit RC1 to release train</td>
+	            <td></td>
+	          </tr>
+	          <tr>
+	            <td>March 2020</td>
+	          </tr>
+			  <tr>
+	            <td class="spacer">&nbsp;</td>
+	          </tr>
+	          <tr>
+	            <td></td>
+	            <td class="date">3</td>
+	            <td class="date">Wed 18:00 EST</td>
+	            <td></td>
+	            <td>Release Candidate 2 build</td>
+	            <td></td>
+	          </tr>
+	          <tr>
+	            <td></td>
+	            <td class="date">4</td>
+	            <td class="date">Thu</td>
+	            <td></td>
+	            <td>1-day test pass against RC2 and sign-off</td>
+	            <td></td>
+	          </tr>
+	          <tr>
+	            <td></td>
+	            <td class="date">5</td>
+	            <td class="date">Fri</td>
+	            <td></td>
+	            <td>Submit RC2 to release train</td>
+	            <td></td>
+	          </tr>
+              <tr class="current">
+	            <td></td>
+	            <td class="date">17</td>
+	            <td class="date">Wed</td>
+	            <td></td>
+	            <td>GA</td>
+	            <td></td>
+	          </tr>
+	        </table>
+      	</div>
+		<div class="homeitem3col">
+			<h3>Useful Links</h3>
+			<ul>
+			<li><a href="http://www.eclipse.org/eclipse/platform-releng/buildSchedule.html">Build Schedule</a> - details on build times.</li>
+			<li><a href="http://wiki.eclipse.org/Eclipse/Release_checklist">Eclipse Release Checklist</a> - lists various things that need to be checked before each release.</li>
+			<li><a href="https://www.eclipse.org/projects/project-plan.php?planurl=http://www.eclipse.org/eclipse/development/plans/eclipse_project_plan_4_18.xml">Eclipse Project 4.19 Plan</a></li>
+			<li><a href="https://wiki.eclipse.org/Category:SimRel-2021-03">2021-03 Simultaneous Release</a></li>
+			</ul>
+      	</div>
+		<div class="homeitem3col">
+			<h3>What is the game plan?</h3>
+			<p> 
+	 		The Eclipse 2021-03 (4.19) release endgame involves building 
+	        a series of release candidates leading to the Eclipse project's contribution to the
+	        2021-03 (4.19) release. The Eclipse project version number for this release is 4.19.
+			As always, we welcome help from the 
+	        community with testing the release candidates. All new features and problems fixed in 2021-03 (4.19) are in the Eclipse bugzilla database.
+	        </p> 
+
+	        <p>General announcements during the 2021-03 (4.19) endgame are posted to the 
+	        <a href="http://dev.eclipse.org/mailman/listinfo/platform-releng-dev">platform-releng-dev@eclipse.org</a> 
+		    developer mailing list. Anyone participating in the endgame should be subscribed 
+			to this list, and should direct any general questions and comments about the process 
+			there as well.</p>
+			
+			<strong>API change approval</strong>
+	        <p>
+			No API changes are expected after RC1. Any exception must be
+			approved by the PMC. No changes are to be released without prior approval
+			and associated bug report. Please send the request for approval to the eclipse-pmc
+			mailing list. If a change is made to API to make it binary compatible with
+			a previous release, technically this is still an API change, and thus it should be treated
+			in the same way as any other API change requests.	
+			</p>
+
+			<strong>Feature work approval</strong>
+	        <p>
+			Any feature work after RC1 must be approved by the PMC. No changes are to be released without prior approval
+			and associated bug report. Please send the request for approval to the eclipse-pmc
+			mailing list.
+			</p>
+
+
+		   <strong>RC1</strong>
+		   <p>
+		   All fixes submitted must have a project lead or PMC vote on the bug report,
+		   and the fix must be reviewed by an additional committer (any committer other than
+		   the one who made the fix). A positive review from a project lead or PMC member means
+		   implicit approval and no vote is needed on the bug report.
+		   Ongoing changes to documentation, tests or examples do not require approval.
+		   </p>
+
+		   <strong>RC2</strong>
+		   <p>
+	        Release candidate containing fixes for the majority of known outstanding 
+	        defects that we intend to fix for 2021-03 (4.19). At the end of RC2 build, 
+	        there should not be any open defects tagged 4.19. All fixes submitted 
+	        must have a project lead or PMC vote on the bug report,
+	        and the fix must be reviewed by an additional committer (any committer other than
+	        the one who made the fix). A positive review from a project lead or PMC member means
+		    implicit approval and no vote is needed on the bug report.
+		    Ongoing changes to documentation, tests or examples do not require approval.
+	        </p>      
+	
+	        <strong>Test pass using RC2</strong>
+	        <p>Concerted 1-day testing effort using RC2 involving entire community including 
+	        all component teams. The goal is to verify all the fixes and check for any regressions.
+			</p>
+	
+			<strong>2021-03 (4.19) Release</strong>
+			<p>The 2021-03 (4.19) release should be complete and available for download by 
+	              March 17, 2020 as part of the <a href="https://wiki.eclipse.org/Category:SimRel-2021-03">2021-03 Simultaneous Release</a>. If product teams intending 
+	              to ship on 2021-03 (4.19) uncover further serious defects during the endgame, 
+	              we may schedule additional release candidate builds to incorporate fixes.
+			</p>    
+		</div>
+	</div>
+
+<?php
+	$html = ob_get_contents();
+	ob_end_clean();
+
+	# Generate the web page
+	$App->generatePage($theme, $Menu, $Nav, $pageAuthor, $pageKeywords, $pageTitle, $html);
+?>
