<?php
/**
 * Copyright (c) 2015, 2018 Eclipse Foundation and others.
 *
 * This program and the accompanying materials are made
 * available under the terms of the Eclipse Public License 2.0
 * which is available at https://www.eclipse.org/legal/epl-2.0/
 *
 * Contributors:
 *   Nathan Gervais (Eclipse Foundation) - Initial implementation
 *   Eric Poirier (Eclipse Foundation)
 *
 * SPDX-License-Identifier: EPL-2.0
 */
?>
<h1>Community Poll Vote</h1>
<h2>Help decide the name for the 2014 Eclipse Simultaneous Release!</h2>

<p>
  There will be an Eclipse Simultaneous Release on the fourth Wednesday
  of June, 2014. But what to call it? Please vote, only once, for your
  favorite name for that 2014 release. Remember, the simultaneous
  release name is an informal <i>marketing name</i>. It should be
  recognizable, pronounceable, relatively distinct and not obvious to
  confuse with other software or trademarks. Be sure to consider how it
  sounds in context, such as...
</p>

<p>
  <i>"Hey, go download the <b>Eclipse xyz Release</b> and see all the
    cool stuff in there!"
  </i>
</p>

<p>
  The following list was arrived at with input from the community (see <a
    href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=398191">bug
    398191</a>) and discussions inside the Eclipse Planning Council.
</p>

<div style="padding: 5px; margin-left: 1%; margin-right: 1%;">

  <p>
    Laila: 8%<br /> Ladon: 2%<br /> Laplace: 13%<br /> Lok: 2% <br />
    Lorentz: 4%<br /> Luna: 71%<br /> <b>Total votes: 274</b>
  </p>
</div>

<p>
  Thanks for your vote and your help with Eclipse! <b>Luna</b> was
  chosen as the name.
</p>

<p>
  <b>Note: The Planning Council reserves the right to make the final
    decision, in case some popularly voted item is later found to be
    unsuitable for some reason.</b>
<p>
<p>Current time: 29/09/15 : 14:09 (EDT)</p>
