41 lines
114 KiB
JavaScript
41 lines
114 KiB
JavaScript
/*!
|
|
* reveal.js
|
|
* https://revealjs.com
|
|
* MIT licensed
|
|
*
|
|
* Copyright (C) 2011-2026 Hakim El Hattab, https://hakim.se
|
|
*/
|
|
(function(I,b){typeof exports=="object"&&typeof module!="undefined"?module.exports=b():typeof define=="function"&&define.amd?define(b):(I=typeof globalThis!="undefined"?globalThis:I||self,I.Reveal=b())})(this,(function(){"use strict";var Ji=Object.defineProperty,Qi=Object.defineProperties;var Zi=Object.getOwnPropertyDescriptors;var qt=Object.getOwnPropertySymbols;var es=Object.prototype.hasOwnProperty,ts=Object.prototype.propertyIsEnumerable;var Ge=(I,b,H)=>b in I?Ji(I,b,{enumerable:!0,configurable:!0,writable:!0,value:H}):I[b]=H,te=(I,b)=>{for(var H in b||(b={}))es.call(b,H)&&Ge(I,H,b[H]);if(qt)for(var H of qt(b))ts.call(b,H)&&Ge(I,H,b[H]);return I},Je=(I,b)=>Qi(I,Zi(b));var Qe=(I,b,H)=>Ge(I,typeof b!="symbol"?b+"":b,H);var Wt=(I,b,H)=>new Promise((ne,X)=>{var ve=ie=>{try{me(H.next(ie))}catch(ce){X(ce)}},V=ie=>{try{me(H.throw(ie))}catch(ce){X(ce)}},me=ie=>ie.done?ne(ie.value):Promise.resolve(ie.value).then(ve,V);me((H=H.apply(I,b)).next())});const I=(h,e)=>{for(let i in e)h[i]=e[i];return h},b=(h,e)=>Array.from(h.querySelectorAll(e)),H=(h,e,i)=>{i?h.classList.add(e):h.classList.remove(e)},ne=h=>{if(typeof h=="string"){if(h==="null")return null;if(h==="true")return!0;if(h==="false")return!1;if(h.match(/^-?[\d\.]+$/))return parseFloat(h)}return h},X=(h,e)=>{h.style.transform=e},ve=(h,e)=>{let i=h.matches||h.matchesSelector||h.msMatchesSelector;return!!(i&&i.call(h,e))},V=(h,e)=>{if(h&&typeof h.closest=="function")return h.closest(e);for(;h;){if(ve(h,e))return h;h=h.parentElement}return null},me=h=>{h=h||document.documentElement;let e=h.requestFullscreen||h.webkitRequestFullscreen||h.webkitRequestFullScreen||h.mozRequestFullScreen||h.msRequestFullscreen;e&&e.apply(h)},ie=(h,e,i,t="")=>{let s=h.querySelectorAll("."+i);for(let r=0;r<s.length;r++){let o=s[r];if(o.parentNode===h)return o}let a=document.createElement(e);return a.className=i,a.innerHTML=t,h.appendChild(a),a},ce=h=>{let e=document.createElement("style");return h&&h.length>0&&e.appendChild(document.createTextNode(h)),document.head.appendChild(e),e},Ze=()=>{let h={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,e=>{const i=e.split("=").shift(),t=e.split("=").pop();return i&&t!==void 0&&(h[i]=t),e});for(let e in h){let i=h[e];h[e]=ne(unescape(i))}return typeof h.dependencies!="undefined"&&delete h.dependencies,h},jt=(h,e=0)=>{var i;if(h){let t,s=h.style.height;return h.style.height="0px",h.parentElement&&(h.parentElement.style.height="auto"),t=e-(((i=h.parentElement)==null?void 0:i.offsetHeight)||0),h.style.height=s+"px",h.parentElement&&h.parentElement.style.removeProperty("height"),t}return e},Kt={mp4:"video/mp4",m4a:"video/mp4",ogv:"video/ogg",mpeg:"video/mpeg",webm:"video/webm"},_t=(h="")=>{const e=h.split(".").pop();return e?Kt[e]:void 0},$t=(h="")=>encodeURI(h).replace(/%5B/g,"[").replace(/%5D/g,"]").replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),et=navigator.userAgent,he=/(iphone|ipod|ipad|android)/gi.test(et)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,tt=/android/gi.test(et);var Xt=(function(h){if(h){var e=function(f){return[].slice.call(f)},i=0,t=1,s=2,a=3,r=[],o=null,c="requestAnimationFrame"in h?function(){var f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{sync:!1};h.cancelAnimationFrame(o);var S=function(){return g(r.filter((function(T){return T.dirty&&T.active})))};if(f.sync)return S();o=h.requestAnimationFrame(S)}:function(){},u=function(f){return function(S){r.forEach((function(T){return T.dirty=f})),c(S)}},g=function(f){f.filter((function(T){return!T.styleComputed})).forEach((function(T){T.styleComputed=l(T)})),f.filter(A).forEach(N);var S=f.filter(w);S.forEach(p),S.forEach((function(T){N(T),y(T)})),S.forEach(q)},y=function(f){return f.dirty=i},p=function(f){f.availableWidth=f.element.parentNode.clientWidth,f.currentWidth=f.element.scrollWidth,f.previousFontSize=f.currentFontSize,f.currentFontSize=Math.min(Math.max(f.minSize,f.availableWidth/f.currentWidth*f.previousFontSize),f.maxSize),f.whiteSpace=f.multiLine&&f.currentFontSize===f.minSize?"normal":"nowrap"},w=function(f){return f.dirty!==s||f.dirty===s&&f.element.parentNode.clientWidth!==f.availableWidth},l=function(f){var S=h.getComputedStyle(f.element,null);return f.currentFontSize=parseFloat(S.getPropertyValue("font-size")),f.display=S.getPropertyValue("display"),f.whiteSpace=S.getPropertyValue("white-space"),!0},A=function(f){var S=!1;return!f.preStyleTestCompleted&&(/inline-/.test(f.display)||(S=!0,f.display="inline-block"),f.whiteSpace!=="nowrap"&&(S=!0,f.whiteSpace="nowrap"),f.preStyleTestCompleted=!0,S)},N=function(f){f.element.style.whiteSpace=f.whiteSpace,f.element.style.display=f.display,f.element.style.fontSize=f.currentFontSize+"px"},q=function(f){f.element.dispatchEvent(new CustomEvent("fit",{detail:{oldValue:f.previousFontSize,newValue:f.currentFontSize,scaleFactor:f.currentFontSize/f.previousFontSize}}))},W=function(f,S){return function(T){f.dirty=S,f.active&&c(T)}},fe=function(f){return function(){r=r.filter((function(S){return S.element!==f.element})),f.observeMutations&&f.observer.disconnect(),f.element.style.whiteSpace=f.originalStyle.whiteSpace,f.element.style.display=f.originalStyle.display,f.element.style.fontSize=f.originalStyle.fontSize}},U=function(f){return function(){f.active||(f.active=!0,c())}},R=function(f){return function(){return f.active=!1}},D=function(f){f.observeMutations&&(f.observer=new MutationObserver(W(f,t)),f.observer.observe(f.element,f.observeMutations))},j={minSize:16,maxSize:512,multiLine:!0,observeMutations:"MutationObserver"in h&&{subtree:!0,childList:!0,characterData:!0}},K=null,L=function(){h.clearTimeout(K),K=h.setTimeout(u(s),C.observeWindowDelay)},k=["resize","orientationchange"];return Object.defineProperty(C,"observeWindow",{set:function(f){var S="".concat(f?"add":"remove","EventListener");k.forEach((function(T){h[S](T,L)}))}}),C.observeWindow=!0,C.observeWindowDelay=100,C.fitAll=u(a),C}function O(f,S){var T=Object.assign({},j,S),J=f.map((function($){var le=Object.assign({},T,{element:$,active:!0});return(function(z){z.originalStyle={whiteSpace:z.element.style.whiteSpace,display:z.element.style.display,fontSize:z.element.style.fontSize},D(z),z.newbie=!0,z.dirty=!0,r.push(z)})(le),{element:$,fit:W(le,a),unfreeze:U(le),freeze:R(le),unsubscribe:fe(le)}}));return c(),J}function C(f){var S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return typeof f=="string"?O(e(document.querySelectorAll(f)),S):O([f],S)[0]}})(typeof window=="undefined"?null:window);class Yt{constructor(e){Qe(this,"allowedToPlayAudio",null);this.Reveal=e,this.startEmbeddedMedia=this.startEmbeddedMedia.bind(this),this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this),this.preventIframeAutoFocus=this.preventIframeAutoFocus.bind(this),this.ensureMobileMediaPlaying=this.ensureMobileMediaPlaying.bind(this),this.failedAudioPlaybackTargets=new Set,this.failedVideoPlaybackTargets=new Set,this.failedMutedVideoPlaybackTargets=new Set,this.renderMediaPlayButton()}renderMediaPlayButton(){this.mediaPlayButton=document.createElement("button"),this.mediaPlayButton.className="r-overlay-button r-media-play-button",this.mediaPlayButton.addEventListener("click",()=>{this.resetTemporarilyMutedMedia(),new Set([...this.failedAudioPlaybackTargets,...this.failedVideoPlaybackTargets,...this.failedMutedVideoPlaybackTargets]).forEach(i=>{this.startEmbeddedMedia({target:i})}),this.clearMediaPlaybackErrors()})}shouldPreload(e){if(this.Reveal.isScrollView())return!0;let i=this.Reveal.getConfig().preloadIframes;return typeof i!="boolean"&&(i=e.hasAttribute("data-preload")),i}load(e,i={}){const t=this.Reveal.getConfig().display;if(t.includes("!important")){const a=t.replace(/\s*!important\s*$/,"").trim();e.style.setProperty("display",a,"important")}else e.style.display=t;b(e,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach(a=>{const r=a.tagName==="IFRAME";(!r||this.shouldPreload(a))&&(a.setAttribute("src",a.getAttribute("data-src")),a.setAttribute("data-lazy-loaded",""),a.removeAttribute("data-src"),r&&a.addEventListener("load",this.preventIframeAutoFocus))}),b(e,"video, audio").forEach(a=>{let r=0;b(a,"source[data-src]").forEach(o=>{o.setAttribute("src",o.getAttribute("data-src")),o.removeAttribute("data-src"),o.setAttribute("data-lazy-loaded",""),r+=1}),he&&a.tagName==="VIDEO"&&a.setAttribute("playsinline",""),r>0&&a.load()});let s=e.slideBackgroundElement;if(s){s.style.display="block";let a=e.slideBackgroundContentElement,r=e.getAttribute("data-background-iframe");if(s.hasAttribute("data-loaded")===!1){s.setAttribute("data-loaded","true");let c=e.getAttribute("data-background-image"),u=e.getAttribute("data-background-video"),g=e.hasAttribute("data-background-video-loop"),y=e.hasAttribute("data-background-video-muted");if(c)/^data:/.test(c.trim())?a.style.backgroundImage=`url(${c.trim()})`:a.style.backgroundImage=c.split(",").map(p=>{let w=decodeURI(p.trim());return`url(${$t(w)})`}).join(",");else if(u){let p=document.createElement("video");g&&p.setAttribute("loop",""),(y||this.Reveal.isSpeakerNotes())&&(p.muted=!0),he&&p.setAttribute("playsinline",""),u.split(",").forEach(w=>{const l=document.createElement("source");l.setAttribute("src",w);let A=_t(w);A&&l.setAttribute("type",A),p.appendChild(l)}),a.appendChild(p)}else if(r&&i.excludeIframes!==!0){let p=document.createElement("iframe");p.setAttribute("allowfullscreen",""),p.setAttribute("mozallowfullscreen",""),p.setAttribute("webkitallowfullscreen",""),p.setAttribute("allow","autoplay"),p.setAttribute("data-src",r),p.style.width="100%",p.style.height="100%",p.style.maxHeight="100%",p.style.maxWidth="100%",a.appendChild(p)}}let o=a.querySelector("iframe[data-src]");o&&this.shouldPreload(s)&&!/autoplay=(1|true|yes)/gi.test(r)&&o.getAttribute("src")!==r&&o.setAttribute("src",r)}this.layout(e)}layout(e){Array.from(e.querySelectorAll(".r-fit-text")).forEach(i=>{Xt(i,{minSize:24,maxSize:this.Reveal.getConfig().height*.8,observeMutations:!1,observeWindow:!1})})}unload(e){e.style.display="none";let i=this.Reveal.getSlideBackground(e);i&&(i.style.display="none",b(i,"iframe[src]").forEach(t=>{t.removeAttribute("src")})),b(e,"video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach(t=>{t.setAttribute("data-src",t.getAttribute("src")),t.removeAttribute("src")}),b(e,"video[data-lazy-loaded] source[src], audio source[src]").forEach(t=>{t.setAttribute("data-src",t.getAttribute("src")),t.removeAttribute("src")})}formatEmbeddedContent(){let e=(i,t,s)=>{b(this.Reveal.getSlidesElement(),"iframe["+i+'*="'+t+'"]').forEach(a=>{let r=a.getAttribute(i);r&&r.indexOf(s)===-1&&a.setAttribute(i,r+(/\?/.test(r)?"&":"?")+s)})};e("src","youtube.com/embed/","enablejsapi=1"),e("data-src","youtube.com/embed/","enablejsapi=1"),e("src","player.vimeo.com/","api=1"),e("data-src","player.vimeo.com/","api=1")}startEmbeddedContent(e){if(e){const i=this.Reveal.isSpeakerNotes();b(e,'img[src$=".gif"]').forEach(t=>{t.setAttribute("src",t.getAttribute("src"))}),b(e,"video, audio").forEach(t=>{if(V(t,".fragment")&&!V(t,".fragment.visible"))return;let s=this.Reveal.getConfig().autoPlayMedia;if(typeof s!="boolean"&&(s=t.hasAttribute("data-autoplay")||!!V(t,".slide-background")),s&&typeof t.play=="function"){if(i&&!t.muted)return;t.readyState>1?this.startEmbeddedMedia({target:t}):he?(t.addEventListener("canplay",this.ensureMobileMediaPlaying),this.playMediaElement(t)):(t.removeEventListener("loadeddata",this.startEmbeddedMedia),t.addEventListener("loadeddata",this.startEmbeddedMedia))}}),i||(b(e,"iframe[src]").forEach(t=>{V(t,".fragment")&&!V(t,".fragment.visible")||this.startEmbeddedIframe({target:t})}),b(e,"iframe[data-src]").forEach(t=>{V(t,".fragment")&&!V(t,".fragment.visible")||t.getAttribute("src")!==t.getAttribute("data-src")&&(t.removeEventListener("load",this.startEmbeddedIframe),t.addEventListener("load",this.startEmbeddedIframe),t.setAttribute("src",t.getAttribute("data-src")))}))}}ensureMobileMediaPlaying(e){const i=e.target;typeof i.getVideoPlaybackQuality=="function"&&setTimeout(()=>{const t=i.paused===!1,s=i.getVideoPlaybackQuality().totalVideoFrames;t&&s===0&&(i.load(),i.play())},1e3)}startEmbeddedMedia(e){let i=!!V(e.target,"html"),t=!!V(e.target,".present");i&&t&&(e.target.paused||e.target.ended)&&(e.target.currentTime=0,this.playMediaElement(e.target)),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}playMediaElement(e){const i=e.play();i&&typeof i.catch=="function"&&i.then(()=>{e.muted||(this.allowedToPlayAudio=!0)}).catch(t=>{if(t.name==="NotAllowedError")if(this.allowedToPlayAudio=!1,e.tagName==="VIDEO"){this.onVideoPlaybackNotAllowed(e);let s=!!V(e,"html"),a=!!V(e,".present"),r=e.muted;s&&a&&!r&&(e.setAttribute("data-muted-by-reveal","true"),e.muted=!0,e.play().catch(()=>{this.onMutedVideoPlaybackNotAllowed(e)}))}else e.tagName==="AUDIO"&&this.onAudioPlaybackNotAllowed(e)})}startEmbeddedIframe(e){let i=e.target;if(this.preventIframeAutoFocus(e),i&&i.contentWindow){let t=!!V(e.target,"html"),s=!!V(e.target,".present");if(t&&s){let a=this.Reveal.getConfig().autoPlayMedia;typeof a!="boolean"&&(a=i.hasAttribute("data-autoplay")||!!V(i,".slide-background")),/youtube\.com\/embed\//.test(i.getAttribute("src"))&&a?i.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(i.getAttribute("src"))&&a?i.contentWindow.postMessage('{"method":"play"}',"*"):i.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(e,i={}){i=I({unloadIframes:!0},i),e&&e.parentNode&&(b(e,"video, audio").forEach(t=>{!t.hasAttribute("data-ignore")&&typeof t.pause=="function"&&(t.setAttribute("data-paused-by-reveal",""),t.pause(),he&&t.removeEventListener("canplay",this.ensureMobileMediaPlaying))}),b(e,"iframe").forEach(t=>{t.contentWindow&&t.contentWindow.postMessage("slide:stop","*"),t.removeEventListener("load",this.preventIframeAutoFocus),t.removeEventListener("load",this.startEmbeddedIframe)}),b(e,'iframe[src*="youtube.com/embed/"]').forEach(t=>{!t.hasAttribute("data-ignore")&&t.contentWindow&&typeof t.contentWindow.postMessage=="function"&&t.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),b(e,'iframe[src*="player.vimeo.com/"]').forEach(t=>{!t.hasAttribute("data-ignore")&&t.contentWindow&&typeof t.contentWindow.postMessage=="function"&&t.contentWindow.postMessage('{"method":"pause"}',"*")}),i.unloadIframes===!0&&b(e,"iframe[data-src]").forEach(t=>{t.setAttribute("src","about:blank"),t.removeAttribute("src")}))}isAllowedToPlayAudio(){return this.allowedToPlayAudio}showPlayOrUnmuteButton(){const e=this.failedAudioPlaybackTargets.size,i=this.failedVideoPlaybackTargets.size,t=this.failedMutedVideoPlaybackTargets.size;let s="Play media";t>0?s="Play video":i>0?s="Unmute video":e>0&&(s="Play audio"),this.mediaPlayButton.textContent=s,this.Reveal.getRevealElement().appendChild(this.mediaPlayButton)}onAudioPlaybackNotAllowed(e){this.failedAudioPlaybackTargets.add(e),this.showPlayOrUnmuteButton(e)}onVideoPlaybackNotAllowed(e){this.failedVideoPlaybackTargets.add(e),this.showPlayOrUnmuteButton()}onMutedVideoPlaybackNotAllowed(e){this.failedMutedVideoPlaybackTargets.add(e),this.showPlayOrUnmuteButton()}resetTemporarilyMutedMedia(){new Set([...this.failedAudioPlaybackTargets,...this.failedVideoPlaybackTargets,...this.failedMutedVideoPlaybackTargets]).forEach(i=>{i.hasAttribute("data-muted-by-reveal")&&(i.muted=!1,i.removeAttribute("data-muted-by-reveal"))})}clearMediaPlaybackErrors(){this.resetTemporarilyMutedMedia(),this.failedAudioPlaybackTargets.clear(),this.failedVideoPlaybackTargets.clear(),this.failedMutedVideoPlaybackTargets.clear(),this.mediaPlayButton.remove()}preventIframeAutoFocus(e){const i=e.target;if(i&&this.Reveal.getConfig().preventIframeAutoFocus){let t=0;const s=100,a=1e3,r=()=>{document.activeElement===i?document.activeElement.blur():t<a&&(t+=s,setTimeout(r,s))};setTimeout(r,s)}}afterSlideChanged(){this.clearMediaPlaybackErrors()}}const ue=".slides section",se=".slides>section",He=".slides>section.present>section",Gt=".backgrounds>.slide-background",Jt=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/,Qt="h.v",Zt="h/v",De="c",it="c/t";class ei{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="slide-number",this.Reveal.getRevealElement().appendChild(this.element)}configure(e,i){let t="none";e.slideNumber&&!this.Reveal.isPrintView()&&(e.showSlideNumber==="all"||e.showSlideNumber==="speaker"&&this.Reveal.isSpeakerNotes())&&(t="block"),this.element.style.display=t}update(){this.Reveal.getConfig().slideNumber&&this.element&&(this.element.innerHTML=this.getSlideNumber())}getSlideNumber(e=this.Reveal.getCurrentSlide()){let i=this.Reveal.getConfig(),t,s=Qt;if(typeof i.slideNumber=="function")t=i.slideNumber(e);else{typeof i.slideNumber=="string"&&(s=i.slideNumber),!/c/.test(s)&&this.Reveal.getHorizontalSlides().length===1&&(s=De);let r=e&&e.dataset.visibility==="uncounted"?0:1;switch(t=[],s){case De:t.push(this.Reveal.getSlidePastCount(e)+r);break;case it:t.push(this.Reveal.getSlidePastCount(e)+r,"/",this.Reveal.getTotalSlides());break;default:let o=this.Reveal.getIndices(e);t.push(o.h+r);let c=s===Zt?"/":".";this.Reveal.isVerticalSlide(e)&&t.push(c,o.v+1)}}let a="#"+this.Reveal.location.getHash(e);return this.formatNumber(t[0],t[1],t[2],a)}formatNumber(e,i,t,s="#"+this.Reveal.location.getHash()){return typeof t=="number"&&!isNaN(t)?`<a href="${s}">
|
|
<span class="slide-number-a">${e}</span>
|
|
<span class="slide-number-delimiter">${i}</span>
|
|
<span class="slide-number-b">${t}</span>
|
|
</a>`:`<a href="${s}">
|
|
<span class="slide-number-a">${e}</span>
|
|
</a>`}destroy(){this.element.remove()}}class ti{constructor(e){this.Reveal=e,this.onInput=this.onInput.bind(this),this.onBlur=this.onBlur.bind(this),this.onKeyDown=this.onKeyDown.bind(this)}render(){this.element=document.createElement("div"),this.element.className="jump-to-slide",this.jumpInput=document.createElement("input"),this.jumpInput.type="text",this.jumpInput.className="jump-to-slide-input",this.jumpInput.placeholder="Jump to slide",this.jumpInput.addEventListener("input",this.onInput),this.jumpInput.addEventListener("keydown",this.onKeyDown),this.jumpInput.addEventListener("blur",this.onBlur),this.element.appendChild(this.jumpInput)}show(){this.indicesOnShow=this.Reveal.getIndices(),this.Reveal.getRevealElement().appendChild(this.element),this.jumpInput.focus()}hide(){this.isVisible()&&(this.element.remove(),this.jumpInput.value="",clearTimeout(this.jumpTimeout),delete this.jumpTimeout)}isVisible(){return!!this.element.parentNode}jump(){clearTimeout(this.jumpTimeout),delete this.jumpTimeout;let e=this.jumpInput.value.trim(""),i;if(/^\d+$/.test(e)){const t=this.Reveal.getConfig().slideNumber;if(t===De||t===it){const s=this.Reveal.getSlides()[parseInt(e,10)-1];s&&(i=this.Reveal.getIndices(s))}}return i||(/^\d+\.\d+$/.test(e)&&(e=e.replace(".","/")),i=this.Reveal.location.getIndicesFromHash(e,{oneBasedIndex:!0})),!i&&/\S+/i.test(e)&&e.length>1&&(i=this.search(e)),i&&e!==""?(this.Reveal.slide(i.h,i.v,i.f),!0):(this.Reveal.slide(this.indicesOnShow.h,this.indicesOnShow.v,this.indicesOnShow.f),!1)}jumpAfter(e){clearTimeout(this.jumpTimeout),this.jumpTimeout=setTimeout(()=>this.jump(),e)}search(e){const i=new RegExp("\\b"+e.trim()+"\\b","i"),t=this.Reveal.getSlides().find(s=>i.test(s.innerText));return t?this.Reveal.getIndices(t):null}cancel(){this.Reveal.slide(this.indicesOnShow.h,this.indicesOnShow.v,this.indicesOnShow.f),this.hide()}confirm(){this.jump(),this.hide()}destroy(){this.jumpInput.removeEventListener("input",this.onInput),this.jumpInput.removeEventListener("keydown",this.onKeyDown),this.jumpInput.removeEventListener("blur",this.onBlur),this.element.remove()}onKeyDown(e){e.keyCode===13?this.confirm():e.keyCode===27&&(this.cancel(),e.stopImmediatePropagation())}onInput(e){this.jumpAfter(200)}onBlur(){setTimeout(()=>this.hide(),1)}}const Ve=h=>{let e=h.match(/^#([0-9a-f]{3})$/i);if(e&&e[1]){const a=e[1];return{r:parseInt(a.charAt(0),16)*17,g:parseInt(a.charAt(1),16)*17,b:parseInt(a.charAt(2),16)*17}}let i=h.match(/^#([0-9a-f]{6})$/i);if(i&&i[1]){const a=i[1];return{r:parseInt(a.slice(0,2),16),g:parseInt(a.slice(2,4),16),b:parseInt(a.slice(4,6),16)}}let t=h.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(t)return{r:parseInt(t[1],10),g:parseInt(t[2],10),b:parseInt(t[3],10)};let s=h.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return s?{r:parseInt(s[1],10),g:parseInt(s[2],10),b:parseInt(s[3],10),a:parseFloat(s[4])}:null},ii=h=>(typeof h=="string"&&(h=Ve(h)),h?(h.r*299+h.g*587+h.b*114)/1e3:null);class si{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="backgrounds",this.Reveal.getRevealElement().appendChild(this.element)}create(){this.element.innerHTML="",this.element.classList.add("no-transition"),this.Reveal.getHorizontalSlides().forEach(e=>{let i=this.createBackground(e,this.element);b(e,"section").forEach(t=>{this.createBackground(t,i),i.classList.add("stack")})}),this.Reveal.getConfig().parallaxBackgroundImage?(this.element.style.backgroundImage='url("'+this.Reveal.getConfig().parallaxBackgroundImage+'")',this.element.style.backgroundSize=this.Reveal.getConfig().parallaxBackgroundSize,this.element.style.backgroundRepeat=this.Reveal.getConfig().parallaxBackgroundRepeat,this.element.style.backgroundPosition=this.Reveal.getConfig().parallaxBackgroundPosition,setTimeout(()=>{this.Reveal.getRevealElement().classList.add("has-parallax-background")},1)):(this.element.style.backgroundImage="",this.Reveal.getRevealElement().classList.remove("has-parallax-background"))}createBackground(e,i){let t=document.createElement("div");t.className="slide-background "+e.className.replace(/present|past|future/,"");let s=document.createElement("div");return s.className="slide-background-content",t.appendChild(s),i.appendChild(t),e.slideBackgroundElement=t,e.slideBackgroundContentElement=s,this.sync(e),t}sync(e){const i=e.slideBackgroundElement,t=e.slideBackgroundContentElement,s={background:e.getAttribute("data-background"),backgroundSize:e.getAttribute("data-background-size"),backgroundImage:e.getAttribute("data-background-image"),backgroundVideo:e.getAttribute("data-background-video"),backgroundIframe:e.getAttribute("data-background-iframe"),backgroundColor:e.getAttribute("data-background-color"),backgroundGradient:e.getAttribute("data-background-gradient"),backgroundRepeat:e.getAttribute("data-background-repeat"),backgroundPosition:e.getAttribute("data-background-position"),backgroundTransition:e.getAttribute("data-background-transition"),backgroundOpacity:e.getAttribute("data-background-opacity")},a=e.hasAttribute("data-preload");e.classList.remove("has-dark-background"),e.classList.remove("has-light-background"),i.removeAttribute("data-loaded"),i.removeAttribute("data-background-hash"),i.removeAttribute("data-background-size"),i.removeAttribute("data-background-transition"),i.style.backgroundColor="",t.style.backgroundSize="",t.style.backgroundRepeat="",t.style.backgroundPosition="",t.style.backgroundImage="",t.style.opacity="",t.innerHTML="",s.background&&(/^(http|file|\/\/)/gi.test(s.background)||/\.(svg|png|jpg|jpeg|gif|bmp|webp)([?#\s]|$)/gi.test(s.background)?e.setAttribute("data-background-image",s.background):i.style.background=s.background),(s.background||s.backgroundColor||s.backgroundGradient||s.backgroundImage||s.backgroundVideo||s.backgroundIframe)&&i.setAttribute("data-background-hash",s.background+s.backgroundSize+s.backgroundImage+s.backgroundVideo+s.backgroundIframe+s.backgroundColor+s.backgroundGradient+s.backgroundRepeat+s.backgroundPosition+s.backgroundTransition+s.backgroundOpacity),s.backgroundSize&&i.setAttribute("data-background-size",s.backgroundSize),s.backgroundColor&&(i.style.backgroundColor=s.backgroundColor),s.backgroundGradient&&(i.style.backgroundImage=s.backgroundGradient),s.backgroundTransition&&i.setAttribute("data-background-transition",s.backgroundTransition),a&&i.setAttribute("data-preload",""),s.backgroundSize&&(t.style.backgroundSize=s.backgroundSize),s.backgroundRepeat&&(t.style.backgroundRepeat=s.backgroundRepeat),s.backgroundPosition&&(t.style.backgroundPosition=s.backgroundPosition),s.backgroundOpacity&&(t.style.opacity=s.backgroundOpacity);const r=this.getContrastClass(e);typeof r=="string"&&e.classList.add(r)}getContrastClass(e){const i=e.slideBackgroundElement;let t=e.getAttribute("data-background-color");if(!t||!Ve(t)){let s=window.getComputedStyle(i);s&&s.backgroundColor&&(t=s.backgroundColor)}if(t){const s=Ve(t);if(s&&s.a!==0)return ii(t)<128?"has-dark-background":"has-light-background"}return null}bubbleSlideContrastClassToElement(e,i){["has-light-background","has-dark-background"].forEach(t=>{e.classList.contains(t)?i.classList.add(t):i.classList.remove(t)},this)}update(e=!1){let i=this.Reveal.getConfig(),t=this.Reveal.getCurrentSlide(),s=this.Reveal.getIndices(),a=null,r=i.rtl?"future":"past",o=i.rtl?"past":"future";if(Array.from(this.element.childNodes).forEach((u,g)=>{u.classList.remove("past","present","future"),g<s.h?u.classList.add(r):g>s.h?u.classList.add(o):(u.classList.add("present"),a=u),(e||g===s.h)&&b(u,".slide-background").forEach((y,p)=>{y.classList.remove("past","present","future");const w=typeof s.v=="number"?s.v:0;p<w?y.classList.add("past"):p>w?y.classList.add("future"):(y.classList.add("present"),g===s.h&&(a=y))})}),this.previousBackground&&!this.previousBackground.closest("body")&&(this.previousBackground=null),a&&this.previousBackground){let u=this.previousBackground.getAttribute("data-background-hash"),g=a.getAttribute("data-background-hash");if(g&&g===u&&a!==this.previousBackground){this.element.classList.add("no-transition");const y=a.querySelector("video"),p=this.previousBackground.querySelector("video");if(y&&p){const w=y.parentNode;p.parentNode.appendChild(y),w.appendChild(p)}}}const c=a!==this.previousBackground;if(c&&this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),c&&a){this.Reveal.slideContent.startEmbeddedContent(a);let u=a.querySelector(".slide-background-content");if(u){let g=u.style.backgroundImage||"";/\.gif/i.test(g)&&(u.style.backgroundImage="",window.getComputedStyle(u).opacity,u.style.backgroundImage=g)}this.previousBackground=a}t&&this.bubbleSlideContrastClassToElement(t,this.Reveal.getRevealElement()),setTimeout(()=>{this.element.classList.remove("no-transition")},10)}updateParallax(){let e=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){let i=this.Reveal.getHorizontalSlides(),t=this.Reveal.getVerticalSlides(),s=this.element.style.backgroundSize.split(" "),a,r;s.length===1?a=r=parseInt(s[0],10):(a=parseInt(s[0],10),r=parseInt(s[1],10));let o=this.element.offsetWidth,c=i.length,u,g;typeof this.Reveal.getConfig().parallaxBackgroundHorizontal=="number"?u=this.Reveal.getConfig().parallaxBackgroundHorizontal:u=c>1?(a-o)/(c-1):0,g=u*e.h*-1;let y=this.element.offsetHeight,p=t.length,w,l;typeof this.Reveal.getConfig().parallaxBackgroundVertical=="number"?w=this.Reveal.getConfig().parallaxBackgroundVertical:w=(r-y)/(p-1),l=p>0?w*e.v:0,this.element.style.backgroundPosition=g+"px "+-l+"px"}}destroy(){this.element.remove()}}let st=0;class ai{constructor(e){this.Reveal=e}run(e,i){this.reset();let t=this.Reveal.getSlides(),s=t.indexOf(i),a=t.indexOf(e);if(e&&i&&e.hasAttribute("data-auto-animate")&&i.hasAttribute("data-auto-animate")&&e.getAttribute("data-auto-animate-id")===i.getAttribute("data-auto-animate-id")&&!(s>a?i:e).hasAttribute("data-auto-animate-restart")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||ce();let r=this.getAutoAnimateOptions(i);e.dataset.autoAnimate="pending",i.dataset.autoAnimate="pending",r.slideDirection=s>a?"forward":"backward";let o=e.style.display==="none";o&&(e.style.display=this.Reveal.getConfig().display);let c=this.getAutoAnimatableElements(e,i).map(u=>this.autoAnimateElements(u.from,u.to,u.options||{},r,st++));if(o&&(e.style.display="none"),i.dataset.autoAnimateUnmatched!=="false"&&this.Reveal.getConfig().autoAnimateUnmatched===!0){let u=r.duration*.8,g=r.duration*.2;this.getUnmatchedAutoAnimateElements(i).forEach(y=>{let p=this.getAutoAnimateOptions(y,r),w="unmatched";(p.duration!==r.duration||p.delay!==r.delay)&&(w="unmatched-"+st++,c.push(`[data-auto-animate="running"] [data-auto-animate-target="${w}"] { transition: opacity ${p.duration}s ease ${p.delay}s; }`)),y.dataset.autoAnimateTarget=w},this),c.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${u}s ease ${g}s; }`)}this.autoAnimateStyleSheet.innerHTML=c.join(""),requestAnimationFrame(()=>{this.autoAnimateStyleSheet&&(getComputedStyle(this.autoAnimateStyleSheet).fontWeight,i.dataset.autoAnimate="running")}),this.Reveal.dispatchEvent({type:"autoanimate",data:{fromSlide:e,toSlide:i,sheet:this.autoAnimateStyleSheet}})}}reset(){b(this.Reveal.getRevealElement(),'[data-auto-animate]:not([data-auto-animate=""])').forEach(e=>{e.dataset.autoAnimate=""}),b(this.Reveal.getRevealElement(),"[data-auto-animate-target]").forEach(e=>{delete e.dataset.autoAnimateTarget}),this.autoAnimateStyleSheet&&this.autoAnimateStyleSheet.parentNode&&(this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet),this.autoAnimateStyleSheet=null)}autoAnimateElements(e,i,t,s,a){e.dataset.autoAnimateTarget="",i.dataset.autoAnimateTarget=a;let r=this.getAutoAnimateOptions(i,s);typeof t.delay!="undefined"&&(r.delay=t.delay),typeof t.duration!="undefined"&&(r.duration=t.duration),typeof t.easing!="undefined"&&(r.easing=t.easing);let o=this.getAutoAnimatableProperties("from",e,t),c=this.getAutoAnimatableProperties("to",i,t);if(i.classList.contains("fragment")&&delete c.styles.opacity,t.translate!==!1||t.scale!==!1){let y=this.Reveal.getScale(),p={x:(o.x-c.x)/y,y:(o.y-c.y)/y,scaleX:o.width/c.width,scaleY:o.height/c.height};p.x=Math.round(p.x*1e3)/1e3,p.y=Math.round(p.y*1e3)/1e3,p.scaleX=Math.round(p.scaleX*1e3)/1e3,p.scaleX=Math.round(p.scaleX*1e3)/1e3;let w=t.translate!==!1&&(p.x!==0||p.y!==0),l=t.scale!==!1&&(p.scaleX!==0||p.scaleY!==0);if(w||l){let A=[];w&&A.push(`translate(${p.x}px, ${p.y}px)`),l&&A.push(`scale(${p.scaleX}, ${p.scaleY})`),o.styles.transform=A.join(" "),o.styles["transform-origin"]="top left",c.styles.transform="none"}}for(let y in c.styles){const p=c.styles[y],w=o.styles[y];p===w?delete c.styles[y]:(p.explicitValue===!0&&(c.styles[y]=p.value),w.explicitValue===!0&&(o.styles[y]=w.value))}let u="",g=Object.keys(c.styles);if(g.length>0){o.styles.transition="none",c.styles.transition=`all ${r.duration}s ${r.easing} ${r.delay}s`,c.styles["transition-property"]=g.join(", "),c.styles["will-change"]=g.join(", ");let y=Object.keys(o.styles).map(w=>w+": "+o.styles[w]+" !important;").join(""),p=Object.keys(c.styles).map(w=>w+": "+c.styles[w]+" !important;").join("");u='[data-auto-animate-target="'+a+'"] {'+y+'}[data-auto-animate="running"] [data-auto-animate-target="'+a+'"] {'+p+"}"}return u}getAutoAnimateOptions(e,i){let t={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(t=I(t,i),e.parentNode){let s=V(e.parentNode,"[data-auto-animate-target]");s&&(t=this.getAutoAnimateOptions(s,t))}return e.dataset.autoAnimateEasing&&(t.easing=e.dataset.autoAnimateEasing),e.dataset.autoAnimateDuration&&(t.duration=parseFloat(e.dataset.autoAnimateDuration)),e.dataset.autoAnimateDelay&&(t.delay=parseFloat(e.dataset.autoAnimateDelay)),t}getAutoAnimatableProperties(e,i,t){let s=this.Reveal.getConfig(),a={styles:[]};if(t.translate!==!1||t.scale!==!1){let o;if(typeof t.measure=="function")o=t.measure(i);else if(s.center)o=i.getBoundingClientRect();else{let c=this.Reveal.getScale();o={x:i.offsetLeft*c,y:i.offsetTop*c,width:i.offsetWidth*c,height:i.offsetHeight*c}}a.x=o.x,a.y=o.y,a.width=o.width,a.height=o.height}const r=getComputedStyle(i);return(t.styles||s.autoAnimateStyles).forEach(o=>{let c;typeof o=="string"&&(o={property:o}),typeof o.from!="undefined"&&e==="from"?c={value:o.from,explicitValue:!0}:typeof o.to!="undefined"&&e==="to"?c={value:o.to,explicitValue:!0}:(o.property==="line-height"&&(c=parseFloat(r["line-height"])/parseFloat(r["font-size"])),isNaN(c)&&(c=r[o.property])),c!==""&&(a.styles[o.property]=c)}),a}getAutoAnimatableElements(e,i){let s=(typeof this.Reveal.getConfig().autoAnimateMatcher=="function"?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,i),a=[];return s.filter((r,o)=>{if(a.indexOf(r.to)===-1)return a.push(r.to),!0})}getAutoAnimatePairs(e,i){let t=[];const a="h1, h2, h3, h4, h5, h6, p, li",r="img, video, iframe";return this.findAutoAnimateMatches(t,e,i,"[data-id]",o=>o.nodeName+":::"+o.getAttribute("data-id")),this.findAutoAnimateMatches(t,e,i,a,o=>o.nodeName+":::"+o.textContent.trim()),this.findAutoAnimateMatches(t,e,i,r,o=>o.nodeName+":::"+(o.getAttribute("src")||o.getAttribute("data-src"))),this.findAutoAnimateMatches(t,e,i,"pre",o=>o.nodeName+":::"+o.textContent.trim()),t.forEach(o=>{ve(o.from,a)?o.options={scale:!1}:ve(o.from,"pre")&&(o.options={scale:!1,styles:["width","height"]},this.findAutoAnimateMatches(t,o.from,o.to,".hljs .hljs-ln-code",c=>c.textContent,{scale:!1,styles:[],measure:this.getLocalBoundingBox.bind(this)}),this.findAutoAnimateMatches(t,o.from,o.to,".hljs .hljs-ln-numbers[data-line-number]",c=>c.getAttribute("data-line-number"),{scale:!1,styles:["width"],measure:this.getLocalBoundingBox.bind(this)}))},this),t}getLocalBoundingBox(e){const i=this.Reveal.getScale();return{x:Math.round(e.offsetLeft*i*100)/100,y:Math.round(e.offsetTop*i*100)/100,width:Math.round(e.offsetWidth*i*100)/100,height:Math.round(e.offsetHeight*i*100)/100}}findAutoAnimateMatches(e,i,t,s,a,r){let o={},c={};[].slice.call(i.querySelectorAll(s)).forEach((u,g)=>{const y=a(u);typeof y=="string"&&y.length&&(o[y]=o[y]||[],o[y].push(u))}),[].slice.call(t.querySelectorAll(s)).forEach((u,g)=>{const y=a(u);c[y]=c[y]||[],c[y].push(u);let p;if(o[y]){const w=c[y].length-1,l=o[y].length-1;o[y][w]?(p=o[y][w],o[y][w]=null):o[y][l]&&(p=o[y][l],o[y][l]=null)}p&&e.push({from:p,to:u,options:r})})}getUnmatchedAutoAnimateElements(e){return[].slice.call(e.children).reduce((i,t)=>{const s=t.querySelector("[data-auto-animate-target]");return!t.hasAttribute("data-auto-animate-target")&&!s&&i.push(t),t.querySelector("[data-auto-animate-target]")&&(i=i.concat(this.getUnmatchedAutoAnimateElements(t))),i},[])}}const ri=500,ni=4,oi=6,li=8;class di{constructor(e){this.Reveal=e,this.active=!1,this.activatedCallbacks=[],this.onScroll=this.onScroll.bind(this)}activate(){if(this.active)return;const e=this.Reveal.getState();this.active=!0,this.slideHTMLBeforeActivation=this.Reveal.getSlidesElement().innerHTML;const i=b(this.Reveal.getRevealElement(),se),t=b(this.Reveal.getRevealElement(),Gt);this.viewportElement.classList.add("loading-scroll-mode","reveal-scroll");let s;const a=window.getComputedStyle(this.viewportElement);a&&a.background&&(s=a.background);const r=[],o=i[0].parentNode;let c;const u=(g,y,p,w)=>{let l;if(c&&this.Reveal.shouldAutoAnimateBetween(c,g))l=document.createElement("div"),l.className="scroll-page-content scroll-auto-animate-page",l.style.display="none",c.closest(".scroll-page-content").parentNode.appendChild(l);else{const A=document.createElement("div");if(A.className="scroll-page",r.push(A),w&&t.length>y){const q=t[y],W=window.getComputedStyle(q);W&&W.background?A.style.background=W.background:s&&(A.style.background=s)}else s&&(A.style.background=s);const N=document.createElement("div");N.className="scroll-page-sticky",A.appendChild(N),l=document.createElement("div"),l.className="scroll-page-content",N.appendChild(l)}l.appendChild(g),g.classList.remove("past","future"),g.setAttribute("data-index-h",y),g.setAttribute("data-index-v",p),g.slideBackgroundElement&&(g.slideBackgroundElement.remove("past","future"),l.insertBefore(g.slideBackgroundElement,g)),c=g};i.forEach((g,y)=>{this.Reveal.isVerticalStack(g)?g.querySelectorAll("section").forEach((p,w)=>{u(p,y,w,!0)}):u(g,y,0)},this),this.createProgressBar(),b(this.Reveal.getRevealElement(),".stack").forEach(g=>g.remove()),r.forEach(g=>o.appendChild(g)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.layout(),this.Reveal.setState(e),this.activatedCallbacks.forEach(g=>g()),this.activatedCallbacks=[],this.restoreScrollPosition(),this.viewportElement.classList.remove("loading-scroll-mode"),this.viewportElement.addEventListener("scroll",this.onScroll,{passive:!0})}deactivate(){if(!this.active)return;const e=this.Reveal.getState();this.active=!1,this.viewportElement.removeEventListener("scroll",this.onScroll),this.viewportElement.classList.remove("reveal-scroll"),this.removeProgressBar(),this.Reveal.getSlidesElement().innerHTML=this.slideHTMLBeforeActivation,this.Reveal.sync(),this.Reveal.setState(e),this.slideHTMLBeforeActivation=null}toggle(e){typeof e=="boolean"?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}createProgressBar(){this.progressBar=document.createElement("div"),this.progressBar.className="scrollbar",this.progressBarInner=document.createElement("div"),this.progressBarInner.className="scrollbar-inner",this.progressBar.appendChild(this.progressBarInner),this.progressBarPlayhead=document.createElement("div"),this.progressBarPlayhead.className="scrollbar-playhead",this.progressBarInner.appendChild(this.progressBarPlayhead),this.viewportElement.insertBefore(this.progressBar,this.viewportElement.firstChild);const e=s=>{let a=(s.clientY-this.progressBarInner.getBoundingClientRect().top)/this.progressBarHeight;a=Math.max(Math.min(a,1),0),this.viewportElement.scrollTop=a*(this.viewportElement.scrollHeight-this.viewportElement.offsetHeight)},i=s=>{this.draggingProgressBar=!1,this.showProgressBar(),document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",i)},t=s=>{s.preventDefault(),this.draggingProgressBar=!0,document.addEventListener("mousemove",e),document.addEventListener("mouseup",i),e(s)};this.progressBarInner.addEventListener("mousedown",t)}removeProgressBar(){this.progressBar&&(this.progressBar.remove(),this.progressBar=null)}layout(){this.isActive()&&(this.syncPages(),this.syncScrollPosition())}syncPages(){const e=this.Reveal.getConfig(),i=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),t=this.Reveal.getScale(),s=e.scrollLayout==="compact",a=this.viewportElement.offsetHeight,r=i.height*t,o=s?r:a;this.scrollTriggerHeight=s?r:a,this.viewportElement.style.setProperty("--page-height",o+"px"),this.viewportElement.style.scrollSnapType=typeof e.scrollSnap=="string"?`y ${e.scrollSnap}`:"",this.slideTriggers=[];const c=Array.from(this.Reveal.getRevealElement().querySelectorAll(".scroll-page"));this.pages=c.map(u=>{const g=this.createPage({pageElement:u,slideElement:u.querySelector("section"),stickyElement:u.querySelector(".scroll-page-sticky"),contentElement:u.querySelector(".scroll-page-content"),backgroundElement:u.querySelector(".slide-background"),autoAnimateElements:u.querySelectorAll(".scroll-auto-animate-page"),autoAnimatePages:[]});g.pageElement.style.setProperty("--slide-height",e.center===!0?"auto":i.height+"px"),this.slideTriggers.push({page:g,activate:()=>this.activatePage(g),deactivate:()=>this.deactivatePage(g)}),this.createFragmentTriggersForPage(g),g.autoAnimateElements.length>0&&this.createAutoAnimateTriggersForPage(g);let y=Math.max(g.scrollTriggers.length-1,0);y+=g.autoAnimatePages.reduce((p,w)=>p+Math.max(w.scrollTriggers.length-1,0),g.autoAnimatePages.length),g.pageElement.querySelectorAll(".scroll-snap-point").forEach(p=>p.remove());for(let p=0;p<y+1;p++){const w=document.createElement("div");w.className="scroll-snap-point",w.style.height=this.scrollTriggerHeight+"px",w.style.scrollSnapAlign=s?"center":"start",g.pageElement.appendChild(w),p===0&&(w.style.marginTop=-this.scrollTriggerHeight+"px")}return s&&g.scrollTriggers.length>0?(g.pageHeight=a,g.pageElement.style.setProperty("--page-height",a+"px")):(g.pageHeight=o,g.pageElement.style.removeProperty("--page-height")),g.scrollPadding=this.scrollTriggerHeight*y,g.totalHeight=g.pageHeight+g.scrollPadding,g.pageElement.style.setProperty("--page-scroll-padding",g.scrollPadding+"px"),y>0?(g.stickyElement.style.position="sticky",g.stickyElement.style.top=Math.max((a-g.pageHeight)/2,0)+"px"):(g.stickyElement.style.position="relative",g.pageElement.style.scrollSnapAlign=g.pageHeight<a?"center":"start"),g}),this.setTriggerRanges(),this.viewportElement.setAttribute("data-scrollbar",e.scrollProgress),e.scrollProgress&&this.totalScrollTriggerCount>1?(this.progressBar||this.createProgressBar(),this.syncProgressBar()):this.removeProgressBar()}setTriggerRanges(){this.totalScrollTriggerCount=this.slideTriggers.reduce((i,t)=>i+Math.max(t.page.scrollTriggers.length,1),0);let e=0;this.slideTriggers.forEach((i,t)=>{i.range=[e,e+Math.max(i.page.scrollTriggers.length,1)/this.totalScrollTriggerCount];const s=(i.range[1]-i.range[0])/i.page.scrollTriggers.length;i.page.scrollTriggers.forEach((a,r)=>{a.range=[e+r*s,e+(r+1)*s]}),e=i.range[1]}),this.slideTriggers[this.slideTriggers.length-1].range[1]=1}createFragmentTriggersForPage(e,i){i=i||e.slideElement;const t=this.Reveal.fragments.sort(i.querySelectorAll(".fragment"),!0);return t.length&&(e.fragments=this.Reveal.fragments.sort(i.querySelectorAll(".fragment:not(.disabled)")),e.scrollTriggers.push({activate:()=>{this.Reveal.fragments.update(-1,e.fragments,i)}}),t.forEach((s,a)=>{e.scrollTriggers.push({activate:()=>{this.Reveal.fragments.update(a,e.fragments,i)}})})),e.scrollTriggers.length}createAutoAnimateTriggersForPage(e){e.autoAnimateElements.length>0&&this.slideTriggers.push(...Array.from(e.autoAnimateElements).map((i,t)=>{let s=this.createPage({slideElement:i.querySelector("section"),contentElement:i,backgroundElement:i.querySelector(".slide-background")});return this.createFragmentTriggersForPage(s,s.slideElement),e.autoAnimatePages.push(s),{page:s,activate:()=>this.activatePage(s),deactivate:()=>this.deactivatePage(s)}}))}createPage(e){return e.scrollTriggers=[],e.indexh=parseInt(e.slideElement.getAttribute("data-index-h"),10),e.indexv=parseInt(e.slideElement.getAttribute("data-index-v"),10),e}syncProgressBar(){this.progressBarInner.querySelectorAll(".scrollbar-slide").forEach(r=>r.remove());const e=this.viewportElement.scrollHeight,i=this.viewportElement.offsetHeight,t=i/e;this.progressBarHeight=this.progressBarInner.offsetHeight,this.playheadHeight=Math.max(t*this.progressBarHeight,li),this.progressBarScrollableHeight=this.progressBarHeight-this.playheadHeight;const s=i/e*this.progressBarHeight,a=Math.min(s/8,ni);this.progressBarPlayhead.style.height=this.playheadHeight-a+"px",s>oi?this.slideTriggers.forEach(r=>{const{page:o}=r;o.progressBarSlide=document.createElement("div"),o.progressBarSlide.className="scrollbar-slide",o.progressBarSlide.style.top=r.range[0]*this.progressBarHeight+"px",o.progressBarSlide.style.height=(r.range[1]-r.range[0])*this.progressBarHeight-a+"px",o.progressBarSlide.classList.toggle("has-triggers",o.scrollTriggers.length>0),this.progressBarInner.appendChild(o.progressBarSlide),o.scrollTriggerElements=o.scrollTriggers.map((c,u)=>{const g=document.createElement("div");return g.className="scrollbar-trigger",g.style.top=(c.range[0]-r.range[0])*this.progressBarHeight+"px",g.style.height=(c.range[1]-c.range[0])*this.progressBarHeight-a+"px",o.progressBarSlide.appendChild(g),u===0&&(g.style.display="none"),g})}):this.pages.forEach(r=>r.progressBarSlide=null)}syncScrollPosition(){const e=this.viewportElement.offsetHeight,i=e/this.viewportElement.scrollHeight,t=this.viewportElement.scrollTop,s=this.viewportElement.scrollHeight-e,a=Math.max(Math.min(t/s,1),0),r=Math.max(Math.min((t+e/2)/this.viewportElement.scrollHeight,1),0);let o;this.slideTriggers.forEach(c=>{const{page:u}=c;a>=c.range[0]-i*2&&a<=c.range[1]+i*2&&!u.loaded?(u.loaded=!0,this.Reveal.slideContent.load(u.slideElement)):u.loaded&&(u.loaded=!1,this.Reveal.slideContent.unload(u.slideElement)),a>=c.range[0]&&a<=c.range[1]?(this.activateTrigger(c),o=c.page):c.active&&this.deactivateTrigger(c)}),o&&o.scrollTriggers.forEach(c=>{r>=c.range[0]&&r<=c.range[1]?this.activateTrigger(c):c.active&&this.deactivateTrigger(c)}),this.setProgressBarValue(t/(this.viewportElement.scrollHeight-e))}setProgressBarValue(e){this.progressBar&&(this.progressBarPlayhead.style.transform=`translateY(${e*this.progressBarScrollableHeight}px)`,this.getAllPages().filter(i=>i.progressBarSlide).forEach(i=>{i.progressBarSlide.classList.toggle("active",i.active===!0),i.scrollTriggers.forEach((t,s)=>{i.scrollTriggerElements[s].classList.toggle("active",i.active===!0&&t.active===!0)})}),this.showProgressBar())}showProgressBar(){this.progressBar.classList.add("visible"),clearTimeout(this.hideProgressBarTimeout),this.Reveal.getConfig().scrollProgress==="auto"&&!this.draggingProgressBar&&(this.hideProgressBarTimeout=setTimeout(()=>{this.progressBar&&this.progressBar.classList.remove("visible")},ri))}prev(){this.viewportElement.scrollTop-=this.scrollTriggerHeight}next(){this.viewportElement.scrollTop+=this.scrollTriggerHeight}scrollToSlide(e){if(!this.active)this.activatedCallbacks.push(()=>this.scrollToSlide(e));else{const i=this.getScrollTriggerBySlide(e);i&&(this.viewportElement.scrollTop=i.range[0]*(this.viewportElement.scrollHeight-this.viewportElement.offsetHeight))}}storeScrollPosition(){clearTimeout(this.storeScrollPositionTimeout),this.storeScrollPositionTimeout=setTimeout(()=>{sessionStorage.setItem("reveal-scroll-top",this.viewportElement.scrollTop),sessionStorage.setItem("reveal-scroll-origin",location.origin+location.pathname),this.storeScrollPositionTimeout=null},50)}restoreScrollPosition(){const e=sessionStorage.getItem("reveal-scroll-top"),i=sessionStorage.getItem("reveal-scroll-origin");e&&i===location.origin+location.pathname&&(this.viewportElement.scrollTop=parseInt(e,10))}activatePage(e){if(!e.active){e.active=!0;const{slideElement:i,backgroundElement:t,contentElement:s,indexh:a,indexv:r}=e;s.style.display="block",i.classList.add("present"),t&&t.classList.add("present"),this.Reveal.setCurrentScrollPage(i,a,r),this.Reveal.backgrounds.bubbleSlideContrastClassToElement(i,this.viewportElement),Array.from(s.parentNode.querySelectorAll(".scroll-page-content")).forEach(o=>{o!==s&&(o.style.display="none")})}}deactivatePage(e){e.active&&(e.active=!1,e.slideElement&&e.slideElement.classList.remove("present"),e.backgroundElement&&e.backgroundElement.classList.remove("present"))}activateTrigger(e){e.active||(e.active=!0,e.activate())}deactivateTrigger(e){e.active&&(e.active=!1,e.deactivate&&e.deactivate())}getSlideByIndices(e,i){const t=this.getAllPages().find(s=>s.indexh===e&&s.indexv===i);return t?t.slideElement:null}getScrollTriggerBySlide(e){return this.slideTriggers.find(i=>i.page.slideElement===e)}getAllPages(){return this.pages.flatMap(e=>[e,...e.autoAnimatePages||[]])}onScroll(){this.syncScrollPosition(),this.storeScrollPosition()}get viewportElement(){return this.Reveal.getViewportElement()}}class ci{constructor(e){this.Reveal=e}activate(){return Wt(this,null,function*(){const e=this.Reveal.getConfig(),i=b(this.Reveal.getRevealElement(),ue),t=e.slideNumber&&/all|print/i.test(e.showSlideNumber),s=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),a=Math.floor(s.width*(1+e.margin)),r=Math.floor(s.height*(1+e.margin)),o=s.width,c=s.height;yield new Promise(requestAnimationFrame),ce("@page{size:"+a+"px "+r+"px; margin: 0px;}"),ce(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+o+"px; max-height:"+c+"px}"),document.documentElement.classList.add("reveal-print","print-pdf"),document.body.style.width=a+"px",document.body.style.height=r+"px";const u=this.Reveal.getViewportElement();let g;if(u){const A=window.getComputedStyle(u);A&&A.background&&(g=A.background)}yield new Promise(requestAnimationFrame),this.Reveal.layoutSlideContents(o,c),yield new Promise(requestAnimationFrame);const y=i.map(A=>A.scrollHeight),p=[],w=i[0].parentNode;let l=1;i.forEach(function(A,N){if(A.classList.contains("stack")===!1){let q=(a-o)/2,W=(r-c)/2;const fe=y[N];let U=Math.max(Math.ceil(fe/r),1);U=Math.min(U,e.pdfMaxPagesPerSlide),(U===1&&e.center||A.classList.contains("center"))&&(W=Math.max((r-fe)/2,0));const R=document.createElement("div");if(p.push(R),R.className="pdf-page",R.style.height=(r+e.pdfPageHeightOffset)*U+"px",g&&(R.style.background=g),R.appendChild(A),A.style.left=q+"px",A.style.top=W+"px",A.style.width=o+"px",this.Reveal.slideContent.layout(A),A.slideBackgroundElement&&R.insertBefore(A.slideBackgroundElement,A),e.showNotes){const D=this.Reveal.getSlideNotes(A);if(D){const K=typeof e.showNotes=="string"?e.showNotes:"inline",L=document.createElement("div");L.classList.add("speaker-notes"),L.classList.add("speaker-notes-pdf"),L.setAttribute("data-layout",K),L.innerHTML=D,K==="separate-page"?p.push(L):(L.style.left="8px",L.style.bottom="8px",L.style.width=a-16+"px",R.appendChild(L))}}if(t){const D=document.createElement("div");D.classList.add("slide-number"),D.classList.add("slide-number-pdf"),D.innerHTML=l++,R.appendChild(D)}if(e.pdfSeparateFragments){const D=this.Reveal.fragments.sort(R.querySelectorAll(".fragment"),!0);let j;D.forEach(function(K,L){j&&j.forEach(function(O){O.classList.remove("current-fragment")}),K.forEach(function(O){O.classList.add("visible","current-fragment")},this);const k=R.cloneNode(!0);if(t){const O=k.querySelector(".slide-number-pdf"),C=L+1;O.innerHTML+="."+C}p.push(k),j=K},this),D.forEach(function(K){K.forEach(function(L){L.classList.remove("visible","current-fragment")})})}else b(R,".fragment:not(.fade-out)").forEach(function(D){D.classList.add("visible")})}},this),yield new Promise(requestAnimationFrame),p.forEach(A=>w.appendChild(A)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.dispatchEvent({type:"pdf-ready"}),u.classList.remove("loading-scroll-mode")})}isActive(){return this.Reveal.getConfig().view==="print"}}class hi{constructor(e){this.Reveal=e}configure(e,i){e.fragments===!1?this.disable():i.fragments===!1&&this.enable()}disable(){b(this.Reveal.getSlidesElement(),".fragment").forEach(e=>{e.classList.add("visible"),e.classList.remove("current-fragment")})}enable(){b(this.Reveal.getSlidesElement(),".fragment").forEach(e=>{e.classList.remove("visible"),e.classList.remove("current-fragment")})}availableRoutes(){let e=this.Reveal.getCurrentSlide();if(e&&this.Reveal.getConfig().fragments){let i=e.querySelectorAll(".fragment:not(.disabled)"),t=e.querySelectorAll(".fragment:not(.disabled):not(.visible)");return{prev:i.length-t.length>0,next:!!t.length}}else return{prev:!1,next:!1}}sort(e,i=!1){e=Array.from(e);let t=[],s=[],a=[];e.forEach(o=>{if(o.hasAttribute("data-fragment-index")){let c=parseInt(o.getAttribute("data-fragment-index"),10);t[c]||(t[c]=[]),t[c].push(o)}else s.push([o])}),t=t.concat(s);let r=0;return t.forEach(o=>{o.forEach(c=>{a.push(c),c.setAttribute("data-fragment-index",r)}),r++}),i===!0?t:a}sortAll(){this.Reveal.getHorizontalSlides().forEach(e=>{let i=b(e,"section");i.forEach((t,s)=>{this.sort(t.querySelectorAll(".fragment"))},this),i.length===0&&this.sort(e.querySelectorAll(".fragment"))})}update(e,i,t=this.Reveal.getCurrentSlide()){let s={shown:[],hidden:[]};if(t&&this.Reveal.getConfig().fragments&&(i=i||this.sort(t.querySelectorAll(".fragment")),i.length)){let a=0;if(typeof e!="number"){let r=this.sort(t.querySelectorAll(".fragment.visible")).pop();r&&(e=parseInt(r.getAttribute("data-fragment-index")||0,10))}Array.from(i).forEach((r,o)=>{if(r.hasAttribute("data-fragment-index")&&(o=parseInt(r.getAttribute("data-fragment-index"),10)),a=Math.max(a,o),o<=e){let c=r.classList.contains("visible");r.classList.add("visible"),r.classList.remove("current-fragment"),o===e&&(this.Reveal.announceStatus(this.Reveal.getStatusText(r)),r.classList.add("current-fragment"),this.Reveal.slideContent.startEmbeddedContent(r)),c||(s.shown.push(r),this.Reveal.dispatchEvent({target:r,type:"visible",bubbles:!1}))}else{let c=r.classList.contains("visible");r.classList.remove("visible"),r.classList.remove("current-fragment"),c&&(this.Reveal.slideContent.stopEmbeddedContent(r),s.hidden.push(r),this.Reveal.dispatchEvent({target:r,type:"hidden",bubbles:!1}))}}),e=typeof e=="number"?e:-1,e=Math.max(Math.min(e,a),-1),t.setAttribute("data-fragment",e)}return s.hidden.length&&this.Reveal.dispatchEvent({type:"fragmenthidden",data:{fragment:s.hidden[0],fragments:s.hidden}}),s.shown.length&&this.Reveal.dispatchEvent({type:"fragmentshown",data:{fragment:s.shown[0],fragments:s.shown}}),s}sync(e=this.Reveal.getCurrentSlide()){return this.sort(e.querySelectorAll(".fragment"))}goto(e,i=0){let t=this.Reveal.getCurrentSlide();if(t&&this.Reveal.getConfig().fragments){let s=this.sort(t.querySelectorAll(".fragment:not(.disabled)"));if(s.length){if(typeof e!="number"){let r=this.sort(t.querySelectorAll(".fragment:not(.disabled).visible")).pop();r?e=parseInt(r.getAttribute("data-fragment-index")||0,10):e=-1}e+=i;let a=this.update(e,s);return this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!!(a.shown.length||a.hidden.length)}}return!1}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class ui{constructor(e){this.Reveal=e,this.active=!1,this.onSlideClicked=this.onSlideClicked.bind(this)}activate(){if(this.Reveal.getConfig().overview&&!this.Reveal.isScrollView()&&!this.isActive()){this.active=!0,this.Reveal.getRevealElement().classList.add("overview"),this.Reveal.cancelAutoSlide(),this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()),b(this.Reveal.getRevealElement(),ue).forEach(s=>{s.classList.contains("stack")||s.addEventListener("click",this.onSlideClicked,!0)});const e=70,i=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=i.width+e,this.overviewSlideHeight=i.height+e,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();const t=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:t.h,indexv:t.v,currentSlide:this.Reveal.getCurrentSlide()}})}}layout(){this.Reveal.getHorizontalSlides().forEach((e,i)=>{e.setAttribute("data-index-h",i),X(e,"translate3d("+i*this.overviewSlideWidth+"px, 0, 0)"),e.classList.contains("stack")&&b(e,"section").forEach((t,s)=>{t.setAttribute("data-index-h",i),t.setAttribute("data-index-v",s),X(t,"translate3d(0, "+s*this.overviewSlideHeight+"px, 0)")})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,i)=>{X(e,"translate3d("+i*this.overviewSlideWidth+"px, 0, 0)"),b(e,".slide-background").forEach((t,s)=>{X(t,"translate3d(0, "+s*this.overviewSlideHeight+"px, 0)")})})}update(){const e=Math.min(window.innerWidth,window.innerHeight),i=Math.max(e/5,150)/e,t=this.Reveal.getIndices();this.Reveal.transformSlides({overview:["scale("+i+")","translateX("+-t.h*this.overviewSlideWidth+"px)","translateY("+-t.v*this.overviewSlideHeight+"px)"].join(" ")})}deactivate(){if(this.Reveal.getConfig().overview){this.active=!1,this.Reveal.getRevealElement().classList.remove("overview"),this.Reveal.getRevealElement().classList.add("overview-deactivating"),setTimeout(()=>{this.Reveal.getRevealElement().classList.remove("overview-deactivating")},1),this.Reveal.getRevealElement().appendChild(this.Reveal.getBackgroundsElement()),b(this.Reveal.getRevealElement(),ue).forEach(i=>{X(i,""),i.removeEventListener("click",this.onSlideClicked,!0)}),b(this.Reveal.getBackgroundsElement(),".slide-background").forEach(i=>{X(i,"")}),this.Reveal.transformSlides({overview:""});const e=this.Reveal.getIndices();this.Reveal.slide(e.h,e.v),this.Reveal.layout(),this.Reveal.cueAutoSlide(),this.Reveal.dispatchEvent({type:"overviewhidden",data:{indexh:e.h,indexv:e.v,currentSlide:this.Reveal.getCurrentSlide()}})}}toggle(e){typeof e=="boolean"?e?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}onSlideClicked(e){if(this.isActive()){e.preventDefault();let i=e.target;for(;i&&!i.nodeName.match(/section/gi);)i=i.parentNode;if(i&&!i.classList.contains("disabled")&&(this.deactivate(),i.nodeName.match(/section/gi))){let t=parseInt(i.getAttribute("data-index-h"),10),s=parseInt(i.getAttribute("data-index-v"),10);this.Reveal.slide(t,s)}}}}class fi{constructor(e){this.Reveal=e,this.shortcuts={},this.bindings={},this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this)}configure(e,i){e.navigationMode==="linear"?(this.shortcuts["→ , ↓ , SPACE , N , L , J"]="Next slide",this.shortcuts["← , ↑ , P , H , K"]="Previous slide"):(this.shortcuts["N , SPACE"]="Next slide",this.shortcuts["P , Shift SPACE"]="Previous slide",this.shortcuts["← , H"]="Navigate left",this.shortcuts["→ , L"]="Navigate right",this.shortcuts["↑ , K"]="Navigate up",this.shortcuts["↓ , J"]="Navigate down"),this.shortcuts["Alt + ←/↑/→/↓"]="Navigate without fragments",this.shortcuts["Shift + ←/↑/→/↓"]="Jump to first/last slide",this.shortcuts["B , ."]="Pause",this.shortcuts.F="Fullscreen",this.shortcuts.G="Jump to slide",this.shortcuts["ESC, O"]="Slide overview"}bind(){document.addEventListener("keydown",this.onDocumentKeyDown,!1)}unbind(){document.removeEventListener("keydown",this.onDocumentKeyDown,!1)}addKeyBinding(e,i){typeof e=="object"&&e.keyCode?this.bindings[e.keyCode]={callback:i,key:e.key,description:e.description}:this.bindings[e]={callback:i,key:null,description:null}}removeKeyBinding(e){delete this.bindings[e]}triggerKey(e){this.onDocumentKeyDown({keyCode:e})}registerKeyboardShortcut(e,i){this.shortcuts[e]=i}getShortcuts(){return this.shortcuts}getBindings(){return this.bindings}onDocumentKeyDown(e){let i=this.Reveal.getConfig();if(typeof i.keyboardCondition=="function"&&i.keyboardCondition(e)===!1||i.keyboardCondition==="focused"&&!this.Reveal.isFocused())return!0;let t=e.keyCode,s=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(e);let a=document.activeElement&&document.activeElement.isContentEditable===!0,r=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),o=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),u=!([32,37,38,39,40,63,78,80,191].indexOf(e.keyCode)!==-1&&e.shiftKey||e.altKey)&&(e.shiftKey||e.altKey||e.ctrlKey||e.metaKey);if(a||r||o||u)return;let g=[66,86,190,191,112],y;if(typeof i.keyboard=="object")for(y in i.keyboard)i.keyboard[y]==="togglePause"&&g.push(parseInt(y,10));if(this.Reveal.isOverlayOpen()&&!["Escape","f","c","b","."].includes(e.key)||this.Reveal.isPaused()&&g.indexOf(t)===-1)return!1;let p=i.navigationMode==="linear"||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),w=!1;if(typeof i.keyboard=="object"){for(y in i.keyboard)if(parseInt(y,10)===t){let l=i.keyboard[y];typeof l=="function"?l.apply(null,[e]):typeof l=="string"&&typeof this.Reveal[l]=="function"&&this.Reveal[l].call(),w=!0}}if(w===!1){for(y in this.bindings)if(parseInt(y,10)===t){let l=this.bindings[y].callback;typeof l=="function"?l.apply(null,[e]):typeof l=="string"&&typeof this.Reveal[l]=="function"&&this.Reveal[l].call(),w=!0}}w===!1&&(w=!0,t===80||t===33?this.Reveal.prev({skipFragments:e.altKey}):t===78||t===34?this.Reveal.next({skipFragments:e.altKey}):t===72||t===37?e.shiftKey?this.Reveal.slide(0):!this.Reveal.overview.isActive()&&p?i.rtl?this.Reveal.next({skipFragments:e.altKey}):this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.left({skipFragments:e.altKey}):t===76||t===39?e.shiftKey?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):!this.Reveal.overview.isActive()&&p?i.rtl?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.next({skipFragments:e.altKey}):this.Reveal.right({skipFragments:e.altKey}):t===75||t===38?e.shiftKey?this.Reveal.slide(void 0,0):!this.Reveal.overview.isActive()&&p?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.up({skipFragments:e.altKey}):t===74||t===40?e.shiftKey?this.Reveal.slide(void 0,Number.MAX_VALUE):!this.Reveal.overview.isActive()&&p?this.Reveal.next({skipFragments:e.altKey}):this.Reveal.down({skipFragments:e.altKey}):t===36?this.Reveal.slide(0):t===35?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):t===32?(this.Reveal.overview.isActive()&&this.Reveal.overview.deactivate(),e.shiftKey?this.Reveal.prev({skipFragments:e.altKey}):this.Reveal.next({skipFragments:e.altKey})):[58,59,66,86,190].includes(t)||t===191&&!e.shiftKey?this.Reveal.togglePause():t===70?me(i.embedded?this.Reveal.getViewportElement():document.documentElement):t===65?i.autoSlideStoppable&&this.Reveal.toggleAutoSlide(s):t===71?i.jumpToSlide&&this.Reveal.toggleJumpToSlide():t===67&&this.Reveal.isOverlayOpen()?this.Reveal.closeOverlay():(t===63||t===191)&&e.shiftKey?this.Reveal.toggleHelp():t===112?this.Reveal.toggleHelp():w=!1),w?e.preventDefault&&e.preventDefault():t===27||t===79?(this.Reveal.closeOverlay()===!1&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()):t===13&&this.Reveal.overview.isActive()&&(this.Reveal.overview.deactivate(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}}class gi{constructor(e){Qe(this,"MAX_REPLACE_STATE_FREQUENCY",1e3);this.Reveal=e,this.writeURLTimeout=0,this.replaceStateTimestamp=0,this.onWindowHashChange=this.onWindowHashChange.bind(this)}bind(){window.addEventListener("hashchange",this.onWindowHashChange,!1)}unbind(){window.removeEventListener("hashchange",this.onWindowHashChange,!1)}getIndicesFromHash(e=window.location.hash,i={}){let t=e.replace(/^#\/?/,""),s=t.split("/");if(!/^[0-9]*$/.test(s[0])&&t.length){let a,r;/\/[-\d]+$/g.test(t)&&(r=parseInt(t.split("/").pop(),10),r=isNaN(r)?void 0:r,t=t.split("/").shift());try{const o=decodeURIComponent(t);a=(document.getElementById(o)||document.querySelector(`[data-id="${o}"]`)).closest(".slides section")}catch(o){}if(a)return Je(te({},this.Reveal.getIndices(a)),{f:r})}else{const a=this.Reveal.getConfig();let r=a.hashOneBasedIndex||i.oneBasedIndex?1:0,o=parseInt(s[0],10)-r||0,c=parseInt(s[1],10)-r||0,u;return a.fragmentInURL&&(u=parseInt(s[2],10),isNaN(u)&&(u=void 0)),{h:o,v:c,f:u}}return null}readURL(){const e=this.Reveal.getIndices(),i=this.getIndicesFromHash();i?(i.h!==e.h||i.v!==e.v||i.f!==void 0)&&this.Reveal.slide(i.h,i.v,i.f):this.Reveal.slide(e.h||0,e.v||0)}writeURL(e){let i=this.Reveal.getConfig(),t=this.Reveal.getCurrentSlide();if(clearTimeout(this.writeURLTimeout),typeof e=="number")this.writeURLTimeout=setTimeout(this.writeURL,e);else if(t){let s=this.getHash();i.history?window.location.hash=s:i.hash&&(s==="/"?this.debouncedReplaceState(window.location.pathname+window.location.search):this.debouncedReplaceState("#"+s))}}replaceState(e){window.history.replaceState(null,null,e),this.replaceStateTimestamp=Date.now()}debouncedReplaceState(e){clearTimeout(this.replaceStateTimeout),Date.now()-this.replaceStateTimestamp>this.MAX_REPLACE_STATE_FREQUENCY?this.replaceState(e):this.replaceStateTimeout=setTimeout(()=>this.replaceState(e),this.MAX_REPLACE_STATE_FREQUENCY)}getHash(e){let i="/",t=e||this.Reveal.getCurrentSlide(),s=t?t.getAttribute("id"):null;s&&(s=encodeURIComponent(s));let a=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(a.f=void 0),typeof s=="string"&&s.length)i="/"+s,a.f>=0&&(i+="/"+a.f);else{let r=this.Reveal.getConfig().hashOneBasedIndex?1:0;(a.h>0||a.v>0||a.f>=0)&&(i+=a.h+r),(a.v>0||a.f>=0)&&(i+="/"+(a.v+r)),a.f>=0&&(i+="/"+a.f)}return i}onWindowHashChange(e){this.readURL()}}class pi{constructor(e){this.Reveal=e,this.onNavigateLeftClicked=this.onNavigateLeftClicked.bind(this),this.onNavigateRightClicked=this.onNavigateRightClicked.bind(this),this.onNavigateUpClicked=this.onNavigateUpClicked.bind(this),this.onNavigateDownClicked=this.onNavigateDownClicked.bind(this),this.onNavigatePrevClicked=this.onNavigatePrevClicked.bind(this),this.onNavigateNextClicked=this.onNavigateNextClicked.bind(this),this.onEnterFullscreen=this.onEnterFullscreen.bind(this)}render(){const e=this.Reveal.getConfig().rtl,i=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML=`<button class="navigate-left" aria-label="${e?"next slide":"previous slide"}"><div class="controls-arrow"></div></button>
|
|
<button class="navigate-right" aria-label="${e?"previous slide":"next slide"}"><div class="controls-arrow"></div></button>
|
|
<button class="navigate-up" aria-label="above slide"><div class="controls-arrow"></div></button>
|
|
<button class="navigate-down" aria-label="below slide"><div class="controls-arrow"></div></button>`,this.Reveal.getRevealElement().appendChild(this.element),this.controlsLeft=b(i,".navigate-left"),this.controlsRight=b(i,".navigate-right"),this.controlsUp=b(i,".navigate-up"),this.controlsDown=b(i,".navigate-down"),this.controlsPrev=b(i,".navigate-prev"),this.controlsNext=b(i,".navigate-next"),this.controlsFullscreen=b(i,".enter-fullscreen"),this.controlsRightArrow=this.element.querySelector(".navigate-right"),this.controlsLeftArrow=this.element.querySelector(".navigate-left"),this.controlsDownArrow=this.element.querySelector(".navigate-down")}configure(e,i){const t=e.controls==="speaker"||e.controls==="speaker-only";this.element.style.display=e.controls&&(!t||this.Reveal.isSpeakerNotes())?"block":"none",this.element.setAttribute("data-controls-layout",e.controlsLayout),this.element.setAttribute("data-controls-back-arrows",e.controlsBackArrows)}bind(){let e=["touchstart","click"];tt&&(e=["touchend"]),e.forEach(i=>{this.controlsLeft.forEach(t=>t.addEventListener(i,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(t=>t.addEventListener(i,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(t=>t.addEventListener(i,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(t=>t.addEventListener(i,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(t=>t.addEventListener(i,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(t=>t.addEventListener(i,this.onNavigateNextClicked,!1)),this.controlsFullscreen.forEach(t=>t.addEventListener(i,this.onEnterFullscreen,!1))})}unbind(){["touchstart","touchend","click"].forEach(e=>{this.controlsLeft.forEach(i=>i.removeEventListener(e,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(i=>i.removeEventListener(e,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(i=>i.removeEventListener(e,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(i=>i.removeEventListener(e,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(i=>i.removeEventListener(e,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(i=>i.removeEventListener(e,this.onNavigateNextClicked,!1)),this.controlsFullscreen.forEach(i=>i.removeEventListener(e,this.onEnterFullscreen,!1))})}update(){let e=this.Reveal.availableRoutes();[...this.controlsLeft,...this.controlsRight,...this.controlsUp,...this.controlsDown,...this.controlsPrev,...this.controlsNext].forEach(t=>{t.classList.remove("enabled","fragmented"),t.setAttribute("disabled","disabled")}),e.left&&this.controlsLeft.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")}),e.right&&this.controlsRight.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")}),e.up&&this.controlsUp.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")}),e.down&&this.controlsDown.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")}),(e.left||e.up)&&this.controlsPrev.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")}),(e.right||e.down)&&this.controlsNext.forEach(t=>{t.classList.add("enabled"),t.removeAttribute("disabled")});let i=this.Reveal.getCurrentSlide();if(i){let t=this.Reveal.fragments.availableRoutes();t.prev&&this.controlsPrev.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")}),t.next&&this.controlsNext.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")});const s=this.Reveal.isVerticalSlide(i),a=s&&i.parentElement&&i.parentElement.querySelectorAll(":scope > section").length>1;s&&a?(t.prev&&this.controlsUp.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")}),t.next&&this.controlsDown.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")})):(t.prev&&this.controlsLeft.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")}),t.next&&this.controlsRight.forEach(r=>{r.classList.add("fragmented","enabled"),r.removeAttribute("disabled")}))}if(this.Reveal.getConfig().controlsTutorial){let t=this.Reveal.getIndices();!this.Reveal.hasNavigatedVertically()&&e.down?this.controlsDownArrow.classList.add("highlight"):(this.controlsDownArrow.classList.remove("highlight"),this.Reveal.getConfig().rtl?!this.Reveal.hasNavigatedHorizontally()&&e.left&&t.v===0?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&e.right&&t.v===0?this.controlsRightArrow.classList.add("highlight"):this.controlsRightArrow.classList.remove("highlight"))}}destroy(){this.unbind(),this.element.remove()}onNavigateLeftClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.getConfig().navigationMode==="linear"?this.Reveal.prev():this.Reveal.left()}onNavigateRightClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.getConfig().navigationMode==="linear"?this.Reveal.next():this.Reveal.right()}onNavigateUpClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.up()}onNavigateDownClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.down()}onNavigatePrevClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.prev()}onNavigateNextClicked(e){e.preventDefault(),this.Reveal.onUserInput(),this.Reveal.next()}onEnterFullscreen(e){const i=this.Reveal.getConfig(),t=this.Reveal.getViewportElement();me(i.embedded?t:t.parentElement)}}class vi{constructor(e){this.Reveal=e,this.onProgressClicked=this.onProgressClicked.bind(this)}render(){this.element=document.createElement("div"),this.element.className="progress",this.Reveal.getRevealElement().appendChild(this.element),this.bar=document.createElement("span"),this.element.appendChild(this.bar)}configure(e,i){this.element.style.display=e.progress?"block":"none"}bind(){this.Reveal.getConfig().progress&&this.element&&this.element.addEventListener("click",this.onProgressClicked,!1)}unbind(){this.Reveal.getConfig().progress&&this.element&&this.element.removeEventListener("click",this.onProgressClicked,!1)}update(){if(this.Reveal.getConfig().progress&&this.bar){let e=this.Reveal.getProgress();this.Reveal.getTotalSlides()<2&&(e=0),this.bar.style.transform="scaleX("+e+")"}}getMaxWidth(){return this.Reveal.getRevealElement().offsetWidth}onProgressClicked(e){this.Reveal.onUserInput(e),e.preventDefault();let i=this.Reveal.getSlides(),t=i.length,s=Math.floor(e.clientX/this.getMaxWidth()*t);this.Reveal.getConfig().rtl&&(s=t-s);let a=this.Reveal.getIndices(i[s]);this.Reveal.slide(a.h,a.v)}destroy(){this.element.remove()}}class mi{constructor(e){this.Reveal=e,this.lastMouseWheelStep=0,this.cursorHidden=!1,this.cursorInactiveTimeout=0,this.onDocumentCursorActive=this.onDocumentCursorActive.bind(this),this.onDocumentMouseScroll=this.onDocumentMouseScroll.bind(this)}configure(e,i){e.mouseWheel?document.addEventListener("wheel",this.onDocumentMouseScroll,!1):document.removeEventListener("wheel",this.onDocumentMouseScroll,!1),e.hideInactiveCursor?(document.addEventListener("mousemove",this.onDocumentCursorActive,!1),document.addEventListener("mousedown",this.onDocumentCursorActive,!1)):(this.showCursor(),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1))}showCursor(){this.cursorHidden&&(this.cursorHidden=!1,this.Reveal.getRevealElement().style.cursor="")}hideCursor(){this.cursorHidden===!1&&(this.cursorHidden=!0,this.Reveal.getRevealElement().style.cursor="none")}destroy(){this.showCursor(),document.removeEventListener("wheel",this.onDocumentMouseScroll,!1),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1)}onDocumentCursorActive(e){this.showCursor(),clearTimeout(this.cursorInactiveTimeout),this.cursorInactiveTimeout=setTimeout(this.hideCursor.bind(this),this.Reveal.getConfig().hideCursorTime)}onDocumentMouseScroll(e){if(Date.now()-this.lastMouseWheelStep>1e3){this.lastMouseWheelStep=Date.now();let i=e.detail||-e.wheelDelta;i>0?this.Reveal.next():i<0&&this.Reveal.prev()}}}const at=(h,e)=>{const i=document.createElement("script");i.type="text/javascript",i.async=!1,i.defer=!1,i.src=h,typeof e=="function"&&(i.onload=s=>{s.type==="load"&&(i.onload=i.onerror=null,e())},i.onerror=s=>{i.onload=i.onerror=null,e(new Error("Failed loading script: "+i.src+`
|
|
`+s))});const t=document.querySelector("head");t&&t.insertBefore(i,t.lastChild)};class yi{constructor(e){this.Reveal=e,this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}load(e,i){return this.state="loading",e.forEach(this.registerPlugin.bind(this)),new Promise(t=>{let s=[],a=0;if(i.forEach(r=>{(!r.condition||r.condition())&&(r.async?this.asyncDependencies.push(r):s.push(r))}),s.length){a=s.length;const r=o=>{o&&typeof o.callback=="function"&&o.callback(),--a===0&&this.initPlugins().then(t)};s.forEach(o=>{typeof o.id=="string"?(this.registerPlugin(o),r(o)):typeof o.src=="string"?at(o.src,()=>r(o)):(console.warn("Unrecognized plugin format",o),r())})}else this.initPlugins().then(t)})}initPlugins(){return new Promise(e=>{let i=Object.values(this.registeredPlugins),t=i.length;if(t===0)this.loadAsync().then(e);else{let s,a=()=>{--t===0?this.loadAsync().then(e):s()},r=0;s=()=>{let o=i[r++];if(typeof o.init=="function"){let c=o.init(this.Reveal);c&&typeof c.then=="function"?c.then(a):a()}else a()},s()}})}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach(e=>{at(e.src,e.callback)}),Promise.resolve()}registerPlugin(e){arguments.length===2&&typeof arguments[0]=="string"?(e=arguments[1],e.id=arguments[0]):typeof e=="function"&&(e=e());let i=e.id;typeof i!="string"?console.warn("Unrecognized plugin format; can't find plugin.id",e):this.registeredPlugins[i]===void 0?(this.registeredPlugins[i]=e,this.state==="loaded"&&typeof e.init=="function"&&e.init(this.Reveal)):console.warn('reveal.js: "'+i+'" plugin has already been registered')}hasPlugin(e){return!!this.registeredPlugins[e]}getPlugin(e){return this.registeredPlugins[e]}getRegisteredPlugins(){return this.registeredPlugins}destroy(){Object.values(this.registeredPlugins).forEach(e=>{typeof e.destroy=="function"&&e.destroy()}),this.registeredPlugins={},this.asyncDependencies=[]}}class bi{constructor(e){this.Reveal=e,this.onSlidesClicked=this.onSlidesClicked.bind(this),this.iframeTriggerSelector=null,this.mediaTriggerSelector="[data-preview-image], [data-preview-video]",this.stateProps=["previewIframe","previewImage","previewVideo","previewFit"],this.state={}}update(){this.Reveal.getConfig().previewLinks?this.iframeTriggerSelector="a[href]:not([data-preview-link=false]), [data-preview-link]:not(a):not([data-preview-link=false])":this.iframeTriggerSelector="[data-preview-link]:not([data-preview-link=false])";const e=this.Reveal.getSlidesElement().querySelectorAll(this.iframeTriggerSelector).length>0,i=this.Reveal.getSlidesElement().querySelectorAll(this.mediaTriggerSelector).length>0;e||i?this.Reveal.getSlidesElement().addEventListener("click",this.onSlidesClicked,!1):this.Reveal.getSlidesElement().removeEventListener("click",this.onSlidesClicked,!1)}createOverlay(e){this.dom=document.createElement("div"),this.dom.classList.add("r-overlay"),this.dom.classList.add(e),this.viewport=document.createElement("div"),this.viewport.classList.add("r-overlay-viewport"),this.dom.appendChild(this.viewport),this.Reveal.getRevealElement().appendChild(this.dom)}previewIframe(e){this.close(),this.state={previewIframe:e},this.createOverlay("r-overlay-preview"),this.dom.dataset.state="loading",this.viewport.innerHTML=`<header class="r-overlay-header">
|
|
<a class="r-overlay-header-button r-overlay-external" href="${e}" target="_blank"><span class="icon"></span></a>
|
|
<button class="r-overlay-header-button r-overlay-close"><span class="icon"></span></button>
|
|
</header>
|
|
<div class="r-overlay-spinner"></div>
|
|
<div class="r-overlay-content">
|
|
<iframe src="${e}"></iframe>
|
|
<small class="r-overlay-content-inner">
|
|
<span class="r-overlay-error x-frame-error">Unable to load iframe. This is likely due to the site's policy (x-frame-options).</span>
|
|
</small>
|
|
</div>`,this.dom.querySelector("iframe").addEventListener("load",i=>{this.dom.dataset.state="loaded"},!1),this.dom.querySelector(".r-overlay-close").addEventListener("click",i=>{this.close(),i.preventDefault()},!1),this.dom.querySelector(".r-overlay-external").addEventListener("click",i=>{this.close()},!1),this.Reveal.dispatchEvent({type:"previewiframe",data:{url:e}})}previewMedia(e,i,t){if(i!=="image"&&i!=="video"){console.warn("Please specify a valid media type to preview (image|video)");return}this.close(),t=t||"scale-down",this.createOverlay("r-overlay-preview"),this.dom.dataset.state="loading",this.dom.dataset.previewFit=t,this.viewport.innerHTML=`<header class="r-overlay-header">
|
|
<button class="r-overlay-header-button r-overlay-close">Esc <span class="icon"></span></button>
|
|
</header>
|
|
<div class="r-overlay-spinner"></div>
|
|
<div class="r-overlay-content"></div>`;const s=this.dom.querySelector(".r-overlay-content");if(i==="image"){this.state={previewImage:e,previewFit:t};const a=document.createElement("img",{});a.src=e,s.appendChild(a),a.addEventListener("load",()=>{this.dom.dataset.state="loaded"},!1),a.addEventListener("error",()=>{this.dom.dataset.state="error",s.innerHTML='<span class="r-overlay-error">Unable to load image.</span>'},!1),this.dom.style.cursor="zoom-out",this.dom.addEventListener("click",r=>{this.close()},!1),this.Reveal.dispatchEvent({type:"previewimage",data:{url:e}})}else if(i==="video"){this.state={previewVideo:e,previewFit:t};const a=document.createElement("video");a.autoplay=this.dom.dataset.previewAutoplay!=="false",a.controls=this.dom.dataset.previewControls!=="false",a.loop=this.dom.dataset.previewLoop==="true",a.muted=this.dom.dataset.previewMuted==="true",a.playsInline=!0,a.src=e,s.appendChild(a),a.addEventListener("loadeddata",()=>{this.dom.dataset.state="loaded"},!1),a.addEventListener("error",()=>{this.dom.dataset.state="error",s.innerHTML='<span class="r-overlay-error">Unable to load video.</span>'},!1),this.Reveal.dispatchEvent({type:"previewvideo",data:{url:e}})}else throw new Error("Please specify a valid media type to preview");this.dom.querySelector(".r-overlay-close").addEventListener("click",a=>{this.close(),a.preventDefault()},!1)}previewImage(e,i){this.previewMedia(e,"image",i)}previewVideo(e,i){this.previewMedia(e,"video",i)}toggleHelp(e){typeof e=="boolean"?e?this.showHelp():this.close():this.dom?this.close():this.showHelp()}showHelp(){if(this.Reveal.getConfig().help){this.close(),this.createOverlay("r-overlay-help");let e='<p class="title">Keyboard Shortcuts</p>',i=this.Reveal.keyboard.getShortcuts(),t=this.Reveal.keyboard.getBindings();e+="<table><th>KEY</th><th>ACTION</th>";for(let s in i)e+=`<tr><td>${s}</td><td>${i[s]}</td></tr>`;for(let s in t)t[s].key&&t[s].description&&(e+=`<tr><td>${t[s].key}</td><td>${t[s].description}</td></tr>`);e+="</table>",this.viewport.innerHTML=`
|
|
<header class="r-overlay-header">
|
|
<button class="r-overlay-header-button r-overlay-close">Esc <span class="icon"></span></button>
|
|
</header>
|
|
<div class="r-overlay-content">
|
|
<div class="r-overlay-help-content">${e}</div>
|
|
</div>
|
|
`,this.dom.querySelector(".r-overlay-close").addEventListener("click",s=>{this.close(),s.preventDefault()},!1),this.Reveal.dispatchEvent({type:"showhelp"})}}isOpen(){return!!this.dom}close(){return this.dom?(this.dom.remove(),this.dom=null,this.state={},this.Reveal.dispatchEvent({type:"closeoverlay"}),!0):!1}getState(){return this.state}setState(e){this.stateProps.every(i=>this.state[i]===e[i])||(e.previewIframe?this.previewIframe(e.previewIframe):e.previewImage?this.previewImage(e.previewImage,e.previewFit):e.previewVideo?this.previewVideo(e.previewVideo,e.previewFit):this.close())}onSlidesClicked(e){const i=e.target,t=i.closest(this.iframeTriggerSelector),s=i.closest(this.mediaTriggerSelector);if(t){if(e.metaKey||e.shiftKey||e.altKey)return;const a=t.getAttribute("data-preview-link");let o=typeof a=="string"&&a.startsWith("http")?a:t.getAttribute("href");o&&(this.previewIframe(o),e.preventDefault())}else if(s){if(s.hasAttribute("data-preview-image")){let a=s.dataset.previewImage||s.getAttribute("src");a&&(this.previewImage(a,s.dataset.previewFit),e.preventDefault())}else if(s.hasAttribute("data-preview-video")){let a=s.dataset.previewVideo||s.getAttribute("src");if(!a){let r=s.querySelector("source");r&&(a=r.getAttribute("src"))}a&&(this.previewVideo(a,s.dataset.previewFit),e.preventDefault())}}}destroy(){this.close()}}const Ae=40;class wi{constructor(e){this.Reveal=e,this.touchStartX=0,this.touchStartY=0,this.touchStartCount=0,this.touchCaptured=!1,this.onPointerDown=this.onPointerDown.bind(this),this.onPointerMove=this.onPointerMove.bind(this),this.onPointerUp=this.onPointerUp.bind(this),this.onTouchStart=this.onTouchStart.bind(this),this.onTouchMove=this.onTouchMove.bind(this),this.onTouchEnd=this.onTouchEnd.bind(this)}bind(){let e=this.Reveal.getRevealElement();"onpointerdown"in window?(e.addEventListener("pointerdown",this.onPointerDown,!1),e.addEventListener("pointermove",this.onPointerMove,!1),e.addEventListener("pointerup",this.onPointerUp,!1)):window.navigator.msPointerEnabled?(e.addEventListener("MSPointerDown",this.onPointerDown,!1),e.addEventListener("MSPointerMove",this.onPointerMove,!1),e.addEventListener("MSPointerUp",this.onPointerUp,!1)):(e.addEventListener("touchstart",this.onTouchStart,!1),e.addEventListener("touchmove",this.onTouchMove,!1),e.addEventListener("touchend",this.onTouchEnd,!1))}unbind(){let e=this.Reveal.getRevealElement();e.removeEventListener("pointerdown",this.onPointerDown,!1),e.removeEventListener("pointermove",this.onPointerMove,!1),e.removeEventListener("pointerup",this.onPointerUp,!1),e.removeEventListener("MSPointerDown",this.onPointerDown,!1),e.removeEventListener("MSPointerMove",this.onPointerMove,!1),e.removeEventListener("MSPointerUp",this.onPointerUp,!1),e.removeEventListener("touchstart",this.onTouchStart,!1),e.removeEventListener("touchmove",this.onTouchMove,!1),e.removeEventListener("touchend",this.onTouchEnd,!1)}isSwipePrevented(e){if(ve(e,"video[controls], audio[controls]"))return!0;for(;e&&typeof e.hasAttribute=="function";){if(e.hasAttribute("data-prevent-swipe"))return!0;e=e.parentNode}return!1}onTouchStart(e){if(this.touchCaptured=!1,this.isSwipePrevented(e.target))return!0;this.touchStartX=e.touches[0].clientX,this.touchStartY=e.touches[0].clientY,this.touchStartCount=e.touches.length}onTouchMove(e){if(this.isSwipePrevented(e.target))return!0;let i=this.Reveal.getConfig();if(this.touchCaptured)tt&&e.preventDefault();else{this.Reveal.onUserInput(e);let t=e.touches[0].clientX,s=e.touches[0].clientY;if(e.touches.length===1&&this.touchStartCount!==2){let a=this.Reveal.availableRoutes({includeFragments:!0}),r=t-this.touchStartX,o=s-this.touchStartY;r>Ae&&Math.abs(r)>Math.abs(o)?(this.touchCaptured=!0,i.navigationMode==="linear"?i.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):r<-Ae&&Math.abs(r)>Math.abs(o)?(this.touchCaptured=!0,i.navigationMode==="linear"?i.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):o>Ae&&a.up?(this.touchCaptured=!0,i.navigationMode==="linear"?this.Reveal.prev():this.Reveal.up()):o<-Ae&&a.down&&(this.touchCaptured=!0,i.navigationMode==="linear"?this.Reveal.next():this.Reveal.down()),i.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide())&&e.preventDefault():e.preventDefault()}}}onTouchEnd(e){this.touchCaptured&&!this.Reveal.slideContent.isAllowedToPlayAudio()&&this.Reveal.startEmbeddedContent(this.Reveal.getCurrentSlide()),this.touchCaptured=!1}onPointerDown(e){(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType==="touch")&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchStart(e))}onPointerMove(e){(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType==="touch")&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchMove(e))}onPointerUp(e){(e.pointerType===e.MSPOINTER_TYPE_TOUCH||e.pointerType==="touch")&&(e.touches=[{clientX:e.clientX,clientY:e.clientY}],this.onTouchEnd(e))}}const Fe="focus",rt="blur";class Ei{constructor(e){this.Reveal=e,this.onRevealPointerDown=this.onRevealPointerDown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this)}configure(e,i){e.embedded?this.blur():(this.focus(),this.unbind())}bind(){this.Reveal.getConfig().embedded&&this.Reveal.getRevealElement().addEventListener("pointerdown",this.onRevealPointerDown,!1)}unbind(){this.Reveal.getRevealElement().removeEventListener("pointerdown",this.onRevealPointerDown,!1),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)}focus(){this.state!==Fe&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=Fe}blur(){this.state!==rt&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=rt}isFocused(){return this.state===Fe}destroy(){this.Reveal.getRevealElement().classList.remove("focused")}onRevealPointerDown(e){this.focus()}onDocumentPointerDown(e){let i=V(e.target,".reveal");(!i||i!==this.Reveal.getRevealElement())&&this.blur()}}class Si{constructor(e){this.Reveal=e}render(){this.element=document.createElement("div"),this.element.className="speaker-notes",this.element.setAttribute("data-prevent-swipe",""),this.element.setAttribute("tabindex","0"),this.Reveal.getRevealElement().appendChild(this.element)}configure(e,i){e.showNotes&&this.element.setAttribute("data-layout",typeof e.showNotes=="string"?e.showNotes:"inline")}update(){this.Reveal.getConfig().showNotes&&this.element&&this.Reveal.getCurrentSlide()&&!this.Reveal.isScrollView()&&!this.Reveal.isPrintView()&&(this.element.innerHTML=this.getSlideNotes()||'<span class="notes-placeholder">No notes on this slide.</span>')}updateVisibility(){this.Reveal.getConfig().showNotes&&this.hasNotes()&&!this.Reveal.isScrollView()&&!this.Reveal.isPrintView()?this.Reveal.getRevealElement().classList.add("show-notes"):this.Reveal.getRevealElement().classList.remove("show-notes")}hasNotes(){return this.Reveal.getSlidesElement().querySelectorAll("[data-notes], aside.notes").length>0}isSpeakerNotesWindow(){return!!window.location.search.match(/receiver/gi)}getSlideNotes(e=this.Reveal.getCurrentSlide()){if(e.hasAttribute("data-notes"))return e.getAttribute("data-notes");let i=e.querySelectorAll("aside.notes");return i?Array.from(i).map(t=>t.innerHTML).join(`
|
|
`):null}destroy(){this.element.remove()}}class Ai{constructor(e,i){this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=e,this.progressCheck=i,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.canvas.style.width=this.diameter2+"px",this.canvas.style.height=this.diameter2+"px",this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}setPlaying(e){const i=this.playing;this.playing=e,!i&&this.playing?this.animate():this.render()}animate(){const e=this.progress;this.progress=this.progressCheck(),e>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&requestAnimationFrame(this.animate.bind(this))}render(){let e=this.playing?this.progress:0,i=this.diameter2-this.thickness,t=this.diameter2,s=this.diameter2,a=28;this.progressOffset+=(1-this.progressOffset)*.1;const r=-Math.PI/2+e*(Math.PI*2),o=-Math.PI/2+this.progressOffset*(Math.PI*2);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(t,s,i+4,0,Math.PI*2,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(t,s,i,0,Math.PI*2,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="rgba( 255, 255, 255, 0.2 )",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(t,s,i,o,r,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(t-a/2,s-a/2),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,a/2-4,a),this.context.fillRect(a/2+4,0,a/2-4,a)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(a-4,a/2),this.context.lineTo(0,a),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}on(e,i){this.canvas.addEventListener(e,i,!1)}off(e,i){this.canvas.removeEventListener(e,i,!1)}destroy(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}const Ri={width:960,height:700,margin:.04,minScale:.2,maxScale:2,controls:!0,controlsTutorial:!0,controlsLayout:"bottom-right",controlsBackArrows:"faded",progress:!0,slideNumber:!1,showSlideNumber:"all",hashOneBasedIndex:!1,hash:!1,respondToHashChanges:!0,jumpToSlide:!0,history:!1,keyboard:!0,keyboardCondition:null,disableLayout:!1,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,navigationMode:"default",shuffle:!1,fragments:!0,fragmentInURL:!0,embedded:!1,help:!0,pause:!0,showNotes:!1,showHiddenSlides:!1,autoPlayMedia:null,preloadIframes:null,mouseWheel:!1,previewLinks:!1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,sortFragmentsOnSync:!0,autoAnimate:!0,autoAnimateMatcher:null,autoAnimateEasing:"ease",autoAnimateDuration:1,autoAnimateUnmatched:!0,autoAnimateStyles:["opacity","color","background-color","padding","font-size","line-height","letter-spacing","border-width","border-color","border-radius","outline","outline-offset"],autoSlide:0,autoSlideStoppable:!0,autoSlideMethod:null,defaultTiming:null,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,view:null,scrollLayout:"full",scrollSnap:"mandatory",scrollProgress:"auto",scrollActivationWidth:435,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,dependencies:[],plugins:[]},nt="6.0.0";function ot(h,e){arguments.length<2&&(e=arguments[0],h=document.querySelector(".reveal"));const i={};let t={},s=!1,a=!1,r,o,c,u,g={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},y=[],p=1,w={layout:"",overview:""},l={},A="idle",N=0,q,W=0,fe=-1,U=!1,R=new Yt(i),D=new ei(i),j=new ti(i),K=new ai(i),L=new si(i),k=new di(i),O=new ci(i),C=new hi(i),f=new ui(i),S=new fi(i),T=new gi(i),J=new pi(i),$=new vi(i),le=new mi(i),z=new yi(i),F=new bi(i),ge=new Ei(i),ze=new wi(i),Y=new Si(i);function ki(n){if(!h)throw'Unable to find presentation root (<div class="reveal">).';if(s)throw"Reveal.js has already been initialized.";if(s=!0,l.wrapper=h,l.slides=h.querySelector(".slides"),!l.slides)throw'Unable to find slides container (<div class="slides">).';return t=te(te(te(te(te({},Ri),t),e),n),Ze()),/print-pdf/gi.test(window.location.search)&&(t.view="print"),Ci(),window.addEventListener("load",ye,!1),z.load(t.plugins,t.dependencies).then(Pi),new Promise(d=>i.on("ready",d))}function Ci(){t.embedded===!0?l.viewport=V(h,".reveal-viewport")||h:(l.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),l.viewport.classList.add("reveal-viewport")}function Pi(){s!==!1&&(a=!0,dt(),Ti(),Ni(),Ii(),Mi(),qi(),ht(),L.update(!0),Li(),T.readURL(),setTimeout(()=>{l.slides.classList.remove("no-transition"),l.wrapper.classList.add("ready"),_({type:"ready",data:{indexh:r,indexv:o,currentSlide:u}})},1))}function Li(){const n=t.view==="print",d=t.view==="scroll"||t.view==="reader";(n||d)&&(n?ke():ze.unbind(),l.viewport.classList.add("loading-scroll-mode"),n?document.readyState==="complete"?O.activate():window.addEventListener("load",()=>O.activate()):k.activate())}function dt(){t.showHiddenSlides||b(l.wrapper,'section[data-visibility="hidden"]').forEach(n=>{const d=n.parentNode;d.childElementCount===1&&/section/i.test(d.nodeName)?d.remove():n.remove()})}function Ti(){l.slides.classList.add("no-transition"),he?l.wrapper.classList.add("no-hover"):l.wrapper.classList.remove("no-hover"),L.render(),D.render(),j.render(),J.render(),$.render(),Y.render(),l.pauseOverlay=ie(l.wrapper,"div","pause-overlay",t.controls?'<button class="resume-button">Resume presentation</button>':null),l.statusElement=xi(),l.wrapper.setAttribute("role","application")}function xi(){let n=l.wrapper.querySelector(".aria-status");return n||(n=document.createElement("div"),n.style.position="absolute",n.style.height="1px",n.style.width="1px",n.style.overflow="hidden",n.style.clip="rect( 1px, 1px, 1px, 1px )",n.classList.add("aria-status"),n.setAttribute("aria-live","polite"),n.setAttribute("aria-atomic","true"),l.wrapper.appendChild(n)),n}function Oe(n){l.statusElement.textContent=n}function Re(n){let d="";if(n.nodeType===3)d+=n.textContent.trim();else if(n.nodeType===1){let v=n.getAttribute("aria-hidden"),m=window.getComputedStyle(n).display==="none";if(v!=="true"&&!m){if(n.tagName==="IMG"||n.tagName==="VIDEO"){let P=n.getAttribute("alt");P&&(d+=ct(P))}Array.from(n.childNodes).forEach(P=>{d+=Re(P)}),["P","DIV","UL","OL","LI","H1","H2","H3","H4","H5","H6","BLOCKQUOTE"].includes(n.tagName)&&d.trim()!==""&&(d=ct(d))}}return d=d.trim(),d===""?"":d+" "}function ct(n){const d=n.trim();return d===""?n:/[.!?]$/.test(d)?d:d+"."}function Ii(){setInterval(()=>{(!k.isActive()&&l.wrapper.scrollTop!==0||l.wrapper.scrollLeft!==0)&&(l.wrapper.scrollTop=0,l.wrapper.scrollLeft=0)},1e3)}function Mi(){document.addEventListener("fullscreenchange",Ne),document.addEventListener("webkitfullscreenchange",Ne)}function Ni(){t.postMessage&&window.addEventListener("message",Dt,!1)}function ht(n){const d=te({},t);if(typeof n=="object"&&I(t,n),i.isReady()===!1)return;const v=l.wrapper.querySelectorAll(ue).length;l.wrapper.classList.remove(d.transition),l.wrapper.classList.add(t.transition),l.wrapper.setAttribute("data-transition-speed",t.transitionSpeed),l.wrapper.setAttribute("data-background-transition",t.backgroundTransition),l.viewport.style.setProperty("--slide-width",typeof t.width=="string"?t.width:t.width+"px"),l.viewport.style.setProperty("--slide-height",typeof t.height=="string"?t.height:t.height+"px"),t.shuffle&&je(),H(l.wrapper,"embedded",t.embedded),H(l.wrapper,"rtl",t.rtl),H(l.wrapper,"center",t.center),t.pause===!1&&Ee(),K.reset(),q&&(q.destroy(),q=null),v>1&&t.autoSlide&&t.autoSlideStoppable&&(q=new Ai(l.wrapper,()=>Math.min(Math.max((Date.now()-fe)/N,0),1)),q.on("click",Yi),U=!1),t.navigationMode!=="default"?l.wrapper.setAttribute("data-navigation-mode",t.navigationMode):l.wrapper.removeAttribute("data-navigation-mode"),Y.configure(t,d),ge.configure(t,d),le.configure(t,d),J.configure(t,d),$.configure(t,d),S.configure(t,d),C.configure(t,d),D.configure(t,d),Rt()}function ut(){window.addEventListener("resize",zt,!1),t.touch&&ze.bind(),t.keyboard&&S.bind(),t.progress&&$.bind(),t.respondToHashChanges&&T.bind(),J.bind(),ge.bind(),l.slides.addEventListener("click",Ft,!1),l.slides.addEventListener("transitionend",Vt,!1),l.pauseOverlay.addEventListener("click",Ee,!1),t.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",Ot,!1)}function ke(){ze.unbind(),ge.unbind(),S.unbind(),J.unbind(),$.unbind(),T.unbind(),window.removeEventListener("resize",zt,!1),l.slides.removeEventListener("click",Ft,!1),l.slides.removeEventListener("transitionend",Vt,!1),l.pauseOverlay.removeEventListener("click",Ee,!1)}function Bi(){s=!1,a!==!1&&(ke(),Le(),Y.destroy(),ge.destroy(),F.destroy(),z.destroy(),le.destroy(),J.destroy(),$.destroy(),L.destroy(),D.destroy(),j.destroy(),document.removeEventListener("fullscreenchange",Ne),document.removeEventListener("webkitfullscreenchange",Ne),document.removeEventListener("visibilitychange",Ot,!1),window.removeEventListener("message",Dt,!1),window.removeEventListener("load",ye,!1),l.pauseOverlay&&l.pauseOverlay.remove(),l.statusElement&&l.statusElement.remove(),document.documentElement.classList.remove("reveal-full-page"),l.wrapper.classList.remove("ready","center","has-horizontal-slides","has-vertical-slides"),l.wrapper.removeAttribute("data-transition-speed"),l.wrapper.removeAttribute("data-background-transition"),l.viewport.classList.remove("reveal-viewport"),l.viewport.style.removeProperty("--slide-width"),l.viewport.style.removeProperty("--slide-height"),l.slides.style.removeProperty("width"),l.slides.style.removeProperty("height"),l.slides.style.removeProperty("zoom"),l.slides.style.removeProperty("left"),l.slides.style.removeProperty("top"),l.slides.style.removeProperty("bottom"),l.slides.style.removeProperty("right"),l.slides.style.removeProperty("transform"),Array.from(l.wrapper.querySelectorAll(ue)).forEach(n=>{n.style.removeProperty("display"),n.style.removeProperty("top"),n.removeAttribute("hidden"),n.removeAttribute("aria-hidden")}))}function ft(n,d,v){h.addEventListener(n,d,v)}function gt(n,d,v){h.removeEventListener(n,d,v)}function Ue(n){typeof n.layout=="string"&&(w.layout=n.layout),typeof n.overview=="string"&&(w.overview=n.overview),w.layout?X(l.slides,w.layout+" "+w.overview):X(l.slides,w.overview)}function _({target:n=l.wrapper,type:d,data:v,bubbles:m=!0}){let E=document.createEvent("HTMLEvents",1,2);return E.initEvent(d,m,!0),I(E,v),n.dispatchEvent(E),n===l.wrapper&&vt(d),E}function pt(n){_({type:"slidechanged",data:{indexh:r,indexv:o,previousSlide:c,currentSlide:u,origin:n}})}function vt(n,d){if(t.postMessageEvents&&window.parent!==window.self){let v={namespace:"reveal",eventName:n,state:Bt()};I(v,d),window.parent.postMessage(JSON.stringify(v),"*")}}function ye(){if(l.wrapper&&!O.isActive()){const n=l.viewport.offsetWidth,d=l.viewport.offsetHeight;if(!t.disableLayout){he&&!t.embedded&&document.documentElement.style.setProperty("--vh",window.innerHeight*.01+"px");const v=k.isActive()?Ce(n,d):Ce(),m=p;mt(t.width,t.height),l.slides.style.width=v.width+"px",l.slides.style.height=v.height+"px",p=Math.min(v.presentationWidth/v.width,v.presentationHeight/v.height),p=Math.max(p,t.minScale),p=Math.min(p,t.maxScale),p===1||k.isActive()?(l.slides.style.zoom="",l.slides.style.left="",l.slides.style.top="",l.slides.style.bottom="",l.slides.style.right="",Ue({layout:""})):(l.slides.style.zoom="",l.slides.style.left="50%",l.slides.style.top="50%",l.slides.style.bottom="auto",l.slides.style.right="auto",Ue({layout:"translate(-50%, -50%) scale("+p+")"}));const E=Array.from(l.wrapper.querySelectorAll(ue));for(let P=0,x=E.length;P<x;P++){const B=E[P];B.style.display!=="none"&&(t.center||B.classList.contains("center")?B.classList.contains("stack")?B.style.top=0:B.style.top=Math.max((v.height-B.scrollHeight)/2,0)+"px":B.style.top="")}m!==p&&_({type:"resize",data:{oldScale:m,scale:p,size:v}})}Hi(),l.viewport.style.setProperty("--slide-scale",p),l.viewport.style.setProperty("--viewport-width",n+"px"),l.viewport.style.setProperty("--viewport-height",d+"px"),k.layout(),$.update(),L.updateParallax(),f.isActive()&&f.update()}}function mt(n,d){b(l.slides,"section > .stretch, section > .r-stretch").forEach(v=>{let m=jt(v,d);if(/(img|video)/gi.test(v.nodeName)){const E=v.naturalWidth||v.videoWidth,P=v.naturalHeight||v.videoHeight,x=Math.min(n/E,m/P);v.style.width=E*x+"px",v.style.height=P*x+"px"}else v.style.width=n+"px",v.style.height=m+"px"})}function Hi(){if(l.wrapper&&!t.disableLayout&&!O.isActive()&&typeof t.scrollActivationWidth=="number"&&t.view!=="scroll"){const n=Ce();n.presentationWidth>0&&n.presentationWidth<=t.scrollActivationWidth?k.isActive()||(L.create(),k.activate()):k.isActive()&&k.deactivate()}}function Ce(n,d){let v=t.width,m=t.height;t.disableLayout&&(v=l.slides.offsetWidth,m=l.slides.offsetHeight);const E={width:v,height:m,presentationWidth:n||l.wrapper.offsetWidth,presentationHeight:d||l.wrapper.offsetHeight};return E.presentationWidth-=E.presentationWidth*t.margin,E.presentationHeight-=E.presentationHeight*t.margin,typeof E.width=="string"&&/%$/.test(E.width)&&(E.width=parseInt(E.width,10)/100*E.presentationWidth),typeof E.height=="string"&&/%$/.test(E.height)&&(E.height=parseInt(E.height,10)/100*E.presentationHeight),E}function yt(n,d){typeof n=="object"&&typeof n.setAttribute=="function"&&n.setAttribute("data-previous-indexv",d||0)}function bt(n){if(typeof n=="object"&&typeof n.setAttribute=="function"&&n.classList.contains("stack")){const d=n.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(n.getAttribute(d)||0,10)}return 0}function we(n=u){return n&&n.parentNode&&!!n.parentNode.nodeName.match(/section/i)}function Di(n=u){return n.classList.contains(".stack")||n.querySelector("section")!==null}function wt(){return u&&we(u)?!u.nextElementSibling:!1}function Et(){return r===0&&o===0}function qe(){return u?!(u.nextElementSibling||we(u)&&u.parentNode.nextElementSibling):!1}function St(){if(t.pause){const n=l.wrapper.classList.contains("paused");Le(),l.wrapper.classList.add("paused"),n===!1&&_({type:"paused"})}}function Ee(){const n=l.wrapper.classList.contains("paused");l.wrapper.classList.remove("paused"),be(),n&&_({type:"resumed"})}function At(n){typeof n=="boolean"?n?St():Ee():Se()?Ee():St()}function Se(){return l.wrapper.classList.contains("paused")}function Vi(n){typeof n=="boolean"?n?j.show():j.hide():j.isVisible()?j.hide():j.show()}function Fi(n){typeof n=="boolean"?n?xe():Te():U?xe():Te()}function zi(){return!!(N&&!U)}function Q(n,d,v,m){if(_({type:"beforeslidechange",data:{indexh:n===void 0?r:n,indexv:d===void 0?o:d,origin:m}}).defaultPrevented)return;c=u;const P=l.wrapper.querySelectorAll(se);if(k.isActive()){const ee=k.getSlideByIndices(n,d);ee&&k.scrollToSlide(ee);return}if(P.length===0)return;d===void 0&&!f.isActive()&&(d=bt(P[n])),c&&c.parentNode&&c.parentNode.classList.contains("stack")&&yt(c.parentNode,o);const x=y.concat();y.length=0;let B=r||0,pe=o||0;r=Pe(se,n===void 0?r:n),o=Pe(He,d===void 0?o:d);let Z=r!==B||o!==pe;Z||(c=null);let G=P[r],M=G.querySelectorAll("section");h.classList.toggle("is-vertical-slide",M.length>1),u=M[o]||G;let re=!1;Z&&c&&u&&!f.isActive()&&(A="running",re=We(c,u,B,pe),re&&l.slides.classList.add("disable-slide-transitions")),Ke(),ye(),f.isActive()&&f.update(),typeof v!="undefined"&&C.goto(v),c&&c!==u&&(c.classList.remove("present"),c.setAttribute("aria-hidden","true"),Et()&&setTimeout(()=>{ji().forEach(ee=>{yt(ee,0)})},0));e:for(let ee=0,Gi=y.length;ee<Gi;ee++){for(let Be=0;Be<x.length;Be++)if(x[Be]===y[ee]){x.splice(Be,1);continue e}l.viewport.classList.add(y[ee]),_({type:y[ee]})}for(;x.length;)l.viewport.classList.remove(x.pop());Z&&(R.afterSlideChanged(),pt(m)),(Z||!c)&&(R.stopEmbeddedContent(c),R.startEmbeddedContent(u)),requestAnimationFrame(()=>{Oe(Re(u))}),$.update(),J.update(),Y.update(),L.update(),L.updateParallax(),D.update(),C.update(),T.writeURL(),be(),re&&(setTimeout(()=>{l.slides.classList.remove("disable-slide-transitions")},0),t.autoAnimate&&K.run(c,u))}function We(n,d,v,m){return n.hasAttribute("data-auto-animate")&&d.hasAttribute("data-auto-animate")&&n.getAttribute("data-auto-animate-id")===d.getAttribute("data-auto-animate-id")&&!(r>v||o>m?d:n).hasAttribute("data-auto-animate-restart")}function Oi(n,d,v){let m=r||0;r=d,o=v;const E=u!==n;c=u,u=n,u&&c&&t.autoAnimate&&We(c,u,m,o)&&K.run(c,u),E&&(R.afterSlideChanged(),c&&(R.stopEmbeddedContent(c),R.stopEmbeddedContent(c.slideBackgroundElement)),R.startEmbeddedContent(u),R.startEmbeddedContent(u.slideBackgroundElement)),requestAnimationFrame(()=>{Oe(Re(u))}),pt()}function Rt(){ke(),ut(),ye(),N=t.autoSlide,be(),L.create(),T.writeURL(),t.sortFragmentsOnSync===!0&&C.sortAll(),typeof r!="undefined"&&(r=Pe(se,r),o=Pe(He,o)),J.update(),$.update(),Ke(),Y.update(),Y.updateVisibility(),F.update(),L.update(!0),D.update(),R.formatEmbeddedContent(),t.autoPlayMedia===!1?R.stopEmbeddedContent(u,{unloadIframes:!1}):R.startEmbeddedContent(u),f.isActive()&&f.layout(),_({type:"sync"})}function Ui(n=u){L.sync(n),C.sync(n),R.load(n),L.update(),Y.update(),_({type:"slidesync",data:{slide:n}})}function qi(){de().forEach(n=>{b(n,"section").forEach((d,v)=>{v>0&&(d.classList.remove("present"),d.classList.remove("past"),d.classList.add("future"),d.setAttribute("aria-hidden","true"))})})}function je(n=de()){n.forEach((d,v)=>{let m=n[Math.floor(Math.random()*n.length)];m.parentNode===d.parentNode&&d.parentNode.insertBefore(d,m);let E=d.querySelectorAll("section");E.length&&je(E)})}function Pe(n,d){let v=b(l.wrapper,n),m=v.length,E=k.isActive()||O.isActive(),P=!1,x=!1;if(m){t.loop&&(d>=m&&(P=!0),d%=m,d<0&&(d=m+d,x=!0)),d=Math.max(Math.min(d,m-1),0);for(let G=0;G<m;G++){let M=v[G],re=t.rtl&&!we(M);if(M.classList.remove("past"),M.classList.remove("present"),M.classList.remove("future"),M.setAttribute("hidden",""),M.setAttribute("aria-hidden","true"),M.querySelector("section")&&M.classList.add("stack"),E){M.classList.add("present");continue}G<d?(M.classList.add(re?"future":"past"),t.fragments&&kt(M)):G>d?(M.classList.add(re?"past":"future"),t.fragments&&Ct(M)):G===d&&t.fragments&&(P?Ct(M):x&&kt(M))}let B=v[d],pe=B.classList.contains("present");B.classList.add("present"),B.removeAttribute("hidden"),B.removeAttribute("aria-hidden"),pe||_({target:B,type:"visible",bubbles:!1});let Z=B.getAttribute("data-state");Z&&(y=y.concat(Z.split(" ")))}else d=0;return d}function kt(n){b(n,".fragment").forEach(d=>{d.classList.add("visible"),d.classList.remove("current-fragment")})}function Ct(n){b(n,".fragment.visible").forEach(d=>{d.classList.remove("visible","current-fragment")})}function Ke(){let n=de(),d=n.length,v,m;if(d&&typeof r!="undefined"){const E=f.isActive();let P=E?10:t.viewDistance;he&&(P=E?6:t.mobileViewDistance),O.isActive()&&(P=Number.MAX_VALUE);for(let x=0;x<d;x++){let B=n[x],pe=b(B,"section"),Z=pe.length;if(v=Math.abs((r||0)-x)||0,t.loop&&(v=Math.abs(((r||0)-x)%(d-P))||0),v<P?R.load(B):R.unload(B),Z){let G=E?0:bt(B);for(let M=0;M<Z;M++){let re=pe[M];m=Math.abs(x===(r||0)?(o||0)-M:M-G),v+m<P?R.load(re):R.unload(re)}}}It()?l.wrapper.classList.add("has-vertical-slides"):l.wrapper.classList.remove("has-vertical-slides"),xt()?l.wrapper.classList.add("has-horizontal-slides"):l.wrapper.classList.remove("has-horizontal-slides")}}function ae({includeFragments:n=!1}={}){let d=l.wrapper.querySelectorAll(se),v=l.wrapper.querySelectorAll(He),m={left:r>0,right:r<d.length-1,up:o>0,down:o<v.length-1};if(t.loop&&(d.length>1&&(m.left=!0,m.right=!0),v.length>1&&(m.up=!0,m.down=!0)),d.length>1&&t.navigationMode==="linear"&&(m.right=m.right||m.down,m.left=m.left||m.up),n===!0){let E=C.availableRoutes();m.left=m.left||E.prev,m.up=m.up||E.prev,m.down=m.down||E.next,m.right=m.right||E.next}if(t.rtl){let E=m.left;m.left=m.right,m.right=E}return m}function Pt(n=u){let d=de(),v=0;e:for(let m=0;m<d.length;m++){let E=d[m],P=E.querySelectorAll("section");for(let x=0;x<P.length;x++){if(P[x]===n)break e;P[x].dataset.visibility!=="uncounted"&&v++}if(E===n)break;E.classList.contains("stack")===!1&&E.dataset.visibility!=="uncounted"&&v++}return v}function Wi(){let n=Mt(),d=Pt();if(u){let v=u.querySelectorAll(".fragment");if(v.length>0){let m=u.querySelectorAll(".fragment.visible");d+=m.length/v.length*.9}}return Math.min(d/(n-1),1)}function Lt(n){let d=r,v=o,m;if(n)if(k.isActive())d=parseInt(n.getAttribute("data-index-h"),10),n.getAttribute("data-index-v")&&(v=parseInt(n.getAttribute("data-index-v"),10));else{let E=we(n),P=E?n.parentNode:n,x=de();d=Math.max(x.indexOf(P),0),v=void 0,E&&(v=Math.max(b(n.parentNode,"section").indexOf(n),0))}if(!n&&u&&u.querySelectorAll(".fragment").length>0){let P=u.querySelector(".current-fragment");P&&P.hasAttribute("data-fragment-index")?m=parseInt(P.getAttribute("data-fragment-index"),10):m=u.querySelectorAll(".fragment.visible").length-1}return{h:d,v,f:m}}function _e(){return b(l.wrapper,ue+':not(.stack):not([data-visibility="uncounted"])')}function de(){return b(l.wrapper,se)}function Tt(){return b(l.wrapper,".slides>section>section")}function ji(){return b(l.wrapper,se+".stack")}function xt(){return de().length>1}function It(){return Tt().length>1}function Ki(){return _e().map(n=>{let d={};for(let v=0;v<n.attributes.length;v++){let m=n.attributes[v];d[m.name]=m.value}return d})}function Mt(){return _e().length}function Nt(n,d){let v=de()[n],m=v&&v.querySelectorAll("section");return m&&m.length&&typeof d=="number"?m?m[d]:void 0:v}function _i(n,d){let v=typeof n=="number"?Nt(n,d):n;if(v)return v.slideBackgroundElement}function Bt(){let n=Lt();return te({indexh:n.h,indexv:n.v,indexf:n.f,paused:Se(),overview:f.isActive()},F.getState())}function $i(n){if(typeof n=="object"){Q(ne(n.indexh),ne(n.indexv),ne(n.indexf));let d=ne(n.paused),v=ne(n.overview);typeof d=="boolean"&&d!==Se()&&At(d),typeof v=="boolean"&&v!==f.isActive()&&f.toggle(v),F.setState(n)}}function be(){if(Le(),u&&t.autoSlide!==!1){let n=u.querySelector(".current-fragment[data-autoslide]"),d=n?n.getAttribute("data-autoslide"):null,v=u.parentNode?u.parentNode.getAttribute("data-autoslide"):null,m=u.getAttribute("data-autoslide");d?N=parseInt(d,10):m?N=parseInt(m,10):v?N=parseInt(v,10):(N=t.autoSlide,u.querySelectorAll(".fragment").length===0&&b(u,"video, audio").forEach(E=>{E.hasAttribute("data-autoplay")&&N&&E.duration*1e3/E.playbackRate>N&&(N=E.duration*1e3/E.playbackRate+1e3)})),N&&!U&&!Se()&&!f.isActive()&&(!qe()||C.availableRoutes().next||t.loop===!0)&&(W=setTimeout(()=>{typeof t.autoSlideMethod=="function"?t.autoSlideMethod():Ye(),be()},N),fe=Date.now()),q&&q.setPlaying(W!==-1)}}function Le(){clearTimeout(W),W=-1}function Te(){N&&!U&&(U=!0,_({type:"autoslidepaused"}),clearTimeout(W),q&&q.setPlaying(!1))}function xe(){N&&U&&(U=!1,_({type:"autoslideresumed"}),be())}function Ie({skipFragments:n=!1}={}){if(g.hasNavigatedHorizontally=!0,k.isActive())return k.prev();t.rtl?(f.isActive()||n||C.next()===!1)&&ae().left&&Q(r+1,t.navigationMode==="grid"?o:void 0):(f.isActive()||n||C.prev()===!1)&&ae().left&&Q(r-1,t.navigationMode==="grid"?o:void 0)}function Me({skipFragments:n=!1}={}){if(g.hasNavigatedHorizontally=!0,k.isActive())return k.next();t.rtl?(f.isActive()||n||C.prev()===!1)&&ae().right&&Q(r-1,t.navigationMode==="grid"?o:void 0):(f.isActive()||n||C.next()===!1)&&ae().right&&Q(r+1,t.navigationMode==="grid"?o:void 0)}function $e({skipFragments:n=!1}={}){if(k.isActive())return k.prev();(f.isActive()||n||C.prev()===!1)&&ae().up&&Q(r,o-1)}function Xe({skipFragments:n=!1}={}){if(g.hasNavigatedVertically=!0,k.isActive())return k.next();(f.isActive()||n||C.next()===!1)&&ae().down&&Q(r,o+1)}function Ht({skipFragments:n=!1}={}){if(k.isActive())return k.prev();if(n||C.prev()===!1)if(ae().up)$e({skipFragments:n});else{let d;if(t.rtl?d=b(l.wrapper,se+".future").pop():d=b(l.wrapper,se+".past").pop(),d&&d.classList.contains("stack")){let v=d.querySelectorAll("section").length-1||void 0,m=r-1;Q(m,v)}else t.rtl?Me({skipFragments:n}):Ie({skipFragments:n})}}function Ye({skipFragments:n=!1}={}){if(g.hasNavigatedHorizontally=!0,g.hasNavigatedVertically=!0,k.isActive())return k.next();if(n||C.next()===!1){let d=ae();d.down&&d.right&&t.loop&&wt()&&(d.down=!1),d.down?Xe({skipFragments:n}):t.rtl?Ie({skipFragments:n}):Me({skipFragments:n})}}function Xi(n){t.autoSlideStoppable&&Te()}function Dt(n){let d=n.data;if(typeof d=="string"&&d.charAt(0)==="{"&&d.charAt(d.length-1)==="}"&&(d=JSON.parse(d),d.method&&typeof i[d.method]=="function"))if(Jt.test(d.method)===!1){const v=i[d.method].apply(i,d.args);vt("callback",{method:d.method,result:v})}else console.warn('reveal.js: "'+d.method+'" is is blacklisted from the postMessage API')}function Vt(n){A==="running"&&/section/gi.test(n.target.nodeName)&&(A="idle",_({type:"slidetransitionend",data:{indexh:r,indexv:o,previousSlide:c,currentSlide:u}}))}function Ft(n){const d=V(n.target,'a[href^="#"]');if(d){const v=d.getAttribute("href"),m=T.getIndicesFromHash(v);m&&(i.slide(m.h,m.v,m.f),n.preventDefault())}}function zt(n){ye()}function Ot(n){document.hidden===!1&&document.activeElement!==document.body&&(typeof document.activeElement.blur=="function"&&document.activeElement.blur(),document.body.focus())}function Ne(n){(document.fullscreenElement||document.webkitFullscreenElement)===l.wrapper&&(n.stopImmediatePropagation(),setTimeout(()=>{i.layout(),i.focus.focus()},1))}function Yi(n){qe()&&t.loop===!1?(Q(0,0),xe()):U?xe():Te()}const Ut={VERSION:nt,initialize:ki,configure:ht,destroy:Bi,sync:Rt,syncSlide:Ui,syncFragments:C.sync.bind(C),slide:Q,left:Ie,right:Me,up:$e,down:Xe,prev:Ht,next:Ye,navigateLeft:Ie,navigateRight:Me,navigateUp:$e,navigateDown:Xe,navigatePrev:Ht,navigateNext:Ye,navigateFragment:C.goto.bind(C),prevFragment:C.prev.bind(C),nextFragment:C.next.bind(C),on:ft,off:gt,addEventListener:ft,removeEventListener:gt,layout:ye,shuffle:je,availableRoutes:ae,availableFragments:C.availableRoutes.bind(C),toggleHelp:F.toggleHelp.bind(F),toggleOverview:f.toggle.bind(f),toggleScrollView:k.toggle.bind(k),togglePause:At,toggleAutoSlide:Fi,toggleJumpToSlide:Vi,isFirstSlide:Et,isLastSlide:qe,isLastVerticalSlide:wt,isVerticalSlide:we,isVerticalStack:Di,isPaused:Se,isAutoSliding:zi,isSpeakerNotes:Y.isSpeakerNotesWindow.bind(Y),isOverview:f.isActive.bind(f),isFocused:ge.isFocused.bind(ge),isOverlayOpen:F.isOpen.bind(F),isScrollView:k.isActive.bind(k),isPrintView:O.isActive.bind(O),isReady:()=>a,loadSlide:R.load.bind(R),unloadSlide:R.unload.bind(R),startEmbeddedContent:()=>R.startEmbeddedContent(u),stopEmbeddedContent:()=>R.stopEmbeddedContent(u,{unloadIframes:!1}),previewIframe:F.previewIframe.bind(F),previewImage:F.previewImage.bind(F),previewVideo:F.previewVideo.bind(F),showPreview:F.previewIframe.bind(F),hidePreview:F.close.bind(F),addEventListeners:ut,removeEventListeners:ke,dispatchEvent:_,getState:Bt,setState:$i,getProgress:Wi,getIndices:Lt,getSlidesAttributes:Ki,getSlidePastCount:Pt,getTotalSlides:Mt,getSlide:Nt,getPreviousSlide:()=>c,getCurrentSlide:()=>u,getSlideBackground:_i,getSlideNotes:Y.getSlideNotes.bind(Y),getSlides:_e,getHorizontalSlides:de,getVerticalSlides:Tt,hasHorizontalSlides:xt,hasVerticalSlides:It,hasNavigatedHorizontally:()=>g.hasNavigatedHorizontally,hasNavigatedVertically:()=>g.hasNavigatedVertically,shouldAutoAnimateBetween:We,addKeyBinding:S.addKeyBinding.bind(S),removeKeyBinding:S.removeKeyBinding.bind(S),triggerKey:S.triggerKey.bind(S),registerKeyboardShortcut:S.registerKeyboardShortcut.bind(S),getComputedSlideSize:Ce,setCurrentScrollPage:Oi,removeHiddenSlides:dt,getScale:()=>p,getConfig:()=>t,getQueryHash:Ze,getSlidePath:T.getHash.bind(T),getRevealElement:()=>h,getSlidesElement:()=>l.slides,getViewportElement:()=>l.viewport,getBackgroundsElement:()=>L.element,registerPlugin:z.registerPlugin.bind(z),hasPlugin:z.hasPlugin.bind(z),getPlugin:z.getPlugin.bind(z),getPlugins:z.getRegisteredPlugins.bind(z)};return I(i,Je(te({},Ut),{announceStatus:Oe,getStatusText:Re,focus:ge,scroll:k,progress:$,controls:J,location:T,overview:f,keyboard:S,fragments:C,backgrounds:L,slideContent:R,slideNumber:D,onUserInput:Xi,closeOverlay:F.close.bind(F),updateSlidesVisibility:Ke,layoutSlideContents:mt,transformSlides:Ue,cueAutoSlide:be,cancelAutoSlide:Le})),Ut}const oe=ot,lt=[];return oe.initialize=h=>{const e=document.querySelector(".reveal");if(!(e instanceof HTMLElement))throw new Error('Unable to find presentation root (<div class="reveal">).');return Object.assign(oe,new ot(e,h)),lt.map(i=>i(oe)),oe.initialize()},["configure","on","off","addEventListener","removeEventListener","registerPlugin"].forEach(h=>{oe[h]=(...e)=>{lt.push(i=>i[h].call(null,...e))}}),oe.isReady=()=>!1,oe.VERSION=nt,oe}));
|