(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const E of document.querySelectorAll('link[rel="modulepreload"]'))d(E);new MutationObserver(E=>{for(const N of E)if(N.type==="childList")for(const v of N.addedNodes)v.tagName==="LINK"&&v.rel==="modulepreload"&&d(v)}).observe(document,{childList:!0,subtree:!0});function r(E){const N={};return E.integrity&&(N.integrity=E.integrity),E.referrerpolicy&&(N.referrerPolicy=E.referrerpolicy),E.crossorigin==="use-credentials"?N.credentials="include":E.crossorigin==="anonymous"?N.credentials="omit":N.credentials="same-origin",N}function d(E){if(E.ep)return;E.ep=!0;const N=r(E);fetch(E.href,N)}})();function et(){}function fi(f){return f()}function oi(){return Object.create(null)}function ca(f){f.forEach(fi)}function Ti(f){return typeof f=="function"}function zt(f,n){return f!=f?n==n:f!==n||f&&typeof f=="object"||typeof f=="function"}function wo(f){return Object.keys(f).length===0}function xo(f,n){f.appendChild(n)}function bt(f,n,r){f.insertBefore(n,r||null)}function St(f){f.parentNode&&f.parentNode.removeChild(f)}function Ht(f){return document.createElement(f)}function Mo(f){return document.createTextNode(f)}function dn(){return Mo(" ")}function li(f,n,r){r==null?f.removeAttribute(n):f.getAttribute(n)!==r&&f.setAttribute(n,r)}function Lo(f){return Array.from(f.childNodes)}let yn;function Nn(f){yn=f}function ko(){if(!yn)throw new Error("Function called outside component initialization");return yn}function Po(f){ko().$$.on_mount.push(f)}const _n=[],ci=[];let mn=[];const di=[],vi=Promise.resolve();let Pa=!1;function Ci(){Pa||(Pa=!0,vi.then(Ri))}function Uo(){return Ci(),vi}function Ua(f){mn.push(f)}const xa=new Set;let cn=0;function Ri(){if(cn!==0)return;const f=yn;do{try{for(;cn<_n.length;){const n=_n[cn];cn++,Nn(n),Fo(n.$$)}}catch(n){throw _n.length=0,cn=0,n}for(Nn(null),_n.length=0,cn=0;ci.length;)ci.pop()();for(let n=0;nf.indexOf(d)===-1?n.push(d):r.push(d)),r.forEach(d=>d()),mn=n}const sa=new Set;let Go;function Ft(f,n){f&&f.i&&(sa.delete(f),f.i(n))}function Zt(f,n,r,d){if(f&&f.o){if(sa.has(f))return;sa.add(f),Go.c.push(()=>{sa.delete(f),d&&(r&&f.d(1),d())}),f.o(n)}else d&&d()}function Jt(f){f&&f.c()}function Bt(f,n,r,d){const{fragment:E,after_update:N}=f.$$;E&&E.m(n,r),d||Ua(()=>{const v=f.$$.on_mount.map(fi).filter(Ti);f.$$.on_destroy?f.$$.on_destroy.push(...v):ca(v),f.$$.on_mount=[]}),N.forEach(Ua)}function Gt(f,n){const r=f.$$;r.fragment!==null&&(Bo(r.after_update),ca(r.on_destroy),r.fragment&&r.fragment.d(n),r.on_destroy=r.fragment=null,r.ctx=[])}function Yo(f,n){f.$$.dirty[0]===-1&&(_n.push(f),Ci(),f.$$.dirty.fill(0)),f.$$.dirty[n/31|0]|=1<{const h=$.length?$[0]:X;return Z.ctx&&E(Z.ctx[V],Z.ctx[V]=h)&&(!Z.skip_bound&&Z.bound[V]&&Z.bound[V](h),j&&Yo(f,V)),X}):[],Z.update(),j=!0,ca(Z.before_update),Z.fragment=d?d(Z.ctx):!1,n.target){if(n.hydrate){const V=Lo(n.target);Z.fragment&&Z.fragment.l(V),V.forEach(St)}else Z.fragment&&Z.fragment.c();n.intro&&Ft(f.$$.fragment),Bt(f,n.target,n.anchor,n.customElement),Ri()}Nn(C)}class Vt{$destroy(){Gt(this,1),this.$destroy=et}$on(n,r){if(!Ti(r))return et;const d=this.$$.callbacks[n]||(this.$$.callbacks[n]=[]);return d.push(r),()=>{const E=d.indexOf(r);E!==-1&&d.splice(E,1)}}$set(n){this.$$set&&!wo(n)&&(this.$$.skip_bound=!0,this.$$set(n),this.$$.skip_bound=!1)}}/*! * reveal.js 4.6.0 * https://revealjs.com * MIT licensed * * Copyright (C) 2011-2023 Hakim El Hattab, https://hakim.se */const pn=(f,n)=>{for(let r in n)f[r]=n[r];return f},Se=(f,n)=>Array.from(f.querySelectorAll(n)),Ma=(f,n,r)=>{r?f.classList.add(n):f.classList.remove(n)},un=f=>{if(typeof f=="string"){if(f==="null")return null;if(f==="true")return!0;if(f==="false")return!1;if(f.match(/^-?[\d\.]+$/))return parseFloat(f)}return f},Yt=(f,n)=>{f.style.transform=n},oa=(f,n)=>{let r=f.matches||f.matchesSelector||f.msMatchesSelector;return!(!r||!r.call(f,n))},ut=(f,n)=>{if(typeof f.closest=="function")return f.closest(n);for(;f;){if(oa(f,n))return f;f=f.parentNode}return null},Ho=(f,n,r,d="")=>{let E=f.querySelectorAll("."+r);for(let v=0;v{let n=document.createElement("style");return n.type="text/css",f&&f.length>0&&(n.styleSheet?n.styleSheet.cssText=f:n.appendChild(document.createTextNode(f))),document.head.appendChild(n),n},_i=()=>{let f={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,n=>{f[n.split("=").shift()]=n.split("=").pop()});for(let n in f){let r=f[n];f[n]=un(unescape(r))}return f.dependencies!==void 0&&delete f.dependencies,f},zo=(f,n=0)=>{if(f){let r,d=f.style.height;return f.style.height="0px",f.parentNode.style.height="auto",r=n-f.parentNode.offsetHeight,f.style.height=d+"px",f.parentNode.style.removeProperty("height"),r}return n},qo={mp4:"video/mp4",m4a:"video/mp4",ogv:"video/ogg",mpeg:"video/mpeg",webm:"video/webm"},la=navigator.userAgent,gn=/(iphone|ipod|ipad|android)/gi.test(la)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1;/chrome/i.test(la)&&/edge/i.test(la);const Ni=/android/gi.test(la);var yi={};Object.defineProperty(yi,"__esModule",{value:!0});var ui=Object.assign||function(f){for(var n=1;n1&&arguments[1]!==void 0?arguments[1]:{};return typeof z=="string"?Be(n(document.querySelectorAll(z)),k):Be([z],k)[0]}}(typeof window>"u"?null:window);class $o{constructor(n){this.Reveal=n,this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this)}shouldPreload(n){let r=this.Reveal.getConfig().preloadIframes;return typeof r!="boolean"&&(r=n.hasAttribute("data-preload")),r}load(n,r={}){n.style.display=this.Reveal.getConfig().display,Se(n,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach(E=>{(E.tagName!=="IFRAME"||this.shouldPreload(E))&&(E.setAttribute("src",E.getAttribute("data-src")),E.setAttribute("data-lazy-loaded",""),E.removeAttribute("data-src"))}),Se(n,"video, audio").forEach(E=>{let N=0;Se(E,"source[data-src]").forEach(v=>{v.setAttribute("src",v.getAttribute("data-src")),v.removeAttribute("data-src"),v.setAttribute("data-lazy-loaded",""),N+=1}),gn&&E.tagName==="VIDEO"&&E.setAttribute("playsinline",""),N>0&&E.load()});let d=n.slideBackgroundElement;if(d){d.style.display="block";let E=n.slideBackgroundContentElement,N=n.getAttribute("data-background-iframe");if(d.hasAttribute("data-loaded")===!1){d.setAttribute("data-loaded","true");let A=n.getAttribute("data-background-image"),C=n.getAttribute("data-background-video"),Z=n.hasAttribute("data-background-video-loop"),j=n.hasAttribute("data-background-video-muted");if(A)/^data:/.test(A.trim())?E.style.backgroundImage=`url(${A.trim()})`:E.style.backgroundImage=A.split(",").map(V=>`url(${((X="")=>encodeURI(X).replace(/%5B/g,"[").replace(/%5D/g,"]").replace(/[!'()*]/g,$=>`%${$.charCodeAt(0).toString(16).toUpperCase()}`))(decodeURI(V.trim()))})`).join(",");else if(C&&!this.Reveal.isSpeakerNotes()){let V=document.createElement("video");Z&&V.setAttribute("loop",""),j&&(V.muted=!0),gn&&(V.muted=!0,V.setAttribute("playsinline","")),C.split(",").forEach(X=>{let $=((h="")=>qo[h.split(".").pop()])(X);V.innerHTML+=$?``:``}),E.appendChild(V)}else if(N&&r.excludeIframes!==!0){let V=document.createElement("iframe");V.setAttribute("allowfullscreen",""),V.setAttribute("mozallowfullscreen",""),V.setAttribute("webkitallowfullscreen",""),V.setAttribute("allow","autoplay"),V.setAttribute("data-src",N),V.style.width="100%",V.style.height="100%",V.style.maxHeight="100%",V.style.maxWidth="100%",E.appendChild(V)}}let v=E.querySelector("iframe[data-src]");v&&this.shouldPreload(d)&&!/autoplay=(1|true|yes)/gi.test(N)&&v.getAttribute("src")!==N&&v.setAttribute("src",N)}this.layout(n)}layout(n){Array.from(n.querySelectorAll(".r-fit-text")).forEach(r=>{Vo(r,{minSize:24,maxSize:.8*this.Reveal.getConfig().height,observeMutations:!1,observeWindow:!1})})}unload(n){n.style.display="none";let r=this.Reveal.getSlideBackground(n);r&&(r.style.display="none",Se(r,"iframe[src]").forEach(d=>{d.removeAttribute("src")})),Se(n,"video[data-lazy-loaded][src], audio[data-lazy-loaded][src], iframe[data-lazy-loaded][src]").forEach(d=>{d.setAttribute("data-src",d.getAttribute("src")),d.removeAttribute("src")}),Se(n,"video[data-lazy-loaded] source[src], audio source[src]").forEach(d=>{d.setAttribute("data-src",d.getAttribute("src")),d.removeAttribute("src")})}formatEmbeddedContent(){let n=(r,d,E)=>{Se(this.Reveal.getSlidesElement(),"iframe["+r+'*="'+d+'"]').forEach(N=>{let v=N.getAttribute(r);v&&v.indexOf(E)===-1&&N.setAttribute(r,v+(/\?/.test(v)?"&":"?")+E)})};n("src","youtube.com/embed/","enablejsapi=1"),n("data-src","youtube.com/embed/","enablejsapi=1"),n("src","player.vimeo.com/","api=1"),n("data-src","player.vimeo.com/","api=1")}startEmbeddedContent(n){n&&!this.Reveal.isSpeakerNotes()&&(Se(n,'img[src$=".gif"]').forEach(r=>{r.setAttribute("src",r.getAttribute("src"))}),Se(n,"video, audio").forEach(r=>{if(ut(r,".fragment")&&!ut(r,".fragment.visible"))return;let d=this.Reveal.getConfig().autoPlayMedia;if(typeof d!="boolean"&&(d=r.hasAttribute("data-autoplay")||!!ut(r,".slide-background")),d&&typeof r.play=="function")if(r.readyState>1)this.startEmbeddedMedia({target:r});else if(gn){let E=r.play();E&&typeof E.catch=="function"&&r.controls===!1&&E.catch(()=>{r.controls=!0,r.addEventListener("play",()=>{r.controls=!1})})}else r.removeEventListener("loadeddata",this.startEmbeddedMedia),r.addEventListener("loadeddata",this.startEmbeddedMedia)}),Se(n,"iframe[src]").forEach(r=>{ut(r,".fragment")&&!ut(r,".fragment.visible")||this.startEmbeddedIframe({target:r})}),Se(n,"iframe[data-src]").forEach(r=>{ut(r,".fragment")&&!ut(r,".fragment.visible")||r.getAttribute("src")!==r.getAttribute("data-src")&&(r.removeEventListener("load",this.startEmbeddedIframe),r.addEventListener("load",this.startEmbeddedIframe),r.setAttribute("src",r.getAttribute("data-src")))}))}startEmbeddedMedia(n){let r=!!ut(n.target,"html"),d=!!ut(n.target,".present");r&&d&&(n.target.currentTime=0,n.target.play()),n.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}startEmbeddedIframe(n){let r=n.target;if(r&&r.contentWindow){let d=!!ut(n.target,"html"),E=!!ut(n.target,".present");if(d&&E){let N=this.Reveal.getConfig().autoPlayMedia;typeof N!="boolean"&&(N=r.hasAttribute("data-autoplay")||!!ut(r,".slide-background")),/youtube\.com\/embed\//.test(r.getAttribute("src"))&&N?r.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(r.getAttribute("src"))&&N?r.contentWindow.postMessage('{"method":"play"}',"*"):r.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(n,r={}){r=pn({unloadIframes:!0},r),n&&n.parentNode&&(Se(n,"video, audio").forEach(d=>{d.hasAttribute("data-ignore")||typeof d.pause!="function"||(d.setAttribute("data-paused-by-reveal",""),d.pause())}),Se(n,"iframe").forEach(d=>{d.contentWindow&&d.contentWindow.postMessage("slide:stop","*"),d.removeEventListener("load",this.startEmbeddedIframe)}),Se(n,'iframe[src*="youtube.com/embed/"]').forEach(d=>{!d.hasAttribute("data-ignore")&&d.contentWindow&&typeof d.contentWindow.postMessage=="function"&&d.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}),Se(n,'iframe[src*="player.vimeo.com/"]').forEach(d=>{!d.hasAttribute("data-ignore")&&d.contentWindow&&typeof d.contentWindow.postMessage=="function"&&d.contentWindow.postMessage('{"method":"pause"}',"*")}),r.unloadIframes===!0&&Se(n,"iframe[data-src]").forEach(d=>{d.setAttribute("src","about:blank"),d.removeAttribute("src")}))}}class Wo{constructor(n){this.Reveal=n}render(){this.element=document.createElement("div"),this.element.className="slide-number",this.Reveal.getRevealElement().appendChild(this.element)}configure(n,r){let d="none";n.slideNumber&&!this.Reveal.isPrintingPDF()&&(n.showSlideNumber==="all"||n.showSlideNumber==="speaker"&&this.Reveal.isSpeakerNotes())&&(d="block"),this.element.style.display=d}update(){this.Reveal.getConfig().slideNumber&&this.element&&(this.element.innerHTML=this.getSlideNumber())}getSlideNumber(n=this.Reveal.getCurrentSlide()){let r,d=this.Reveal.getConfig(),E="h.v";if(typeof d.slideNumber=="function")r=d.slideNumber(n);else{typeof d.slideNumber=="string"&&(E=d.slideNumber),/c/.test(E)||this.Reveal.getHorizontalSlides().length!==1||(E="c");let v=n&&n.dataset.visibility==="uncounted"?0:1;switch(r=[],E){case"c":r.push(this.Reveal.getSlidePastCount(n)+v);break;case"c/t":r.push(this.Reveal.getSlidePastCount(n)+v,"/",this.Reveal.getTotalSlides());break;default:let A=this.Reveal.getIndices(n);r.push(A.h+v);let C=E==="h/v"?"/":".";this.Reveal.isVerticalSlide(n)&&r.push(C,A.v+1)}}let N="#"+this.Reveal.location.getHash(n);return this.formatNumber(r[0],r[1],r[2],N)}formatNumber(n,r,d,E="#"+this.Reveal.location.getHash()){return typeof d!="number"||isNaN(d)?` ${n} `:` ${n} ${r} ${d} `}destroy(){this.element.remove()}}class Qo{constructor(n){this.Reveal=n,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;const n=this.jumpInput.value.trim("");let r=this.Reveal.location.getIndicesFromHash(n,{oneBasedIndex:!0});return!r&&/\S+/i.test(n)&&n.length>1&&(r=this.search(n)),r&&n!==""?(this.Reveal.slide(r.h,r.v,r.f),!0):(this.Reveal.slide(this.indicesOnShow.h,this.indicesOnShow.v,this.indicesOnShow.f),!1)}jumpAfter(n){clearTimeout(this.jumpTimeout),this.jumpTimeout=setTimeout(()=>this.jump(),n)}search(n){const r=new RegExp("\\b"+n.trim()+"\\b","i"),d=this.Reveal.getSlides().find(E=>r.test(E.innerText));return d?this.Reveal.getIndices(d):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(n){n.keyCode===13?this.confirm():n.keyCode===27&&(this.cancel(),n.stopImmediatePropagation())}onInput(n){this.jumpAfter(200)}onBlur(){setTimeout(()=>this.hide(),1)}}const La=f=>{let n=f.match(/^#([0-9a-f]{3})$/i);if(n&&n[1])return n=n[1],{r:17*parseInt(n.charAt(0),16),g:17*parseInt(n.charAt(1),16),b:17*parseInt(n.charAt(2),16)};let r=f.match(/^#([0-9a-f]{6})$/i);if(r&&r[1])return r=r[1],{r:parseInt(r.slice(0,2),16),g:parseInt(r.slice(2,4),16),b:parseInt(r.slice(4,6),16)};let d=f.match(/^rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i);if(d)return{r:parseInt(d[1],10),g:parseInt(d[2],10),b:parseInt(d[3],10)};let E=f.match(/^rgba\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\,\s*([\d]+|[\d]*.[\d]+)\s*\)$/i);return E?{r:parseInt(E[1],10),g:parseInt(E[2],10),b:parseInt(E[3],10),a:parseFloat(E[4])}:null};class Ko{constructor(n){this.Reveal=n}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(n=>{let r=this.createBackground(n,this.element);Se(n,"section").forEach(d=>{this.createBackground(d,r),r.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(n,r){let d=document.createElement("div");d.className="slide-background "+n.className.replace(/present|past|future/,"");let E=document.createElement("div");return E.className="slide-background-content",d.appendChild(E),r.appendChild(d),n.slideBackgroundElement=d,n.slideBackgroundContentElement=E,this.sync(n),d}sync(n){const r=n.slideBackgroundElement,d=n.slideBackgroundContentElement,E={background:n.getAttribute("data-background"),backgroundSize:n.getAttribute("data-background-size"),backgroundImage:n.getAttribute("data-background-image"),backgroundVideo:n.getAttribute("data-background-video"),backgroundIframe:n.getAttribute("data-background-iframe"),backgroundColor:n.getAttribute("data-background-color"),backgroundGradient:n.getAttribute("data-background-gradient"),backgroundRepeat:n.getAttribute("data-background-repeat"),backgroundPosition:n.getAttribute("data-background-position"),backgroundTransition:n.getAttribute("data-background-transition"),backgroundOpacity:n.getAttribute("data-background-opacity")},N=n.hasAttribute("data-preload");n.classList.remove("has-dark-background"),n.classList.remove("has-light-background"),r.removeAttribute("data-loaded"),r.removeAttribute("data-background-hash"),r.removeAttribute("data-background-size"),r.removeAttribute("data-background-transition"),r.style.backgroundColor="",d.style.backgroundSize="",d.style.backgroundRepeat="",d.style.backgroundPosition="",d.style.backgroundImage="",d.style.opacity="",d.innerHTML="",E.background&&(/^(http|file|\/\/)/gi.test(E.background)||/\.(svg|png|jpg|jpeg|gif|bmp|webp)([?#\s]|$)/gi.test(E.background)?n.setAttribute("data-background-image",E.background):r.style.background=E.background),(E.background||E.backgroundColor||E.backgroundGradient||E.backgroundImage||E.backgroundVideo||E.backgroundIframe)&&r.setAttribute("data-background-hash",E.background+E.backgroundSize+E.backgroundImage+E.backgroundVideo+E.backgroundIframe+E.backgroundColor+E.backgroundGradient+E.backgroundRepeat+E.backgroundPosition+E.backgroundTransition+E.backgroundOpacity),E.backgroundSize&&r.setAttribute("data-background-size",E.backgroundSize),E.backgroundColor&&(r.style.backgroundColor=E.backgroundColor),E.backgroundGradient&&(r.style.backgroundImage=E.backgroundGradient),E.backgroundTransition&&r.setAttribute("data-background-transition",E.backgroundTransition),N&&r.setAttribute("data-preload",""),E.backgroundSize&&(d.style.backgroundSize=E.backgroundSize),E.backgroundRepeat&&(d.style.backgroundRepeat=E.backgroundRepeat),E.backgroundPosition&&(d.style.backgroundPosition=E.backgroundPosition),E.backgroundOpacity&&(d.style.opacity=E.backgroundOpacity);let v=E.backgroundColor;if(!v||!La(v)){let C=window.getComputedStyle(r);C&&C.backgroundColor&&(v=C.backgroundColor)}if(v){const C=La(v);C&&C.a!==0&&(typeof(A=v)=="string"&&(A=La(A)),(A?(299*A.r+587*A.g+114*A.b)/1e3:null)<128?n.classList.add("has-dark-background"):n.classList.add("has-light-background"))}var A}update(n=!1){let r=this.Reveal.getCurrentSlide(),d=this.Reveal.getIndices(),E=null,N=this.Reveal.getConfig().rtl?"future":"past",v=this.Reveal.getConfig().rtl?"past":"future";if(Array.from(this.element.childNodes).forEach((A,C)=>{A.classList.remove("past","present","future"),Cd.h?A.classList.add(v):(A.classList.add("present"),E=A),(n||C===d.h)&&Se(A,".slide-background").forEach((Z,j)=>{Z.classList.remove("past","present","future"),jd.v?Z.classList.add("future"):(Z.classList.add("present"),C===d.h&&(E=Z))})}),this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),E){this.Reveal.slideContent.startEmbeddedContent(E);let A=E.querySelector(".slide-background-content");if(A){let j=A.style.backgroundImage||"";/\.gif/i.test(j)&&(A.style.backgroundImage="",window.getComputedStyle(A).opacity,A.style.backgroundImage=j)}let C=this.previousBackground?this.previousBackground.getAttribute("data-background-hash"):null,Z=E.getAttribute("data-background-hash");Z&&Z===C&&E!==this.previousBackground&&this.element.classList.add("no-transition"),this.previousBackground=E}r&&["has-light-background","has-dark-background"].forEach(A=>{r.classList.contains(A)?this.Reveal.getRevealElement().classList.add(A):this.Reveal.getRevealElement().classList.remove(A)},this),setTimeout(()=>{this.element.classList.remove("no-transition")},1)}updateParallax(){let n=this.Reveal.getIndices();if(this.Reveal.getConfig().parallaxBackgroundImage){let r,d,E=this.Reveal.getHorizontalSlides(),N=this.Reveal.getVerticalSlides(),v=this.element.style.backgroundSize.split(" ");v.length===1?r=d=parseInt(v[0],10):(r=parseInt(v[0],10),d=parseInt(v[1],10));let A,C,Z=this.element.offsetWidth,j=E.length;A=typeof this.Reveal.getConfig().parallaxBackgroundHorizontal=="number"?this.Reveal.getConfig().parallaxBackgroundHorizontal:j>1?(r-Z)/(j-1):0,C=A*n.h*-1;let V,X,$=this.element.offsetHeight,h=N.length;V=typeof this.Reveal.getConfig().parallaxBackgroundVertical=="number"?this.Reveal.getConfig().parallaxBackgroundVertical:(d-$)/(h-1),X=h>0?V*n.v:0,this.element.style.backgroundPosition=C+"px "+-X+"px"}}destroy(){this.element.remove()}}const en=".slides section",Xt=".slides>section",pi=".slides>section.present>section",jo=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/,mi=/fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/;let gi=0;class Xo{constructor(n){this.Reveal=n}run(n,r){this.reset();let d=this.Reveal.getSlides(),E=d.indexOf(r),N=d.indexOf(n);if(n.hasAttribute("data-auto-animate")&&r.hasAttribute("data-auto-animate")&&n.getAttribute("data-auto-animate-id")===r.getAttribute("data-auto-animate-id")&&!(E>N?r:n).hasAttribute("data-auto-animate-restart")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||Fa();let v=this.getAutoAnimateOptions(r);n.dataset.autoAnimate="pending",r.dataset.autoAnimate="pending",v.slideDirection=E>N?"forward":"backward";let A=n.style.display==="none";A&&(n.style.display=this.Reveal.getConfig().display);let C=this.getAutoAnimatableElements(n,r).map(Z=>this.autoAnimateElements(Z.from,Z.to,Z.options||{},v,gi++));if(A&&(n.style.display="none"),r.dataset.autoAnimateUnmatched!=="false"&&this.Reveal.getConfig().autoAnimateUnmatched===!0){let Z=.8*v.duration,j=.2*v.duration;this.getUnmatchedAutoAnimateElements(r).forEach(V=>{let X=this.getAutoAnimateOptions(V,v),$="unmatched";X.duration===v.duration&&X.delay===v.delay||($="unmatched-"+gi++,C.push(`[data-auto-animate="running"] [data-auto-animate-target="${$}"] { transition: opacity ${X.duration}s ease ${X.delay}s; }`)),V.dataset.autoAnimateTarget=$},this),C.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${Z}s ease ${j}s; }`)}this.autoAnimateStyleSheet.innerHTML=C.join(""),requestAnimationFrame(()=>{this.autoAnimateStyleSheet&&(getComputedStyle(this.autoAnimateStyleSheet).fontWeight,r.dataset.autoAnimate="running")}),this.Reveal.dispatchEvent({type:"autoanimate",data:{fromSlide:n,toSlide:r,sheet:this.autoAnimateStyleSheet}})}}reset(){Se(this.Reveal.getRevealElement(),'[data-auto-animate]:not([data-auto-animate=""])').forEach(n=>{n.dataset.autoAnimate=""}),Se(this.Reveal.getRevealElement(),"[data-auto-animate-target]").forEach(n=>{delete n.dataset.autoAnimateTarget}),this.autoAnimateStyleSheet&&this.autoAnimateStyleSheet.parentNode&&(this.autoAnimateStyleSheet.parentNode.removeChild(this.autoAnimateStyleSheet),this.autoAnimateStyleSheet=null)}autoAnimateElements(n,r,d,E,N){n.dataset.autoAnimateTarget="",r.dataset.autoAnimateTarget=N;let v=this.getAutoAnimateOptions(r,E);d.delay!==void 0&&(v.delay=d.delay),d.duration!==void 0&&(v.duration=d.duration),d.easing!==void 0&&(v.easing=d.easing);let A=this.getAutoAnimatableProperties("from",n,d),C=this.getAutoAnimatableProperties("to",r,d);if(r.classList.contains("fragment")&&(delete C.styles.opacity,n.classList.contains("fragment"))&&(n.className.match(mi)||[""])[0]===(r.className.match(mi)||[""])[0]&&E.slideDirection==="forward"&&r.classList.add("visible","disabled"),d.translate!==!1||d.scale!==!1){let V=this.Reveal.getScale(),X={x:(A.x-C.x)/V,y:(A.y-C.y)/V,scaleX:A.width/C.width,scaleY:A.height/C.height};X.x=Math.round(1e3*X.x)/1e3,X.y=Math.round(1e3*X.y)/1e3,X.scaleX=Math.round(1e3*X.scaleX)/1e3,X.scaleX=Math.round(1e3*X.scaleX)/1e3;let $=d.translate!==!1&&(X.x!==0||X.y!==0),h=d.scale!==!1&&(X.scaleX!==0||X.scaleY!==0);if($||h){let ye=[];$&&ye.push(`translate(${X.x}px, ${X.y}px)`),h&&ye.push(`scale(${X.scaleX}, ${X.scaleY})`),A.styles.transform=ye.join(" "),A.styles["transform-origin"]="top left",C.styles.transform="none"}}for(let V in C.styles){const X=C.styles[V],$=A.styles[V];X===$?delete C.styles[V]:(X.explicitValue===!0&&(C.styles[V]=X.value),$.explicitValue===!0&&(A.styles[V]=$.value))}let Z="",j=Object.keys(C.styles);return j.length>0&&(A.styles.transition="none",C.styles.transition=`all ${v.duration}s ${v.easing} ${v.delay}s`,C.styles["transition-property"]=j.join(", "),C.styles["will-change"]=j.join(", "),Z='[data-auto-animate-target="'+N+'"] {'+Object.keys(A.styles).map(V=>V+": "+A.styles[V]+" !important;").join("")+'}[data-auto-animate="running"] [data-auto-animate-target="'+N+'"] {'+Object.keys(C.styles).map(V=>V+": "+C.styles[V]+" !important;").join("")+"}"),Z}getAutoAnimateOptions(n,r){let d={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(d=pn(d,r),n.parentNode){let E=ut(n.parentNode,"[data-auto-animate-target]");E&&(d=this.getAutoAnimateOptions(E,d))}return n.dataset.autoAnimateEasing&&(d.easing=n.dataset.autoAnimateEasing),n.dataset.autoAnimateDuration&&(d.duration=parseFloat(n.dataset.autoAnimateDuration)),n.dataset.autoAnimateDelay&&(d.delay=parseFloat(n.dataset.autoAnimateDelay)),d}getAutoAnimatableProperties(n,r,d){let E=this.Reveal.getConfig(),N={styles:[]};if(d.translate!==!1||d.scale!==!1){let A;if(typeof d.measure=="function")A=d.measure(r);else if(E.center)A=r.getBoundingClientRect();else{let C=this.Reveal.getScale();A={x:r.offsetLeft*C,y:r.offsetTop*C,width:r.offsetWidth*C,height:r.offsetHeight*C}}N.x=A.x,N.y=A.y,N.width=A.width,N.height=A.height}const v=getComputedStyle(r);return(d.styles||E.autoAnimateStyles).forEach(A=>{let C;typeof A=="string"&&(A={property:A}),A.from!==void 0&&n==="from"?C={value:A.from,explicitValue:!0}:A.to!==void 0&&n==="to"?C={value:A.to,explicitValue:!0}:(A.property==="line-height"&&(C=parseFloat(v["line-height"])/parseFloat(v["font-size"])),isNaN(C)&&(C=v[A.property])),C!==""&&(N.styles[A.property]=C)}),N}getAutoAnimatableElements(n,r){let d=(typeof this.Reveal.getConfig().autoAnimateMatcher=="function"?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,n,r),E=[];return d.filter((N,v)=>{if(E.indexOf(N.to)===-1)return E.push(N.to),!0})}getAutoAnimatePairs(n,r){let d=[];const E="h1, h2, h3, h4, h5, h6, p, li";return this.findAutoAnimateMatches(d,n,r,"[data-id]",N=>N.nodeName+":::"+N.getAttribute("data-id")),this.findAutoAnimateMatches(d,n,r,E,N=>N.nodeName+":::"+N.innerText),this.findAutoAnimateMatches(d,n,r,"img, video, iframe",N=>N.nodeName+":::"+(N.getAttribute("src")||N.getAttribute("data-src"))),this.findAutoAnimateMatches(d,n,r,"pre",N=>N.nodeName+":::"+N.innerText),d.forEach(N=>{oa(N.from,E)?N.options={scale:!1}:oa(N.from,"pre")&&(N.options={scale:!1,styles:["width","height"]},this.findAutoAnimateMatches(d,N.from,N.to,".hljs .hljs-ln-code",v=>v.textContent,{scale:!1,styles:[],measure:this.getLocalBoundingBox.bind(this)}),this.findAutoAnimateMatches(d,N.from,N.to,".hljs .hljs-ln-numbers[data-line-number]",v=>v.getAttribute("data-line-number"),{scale:!1,styles:["width"],measure:this.getLocalBoundingBox.bind(this)}))},this),d}getLocalBoundingBox(n){const r=this.Reveal.getScale();return{x:Math.round(n.offsetLeft*r*100)/100,y:Math.round(n.offsetTop*r*100)/100,width:Math.round(n.offsetWidth*r*100)/100,height:Math.round(n.offsetHeight*r*100)/100}}findAutoAnimateMatches(n,r,d,E,N,v){let A={},C={};[].slice.call(r.querySelectorAll(E)).forEach((Z,j)=>{const V=N(Z);typeof V=="string"&&V.length&&(A[V]=A[V]||[],A[V].push(Z))}),[].slice.call(d.querySelectorAll(E)).forEach((Z,j)=>{const V=N(Z);let X;if(C[V]=C[V]||[],C[V].push(Z),A[V]){const $=C[V].length-1,h=A[V].length-1;A[V][$]?(X=A[V][$],A[V][$]=null):A[V][h]&&(X=A[V][h],A[V][h]=null)}X&&n.push({from:X,to:Z,options:v})})}getUnmatchedAutoAnimateElements(n){return[].slice.call(n.children).reduce((r,d)=>{const E=d.querySelector("[data-auto-animate-target]");return d.hasAttribute("data-auto-animate-target")||E||r.push(d),d.querySelector("[data-auto-animate-target]")&&(r=r.concat(this.getUnmatchedAutoAnimateElements(d))),r},[])}}class Zo{constructor(n){this.Reveal=n}configure(n,r){n.fragments===!1?this.disable():r.fragments===!1&&this.enable()}disable(){Se(this.Reveal.getSlidesElement(),".fragment").forEach(n=>{n.classList.add("visible"),n.classList.remove("current-fragment")})}enable(){Se(this.Reveal.getSlidesElement(),".fragment").forEach(n=>{n.classList.remove("visible"),n.classList.remove("current-fragment")})}availableRoutes(){let n=this.Reveal.getCurrentSlide();if(n&&this.Reveal.getConfig().fragments){let r=n.querySelectorAll(".fragment:not(.disabled)"),d=n.querySelectorAll(".fragment:not(.disabled):not(.visible)");return{prev:r.length-d.length>0,next:!!d.length}}return{prev:!1,next:!1}}sort(n,r=!1){n=Array.from(n);let d=[],E=[],N=[];n.forEach(A=>{if(A.hasAttribute("data-fragment-index")){let C=parseInt(A.getAttribute("data-fragment-index"),10);d[C]||(d[C]=[]),d[C].push(A)}else E.push([A])}),d=d.concat(E);let v=0;return d.forEach(A=>{A.forEach(C=>{N.push(C),C.setAttribute("data-fragment-index",v)}),v++}),r===!0?d:N}sortAll(){this.Reveal.getHorizontalSlides().forEach(n=>{let r=Se(n,"section");r.forEach((d,E)=>{this.sort(d.querySelectorAll(".fragment"))},this),r.length===0&&this.sort(n.querySelectorAll(".fragment"))})}update(n,r){let d={shown:[],hidden:[]},E=this.Reveal.getCurrentSlide();if(E&&this.Reveal.getConfig().fragments&&(r=r||this.sort(E.querySelectorAll(".fragment"))).length){let N=0;if(typeof n!="number"){let v=this.sort(E.querySelectorAll(".fragment.visible")).pop();v&&(n=parseInt(v.getAttribute("data-fragment-index")||0,10))}Array.from(r).forEach((v,A)=>{if(v.hasAttribute("data-fragment-index")&&(A=parseInt(v.getAttribute("data-fragment-index"),10)),N=Math.max(N,A),A<=n){let C=v.classList.contains("visible");v.classList.add("visible"),v.classList.remove("current-fragment"),A===n&&(this.Reveal.announceStatus(this.Reveal.getStatusText(v)),v.classList.add("current-fragment"),this.Reveal.slideContent.startEmbeddedContent(v)),C||(d.shown.push(v),this.Reveal.dispatchEvent({target:v,type:"visible",bubbles:!1}))}else{let C=v.classList.contains("visible");v.classList.remove("visible"),v.classList.remove("current-fragment"),C&&(this.Reveal.slideContent.stopEmbeddedContent(v),d.hidden.push(v),this.Reveal.dispatchEvent({target:v,type:"hidden",bubbles:!1}))}}),n=typeof n=="number"?n:-1,n=Math.max(Math.min(n,N),-1),E.setAttribute("data-fragment",n)}return d}sync(n=this.Reveal.getCurrentSlide()){return this.sort(n.querySelectorAll(".fragment"))}goto(n,r=0){let d=this.Reveal.getCurrentSlide();if(d&&this.Reveal.getConfig().fragments){let E=this.sort(d.querySelectorAll(".fragment:not(.disabled)"));if(E.length){if(typeof n!="number"){let v=this.sort(d.querySelectorAll(".fragment:not(.disabled).visible")).pop();n=v?parseInt(v.getAttribute("data-fragment-index")||0,10):-1}n+=r;let N=this.update(n,E);return N.hidden.length&&this.Reveal.dispatchEvent({type:"fragmenthidden",data:{fragment:N.hidden[0],fragments:N.hidden}}),N.shown.length&&this.Reveal.dispatchEvent({type:"fragmentshown",data:{fragment:N.shown[0],fragments:N.shown}}),this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!(!N.shown.length&&!N.hidden.length)}}return!1}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class Jo{constructor(n){this.Reveal=n,this.active=!1,this.onSlideClicked=this.onSlideClicked.bind(this)}activate(){if(this.Reveal.getConfig().overview&&!this.isActive()){this.active=!0,this.Reveal.getRevealElement().classList.add("overview"),this.Reveal.cancelAutoSlide(),this.Reveal.getSlidesElement().appendChild(this.Reveal.getBackgroundsElement()),Se(this.Reveal.getRevealElement(),en).forEach(E=>{E.classList.contains("stack")||E.addEventListener("click",this.onSlideClicked,!0)});const n=70,r=this.Reveal.getComputedSlideSize();this.overviewSlideWidth=r.width+n,this.overviewSlideHeight=r.height+n,this.Reveal.getConfig().rtl&&(this.overviewSlideWidth=-this.overviewSlideWidth),this.Reveal.updateSlidesVisibility(),this.layout(),this.update(),this.Reveal.layout();const d=this.Reveal.getIndices();this.Reveal.dispatchEvent({type:"overviewshown",data:{indexh:d.h,indexv:d.v,currentSlide:this.Reveal.getCurrentSlide()}})}}layout(){this.Reveal.getHorizontalSlides().forEach((n,r)=>{n.setAttribute("data-index-h",r),Yt(n,"translate3d("+r*this.overviewSlideWidth+"px, 0, 0)"),n.classList.contains("stack")&&Se(n,"section").forEach((d,E)=>{d.setAttribute("data-index-h",r),d.setAttribute("data-index-v",E),Yt(d,"translate3d(0, "+E*this.overviewSlideHeight+"px, 0)")})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((n,r)=>{Yt(n,"translate3d("+r*this.overviewSlideWidth+"px, 0, 0)"),Se(n,".slide-background").forEach((d,E)=>{Yt(d,"translate3d(0, "+E*this.overviewSlideHeight+"px, 0)")})})}update(){const n=Math.min(window.innerWidth,window.innerHeight),r=Math.max(n/5,150)/n,d=this.Reveal.getIndices();this.Reveal.transformSlides({overview:["scale("+r+")","translateX("+-d.h*this.overviewSlideWidth+"px)","translateY("+-d.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()),Se(this.Reveal.getRevealElement(),en).forEach(r=>{Yt(r,""),r.removeEventListener("click",this.onSlideClicked,!0)}),Se(this.Reveal.getBackgroundsElement(),".slide-background").forEach(r=>{Yt(r,"")}),this.Reveal.transformSlides({overview:""});const n=this.Reveal.getIndices();this.Reveal.slide(n.h,n.v),this.Reveal.layout(),this.Reveal.cueAutoSlide(),this.Reveal.dispatchEvent({type:"overviewhidden",data:{indexh:n.h,indexv:n.v,currentSlide:this.Reveal.getCurrentSlide()}})}}toggle(n){typeof n=="boolean"?n?this.activate():this.deactivate():this.isActive()?this.deactivate():this.activate()}isActive(){return this.active}onSlideClicked(n){if(this.isActive()){n.preventDefault();let r=n.target;for(;r&&!r.nodeName.match(/section/gi);)r=r.parentNode;if(r&&!r.classList.contains("disabled")&&(this.deactivate(),r.nodeName.match(/section/gi))){let d=parseInt(r.getAttribute("data-index-h"),10),E=parseInt(r.getAttribute("data-index-v"),10);this.Reveal.slide(d,E)}}}}class el{constructor(n){this.Reveal=n,this.shortcuts={},this.bindings={},this.onDocumentKeyDown=this.onDocumentKeyDown.bind(this),this.onDocumentKeyPress=this.onDocumentKeyPress.bind(this)}configure(n,r){n.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),document.addEventListener("keypress",this.onDocumentKeyPress,!1)}unbind(){document.removeEventListener("keydown",this.onDocumentKeyDown,!1),document.removeEventListener("keypress",this.onDocumentKeyPress,!1)}addKeyBinding(n,r){typeof n=="object"&&n.keyCode?this.bindings[n.keyCode]={callback:r,key:n.key,description:n.description}:this.bindings[n]={callback:r,key:null,description:null}}removeKeyBinding(n){delete this.bindings[n]}triggerKey(n){this.onDocumentKeyDown({keyCode:n})}registerKeyboardShortcut(n,r){this.shortcuts[n]=r}getShortcuts(){return this.shortcuts}getBindings(){return this.bindings}onDocumentKeyPress(n){n.shiftKey&&n.charCode===63&&this.Reveal.toggleHelp()}onDocumentKeyDown(n){let r=this.Reveal.getConfig();if(typeof r.keyboardCondition=="function"&&r.keyboardCondition(n)===!1||r.keyboardCondition==="focused"&&!this.Reveal.isFocused())return!0;let d=n.keyCode,E=!this.Reveal.isAutoSliding();this.Reveal.onUserInput(n);let N=document.activeElement&&document.activeElement.isContentEditable===!0,v=document.activeElement&&document.activeElement.tagName&&/input|textarea/i.test(document.activeElement.tagName),A=document.activeElement&&document.activeElement.className&&/speaker-notes/i.test(document.activeElement.className),C=!([32,37,38,39,40,78,80].indexOf(n.keyCode)!==-1&&n.shiftKey||n.altKey)&&(n.shiftKey||n.altKey||n.ctrlKey||n.metaKey);if(N||v||A||C)return;let Z,j=[66,86,190,191];if(typeof r.keyboard=="object")for(Z in r.keyboard)r.keyboard[Z]==="togglePause"&&j.push(parseInt(Z,10));if(this.Reveal.isPaused()&&j.indexOf(d)===-1)return!1;let V=r.navigationMode==="linear"||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),X=!1;if(typeof r.keyboard=="object"){for(Z in r.keyboard)if(parseInt(Z,10)===d){let $=r.keyboard[Z];typeof $=="function"?$.apply(null,[n]):typeof $=="string"&&typeof this.Reveal[$]=="function"&&this.Reveal[$].call(),X=!0}}if(X===!1){for(Z in this.bindings)if(parseInt(Z,10)===d){let $=this.bindings[Z].callback;typeof $=="function"?$.apply(null,[n]):typeof $=="string"&&typeof this.Reveal[$]=="function"&&this.Reveal[$].call(),X=!0}}X===!1&&(X=!0,d===80||d===33?this.Reveal.prev({skipFragments:n.altKey}):d===78||d===34?this.Reveal.next({skipFragments:n.altKey}):d===72||d===37?n.shiftKey?this.Reveal.slide(0):!this.Reveal.overview.isActive()&&V?this.Reveal.prev({skipFragments:n.altKey}):this.Reveal.left({skipFragments:n.altKey}):d===76||d===39?n.shiftKey?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):!this.Reveal.overview.isActive()&&V?this.Reveal.next({skipFragments:n.altKey}):this.Reveal.right({skipFragments:n.altKey}):d===75||d===38?n.shiftKey?this.Reveal.slide(void 0,0):!this.Reveal.overview.isActive()&&V?this.Reveal.prev({skipFragments:n.altKey}):this.Reveal.up({skipFragments:n.altKey}):d===74||d===40?n.shiftKey?this.Reveal.slide(void 0,Number.MAX_VALUE):!this.Reveal.overview.isActive()&&V?this.Reveal.next({skipFragments:n.altKey}):this.Reveal.down({skipFragments:n.altKey}):d===36?this.Reveal.slide(0):d===35?this.Reveal.slide(this.Reveal.getHorizontalSlides().length-1):d===32?(this.Reveal.overview.isActive()&&this.Reveal.overview.deactivate(),n.shiftKey?this.Reveal.prev({skipFragments:n.altKey}):this.Reveal.next({skipFragments:n.altKey})):d===58||d===59||d===66||d===86||d===190||d===191?this.Reveal.togglePause():d===70?($=>{let h=($=$||document.documentElement).requestFullscreen||$.webkitRequestFullscreen||$.webkitRequestFullScreen||$.mozRequestFullScreen||$.msRequestFullscreen;h&&h.apply($)})(r.embedded?this.Reveal.getViewportElement():document.documentElement):d===65?r.autoSlideStoppable&&this.Reveal.toggleAutoSlide(E):d===71?r.jumpToSlide&&this.Reveal.toggleJumpToSlide():X=!1),X?n.preventDefault&&n.preventDefault():d!==27&&d!==79||(this.Reveal.closeOverlay()===!1&&this.Reveal.overview.toggle(),n.preventDefault&&n.preventDefault()),this.Reveal.cueAutoSlide()}}class tl{constructor(n){var r,d,E;E=1e3,(d="MAX_REPLACE_STATE_FREQUENCY")in(r=this)?Object.defineProperty(r,d,{value:E,enumerable:!0,configurable:!0,writable:!0}):r[d]=E,this.Reveal=n,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(n=window.location.hash,r={}){let d=n.replace(/^#\/?/,""),E=d.split("/");if(/^[0-9]*$/.test(E[0])||!d.length){const N=this.Reveal.getConfig();let v,A=N.hashOneBasedIndex||r.oneBasedIndex?1:0,C=parseInt(E[0],10)-A||0,Z=parseInt(E[1],10)-A||0;return N.fragmentInURL&&(v=parseInt(E[2],10),isNaN(v)&&(v=void 0)),{h:C,v:Z,f:v}}{let N,v;/\/[-\d]+$/g.test(d)&&(v=parseInt(d.split("/").pop(),10),v=isNaN(v)?void 0:v,d=d.split("/").shift());try{N=document.getElementById(decodeURIComponent(d)).closest(".slides>section, .slides>section>section")}catch{}if(N)return{...this.Reveal.getIndices(N),f:v}}return null}readURL(){const n=this.Reveal.getIndices(),r=this.getIndicesFromHash();r?r.h===n.h&&r.v===n.v&&r.f===void 0||this.Reveal.slide(r.h,r.v,r.f):this.Reveal.slide(n.h||0,n.v||0)}writeURL(n){let r=this.Reveal.getConfig(),d=this.Reveal.getCurrentSlide();if(clearTimeout(this.writeURLTimeout),typeof n=="number")this.writeURLTimeout=setTimeout(this.writeURL,n);else if(d){let E=this.getHash();r.history?window.location.hash=E:r.hash&&(E==="/"?this.debouncedReplaceState(window.location.pathname+window.location.search):this.debouncedReplaceState("#"+E))}}replaceState(n){window.history.replaceState(null,null,n),this.replaceStateTimestamp=Date.now()}debouncedReplaceState(n){clearTimeout(this.replaceStateTimeout),Date.now()-this.replaceStateTimestamp>this.MAX_REPLACE_STATE_FREQUENCY?this.replaceState(n):this.replaceStateTimeout=setTimeout(()=>this.replaceState(n),this.MAX_REPLACE_STATE_FREQUENCY)}getHash(n){let r="/",d=n||this.Reveal.getCurrentSlide(),E=d?d.getAttribute("id"):null;E&&(E=encodeURIComponent(E));let N=this.Reveal.getIndices(n);if(this.Reveal.getConfig().fragmentInURL||(N.f=void 0),typeof E=="string"&&E.length)r="/"+E,N.f>=0&&(r+="/"+N.f);else{let v=this.Reveal.getConfig().hashOneBasedIndex?1:0;(N.h>0||N.v>0||N.f>=0)&&(r+=N.h+v),(N.v>0||N.f>=0)&&(r+="/"+(N.v+v)),N.f>=0&&(r+="/"+N.f)}return r}onWindowHashChange(n){this.readURL()}}class nl{constructor(n){this.Reveal=n,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)}render(){const n=this.Reveal.getConfig().rtl,r=this.Reveal.getRevealElement();this.element=document.createElement("aside"),this.element.className="controls",this.element.innerHTML=` `,this.Reveal.getRevealElement().appendChild(this.element),this.controlsLeft=Se(r,".navigate-left"),this.controlsRight=Se(r,".navigate-right"),this.controlsUp=Se(r,".navigate-up"),this.controlsDown=Se(r,".navigate-down"),this.controlsPrev=Se(r,".navigate-prev"),this.controlsNext=Se(r,".navigate-next"),this.controlsRightArrow=this.element.querySelector(".navigate-right"),this.controlsLeftArrow=this.element.querySelector(".navigate-left"),this.controlsDownArrow=this.element.querySelector(".navigate-down")}configure(n,r){this.element.style.display=n.controls?"block":"none",this.element.setAttribute("data-controls-layout",n.controlsLayout),this.element.setAttribute("data-controls-back-arrows",n.controlsBackArrows)}bind(){let n=["touchstart","click"];Ni&&(n=["touchstart"]),n.forEach(r=>{this.controlsLeft.forEach(d=>d.addEventListener(r,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(d=>d.addEventListener(r,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(d=>d.addEventListener(r,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(d=>d.addEventListener(r,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(d=>d.addEventListener(r,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(d=>d.addEventListener(r,this.onNavigateNextClicked,!1))})}unbind(){["touchstart","click"].forEach(n=>{this.controlsLeft.forEach(r=>r.removeEventListener(n,this.onNavigateLeftClicked,!1)),this.controlsRight.forEach(r=>r.removeEventListener(n,this.onNavigateRightClicked,!1)),this.controlsUp.forEach(r=>r.removeEventListener(n,this.onNavigateUpClicked,!1)),this.controlsDown.forEach(r=>r.removeEventListener(n,this.onNavigateDownClicked,!1)),this.controlsPrev.forEach(r=>r.removeEventListener(n,this.onNavigatePrevClicked,!1)),this.controlsNext.forEach(r=>r.removeEventListener(n,this.onNavigateNextClicked,!1))})}update(){let n=this.Reveal.availableRoutes();[...this.controlsLeft,...this.controlsRight,...this.controlsUp,...this.controlsDown,...this.controlsPrev,...this.controlsNext].forEach(d=>{d.classList.remove("enabled","fragmented"),d.setAttribute("disabled","disabled")}),n.left&&this.controlsLeft.forEach(d=>{d.classList.add("enabled"),d.removeAttribute("disabled")}),n.right&&this.controlsRight.forEach(d=>{d.classList.add("enabled"),d.removeAttribute("disabled")}),n.up&&this.controlsUp.forEach(d=>{d.classList.add("enabled"),d.removeAttribute("disabled")}),n.down&&this.controlsDown.forEach(d=>{d.classList.add("enabled"),d.removeAttribute("disabled")}),(n.left||n.up)&&this.controlsPrev.forEach(d=>{d.classList.add("enabled"),d.removeAttribute("disabled")}),(n.right||n.down)&&this.controlsNext.forEach(d=>{d.classList.add("enabled"),d.removeAttribute("disabled")});let r=this.Reveal.getCurrentSlide();if(r){let d=this.Reveal.fragments.availableRoutes();d.prev&&this.controlsPrev.forEach(E=>{E.classList.add("fragmented","enabled"),E.removeAttribute("disabled")}),d.next&&this.controlsNext.forEach(E=>{E.classList.add("fragmented","enabled"),E.removeAttribute("disabled")}),this.Reveal.isVerticalSlide(r)?(d.prev&&this.controlsUp.forEach(E=>{E.classList.add("fragmented","enabled"),E.removeAttribute("disabled")}),d.next&&this.controlsDown.forEach(E=>{E.classList.add("fragmented","enabled"),E.removeAttribute("disabled")})):(d.prev&&this.controlsLeft.forEach(E=>{E.classList.add("fragmented","enabled"),E.removeAttribute("disabled")}),d.next&&this.controlsRight.forEach(E=>{E.classList.add("fragmented","enabled"),E.removeAttribute("disabled")}))}if(this.Reveal.getConfig().controlsTutorial){let d=this.Reveal.getIndices();!this.Reveal.hasNavigatedVertically()&&n.down?this.controlsDownArrow.classList.add("highlight"):(this.controlsDownArrow.classList.remove("highlight"),this.Reveal.getConfig().rtl?!this.Reveal.hasNavigatedHorizontally()&&n.left&&d.v===0?this.controlsLeftArrow.classList.add("highlight"):this.controlsLeftArrow.classList.remove("highlight"):!this.Reveal.hasNavigatedHorizontally()&&n.right&&d.v===0?this.controlsRightArrow.classList.add("highlight"):this.controlsRightArrow.classList.remove("highlight"))}}destroy(){this.unbind(),this.element.remove()}onNavigateLeftClicked(n){n.preventDefault(),this.Reveal.onUserInput(),this.Reveal.getConfig().navigationMode==="linear"?this.Reveal.prev():this.Reveal.left()}onNavigateRightClicked(n){n.preventDefault(),this.Reveal.onUserInput(),this.Reveal.getConfig().navigationMode==="linear"?this.Reveal.next():this.Reveal.right()}onNavigateUpClicked(n){n.preventDefault(),this.Reveal.onUserInput(),this.Reveal.up()}onNavigateDownClicked(n){n.preventDefault(),this.Reveal.onUserInput(),this.Reveal.down()}onNavigatePrevClicked(n){n.preventDefault(),this.Reveal.onUserInput(),this.Reveal.prev()}onNavigateNextClicked(n){n.preventDefault(),this.Reveal.onUserInput(),this.Reveal.next()}}class al{constructor(n){this.Reveal=n,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(n,r){this.element.style.display=n.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 n=this.Reveal.getProgress();this.Reveal.getTotalSlides()<2&&(n=0),this.bar.style.transform="scaleX("+n+")"}}getMaxWidth(){return this.Reveal.getRevealElement().offsetWidth}onProgressClicked(n){this.Reveal.onUserInput(n),n.preventDefault();let r=this.Reveal.getSlides(),d=r.length,E=Math.floor(n.clientX/this.getMaxWidth()*d);this.Reveal.getConfig().rtl&&(E=d-E);let N=this.Reveal.getIndices(r[E]);this.Reveal.slide(N.h,N.v)}destroy(){this.element.remove()}}class il{constructor(n){this.Reveal=n,this.lastMouseWheelStep=0,this.cursorHidden=!1,this.cursorInactiveTimeout=0,this.onDocumentCursorActive=this.onDocumentCursorActive.bind(this),this.onDocumentMouseScroll=this.onDocumentMouseScroll.bind(this)}configure(n,r){n.mouseWheel?(document.addEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.addEventListener("mousewheel",this.onDocumentMouseScroll,!1)):(document.removeEventListener("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.removeEventListener("mousewheel",this.onDocumentMouseScroll,!1)),n.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("DOMMouseScroll",this.onDocumentMouseScroll,!1),document.removeEventListener("mousewheel",this.onDocumentMouseScroll,!1),document.removeEventListener("mousemove",this.onDocumentCursorActive,!1),document.removeEventListener("mousedown",this.onDocumentCursorActive,!1)}onDocumentCursorActive(n){this.showCursor(),clearTimeout(this.cursorInactiveTimeout),this.cursorInactiveTimeout=setTimeout(this.hideCursor.bind(this),this.Reveal.getConfig().hideCursorTime)}onDocumentMouseScroll(n){if(Date.now()-this.lastMouseWheelStep>1e3){this.lastMouseWheelStep=Date.now();let r=n.detail||-n.wheelDelta;r>0?this.Reveal.next():r<0&&this.Reveal.prev()}}}const Ei=(f,n)=>{const r=document.createElement("script");r.type="text/javascript",r.async=!1,r.defer=!1,r.src=f,typeof n=="function"&&(r.onload=r.onreadystatechange=E=>{(E.type==="load"||/loaded|complete/.test(r.readyState))&&(r.onload=r.onreadystatechange=r.onerror=null,n())},r.onerror=E=>{r.onload=r.onreadystatechange=r.onerror=null,n(new Error("Failed loading script: "+r.src+` `+E))});const d=document.querySelector("head");d.insertBefore(r,d.lastChild)};class rl{constructor(n){this.Reveal=n,this.state="idle",this.registeredPlugins={},this.asyncDependencies=[]}load(n,r){return this.state="loading",n.forEach(this.registerPlugin.bind(this)),new Promise(d=>{let E=[],N=0;if(r.forEach(v=>{v.condition&&!v.condition()||(v.async?this.asyncDependencies.push(v):E.push(v))}),E.length){N=E.length;const v=A=>{A&&typeof A.callback=="function"&&A.callback(),--N==0&&this.initPlugins().then(d)};E.forEach(A=>{typeof A.id=="string"?(this.registerPlugin(A),v(A)):typeof A.src=="string"?Ei(A.src,()=>v(A)):(console.warn("Unrecognized plugin format",A),v())})}else this.initPlugins().then(d)})}initPlugins(){return new Promise(n=>{let r=Object.values(this.registeredPlugins),d=r.length;if(d===0)this.loadAsync().then(n);else{let E,N=()=>{--d==0?this.loadAsync().then(n):E()},v=0;E=()=>{let A=r[v++];if(typeof A.init=="function"){let C=A.init(this.Reveal);C&&typeof C.then=="function"?C.then(N):N()}else N()},E()}})}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach(n=>{Ei(n.src,n.callback)}),Promise.resolve()}registerPlugin(n){arguments.length===2&&typeof arguments[0]=="string"?(n=arguments[1]).id=arguments[0]:typeof n=="function"&&(n=n());let r=n.id;typeof r!="string"?console.warn("Unrecognized plugin format; can't find plugin.id",n):this.registeredPlugins[r]===void 0?(this.registeredPlugins[r]=n,this.state==="loaded"&&typeof n.init=="function"&&n.init(this.Reveal)):console.warn('reveal.js: "'+r+'" plugin has already been registered')}hasPlugin(n){return!!this.registeredPlugins[n]}getPlugin(n){return this.registeredPlugins[n]}getRegisteredPlugins(){return this.registeredPlugins}destroy(){Object.values(this.registeredPlugins).forEach(n=>{typeof n.destroy=="function"&&n.destroy()}),this.registeredPlugins={},this.asyncDependencies=[]}}class sl{constructor(n){this.Reveal=n}async setupPDF(){const n=this.Reveal.getConfig(),r=Se(this.Reveal.getRevealElement(),en),d=n.slideNumber&&/all|print/i.test(n.showSlideNumber),E=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),N=Math.floor(E.width*(1+n.margin)),v=Math.floor(E.height*(1+n.margin)),A=E.width,C=E.height;await new Promise(requestAnimationFrame),Fa("@page{size:"+N+"px "+v+"px; margin: 0px;}"),Fa(".reveal section>img, .reveal section>video, .reveal section>iframe{max-width: "+A+"px; max-height:"+C+"px}"),document.documentElement.classList.add("print-pdf"),document.body.style.width=N+"px",document.body.style.height=v+"px";const Z=document.querySelector(".reveal-viewport");let j;if(Z){const ye=window.getComputedStyle(Z);ye&&ye.background&&(j=ye.background)}await new Promise(requestAnimationFrame),this.Reveal.layoutSlideContents(A,C),await new Promise(requestAnimationFrame);const V=r.map(ye=>ye.scrollHeight),X=[],$=r[0].parentNode;let h=1;r.forEach(function(ye,Me){if(ye.classList.contains("stack")===!1){let tt=(N-A)/2,je=(v-C)/2;const Qe=V[Me];let we=Math.max(Math.ceil(Qe/v),1);we=Math.min(we,n.pdfMaxPagesPerSlide),(we===1&&n.center||ye.classList.contains("center"))&&(je=Math.max((v-Qe)/2,0));const ke=document.createElement("div");if(X.push(ke),ke.className="pdf-page",ke.style.height=(v+n.pdfPageHeightOffset)*we+"px",j&&(ke.style.background=j),ke.appendChild(ye),ye.style.left=tt+"px",ye.style.top=je+"px",ye.style.width=A+"px",this.Reveal.slideContent.layout(ye),ye.slideBackgroundElement&&ke.insertBefore(ye.slideBackgroundElement,ye),n.showNotes){const Re=this.Reveal.getSlideNotes(ye);if(Re){const Pe=typeof n.showNotes=="string"?n.showNotes:"inline",me=document.createElement("div");me.classList.add("speaker-notes"),me.classList.add("speaker-notes-pdf"),me.setAttribute("data-layout",Pe),me.innerHTML=Re,Pe==="separate-page"?X.push(me):(me.style.left=8+"px",me.style.bottom=8+"px",me.style.width=N-2*8+"px",ke.appendChild(me))}}if(d){const Re=document.createElement("div");Re.classList.add("slide-number"),Re.classList.add("slide-number-pdf"),Re.innerHTML=h++,ke.appendChild(Re)}if(n.pdfSeparateFragments){const Re=this.Reveal.fragments.sort(ke.querySelectorAll(".fragment"),!0);let De;Re.forEach(function(Pe,me){De&&De.forEach(function(Be){Be.classList.remove("current-fragment")}),Pe.forEach(function(Be){Be.classList.add("visible","current-fragment")},this);const Ne=ke.cloneNode(!0);if(d){const Be=me+1;Ne.querySelector(".slide-number-pdf").innerHTML+="."+Be}X.push(Ne),De=Pe},this),Re.forEach(function(Pe){Pe.forEach(function(me){me.classList.remove("visible","current-fragment")})})}else Se(ke,".fragment:not(.fade-out)").forEach(function(Re){Re.classList.add("visible")})}},this),await new Promise(requestAnimationFrame),X.forEach(ye=>$.appendChild(ye)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.dispatchEvent({type:"pdf-ready"})}isPrintingPDF(){return/print-pdf/gi.test(window.location.search)}}class ol{constructor(n){this.Reveal=n,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 n=this.Reveal.getRevealElement();"onpointerdown"in window?(n.addEventListener("pointerdown",this.onPointerDown,!1),n.addEventListener("pointermove",this.onPointerMove,!1),n.addEventListener("pointerup",this.onPointerUp,!1)):window.navigator.msPointerEnabled?(n.addEventListener("MSPointerDown",this.onPointerDown,!1),n.addEventListener("MSPointerMove",this.onPointerMove,!1),n.addEventListener("MSPointerUp",this.onPointerUp,!1)):(n.addEventListener("touchstart",this.onTouchStart,!1),n.addEventListener("touchmove",this.onTouchMove,!1),n.addEventListener("touchend",this.onTouchEnd,!1))}unbind(){let n=this.Reveal.getRevealElement();n.removeEventListener("pointerdown",this.onPointerDown,!1),n.removeEventListener("pointermove",this.onPointerMove,!1),n.removeEventListener("pointerup",this.onPointerUp,!1),n.removeEventListener("MSPointerDown",this.onPointerDown,!1),n.removeEventListener("MSPointerMove",this.onPointerMove,!1),n.removeEventListener("MSPointerUp",this.onPointerUp,!1),n.removeEventListener("touchstart",this.onTouchStart,!1),n.removeEventListener("touchmove",this.onTouchMove,!1),n.removeEventListener("touchend",this.onTouchEnd,!1)}isSwipePrevented(n){if(oa(n,"video, audio"))return!0;for(;n&&typeof n.hasAttribute=="function";){if(n.hasAttribute("data-prevent-swipe"))return!0;n=n.parentNode}return!1}onTouchStart(n){if(this.isSwipePrevented(n.target))return!0;this.touchStartX=n.touches[0].clientX,this.touchStartY=n.touches[0].clientY,this.touchStartCount=n.touches.length}onTouchMove(n){if(this.isSwipePrevented(n.target))return!0;let r=this.Reveal.getConfig();if(this.touchCaptured)Ni&&n.preventDefault();else{this.Reveal.onUserInput(n);let d=n.touches[0].clientX,E=n.touches[0].clientY;if(n.touches.length===1&&this.touchStartCount!==2){let N=this.Reveal.availableRoutes({includeFragments:!0}),v=d-this.touchStartX,A=E-this.touchStartY;v>40&&Math.abs(v)>Math.abs(A)?(this.touchCaptured=!0,r.navigationMode==="linear"?r.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):v<-40&&Math.abs(v)>Math.abs(A)?(this.touchCaptured=!0,r.navigationMode==="linear"?r.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):A>40&&N.up?(this.touchCaptured=!0,r.navigationMode==="linear"?this.Reveal.prev():this.Reveal.up()):A<-40&&N.down&&(this.touchCaptured=!0,r.navigationMode==="linear"?this.Reveal.next():this.Reveal.down()),r.embedded?(this.touchCaptured||this.Reveal.isVerticalSlide())&&n.preventDefault():n.preventDefault()}}}onTouchEnd(n){this.touchCaptured=!1}onPointerDown(n){n.pointerType!==n.MSPOINTER_TYPE_TOUCH&&n.pointerType!=="touch"||(n.touches=[{clientX:n.clientX,clientY:n.clientY}],this.onTouchStart(n))}onPointerMove(n){n.pointerType!==n.MSPOINTER_TYPE_TOUCH&&n.pointerType!=="touch"||(n.touches=[{clientX:n.clientX,clientY:n.clientY}],this.onTouchMove(n))}onPointerUp(n){n.pointerType!==n.MSPOINTER_TYPE_TOUCH&&n.pointerType!=="touch"||(n.touches=[{clientX:n.clientX,clientY:n.clientY}],this.onTouchEnd(n))}}const ka="focus",Si="blur";class ll{constructor(n){this.Reveal=n,this.onRevealPointerDown=this.onRevealPointerDown.bind(this),this.onDocumentPointerDown=this.onDocumentPointerDown.bind(this)}configure(n,r){n.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!==ka&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=ka}blur(){this.state!==Si&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=Si}isFocused(){return this.state===ka}destroy(){this.Reveal.getRevealElement().classList.remove("focused")}onRevealPointerDown(n){this.focus()}onDocumentPointerDown(n){let r=ut(n.target,".reveal");r&&r===this.Reveal.getRevealElement()||this.blur()}}class cl{constructor(n){this.Reveal=n}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(n,r){n.showNotes&&this.element.setAttribute("data-layout",typeof n.showNotes=="string"?n.showNotes:"inline")}update(){this.Reveal.getConfig().showNotes&&this.element&&this.Reveal.getCurrentSlide()&&!this.Reveal.print.isPrintingPDF()&&(this.element.innerHTML=this.getSlideNotes()||'No notes on this slide.')}updateVisibility(){this.Reveal.getConfig().showNotes&&this.hasNotes()&&!this.Reveal.print.isPrintingPDF()?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(n=this.Reveal.getCurrentSlide()){if(n.hasAttribute("data-notes"))return n.getAttribute("data-notes");let r=n.querySelectorAll("aside.notes");return r?Array.from(r).map(d=>d.innerHTML).join(` `):null}destroy(){this.element.remove()}}class dl{constructor(n,r){this.diameter=100,this.diameter2=this.diameter/2,this.thickness=6,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=n,this.progressCheck=r,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(n){const r=this.playing;this.playing=n,!r&&this.playing?this.animate():this.render()}animate(){const n=this.progress;this.progress=this.progressCheck(),n>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&requestAnimationFrame(this.animate.bind(this))}render(){let n=this.playing?this.progress:0,r=this.diameter2-this.thickness,d=this.diameter2,E=this.diameter2,N=28;this.progressOffset+=.1*(1-this.progressOffset);const v=-Math.PI/2+n*(2*Math.PI),A=-Math.PI/2+this.progressOffset*(2*Math.PI);this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(d,E,r+4,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(d,E,r,0,2*Math.PI,!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(d,E,r,A,v,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(d-14,E-14),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,10,N),this.context.fillRect(18,0,10,N)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(24,14),this.context.lineTo(0,N),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()}on(n,r){this.canvas.addEventListener(n,r,!1)}off(n,r){this.canvas.removeEventListener(n,r,!1)}destroy(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)}}var _l={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,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,mouseWheel:!1,previewLinks:!1,postMessage:!0,postMessageEvents:!1,focusBodyOnPageVisibilityChange:!0,transition:"slide",transitionSpeed:"default",backgroundTransition:"fade",parallaxBackgroundImage:"",parallaxBackgroundSize:"",parallaxBackgroundRepeat:"",parallaxBackgroundPosition:"",parallaxBackgroundHorizontal:null,parallaxBackgroundVertical:null,pdfMaxPagesPerSlide:Number.POSITIVE_INFINITY,pdfSeparateFragments:!0,pdfPageHeightOffset:-1,viewDistance:3,mobileViewDistance:2,display:"block",hideInactiveCursor:!0,hideCursorTime:5e3,sortFragmentsOnSync:!0,dependencies:[],plugins:[]};const Oi="4.6.0";function Ai(f,n){arguments.length<2&&(n=arguments[0],f=document.querySelector(".reveal"));const r={};let d,E,N,v,A,C={},Z=!1,j={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},V=[],X=1,$={layout:"",overview:""},h={},ye="idle",Me=0,tt=0,je=-1,Qe=!1,we=new $o(r),ke=new Wo(r),Re=new Qo(r),De=new Xo(r),Pe=new Ko(r),me=new Zo(r),Ne=new Jo(r),Be=new el(r),Ke=new tl(r),z=new nl(r),k=new al(r),x=new il(r),lt=new rl(r),st=new sl(r),Le=new ll(r),nt=new ol(r),ot=new cl(r);function It(R){if(!f)throw'Unable to find presentation root (
).';if(h.wrapper=f,h.slides=f.querySelector(".slides"),!h.slides)throw'Unable to find slides container (
).';return C={..._l,...C,...n,...R,..._i()},at(),window.addEventListener("load",Ae,!1),lt.load(C.plugins,C.dependencies).then(J),new Promise(M=>r.on("ready",M))}function at(){C.embedded===!0?h.viewport=ut(f,".reveal-viewport")||f:(h.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),h.viewport.classList.add("reveal-viewport")}function J(){Z=!0,ae(),_(),g(),s(),o(),ga(),T(),Ke.readURL(),Pe.update(!0),setTimeout(()=>{h.slides.classList.remove("no-transition"),h.wrapper.classList.add("ready"),Q({type:"ready",data:{indexh:d,indexv:E,currentSlide:v}})},1),st.isPrintingPDF()&&(L(),document.readyState==="complete"?st.setupPDF():window.addEventListener("load",()=>{st.setupPDF()}))}function ae(){C.showHiddenSlides||Se(h.wrapper,'section[data-visibility="hidden"]').forEach(R=>{R.parentNode.removeChild(R)})}function _(){h.slides.classList.add("no-transition"),gn?h.wrapper.classList.add("no-hover"):h.wrapper.classList.remove("no-hover"),Pe.render(),ke.render(),Re.render(),z.render(),k.render(),ot.render(),h.pauseOverlay=Ho(h.wrapper,"div","pause-overlay",C.controls?'':null),h.statusElement=u(),h.wrapper.setAttribute("role","application")}function u(){let R=h.wrapper.querySelector(".aria-status");return R||(R=document.createElement("div"),R.style.position="absolute",R.style.height="1px",R.style.width="1px",R.style.overflow="hidden",R.style.clip="rect( 1px, 1px, 1px, 1px )",R.classList.add("aria-status"),R.setAttribute("aria-live","polite"),R.setAttribute("aria-atomic","true"),h.wrapper.appendChild(R)),R}function c(R){h.statusElement.textContent=R}function a(R){let M="";if(R.nodeType===3)M+=R.textContent;else if(R.nodeType===1){let ne=R.getAttribute("aria-hidden"),ee=window.getComputedStyle(R).display==="none";ne==="true"||ee||Array.from(R.childNodes).forEach(oe=>{M+=a(oe)})}return M=M.trim(),M===""?"":M+" "}function s(){setInterval(()=>{h.wrapper.scrollTop===0&&h.wrapper.scrollLeft===0||(h.wrapper.scrollTop=0,h.wrapper.scrollLeft=0)},1e3)}function o(){document.addEventListener("fullscreenchange",sn),document.addEventListener("webkitfullscreenchange",sn)}function g(){C.postMessage&&window.addEventListener("message",qn,!1)}function T(R){const M={...C};if(typeof R=="object"&&pn(C,R),r.isReady()===!1)return;const ne=h.wrapper.querySelectorAll(en).length;h.wrapper.classList.remove(M.transition),h.wrapper.classList.add(C.transition),h.wrapper.setAttribute("data-transition-speed",C.transitionSpeed),h.wrapper.setAttribute("data-background-transition",C.backgroundTransition),h.viewport.style.setProperty("--slide-width",C.width+"px"),h.viewport.style.setProperty("--slide-height",C.height+"px"),C.shuffle&&Sn(),Ma(h.wrapper,"embedded",C.embedded),Ma(h.wrapper,"rtl",C.rtl),Ma(h.wrapper,"center",C.center),C.pause===!1&&$t(),C.previewLinks?(ce(),ue("[data-preview-link=false]")):(ue(),ce("[data-preview-link]:not([data-preview-link=false])")),De.reset(),A&&(A.destroy(),A=null),ne>1&&C.autoSlide&&C.autoSlideStoppable&&(A=new dl(h.wrapper,()=>Math.min(Math.max((Date.now()-je)/Me,0),1)),A.on("click",va),Qe=!1),C.navigationMode!=="default"?h.wrapper.setAttribute("data-navigation-mode",C.navigationMode):h.wrapper.removeAttribute("data-navigation-mode"),ot.configure(C,M),Le.configure(C,M),x.configure(C,M),z.configure(C,M),k.configure(C,M),Be.configure(C,M),me.configure(C,M),ke.configure(C,M),wn()}function I(){window.addEventListener("resize",Wn,!1),C.touch&&nt.bind(),C.keyboard&&Be.bind(),C.progress&&k.bind(),C.respondToHashChanges&&Ke.bind(),z.bind(),Le.bind(),h.slides.addEventListener("click",$n,!1),h.slides.addEventListener("transitionend",Vn,!1),h.pauseOverlay.addEventListener("click",$t,!1),C.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",Qn,!1)}function L(){nt.unbind(),Le.unbind(),Be.unbind(),z.unbind(),k.unbind(),Ke.unbind(),window.removeEventListener("resize",Wn,!1),h.slides.removeEventListener("click",$n,!1),h.slides.removeEventListener("transitionend",Vn,!1),h.pauseOverlay.removeEventListener("click",$t,!1)}function H(){L(),tn(),ue(),ot.destroy(),Le.destroy(),lt.destroy(),x.destroy(),z.destroy(),k.destroy(),Pe.destroy(),ke.destroy(),Re.destroy(),document.removeEventListener("fullscreenchange",sn),document.removeEventListener("webkitfullscreenchange",sn),document.removeEventListener("visibilitychange",Qn,!1),window.removeEventListener("message",qn,!1),window.removeEventListener("load",Ae,!1),h.pauseOverlay&&h.pauseOverlay.remove(),h.statusElement&&h.statusElement.remove(),document.documentElement.classList.remove("reveal-full-page"),h.wrapper.classList.remove("ready","center","has-horizontal-slides","has-vertical-slides"),h.wrapper.removeAttribute("data-transition-speed"),h.wrapper.removeAttribute("data-background-transition"),h.viewport.classList.remove("reveal-viewport"),h.viewport.style.removeProperty("--slide-width"),h.viewport.style.removeProperty("--slide-height"),h.slides.style.removeProperty("width"),h.slides.style.removeProperty("height"),h.slides.style.removeProperty("zoom"),h.slides.style.removeProperty("left"),h.slides.style.removeProperty("top"),h.slides.style.removeProperty("bottom"),h.slides.style.removeProperty("right"),h.slides.style.removeProperty("transform"),Array.from(h.wrapper.querySelectorAll(en)).forEach(R=>{R.style.removeProperty("display"),R.style.removeProperty("top"),R.removeAttribute("hidden"),R.removeAttribute("aria-hidden")})}function P(R,M,ne){f.addEventListener(R,M,ne)}function W(R,M,ne){f.removeEventListener(R,M,ne)}function G(R){typeof R.layout=="string"&&($.layout=R.layout),typeof R.overview=="string"&&($.overview=R.overview),$.layout?Yt(h.slides,$.layout+" "+$.overview):Yt(h.slides,$.overview)}function Q({target:R=h.wrapper,type:M,data:ne,bubbles:ee=!0}){let oe=document.createEvent("HTMLEvents",1,2);return oe.initEvent(M,ee,!0),pn(oe,ne),R.dispatchEvent(oe),R===h.wrapper&&le(M),oe}function le(R,M){if(C.postMessageEvents&&window.parent!==window.self){let ne={namespace:"reveal",eventName:R,state:Hn()};pn(ne,M),window.parent.postMessage(JSON.stringify(ne),"*")}}function ce(R="a"){Array.from(h.wrapper.querySelectorAll(R)).forEach(M=>{/^(http|www)/gi.test(M.getAttribute("href"))&&M.addEventListener("click",Kn,!1)})}function ue(R="a"){Array.from(h.wrapper.querySelectorAll(R)).forEach(M=>{/^(http|www)/gi.test(M.getAttribute("href"))&&M.removeEventListener("click",Kn,!1)})}function Te(R){ge(),h.overlay=document.createElement("div"),h.overlay.classList.add("overlay"),h.overlay.classList.add("overlay-preview"),h.wrapper.appendChild(h.overlay),h.overlay.innerHTML=`
Unable to load iframe. This is likely due to the site's policy (x-frame-options).
`,h.overlay.querySelector("iframe").addEventListener("load",M=>{h.overlay.classList.add("loaded")},!1),h.overlay.querySelector(".close").addEventListener("click",M=>{ge(),M.preventDefault()},!1),h.overlay.querySelector(".external").addEventListener("click",M=>{ge()},!1)}function se(R){typeof R=="boolean"?R?Oe():ge():h.overlay?ge():Oe()}function Oe(){if(C.help){ge(),h.overlay=document.createElement("div"),h.overlay.classList.add("overlay"),h.overlay.classList.add("overlay-help"),h.wrapper.appendChild(h.overlay);let R='

Keyboard Shortcuts


',M=Be.getShortcuts(),ne=Be.getBindings();R+="";for(let ee in M)R+=``;for(let ee in ne)ne[ee].key&&ne[ee].description&&(R+=``);R+="
KEYACTION
${ee}${M[ee]}
${ne[ee].key}${ne[ee].description}
",h.overlay.innerHTML=`
${R}
`,h.overlay.querySelector(".close").addEventListener("click",ee=>{ge(),ee.preventDefault()},!1)}}function ge(){return!!h.overlay&&(h.overlay.parentNode.removeChild(h.overlay),h.overlay=null,!0)}function Ae(){if(h.wrapper&&!st.isPrintingPDF()){if(!C.disableLayout){gn&&!C.embedded&&document.documentElement.style.setProperty("--vh",.01*window.innerHeight+"px");const R=Ue(),M=X;Ge(C.width,C.height),h.slides.style.width=R.width+"px",h.slides.style.height=R.height+"px",X=Math.min(R.presentationWidth/R.width,R.presentationHeight/R.height),X=Math.max(X,C.minScale),X=Math.min(X,C.maxScale),X===1?(h.slides.style.zoom="",h.slides.style.left="",h.slides.style.top="",h.slides.style.bottom="",h.slides.style.right="",G({layout:""})):(h.slides.style.zoom="",h.slides.style.left="50%",h.slides.style.top="50%",h.slides.style.bottom="auto",h.slides.style.right="auto",G({layout:"translate(-50%, -50%) scale("+X+")"}));const ne=Array.from(h.wrapper.querySelectorAll(en));for(let ee=0,oe=ne.length;ee .stretch, section > .r-stretch").forEach(ne=>{let ee=zo(ne,M);if(/(img|video)/gi.test(ne.nodeName)){const oe=ne.naturalWidth||ne.videoWidth,xe=ne.naturalHeight||ne.videoHeight,Ze=Math.min(R/oe,ee/xe);ne.style.width=oe*Ze+"px",ne.style.height=xe*Ze+"px"}else ne.style.width=R+"px",ne.style.height=ee+"px"})}function Ue(R,M){let ne=C.width,ee=C.height;C.disableLayout&&(ne=h.slides.offsetWidth,ee=h.slides.offsetHeight);const oe={width:ne,height:ee,presentationWidth:R||h.wrapper.offsetWidth,presentationHeight:M||h.wrapper.offsetHeight};return oe.presentationWidth-=oe.presentationWidth*C.margin,oe.presentationHeight-=oe.presentationHeight*C.margin,typeof oe.width=="string"&&/%$/.test(oe.width)&&(oe.width=parseInt(oe.width,10)/100*oe.presentationWidth),typeof oe.height=="string"&&/%$/.test(oe.height)&&(oe.height=parseInt(oe.height,10)/100*oe.presentationHeight),oe}function Ct(R,M){typeof R=="object"&&typeof R.setAttribute=="function"&&R.setAttribute("data-previous-indexv",M||0)}function Ot(R){if(typeof R=="object"&&typeof R.setAttribute=="function"&&R.classList.contains("stack")){const M=R.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(R.getAttribute(M)||0,10)}return 0}function Dt(R=v){return R&&R.parentNode&&!!R.parentNode.nodeName.match(/section/i)}function On(){return!(!v||!Dt(v))&&!v.nextElementSibling}function An(){return d===0&&E===0}function En(){return!!v&&!v.nextElementSibling&&(!Dt(v)||!v.parentNode.nextElementSibling)}function In(){if(C.pause){const R=h.wrapper.classList.contains("paused");tn(),h.wrapper.classList.add("paused"),R===!1&&Q({type:"paused"})}}function $t(){const R=h.wrapper.classList.contains("paused");h.wrapper.classList.remove("paused"),kt(),R&&Q({type:"resumed"})}function Dn(R){typeof R=="boolean"?R?In():$t():Wt()?$t():In()}function Wt(){return h.wrapper.classList.contains("paused")}function _a(R){typeof R=="boolean"?R?Re.show():Re.hide():Re.isVisible()?Re.hide():Re.show()}function ua(R){typeof R=="boolean"?R?an():nn():Qe?an():nn()}function pa(){return!(!Me||Qe)}function ht(R,M,ne,ee){if(Q({type:"beforeslidechange",data:{indexh:R===void 0?d:R,indexv:M===void 0?E:M,origin:ee}}).defaultPrevented)return;N=v;const oe=h.wrapper.querySelectorAll(Xt);if(oe.length===0)return;M!==void 0||Ne.isActive()||(M=Ot(oe[R])),N&&N.parentNode&&N.parentNode.classList.contains("stack")&&Ct(N.parentNode,E);const xe=V.concat();V.length=0;let Ze=d||0,gt=E||0;d=xn(Xt,R===void 0?d:R),E=xn(pi,M===void 0?E:M);let Nt=d!==Ze||E!==gt;Nt||(N=null);let wt=oe[d];v=wt.querySelectorAll("section")[E]||wt;let Xe=!1;Nt&&N&&v&&!Ne.isActive()&&(N.hasAttribute("data-auto-animate")&&v.hasAttribute("data-auto-animate")&&N.getAttribute("data-auto-animate-id")===v.getAttribute("data-auto-animate-id")&&!(d>Ze||E>gt?v:N).hasAttribute("data-auto-animate-restart")&&(Xe=!0,h.slides.classList.add("disable-slide-transitions")),ye="running"),bn(),Ae(),Ne.isActive()&&Ne.update(),ne!==void 0&&me.goto(ne),N&&N!==v&&(N.classList.remove("present"),N.setAttribute("aria-hidden","true"),An()&&setTimeout(()=>{Sa().forEach(ft=>{Ct(ft,0)})},0));e:for(let ft=0,Ca=V.length;ft{c(a(v))}),k.update(),z.update(),ot.update(),Pe.update(),Pe.updateParallax(),ke.update(),me.update(),Ke.writeURL(),kt(),Xe&&(setTimeout(()=>{h.slides.classList.remove("disable-slide-transitions")},0),C.autoAnimate&&De.run(N,v))}function wn(){L(),I(),Ae(),Me=C.autoSlide,kt(),Pe.create(),Ke.writeURL(),C.sortFragmentsOnSync===!0&&me.sortAll(),z.update(),k.update(),bn(),ot.update(),ot.updateVisibility(),Pe.update(!0),ke.update(),we.formatEmbeddedContent(),C.autoPlayMedia===!1?we.stopEmbeddedContent(v,{unloadIframes:!1}):we.startEmbeddedContent(v),Ne.isActive()&&Ne.layout()}function ma(R=v){Pe.sync(R),me.sync(R),we.load(R),Pe.update(),ot.update()}function ga(){At().forEach(R=>{Se(R,"section").forEach((M,ne)=>{ne>0&&(M.classList.remove("present"),M.classList.remove("past"),M.classList.add("future"),M.setAttribute("aria-hidden","true"))})})}function Sn(R=At()){R.forEach((M,ne)=>{let ee=R[Math.floor(Math.random()*R.length)];ee.parentNode===M.parentNode&&M.parentNode.insertBefore(M,ee);let oe=M.querySelectorAll("section");oe.length&&Sn(oe)})}function xn(R,M){let ne=Se(h.wrapper,R),ee=ne.length,oe=st.isPrintingPDF(),xe=!1,Ze=!1;if(ee){C.loop&&(M>=ee&&(xe=!0),(M%=ee)<0&&(M=ee+M,Ze=!0)),M=Math.max(Math.min(M,ee-1),0);for(let pt=0;ptM?(Xe.classList.add(ft?"past":"future"),C.fragments&&Ln(Xe)):pt===M&&C.fragments&&(xe?Ln(Xe):Ze&&Mn(Xe))}let gt=ne[M],Nt=gt.classList.contains("present");gt.classList.add("present"),gt.removeAttribute("hidden"),gt.removeAttribute("aria-hidden"),Nt||Q({target:gt,type:"visible",bubbles:!1});let wt=gt.getAttribute("data-state");wt&&(V=V.concat(wt.split(" ")))}else M=0;return M}function Mn(R){Se(R,".fragment").forEach(M=>{M.classList.add("visible"),M.classList.remove("current-fragment")})}function Ln(R){Se(R,".fragment.visible").forEach(M=>{M.classList.remove("visible","current-fragment")})}function bn(){let R,M,ne=At(),ee=ne.length;if(ee&&d!==void 0){let oe=Ne.isActive()?10:C.viewDistance;gn&&(oe=Ne.isActive()?6:C.mobileViewDistance),st.isPrintingPDF()&&(oe=Number.MAX_VALUE);for(let xe=0;xe0,right:d0,down:E1&&(ee.left=!0,ee.right=!0),ne.length>1&&(ee.up=!0,ee.down=!0)),M.length>1&&C.navigationMode==="linear"&&(ee.right=ee.right||ee.down,ee.left=ee.left||ee.up),R===!0){let oe=me.availableRoutes();ee.left=ee.left||oe.prev,ee.up=ee.up||oe.prev,ee.down=ee.down||oe.next,ee.right=ee.right||oe.next}if(C.rtl){let oe=ee.left;ee.left=ee.right,ee.right=oe}return ee}function kn(R=v){let M=At(),ne=0;e:for(let ee=0;ee0){let ee=.9;M+=v.querySelectorAll(".fragment.visible").length/ne.length*ee}}return Math.min(M/(R-1),1)}function Pn(R){let M,ne=d,ee=E;if(R){let oe=Dt(R),xe=oe?R.parentNode:R,Ze=At();ne=Math.max(Ze.indexOf(xe),0),ee=void 0,oe&&(ee=Math.max(Se(R.parentNode,"section").indexOf(R),0))}if(!R&&v&&v.querySelectorAll(".fragment").length>0){let oe=v.querySelector(".current-fragment");M=oe&&oe.hasAttribute("data-fragment-index")?parseInt(oe.getAttribute("data-fragment-index"),10):v.querySelectorAll(".fragment.visible").length-1}return{h:ne,v:ee,f:M}}function hn(){return Se(h.wrapper,en+':not(.stack):not([data-visibility="uncounted"])')}function At(){return Se(h.wrapper,Xt)}function Un(){return Se(h.wrapper,".slides>section>section")}function Sa(){return Se(h.wrapper,Xt+".stack")}function Fn(){return At().length>1}function Bn(){return Un().length>1}function ba(){return hn().map(R=>{let M={};for(let ne=0;ne{oe.hasAttribute("data-autoplay")&&Me&&1e3*oe.duration/oe.playbackRate>Me&&(Me=1e3*oe.duration/oe.playbackRate+1e3)})),!Me||Qe||Wt()||Ne.isActive()||En()&&!me.availableRoutes().next&&C.loop!==!0||(tt=setTimeout(()=>{typeof C.autoSlideMethod=="function"?C.autoSlideMethod():Cn(),kt()},Me),je=Date.now()),A&&A.setPlaying(tt!==-1)}}function tn(){clearTimeout(tt),tt=-1}function nn(){Me&&!Qe&&(Qe=!0,Q({type:"autoslidepaused"}),clearTimeout(tt),A&&A.setPlaying(!1))}function an(){Me&&Qe&&(Qe=!1,Q({type:"autoslideresumed"}),kt())}function rn({skipFragments:R=!1}={}){j.hasNavigatedHorizontally=!0,C.rtl?(Ne.isActive()||R||me.next()===!1)&&Rt().left&&ht(d+1,C.navigationMode==="grid"?E:void 0):(Ne.isActive()||R||me.prev()===!1)&&Rt().left&&ht(d-1,C.navigationMode==="grid"?E:void 0)}function fn({skipFragments:R=!1}={}){j.hasNavigatedHorizontally=!0,C.rtl?(Ne.isActive()||R||me.prev()===!1)&&Rt().right&&ht(d-1,C.navigationMode==="grid"?E:void 0):(Ne.isActive()||R||me.next()===!1)&&Rt().right&&ht(d+1,C.navigationMode==="grid"?E:void 0)}function Tn({skipFragments:R=!1}={}){(Ne.isActive()||R||me.prev()===!1)&&Rt().up&&ht(d,E-1)}function vn({skipFragments:R=!1}={}){j.hasNavigatedVertically=!0,(Ne.isActive()||R||me.next()===!1)&&Rt().down&&ht(d,E+1)}function zn({skipFragments:R=!1}={}){if(R||me.prev()===!1)if(Rt().up)Tn({skipFragments:R});else{let M;if(M=C.rtl?Se(h.wrapper,Xt+".future").pop():Se(h.wrapper,Xt+".past").pop(),M&&M.classList.contains("stack")){let ne=M.querySelectorAll("section").length-1||void 0;ht(d-1,ne)}else rn({skipFragments:R})}}function Cn({skipFragments:R=!1}={}){if(j.hasNavigatedHorizontally=!0,j.hasNavigatedVertically=!0,R||me.next()===!1){let M=Rt();M.down&&M.right&&C.loop&&On()&&(M.down=!1),M.down?vn({skipFragments:R}):C.rtl?rn({skipFragments:R}):fn({skipFragments:R})}}function Ta(R){C.autoSlideStoppable&&nn()}function qn(R){let M=R.data;if(typeof M=="string"&&M.charAt(0)==="{"&&M.charAt(M.length-1)==="}"&&(M=JSON.parse(M),M.method&&typeof r[M.method]=="function"))if(jo.test(M.method)===!1){const ne=r[M.method].apply(r,M.args);le("callback",{method:M.method,result:ne})}else console.warn('reveal.js: "'+M.method+'" is is blacklisted from the postMessage API')}function Vn(R){ye==="running"&&/section/gi.test(R.target.nodeName)&&(ye="idle",Q({type:"slidetransitionend",data:{indexh:d,indexv:E,previousSlide:N,currentSlide:v}}))}function $n(R){const M=ut(R.target,'a[href^="#"]');if(M){const ne=M.getAttribute("href"),ee=Ke.getIndicesFromHash(ne);ee&&(r.slide(ee.h,ee.v,ee.f),R.preventDefault())}}function Wn(R){Ae()}function Qn(R){document.hidden===!1&&document.activeElement!==document.body&&(typeof document.activeElement.blur=="function"&&document.activeElement.blur(),document.body.focus())}function sn(R){(document.fullscreenElement||document.webkitFullscreenElement)===h.wrapper&&(R.stopImmediatePropagation(),setTimeout(()=>{r.layout(),r.focus.focus()},1))}function Kn(R){if(R.currentTarget&&R.currentTarget.hasAttribute("href")){let M=R.currentTarget.getAttribute("href");M&&(Te(M),R.preventDefault())}}function va(R){En()&&C.loop===!1?(ht(0,0),an()):Qe?an():nn()}const jn={VERSION:Oi,initialize:It,configure:T,destroy:H,sync:wn,syncSlide:ma,syncFragments:me.sync.bind(me),slide:ht,left:rn,right:fn,up:Tn,down:vn,prev:zn,next:Cn,navigateLeft:rn,navigateRight:fn,navigateUp:Tn,navigateDown:vn,navigatePrev:zn,navigateNext:Cn,navigateFragment:me.goto.bind(me),prevFragment:me.prev.bind(me),nextFragment:me.next.bind(me),on:P,off:W,addEventListener:P,removeEventListener:W,layout:Ae,shuffle:Sn,availableRoutes:Rt,availableFragments:me.availableRoutes.bind(me),toggleHelp:se,toggleOverview:Ne.toggle.bind(Ne),togglePause:Dn,toggleAutoSlide:ua,toggleJumpToSlide:_a,isFirstSlide:An,isLastSlide:En,isLastVerticalSlide:On,isVerticalSlide:Dt,isPaused:Wt,isAutoSliding:pa,isSpeakerNotes:ot.isSpeakerNotesWindow.bind(ot),isOverview:Ne.isActive.bind(Ne),isFocused:Le.isFocused.bind(Le),isPrintingPDF:st.isPrintingPDF.bind(st),isReady:()=>Z,loadSlide:we.load.bind(we),unloadSlide:we.unload.bind(we),startEmbeddedContent:()=>we.startEmbeddedContent(v),stopEmbeddedContent:()=>we.stopEmbeddedContent(v,{unloadIframes:!1}),showPreview:Te,hidePreview:ge,addEventListeners:I,removeEventListeners:L,dispatchEvent:Q,getState:Hn,setState:fa,getProgress:Ea,getIndices:Pn,getSlidesAttributes:ba,getSlidePastCount:kn,getTotalSlides:Gn,getSlide:Yn,getPreviousSlide:()=>N,getCurrentSlide:()=>v,getSlideBackground:ha,getSlideNotes:ot.getSlideNotes.bind(ot),getSlides:hn,getHorizontalSlides:At,getVerticalSlides:Un,hasHorizontalSlides:Fn,hasVerticalSlides:Bn,hasNavigatedHorizontally:()=>j.hasNavigatedHorizontally,hasNavigatedVertically:()=>j.hasNavigatedVertically,addKeyBinding:Be.addKeyBinding.bind(Be),removeKeyBinding:Be.removeKeyBinding.bind(Be),triggerKey:Be.triggerKey.bind(Be),registerKeyboardShortcut:Be.registerKeyboardShortcut.bind(Be),getComputedSlideSize:Ue,getScale:()=>X,getConfig:()=>C,getQueryHash:_i,getSlidePath:Ke.getHash.bind(Ke),getRevealElement:()=>f,getSlidesElement:()=>h.slides,getViewportElement:()=>h.viewport,getBackgroundsElement:()=>Pe.element,registerPlugin:lt.registerPlugin.bind(lt),hasPlugin:lt.hasPlugin.bind(lt),getPlugin:lt.getPlugin.bind(lt),getPlugins:lt.getRegisteredPlugins.bind(lt)};return pn(r,{...jn,announceStatus:c,getStatusText:a,print:st,focus:Le,progress:k,controls:z,location:Ke,overview:Ne,fragments:me,slideContent:we,slideNumber:ke,onUserInput:Ta,closeOverlay:ge,updateSlidesVisibility:bn,layoutSlideContents:Ge,transformSlides:G,cueAutoSlide:kt,cancelAutoSlide:tn}),jn}let Ut=Ai,bi=[];Ut.initialize=f=>(Object.assign(Ut,new Ai(document.querySelector(".reveal"),f)),bi.map(n=>n(Ut)),Ut.initialize()),["configure","on","off","addEventListener","removeEventListener","registerPlugin"].forEach(f=>{Ut[f]=(...n)=>{bi.push(r=>r[f].call(null,...n))}}),Ut.isReady=()=>!1,Ut.VERSION=Oi;function ul(f){let n;return{c(){n=Ht("section"),n.innerHTML=`

Core Lightning Core Architecture

vincenzopalazzo

vincenzopalazzo@member.fsf.org

Sep 28, 2023

`},m(r,d){bt(r,n,d)},p:et,i:et,o:et,d(r){r&&St(n)}}}class pl extends Vt{constructor(n){super(),qt(this,n,null,ul,zt,{})}}function ml(f){let n;return{c(){n=Ht("section"),n.innerHTML=`

\u279C ~ whoami

CLN Core Contributor & Lightning Network developer!

Area of Work

\u279C ~ cat topics.txt

Today topics

  • Understand what core lightning provides;
  • Understand how core lightning provides things;
  • How core lightning plugin are used inside the code.
`},m(r,d){bt(r,n,d)},p:et,i:et,o:et,d(r){r&&St(n)}}}class gl extends Vt{constructor(n){super(),qt(this,n,null,ml,zt,{})}}function El(f){let n;return{c(){n=Ht("section"),n.innerHTML=`

\u279C ~ show lightningd/lightningd.c

Introduction

One day in core lightning
  • Lightning Network Implementation written in C
  • Compliant with the BOLTs
  • First real implementation of the Lightning Network
  • Developed and Mantained by Blockstream
  • Developed in a Unix Style
  • Support a very powerful plugin system language agnostic

Cool, this is cool, right?

But you can replace deamon with your implementation

You can visit https://vls.tech

`},m(r,d){bt(r,n,d)},p:et,i:et,o:et,d(r){r&&St(n)}}}class Sl extends Vt{constructor(n){super(),qt(this,n,null,El,zt,{})}}function bl(f){let n;return{c(){n=Ht("section"),n.innerHTML=`

\u279C ~ emacs -nw lightningd/lightningd.c

Implementation Details

How CLN deal with encoding and decoding (aka wire) messages

  • Every lightning network messages is a struct
  • Every message information is defined inside a csv file
  • CLN build system generate the equivalent C code