<!DOCTYPE html>
<html lang="en">

<head>

    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">

    <title>Apache Amaterasu (incubating)</title>

    <!-- Bootstrap Core CSS -->
    <link rel="stylesheet" href="css/bootstrap.min.css" type="text/css">

    <!-- Custom Fonts -->
    <link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
    <link href='http://fonts.googleapis.com/css?family=Merriweather:400,300,300italic,400italic,700,700italic,900,900italic' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="font-awesome/css/font-awesome.min.css" type="text/css">

    <!-- Plugin CSS -->
    <link rel="stylesheet" href="css/animate.min.css" type="text/css">

    <!-- Custom CSS -->
    <link rel="stylesheet" href="css/main.css" type="text/css">

    <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
    <!-- Global Site Tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-84742341-2"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments)};
      gtag('js', new Date());

      gtag('config', 'UA-84742341-2');
    </script>

</head>


<body id="page-top">
  <nav id="mainNav" class="navbar navbar-default navbar-fixed-top">
    <div class="container-fluid">
        <!-- Brand and toggle get grouped for better mobile display -->
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand page-scroll" href="#page-top">Apache Amaterasu</a>
            <!-- <img src="img/amaterasu_logo.jpg" /> -->
        </div>

        <!-- Collect the nav links, forms, and other content for toggling -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
            <ul class="nav navbar-nav navbar-right">
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#about">About</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#features">Features</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/downloads.html">Downloads</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#samples">Samples</a>
                </li>
                  <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#docs">Docs (coming soon)</a>
                </li>
                <li>
                    <a class="page-scroll" href="http://amaterasu.incubator.apache.org/#contact">Contact</a>
                </li>
            </ul>
        </div>
        <!-- /.navbar-collapse -->
    </div>
    <!-- /.container-fluid -->
</nav>

  <section id="downloads">
    <div class="container">
        <div class="row">
            <div class="row text-center">
                <h2 class="section-heading">Apache Amaterasu Releases</h2>
                <hr class="primary">
                <p>Be sure to verify your downloads by these <a href="https://www.apache.org/info/verification">procedures</a> using the folowing <a href="https://dist.apache.org/repos/dist/release/incubator/amaterasu/KEYS">KEYS</a>.<p>
            </div>
                <div class="row text-left mt ml-5">
                    <div>
                        
                        Version 0.2.0-incubating
                        
                    </div>
                    <div>
                        
                        <a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4.tar">Binary distribution</a> [<a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4.tar.sha512">SHA512</a>] [<a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4.tar.asc">ASC</a>]
                    </div>
                    <div>
                        
                        <a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4-source.tar.gz">Official source release</a> [<a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4-source.tar.gz.sha512">SHA512</a>] [<a href="http://www.apache.org/dyn/closer.lua/incubator/amaterasu/0.2.0-incubating/apache-amaterasu-0.2.0-incubating-rc4-source.tar.gz.asc">ASC</a>]
                    </div>
                </div>
        </div>
</section>

  <section id="disclaimer">
  <hr>
  <div class="container">
    <img src="img/incubator_feather_egg_logo.png" height="60">
    <br>
    <br>
    <p style="font-size: 12px; line-height: 1.5em;">
    Apache Amaterasu is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
    </p>
    <p style="font-size: 12px; line-height: 1.5em; margin-top: 2em; margin-bottom: 2em;">
            Copyright © 2017 <a href="http://www.apache.org/" target="_blank">The Apache Software Foundation</a>
    <br>
    Apache, Apache Amaterasu (incubating), the Apache feather and the Gobblin logo are trademarks of The Apache Software Foundation
    </p>
  </div>
</section>

  <!-- jQuery -->
<script src="js/jquery.js"></script>

<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>

<!-- Plugin JavaScript -->
<script src="js/jquery.easing.min.js"></script>
<script src="js/jquery.fittext.js"></script>
<script src="js/wow.min.js"></script>

<!-- Custom Theme JavaScript -->
<script src="js/creative.js"></script>

</body>

</html>
