aboutsummaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2013-10-13 14:36:27 -0400
committerHakim El Hattab <hakim.elhattab@gmail.com>2013-10-13 14:36:27 -0400
commitabf33e55b0311f55ea861e23f862bb886115ea58 (patch)
treeb3a61013ec1f032cb89b6421d5f3d9eb845f1196 /js
parent356a1cf3b74a83d3a773a28bc75dc13e764467fb (diff)
downloadfosdem-2018-presentation-abf33e55b0311f55ea861e23f862bb886115ea58.tar
fosdem-2018-presentation-abf33e55b0311f55ea861e23f862bb886115ea58.tar.gz
functional playback control for auto sliding
Diffstat (limited to 'js')
-rw-r--r--js/reveal.js144
-rw-r--r--js/reveal.min.js4
2 files changed, 105 insertions, 43 deletions
diff --git a/js/reveal.js b/js/reveal.js
index 7a3b0e0..726134d 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -114,9 +114,6 @@ var Reveal = (function(){
// Flags if reveal.js is loaded (has dispatched the 'ready' event)
loaded = false,
- // The current auto-slide duration
- autoSlide = 0,
-
// The horizontal and vertical index of the currently active slide
indexh,
indexv,
@@ -145,9 +142,6 @@ var Reveal = (function(){
// Throttles mouse wheel navigation
lastMouseWheelStep = 0,
- // An interval used to automatically move on to the next slide
- autoSlideTimeout = 0,
-
// Delays updates to the URL due to a Chrome thumbnailer bug
writeURLTimeout = 0,
@@ -160,8 +154,14 @@ var Reveal = (function(){
// Flags if the interaction event listeners are bound
eventsAreBound = false,
- // A visual component used to control auto slide playback
+ // The current auto-slide duration
+ autoSlide = 0,
+
+ // Auto slide properties
autoSlidePlayer,
+ autoSlideTimeout = 0,
+ autoSlideStartTime = -1,
+ autoSlidePaused = false,
// Holds information about the currently ongoing touch input
touch = {
@@ -574,12 +574,15 @@ var Reveal = (function(){
enablePreviewLinks( '[data-preview-link]' );
}
- if( config.autoSlide && config.autoSlideStoppable ) {
+ // Auto-slide playback controls
+ if( config.autoSlide && config.autoSlideStoppable && features.canvas && features.requestAnimationFrame ) {
autoSlidePlayer = new Playback( dom.wrapper, function() {
- return 0.5;
+ return Math.min( Math.max( ( Date.now() - autoSlideStartTime ) / autoSlide, 0 ), 1 );
} );
- autoSlidePlayer.setPlaying( true );
+ autoSlidePlayer.on( 'click', function() {
+ autoSlidePaused ? resumeAutoSlide() : pauseAutoSlide();
+ } );
}
else if( autoSlidePlayer ) {
autoSlidePlayer.destroy();
@@ -1607,6 +1610,18 @@ var Reveal = (function(){
// Update the URL hash
writeURL();
+ // If the current slide has a data-autoslide use that,
+ // otherwise use the config.autoSlide value
+ var slideAutoSlide = currentSlide.getAttribute( 'data-autoslide' );
+ if( slideAutoSlide ) {
+ autoSlide = parseInt( slideAutoSlide, 10 );
+ }
+ else {
+ autoSlide = config.autoSlide;
+ }
+
+ cueAutoSlide();
+
}
/**
@@ -1717,18 +1732,6 @@ var Reveal = (function(){
state = state.concat( slideState.split( ' ' ) );
}
- // If this slide has a data-autoslide attribute associated use this as
- // autoSlide value otherwise use the global configured time
- var slideAutoSlide = slides[index].getAttribute( 'data-autoslide' );
- if( slideAutoSlide ) {
- autoSlide = parseInt( slideAutoSlide, 10 );
- }
- else {
- autoSlide = config.autoSlide;
- }
-
- cueAutoSlide();
-
}
else {
// Since there are no slides we can't be anywhere beyond the
@@ -2256,12 +2259,24 @@ var Reveal = (function(){
function cueAutoSlide() {
clearTimeout( autoSlideTimeout );
+ autoSlideTimeout = -1;
+
+ autoSlideStartTime = Date.now();
- // Cue the next auto-slide if enabled
- if( autoSlide && !isPaused() && !isOverview() ) {
+ // Cue the next auto-slide if:
+ // - There is an autoSlide value
+ // - Auto-sliding isn't paused by the user
+ // - The presentation isn't paused
+ // - The overview isn't active
+ // - The presentation isn't over
+ if( autoSlide && !autoSlidePaused && !isPaused() && !isOverview() && ( !Reveal.isLastSlide() || config.loop === true ) ) {
autoSlideTimeout = setTimeout( navigateNext, autoSlide );
}
+ if( autoSlidePlayer ) {
+ autoSlidePlayer.setPlaying( autoSlideTimeout !== -1 );
+ }
+
}
/**
@@ -2273,6 +2288,24 @@ var Reveal = (function(){
}
+ function pauseAutoSlide() {
+
+ autoSlidePaused = true;
+ clearTimeout( autoSlideTimeout );
+
+ if( autoSlidePlayer ) {
+ autoSlidePlayer.setPlaying( false );
+ }
+
+ }
+
+ function resumeAutoSlide() {
+
+ autoSlidePaused = false;
+ cueAutoSlide();
+
+ }
+
function navigateLeft() {
// Reverse for RTL
@@ -2376,8 +2409,7 @@ var Reveal = (function(){
function onUserInput( event ) {
if( config.autoSlideStoppable ) {
- config.autoSlide = 0;
- cancelAutoSlide();
+ pauseAutoSlide();
}
}
@@ -2387,6 +2419,8 @@ var Reveal = (function(){
*/
function onDocumentKeyDown( event ) {
+ onUserInput( event );
+
// Check if there's a focused element that could be using
// the keyboard
var activeElement = document.activeElement;
@@ -2488,8 +2522,6 @@ var Reveal = (function(){
// another timeout
cueAutoSlide();
- onUserInput( event );
-
}
/**
@@ -2498,6 +2530,8 @@ var Reveal = (function(){
*/
function onTouchStart( event ) {
+ onUserInput( event );
+
touch.startX = event.touches[0].clientX;
touch.startY = event.touches[0].clientY;
touch.startCount = event.touches.length;
@@ -2514,8 +2548,6 @@ var Reveal = (function(){
} );
}
- onUserInput( event );
-
}
/**
@@ -2617,13 +2649,13 @@ var Reveal = (function(){
*/
function onPointerDown( event ) {
+ onUserInput( event );
+
if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) {
event.touches = [{ clientX: event.clientX, clientY: event.clientY }];
onTouchStart( event );
}
- onUserInput( event );
-
}
/**
@@ -2680,6 +2712,8 @@ var Reveal = (function(){
*/
function onProgressClicked( event ) {
+ onUserInput( event );
+
event.preventDefault();
var slidesTotal = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).length;
@@ -2687,19 +2721,17 @@ var Reveal = (function(){
slide( slideIndex );
- onUserInput( event );
-
}
/**
* Event handler for navigation control buttons.
*/
- function onNavigateLeftClicked( event ) { event.preventDefault(); navigateLeft(); onUserInput(); }
- function onNavigateRightClicked( event ) { event.preventDefault(); navigateRight(); onUserInput(); }
- function onNavigateUpClicked( event ) { event.preventDefault(); navigateUp(); onUserInput(); }
- function onNavigateDownClicked( event ) { event.preventDefault(); navigateDown(); onUserInput(); }
- function onNavigatePrevClicked( event ) { event.preventDefault(); navigatePrev(); onUserInput(); }
- function onNavigateNextClicked( event ) { event.preventDefault(); navigateNext(); onUserInput(); }
+ function onNavigateLeftClicked( event ) { event.preventDefault(); onUserInput(); navigateLeft(); }
+ function onNavigateRightClicked( event ) { event.preventDefault(); onUserInput(); navigateRight(); }
+ function onNavigateUpClicked( event ) { event.preventDefault(); onUserInput(); navigateUp(); }
+ function onNavigateDownClicked( event ) { event.preventDefault(); onUserInput(); navigateDown(); }
+ function onNavigatePrevClicked( event ) { event.preventDefault(); onUserInput(); navigatePrev(); }
+ function onNavigateNextClicked( event ) { event.preventDefault(); onUserInput(); navigateNext(); }
/**
* Handler for the window level 'hashchange' event.
@@ -2845,12 +2877,14 @@ var Reveal = (function(){
Playback.prototype.render = function() {
+ var progress = this.playing ? this.progress : 0;
+
var radius = ( this.size / 2 ) - this.thickness,
x = this.size / 2,
y = this.size / 2;
var startAngle = - Math.PI / 2;
- var endAngle = startAngle + ( this.progress * ( Math.PI * 2 ) );
+ var endAngle = startAngle + ( progress * ( Math.PI * 2 ) );
this.context.save();
this.context.clearRect( 0, 0, this.size, this.size );
@@ -2875,6 +2909,26 @@ var Reveal = (function(){
this.context.strokeStyle = '#fff';
this.context.stroke();
+ var iconSize = 14;
+
+ this.context.translate( x - ( iconSize / 2 ), y - ( iconSize / 2 ) );
+
+ // Draw play/pause icons
+ if( this.playing ) {
+ this.context.fillStyle = '#fff';
+ this.context.fillRect( 0, 0, iconSize / 2 - 2, iconSize );
+ this.context.fillRect( iconSize / 2 + 2, 0, iconSize / 2 - 2, iconSize );
+ }
+ else {
+ this.context.beginPath();
+ this.context.translate( 2, 0 );
+ this.context.moveTo( 0, 0 );
+ this.context.lineTo( iconSize - 2, iconSize / 2 );
+ this.context.lineTo( 0, iconSize );
+ this.context.fillStyle = '#fff';
+ this.context.fill();
+ }
+
this.context.restore();
};
@@ -2887,6 +2941,14 @@ var Reveal = (function(){
};
+ Playback.prototype.on = function( type, listener ) {
+ this.canvas.addEventListener( type, listener, false );
+ };
+
+ Playback.prototype.off = function( type, listener ) {
+ this.canvas.removeEventListener( type, listener, false );
+ };
+
// --------------------------------------------------------------------//
// ------------------------------- API --------------------------------//
diff --git a/js/reveal.min.js b/js/reveal.min.js
index 47a56e6..4b15359 100644
--- a/js/reveal.min.js
+++ b/js/reveal.min.js
@@ -1,8 +1,8 @@
/*!
- * reveal.js 2.6.0-dev (2013-10-13, 13:08)
+ * reveal.js 2.6.0-dev (2013-10-13, 14:35)
* http://lab.hakim.se/reveal-js
* MIT licensed
*
* Copyright (C) 2013 Hakim El Hattab, http://hakim.se
*/
-var Reveal=function(){"use strict";function a(a){return b(),Zb.transforms2d||Zb.transforms3d?(window.addEventListener("load",C,!1),l(Tb,a),l(Tb,Reveal.getQueryHash()),s(),c(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function b(){Zb.transforms3d="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,Zb.transforms2d="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,Zb.requestAnimationFrame="function"==typeof window.requestAnimationFrame,Zb.canvas=!!document.createElement("canvas").getContext,Nb=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function c(){function a(){c.length&&head.js.apply(null,c),d()}for(var b=[],c=[],e=0,f=Tb.dependencies.length;f>e;e++){var g=Tb.dependencies[e];(!g.condition||g.condition())&&(g.async?c.push(g.src):b.push(g.src),"function"==typeof g.callback&&head.ready(g.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],g.callback))}b.length?(head.ready(a),head.js.apply(null,b)):a()}function d(){f(),e(),i(),ab(),setTimeout(function(){Yb.slides.classList.remove("no-transition"),Ub=!0,u("ready",{indexh:Jb,indexv:Kb,currentSlide:Mb})},1)}function e(){var a=m(document.querySelectorAll(Qb));a.forEach(function(a){var b=m(a.querySelectorAll("section"));b.forEach(function(a,b){b>0&&a.classList.add("future")})})}function f(){Yb.theme=document.querySelector("#theme"),Yb.wrapper=document.querySelector(".reveal"),Yb.slides=document.querySelector(".reveal .slides"),Yb.slides.classList.add("no-transition"),Yb.background=g(Yb.wrapper,"div","backgrounds",null),Yb.progress=g(Yb.wrapper,"div","progress","<span></span>"),Yb.progressbar=Yb.progress.querySelector("span"),g(Yb.wrapper,"aside","controls",'<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>'),g(Yb.wrapper,"div","state-background",null),g(Yb.wrapper,"div","pause-overlay",null),Yb.controls=document.querySelector(".reveal .controls"),Yb.controlsLeft=m(document.querySelectorAll(".navigate-left")),Yb.controlsRight=m(document.querySelectorAll(".navigate-right")),Yb.controlsUp=m(document.querySelectorAll(".navigate-up")),Yb.controlsDown=m(document.querySelectorAll(".navigate-down")),Yb.controlsPrev=m(document.querySelectorAll(".navigate-prev")),Yb.controlsNext=m(document.querySelectorAll(".navigate-next"))}function g(a,b,c,d){var e=a.querySelector("."+c);return e||(e=document.createElement(b),e.classList.add(c),null!==d&&(e.innerHTML=d),a.appendChild(e)),e}function h(){function a(a,b){var c={background:a.getAttribute("data-background"),backgroundSize:a.getAttribute("data-background-size"),backgroundImage:a.getAttribute("data-background-image"),backgroundColor:a.getAttribute("data-background-color"),backgroundRepeat:a.getAttribute("data-background-repeat"),backgroundPosition:a.getAttribute("data-background-position"),backgroundTransition:a.getAttribute("data-background-transition")},d=document.createElement("div");return d.className="slide-background",c.background&&(/^(http|file|\/\/)/gi.test(c.background)||/\.(svg|png|jpg|jpeg|gif|bmp)$/gi.test(c.background)?d.style.backgroundImage="url("+c.background+")":d.style.background=c.background),c.backgroundSize&&(d.style.backgroundSize=c.backgroundSize),c.backgroundImage&&(d.style.backgroundImage='url("'+c.backgroundImage+'")'),c.backgroundColor&&(d.style.backgroundColor=c.backgroundColor),c.backgroundRepeat&&(d.style.backgroundRepeat=c.backgroundRepeat),c.backgroundPosition&&(d.style.backgroundPosition=c.backgroundPosition),c.backgroundTransition&&d.setAttribute("data-background-transition",c.backgroundTransition),b.appendChild(d),d}r()&&document.body.classList.add("print-pdf"),Yb.background.innerHTML="",Yb.background.classList.add("no-transition"),m(document.querySelectorAll(Qb)).forEach(function(b){var c;c=r()?a(b,b):a(b,Yb.background),m(b.querySelectorAll("section")).forEach(function(b){r()?a(b,b):a(b,c)})}),Tb.parallaxBackgroundImage?(Yb.background.style.backgroundImage='url("'+Tb.parallaxBackgroundImage+'")',Yb.background.style.backgroundSize=Tb.parallaxBackgroundSize,setTimeout(function(){Yb.wrapper.classList.add("has-parallax-background")},1)):(Yb.background.style.backgroundImage="",Yb.wrapper.classList.remove("has-parallax-background"))}function i(a){if(Yb.wrapper.classList.remove(Tb.transition),"object"==typeof a&&l(Tb,a),Zb.transforms3d===!1&&(Tb.transition="linear"),Yb.wrapper.classList.add(Tb.transition),Yb.wrapper.setAttribute("data-transition-speed",Tb.transitionSpeed),Yb.wrapper.setAttribute("data-background-transition",Tb.backgroundTransition),Yb.controls.style.display=Tb.controls?"block":"none",Yb.progress.style.display=Tb.progress?"block":"none",Tb.rtl?Yb.wrapper.classList.add("rtl"):Yb.wrapper.classList.remove("rtl"),Tb.center?Yb.wrapper.classList.add("center"):Yb.wrapper.classList.remove("center"),Tb.mouseWheel?(document.addEventListener("DOMMouseScroll",vb,!1),document.addEventListener("mousewheel",vb,!1)):(document.removeEventListener("DOMMouseScroll",vb,!1),document.removeEventListener("mousewheel",vb,!1)),Tb.rollingLinks?v():w(),Tb.previewLinks?x():(y(),x("[data-preview-link]")),Tb.autoSlide&&Tb.autoSlideStoppable?(Ob=new Ib(Yb.wrapper,function(){return.5}),Ob.setPlaying(!0)):Ob&&(Ob.destroy(),Ob=null),Tb.theme&&Yb.theme){var b=Yb.theme.getAttribute("href"),c=/[^\/]*?(?=\.css)/,d=b.match(c)[0];Tb.theme!==d&&(b=b.replace(c,Tb.theme),Yb.theme.setAttribute("href",b))}R()}function j(){if(dc=!0,window.addEventListener("hashchange",Db,!1),window.addEventListener("resize",Eb,!1),Tb.touch&&(Yb.wrapper.addEventListener("touchstart",pb,!1),Yb.wrapper.addEventListener("touchmove",qb,!1),Yb.wrapper.addEventListener("touchend",rb,!1),window.navigator.msPointerEnabled&&(Yb.wrapper.addEventListener("MSPointerDown",sb,!1),Yb.wrapper.addEventListener("MSPointerMove",tb,!1),Yb.wrapper.addEventListener("MSPointerUp",ub,!1))),Tb.keyboard&&document.addEventListener("keydown",ob,!1),Tb.progress&&Yb.progress&&Yb.progress.addEventListener("click",wb,!1),Tb.focusBodyOnPageVisiblityChange){var a;"hidden"in document?a="visibilitychange":"msHidden"in document?a="msvisibilitychange":"webkitHidden"in document&&(a="webkitvisibilitychange"),a&&document.addEventListener(a,Fb,!1)}["touchstart","click"].forEach(function(a){Yb.controlsLeft.forEach(function(b){b.addEventListener(a,xb,!1)}),Yb.controlsRight.forEach(function(b){b.addEventListener(a,yb,!1)}),Yb.controlsUp.forEach(function(b){b.addEventListener(a,zb,!1)}),Yb.controlsDown.forEach(function(b){b.addEventListener(a,Ab,!1)}),Yb.controlsPrev.forEach(function(b){b.addEventListener(a,Bb,!1)}),Yb.controlsNext.forEach(function(b){b.addEventListener(a,Cb,!1)})})}function k(){dc=!1,document.removeEventListener("keydown",ob,!1),window.removeEventListener("hashchange",Db,!1),window.removeEventListener("resize",Eb,!1),Yb.wrapper.removeEventListener("touchstart",pb,!1),Yb.wrapper.removeEventListener("touchmove",qb,!1),Yb.wrapper.removeEventListener("touchend",rb,!1),window.navigator.msPointerEnabled&&(Yb.wrapper.removeEventListener("MSPointerDown",sb,!1),Yb.wrapper.removeEventListener("MSPointerMove",tb,!1),Yb.wrapper.removeEventListener("MSPointerUp",ub,!1)),Tb.progress&&Yb.progress&&Yb.progress.removeEventListener("click",wb,!1),["touchstart","click"].forEach(function(a){Yb.controlsLeft.forEach(function(b){b.removeEventListener(a,xb,!1)}),Yb.controlsRight.forEach(function(b){b.removeEventListener(a,yb,!1)}),Yb.controlsUp.forEach(function(b){b.removeEventListener(a,zb,!1)}),Yb.controlsDown.forEach(function(b){b.removeEventListener(a,Ab,!1)}),Yb.controlsPrev.forEach(function(b){b.removeEventListener(a,Bb,!1)}),Yb.controlsNext.forEach(function(b){b.removeEventListener(a,Cb,!1)})})}function l(a,b){for(var c in b)a[c]=b[c]}function m(a){return Array.prototype.slice.call(a)}function n(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}function o(a,b){a.style.WebkitTransform=b,a.style.MozTransform=b,a.style.msTransform=b,a.style.OTransform=b,a.style.transform=b}function p(a){var b=0;if(a){var c=0;m(a.childNodes).forEach(function(a){"number"==typeof a.offsetTop&&a.style&&("absolute"===a.style.position&&(c+=1),b=Math.max(b,a.offsetTop+a.offsetHeight))}),0===c&&(b=a.offsetHeight)}return b}function q(a,b){if(b=b||0,a){var c=a.parentNode,d=c.childNodes;m(d).forEach(function(c){if("number"==typeof c.offsetHeight&&c!==a){var d=window.getComputedStyle(c),e=parseInt(d.marginTop,10),f=parseInt(d.marginBottom,10);b-=c.offsetHeight+e+f}});var e=window.getComputedStyle(a);b-=parseInt(e.marginTop,10)+parseInt(e.marginBottom,10)}return b}function r(){return/print-pdf/gi.test(window.location.search)}function s(){Tb.hideAddressBar&&Nb&&(window.addEventListener("load",t,!1),window.addEventListener("orientationchange",t,!1))}function t(){0!==window.orientation||/crios/gi.test(navigator.userAgent)?(document.documentElement.style.overflow="",document.body.style.height="100%"):(document.documentElement.style.overflow="scroll",document.body.style.height="120%"),setTimeout(function(){window.scrollTo(0,1)},10)}function u(a,b){var c=document.createEvent("HTMLEvents",1,2);c.initEvent(a,!0,!0),l(c,b),Yb.wrapper.dispatchEvent(c)}function v(){if(Zb.transforms3d&&!("msPerspective"in document.body.style))for(var a=document.querySelectorAll(Pb+" a:not(.image)"),b=0,c=a.length;c>b;b++){var d=a[b];if(!(!d.textContent||d.querySelector("*")||d.className&&d.classList.contains(d,"roll"))){var e=document.createElement("span");e.setAttribute("data-title",d.text),e.innerHTML=d.innerHTML,d.classList.add("roll"),d.innerHTML="",d.appendChild(e)}}}function w(){for(var a=document.querySelectorAll(Pb+" a.roll"),b=0,c=a.length;c>b;b++){var d=a[b],e=d.querySelector("span");e&&(d.classList.remove("roll"),d.innerHTML=e.innerHTML)}}function x(a){var b=m(document.querySelectorAll(a?a:"a"));b.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.addEventListener("click",Hb,!1)})}function y(){var a=m(document.querySelectorAll("a"));a.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.removeEventListener("click",Hb,!1)})}function z(a){A(),Yb.preview=document.createElement("div"),Yb.preview.classList.add("preview-link-overlay"),Yb.wrapper.appendChild(Yb.preview),Yb.preview.innerHTML=["<header>",'<a class="close" href="#"><span class="icon"></span></a>','<a class="external" href="'+a+'" target="_blank"><span class="icon"></span></a>',"</header>",'<div class="spinner"></div>','<div class="viewport">','<iframe src="'+a+'"></iframe>',"</div>"].join(""),Yb.preview.querySelector("iframe").addEventListener("load",function(){Yb.preview.classList.add("loaded")},!1),Yb.preview.querySelector(".close").addEventListener("click",function(a){A(),a.preventDefault()},!1),Yb.preview.querySelector(".external").addEventListener("click",function(){A()},!1),setTimeout(function(){Yb.preview.classList.add("visible")},1)}function A(){Yb.preview&&(Yb.preview.setAttribute("src",""),Yb.preview.parentNode.removeChild(Yb.preview),Yb.preview=null)}function B(a){var b=m(a);return b.forEach(function(a,b){a.hasAttribute("data-fragment-index")||a.setAttribute("data-fragment-index",b)}),b.sort(function(a,b){return a.getAttribute("data-fragment-index")-b.getAttribute("data-fragment-index")}),b}function C(){if(Yb.wrapper&&!r()){var a=Yb.wrapper.offsetWidth,b=Yb.wrapper.offsetHeight;a-=b*Tb.margin,b-=b*Tb.margin;var c=Tb.width,d=Tb.height,e=20;D(Tb.width,Tb.height,e),"string"==typeof c&&/%$/.test(c)&&(c=parseInt(c,10)/100*a),"string"==typeof d&&/%$/.test(d)&&(d=parseInt(d,10)/100*b),Yb.slides.style.width=c+"px",Yb.slides.style.height=d+"px",Xb=Math.min(a/c,b/d),Xb=Math.max(Xb,Tb.minScale),Xb=Math.min(Xb,Tb.maxScale),"undefined"==typeof Yb.slides.style.zoom||navigator.userAgent.match(/(iphone|ipod|ipad|android)/gi)?o(Yb.slides,"translate(-50%, -50%) scale("+Xb+") translate(50%, 50%)"):Yb.slides.style.zoom=Xb;for(var f=m(document.querySelectorAll(Pb)),g=0,h=f.length;h>g;g++){var i=f[g];"none"!==i.style.display&&(i.style.top=Tb.center?i.classList.contains("stack")?0:Math.max(-(p(i)/2)-e,-d/2)+"px":"")}U(),X()}}function D(a,b,c){m(Yb.slides.querySelectorAll("section > .stretch")).forEach(function(d){var e=q(d,b-2*c);if(/(img|video)/gi.test(d.nodeName)){var f=d.naturalWidth||d.videoWidth,g=d.naturalHeight||d.videoHeight,h=Math.min(a/f,e/g);d.style.width=f*h+"px",d.style.height=g*h+"px"}else d.style.width=a+"px",d.style.height=e+"px"})}function E(a,b){"object"==typeof a&&"function"==typeof a.setAttribute&&a.setAttribute("data-previous-indexv",b||0)}function F(a){if("object"==typeof a&&"function"==typeof a.setAttribute&&a.classList.contains("stack")){var b=a.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(a.getAttribute(b)||0,10)}return 0}function G(){if(Tb.overview){gb();var a=Yb.wrapper.classList.contains("overview"),b=window.innerWidth<400?1e3:2500;Yb.wrapper.classList.add("overview"),Yb.wrapper.classList.remove("overview-deactivating"),clearTimeout(bc),clearTimeout(cc),bc=setTimeout(function(){for(var c=document.querySelectorAll(Qb),d=0,e=c.length;e>d;d++){var f=c[d],g=Tb.rtl?-105:105;if(f.setAttribute("data-index-h",d),o(f,"translateZ(-"+b+"px) translate("+(d-Jb)*g+"%, 0%)"),f.classList.contains("stack"))for(var h=f.querySelectorAll("section"),i=0,j=h.length;j>i;i++){var k=d===Jb?Kb:F(f),l=h[i];l.setAttribute("data-index-h",d),l.setAttribute("data-index-v",i),o(l,"translate(0%, "+105*(i-k)+"%)"),l.addEventListener("click",Gb,!0)}else f.addEventListener("click",Gb,!0)}T(),C(),a||u("overviewshown",{indexh:Jb,indexv:Kb,currentSlide:Mb})},10)}}function H(){Tb.overview&&(clearTimeout(bc),clearTimeout(cc),Yb.wrapper.classList.remove("overview"),Yb.wrapper.classList.add("overview-deactivating"),cc=setTimeout(function(){Yb.wrapper.classList.remove("overview-deactivating")},1),m(document.querySelectorAll(Pb)).forEach(function(a){o(a,""),a.removeEventListener("click",Gb,!0)}),Q(Jb,Kb),fb(),u("overviewhidden",{indexh:Jb,indexv:Kb,currentSlide:Mb}))}function I(a){"boolean"==typeof a?a?G():H():J()?H():G()}function J(){return Yb.wrapper.classList.contains("overview")}function K(a){return a=a?a:Mb,a&&a.parentNode&&!!a.parentNode.nodeName.match(/section/i)}function L(){var a=document.body,b=a.requestFullScreen||a.webkitRequestFullscreen||a.webkitRequestFullScreen||a.mozRequestFullScreen||a.msRequestFullScreen;b&&b.apply(a)}function M(){var a=Yb.wrapper.classList.contains("paused");gb(),Yb.wrapper.classList.add("paused"),a===!1&&u("paused")}function N(){var a=Yb.wrapper.classList.contains("paused");Yb.wrapper.classList.remove("paused"),fb(),a&&u("resumed")}function O(){P()?N():M()}function P(){return Yb.wrapper.classList.contains("paused")}function Q(a,b,c,d){Lb=Mb;var e=document.querySelectorAll(Qb);void 0===b&&(b=F(e[a])),Lb&&Lb.parentNode&&Lb.parentNode.classList.contains("stack")&&E(Lb.parentNode,Kb);var f=Wb.concat();Wb.length=0;var g=Jb||0,h=Kb||0;Jb=S(Qb,void 0===a?Jb:a),Kb=S(Rb,void 0===b?Kb:b),T(),C();a:for(var i=0,j=Wb.length;j>i;i++){for(var k=0;k<f.length;k++)if(f[k]===Wb[i]){f.splice(k,1);continue a}document.documentElement.classList.add(Wb[i]),u(Wb[i])}for(;f.length;)document.documentElement.classList.remove(f.pop());J()&&G();var l=e[Jb],n=l.querySelectorAll("section");if(Mb=n[Kb]||l,"undefined"!=typeof c){var o=B(Mb.querySelectorAll(".fragment"));m(o).forEach(function(a,b){c>b?a.classList.add("visible"):a.classList.remove("visible")})}var p=Jb!==g||Kb!==h;p?u("slidechanged",{indexh:Jb,indexv:Kb,previousSlide:Lb,currentSlide:Mb,origin:d}):Lb=null,Lb&&(Lb.classList.remove("present"),document.querySelector(Sb).classList.contains("present")&&setTimeout(function(){var a,b=m(document.querySelectorAll(Qb+".stack"));for(a in b)b[a]&&E(b[a],0)},0)),p&&(_(Lb),$(Mb)),V(),U(),W(),X(),bb()}function R(){k(),j(),C(),Vb=Tb.autoSlide,fb(),h(),V(),U(),W()}function S(a,b){var c=m(document.querySelectorAll(a)),d=c.length;if(d){Tb.loop&&(b%=d,0>b&&(b=d+b)),b=Math.max(Math.min(b,d-1),0);for(var e=0;d>e;e++){var f=c[e],g=Tb.rtl&&!K(f);if(f.classList.remove("past"),f.classList.remove("present"),f.classList.remove("future"),f.setAttribute("hidden",""),b>e)f.classList.add(g?"future":"past");else if(e>b){f.classList.add(g?"past":"future");for(var h=m(f.querySelectorAll(".fragment.visible"));h.length;)h.pop().classList.remove("visible")}f.querySelector("section")&&f.classList.add("stack")}c[b].classList.add("present"),c[b].removeAttribute("hidden");var i=c[b].getAttribute("data-state");i&&(Wb=Wb.concat(i.split(" ")));var j=c[b].getAttribute("data-autoslide");Vb=j?parseInt(j,10):Tb.autoSlide,fb()}else b=0;return b}function T(){var a,b,c=m(document.querySelectorAll(Qb)),d=c.length;if(d){var e=J()?10:Tb.viewDistance;Nb&&(e=J()?6:1);for(var f=0;d>f;f++){var g=c[f],h=m(g.querySelectorAll("section")),i=h.length;if(a=Math.abs((Jb-f)%(d-e))||0,g.style.display=a>e?"none":"block",i)for(var j=F(g),k=0;i>k;k++){var l=h[k];b=f===Jb?Math.abs(Kb-k):Math.abs(k-j),l.style.display=a+b>e?"none":"block"}}}}function U(){if(Tb.progress&&Yb.progress){var a=m(document.querySelectorAll(Qb)),b=document.querySelectorAll(Pb+":not(.stack)").length,c=0;a:for(var d=0;d<a.length;d++){for(var e=a[d],f=m(e.querySelectorAll("section")),g=0;g<f.length;g++){if(f[g].classList.contains("present"))break a;c++}if(e.classList.contains("present"))break;e.classList.contains("stack")===!1&&c++}Yb.progressbar.style.width=c/(b-1)*window.innerWidth+"px"}}function V(){var a=Y(),b=Z();Yb.controlsLeft.concat(Yb.controlsRight).concat(Yb.controlsUp).concat(Yb.controlsDown).concat(Yb.controlsPrev).concat(Yb.controlsNext).forEach(function(a){a.classList.remove("enabled"),a.classList.remove("fragmented")}),a.left&&Yb.controlsLeft.forEach(function(a){a.classList.add("enabled")}),a.right&&Yb.controlsRight.forEach(function(a){a.classList.add("enabled")}),a.up&&Yb.controlsUp.forEach(function(a){a.classList.add("enabled")}),a.down&&Yb.controlsDown.forEach(function(a){a.classList.add("enabled")}),(a.left||a.up)&&Yb.controlsPrev.forEach(function(a){a.classList.add("enabled")}),(a.right||a.down)&&Yb.controlsNext.forEach(function(a){a.classList.add("enabled")}),Mb&&(b.prev&&Yb.controlsPrev.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Yb.controlsNext.forEach(function(a){a.classList.add("fragmented","enabled")}),K(Mb)?(b.prev&&Yb.controlsUp.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Yb.controlsDown.forEach(function(a){a.classList.add("fragmented","enabled")})):(b.prev&&Yb.controlsLeft.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Yb.controlsRight.forEach(function(a){a.classList.add("fragmented","enabled")})))}function W(){m(Yb.background.childNodes).forEach(function(a,b){var c=Tb.rtl?"future":"past",d=Tb.rtl?"past":"future";a.className="slide-background "+(Jb>b?c:b>Jb?d:"present"),m(a.childNodes).forEach(function(a,b){a.className="slide-background "+(Kb>b?"past":b>Kb?"future":"present")})}),setTimeout(function(){Yb.background.classList.remove("no-transition")},1)}function X(){if(Tb.parallaxBackgroundImage){var a,b,c=document.querySelectorAll(Qb),d=document.querySelectorAll(Rb),e=Yb.background.style.backgroundSize.split(" ");1===e.length?a=b=parseInt(e[0],10):(a=parseInt(e[0],10),b=parseInt(e[1],10));var f=Yb.background.offsetWidth,g=c.length,h=-(a-f)/(g-1)*Jb,i=Yb.background.offsetHeight,j=d.length,k=j>0?-(b-i)/(j-1)*Kb:0;Yb.background.style.backgroundPosition=h+"px "+k+"px"}}function Y(){var a=document.querySelectorAll(Qb),b=document.querySelectorAll(Rb),c={left:Jb>0||Tb.loop,right:Jb<a.length-1||Tb.loop,up:Kb>0,down:Kb<b.length-1};if(Tb.rtl){var d=c.left;c.left=c.right,c.right=d}return c}function Z(){if(Mb&&Tb.fragments){var a=Mb.querySelectorAll(".fragment"),b=Mb.querySelectorAll(".fragment:not(.visible)");return{prev:a.length-b.length>0,next:!!b.length}}return{prev:!1,next:!1}}function $(a){a&&(m(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-autoplay")&&a.play()}),m(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-autoplay")&&a.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")}))}function _(a){a&&(m(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-ignore")||a.pause()}),m(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-ignore")||"function"!=typeof a.contentWindow.postMessage||a.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}))}function ab(){var a=window.location.hash,b=a.slice(2).split("/"),c=a.replace(/#|\//gi,"");if(isNaN(parseInt(b[0],10))&&c.length){var d=document.querySelector("#"+c);if(d){var e=Reveal.getIndices(d);Q(e.h,e.v)}else Q(Jb||0,Kb||0)}else{var f=parseInt(b[0],10)||0,g=parseInt(b[1],10)||0;(f!==Jb||g!==Kb)&&Q(f,g)}}function bb(a){if(Tb.history)if(clearTimeout(ac),"number"==typeof a)ac=setTimeout(bb,a);else{var b="/";Mb&&"string"==typeof Mb.getAttribute("id")?b="/"+Mb.getAttribute("id"):((Jb>0||Kb>0)&&(b+=Jb),Kb>0&&(b+="/"+Kb)),window.location.hash=b}}function cb(a){var b,c=Jb,d=Kb;if(a){var e=K(a),f=e?a.parentNode:a,g=m(document.querySelectorAll(Qb));c=Math.max(g.indexOf(f),0),e&&(d=Math.max(m(a.parentNode.querySelectorAll("section")).indexOf(a),0))}if(!a&&Mb){var h=Mb.querySelectorAll(".fragment").length>0;if(h){var i=Mb.querySelectorAll(".fragment.visible");b=i.length}}return{h:c,v:d,f:b}}function db(){if(Mb&&Tb.fragments){var a=B(Mb.querySelectorAll(".fragment:not(.visible)"));if(a.length){var b=a[0].getAttribute("data-fragment-index");return a=Mb.querySelectorAll('.fragment[data-fragment-index="'+b+'"]'),m(a).forEach(function(a){a.classList.add("visible")}),u("fragmentshown",{fragment:a[0],fragments:a}),V(),!0}}return!1}function eb(){if(Mb&&Tb.fragments){var a=B(Mb.querySelectorAll(".fragment.visible"));if(a.length){var b=a[a.length-1].getAttribute("data-fragment-index");return a=Mb.querySelectorAll('.fragment[data-fragment-index="'+b+'"]'),m(a).forEach(function(a){a.classList.remove("visible")}),u("fragmenthidden",{fragment:a[0],fragments:a}),V(),!0}}return!1}function fb(){clearTimeout(_b),!Vb||P()||J()||(_b=setTimeout(mb,Vb))}function gb(){clearTimeout(_b)}function hb(){Tb.rtl?(J()||db()===!1)&&Y().left&&Q(Jb+1):(J()||eb()===!1)&&Y().left&&Q(Jb-1)}function ib(){Tb.rtl?(J()||eb()===!1)&&Y().right&&Q(Jb-1):(J()||db()===!1)&&Y().right&&Q(Jb+1)}function jb(){(J()||eb()===!1)&&Y().up&&Q(Jb,Kb-1)}function kb(){(J()||db()===!1)&&Y().down&&Q(Jb,Kb+1)}function lb(){if(eb()===!1)if(Y().up)jb();else{var a=document.querySelector(Qb+".past:nth-child("+Jb+")");if(a){var b=a.querySelectorAll("section").length-1||void 0,c=Jb-1;Q(c,b)}}}function mb(){db()===!1&&(Y().down?kb():ib()),fb()}function nb(){Tb.autoSlideStoppable&&(Tb.autoSlide=0,gb())}function ob(a){document.activeElement;var b=!(!document.activeElement||!document.activeElement.type&&!document.activeElement.href&&"inherit"===document.activeElement.contentEditable);if(!(b||a.shiftKey&&32!==a.keyCode||a.altKey||a.ctrlKey||a.metaKey)){if(P()&&-1===[66,190,191].indexOf(a.keyCode))return!1;var c=!1;if("object"==typeof Tb.keyboard)for(var d in Tb.keyboard)if(parseInt(d,10)===a.keyCode){var e=Tb.keyboard[d];"function"==typeof e?e.apply(null,[a]):"string"==typeof e&&"function"==typeof Reveal[e]&&Reveal[e].call(),c=!0}if(c===!1)switch(c=!0,a.keyCode){case 80:case 33:lb();break;case 78:case 34:mb();break;case 72:case 37:hb();break;case 76:case 39:ib();break;case 75:case 38:jb();break;case 74:case 40:kb();break;case 36:Q(0);break;case 35:Q(Number.MAX_VALUE);break;case 32:J()?H():a.shiftKey?lb():mb();break;case 13:J()?H():c=!1;break;case 66:case 190:case 191:O();break;case 70:L();break;default:c=!1}c?a.preventDefault():27!==a.keyCode&&79!==a.keyCode||!Zb.transforms3d||(Yb.preview?A():I(),a.preventDefault()),fb(),nb(a)}}function pb(a){ec.startX=a.touches[0].clientX,ec.startY=a.touches[0].clientY,ec.startCount=a.touches.length,2===a.touches.length&&Tb.overview&&(ec.startSpan=n({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:ec.startX,y:ec.startY})),nb(a)}function qb(a){if(ec.captured)navigator.userAgent.match(/android/gi)&&a.preventDefault();else{var b=a.touches[0].clientX,c=a.touches[0].clientY;if(2===a.touches.length&&2===ec.startCount&&Tb.overview){var d=n({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:ec.startX,y:ec.startY});Math.abs(ec.startSpan-d)>ec.threshold&&(ec.captured=!0,d<ec.startSpan?G():H()),a.preventDefault()}else if(1===a.touches.length&&2!==ec.startCount){var e=b-ec.startX,f=c-ec.startY;e>ec.threshold&&Math.abs(e)>Math.abs(f)?(ec.captured=!0,hb()):e<-ec.threshold&&Math.abs(e)>Math.abs(f)?(ec.captured=!0,ib()):f>ec.threshold?(ec.captured=!0,jb()):f<-ec.threshold&&(ec.captured=!0,kb()),Tb.embedded?(ec.captured||K(Mb))&&a.preventDefault():a.preventDefault()}}}function rb(){ec.captured=!1}function sb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],pb(a)),nb(a)}function tb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],qb(a))}function ub(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],rb(a))}function vb(a){if(Date.now()-$b>600){$b=Date.now();var b=a.detail||-a.wheelDelta;b>0?mb():lb()}}function wb(a){a.preventDefault();var b=m(document.querySelectorAll(Qb)).length,c=Math.floor(a.clientX/Yb.wrapper.offsetWidth*b);Q(c),nb(a)}function xb(a){a.preventDefault(),hb(),nb()}function yb(a){a.preventDefault(),ib(),nb()}function zb(a){a.preventDefault(),jb(),nb()}function Ab(a){a.preventDefault(),kb(),nb()}function Bb(a){a.preventDefault(),lb(),nb()}function Cb(a){a.preventDefault(),mb(),nb()}function Db(){ab()}function Eb(){C()}function Fb(){var a=document.webkitHidden||document.msHidden||document.hidden;a===!1&&document.activeElement!==document.body&&(document.activeElement.blur(),document.body.focus())}function Gb(a){if(dc&&J()){a.preventDefault();for(var b=a.target;b&&!b.nodeName.match(/section/gi);)b=b.parentNode;if(b&&!b.classList.contains("disabled")&&(H(),b.nodeName.match(/section/gi))){var c=parseInt(b.getAttribute("data-index-h"),10),d=parseInt(b.getAttribute("data-index-v"),10);Q(c,d)}}}function Hb(a){var b=a.target.getAttribute("href");b&&(z(b),a.preventDefault())}function Ib(a,b){this.size=50,this.thickness=3,this.playing=!1,this.progress=0,this.container=a,this.progressCheck=b,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.size,this.canvas.height=this.size,this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}var Jb,Kb,Lb,Mb,Nb,Ob,Pb=".reveal .slides section",Qb=".reveal .slides>section",Rb=".reveal .slides>section.present>section",Sb=".reveal .slides>section:first-child",Tb={width:960,height:700,margin:.1,minScale:.2,maxScale:1,controls:!0,progress:!0,history:!1,keyboard:!0,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,fragments:!0,embedded:!1,autoSlide:0,autoSlideStoppable:!1,mouseWheel:!1,rollingLinks:!1,hideAddressBar:!0,previewLinks:!1,focusBodyOnPageVisiblityChange:!0,theme:null,transition:"default",transitionSpeed:"default",backgroundTransition:"default",parallaxBackgroundImage:"",parallaxBackgroundSize:"",viewDistance:3,dependencies:[]},Ub=!1,Vb=0,Wb=[],Xb=1,Yb={},Zb={},$b=0,_b=0,ac=0,bc=0,cc=0,dc=!1,ec={startX:0,startY:0,startSpan:0,startCount:0,captured:!1,threshold:40};return Ib.prototype.setPlaying=function(a){this.playing=a,this.render(),this.playing&&this.update()},Ib.prototype.setProgress=function(a){this.progress=a,this.render()},Ib.prototype.update=function(){this.progress=this.progressCheck(),this.render(),this.playing&&window.requestAnimationFrame(this.update.bind(this))},Ib.prototype.render=function(){var a=this.size/2-this.thickness,b=this.size/2,c=this.size/2,d=-Math.PI/2,e=d+this.progress*2*Math.PI;this.context.save(),this.context.clearRect(0,0,this.size,this.size),this.context.beginPath(),this.context.arc(b,c,a,0,2*Math.PI,!1),this.context.fillStyle="rgba(0,0,0,0.2)",this.context.fill(),this.context.beginPath(),this.context.arc(b,c,a,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#666",this.context.stroke(),this.context.beginPath(),this.context.arc(b,c,a,d,e,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke(),this.context.restore()},Ib.prototype.destroy=function(){this.canvas.parentNode&&this.container.removeChild(this.canvas)},{initialize:a,configure:i,sync:R,slide:Q,left:hb,right:ib,up:jb,down:kb,prev:lb,next:mb,prevFragment:eb,nextFragment:db,navigateTo:Q,navigateLeft:hb,navigateRight:ib,navigateUp:jb,navigateDown:kb,navigatePrev:lb,navigateNext:mb,layout:C,availableRoutes:Y,availableFragments:Z,toggleOverview:I,togglePause:O,isOverview:J,isPaused:P,addEventListeners:j,removeEventListeners:k,getIndices:cb,getSlide:function(a,b){var c=document.querySelectorAll(Qb)[a],d=c&&c.querySelectorAll("section");return"undefined"!=typeof b?d?d[b]:void 0:c},getPreviousSlide:function(){return Lb},getCurrentSlide:function(){return Mb},getScale:function(){return Xb},getConfig:function(){return Tb},getQueryHash:function(){var a={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(b){a[b.split("=").shift()]=b.split("=").pop()});for(var b in a){var c=a[b];"null"===c?a[b]=null:"true"===c?a[b]=!0:"false"===c?a[b]=!1:isNaN(parseFloat(c))||(a[b]=parseFloat(c))}return a},isFirstSlide:function(){return null==document.querySelector(Pb+".past")?!0:!1},isLastSlide:function(){return Mb?Mb.nextElementSibling?!1:K(Mb)&&Mb.parentNode.nextElementSibling?!1:!0:!1},isReady:function(){return Ub},addEventListener:function(a,b,c){"addEventListener"in window&&(Yb.wrapper||document.querySelector(".reveal")).addEventListener(a,b,c)},removeEventListener:function(a,b,c){"addEventListener"in window&&(Yb.wrapper||document.querySelector(".reveal")).removeEventListener(a,b,c)}}}(); \ No newline at end of file
+var Reveal=function(){"use strict";function a(a){return b(),$b.transforms2d||$b.transforms3d?(window.addEventListener("load",C,!1),l(Vb,a),l(Vb,Reveal.getQueryHash()),s(),c(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function b(){$b.transforms3d="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,$b.transforms2d="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,$b.requestAnimationFrame="function"==typeof window.requestAnimationFrame,$b.canvas=!!document.createElement("canvas").getContext,Pb=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function c(){function a(){c.length&&head.js.apply(null,c),d()}for(var b=[],c=[],e=0,f=Vb.dependencies.length;f>e;e++){var g=Vb.dependencies[e];(!g.condition||g.condition())&&(g.async?c.push(g.src):b.push(g.src),"function"==typeof g.callback&&head.ready(g.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],g.callback))}b.length?(head.ready(a),head.js.apply(null,b)):a()}function d(){f(),e(),i(),ab(),setTimeout(function(){Zb.slides.classList.remove("no-transition"),Wb=!0,u("ready",{indexh:Lb,indexv:Mb,currentSlide:Ob})},1)}function e(){var a=m(document.querySelectorAll(Sb));a.forEach(function(a){var b=m(a.querySelectorAll("section"));b.forEach(function(a,b){b>0&&a.classList.add("future")})})}function f(){Zb.theme=document.querySelector("#theme"),Zb.wrapper=document.querySelector(".reveal"),Zb.slides=document.querySelector(".reveal .slides"),Zb.slides.classList.add("no-transition"),Zb.background=g(Zb.wrapper,"div","backgrounds",null),Zb.progress=g(Zb.wrapper,"div","progress","<span></span>"),Zb.progressbar=Zb.progress.querySelector("span"),g(Zb.wrapper,"aside","controls",'<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>'),g(Zb.wrapper,"div","state-background",null),g(Zb.wrapper,"div","pause-overlay",null),Zb.controls=document.querySelector(".reveal .controls"),Zb.controlsLeft=m(document.querySelectorAll(".navigate-left")),Zb.controlsRight=m(document.querySelectorAll(".navigate-right")),Zb.controlsUp=m(document.querySelectorAll(".navigate-up")),Zb.controlsDown=m(document.querySelectorAll(".navigate-down")),Zb.controlsPrev=m(document.querySelectorAll(".navigate-prev")),Zb.controlsNext=m(document.querySelectorAll(".navigate-next"))}function g(a,b,c,d){var e=a.querySelector("."+c);return e||(e=document.createElement(b),e.classList.add(c),null!==d&&(e.innerHTML=d),a.appendChild(e)),e}function h(){function a(a,b){var c={background:a.getAttribute("data-background"),backgroundSize:a.getAttribute("data-background-size"),backgroundImage:a.getAttribute("data-background-image"),backgroundColor:a.getAttribute("data-background-color"),backgroundRepeat:a.getAttribute("data-background-repeat"),backgroundPosition:a.getAttribute("data-background-position"),backgroundTransition:a.getAttribute("data-background-transition")},d=document.createElement("div");return d.className="slide-background",c.background&&(/^(http|file|\/\/)/gi.test(c.background)||/\.(svg|png|jpg|jpeg|gif|bmp)$/gi.test(c.background)?d.style.backgroundImage="url("+c.background+")":d.style.background=c.background),c.backgroundSize&&(d.style.backgroundSize=c.backgroundSize),c.backgroundImage&&(d.style.backgroundImage='url("'+c.backgroundImage+'")'),c.backgroundColor&&(d.style.backgroundColor=c.backgroundColor),c.backgroundRepeat&&(d.style.backgroundRepeat=c.backgroundRepeat),c.backgroundPosition&&(d.style.backgroundPosition=c.backgroundPosition),c.backgroundTransition&&d.setAttribute("data-background-transition",c.backgroundTransition),b.appendChild(d),d}r()&&document.body.classList.add("print-pdf"),Zb.background.innerHTML="",Zb.background.classList.add("no-transition"),m(document.querySelectorAll(Sb)).forEach(function(b){var c;c=r()?a(b,b):a(b,Zb.background),m(b.querySelectorAll("section")).forEach(function(b){r()?a(b,b):a(b,c)})}),Vb.parallaxBackgroundImage?(Zb.background.style.backgroundImage='url("'+Vb.parallaxBackgroundImage+'")',Zb.background.style.backgroundSize=Vb.parallaxBackgroundSize,setTimeout(function(){Zb.wrapper.classList.add("has-parallax-background")},1)):(Zb.background.style.backgroundImage="",Zb.wrapper.classList.remove("has-parallax-background"))}function i(a){if(Zb.wrapper.classList.remove(Vb.transition),"object"==typeof a&&l(Vb,a),$b.transforms3d===!1&&(Vb.transition="linear"),Zb.wrapper.classList.add(Vb.transition),Zb.wrapper.setAttribute("data-transition-speed",Vb.transitionSpeed),Zb.wrapper.setAttribute("data-background-transition",Vb.backgroundTransition),Zb.controls.style.display=Vb.controls?"block":"none",Zb.progress.style.display=Vb.progress?"block":"none",Vb.rtl?Zb.wrapper.classList.add("rtl"):Zb.wrapper.classList.remove("rtl"),Vb.center?Zb.wrapper.classList.add("center"):Zb.wrapper.classList.remove("center"),Vb.mouseWheel?(document.addEventListener("DOMMouseScroll",xb,!1),document.addEventListener("mousewheel",xb,!1)):(document.removeEventListener("DOMMouseScroll",xb,!1),document.removeEventListener("mousewheel",xb,!1)),Vb.rollingLinks?v():w(),Vb.previewLinks?x():(y(),x("[data-preview-link]")),Vb.autoSlide&&Vb.autoSlideStoppable&&$b.canvas&&$b.requestAnimationFrame?(Qb=new Kb(Zb.wrapper,function(){return Math.min(Math.max((Date.now()-gc)/ec,0),1)}),Qb.on("click",function(){hc?ib():hb()})):Qb&&(Qb.destroy(),Qb=null),Vb.theme&&Zb.theme){var b=Zb.theme.getAttribute("href"),c=/[^\/]*?(?=\.css)/,d=b.match(c)[0];Vb.theme!==d&&(b=b.replace(c,Vb.theme),Zb.theme.setAttribute("href",b))}R()}function j(){if(dc=!0,window.addEventListener("hashchange",Fb,!1),window.addEventListener("resize",Gb,!1),Vb.touch&&(Zb.wrapper.addEventListener("touchstart",rb,!1),Zb.wrapper.addEventListener("touchmove",sb,!1),Zb.wrapper.addEventListener("touchend",tb,!1),window.navigator.msPointerEnabled&&(Zb.wrapper.addEventListener("MSPointerDown",ub,!1),Zb.wrapper.addEventListener("MSPointerMove",vb,!1),Zb.wrapper.addEventListener("MSPointerUp",wb,!1))),Vb.keyboard&&document.addEventListener("keydown",qb,!1),Vb.progress&&Zb.progress&&Zb.progress.addEventListener("click",yb,!1),Vb.focusBodyOnPageVisiblityChange){var a;"hidden"in document?a="visibilitychange":"msHidden"in document?a="msvisibilitychange":"webkitHidden"in document&&(a="webkitvisibilitychange"),a&&document.addEventListener(a,Hb,!1)}["touchstart","click"].forEach(function(a){Zb.controlsLeft.forEach(function(b){b.addEventListener(a,zb,!1)}),Zb.controlsRight.forEach(function(b){b.addEventListener(a,Ab,!1)}),Zb.controlsUp.forEach(function(b){b.addEventListener(a,Bb,!1)}),Zb.controlsDown.forEach(function(b){b.addEventListener(a,Cb,!1)}),Zb.controlsPrev.forEach(function(b){b.addEventListener(a,Db,!1)}),Zb.controlsNext.forEach(function(b){b.addEventListener(a,Eb,!1)})})}function k(){dc=!1,document.removeEventListener("keydown",qb,!1),window.removeEventListener("hashchange",Fb,!1),window.removeEventListener("resize",Gb,!1),Zb.wrapper.removeEventListener("touchstart",rb,!1),Zb.wrapper.removeEventListener("touchmove",sb,!1),Zb.wrapper.removeEventListener("touchend",tb,!1),window.navigator.msPointerEnabled&&(Zb.wrapper.removeEventListener("MSPointerDown",ub,!1),Zb.wrapper.removeEventListener("MSPointerMove",vb,!1),Zb.wrapper.removeEventListener("MSPointerUp",wb,!1)),Vb.progress&&Zb.progress&&Zb.progress.removeEventListener("click",yb,!1),["touchstart","click"].forEach(function(a){Zb.controlsLeft.forEach(function(b){b.removeEventListener(a,zb,!1)}),Zb.controlsRight.forEach(function(b){b.removeEventListener(a,Ab,!1)}),Zb.controlsUp.forEach(function(b){b.removeEventListener(a,Bb,!1)}),Zb.controlsDown.forEach(function(b){b.removeEventListener(a,Cb,!1)}),Zb.controlsPrev.forEach(function(b){b.removeEventListener(a,Db,!1)}),Zb.controlsNext.forEach(function(b){b.removeEventListener(a,Eb,!1)})})}function l(a,b){for(var c in b)a[c]=b[c]}function m(a){return Array.prototype.slice.call(a)}function n(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}function o(a,b){a.style.WebkitTransform=b,a.style.MozTransform=b,a.style.msTransform=b,a.style.OTransform=b,a.style.transform=b}function p(a){var b=0;if(a){var c=0;m(a.childNodes).forEach(function(a){"number"==typeof a.offsetTop&&a.style&&("absolute"===a.style.position&&(c+=1),b=Math.max(b,a.offsetTop+a.offsetHeight))}),0===c&&(b=a.offsetHeight)}return b}function q(a,b){if(b=b||0,a){var c=a.parentNode,d=c.childNodes;m(d).forEach(function(c){if("number"==typeof c.offsetHeight&&c!==a){var d=window.getComputedStyle(c),e=parseInt(d.marginTop,10),f=parseInt(d.marginBottom,10);b-=c.offsetHeight+e+f}});var e=window.getComputedStyle(a);b-=parseInt(e.marginTop,10)+parseInt(e.marginBottom,10)}return b}function r(){return/print-pdf/gi.test(window.location.search)}function s(){Vb.hideAddressBar&&Pb&&(window.addEventListener("load",t,!1),window.addEventListener("orientationchange",t,!1))}function t(){0!==window.orientation||/crios/gi.test(navigator.userAgent)?(document.documentElement.style.overflow="",document.body.style.height="100%"):(document.documentElement.style.overflow="scroll",document.body.style.height="120%"),setTimeout(function(){window.scrollTo(0,1)},10)}function u(a,b){var c=document.createEvent("HTMLEvents",1,2);c.initEvent(a,!0,!0),l(c,b),Zb.wrapper.dispatchEvent(c)}function v(){if($b.transforms3d&&!("msPerspective"in document.body.style))for(var a=document.querySelectorAll(Rb+" a:not(.image)"),b=0,c=a.length;c>b;b++){var d=a[b];if(!(!d.textContent||d.querySelector("*")||d.className&&d.classList.contains(d,"roll"))){var e=document.createElement("span");e.setAttribute("data-title",d.text),e.innerHTML=d.innerHTML,d.classList.add("roll"),d.innerHTML="",d.appendChild(e)}}}function w(){for(var a=document.querySelectorAll(Rb+" a.roll"),b=0,c=a.length;c>b;b++){var d=a[b],e=d.querySelector("span");e&&(d.classList.remove("roll"),d.innerHTML=e.innerHTML)}}function x(a){var b=m(document.querySelectorAll(a?a:"a"));b.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.addEventListener("click",Jb,!1)})}function y(){var a=m(document.querySelectorAll("a"));a.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.removeEventListener("click",Jb,!1)})}function z(a){A(),Zb.preview=document.createElement("div"),Zb.preview.classList.add("preview-link-overlay"),Zb.wrapper.appendChild(Zb.preview),Zb.preview.innerHTML=["<header>",'<a class="close" href="#"><span class="icon"></span></a>','<a class="external" href="'+a+'" target="_blank"><span class="icon"></span></a>',"</header>",'<div class="spinner"></div>','<div class="viewport">','<iframe src="'+a+'"></iframe>',"</div>"].join(""),Zb.preview.querySelector("iframe").addEventListener("load",function(){Zb.preview.classList.add("loaded")},!1),Zb.preview.querySelector(".close").addEventListener("click",function(a){A(),a.preventDefault()},!1),Zb.preview.querySelector(".external").addEventListener("click",function(){A()},!1),setTimeout(function(){Zb.preview.classList.add("visible")},1)}function A(){Zb.preview&&(Zb.preview.setAttribute("src",""),Zb.preview.parentNode.removeChild(Zb.preview),Zb.preview=null)}function B(a){var b=m(a);return b.forEach(function(a,b){a.hasAttribute("data-fragment-index")||a.setAttribute("data-fragment-index",b)}),b.sort(function(a,b){return a.getAttribute("data-fragment-index")-b.getAttribute("data-fragment-index")}),b}function C(){if(Zb.wrapper&&!r()){var a=Zb.wrapper.offsetWidth,b=Zb.wrapper.offsetHeight;a-=b*Vb.margin,b-=b*Vb.margin;var c=Vb.width,d=Vb.height,e=20;D(Vb.width,Vb.height,e),"string"==typeof c&&/%$/.test(c)&&(c=parseInt(c,10)/100*a),"string"==typeof d&&/%$/.test(d)&&(d=parseInt(d,10)/100*b),Zb.slides.style.width=c+"px",Zb.slides.style.height=d+"px",Yb=Math.min(a/c,b/d),Yb=Math.max(Yb,Vb.minScale),Yb=Math.min(Yb,Vb.maxScale),"undefined"==typeof Zb.slides.style.zoom||navigator.userAgent.match(/(iphone|ipod|ipad|android)/gi)?o(Zb.slides,"translate(-50%, -50%) scale("+Yb+") translate(50%, 50%)"):Zb.slides.style.zoom=Yb;for(var f=m(document.querySelectorAll(Rb)),g=0,h=f.length;h>g;g++){var i=f[g];"none"!==i.style.display&&(i.style.top=Vb.center?i.classList.contains("stack")?0:Math.max(-(p(i)/2)-e,-d/2)+"px":"")}U(),X()}}function D(a,b,c){m(Zb.slides.querySelectorAll("section > .stretch")).forEach(function(d){var e=q(d,b-2*c);if(/(img|video)/gi.test(d.nodeName)){var f=d.naturalWidth||d.videoWidth,g=d.naturalHeight||d.videoHeight,h=Math.min(a/f,e/g);d.style.width=f*h+"px",d.style.height=g*h+"px"}else d.style.width=a+"px",d.style.height=e+"px"})}function E(a,b){"object"==typeof a&&"function"==typeof a.setAttribute&&a.setAttribute("data-previous-indexv",b||0)}function F(a){if("object"==typeof a&&"function"==typeof a.setAttribute&&a.classList.contains("stack")){var b=a.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(a.getAttribute(b)||0,10)}return 0}function G(){if(Vb.overview){gb();var a=Zb.wrapper.classList.contains("overview"),b=window.innerWidth<400?1e3:2500;Zb.wrapper.classList.add("overview"),Zb.wrapper.classList.remove("overview-deactivating"),clearTimeout(bc),clearTimeout(cc),bc=setTimeout(function(){for(var c=document.querySelectorAll(Sb),d=0,e=c.length;e>d;d++){var f=c[d],g=Vb.rtl?-105:105;if(f.setAttribute("data-index-h",d),o(f,"translateZ(-"+b+"px) translate("+(d-Lb)*g+"%, 0%)"),f.classList.contains("stack"))for(var h=f.querySelectorAll("section"),i=0,j=h.length;j>i;i++){var k=d===Lb?Mb:F(f),l=h[i];l.setAttribute("data-index-h",d),l.setAttribute("data-index-v",i),o(l,"translate(0%, "+105*(i-k)+"%)"),l.addEventListener("click",Ib,!0)}else f.addEventListener("click",Ib,!0)}T(),C(),a||u("overviewshown",{indexh:Lb,indexv:Mb,currentSlide:Ob})},10)}}function H(){Vb.overview&&(clearTimeout(bc),clearTimeout(cc),Zb.wrapper.classList.remove("overview"),Zb.wrapper.classList.add("overview-deactivating"),cc=setTimeout(function(){Zb.wrapper.classList.remove("overview-deactivating")},1),m(document.querySelectorAll(Rb)).forEach(function(a){o(a,""),a.removeEventListener("click",Ib,!0)}),Q(Lb,Mb),fb(),u("overviewhidden",{indexh:Lb,indexv:Mb,currentSlide:Ob}))}function I(a){"boolean"==typeof a?a?G():H():J()?H():G()}function J(){return Zb.wrapper.classList.contains("overview")}function K(a){return a=a?a:Ob,a&&a.parentNode&&!!a.parentNode.nodeName.match(/section/i)}function L(){var a=document.body,b=a.requestFullScreen||a.webkitRequestFullscreen||a.webkitRequestFullScreen||a.mozRequestFullScreen||a.msRequestFullScreen;b&&b.apply(a)}function M(){var a=Zb.wrapper.classList.contains("paused");gb(),Zb.wrapper.classList.add("paused"),a===!1&&u("paused")}function N(){var a=Zb.wrapper.classList.contains("paused");Zb.wrapper.classList.remove("paused"),fb(),a&&u("resumed")}function O(){P()?N():M()}function P(){return Zb.wrapper.classList.contains("paused")}function Q(a,b,c,d){Nb=Ob;var e=document.querySelectorAll(Sb);void 0===b&&(b=F(e[a])),Nb&&Nb.parentNode&&Nb.parentNode.classList.contains("stack")&&E(Nb.parentNode,Mb);var f=Xb.concat();Xb.length=0;var g=Lb||0,h=Mb||0;Lb=S(Sb,void 0===a?Lb:a),Mb=S(Tb,void 0===b?Mb:b),T(),C();a:for(var i=0,j=Xb.length;j>i;i++){for(var k=0;k<f.length;k++)if(f[k]===Xb[i]){f.splice(k,1);continue a}document.documentElement.classList.add(Xb[i]),u(Xb[i])}for(;f.length;)document.documentElement.classList.remove(f.pop());J()&&G();var l=e[Lb],n=l.querySelectorAll("section");if(Ob=n[Mb]||l,"undefined"!=typeof c){var o=B(Ob.querySelectorAll(".fragment"));m(o).forEach(function(a,b){c>b?a.classList.add("visible"):a.classList.remove("visible")})}var p=Lb!==g||Mb!==h;p?u("slidechanged",{indexh:Lb,indexv:Mb,previousSlide:Nb,currentSlide:Ob,origin:d}):Nb=null,Nb&&(Nb.classList.remove("present"),document.querySelector(Ub).classList.contains("present")&&setTimeout(function(){var a,b=m(document.querySelectorAll(Sb+".stack"));for(a in b)b[a]&&E(b[a],0)},0)),p&&(_(Nb),$(Ob)),V(),U(),W(),X(),bb();var q=Ob.getAttribute("data-autoslide");ec=q?parseInt(q,10):Vb.autoSlide,fb()}function R(){k(),j(),C(),ec=Vb.autoSlide,fb(),h(),V(),U(),W()}function S(a,b){var c=m(document.querySelectorAll(a)),d=c.length;if(d){Vb.loop&&(b%=d,0>b&&(b=d+b)),b=Math.max(Math.min(b,d-1),0);for(var e=0;d>e;e++){var f=c[e],g=Vb.rtl&&!K(f);if(f.classList.remove("past"),f.classList.remove("present"),f.classList.remove("future"),f.setAttribute("hidden",""),b>e)f.classList.add(g?"future":"past");else if(e>b){f.classList.add(g?"past":"future");for(var h=m(f.querySelectorAll(".fragment.visible"));h.length;)h.pop().classList.remove("visible")}f.querySelector("section")&&f.classList.add("stack")}c[b].classList.add("present"),c[b].removeAttribute("hidden");var i=c[b].getAttribute("data-state");i&&(Xb=Xb.concat(i.split(" ")))}else b=0;return b}function T(){var a,b,c=m(document.querySelectorAll(Sb)),d=c.length;if(d){var e=J()?10:Vb.viewDistance;Pb&&(e=J()?6:1);for(var f=0;d>f;f++){var g=c[f],h=m(g.querySelectorAll("section")),i=h.length;if(a=Math.abs((Lb-f)%(d-e))||0,g.style.display=a>e?"none":"block",i)for(var j=F(g),k=0;i>k;k++){var l=h[k];b=f===Lb?Math.abs(Mb-k):Math.abs(k-j),l.style.display=a+b>e?"none":"block"}}}}function U(){if(Vb.progress&&Zb.progress){var a=m(document.querySelectorAll(Sb)),b=document.querySelectorAll(Rb+":not(.stack)").length,c=0;a:for(var d=0;d<a.length;d++){for(var e=a[d],f=m(e.querySelectorAll("section")),g=0;g<f.length;g++){if(f[g].classList.contains("present"))break a;c++}if(e.classList.contains("present"))break;e.classList.contains("stack")===!1&&c++}Zb.progressbar.style.width=c/(b-1)*window.innerWidth+"px"}}function V(){var a=Y(),b=Z();Zb.controlsLeft.concat(Zb.controlsRight).concat(Zb.controlsUp).concat(Zb.controlsDown).concat(Zb.controlsPrev).concat(Zb.controlsNext).forEach(function(a){a.classList.remove("enabled"),a.classList.remove("fragmented")}),a.left&&Zb.controlsLeft.forEach(function(a){a.classList.add("enabled")}),a.right&&Zb.controlsRight.forEach(function(a){a.classList.add("enabled")}),a.up&&Zb.controlsUp.forEach(function(a){a.classList.add("enabled")}),a.down&&Zb.controlsDown.forEach(function(a){a.classList.add("enabled")}),(a.left||a.up)&&Zb.controlsPrev.forEach(function(a){a.classList.add("enabled")}),(a.right||a.down)&&Zb.controlsNext.forEach(function(a){a.classList.add("enabled")}),Ob&&(b.prev&&Zb.controlsPrev.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Zb.controlsNext.forEach(function(a){a.classList.add("fragmented","enabled")}),K(Ob)?(b.prev&&Zb.controlsUp.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Zb.controlsDown.forEach(function(a){a.classList.add("fragmented","enabled")})):(b.prev&&Zb.controlsLeft.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&Zb.controlsRight.forEach(function(a){a.classList.add("fragmented","enabled")})))}function W(){m(Zb.background.childNodes).forEach(function(a,b){var c=Vb.rtl?"future":"past",d=Vb.rtl?"past":"future";a.className="slide-background "+(Lb>b?c:b>Lb?d:"present"),m(a.childNodes).forEach(function(a,b){a.className="slide-background "+(Mb>b?"past":b>Mb?"future":"present")})}),setTimeout(function(){Zb.background.classList.remove("no-transition")},1)}function X(){if(Vb.parallaxBackgroundImage){var a,b,c=document.querySelectorAll(Sb),d=document.querySelectorAll(Tb),e=Zb.background.style.backgroundSize.split(" ");1===e.length?a=b=parseInt(e[0],10):(a=parseInt(e[0],10),b=parseInt(e[1],10));var f=Zb.background.offsetWidth,g=c.length,h=-(a-f)/(g-1)*Lb,i=Zb.background.offsetHeight,j=d.length,k=j>0?-(b-i)/(j-1)*Mb:0;Zb.background.style.backgroundPosition=h+"px "+k+"px"}}function Y(){var a=document.querySelectorAll(Sb),b=document.querySelectorAll(Tb),c={left:Lb>0||Vb.loop,right:Lb<a.length-1||Vb.loop,up:Mb>0,down:Mb<b.length-1};if(Vb.rtl){var d=c.left;c.left=c.right,c.right=d}return c}function Z(){if(Ob&&Vb.fragments){var a=Ob.querySelectorAll(".fragment"),b=Ob.querySelectorAll(".fragment:not(.visible)");return{prev:a.length-b.length>0,next:!!b.length}}return{prev:!1,next:!1}}function $(a){a&&(m(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-autoplay")&&a.play()}),m(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-autoplay")&&a.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")}))}function _(a){a&&(m(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-ignore")||a.pause()}),m(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-ignore")||"function"!=typeof a.contentWindow.postMessage||a.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}))}function ab(){var a=window.location.hash,b=a.slice(2).split("/"),c=a.replace(/#|\//gi,"");if(isNaN(parseInt(b[0],10))&&c.length){var d=document.querySelector("#"+c);if(d){var e=Reveal.getIndices(d);Q(e.h,e.v)}else Q(Lb||0,Mb||0)}else{var f=parseInt(b[0],10)||0,g=parseInt(b[1],10)||0;(f!==Lb||g!==Mb)&&Q(f,g)}}function bb(a){if(Vb.history)if(clearTimeout(ac),"number"==typeof a)ac=setTimeout(bb,a);else{var b="/";Ob&&"string"==typeof Ob.getAttribute("id")?b="/"+Ob.getAttribute("id"):((Lb>0||Mb>0)&&(b+=Lb),Mb>0&&(b+="/"+Mb)),window.location.hash=b}}function cb(a){var b,c=Lb,d=Mb;if(a){var e=K(a),f=e?a.parentNode:a,g=m(document.querySelectorAll(Sb));c=Math.max(g.indexOf(f),0),e&&(d=Math.max(m(a.parentNode.querySelectorAll("section")).indexOf(a),0))}if(!a&&Ob){var h=Ob.querySelectorAll(".fragment").length>0;if(h){var i=Ob.querySelectorAll(".fragment.visible");b=i.length}}return{h:c,v:d,f:b}}function db(){if(Ob&&Vb.fragments){var a=B(Ob.querySelectorAll(".fragment:not(.visible)"));if(a.length){var b=a[0].getAttribute("data-fragment-index");return a=Ob.querySelectorAll('.fragment[data-fragment-index="'+b+'"]'),m(a).forEach(function(a){a.classList.add("visible")}),u("fragmentshown",{fragment:a[0],fragments:a}),V(),!0}}return!1}function eb(){if(Ob&&Vb.fragments){var a=B(Ob.querySelectorAll(".fragment.visible"));if(a.length){var b=a[a.length-1].getAttribute("data-fragment-index");return a=Ob.querySelectorAll('.fragment[data-fragment-index="'+b+'"]'),m(a).forEach(function(a){a.classList.remove("visible")}),u("fragmenthidden",{fragment:a[0],fragments:a}),V(),!0}}return!1}function fb(){clearTimeout(fc),fc=-1,gc=Date.now(),!ec||hc||P()||J()||Reveal.isLastSlide()&&Vb.loop!==!0||(fc=setTimeout(ob,ec)),Qb&&Qb.setPlaying(-1!==fc)}function gb(){clearTimeout(fc)}function hb(){hc=!0,clearTimeout(fc),Qb&&Qb.setPlaying(!1)}function ib(){hc=!1,fb()}function jb(){Vb.rtl?(J()||db()===!1)&&Y().left&&Q(Lb+1):(J()||eb()===!1)&&Y().left&&Q(Lb-1)}function kb(){Vb.rtl?(J()||eb()===!1)&&Y().right&&Q(Lb-1):(J()||db()===!1)&&Y().right&&Q(Lb+1)}function lb(){(J()||eb()===!1)&&Y().up&&Q(Lb,Mb-1)}function mb(){(J()||db()===!1)&&Y().down&&Q(Lb,Mb+1)}function nb(){if(eb()===!1)if(Y().up)lb();else{var a=document.querySelector(Sb+".past:nth-child("+Lb+")");if(a){var b=a.querySelectorAll("section").length-1||void 0,c=Lb-1;Q(c,b)}}}function ob(){db()===!1&&(Y().down?mb():kb()),fb()}function pb(){Vb.autoSlideStoppable&&hb()}function qb(a){pb(a),document.activeElement;var b=!(!document.activeElement||!document.activeElement.type&&!document.activeElement.href&&"inherit"===document.activeElement.contentEditable);if(!(b||a.shiftKey&&32!==a.keyCode||a.altKey||a.ctrlKey||a.metaKey)){if(P()&&-1===[66,190,191].indexOf(a.keyCode))return!1;var c=!1;if("object"==typeof Vb.keyboard)for(var d in Vb.keyboard)if(parseInt(d,10)===a.keyCode){var e=Vb.keyboard[d];"function"==typeof e?e.apply(null,[a]):"string"==typeof e&&"function"==typeof Reveal[e]&&Reveal[e].call(),c=!0}if(c===!1)switch(c=!0,a.keyCode){case 80:case 33:nb();break;case 78:case 34:ob();break;case 72:case 37:jb();break;case 76:case 39:kb();break;case 75:case 38:lb();break;case 74:case 40:mb();break;case 36:Q(0);break;case 35:Q(Number.MAX_VALUE);break;case 32:J()?H():a.shiftKey?nb():ob();break;case 13:J()?H():c=!1;break;case 66:case 190:case 191:O();break;case 70:L();break;default:c=!1}c?a.preventDefault():27!==a.keyCode&&79!==a.keyCode||!$b.transforms3d||(Zb.preview?A():I(),a.preventDefault()),fb()}}function rb(a){pb(a),ic.startX=a.touches[0].clientX,ic.startY=a.touches[0].clientY,ic.startCount=a.touches.length,2===a.touches.length&&Vb.overview&&(ic.startSpan=n({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:ic.startX,y:ic.startY}))}function sb(a){if(ic.captured)navigator.userAgent.match(/android/gi)&&a.preventDefault();else{var b=a.touches[0].clientX,c=a.touches[0].clientY;if(2===a.touches.length&&2===ic.startCount&&Vb.overview){var d=n({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:ic.startX,y:ic.startY});Math.abs(ic.startSpan-d)>ic.threshold&&(ic.captured=!0,d<ic.startSpan?G():H()),a.preventDefault()}else if(1===a.touches.length&&2!==ic.startCount){var e=b-ic.startX,f=c-ic.startY;e>ic.threshold&&Math.abs(e)>Math.abs(f)?(ic.captured=!0,jb()):e<-ic.threshold&&Math.abs(e)>Math.abs(f)?(ic.captured=!0,kb()):f>ic.threshold?(ic.captured=!0,lb()):f<-ic.threshold&&(ic.captured=!0,mb()),Vb.embedded?(ic.captured||K(Ob))&&a.preventDefault():a.preventDefault()}}}function tb(){ic.captured=!1}function ub(a){pb(a),a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],rb(a))}function vb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],sb(a))}function wb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],tb(a))}function xb(a){if(Date.now()-_b>600){_b=Date.now();var b=a.detail||-a.wheelDelta;b>0?ob():nb()}}function yb(a){pb(a),a.preventDefault();var b=m(document.querySelectorAll(Sb)).length,c=Math.floor(a.clientX/Zb.wrapper.offsetWidth*b);Q(c)}function zb(a){a.preventDefault(),pb(),jb()}function Ab(a){a.preventDefault(),pb(),kb()}function Bb(a){a.preventDefault(),pb(),lb()}function Cb(a){a.preventDefault(),pb(),mb()}function Db(a){a.preventDefault(),pb(),nb()}function Eb(a){a.preventDefault(),pb(),ob()}function Fb(){ab()}function Gb(){C()}function Hb(){var a=document.webkitHidden||document.msHidden||document.hidden;a===!1&&document.activeElement!==document.body&&(document.activeElement.blur(),document.body.focus())}function Ib(a){if(dc&&J()){a.preventDefault();for(var b=a.target;b&&!b.nodeName.match(/section/gi);)b=b.parentNode;if(b&&!b.classList.contains("disabled")&&(H(),b.nodeName.match(/section/gi))){var c=parseInt(b.getAttribute("data-index-h"),10),d=parseInt(b.getAttribute("data-index-v"),10);Q(c,d)}}}function Jb(a){var b=a.target.getAttribute("href");b&&(z(b),a.preventDefault())}function Kb(a,b){this.size=50,this.thickness=3,this.playing=!1,this.progress=0,this.container=a,this.progressCheck=b,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.size,this.canvas.height=this.size,this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}var Lb,Mb,Nb,Ob,Pb,Qb,Rb=".reveal .slides section",Sb=".reveal .slides>section",Tb=".reveal .slides>section.present>section",Ub=".reveal .slides>section:first-child",Vb={width:960,height:700,margin:.1,minScale:.2,maxScale:1,controls:!0,progress:!0,history:!1,keyboard:!0,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,fragments:!0,embedded:!1,autoSlide:0,autoSlideStoppable:!1,mouseWheel:!1,rollingLinks:!1,hideAddressBar:!0,previewLinks:!1,focusBodyOnPageVisiblityChange:!0,theme:null,transition:"default",transitionSpeed:"default",backgroundTransition:"default",parallaxBackgroundImage:"",parallaxBackgroundSize:"",viewDistance:3,dependencies:[]},Wb=!1,Xb=[],Yb=1,Zb={},$b={},_b=0,ac=0,bc=0,cc=0,dc=!1,ec=0,fc=0,gc=-1,hc=!1,ic={startX:0,startY:0,startSpan:0,startCount:0,captured:!1,threshold:40};return Kb.prototype.setPlaying=function(a){this.playing=a,this.render(),this.playing&&this.update()},Kb.prototype.setProgress=function(a){this.progress=a,this.render()},Kb.prototype.update=function(){this.progress=this.progressCheck(),this.render(),this.playing&&window.requestAnimationFrame(this.update.bind(this))},Kb.prototype.render=function(){var a=this.playing?this.progress:0,b=this.size/2-this.thickness,c=this.size/2,d=this.size/2,e=-Math.PI/2,f=e+a*2*Math.PI;this.context.save(),this.context.clearRect(0,0,this.size,this.size),this.context.beginPath(),this.context.arc(c,d,b,0,2*Math.PI,!1),this.context.fillStyle="rgba(0,0,0,0.2)",this.context.fill(),this.context.beginPath(),this.context.arc(c,d,b,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#666",this.context.stroke(),this.context.beginPath(),this.context.arc(c,d,b,e,f,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke();var g=14;this.context.translate(c-g/2,d-g/2),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,g/2-2,g),this.context.fillRect(g/2+2,0,g/2-2,g)):(this.context.beginPath(),this.context.translate(2,0),this.context.moveTo(0,0),this.context.lineTo(g-2,g/2),this.context.lineTo(0,g),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()},Kb.prototype.destroy=function(){this.canvas.parentNode&&this.container.removeChild(this.canvas)},Kb.prototype.on=function(a,b){this.canvas.addEventListener(a,b,!1)},Kb.prototype.off=function(a,b){this.canvas.removeEventListener(a,b,!1)},{initialize:a,configure:i,sync:R,slide:Q,left:jb,right:kb,up:lb,down:mb,prev:nb,next:ob,prevFragment:eb,nextFragment:db,navigateTo:Q,navigateLeft:jb,navigateRight:kb,navigateUp:lb,navigateDown:mb,navigatePrev:nb,navigateNext:ob,layout:C,availableRoutes:Y,availableFragments:Z,toggleOverview:I,togglePause:O,isOverview:J,isPaused:P,addEventListeners:j,removeEventListeners:k,getIndices:cb,getSlide:function(a,b){var c=document.querySelectorAll(Sb)[a],d=c&&c.querySelectorAll("section");return"undefined"!=typeof b?d?d[b]:void 0:c},getPreviousSlide:function(){return Nb},getCurrentSlide:function(){return Ob},getScale:function(){return Yb},getConfig:function(){return Vb},getQueryHash:function(){var a={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(b){a[b.split("=").shift()]=b.split("=").pop()});for(var b in a){var c=a[b];"null"===c?a[b]=null:"true"===c?a[b]=!0:"false"===c?a[b]=!1:isNaN(parseFloat(c))||(a[b]=parseFloat(c))}return a},isFirstSlide:function(){return null==document.querySelector(Rb+".past")?!0:!1},isLastSlide:function(){return Ob?Ob.nextElementSibling?!1:K(Ob)&&Ob.parentNode.nextElementSibling?!1:!0:!1},isReady:function(){return Wb},addEventListener:function(a,b,c){"addEventListener"in window&&(Zb.wrapper||document.querySelector(".reveal")).addEventListener(a,b,c)},removeEventListener:function(a,b,c){"addEventListener"in window&&(Zb.wrapper||document.querySelector(".reveal")).removeEventListener(a,b,c)}}}(); \ No newline at end of file