<?xml version="1.0" encoding="ISO-8859-1"?>

<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->

<project xmlns="http://maven.apache.org/DECORATION/1.3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/DECORATION/1.3.0 http://maven.apache.org/xsd/decoration-1.3.0.xsd"
         name="Ambari">
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-fluido-skin</artifactId>
    <version>1.3.0</version>
  </skin>
  <custom>
    <fluidoSkin>
      <topBarEnabled>true</topBarEnabled>
      <sideBarEnabled>true</sideBarEnabled>
      <leftColumnClass>span2</leftColumnClass>
      <bodyColumnClass>span10</bodyColumnClass>
    </fluidoSkin>
  </custom>
  <bannerLeft>
    <name>Ambari</name>
    <src>http://ambari.apache.org/images/apache-ambari-project.png</src>
    <href>http://ambari.apache.org/</href>
  </bannerLeft>

  <publishDate position="right"/>
  <version position="right"/>

  <body>
    <head>
       <!-- Start of Google analytics -->
       <script type="text/javascript">
         var _gaq = _gaq || [];
         _gaq.push(['_setAccount', 'UA-27188762-1']);
         _gaq.push(['_trackPageview']);

         (function() {
            var ga = document.createElement('script'); 
            ga.type = 'text/javascript'; ga.async = true;
            ga.src = ('https:' == document.location.protocol ? 
                      'https://ssl' : 'http://www') + 
                     '.google-analytics.com/ga.js';
            var s = document.getElementsByTagName('script')[0]; 
            s.parentNode.insertBefore(ga, s);
          })();
       </script>
       <!-- End of Google analytics -->
       <style>
           .well.sidebar-nav {
             background-color: #fff;
           }
           a.externalLink[href^=http] {
             background-image: none;
             padding-right: 0;
           }
           body.topBarEnabled {
             padding-top: 40px;
           }
           #leftColumn .nav-list .active a {
             background-color: #a0a0a0;
           }
           .nav-list .active a:hover {
             background-color: #a0a0a0;
           }
       </style>
    </head>

    <links>
      <item name="JIRA" href="https://issues.apache.org/jira/browse/AMBARI" />
      <item name="Git" href="https://git-wip-us.apache.org/repos/asf/ambari/repo?p=ambari.git;a=summary" />
      <item name="Wiki" href="https://cwiki.apache.org/confluence/display/AMBARI/Ambari" />
    </links>

    <breadcrumbs>
      <item name="Ambari" href="http://ambari.apache.org/"/>
    </breadcrumbs>

    <menu name="Ambari">
      <item name="Overview" href="index.html"/>
      <item name="What's New?" href="whats-new.html"/>
      <item name="Project Team" href="team-list.html"/>
      <item name="IRC Channel" href="irc.html"/>
      <item name="Mailing Lists" href="mail-lists.html"/>
      <item name="Issue Tracking" href="issue-tracking.html"/>
      <item name="User Group" href="http://www.meetup.com/Apache-Ambari-User-Group"/>
      <item name="Project License" href="http://www.apache.org/licenses/"/>
    </menu>

    <menu name="Documentation">
      <item name="Wiki" href="https://cwiki.apache.org/confluence/display/AMBARI/Ambari"/>
      <item name="Quick Start Guide" href="https://cwiki.apache.org/confluence/display/AMBARI/Quick+Start+Guide"/>
      <item name="Features + Roadmap" href="https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=30755705"/>
      <item name="API Reference" href="https://github.com/apache/ambari/blob/trunk/ambari-server/docs/api/v1/index.md"/>
      <item name="Install Guide for 2.2.2" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.2.2"/>
      <item name="Install Guide for 2.2.1" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.2.1"/>
      <item name="Install Guide for 2.2.0" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.2.0"/>
      <item name="Install Guide for 2.1.2" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.1.2"/>
      <item name="Install Guide for 2.1.1" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.1.1"/>
      <item name="Install Guide for 2.1.0" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.1.0"/>
      <item name="Install Guide for 2.0.2" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.0.2"/>
      <item name="Install Guide for 2.0.1" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.0.1"/>
      <item name="Install Guide for 2.0.0" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.0.0"/>
      <item name="Install Guide for 1.7.0" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+1.7.0"/>
      <item name="Install Guide for 1.6.1" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+1.6.1"/>
      <item name="Install Guide for 1.6.0" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+1.6.0"/>
      <item name="Install Guide for 1.5.1" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+1.5.1"/>
      <item name="Install Guide for 1.5.0" href="https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+1.5.0"/>
      <item name="Install Guide for 1.4.4" href="https://cwiki.apache.org/confluence/display/AMBARI/Instructions+for+installing+Ambari-1.4.4+bits"/>
      <item name="Install Guide for 1.4.3" href="https://cwiki.apache.org/confluence/display/AMBARI/Instructions+for+installing+Ambari-1.4.3+bits"/>
      <item name="Install Guide for 1.4.2" href="https://cwiki.apache.org/confluence/display/AMBARI/Instructions+for+installing+Ambari-1.4.2+bits"/>
      <item name="Install Guide for 1.4.1" href="https://cwiki.apache.org/confluence/display/AMBARI/Instructions+for+installing+Ambari-1.4.1+bits"/>
      <item name="Install Guide for 1.2.5" href="1.2.5/installing-hadoop-using-ambari/content/index.html"/>
      <item name="Install Guide for 1.2.4" href="1.2.4/installing-hadoop-using-ambari/content/index.html"/>
      <item name="Install Guide for 1.2.3" href="1.2.3/installing-hadoop-using-ambari/content/index.html"/>
      <item name="Install Guide for 1.2.2" href="1.2.2/installing-hadoop-using-ambari/content/index.html"/>
      <item name="Install Guide for 1.2.1" href="1.2.1/installing-hadoop-using-ambari/content/index.html"/>
      <item name="Install Guide for 1.2.0" href="1.2.0/installing-hadoop-using-ambari/content/index.html"/>
      <item name="Install Guide for 0.9" href="install-0.9.html"/>
    </menu>

    <menu name="Releases">
      <item name="2.2.2" href="http://www.apache.org/dyn/closer.cgi/ambari/ambari-2.2.2"/>
      <item name="2.2.1" href="http://archive.apache.org/dist/ambari/ambari-2.2.1"/>
      <item name="2.2.0" href="http://archive.apache.org/dist/ambari/ambari-2.2.0"/>
      <item name="2.1.2" href="http://archive.apache.org/dist/ambari/ambari-2.1.2"/>
      <item name="2.1.1" href="http://archive.apache.org/dist/ambari/ambari-2.1.1"/>
      <item name="2.1.0" href="http://archive.apache.org/dist/ambari/ambari-2.1.0"/>
      <item name="2.0.2" href="http://archive.apache.org/dist/ambari/ambari-2.0.2"/>
      <item name="2.0.1" href="http://archive.apache.org/dist/ambari/ambari-2.0.1"/>
      <item name="2.0.0" href="http://archive.apache.org/dist/ambari/ambari-2.0.0"/>
      <item name="1.7.0" href="http://archive.apache.org/dist/ambari/ambari-1.7.0"/>
      <item name="1.6.1" href="http://archive.apache.org/dist/ambari/ambari-1.6.1"/>
      <item name="1.6.0" href="http://archive.apache.org/dist/ambari/ambari-1.6.0"/>
      <item name="1.5.1" href="http://archive.apache.org/dist/ambari/ambari-1.5.1"/>
      <item name="1.5.0" href="http://archive.apache.org/dist/ambari/ambari-1.5.0"/>
      <item name="1.4.4" href="http://archive.apache.org/dist/ambari/ambari-1.4.4/"/>
      <item name="1.4.3" href="http://archive.apache.org/dist/ambari/ambari-1.4.3/"/>
      <item name="1.4.2" href="http://archive.apache.org/dist/ambari/ambari-1.4.2/"/>
      <item name="1.4.1" href="http://archive.apache.org/dist/incubator/ambari/ambari-1.4.1/"/>
      <item name="1.2.5" href="http://archive.apache.org/dist/incubator/ambari/ambari-1.2.5/"/>
      <item name="1.2.4" href="http://archive.apache.org/dist/incubator/ambari/ambari-1.2.4/"/>
      <item name="1.2.3" href="http://archive.apache.org/dist/incubator/ambari/ambari-1.2.3/"/>
      <item name="1.2.2" href="http://archive.apache.org/dist/incubator/ambari/ambari-1.2.2/"/>
      <item name="1.2.1" href="http://archive.apache.org/dist/incubator/ambari/ambari-1.2.1/"/>
      <item name="1.2.0" href="http://archive.apache.org/dist/incubator/ambari/ambari-1.2.0/"/>
      <item name="0.9" href="http://archive.apache.org/dist/incubator/ambari/ambari-0.9-incubating/"/>
    </menu>

    <footer>
      <div class="row span12">
        Apache Ambari, Apache, the Apache feather logo, and the Apache Ambari project logos are trademarks
        of The Apache Software Foundation.
        All other marks mentioned may be trademarks or registered trademarks of their respective owners.
      </div>
      <div class="row span12">
        <a href="${project.url}/privacy-policy.html">Privacy Policy</a>
      </div>
    </footer>

  </body>
</project>
