<?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'

    $pageTitle       = "Contributors to Photran";
    $pageKeywords    = "photran, contributors, developers";
    $pageAuthor      = "Jeffrey Overbey";
    
    # Paste your HTML content between the EOHTML markers!    
    $html = <<<EOHTML

<div id="maincontent">
  <div id="midcolumn">
    <h1>$pageTitle</h1>
    
    <p>Photran is primarily being developed at the University of Illinois at Urbana-Champaign,
    although we have received many valuable contributions from elsewhere.
    In alphabetical order by last name...</p>
    
    <div class="homeitem3col">
      <h3>Leads</h3>
      <ul>
        <li><a href="http://st-www.cs.uiuc.edu/users/johnson">Ralph Johnson</a>, UIUC - Principal investigator</li>
        <li><a href="http://jeff.over.bz/">Jeff Overbey</a>, UIUC - Lead developer; parser, refactoring infrastructure, indexer/VPG, refactorings, UI features, error parsers, CDT integration</li>
        <li><b>Greg Watson</b>, IBM - PTP project lead; release engineering</li>
      </ul>
    </div>
    
    <div class="homeitem3col">
      <h3>Active Committers and Contributors</h3>
      <ul>
        <li><b>Matt Fotzler</b>, UIUC - PTP integration</li>
        <li><b>Bill Hilliard</b>, Intel - Committer; managed build support (Intel Fortran)</li>
        <li><b>Kurt Hendle</b>, UIUC - Committer; refactorings, editor folding</li>
        <li><b>Matthew Michelotti</b>, UIUC - C preprocessor support</li>
        <li><b>Stas Negara</b>, UIUC - Preliminary Fortran indexer, Move Save Variables to Common Block refactoring</li>
        <li><b>Timofey Yuvashev</b>, UIUC - Committer; UI features, managed build support, refactorings</li>
      </ul>
    </div>
    
    <div class="homeitem3col">
      <h3>Past Contributors and Committers</h3>
      <ul>
        <li>Antonio Barbado - Spanish FAQ translation</li>
        <li><!--a href="http://www.fortran.com/fortran/walt.html"-->Walt Brainerd, <a href="http://www.fortran.com/">The Fortran Company</a> - F support (and more)</li>
        <li>Chin Fei Cheah, UIUC - UI features, MSI package</li>
        <li>Nicholas Chen, UIUC - UI features, MSI package</li>
        <li>Sarah de la Cruz, UIUC (CS427 Fa07) - Find All References</li>
        <li>Jeff Dammeyer, UIUC (CS427 Fa08) - Fortran Search</li>
        <li>Andrew Deason, UIUC (CS427 Fa08) - Fortran Search</li>
        <li>Kevin Decker, UIUC (CS427 Fa07) - Find All References</li>
        <li>Joe Digiovanna, UIUC (CS427 Fa08) - Fortran Search</li>
        <li>Charles Felish, UIUC (CS427 Fa07) - Find All References</li>
        <li><!--a href="http://www.laputan.org/"-->Brian Foote, UIUC</li>
        <li>Feanil Patel, UIUC - Prototype Fortran debugger</li>
        <li>Craig Rasmussen, LANL - Managed build support, error parsers</li>
        <li>Dirk Rossow, Flensburger Schiffbau Gesellschaft - Fixed form lexer</li>
        <li>Ken Schultz, UIUC - Prototype Fortran debugger</li>
        <!--li>Mikhail Sennikovsky, Intel - Managed build support (Intel Fortran)</li-->
        <li>Nick Sexmith, UIUC (CS427 Fa08) - Fortran Search</li>
        <li>James Shepherd, UIUC (CS427 Fa07) - Find All References</li>
        <li>Shawn Temming, UIUC - Prototype Fortran debugger</li>
        <!--li>Leo Treggiari, Intel - Managed build support (Intel Fortran)</li-->
        <li><!--a href="http://leto.cs.uiuc.edu/%7Espiros"-->Spiros Xanthos, UIUC</li>
      </ul>
      <p><i>Special thanks to
      Prof. Ralph Johnson,
      Nicholas Chen,
      and TAs 
      Dustin Bortner,
      Yun Young Lee,
      Maurice Rabb,
      Mohsen Vakilian
      for supervising contributions completed as part of CS427 (Software Engineering I) at UIUC.
      </i>
    </div>

  </div> 
</div>    
EOHTML;

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