You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by ma...@apache.org on 2015/12/09 01:59:04 UTC

[12/37] incubator-geode git commit: Initial import of the new website

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6a3fd2e/gemfire-site/content/img/yourkit.jpeg
----------------------------------------------------------------------
diff --git a/gemfire-site/content/img/yourkit.jpeg b/gemfire-site/content/img/yourkit.jpeg
new file mode 100644
index 0000000..4a53b77
Binary files /dev/null and b/gemfire-site/content/img/yourkit.jpeg differ

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6a3fd2e/gemfire-site/content/index.html
----------------------------------------------------------------------
diff --git a/gemfire-site/content/index.html b/gemfire-site/content/index.html
new file mode 100644
index 0000000..97f8830
--- /dev/null
+++ b/gemfire-site/content/index.html
@@ -0,0 +1,280 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <title>Apache Geode — Performance is key. Consistency is a must.</title>
+    <meta http-equiv="x-ua-compatible" content="ie=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1" />
+    <meta name="keywords" content="Apache Usergrid, Usergrid, BaaS, Backend-as-a-Service">
+    <meta name="description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
+    <meta property="og:title" content="Apache Usergrid" />
+    <meta property="og:description" content="An open-source Backend-as-a-Service stack for web & mobile applications, based on RESTful APIs." />
+    <!-- Loading Typekit -->
+    <script type="text/javascript" src="//use.typekit.net/ddl7izx.js"></script>
+    <script type="text/javascript">try{Typekit.load();}catch(e){}</script>
+    <!-- Loading Bootstrap -->
+    <link href="/bootstrap/bootstrap.min.css" rel="stylesheet" type='text/css'>
+    <link href="/css/bootflat.css" rel="stylesheet" type='text/css'>
+    <link href="/css/usergrid-site.css" rel="stylesheet" type='text/css'>
+    <link href="https://fonts.googleapis.com/css?family=Open+Sans:200,400,500,300,600,800,700,400italic,600italic,700italic,800italic,300italic" rel="stylesheet" type="text/css">
+    <link href="/css/font-awesome.min.css" rel="stylesheet" type='text/css'>
+
+    
+
+    <!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
+    <!--[if lt IE 9]>
+      <script src="js/html5shiv.js"></script>
+      <script src="js/respond.min.js"></script>
+    <![endif]-->
+</head>
+<body>
+
+    <header class="navbar navbar-inverse navbar-fixed-top bf-docs-nav " role="banner">
+    <div class="container">
+        <div class="navbar-header">
+            <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".bf-navbar-collapse">
+                <span class="sr-only">Toggle navigation</span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </button>
+        </div>
+        <a href="/" class="navbar-brand">
+                <img id="home-logo" src="/img/apache_geode_logo_white_small.png" />
+            </a>
+        <nav class="collapse navbar-collapse bf-navbar-collapse" role="navigation">
+            <ul class="nav navbar-nav navbar-right">
+                <li class=""><a href="/community/"><span class="icns icon-group"></span></a></li>
+                <li><a href="/docs" target="_blank"><span class="icns icon-book"></span></a></li>
+                <li><a href="http://github.com/apache/incubator-geode" target="_blank"><span class="icns icon-github-sign"></span></a></li>
+                <!--<li><a href="https://trello.com/b/exQmJIOn/usergrid" target="_blank"><span class="icns icon-trello"></span></a></li>-->
+                <li><a href="https://issues.apache.org/jira/browse/GEODE/"
+                       target="_blank"><span class="icns icon-bug"></span></a></li>
+                <li><a href="http://stackoverflow.com/search?q=Apache%20Geode" target="_blank"><span class="icns icon-stackexchange"></span></a></li>
+                <li><a href="/community/#live"><span class="icns icon-comments"></span></a></li>
+                <!--<li><a href="https://groups.google.com/forum/#!forum/usergrid" target="_blank"><span class="icns icon-envelope"></span></a></li>-->
+                <li><a href="https://twitter.com/apachegeode" target="_blank"><span class="icns icon-twitter"></span></a></li>
+                <li><a href="https://cwiki.apache.org/confluence/display/geode/" target="_blank"><span class="icns icon-edit"></span></a></li>
+                <li><a href="/releases/"><span class="icns icon-releases"></span></a></li>
+            </ul>
+        </nav>
+    </div>
+    </header>
+
+
+
+
+
+<section class="bf-masthead" id="content" role="main">
+    <div class="bf-masthead-bg">
+        <div class="container">
+            <img class="logo-title img-responsive hidden-xs" src="img/apache_geode_logo.png" />
+            <div class="text-container">
+                <h2 class="tagline"><em>Performance</em> is key. <em>Consistency</em> is a must.</h2>
+                <p class="description">Solving the hardest data management problems since 2002.<br/>
+                  <br/>Build elastic modern <em>in-memory</em> data intensive applications and <em>scale</em>.<br/>
+                  Delivery high-performance at cloud scale blending advanced techniques for data replication, partitioning and distributed processing.
+
+                  <br/><br/>
+                  Offering a database-like consistency model, reliable transaction processing and shared nothing architecture at ease.<br/></p>
+            </div>
+
+            <div class="btn-wrapper">
+                <iframe class="social-btn" src="/static/github-btn.html?user=apache&repo=incubator-geode&type=watch&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="85" height="30"></iframe>
+                <iframe class="social-btn" src="/static/github-btn.html?user=apache&repo=incubator-geode&type=fork&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="85" height="30"></iframe>
+                <!--<p><span class="or">or</span> <a href="#">Download Usergrid</a></p>-->
+            </div>
+
+        </div>
+    </div>
+</section>
+
+<section class="bf-features">
+    <div class="container">
+        <div class="row">
+            <div class="col-md-4">
+                <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="icon-sitemap""></i></div>
+                <h3>Replication and Partitioning</h3>
+                <p>Data can easily be partitioned (sharded) or replicated and resilience is ensured through redundant copies or disk-persistency allowing data to scale however is needed.</p>
+            </div>
+            <div class="col-md-4">
+                <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="icon-hdd"></i></div>
+                <h3>Persistence</h3>
+                <p>Super fast WAL persistence mechanism with shared-nothing architecture and optmized for fast parallel recovery of a cluster or single node.</p>
+            </div>
+            <div class="col-md-4">
+                <div class="bf-icon-wrap"><i aria-hidden="true" class="icon-rocket"></i></div>
+                <h3>Performance</h3>
+                <p>Predictable low-latency for transactions, reads, writes and query processing on top of index and non-indexed data.</p>
+            </div>
+        </div>
+        <div class="row">
+            <div class="col-md-4">
+                <div class="bf-icon-wrap" style="font-size:40px; vertical-align: 15px;"><i aria-hidden="true" class="icon-fast-forward"></i><i aria-hidden="true" class="icon-dashboard"></i></div>
+                <h3>In-Memory</h3>
+                <p>Blazing fast in-memory storage optmized for larger heaps, with the option of using off-heap, compression and features such as disk-overflow, eviction and expiration.</p>
+            </div>
+            <div class="col-md-4">
+                <div class="bf-icon-wrap"><span style="font-size:60px" aria-hidden="true" class="icon-cogs"></span></div>
+                <h3>Functions</h3>
+                <p>Distributed data-aware processing can be deployed and executed in parallel on a cluster. In the case of failures, processing can be retried on different nodes.</p>
+            </div>
+            <div class="col-md-4">
+                <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="icon-credit-card"></i></div>
+                <h3>Transactions</h3>
+                <p>ACID distributed transactions allows for efficient and safe coordinated operations on colocated data. Transactions can be suspended, initiated from a client or a server.</p>
+            </div>
+        </div>
+        <div class="row">
+          <div class="col-md-4">
+              <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="icon-table"></i></div>
+              <h3>OQL and Indexes</h3>
+              <p>Object Query Language allows distributed query execution on hot and cold data, with SQL-like capabilities, including joins.<br/>
+              Multiple option of indexes can be created and consistently maintained across the cluster.</p>
+          </div>
+          <div class="col-md-4">
+              <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="icon-bolt"></i></div>
+              <h3>Events</h3>
+              <p>Clients can be notified about server-side data events, and servers can react synchronous or asynchronously with guaranteed delivery of ordered events.</p>
+          </div>
+          <div class="col-md-4">
+              <div class="bf-icon-wrap"><i style="font-size:65px; vertical-align: -5px;" aria-hidden="true" class="icon-cloud"></i></div>
+              <h3>Clustering</h3>
+              <p>Highly scalable, battle-proof advanced clustering technology, with failure detection, dynamic scale, and network-partition detection algorithms.</p>
+          </div>
+        </div>
+    </div>
+
+    </div>
+</section>
+
+<section class="bf-questions">
+    <div class="container">
+            <div class="col-md-12 text-center cta">
+                And much more... Interested ? You can check our <a href="https://cwiki.apache.org/confluence/display/GEODE/Index#Index-Geodein5minutesGeodein5minutes" target="_blank" class="btn btn-inverse btn-lg">Geode in 5 minutes tutorial</a> <span class="avoidwrap">, ask a question on the <a href="/community/" class="btn btn-inverse btn-lg">Mailing lists</a> or <a href="http://stackoverflow.com/search?q=Apache%20Geode" class="btn btn-inverse btn-lg">StackOverflow</a></span>
+            </div>
+    </div>
+</section
+
+<section class="bf-news">
+    <div class="container">
+
+        <div class="row">
+            <div class="col-md-12 text-left">
+                <h2>About the Project</h2>
+                <p>Apache Geode is a data management platform that provides real-time, consistent access to data-intensive applications throughout widely distributed cloud architectures.</p>
+                <p>By pooling memory, CPU, network resources, and optionally local disk across multiple processes to manage application objects and behavior, it uses dynamic replication and data partitioning techniques to implement high availability, improved performance, scalability, and fault tolerance. In addition to being a distributed data container, Geode is an in-memory data management system that provides reliable asynchronous event notifications and guaranteed message delivery.</p>
+                <p>Apache Geode is an extremely mature and robust product that can trace its legacy all the way back to one of the first Object Databases for Smalltalk: GemStone. Geode (as GemFire™) was first deployed in the financial sector as the transactional, low-latency data engine used by multiple Wall Street trading platforms. Today Geode is used by over 600 enterprise customers for high-scale, 24x7 business critical applications.</p>
+            </div>
+            <!--
+            <div class="col-md-4 text-left">
+                <h2>Recent Releases</h2>
+
+
+            </div>
+            -->
+        </div>
+
+    </div>
+</section>
+
+
+
+
+<footer class="bf-footer" role="contentinfo">
+    <div class="container">
+        <div class="row">
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header"><a href="/">Home</a></li>
+                    <li class="nav-header"><a href="/community/">Community</a></li>
+                        <li><a href="/community/#events">Events</a></li>
+                        <li><a href="/community/#mailing-lists">Mailing Lists</a></li>
+                        <li><a href="/community/#deployments">Deployments</a></li>
+                        <!-- <li><a href="/community/#committers">Commiters</a></li> -->
+                </ul>
+            </div>
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header"><a href="http://github.com/apache/incubator-geode" target="_blank">Code</a></li>
+                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Project+Proposals+and+Specifications" target="_blank">Specifications</a></li>
+                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Geode+Internal+Architecture" target="_blank">Internal Architecture</a></li>
+                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Writing+tests" target="_blank">Writing Tests</a></li>
+                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Criteria+for+Code+Submissions" target="_blank">Code Submissions</a></li>
+                </ul>
+            </div>
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header">Resources</li>
+                    <li><a href="http://github.com/apache/geode-incubator" target="_blank">GitHub Code</a></li>
+                    <li><a href="docs" target="_blank">Docs</a></li>
+                    <li><a href="https://issues.apache.org/jira/browse/GEODE" target="_blank">JIRA Bug Tracker</a></li>
+                    <li><a href="http://stackoverflow.com/search?q=Apache%20Geode" target="_blank">StackOverflow</a></li>
+                    <li><a href="/community/#live">Live Chat</a></li>
+                    <li><a href="https://twitter.com/apachegeode" target="_blank">Twitter</a></li>
+                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Index#Index-Geodein5minutesGeodein5minutes" target="_blank">Geode in 5 minutes</a></li>
+                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/How+to+Contribute" target="_blank">How to Contribute</a></li>
+                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Application+Development" target="_blank">Application Development</a></li>
+
+                    <li><a href="https://cwiki.apache.org/confluence/display/GEODE/Technology+FAQ" target="_blank">FAQ</a></li>
+
+                </ul>
+            </div>
+            <div class="col-md-2">
+                <ul class="nav nav-list">
+                    <li class="nav-header">Apache</li>
+                    <li><a href="http://www.apache.org/licenses/" target="_blank">License</a></li>
+                    <li><a href="http://www.apache.org/foundation/sponsorship.html" target="_blank">Sponsorship</a></li>
+                    <li><a href="http://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a></li>
+                    <li><a href="http://www.apache.org/security/">Security</a></li>
+                    <li><a href="http://www.apache.org/" target="_blank">Apache Foundation</a></li>
+                </ul>
+            </div>
+            <div class="col-md-4">
+              <a class="twitter-timeline" href="https://twitter.com/search?q=ApacheGeode" height="450px" data-widget-id="662798762926997504">Tweets about Apache Geode</a>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+"://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+            </div>
+        <!--
+            <div class="col-md-4">
+                <div class="input-group form-search">
+                    <input type="text" class="form-control search-query">
+                    <span class="input-group-btn">
+                        <button type="submit" class="btn btn-primary" data-type="last">Search</button>
+                    </span>
+                </div>
+            </div> -->
+        </div>
+        <div class="row">
+            <div id="copyright">
+                <img src="/img/egg-logo.png" /><br/><br/>
+                <p>Copyright © 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.<br>
+                Apache and the Apache feather logos are trademarks of The Apache Software Foundation.</p>
+                <p class="credits">Site designed & assembled with love by <a href="https://github.com/ryuneeee">@ryuneeee</a> + <a href="https://github.com/realbeast">@realbeast</a> + <a href="https://twitter.com/timanglade">@timanglade</a> + <a href="https://twitter.com/snoopdave">@snoopdave</a> for Apache Usergrid.</p>
+                <p>Modified for Apache Geode by <a href="https://twitter.com/william_markito">@william_markito</a> .</p>
+            </div>
+        </div>
+    </div>
+</footer>
+
+<script type="text/javascript" src="/js/head.js"></script>
+<script type="text/javascript">
+    head.js("/js/jquery-1.10.1.min.js", "/js/bootstrap.min.js", "/js/usergrid-site.js");
+</script>
+<!-- update the code below for google analytics -->
+<!--
+ <script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-45815079-1', 'apache.org');
+  ga('send', 'pageview');
+
+</script> -->
+
+
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6a3fd2e/gemfire-site/content/js/bootstrap.min.js
----------------------------------------------------------------------
diff --git a/gemfire-site/content/js/bootstrap.min.js b/gemfire-site/content/js/bootstrap.min.js
new file mode 100644
index 0000000..3137285
--- /dev/null
+++ b/gemfire-site/content/js/bootstrap.min.js
@@ -0,0 +1,8 @@
+/**
+* Bootstrap v3.0.0 by @fat and @mdo
+* Copyright 2013 Twitter Inc.
+* Licensed under http://www.apache.org/licenses/LICENSE-2.0.
+*
+* Designed and built with all the love in the world by @mdo and @fat.
+*/
+if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use strict";var b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function c(){f.trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefau
 ltPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new c(this)),"string"==typeof b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var a=this.$element.closest('[data-toggle="buttons"]');if(a.l
 ength){var b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var c=a.fn.button;a.fn.button=function(c){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof c&&c;e||d.data("bs.button",e=new b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a.proxy(this.pause,this))
 .on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){return th
 is.sliding?void 0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,se
 tTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c),g="string"==typeof c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.attr("data-slide-to"))&&e.data("bs.carousel").to(g)
 ,b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass
 ("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void 0):d.call(this)}}},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":
 "show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.collapse",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use strict";function b(){a(d).remove(),a(e).each(function(b){var d=c(a(this));d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented(
 )||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}var d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var f=c(d),g=f.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&f.find(e).focus(),d.clic
 k();var h=a("[role=menu] li:not(.divider):visible a",f);if(h.length){var i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}};var g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var c=a(this),d=c.data("dropdown");d||c.data("dropdown",d=new f(this)),"string"==typeof b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+", [role=menu]",f.prototype.keydown)}(window.jQuery),+function(a){"use strict";var b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.load(this.options.remote)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return th
 is[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show(),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$eleme
 nt.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},b.prototype.backdrop=function(b){var c=this.$element.hasClass("fade")?"fade"
 :"";if(this.isShown&&this.options.backdrop){var d=a.support.transition&&c;if(this.$backdrop=a('<div class="modal-backdrop '+c+'" />').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof c&&c);f||e.data("bs.modal",f=new b(this,g)),"string"==typeof c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.
 noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.en
 abled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototyp
 e.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void 0):c.show()},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void 0):c.hide()},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d="function"==typeof this.options.placement?this.options.placement.call(this,c[0],this.$ele
 ment[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h<o?"right":d,c.removeClass(k).addClass(d)}var p=this.getCalculatedOffset(d,g,h,i);this.applyPlacement(p,d),this.$element.trigger("shown.bs."+this.type)}},b.prototype.applyPlacement=function(a,b){var c,d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10)
 ,h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),a.top=a.top+g,a.left=a.left+h,d.offset(a).addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;if("top"==b&&j!=f&&(c=!0,a.top=a.top+f-j),/bottom|top/.test(b)){var k=0;a.left<0&&(k=-2*a.left,a.left=0,d.offset(a),i=d[0].offsetWidth,j=d[0].offsetHeight),this.replaceArrow(k-e+i,i,"left")}else this.replaceArrow(j-f,j,"top");c&&d.offset(a)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},b.prototype.hide=function(){function b(){"in"!=c.hoverState&&d.detach()}var c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return this.$element.trigger(e),e.isDefaultPrevented()?void 0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),th
 is.$element.trigger("hidden.bs."+this.type),this)},b.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return a.extend({},"function"==typeof b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return this.$tip=this.$tip||a(
 this.options.template)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof c&&c;e||d.data("bs.tooltip",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=c,this}}(window.jQuery),+function(a){"use strict";
 var b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("functio
 n"==typeof b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process(
 )}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+
 '[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f
 ),!f.isDefaultPrevented()){var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQ
 uery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-
 d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6a3fd2e/gemfire-site/content/js/head.js
----------------------------------------------------------------------
diff --git a/gemfire-site/content/js/head.js b/gemfire-site/content/js/head.js
new file mode 100644
index 0000000..aa15cb8
--- /dev/null
+++ b/gemfire-site/content/js/head.js
@@ -0,0 +1,708 @@
+// // the most simple case. load and execute single script without blocking.
+// head.js("/path/to/file.js");
+ 
+// // load a script and execute a function after it has been loaded
+// head.js("/path/to/file.js", function() {
+ 
+// });
+ 
+// // load files in parallel but execute them in sequence
+// head.js("file1.js", "file2.js", ... "fileN.js");
+ 
+// // execute function after all scripts have been loaded
+// head.js("file1.js", "file2.js", function() {
+ 
+// });
+ 
+// // files are loaded in parallel and executed in order they arrive
+// head.js("file1.js");
+// head.js("file2.js");
+// head.js("file3.js");
+ 
+// // the previous can also be written as
+// head.js("file1.js").js("file1.js").js("file3.js");
+
+
+
+
+
+/**
+    Head JS     The only script in your <HEAD>
+    Copyright   Tero Piirainen (tipiirai)
+    License     MIT / http://bit.ly/mit-license
+    Version     0.96
+
+    http://headjs.com
+*/
+(function(doc) {
+
+    var html = doc.documentElement,
+         conf = {
+            screens: [320, 480, 640, 768, 1024, 1280, 1440, 1680, 1920],
+            section: "-section",
+            page: "-page",
+            head: "head"
+         },
+         klass = [];
+
+
+    if (window.head_conf) {
+        for (var key in head_conf) {
+            if (head_conf[key] !== undefined) {
+                conf[key] = head_conf[key];
+            }
+        }
+    }
+
+    function pushClass(name) {
+        klass[klass.length] = name;
+    }
+
+    function removeClass(name) {
+        var re = new RegExp("\\b" + name + "\\b");
+        html.className = html.className.replace(re, '');
+    }
+
+    function each(arr, fn) {
+        for (var i = 0, arr_length = arr.length; i < arr_length; i++) {
+            fn.call(arr, arr[i], i);
+        }
+    }
+
+    // API
+    var api = window[conf.head] = function() {
+        api.ready.apply(null, arguments);
+    };
+
+    api.feature = function(key, enabled, queue) {
+
+        // internal: apply all classes
+        if (!key) {
+            html.className += ' ' + klass.join( ' ' );
+            klass = [];
+            return;
+        }
+
+        if (Object.prototype.toString.call(enabled) == '[object Function]') {
+            enabled = enabled.call();
+        }
+
+        pushClass((enabled ? '' : 'no-') + key);
+        api[key] = !!enabled;
+
+        // apply class to HTML element
+        if (!queue) {
+            removeClass('no-' + key);
+            removeClass(key);
+            api.feature();
+        }
+
+        return api;
+    };
+
+    // browser type & version
+    var ua = navigator.userAgent.toLowerCase();
+
+    ua = /(webkit)[ \/]([\w.]+)/.exec( ua ) ||
+        /(opera)(?:.*version)?[ \/]([\w.]+)/.exec( ua ) ||
+        /(msie) ([\w.]+)/.exec( ua ) ||
+        !/compatible/.test( ua ) && /(mozilla)(?:.*? rv:([\w.]+))?/.exec( ua ) || [];
+
+
+    if (ua[1] == 'msie') {
+        ua[1] = 'ie';
+        ua[2] = document.documentMode || ua[2];
+    }
+
+    pushClass(ua[1]);
+
+    api.browser = { version: ua[2] };
+    api.browser[ua[1]] = true;
+
+    // IE specific
+    if (api.browser.ie) {
+
+        pushClass("ie" + parseFloat(ua[2]));
+
+        // IE versions
+        for (var ver = 3; ver < 11; ver++) {
+            if (parseFloat(ua[2]) < ver) { pushClass("lt-ie" + ver); }
+        }
+
+        // HTML5 support
+        each("abbr|article|aside|audio|canvas|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video".split("|"), function(el) {
+            doc.createElement(el);
+        });
+                
+    }
+    
+
+    // CSS "router"
+    each(location.pathname.split("/"), function(el, i) {
+
+        if (this.length > 2 && this[i + 1] !== undefined) {
+            if (i) { pushClass(this.slice(1, i+1).join("-") + conf.section); }
+
+        } else {
+
+            // pageId
+            var id = el || "index", index = id.indexOf(".");
+            if (index > 0) { id = id.substring(0, index); }
+            html.id = id + conf.page;
+
+            // on root?
+            if (!i) { pushClass("root" + conf.section); }
+      }
+    });
+
+
+    // screen resolution: w-100, lt-480, lt-1024 ...
+    function screenSize() {
+        var w = window.outerWidth || html.clientWidth;
+
+        // remove earlier widths
+        html.className = html.className.replace(/ (w|lt)-\d+/g, "");
+
+        // add new ones
+        pushClass("w-" + Math.round(w / 100) * 100);
+
+        each(conf.screens, function(width) {
+            if (w <= width) { pushClass("lt-" + width); }
+        });
+
+        api.feature();
+    }
+
+    screenSize();
+    window.onresize = screenSize;
+
+    api.feature("js", true).feature();
+
+})(document);
+
+
+/**
+    Head JS     The only script in your <HEAD>
+    Copyright   Tero Piirainen (tipiirai)
+    License     MIT / http://bit.ly/mit-license
+    Version     0.96
+
+    http://headjs.com
+*/
+(function() {
+    /*
+        To add a new test:
+
+        head.feature("video", function() {
+            var tag = document.createElement('video');
+            return !!tag.canPlayType;
+        });
+
+        Good place to grab more tests
+
+        https://github.com/Modernizr/Modernizr/blob/master/modernizr.js
+    */
+
+
+    /* CSS modernizer */
+    var el = document.createElement("i"),
+         style = el.style,
+         prefs = ' -o- -moz- -ms- -webkit- -khtml- '.split(' '),
+         domPrefs = 'Webkit Moz O ms Khtml'.split(' '),
+
+         head_var = window.head_conf && head_conf.head || "head",
+         api = window[head_var];
+
+
+     // Thanks Paul Irish!
+    function testProps(props) {
+        for (var i in props) {
+            if (style[props[i]] !== undefined) {
+                return true;
+            }
+        }
+    }
+
+
+    function testAll(prop) {
+        var camel = prop.charAt(0).toUpperCase() + prop.substr(1),
+             props   = (prop + ' ' + domPrefs.join(camel + ' ') + camel).split(' ');
+
+        return !!testProps(props);
+    }
+
+    var tests = {
+
+        gradient: function() {
+            var s1 = 'background-image:',
+                 s2 = 'gradient(linear,left top,right bottom,from(#9f9),to(#fff));',
+                 s3 = 'linear-gradient(left top,#eee,#fff);';
+
+            style.cssText = (s1 + prefs.join(s2 + s1) + prefs.join(s3 + s1)).slice(0,-s1.length);
+            return !!style.backgroundImage;
+        },
+
+        rgba: function() {
+            style.cssText = "background-color:rgba(0,0,0,0.5)";
+            return !!style.backgroundColor;
+        },
+
+        opacity: function() {
+            return el.style.opacity === "";
+        },
+
+        textshadow: function() {
+            return style.textShadow === '';
+        },
+
+        multiplebgs: function() {
+            style.cssText = "background:url(//:),url(//:),red url(//:)";
+            return new RegExp("(url\\s*\\(.*?){3}").test(style.background);
+        },
+
+        boxshadow: function() {
+            return testAll("boxShadow");
+        },
+
+        borderimage: function() {
+            return testAll("borderImage");
+        },
+
+        borderradius: function() {
+            return testAll("borderRadius");
+        },
+
+        cssreflections: function() {
+            return testAll("boxReflect");
+        },
+
+        csstransforms: function() {
+            return testAll("transform");
+        },
+
+        csstransitions: function() {
+            return testAll("transition");
+        },
+
+        /*
+            font-face support. Uses browser sniffing but is synchronous.
+
+            http://paulirish.com/2009/font-face-feature-detection/
+        */
+        fontface: function() {
+            var ua = navigator.userAgent, parsed;
+
+            if (/*@cc_on@if(@_jscript_version>=5)!@end@*/0)
+                return true;
+                
+            if (parsed = ua.match(/Chrome\/(\d+\.\d+\.\d+\.\d+)/))
+                return parsed[1] >= '4.0.249.4' || 1 * parsed[1].split(".")[0] > 5;
+            if ((parsed = ua.match(/Safari\/(\d+\.\d+)/)) && !/iPhone/.test(ua))
+                return parsed[1] >= '525.13';
+            if (/Opera/.test({}.toString.call(window.opera)))
+                return opera.version() >= '10.00';
+            if (parsed = ua.match(/rv:(\d+\.\d+\.\d+)[^b].*Gecko\//))
+                return parsed[1] >= '1.9.1';
+
+            return false;
+        }
+    };
+
+    // queue features
+    for (var key in tests) {
+        if (tests[key]) {
+            api.feature(key, tests[key].call(), true);
+        }
+    }
+
+    // enable features at once
+    api.feature();
+
+})();
+
+
+/**
+    Head JS     The only script in your <HEAD>
+    Copyright   Tero Piirainen (tipiirai)
+    License     MIT / http://bit.ly/mit-license
+    Version     0.96
+
+    http://headjs.com
+*/
+(function(doc) {
+
+    var head = doc.documentElement,
+        isHeadReady,
+        isDomReady,
+        domWaiters = [],
+        queue = [],        // waiters for the "head ready" event
+        handlers = {},     // user functions waiting for events
+        scripts = {},      // loadable scripts in different states
+        isAsync = doc.createElement("script").async === true || "MozAppearance" in doc.documentElement.style || window.opera;
+
+
+    /*** public API ***/
+    var head_var = window.head_conf && head_conf.head || "head",
+         api = window[head_var] = (window[head_var] || function() { api.ready.apply(null, arguments); });
+
+    // states
+    var PRELOADED = 1,
+        PRELOADING = 2,
+        LOADING = 3,
+        LOADED = 4;
+
+
+    // Method 1: simply load and let browser take care of ordering
+    if (isAsync) {
+
+        api.js = function() {
+
+            var args = arguments,
+                 fn = args[args.length -1],
+                 els = {};
+
+            if (!isFunc(fn)) { fn = null; }
+
+            each(args, function(el, i) {
+
+                if (el != fn) {
+                    el = getScript(el);
+                    els[el.name] = el;
+
+                    load(el, fn && i == args.length -2 ? function() {
+                        if (allLoaded(els)) { one(fn); }
+
+                    } : null);
+                }
+            });
+
+            return api;
+        };
+
+
+    // Method 2: preload with text/cache hack
+    } else {
+
+        api.js = function() {
+
+            var args = arguments,
+                rest = [].slice.call(args, 1),
+                next = rest[0];
+
+            // wait for a while. immediate execution causes some browsers to ignore caching
+            if (!isHeadReady) {
+                queue.push(function()  {
+                    api.js.apply(null, args);
+                });
+                return api;
+            }
+
+            // multiple arguments
+            if (next) {
+
+                // load
+                each(rest, function(el) {
+                    if (!isFunc(el)) {
+                        preload(getScript(el));
+                    }
+                });
+
+                // execute
+                load(getScript(args[0]), isFunc(next) ? next : function() {
+                    api.js.apply(null, rest);
+                });
+
+
+            // single script
+            } else {
+                load(getScript(args[0]));
+            }
+
+            return api;
+        };
+    }
+
+    api.ready = function(key, fn) {
+
+        // DOM ready check: head.ready(document, function() { });
+        if (key == doc) {
+            if (isDomReady) { one(fn);  }
+            else { domWaiters.push(fn); }
+            return api;
+        }
+
+        // shift arguments
+        if (isFunc(key)) {
+            fn = key;
+            key = "ALL";
+        }    
+
+        // make sure arguments are sane
+        if (typeof key != 'string' || !isFunc(fn)) { return api; }
+
+        var script = scripts[key];
+        
+        // script already loaded --> execute and return
+        if (script && script.state == LOADED || key == 'ALL' && allLoaded() && isDomReady) {
+            one(fn);
+            return api;
+        }
+
+        var arr = handlers[key];
+        if (!arr) { arr = handlers[key] = [fn]; }
+        else { arr.push(fn); }
+        return api;
+    };
+
+
+    // perform this when DOM is ready
+    api.ready(doc, function() {
+
+        if (allLoaded()) {
+            each(handlers.ALL, function(fn) {
+                one(fn);
+            });
+        }
+
+        if (api.feature) {
+            api.feature("domloaded", true);
+        }
+    });
+
+
+    /*** private functions ***/
+    
+    
+    // call function once
+    function one(fn) {
+        if (fn._done) { return; }
+        fn();
+        fn._done = 1;
+    }
+
+
+    function toLabel(url) {
+        var els = url.split("/"),
+             name = els[els.length -1],
+             i = name.indexOf("?");
+
+        return i != -1 ? name.substring(0, i) : name;
+    }
+
+
+    function getScript(url) {
+
+        var script;
+
+        if (typeof url == 'object') {
+            for (var key in url) {
+                if (url[key]) {
+                    script = { name: key, url: url[key] };
+                }
+            }
+        } else {
+            script = { name: toLabel(url),  url: url };
+        }
+
+        var existing = scripts[script.name];
+        if (existing && existing.url === script.url) { return existing; }
+
+        scripts[script.name] = script;
+        return script;
+    }
+
+
+    function each(arr, fn) {
+        if (!arr) { return; }
+
+        // arguments special type
+        if (typeof arr == 'object') { arr = [].slice.call(arr); }
+
+        // do the job
+        for (var i = 0; i < arr.length; i++) {
+            fn.call(arr, arr[i], i);
+        }
+    }
+
+    function isFunc(el) {
+        return Object.prototype.toString.call(el) == '[object Function]';
+    }
+
+    function allLoaded(els) {
+
+        els = els || scripts;
+
+        var loaded;
+        
+        for (var name in els) {
+            if (els.hasOwnProperty(name) && els[name].state != LOADED) { return false; }
+            loaded = true;
+        }
+        
+        return loaded;
+    }
+
+
+    function onPreload(script) {
+        script.state = PRELOADED;
+
+        each(script.onpreload, function(el) {
+            el.call();
+        });
+    }
+
+    function preload(script, callback) {
+
+        if (script.state === undefined) {
+
+            script.state = PRELOADING;
+            script.onpreload = [];
+
+            scriptTag({ src: script.url, type: 'cache'}, function()  {
+                onPreload(script);
+            });
+        }
+    }
+
+    function load(script, callback) {
+
+        if (script.state == LOADED) {
+            return callback && callback();
+        }
+
+        if (script.state == LOADING) {
+            return api.ready(script.name, callback);
+        }
+
+        if (script.state == PRELOADING) {
+            return script.onpreload.push(function() {
+                load(script, callback);
+            });
+        }
+
+        script.state = LOADING;
+
+        scriptTag(script.url, function() {
+
+            script.state = LOADED;
+
+            if (callback) { callback(); }
+
+            // handlers for this script
+            each(handlers[script.name], function(fn) {
+                one(fn);
+            });
+
+            // everything ready
+            if (allLoaded() && isDomReady) {
+                each(handlers.ALL, function(fn) {
+                    one(fn);
+                });
+            }
+        });
+    }
+
+
+    function scriptTag(src, callback) {
+
+        var s = doc.createElement('script');
+        s.type = 'text/' + (src.type || 'javascript');
+        s.src = src.src || src;
+        s.async = false;
+
+        s.onreadystatechange = s.onload = function() {
+
+            var state = s.readyState;
+
+            if (!callback.done && (!state || /loaded|complete/.test(state))) {
+                callback.done = true;
+                callback();
+            }
+        };
+
+        // use body if available. more safe in IE
+        (doc.body || head).appendChild(s);
+    }
+
+    /*
+        The much desired DOM ready check
+        Thanks to jQuery and http://javascript.nwbox.com/IEContentLoaded/
+    */
+
+    function fireReady() {
+        if (!isDomReady) {
+            isDomReady = true;
+            each(domWaiters, function(fn) {
+                one(fn);
+            });
+        }
+    }
+
+    // W3C
+    if (window.addEventListener) {
+        doc.addEventListener("DOMContentLoaded", fireReady, false);
+
+        // fallback. this is always called
+        window.addEventListener("load", fireReady, false);
+
+    // IE
+    } else if (window.attachEvent) {
+
+        // for iframes
+        doc.attachEvent("onreadystatechange", function()  {
+            if (doc.readyState === "complete" ) {
+                fireReady();
+            }
+        });
+
+
+        // avoid frames with different domains issue
+        var frameElement = 1;
+
+        try {
+            frameElement = window.frameElement;
+
+        } catch(e) {}
+
+
+        if (!frameElement && head.doScroll) {
+
+            (function() {
+                try {
+                    head.doScroll("left");
+                    fireReady();
+
+                } catch(e) {
+                    setTimeout(arguments.callee, 1);
+                    return;
+                }
+            })();
+        }
+
+        // fallback
+        window.attachEvent("onload", fireReady);
+    }
+
+
+    // enable document.readyState for Firefox <= 3.5
+    if (!doc.readyState && doc.addEventListener) {
+        doc.readyState = "loading";
+        doc.addEventListener("DOMContentLoaded", handler = function () {
+            doc.removeEventListener("DOMContentLoaded", handler, false);
+            doc.readyState = "complete";
+        }, false);
+    }
+
+    /*
+        We wait for 300 ms before script loading starts. for some reason this is needed
+        to make sure scripts are cached. Not sure why this happens yet. A case study:
+
+        https://github.com/headjs/headjs/issues/closed#issue/83
+    */
+    setTimeout(function() {
+        isHeadReady = true;
+        each(queue, function(fn) { fn(); });
+
+    }, 300);
+
+})(document);

http://git-wip-us.apache.org/repos/asf/incubator-geode/blob/b6a3fd2e/gemfire-site/content/js/html5shiv.js
----------------------------------------------------------------------
diff --git a/gemfire-site/content/js/html5shiv.js b/gemfire-site/content/js/html5shiv.js
new file mode 100644
index 0000000..784f221
--- /dev/null
+++ b/gemfire-site/content/js/html5shiv.js
@@ -0,0 +1,8 @@
+/*
+ HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
+a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
+c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||
+"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment();
+for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);