allow multiple control elements, document usage of global controls (#184, #204)
authorHakim El Hattab <hakim.elhattab@gmail.com>
Sat, 10 Nov 2012 16:40:19 +0000 (11:40 -0500)
committerHakim El Hattab <hakim.elhattab@gmail.com>
Sat, 10 Nov 2012 16:40:19 +0000 (11:40 -0500)
README.md
css/reveal.css
css/theme/beige.css
css/theme/default.css
css/theme/serif.css
css/theme/simple.css
css/theme/sky.css
css/theme/template/theme.scss
index.html
js/reveal.js
js/reveal.min.js

index 4cb15eb53ec8c7a0486aa316b00075c3e4ba8cef..ef3e406cabc7aa0ae682f83e584a3fe8a4d039b6 100644 (file)
--- a/README.md
+++ b/README.md
@@ -186,6 +186,19 @@ It's easy to link between slides. The first example below targets the index of a
 <a href="#/2/2">Link</a>
 <a href="#/some-slide">Link</a>
 ```
+
+You can also add relative navigation links, similar to the built in reveal.js controls, by appending one of the following classes on any element. Note that each element is automatically given an ```enabled``` class when its a valid navigation route based on the current slide.
+
+```html
+<a href="#" class="navigate-left">
+<a href="#" class="navigate-right">
+<a href="#" class="navigate-up">
+<a href="#" class="navigate-down">
+<a href="#" class="navigate-prev"> <!-- Previous vertical slide or horizontal slide -->
+<a href="#" class="navigate-next"> <!-- Next vertical or horizontal slide -->
+```
+
+
 ### Fullscreen mode
 Just press »F« on your keyboard to show your presentation in fullscreen mode. Press the »ESC« key to exit fullscreen mode.
 
index 2e72aca9c60c2e4ea28fa07e241acf2e5f7357c3..c4c2991bd1ec1843703f9bbcf7cb2a0beb14263b 100644 (file)
@@ -346,14 +346,14 @@ body {
        margin-top: 1px;
 }
 
-.reveal .controls div.left {
+.reveal .controls div.navigate-left {
        top: 42px;
 
        border-right-width: 22px;
        border-right-color: #eee;
 }
 
-.reveal .controls div.right {
+.reveal .controls div.navigate-right {
        left: 74px;
        top: 42px;
 
@@ -361,14 +361,14 @@ body {
        border-left-color: #eee;
 }
 
-.reveal .controls div.up {
+.reveal .controls div.navigate-up {
        left: 42px;
 
        border-bottom-width: 22px;
        border-bottom-color: #eee;
 }
 
-.reveal .controls div.down {
+.reveal .controls div.navigate-down {
        left: 42px;
        top: 74px;
 
index 5e40883278f7b62b61db7f5ba9aa9140e6668b9a..c8d38f2687691eccfaa1eb4192491d0d865db07a 100644 (file)
@@ -110,39 +110,39 @@ body {
 /*********************************************
  * NAVIGATION CONTROLS
  *********************************************/
-.reveal .controls div.left,
-.reveal .controls div.left.enabled {
+.reveal .controls div.navigate-left,
+.reveal .controls div.navigate-left.enabled {
   border-right-color: #8b743d;
 }
 
-.reveal .controls div.right,
-.reveal .controls div.right.enabled {
+.reveal .controls div.navigate-right,
+.reveal .controls div.navigate-right.enabled {
   border-left-color: #8b743d;
 }
 
-.reveal .controls div.up,
-.reveal .controls div.up.enabled {
+.reveal .controls div.navigate-up,
+.reveal .controls div.navigate-up.enabled {
   border-bottom-color: #8b743d;
 }
 
-.reveal .controls div.down,
-.reveal .controls div.down.enabled {
+.reveal .controls div.navigate-down,
+.reveal .controls div.navigate-down.enabled {
   border-top-color: #8b743d;
 }
 
-.reveal .controls div.left.enabled:hover {
+.reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #c0a86e;
 }
 
-.reveal .controls div.right.enabled:hover {
+.reveal .controls div.navigate-right.enabled:hover {
   border-left-color: #c0a86e;
 }
 
-.reveal .controls div.up.enabled:hover {
+.reveal .controls div.navigate-up.enabled:hover {
   border-bottom-color: #c0a86e;
 }
 
-.reveal .controls div.down.enabled:hover {
+.reveal .controls div.navigate-down.enabled:hover {
   border-top-color: #c0a86e;
 }
 
index 28ed7d3b9016fcac6a1334b42f328ccc5c2ffb60..30d7463d8a77a1a50f0aa4d12d1b5f19c1c2f9d4 100644 (file)
@@ -110,39 +110,39 @@ body {
 /*********************************************
  * NAVIGATION CONTROLS
  *********************************************/
-.reveal .controls div.left,
-.reveal .controls div.left.enabled {
+.reveal .controls div.navigate-left,
+.reveal .controls div.navigate-left.enabled {
   border-right-color: #13daec;
 }
 
-.reveal .controls div.right,
-.reveal .controls div.right.enabled {
+.reveal .controls div.navigate-right,
+.reveal .controls div.navigate-right.enabled {
   border-left-color: #13daec;
 }
 
-.reveal .controls div.up,
-.reveal .controls div.up.enabled {
+.reveal .controls div.navigate-up,
+.reveal .controls div.navigate-up.enabled {
   border-bottom-color: #13daec;
 }
 
-.reveal .controls div.down,
-.reveal .controls div.down.enabled {
+.reveal .controls div.navigate-down,
+.reveal .controls div.navigate-down.enabled {
   border-top-color: #13daec;
 }
 
-.reveal .controls div.left.enabled:hover {
+.reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #71e9f4;
 }
 
-.reveal .controls div.right.enabled:hover {
+.reveal .controls div.navigate-right.enabled:hover {
   border-left-color: #71e9f4;
 }
 
-.reveal .controls div.up.enabled:hover {
+.reveal .controls div.navigate-up.enabled:hover {
   border-bottom-color: #71e9f4;
 }
 
-.reveal .controls div.down.enabled:hover {
+.reveal .controls div.navigate-down.enabled:hover {
   border-top-color: #71e9f4;
 }
 
index ece6124f77411b807ff3ce93fd1e093028c07bda..3d406af29499e04f04cd6f47be504a7098bb89de 100644 (file)
@@ -97,39 +97,39 @@ body {
 /*********************************************
  * NAVIGATION CONTROLS
  *********************************************/
-.reveal .controls div.left,
-.reveal .controls div.left.enabled {
+.reveal .controls div.navigate-left,
+.reveal .controls div.navigate-left.enabled {
   border-right-color: #51483d;
 }
 
-.reveal .controls div.right,
-.reveal .controls div.right.enabled {
+.reveal .controls div.navigate-right,
+.reveal .controls div.navigate-right.enabled {
   border-left-color: #51483d;
 }
 
-.reveal .controls div.up,
-.reveal .controls div.up.enabled {
+.reveal .controls div.navigate-up,
+.reveal .controls div.navigate-up.enabled {
   border-bottom-color: #51483d;
 }
 
-.reveal .controls div.down,
-.reveal .controls div.down.enabled {
+.reveal .controls div.navigate-down,
+.reveal .controls div.navigate-down.enabled {
   border-top-color: #51483d;
 }
 
-.reveal .controls div.left.enabled:hover {
+.reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #8b7c69;
 }
 
-.reveal .controls div.right.enabled:hover {
+.reveal .controls div.navigate-right.enabled:hover {
   border-left-color: #8b7c69;
 }
 
-.reveal .controls div.up.enabled:hover {
+.reveal .controls div.navigate-up.enabled:hover {
   border-bottom-color: #8b7c69;
 }
 
-.reveal .controls div.down.enabled:hover {
+.reveal .controls div.navigate-down.enabled:hover {
   border-top-color: #8b7c69;
 }
 
index 6d0771ab623fcd1ceed7d3193c43da7713c978d3..cf4f042cc3591508e3f85130a6c5d880e5b31e7b 100644 (file)
@@ -99,39 +99,39 @@ body {
 /*********************************************
  * NAVIGATION CONTROLS
  *********************************************/
-.reveal .controls div.left,
-.reveal .controls div.left.enabled {
+.reveal .controls div.navigate-left,
+.reveal .controls div.navigate-left.enabled {
   border-right-color: darkblue;
 }
 
-.reveal .controls div.right,
-.reveal .controls div.right.enabled {
+.reveal .controls div.navigate-right,
+.reveal .controls div.navigate-right.enabled {
   border-left-color: darkblue;
 }
 
-.reveal .controls div.up,
-.reveal .controls div.up.enabled {
+.reveal .controls div.navigate-up,
+.reveal .controls div.navigate-up.enabled {
   border-bottom-color: darkblue;
 }
 
-.reveal .controls div.down,
-.reveal .controls div.down.enabled {
+.reveal .controls div.navigate-down,
+.reveal .controls div.navigate-down.enabled {
   border-top-color: darkblue;
 }
 
-.reveal .controls div.left.enabled:hover {
+.reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #0000f1;
 }
 
-.reveal .controls div.right.enabled:hover {
+.reveal .controls div.navigate-right.enabled:hover {
   border-left-color: #0000f1;
 }
 
-.reveal .controls div.up.enabled:hover {
+.reveal .controls div.navigate-up.enabled:hover {
   border-bottom-color: #0000f1;
 }
 
-.reveal .controls div.down.enabled:hover {
+.reveal .controls div.navigate-down.enabled:hover {
   border-top-color: #0000f1;
 }
 
index 18a486396f0b4f50cbce5c6d66c80d43ce7344eb..43bb4f49e2347217ff493d389cde6e8ff4b00529 100644 (file)
@@ -103,39 +103,39 @@ body {
 /*********************************************
  * NAVIGATION CONTROLS
  *********************************************/
-.reveal .controls div.left,
-.reveal .controls div.left.enabled {
+.reveal .controls div.navigate-left,
+.reveal .controls div.navigate-left.enabled {
   border-right-color: #3b759e;
 }
 
-.reveal .controls div.right,
-.reveal .controls div.right.enabled {
+.reveal .controls div.navigate-right,
+.reveal .controls div.navigate-right.enabled {
   border-left-color: #3b759e;
 }
 
-.reveal .controls div.up,
-.reveal .controls div.up.enabled {
+.reveal .controls div.navigate-up,
+.reveal .controls div.navigate-up.enabled {
   border-bottom-color: #3b759e;
 }
 
-.reveal .controls div.down,
-.reveal .controls div.down.enabled {
+.reveal .controls div.navigate-down,
+.reveal .controls div.navigate-down.enabled {
   border-top-color: #3b759e;
 }
 
-.reveal .controls div.left.enabled:hover {
+.reveal .controls div.navigate-left.enabled:hover {
   border-right-color: #74a7cb;
 }
 
-.reveal .controls div.right.enabled:hover {
+.reveal .controls div.navigate-right.enabled:hover {
   border-left-color: #74a7cb;
 }
 
-.reveal .controls div.up.enabled:hover {
+.reveal .controls div.navigate-up.enabled:hover {
   border-bottom-color: #74a7cb;
 }
 
-.reveal .controls div.down.enabled:hover {
+.reveal .controls div.navigate-down.enabled:hover {
   border-top-color: #74a7cb;
 }
 
index 6a80b623c577e639c29d082a99aec292aa536a06..a818ec29992e66e520e1648463581b2432b0ff69 100644 (file)
@@ -106,39 +106,39 @@ body {
  * NAVIGATION CONTROLS
  *********************************************/
 
-.reveal .controls div.left,
-.reveal .controls div.left.enabled {
+.reveal .controls div.navigate-left,
+.reveal .controls div.navigate-left.enabled {
        border-right-color: $linkColor;
 }
 
-.reveal .controls div.right,
-.reveal .controls div.right.enabled {
+.reveal .controls div.navigate-right,
+.reveal .controls div.navigate-right.enabled {
        border-left-color: $linkColor;
 }
 
-.reveal .controls div.up,
-.reveal .controls div.up.enabled {
+.reveal .controls div.navigate-up,
+.reveal .controls div.navigate-up.enabled {
        border-bottom-color: $linkColor;
 }
 
-.reveal .controls div.down,
-.reveal .controls div.down.enabled {
+.reveal .controls div.navigate-down,
+.reveal .controls div.navigate-down.enabled {
        border-top-color: $linkColor;
 }
 
-.reveal .controls div.left.enabled:hover {
+.reveal .controls div.navigate-left.enabled:hover {
        border-right-color: $linkColorHover;
 }
 
-.reveal .controls div.right.enabled:hover {
+.reveal .controls div.navigate-right.enabled:hover {
        border-left-color: $linkColorHover;
 }
 
-.reveal .controls div.up.enabled:hover {
+.reveal .controls div.navigate-up.enabled:hover {
        border-bottom-color: $linkColorHover;
 }
 
-.reveal .controls div.down.enabled:hover {
+.reveal .controls div.navigate-down.enabled:hover {
        border-top-color: $linkColorHover;
 }
 
index 82570f3497b7286669b2767eb05d36ec79279893..426b8cfaf5fa36e113b8ab55b97b1802b748039e 100644 (file)
@@ -61,9 +61,9 @@
                                                <h2>Vertical Slides</h2>
                                                <p>
                                                        Slides can be nested inside of other slides,
-                                                       try pressing <a href="#/2/1">down</a>.
+                                                       try pressing <a href="#" class="navigate-down">down</a>.
                                                </p>
-                                               <a href="#/2/1" class="image">
+                                               <a href="#" class="image navigate-down">
                                                        <img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Down arrow">
                                                </a>
                                        </section>
                                                        will be added as a class to the document element when the slide is open. This lets you
                                                        apply broader style changes, like switching the background.
                                                </p>
-                                               <a href="#/7/1" class="image">
+                                               <a href="#" class="image navigate-down">
                                                        <img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Down arrow">
                                                </a>
                                        </section>
                                        <section data-state="blackout">
                                                <h2>"blackout"</h2>
-                                               <a href="#/7/2" class="image">
+                                               <a href="#" class="image navigate-down">
                                                        <img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Down arrow">
                                                </a>
                                        </section>
                                        <section data-state="soothe">
                                                <h2>"soothe"</h2>
-                                               <a href="#/7/0" class="image">
-                                                       <img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Up arrow" style="-webkit-transform: rotate(180deg);">
+                                               <a href="#" class="image navigate-next">
+                                                       <img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Up arrow" style="-webkit-transform: rotate(-90deg);">
                                                </a>
                                        </section>
                                </section>
@@ -340,7 +340,7 @@ function linkify( selector ) {
                </div>
 
                <script src="lib/js/head.min.js"></script>
-               <script src="js/reveal.min.js"></script>
+               <script src="js/reveal.js"></script>
 
                <script>
 
index 2507b226ad7ed325839d3b8a8cd0363ba43ad0ae..b54536ea5a9adabb62a25f83e3137f2ed6af4718 100644 (file)
@@ -153,10 +153,10 @@ var Reveal = (function(){
                if( !dom.wrapper.querySelector( '.controls' ) && config.controls ) {
                        var controlsElement = document.createElement( 'aside' );
                        controlsElement.classList.add( 'controls' );
-                       controlsElement.innerHTML = '<div class="left"></div>' +
-                                                                               '<div class="right"></div>' +
-                                                                               '<div class="up"></div>' +
-                                                                               '<div class="down"></div>';
+                       controlsElement.innerHTML = '<div class="navigate-left"></div>' +
+                                                                               '<div class="navigate-right"></div>' +
+                                                                               '<div class="navigate-up"></div>' +
+                                                                               '<div class="navigate-down"></div>';
                        dom.wrapper.appendChild( controlsElement );
                }
 
@@ -180,10 +180,14 @@ var Reveal = (function(){
 
                if ( config.controls ) {
                        dom.controls = document.querySelector( '.reveal .controls' );
-                       dom.controlsLeft = document.querySelector( '.reveal .controls .left' );
-                       dom.controlsRight = document.querySelector( '.reveal .controls .right' );
-                       dom.controlsUp = document.querySelector( '.reveal .controls .up' );
-                       dom.controlsDown = document.querySelector( '.reveal .controls .down' );
+
+                       // There can be multiple instances of controls throughout the page
+                       dom.controlsLeft = toArray( document.querySelectorAll( '.navigate-left' ) );
+                       dom.controlsRight = toArray( document.querySelectorAll( '.navigate-right' ) );
+                       dom.controlsUp = toArray( document.querySelectorAll( '.navigate-up' ) );
+                       dom.controlsDown = toArray( document.querySelectorAll( '.navigate-down' ) );
+                       dom.controlsPrev = toArray( document.querySelectorAll( '.navigate-prev' ) );
+                       dom.controlsNext = toArray( document.querySelectorAll( '.navigate-next' ) );
                }
        }
 
@@ -354,10 +358,12 @@ var Reveal = (function(){
                }
 
                if ( config.controls && dom.controls ) {
-                       dom.controlsLeft.addEventListener( 'click', preventAndForward( navigateLeft ), false );
-                       dom.controlsRight.addEventListener( 'click', preventAndForward( navigateRight ), false );
-                       dom.controlsUp.addEventListener( 'click', preventAndForward( navigateUp ), false );
-                       dom.controlsDown.addEventListener( 'click', preventAndForward( navigateDown ), false );
+                       dom.controlsLeft.forEach( function( el ) {              el.addEventListener( 'click', preventAndForward( navigateLeft ), false );               } );
+                       dom.controlsRight.forEach( function( el ) {     el.addEventListener( 'click', preventAndForward( navigateRight ), false );              } );
+                       dom.controlsUp.forEach( function( el ) {                el.addEventListener( 'click', preventAndForward( navigateUp ), false );                 } );
+                       dom.controlsDown.forEach( function( el ) {              el.addEventListener( 'click', preventAndForward( navigateDown ), false );               } );
+                       dom.controlsPrev.forEach( function( el ) {              el.addEventListener( 'click', preventAndForward( navigatePrev ), false );               } );
+                       dom.controlsNext.forEach( function( el ) {              el.addEventListener( 'click', preventAndForward( navigateNext ), false );               } );
                }
        }
 
@@ -377,10 +383,12 @@ var Reveal = (function(){
                }
 
                if ( config.controls && dom.controls ) {
-                       dom.controlsLeft.removeEventListener( 'click', preventAndForward( navigateLeft ), false );
-                       dom.controlsRight.removeEventListener( 'click', preventAndForward( navigateRight ), false );
-                       dom.controlsUp.removeEventListener( 'click', preventAndForward( navigateUp ), false );
-                       dom.controlsDown.removeEventListener( 'click', preventAndForward( navigateDown ), false );
+                       dom.controlsLeft.forEach( function( el ) {              el.removeEventListener( 'click', preventAndForward( navigateLeft ), false );            } );
+                       dom.controlsRight.forEach( function( el ) {     el.removeEventListener( 'click', preventAndForward( navigateRight ), false );           } );
+                       dom.controlsUp.forEach( function( el ) {                el.removeEventListener( 'click', preventAndForward( navigateUp ), false );                      } );
+                       dom.controlsDown.forEach( function( el ) {              el.removeEventListener( 'click', preventAndForward( navigateDown ), false );            } );
+                       dom.controlsPrev.forEach( function( el ) {              el.removeEventListener( 'click', preventAndForward( navigatePrev ), false );            } );
+                       dom.controlsNext.forEach( function( el ) {              el.removeEventListener( 'click', preventAndForward( navigateNext ), false );            } );
                }
        }
 
@@ -394,6 +402,19 @@ var Reveal = (function(){
                }
        }
 
+       /**
+        * Converts the target object to an array.
+        */
+       function toArray( o ) {
+               return Array.prototype.slice.call( o );
+       }
+
+       function each( targets, method, args ) {
+               targets.forEach( function( el ) {
+                       el[method].apply( el, args );
+               } );
+       }
+
        /**
         * Measures the distance in pixels between point a
         * and point b.
@@ -865,15 +886,23 @@ var Reveal = (function(){
                        var routes = availableRoutes();
 
                        // Remove the 'enabled' class from all directions
-                       [ dom.controlsLeft, dom.controlsRight, dom.controlsUp, dom.controlsDown ].forEach( function( node ) {
+                       dom.controlsLeft.concat( dom.controlsRight )
+                                                       .concat( dom.controlsUp )
+                                                       .concat( dom.controlsDown )
+                                                       .concat( dom.controlsPrev )
+                                                       .concat( dom.controlsNext ).forEach( function( node ) {
                                node.classList.remove( 'enabled' );
                        } );
 
                        // Add the 'enabled' class to the available routes
-                       if( routes.left ) dom.controlsLeft.classList.add( 'enabled' );
-                       if( routes.right ) dom.controlsRight.classList.add( 'enabled' );
-                       if( routes.up ) dom.controlsUp.classList.add( 'enabled' );
-                       if( routes.down ) dom.controlsDown.classList.add( 'enabled' );
+                       if( routes.left ) dom.controlsLeft.forEach( function( el ) {    el.classList.add( 'enabled' );          } );
+                       if( routes.right ) dom.controlsRight.forEach( function( el ) {  el.classList.add( 'enabled' );          } );
+                       if( routes.up ) dom.controlsUp.forEach( function( el ) {                el.classList.add( 'enabled' );          } );
+                       if( routes.down ) dom.controlsDown.forEach( function( el ) {    el.classList.add( 'enabled' );          } );
+
+                       // Prev/next buttons
+                       if( routes.left || routes.up ) dom.controlsPrev.forEach( function( el ) {               el.classList.add( 'enabled' );          } );
+                       if( routes.right || routes.down ) dom.controlsNext.forEach( function( el ) {    el.classList.add( 'enabled' );          } );
 
                }
        }
index 74627ea8f106f91e90ffd7b07538e5a9c7734417..948c41196152b3fc5fe42d7a8795bc07b17d1012 100644 (file)
@@ -5,82 +5,89 @@
  *
  * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
  */
-var Reveal=(function(){var m=".reveal .slides>section",b=".reveal .slides>section.present>section",T={controls:true,progress:true,history:false,keyboard:true,overview:true,center:false,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:null,transition:"default",dependencies:[]},aa=T.autoSlide,n=0,e=0,z,H,am=[],f={},V="WebkitPerspective" in document.body.style||"MozPerspective" in document.body.style||"msPerspective" in document.body.style||"OPerspective" in document.body.style||"perspective" in document.body.style,o="WebkitTransform" in document.body.style||"MozTransform" in document.body.style||"msTransform" in document.body.style||"OTransform" in document.body.style||"transform" in document.body.style,A=0,l=0,E=0,ae={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:80};
-function j(an){if((!o&&!V)){document.body.setAttribute("class","no-transforms");return;}u(T,an);d();X();}function Q(){f.theme=document.querySelector("#theme");
-f.wrapper=document.querySelector(".reveal");if(!f.wrapper.querySelector(".progress")&&T.progress){var aq=document.createElement("div");aq.classList.add("progress");
-aq.innerHTML="<span></span>";f.wrapper.appendChild(aq);}if(!f.wrapper.querySelector(".controls")&&T.controls){var ap=document.createElement("aside");ap.classList.add("controls");
-ap.innerHTML='<div class="left"></div><div class="right"></div><div class="up"></div><div class="down"></div>';f.wrapper.appendChild(ap);}if(!f.wrapper.querySelector(".state-background")){var ao=document.createElement("div");
-ao.classList.add("state-background");f.wrapper.appendChild(ao);}if(!f.wrapper.querySelector(".pause-overlay")){var an=document.createElement("div");an.classList.add("pause-overlay");
-f.wrapper.appendChild(an);}f.progress=document.querySelector(".reveal .progress");f.progressbar=document.querySelector(".reveal .progress span");if(T.controls){f.controls=document.querySelector(".reveal .controls");
-f.controlsLeft=document.querySelector(".reveal .controls .left");f.controlsRight=document.querySelector(".reveal .controls .right");f.controlsUp=document.querySelector(".reveal .controls .up");
-f.controlsDown=document.querySelector(".reveal .controls .down");}}function d(){if(navigator.userAgent.match(/(iphone|ipod|android)/i)){document.documentElement.style.overflow="scroll";
-document.body.style.height="120%";window.addEventListener("load",af,false);window.addEventListener("orientationchange",af,false);}}function X(){var ao=[],at=[];
-for(var ap=0,an=T.dependencies.length;ap<an;ap++){var aq=T.dependencies[ap];if(!aq.condition||aq.condition()){if(aq.async){at.push(aq.src);}else{ao.push(aq.src);
-}if(typeof aq.callback==="function"){head.ready(aq.src.match(/([\w\d_\-]*)\.?[^\\\/]*$/i)[0],aq.callback);}}}function ar(){if(at.length){head.js.apply(null,at);
-}I();}if(ao.length){head.ready(ar);head.js.apply(null,ao);}else{ar();}}function I(){Q();F();L();R();K();P();setTimeout(function(){s("ready",{indexh:n,indexv:e,currentSlide:H});
-},1);}function L(){if(V===false){T.transition="linear";}if(T.controls&&f.controls){f.controls.style.display="block";}if(T.progress&&f.progress){f.progress.style.display="block";
-}if(T.transition!=="default"){f.wrapper.classList.add(T.transition);}if(T.center){f.wrapper.classList.add("center");}if(T.mouseWheel){document.addEventListener("DOMMouseScroll",p,false);
-document.addEventListener("mousewheel",p,false);}if(T.rollingLinks){O();}if(T.theme&&f.theme){var ap=f.theme.getAttribute("href");var an=/[^\/]*?(?=\.css)/;
-var ao=ap.match(an)[0];if(T.theme!==ao){ap=ap.replace(an,T.theme);f.theme.setAttribute("href",ap);}}}function F(){document.addEventListener("touchstart",B,false);
-document.addEventListener("touchmove",ah,false);document.addEventListener("touchend",Y,false);window.addEventListener("hashchange",x,false);window.addEventListener("resize",g,false);
-if(T.keyboard){document.addEventListener("keydown",aj,false);}if(T.progress&&f.progress){f.progress.addEventListener("click",r(ak),false);}if(T.controls&&f.controls){f.controlsLeft.addEventListener("click",r(C),false);
-f.controlsRight.addEventListener("click",r(k),false);f.controlsUp.addEventListener("click",r(v),false);f.controlsDown.addEventListener("click",r(G),false);
-}}function W(){document.removeEventListener("keydown",aj,false);document.removeEventListener("touchstart",B,false);document.removeEventListener("touchmove",ah,false);
-document.removeEventListener("touchend",Y,false);window.removeEventListener("hashchange",x,false);window.removeEventListener("resize",g,false);if(T.progress&&f.progress){f.progress.removeEventListener("click",r(ak),false);
-}if(T.controls&&f.controls){f.controlsLeft.removeEventListener("click",r(C),false);f.controlsRight.removeEventListener("click",r(k),false);f.controlsUp.removeEventListener("click",r(v),false);
-f.controlsDown.removeEventListener("click",r(G),false);}}function u(ao,an){for(var ap in an){ao[ap]=an[ap];}}function U(ap,an){var aq=ap.x-an.x,ao=ap.y-an.y;
-return Math.sqrt(aq*aq+ao*ao);}function r(an){return function(ao){ao.preventDefault();an.call(null,ao);};}function af(){setTimeout(function(){window.scrollTo(0,1);
-},0);}function s(ao,an){var ap=document.createEvent("HTMLEvents",1,2);ap.initEvent(ao,true,true);u(ap,an);f.wrapper.dispatchEvent(ap);}function O(){if(V&&!("msPerspective" in document.body.style)){var ao=document.querySelectorAll(".reveal .slides section a:not(.image)");
-for(var ap=0,an=ao.length;ap<an;ap++){var aq=ao[ap];if(aq.textContent&&!aq.querySelector("img")&&(!aq.className||!aq.classList.contains(aq,"roll"))){aq.classList.add("roll");
-aq.innerHTML='<span data-title="'+aq.text+'">'+aq.innerHTML+"</span>";}}}}function R(){if(T.center){var aq=Array.prototype.slice.call(document.querySelectorAll(".reveal .slides section"));
-var ar=-f.wrapper.offsetHeight/2;for(var ap=0,ao=aq.length;ap<ao;ap++){var an=aq[ap];if(an.classList.contains("stack")){an.style.top=0;}else{an.style.top=Math.max(-(an.offsetHeight/2)-20,ar)+"px";
-}}}}function J(){if(T.overview){f.wrapper.classList.add("overview");var an=document.querySelectorAll(m);for(var at=0,aq=an.length;at<aq;at++){var ap=an[at],ax="translateZ(-2500px) translate("+((at-n)*105)+"%, 0%)";
-ap.setAttribute("data-index-h",at);ap.style.display="block";ap.style.WebkitTransform=ax;ap.style.MozTransform=ax;ap.style.msTransform=ax;ap.style.OTransform=ax;
-ap.style.transform=ax;if(!ap.classList.contains("stack")){ap.addEventListener("click",D,true);}var aw=ap.querySelectorAll("section");for(var ar=0,ao=aw.length;
-ar<ao;ar++){var av=aw[ar],au="translate(0%, "+((ar-(at===n?e:0))*105)+"%)";av.setAttribute("data-index-h",at);av.setAttribute("data-index-v",ar);av.style.display="block";
-av.style.WebkitTransform=au;av.style.MozTransform=au;av.style.msTransform=au;av.style.OTransform=au;av.style.transform=au;av.addEventListener("click",D,true);
-}}}}function ag(){if(T.overview){f.wrapper.classList.remove("overview");var aq=Array.prototype.slice.call(document.querySelectorAll(".reveal .slides section"));
-for(var ap=0,an=aq.length;ap<an;ap++){var ao=aq[ap];ao.style.WebkitTransform="";ao.style.MozTransform="";ao.style.msTransform="";ao.style.OTransform="";
-ao.style.transform="";ao.removeEventListener("click",D);}a();}}function Z(an){if(typeof an==="boolean"){an?J():ag();}else{M()?ag():J();}}function M(){return f.wrapper.classList.contains("overview");
-}function ad(){var an=document.body;var ao=an.requestFullScreen||an.webkitRequestFullScreen||an.mozRequestFullScreen||an.msRequestFullScreen;if(ao){ao.apply(an);
-}}function c(){f.wrapper.classList.add("paused");}function q(){f.wrapper.classList.remove("paused");}function ac(){if(ai()){q();}else{c();}}function ai(){return f.wrapper.classList.contains("paused");
-}function a(au,ay){z=H;var aq=am.concat();am.length=0;var ax=n,ao=e;n=al(m,au===undefined?n:au);e=al(b,ay===undefined?e:ay);R();stateLoop:for(var ar=0,av=am.length;
-ar<av;ar++){for(var ap=0;ap<aq.length;ap++){if(aq[ap]===am[ar]){aq.splice(ap,1);continue stateLoop;}}document.documentElement.classList.add(am[ar]);s(am[ar]);
-}while(aq.length){document.documentElement.classList.remove(aq.pop());}if(T.progress&&f.progress){f.progressbar.style.width=(n/(document.querySelectorAll(m).length-1))*window.innerWidth+"px";
-}if(M()){J();}t();clearTimeout(E);E=setTimeout(i,1500);var an=document.querySelectorAll(m);var aw=an[n],at=aw.querySelectorAll("section");H=at[e]||aw;if(n!==ax||e!==ao){s("slidechanged",{indexh:n,indexv:e,previousSlide:z,currentSlide:H});
-}else{z=null;}if(z){z.classList.remove("present");}}function al(aq,aw){var ao=Array.prototype.slice.call(document.querySelectorAll(aq)),av=ao.length;if(av){if(T.loop){aw%=av;
-if(aw<0){aw=av+aw;}}aw=Math.max(Math.min(aw,av-1),0);for(var at=0;at<av;at++){var au=ao[at];if(M()===false){var an=Math.abs((aw-at)%(av-3))||0;au.style.display=an>3?"none":"block";
-}ao[at].classList.remove("past");ao[at].classList.remove("present");ao[at].classList.remove("future");if(at<aw){ao[at].classList.add("past");}else{if(at>aw){ao[at].classList.add("future");
-}}if(au.querySelector("section")){ao[at].classList.add("stack");}}ao[aw].classList.add("present");var ap=ao[aw].getAttribute("data-state");if(ap){am=am.concat(ap.split(" "));
-}var ar=ao[aw].getAttribute("data-autoslide");if(ar){aa=parseInt(ar);}else{aa=T.autoSlide;}}else{aw=0;}return aw;}function t(){if(T.controls&&f.controls){var an=h();
-[f.controlsLeft,f.controlsRight,f.controlsUp,f.controlsDown].forEach(function(ao){ao.classList.remove("enabled");});if(an.left){f.controlsLeft.classList.add("enabled");
-}if(an.right){f.controlsRight.classList.add("enabled");}if(an.up){f.controlsUp.classList.add("enabled");}if(an.down){f.controlsDown.classList.add("enabled");
-}}}function h(){var an=document.querySelectorAll(m),ao=document.querySelectorAll(b);return{left:n>0,right:n<an.length-1,up:e>0,down:e<ao.length-1};}function K(){var at=window.location.hash;
-var ar=at.slice(2).split("/"),ao=at.replace(/#|\//gi,"");if(isNaN(parseInt(ar[0],10))&&ao.length){var ap=document.querySelector("#"+ao);if(ap){var au=Reveal.getIndices(ap);
-a(au.h,au.v);}else{a(n,e);}}else{var aq=parseInt(ar[0],10)||0,an=parseInt(ar[1],10)||0;a(aq,an);}}function i(){if(T.history){var an="/";if(H&&typeof H.getAttribute("id")==="string"){an="/"+H.getAttribute("id");
-}else{if(n>0||e>0){an+=n;}if(e>0){an+="/"+e;}}window.location.hash=an;}}function N(an){var ar=n,ap=e;if(an){var at=!!an.parentNode.nodeName.match(/section/gi);
-var aq=at?an.parentNode:an;var ao=Array.prototype.slice.call(document.querySelectorAll(m));ar=Math.max(ao.indexOf(aq),0);if(at){ap=Math.max(Array.prototype.slice.call(an.parentNode.children).indexOf(an),0);
-}}return{h:ar,v:ap};}function w(){if(document.querySelector(b+".present")){var ao=document.querySelectorAll(b+".present .fragment:not(.visible)");if(ao.length){ao[0].classList.add("visible");
-s("fragmentshown",{fragment:ao[0]});return true;}}else{var an=document.querySelectorAll(m+".present .fragment:not(.visible)");if(an.length){an[0].classList.add("visible");
-s("fragmentshown",{fragment:an[0]});return true;}}return false;}function S(){if(document.querySelector(b+".present")){var ao=document.querySelectorAll(b+".present .fragment.visible");
-if(ao.length){ao[ao.length-1].classList.remove("visible");s("fragmenthidden",{fragment:ao[ao.length-1]});return true;}}else{var an=document.querySelectorAll(m+".present .fragment.visible");
-if(an.length){an[an.length-1].classList.remove("visible");s("fragmenthidden",{fragment:an[an.length-1]});return true;}}return false;}function P(){clearTimeout(l);
-if(aa){l=setTimeout(y,aa);}}function C(){if(h().left&&(M()||S()===false)){a(n-1,0);}}function k(){if(h().right&&(M()||w()===false)){a(n+1,0);}}function v(){if(h().up&&(M()||S()===false)){a(n,e-1);
-}}function G(){if(h().down&&(M()||w()===false)){a(n,e+1);}}function ab(){if(S()===false){if(h().up){v();}else{var an=document.querySelector(".reveal .slides>section.past:nth-child("+n+")");
-if(an){e=(an.querySelectorAll("section").length+1)||0;n--;a();}}}}function y(){if(w()===false){h().down?G():k();}P();}function aj(ap){var ao=document.activeElement;
-var aq=!!(document.activeElement&&(document.activeElement.type||document.activeElement.href||document.activeElement.contentEditable!=="inherit"));if(aq||ap.shiftKey||ap.altKey||ap.ctrlKey||ap.metaKey){return;
-}var an=true;switch(ap.keyCode){case 80:case 33:ab();break;case 78:case 34:y();break;case 72:case 37:C();break;case 76:case 39:k();break;case 75:case 38:v();
-break;case 74:case 40:G();break;case 36:a(0);break;case 35:a(Number.MAX_VALUE);break;case 32:M()?ag():y();break;case 13:M()?ag():an=false;break;case 66:case 190:ac();
-break;case 70:ad();break;default:an=false;}if(an){ap.preventDefault();}else{if(ap.keyCode===27&&V){Z();ap.preventDefault();}}P();}function B(an){ae.startX=an.touches[0].clientX;
-ae.startY=an.touches[0].clientY;ae.startCount=an.touches.length;if(an.touches.length===2&&T.overview){ae.startSpan=U({x:an.touches[1].clientX,y:an.touches[1].clientY},{x:ae.startX,y:ae.startY});
-}}function ah(at){if(!ae.handled){var aq=at.touches[0].clientX;var ap=at.touches[0].clientY;if(at.touches.length===2&&ae.startCount===2&&T.overview){var ar=U({x:at.touches[1].clientX,y:at.touches[1].clientY},{x:ae.startX,y:ae.startY});
-if(Math.abs(ae.startSpan-ar)>ae.threshold){ae.handled=true;if(ar<ae.startSpan){J();}else{ag();}}at.preventDefault();}else{if(at.touches.length===1&&ae.startCount!==2){var ao=aq-ae.startX,an=ap-ae.startY;
-if(ao>ae.threshold&&Math.abs(ao)>Math.abs(an)){ae.handled=true;C();}else{if(ao<-ae.threshold&&Math.abs(ao)>Math.abs(an)){ae.handled=true;k();}else{if(an>ae.threshold){ae.handled=true;
-v();}else{if(an<-ae.threshold){ae.handled=true;G();}}}}at.preventDefault();}}}else{if(navigator.userAgent.match(/android/gi)){at.preventDefault();}}}function Y(an){ae.handled=false;
-}function p(an){clearTimeout(A);A=setTimeout(function(){var ao=an.detail||-an.wheelDelta;if(ao>0){y();}else{ab();}},100);}function ak(ao){var an=Array.prototype.slice.call(document.querySelectorAll(m)).length;
-var ap=Math.floor((ao.clientX/f.wrapper.offsetWidth)*an);a(ap);}function x(an){K();}function g(an){R();}function D(an){if(M()){an.preventDefault();ag();
-n=this.getAttribute("data-index-h");e=this.getAttribute("data-index-v");a();}}return{initialize:j,slide:a,left:C,right:k,up:v,down:G,prev:ab,next:y,prevFragment:S,nextFragment:w,navigateTo:a,navigateLeft:C,navigateRight:k,navigateUp:v,navigateDown:G,navigatePrev:ab,navigateNext:y,toggleOverview:Z,addEventListeners:F,removeEventListeners:W,getIndices:N,getPreviousSlide:function(){return z;
-},getCurrentSlide:function(){return H;},getQueryHash:function(){var an={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(ao){an[ao.split("=").shift()]=ao.split("=").pop();
-});return an;},addEventListener:function(ao,ap,an){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).addEventListener(ao,ap,an);
-}},removeEventListener:function(ao,ap,an){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).removeEventListener(ao,ap,an);
+var Reveal=(function(){var m=".reveal .slides>section",b=".reveal .slides>section.present>section",U={controls:true,progress:true,history:false,keyboard:true,overview:true,center:false,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:null,transition:"default",dependencies:[]},ab=U.autoSlide,n=0,e=0,z,I,ao=[],f={},W="WebkitPerspective" in document.body.style||"MozPerspective" in document.body.style||"msPerspective" in document.body.style||"OPerspective" in document.body.style||"perspective" in document.body.style,o="WebkitTransform" in document.body.style||"MozTransform" in document.body.style||"msTransform" in document.body.style||"OTransform" in document.body.style||"transform" in document.body.style,A=0,l=0,E=0,ag={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:80};
+function j(ap){if((!o&&!W)){document.body.setAttribute("class","no-transforms");return;}u(U,ap);d();Y();}function R(){f.theme=document.querySelector("#theme");
+f.wrapper=document.querySelector(".reveal");if(!f.wrapper.querySelector(".progress")&&U.progress){var at=document.createElement("div");at.classList.add("progress");
+at.innerHTML="<span></span>";f.wrapper.appendChild(at);}if(!f.wrapper.querySelector(".controls")&&U.controls){var ar=document.createElement("aside");ar.classList.add("controls");
+ar.innerHTML='<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>';f.wrapper.appendChild(ar);
+}if(!f.wrapper.querySelector(".state-background")){var aq=document.createElement("div");aq.classList.add("state-background");f.wrapper.appendChild(aq);
+}if(!f.wrapper.querySelector(".pause-overlay")){var ap=document.createElement("div");ap.classList.add("pause-overlay");f.wrapper.appendChild(ap);}f.progress=document.querySelector(".reveal .progress");
+f.progressbar=document.querySelector(".reveal .progress span");if(U.controls){f.controls=document.querySelector(".reveal .controls");f.controlsLeft=H(document.querySelectorAll(".navigate-left"));
+f.controlsRight=H(document.querySelectorAll(".navigate-right"));f.controlsUp=H(document.querySelectorAll(".navigate-up"));f.controlsDown=H(document.querySelectorAll(".navigate-down"));
+f.controlsPrev=H(document.querySelectorAll(".navigate-prev"));f.controlsNext=H(document.querySelectorAll(".navigate-next"));}}function d(){if(navigator.userAgent.match(/(iphone|ipod|android)/i)){document.documentElement.style.overflow="scroll";
+document.body.style.height="120%";window.addEventListener("load",ah,false);window.addEventListener("orientationchange",ah,false);}}function Y(){var aq=[],av=[];
+for(var ar=0,ap=U.dependencies.length;ar<ap;ar++){var at=U.dependencies[ar];if(!at.condition||at.condition()){if(at.async){av.push(at.src);}else{aq.push(at.src);
+}if(typeof at.callback==="function"){head.ready(at.src.match(/([\w\d_\-]*)\.?[^\\\/]*$/i)[0],at.callback);}}}function au(){if(av.length){head.js.apply(null,av);
+}J();}if(aq.length){head.ready(au);head.js.apply(null,aq);}else{au();}}function J(){R();F();M();S();L();Q();setTimeout(function(){s("ready",{indexh:n,indexv:e,currentSlide:I});
+},1);}function M(){if(W===false){U.transition="linear";}if(U.controls&&f.controls){f.controls.style.display="block";}if(U.progress&&f.progress){f.progress.style.display="block";
+}if(U.transition!=="default"){f.wrapper.classList.add(U.transition);}if(U.center){f.wrapper.classList.add("center");}if(U.mouseWheel){document.addEventListener("DOMMouseScroll",p,false);
+document.addEventListener("mousewheel",p,false);}if(U.rollingLinks){P();}if(U.theme&&f.theme){var ar=f.theme.getAttribute("href");var ap=/[^\/]*?(?=\.css)/;
+var aq=ar.match(ap)[0];if(U.theme!==aq){ar=ar.replace(ap,U.theme);f.theme.setAttribute("href",ar);}}}function F(){document.addEventListener("touchstart",B,false);
+document.addEventListener("touchmove",aj,false);document.addEventListener("touchend",Z,false);window.addEventListener("hashchange",x,false);window.addEventListener("resize",g,false);
+if(U.keyboard){document.addEventListener("keydown",al,false);}if(U.progress&&f.progress){f.progress.addEventListener("click",r(am),false);}if(U.controls&&f.controls){f.controlsLeft.forEach(function(ap){ap.addEventListener("click",r(C),false);
+});f.controlsRight.forEach(function(ap){ap.addEventListener("click",r(k),false);});f.controlsUp.forEach(function(ap){ap.addEventListener("click",r(v),false);
+});f.controlsDown.forEach(function(ap){ap.addEventListener("click",r(G),false);});f.controlsPrev.forEach(function(ap){ap.addEventListener("click",r(ac),false);
+});f.controlsNext.forEach(function(ap){ap.addEventListener("click",r(y),false);});}}function X(){document.removeEventListener("keydown",al,false);document.removeEventListener("touchstart",B,false);
+document.removeEventListener("touchmove",aj,false);document.removeEventListener("touchend",Z,false);window.removeEventListener("hashchange",x,false);window.removeEventListener("resize",g,false);
+if(U.progress&&f.progress){f.progress.removeEventListener("click",r(am),false);}if(U.controls&&f.controls){f.controlsLeft.forEach(function(ap){ap.removeEventListener("click",r(C),false);
+});f.controlsRight.forEach(function(ap){ap.removeEventListener("click",r(k),false);});f.controlsUp.forEach(function(ap){ap.removeEventListener("click",r(v),false);
+});f.controlsDown.forEach(function(ap){ap.removeEventListener("click",r(G),false);});f.controlsPrev.forEach(function(ap){ap.removeEventListener("click",r(ac),false);
+});f.controlsNext.forEach(function(ap){ap.removeEventListener("click",r(y),false);});}}function u(aq,ap){for(var ar in ap){aq[ar]=ap[ar];}}function H(ap){return Array.prototype.slice.call(ap);
+}function ae(ap,ar,aq){ap.forEach(function(at){at[ar].apply(at,aq);});}function V(ar,ap){var at=ar.x-ap.x,aq=ar.y-ap.y;return Math.sqrt(at*at+aq*aq);}function r(ap){return function(aq){aq.preventDefault();
+ap.call(null,aq);};}function ah(){setTimeout(function(){window.scrollTo(0,1);},0);}function s(aq,ap){var ar=document.createEvent("HTMLEvents",1,2);ar.initEvent(aq,true,true);
+u(ar,ap);f.wrapper.dispatchEvent(ar);}function P(){if(W&&!("msPerspective" in document.body.style)){var aq=document.querySelectorAll(".reveal .slides section a:not(.image)");
+for(var ar=0,ap=aq.length;ar<ap;ar++){var at=aq[ar];if(at.textContent&&!at.querySelector("img")&&(!at.className||!at.classList.contains(at,"roll"))){at.classList.add("roll");
+at.innerHTML='<span data-title="'+at.text+'">'+at.innerHTML+"</span>";}}}}function S(){if(U.center){var at=Array.prototype.slice.call(document.querySelectorAll(".reveal .slides section"));
+var au=-f.wrapper.offsetHeight/2;for(var ar=0,aq=at.length;ar<aq;ar++){var ap=at[ar];if(ap.classList.contains("stack")){ap.style.top=0;}else{ap.style.top=Math.max(-(ap.offsetHeight/2)-20,au)+"px";
+}}}}function K(){if(U.overview){f.wrapper.classList.add("overview");var ap=document.querySelectorAll(m);for(var av=0,at=ap.length;av<at;av++){var ar=ap[av],az="translateZ(-2500px) translate("+((av-n)*105)+"%, 0%)";
+ar.setAttribute("data-index-h",av);ar.style.display="block";ar.style.WebkitTransform=az;ar.style.MozTransform=az;ar.style.msTransform=az;ar.style.OTransform=az;
+ar.style.transform=az;if(!ar.classList.contains("stack")){ar.addEventListener("click",D,true);}var ay=ar.querySelectorAll("section");for(var au=0,aq=ay.length;
+au<aq;au++){var ax=ay[au],aw="translate(0%, "+((au-(av===n?e:0))*105)+"%)";ax.setAttribute("data-index-h",av);ax.setAttribute("data-index-v",au);ax.style.display="block";
+ax.style.WebkitTransform=aw;ax.style.MozTransform=aw;ax.style.msTransform=aw;ax.style.OTransform=aw;ax.style.transform=aw;ax.addEventListener("click",D,true);
+}}}}function ai(){if(U.overview){f.wrapper.classList.remove("overview");var at=Array.prototype.slice.call(document.querySelectorAll(".reveal .slides section"));
+for(var ar=0,ap=at.length;ar<ap;ar++){var aq=at[ar];aq.style.WebkitTransform="";aq.style.MozTransform="";aq.style.msTransform="";aq.style.OTransform="";
+aq.style.transform="";aq.removeEventListener("click",D);}a();}}function aa(ap){if(typeof ap==="boolean"){ap?K():ai();}else{N()?ai():K();}}function N(){return f.wrapper.classList.contains("overview");
+}function af(){var ap=document.body;var aq=ap.requestFullScreen||ap.webkitRequestFullScreen||ap.mozRequestFullScreen||ap.msRequestFullScreen;if(aq){aq.apply(ap);
+}}function c(){f.wrapper.classList.add("paused");}function q(){f.wrapper.classList.remove("paused");}function ad(){if(ak()){q();}else{c();}}function ak(){return f.wrapper.classList.contains("paused");
+}function a(aw,aA){z=I;var at=ao.concat();ao.length=0;var az=n,aq=e;n=an(m,aw===undefined?n:aw);e=an(b,aA===undefined?e:aA);S();stateLoop:for(var au=0,ax=ao.length;
+au<ax;au++){for(var ar=0;ar<at.length;ar++){if(at[ar]===ao[au]){at.splice(ar,1);continue stateLoop;}}document.documentElement.classList.add(ao[au]);s(ao[au]);
+}while(at.length){document.documentElement.classList.remove(at.pop());}if(U.progress&&f.progress){f.progressbar.style.width=(n/(document.querySelectorAll(m).length-1))*window.innerWidth+"px";
+}if(N()){K();}t();clearTimeout(E);E=setTimeout(i,1500);var ap=document.querySelectorAll(m);var ay=ap[n],av=ay.querySelectorAll("section");I=av[e]||ay;if(n!==az||e!==aq){s("slidechanged",{indexh:n,indexv:e,previousSlide:z,currentSlide:I});
+}else{z=null;}if(z){z.classList.remove("present");}}function an(at,ay){var aq=Array.prototype.slice.call(document.querySelectorAll(at)),ax=aq.length;if(ax){if(U.loop){ay%=ax;
+if(ay<0){ay=ax+ay;}}ay=Math.max(Math.min(ay,ax-1),0);for(var av=0;av<ax;av++){var aw=aq[av];if(N()===false){var ap=Math.abs((ay-av)%(ax-3))||0;aw.style.display=ap>3?"none":"block";
+}aq[av].classList.remove("past");aq[av].classList.remove("present");aq[av].classList.remove("future");if(av<ay){aq[av].classList.add("past");}else{if(av>ay){aq[av].classList.add("future");
+}}if(aw.querySelector("section")){aq[av].classList.add("stack");}}aq[ay].classList.add("present");var ar=aq[ay].getAttribute("data-state");if(ar){ao=ao.concat(ar.split(" "));
+}var au=aq[ay].getAttribute("data-autoslide");if(au){ab=parseInt(au);}else{ab=U.autoSlide;}}else{ay=0;}return ay;}function t(){if(U.controls&&f.controls){var ap=h();
+f.controlsLeft.concat(f.controlsRight).concat(f.controlsUp).concat(f.controlsDown).concat(f.controlsPrev).concat(f.controlsNext).forEach(function(aq){aq.classList.remove("enabled");
+});if(ap.left){f.controlsLeft.forEach(function(aq){aq.classList.add("enabled");});}if(ap.right){f.controlsRight.forEach(function(aq){aq.classList.add("enabled");
+});}if(ap.up){f.controlsUp.forEach(function(aq){aq.classList.add("enabled");});}if(ap.down){f.controlsDown.forEach(function(aq){aq.classList.add("enabled");
+});}if(ap.left||ap.up){f.controlsPrev.forEach(function(aq){aq.classList.add("enabled");});}if(ap.right||ap.down){f.controlsNext.forEach(function(aq){aq.classList.add("enabled");
+});}}}function h(){var ap=document.querySelectorAll(m),aq=document.querySelectorAll(b);return{left:n>0,right:n<ap.length-1,up:e>0,down:e<aq.length-1};}function L(){var av=window.location.hash;
+var au=av.slice(2).split("/"),aq=av.replace(/#|\//gi,"");if(isNaN(parseInt(au[0],10))&&aq.length){var ar=document.querySelector("#"+aq);if(ar){var aw=Reveal.getIndices(ar);
+a(aw.h,aw.v);}else{a(n,e);}}else{var at=parseInt(au[0],10)||0,ap=parseInt(au[1],10)||0;a(at,ap);}}function i(){if(U.history){var ap="/";if(I&&typeof I.getAttribute("id")==="string"){ap="/"+I.getAttribute("id");
+}else{if(n>0||e>0){ap+=n;}if(e>0){ap+="/"+e;}}window.location.hash=ap;}}function O(ap){var au=n,ar=e;if(ap){var av=!!ap.parentNode.nodeName.match(/section/gi);
+var at=av?ap.parentNode:ap;var aq=Array.prototype.slice.call(document.querySelectorAll(m));au=Math.max(aq.indexOf(at),0);if(av){ar=Math.max(Array.prototype.slice.call(ap.parentNode.children).indexOf(ap),0);
+}}return{h:au,v:ar};}function w(){if(document.querySelector(b+".present")){var aq=document.querySelectorAll(b+".present .fragment:not(.visible)");if(aq.length){aq[0].classList.add("visible");
+s("fragmentshown",{fragment:aq[0]});return true;}}else{var ap=document.querySelectorAll(m+".present .fragment:not(.visible)");if(ap.length){ap[0].classList.add("visible");
+s("fragmentshown",{fragment:ap[0]});return true;}}return false;}function T(){if(document.querySelector(b+".present")){var aq=document.querySelectorAll(b+".present .fragment.visible");
+if(aq.length){aq[aq.length-1].classList.remove("visible");s("fragmenthidden",{fragment:aq[aq.length-1]});return true;}}else{var ap=document.querySelectorAll(m+".present .fragment.visible");
+if(ap.length){ap[ap.length-1].classList.remove("visible");s("fragmenthidden",{fragment:ap[ap.length-1]});return true;}}return false;}function Q(){clearTimeout(l);
+if(ab){l=setTimeout(y,ab);}}function C(){if(h().left&&(N()||T()===false)){a(n-1,0);}}function k(){if(h().right&&(N()||w()===false)){a(n+1,0);}}function v(){if(h().up&&(N()||T()===false)){a(n,e-1);
+}}function G(){if(h().down&&(N()||w()===false)){a(n,e+1);}}function ac(){if(T()===false){if(h().up){v();}else{var ap=document.querySelector(".reveal .slides>section.past:nth-child("+n+")");
+if(ap){e=(ap.querySelectorAll("section").length+1)||0;n--;a();}}}}function y(){if(w()===false){h().down?G():k();}Q();}function al(ar){var aq=document.activeElement;
+var at=!!(document.activeElement&&(document.activeElement.type||document.activeElement.href||document.activeElement.contentEditable!=="inherit"));if(at||ar.shiftKey||ar.altKey||ar.ctrlKey||ar.metaKey){return;
+}var ap=true;switch(ar.keyCode){case 80:case 33:ac();break;case 78:case 34:y();break;case 72:case 37:C();break;case 76:case 39:k();break;case 75:case 38:v();
+break;case 74:case 40:G();break;case 36:a(0);break;case 35:a(Number.MAX_VALUE);break;case 32:N()?ai():y();break;case 13:N()?ai():ap=false;break;case 66:case 190:ad();
+break;case 70:af();break;default:ap=false;}if(ap){ar.preventDefault();}else{if(ar.keyCode===27&&W){aa();ar.preventDefault();}}Q();}function B(ap){ag.startX=ap.touches[0].clientX;
+ag.startY=ap.touches[0].clientY;ag.startCount=ap.touches.length;if(ap.touches.length===2&&U.overview){ag.startSpan=V({x:ap.touches[1].clientX,y:ap.touches[1].clientY},{x:ag.startX,y:ag.startY});
+}}function aj(av){if(!ag.handled){var at=av.touches[0].clientX;var ar=av.touches[0].clientY;if(av.touches.length===2&&ag.startCount===2&&U.overview){var au=V({x:av.touches[1].clientX,y:av.touches[1].clientY},{x:ag.startX,y:ag.startY});
+if(Math.abs(ag.startSpan-au)>ag.threshold){ag.handled=true;if(au<ag.startSpan){K();}else{ai();}}av.preventDefault();}else{if(av.touches.length===1&&ag.startCount!==2){var aq=at-ag.startX,ap=ar-ag.startY;
+if(aq>ag.threshold&&Math.abs(aq)>Math.abs(ap)){ag.handled=true;C();}else{if(aq<-ag.threshold&&Math.abs(aq)>Math.abs(ap)){ag.handled=true;k();}else{if(ap>ag.threshold){ag.handled=true;
+v();}else{if(ap<-ag.threshold){ag.handled=true;G();}}}}av.preventDefault();}}}else{if(navigator.userAgent.match(/android/gi)){av.preventDefault();}}}function Z(ap){ag.handled=false;
+}function p(ap){clearTimeout(A);A=setTimeout(function(){var aq=ap.detail||-ap.wheelDelta;if(aq>0){y();}else{ac();}},100);}function am(aq){var ap=Array.prototype.slice.call(document.querySelectorAll(m)).length;
+var ar=Math.floor((aq.clientX/f.wrapper.offsetWidth)*ap);a(ar);}function x(ap){L();}function g(ap){S();}function D(ap){if(N()){ap.preventDefault();ai();
+n=this.getAttribute("data-index-h");e=this.getAttribute("data-index-v");a();}}return{initialize:j,slide:a,left:C,right:k,up:v,down:G,prev:ac,next:y,prevFragment:T,nextFragment:w,navigateTo:a,navigateLeft:C,navigateRight:k,navigateUp:v,navigateDown:G,navigatePrev:ac,navigateNext:y,toggleOverview:aa,addEventListeners:F,removeEventListeners:X,getIndices:O,getPreviousSlide:function(){return z;
+},getCurrentSlide:function(){return I;},getQueryHash:function(){var ap={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(aq){ap[aq.split("=").shift()]=aq.split("=").pop();
+});return ap;},addEventListener:function(aq,ar,ap){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).addEventListener(aq,ar,ap);
+}},removeEventListener:function(aq,ar,ap){if("addEventListener" in window){(f.wrapper||document.querySelector(".reveal")).removeEventListener(aq,ar,ap);
 }}};})();
\ No newline at end of file