diff --git a/dist/plugin/math.js b/dist/plugin/math.js index 77f38bab3ee..7b944e88180 100644 --- a/dist/plugin/math.js +++ b/dist/plugin/math.js @@ -1,4 +1,4 @@ -(function(d,r){typeof exports=="object"&&typeof module<"u"?module.exports=r():typeof define=="function"&&define.amd?define(r):(d=typeof globalThis<"u"?globalThis:d||self,d.RevealMath=r())})(this,function(){"use strict";const d=()=>{let n,s={version:"latest",delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\[",right:"\\]",display:!0}],ignoredTags:["script","noscript","style","textarea","pre"]};const c=t=>{let e=document.createElement("link");e.rel="stylesheet",e.href=t,document.head.appendChild(e)},l=t=>new Promise((e,i)=>{const o=document.createElement("script");o.type="text/javascript",o.onload=e,o.onerror=i,o.src=t,document.head.append(o)});async function a(t){for(const e of t)await l(e)}return{id:"katex",init:function(t){n=t;let e=n.getConfig().katex||{},i={...s,...e};const{local:o,version:x,extensions:S,...g}=i;let p=i.local||"https://cdn.jsdelivr.net/npm/katex",u=i.local?"":"@"+i.version,j=p+u+"/dist/katex.min.css",M=p+u+"/dist/katex.min.js",v=p+u+"/dist/contrib/mhchem.min.js",J=p+u+"/dist/contrib/auto-render.min.js",h=[M];i.extensions&&i.extensions.includes("mhchem")&&h.push(v),h.push(J);const f=()=>{renderMathInElement(t.getSlidesElement(),g),n.layout()};c(j),a(h).then(()=>{n.isReady()?f():n.on("ready",f.bind(this))})}}},r=()=>{let n,s={messageStyle:"none",tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]],skipTags:["script","noscript","style","textarea","pre"]},skipStartupTypeset:!0};function c(l,a){let t=document.querySelector("head"),e=document.createElement("script");e.type="text/javascript",e.src=l;let i=()=>{typeof a=="function"&&(a.call(),a=null)};e.onload=i,e.onreadystatechange=()=>{this.readyState==="loaded"&&i()},t.appendChild(e)}return{id:"mathjax2",init:function(l){n=l;let a=n.getConfig().mathjax2||n.getConfig().math||{},t={...s,...a},e=t.mathjax||"https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js",i=t.config||"TeX-AMS_HTML-full",o=e+"?config="+i;t.tex2jax={...s.tex2jax,...a.tex2jax},t.mathjax=t.config=null,c(o,function(){MathJax.Hub.Config(t),MathJax.Hub.Queue(["Typeset",MathJax.Hub,n.getRevealElement()]),MathJax.Hub.Queue(n.layout),n.on("slidechanged",function(x){MathJax.Hub.Queue(["Typeset",MathJax.Hub,x.currentSlide])})})}}},m=()=>{let n,s={tex:{inlineMath:[["$","$"],["\\(","\\)"]]},options:{skipHtmlTags:["script","noscript","style","textarea","pre"]},startup:{ready:()=>{MathJax.startup.defaultReady(),MathJax.startup.promise.then(()=>{n.layout()})}}};function c(l,a){let t=document.createElement("script");t.type="text/javascript",t.id="MathJax-script",t.src=l,t.async=!0,t.onload=()=>{typeof a=="function"&&(a.call(),a=null)},document.head.appendChild(t)}return{id:"mathjax3",init:function(l){n=l;let a=n.getConfig().mathjax3||{},t={...s,...a};t.tex={...s.tex,...a.tex},t.options={...s.options,...a.options},t.startup={...s.startup,...a.startup};let e=t.mathjax||"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js";t.mathjax=null,window.MathJax=t,c(e,function(){n.addEventListener("slidechanged",function(i){MathJax.typeset()})})}}},y=r;/*! +(function(d,r){typeof exports=="object"&&typeof module<"u"?module.exports=r():typeof define=="function"&&define.amd?define(r):(d=typeof globalThis<"u"?globalThis:d||self,d.RevealMath=r())})(this,function(){"use strict";const d=()=>{let n,s={version:"latest",delimiters:[{left:"$$",right:"$$",display:!0},{left:"$",right:"$",display:!1},{left:"\\(",right:"\\)",display:!1},{left:"\\[",right:"\\]",display:!0}],ignoredTags:["script","noscript","style","textarea","pre","code"]};const c=t=>{let e=document.createElement("link");e.rel="stylesheet",e.href=t,document.head.appendChild(e)},o=t=>new Promise((e,i)=>{const l=document.createElement("script");l.type="text/javascript",l.onload=e,l.onerror=i,l.src=t,document.head.append(l)});async function a(t){for(const e of t)await o(e)}return{id:"katex",init:function(t){n=t;let e=n.getConfig().katex||{},i={...s,...e};const{local:l,version:x,extensions:S,...g}=i;let p=i.local||"https://cdn.jsdelivr.net/npm/katex",u=i.local?"":"@"+i.version,j=p+u+"/dist/katex.min.css",M=p+u+"/dist/katex.min.js",v=p+u+"/dist/contrib/mhchem.min.js",J=p+u+"/dist/contrib/auto-render.min.js",h=[M];i.extensions&&i.extensions.includes("mhchem")&&h.push(v),h.push(J);const f=()=>{renderMathInElement(t.getSlidesElement(),g),n.layout()};c(j),a(h).then(()=>{n.isReady()?f():n.on("ready",f.bind(this))})}}},r=()=>{let n,s={messageStyle:"none",tex2jax:{inlineMath:[["$","$"],["\\(","\\)"]],skipTags:["script","noscript","style","textarea","pre","code"]},skipStartupTypeset:!0};function c(o,a){let t=document.querySelector("head"),e=document.createElement("script");e.type="text/javascript",e.src=o;let i=()=>{typeof a=="function"&&(a.call(),a=null)};e.onload=i,e.onreadystatechange=()=>{this.readyState==="loaded"&&i()},t.appendChild(e)}return{id:"mathjax2",init:function(o){n=o;let a=n.getConfig().mathjax2||n.getConfig().math||{},t={...s,...a},e=t.mathjax||"https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js",i=t.config||"TeX-AMS_HTML-full",l=e+"?config="+i;t.tex2jax={...s.tex2jax,...a.tex2jax},t.mathjax=t.config=null,c(l,function(){MathJax.Hub.Config(t),MathJax.Hub.Queue(["Typeset",MathJax.Hub,n.getRevealElement()]),MathJax.Hub.Queue(n.layout),n.on("slidechanged",function(x){MathJax.Hub.Queue(["Typeset",MathJax.Hub,x.currentSlide])})})}}},m=()=>{let n,s={tex:{inlineMath:[["$","$"],["\\(","\\)"]]},options:{skipHtmlTags:["script","noscript","style","textarea","pre","code"]},startup:{ready:()=>{MathJax.startup.defaultReady(),MathJax.startup.promise.then(()=>{n.layout()})}}};function c(o,a){let t=document.createElement("script");t.type="text/javascript",t.id="MathJax-script",t.src=o,t.async=!0,t.onload=()=>{typeof a=="function"&&(a.call(),a=null)},document.head.appendChild(t)}return{id:"mathjax3",init:function(o){n=o;let a=n.getConfig().mathjax3||{},t={...s,...a};t.tex={...s.tex,...a.tex},t.options={...s.options,...a.options},t.startup={...s.startup,...a.startup};let e=t.mathjax||"https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js";t.mathjax=null,window.MathJax=t,c(e,function(){n.addEventListener("slidechanged",function(i){MathJax.typeset()})})}}},y=r;/*! * This plugin is a wrapper for the MathJax2, * MathJax3 and KaTeX typesetter plugins. */return Plugin=Object.assign(y(),{KaTeX:d,MathJax2:r,MathJax3:m})}); diff --git a/dist/plugin/math.mjs b/dist/plugin/math.mjs index adb64ee6a68..6aee99af399 100644 --- a/dist/plugin/math.mjs +++ b/dist/plugin/math.mjs @@ -8,7 +8,7 @@ const M = () => { { left: "\\(", right: "\\)", display: !1 }, { left: "\\[", right: "\\]", display: !0 } ], - ignoredTags: ["script", "noscript", "style", "textarea", "pre"] + ignoredTags: ["script", "noscript", "style", "textarea", "pre", "code"] }; const r = (t) => { let e = document.createElement("link"); @@ -42,7 +42,7 @@ const M = () => { messageStyle: "none", tex2jax: { inlineMath: [["$", "$"], ["\\(", "\\)"]], - skipTags: ["script", "noscript", "style", "textarea", "pre"] + skipTags: ["script", "noscript", "style", "textarea", "pre", "code"] }, skipStartupTypeset: !0 }; @@ -74,7 +74,7 @@ const M = () => { inlineMath: [["$", "$"], ["\\(", "\\)"]] }, options: { - skipHtmlTags: ["script", "noscript", "style", "textarea", "pre"] + skipHtmlTags: ["script", "noscript", "style", "textarea", "pre", "code"] }, startup: { ready: () => { diff --git a/dist/reveal.css b/dist/reveal.css index 0f398284b50..1e0a15fe3b5 100644 --- a/dist/reveal.css +++ b/dist/reveal.css @@ -1 +1 @@ -.reveal .stretch,.reveal .r-stretch{max-width:none;max-height:none}.reveal pre.stretch code,.reveal pre.r-stretch code{height:100%;max-height:100%;box-sizing:border-box}.reveal .r-fit-text{display:inline-block;white-space:nowrap}.reveal .r-stack{display:grid;grid-template-rows:100%}.reveal .r-stack>*{grid-area:1/1;margin:auto}.reveal .r-vstack,.reveal .r-hstack{display:flex}.reveal .r-vstack img,.reveal .r-vstack video,.reveal .r-hstack img,.reveal .r-hstack video{min-width:0;min-height:0;object-fit:contain}.reveal .r-vstack{flex-direction:column;align-items:center;justify-content:center}.reveal .r-hstack{flex-direction:row;align-items:center;justify-content:center}.reveal .items-stretch{align-items:stretch}.reveal .items-start{align-items:flex-start}.reveal .items-center{align-items:center}.reveal .items-end{align-items:flex-end}.reveal .justify-between{justify-content:space-between}.reveal .justify-around{justify-content:space-around}.reveal .justify-start{justify-content:flex-start}.reveal .justify-center{justify-content:center}.reveal .justify-end{justify-content:flex-end}html.reveal-print *{-webkit-print-color-adjust:exact}html.reveal-print{width:100%;height:100%;overflow:visible}html.reveal-print body{margin:0 auto!important;border:0;padding:0;float:none!important;overflow:visible}html.reveal-print .nestedarrow,html.reveal-print .reveal .controls,html.reveal-print .reveal .progress,html.reveal-print .reveal .playback,html.reveal-print .reveal.overview,html.reveal-print .state-background{display:none!important}html.reveal-print .reveal pre code{overflow:hidden!important}html.reveal-print .reveal{width:auto!important;height:auto!important;overflow:hidden!important}html.reveal-print .reveal .slides{position:static;width:100%!important;height:auto!important;zoom:1!important;pointer-events:initial;left:auto;top:auto;margin:0!important;padding:0!important;overflow:visible;display:block;perspective:none;perspective-origin:50% 50%}html.reveal-print .reveal .slides .pdf-page{position:relative;overflow:hidden;z-index:1;page-break-after:always}html.reveal-print .reveal .slides .pdf-page:last-of-type{page-break-after:avoid}html.reveal-print .reveal .slides section{visibility:visible!important;display:block!important;position:absolute!important;margin:0!important;padding:0!important;box-sizing:border-box!important;min-height:1px;opacity:1!important;transform-style:flat!important;transform:none!important}html.reveal-print .reveal section.stack{position:relative!important;margin:0!important;padding:0!important;page-break-after:avoid!important;height:auto!important;min-height:auto!important}html.reveal-print .reveal img{box-shadow:none}html.reveal-print .reveal .backgrounds{display:none}html.reveal-print .reveal .slide-background{display:block!important;position:absolute;top:0;left:0;width:100%;height:100%;z-index:auto!important}html.reveal-print .reveal.show-notes{max-width:none;max-height:none}html.reveal-print .reveal .speaker-notes-pdf{display:block;width:100%;height:auto;max-height:none;top:auto;right:auto;bottom:auto;left:auto;z-index:100}html.reveal-print .reveal .speaker-notes-pdf[data-layout=separate-page]{position:relative;color:inherit;background-color:transparent;padding:20px;page-break-after:always;border:0}html.reveal-print .reveal .slide-number-pdf{display:block;position:absolute;font-size:14px;visibility:visible}html.reveal-print .aria-status{display:none}@media print{html:not(.print-pdf){overflow:visible;width:auto;height:auto}html:not(.print-pdf) body{margin:0;padding:0;overflow:visible}html:not(.print-pdf) .reveal{background:#fff;font-size:20pt}html:not(.print-pdf) .reveal .controls,html:not(.print-pdf) .reveal .state-background,html:not(.print-pdf) .reveal .progress,html:not(.print-pdf) .reveal .backgrounds,html:not(.print-pdf) .reveal .slide-number{display:none!important}html:not(.print-pdf) .reveal p,html:not(.print-pdf) .reveal td,html:not(.print-pdf) .reveal li{font-size:20pt!important;color:#000}html:not(.print-pdf) .reveal h1,html:not(.print-pdf) .reveal h2,html:not(.print-pdf) .reveal h3,html:not(.print-pdf) .reveal h4,html:not(.print-pdf) .reveal h5,html:not(.print-pdf) .reveal h6{color:#000!important;height:auto;line-height:normal;text-align:left;letter-spacing:normal}html:not(.print-pdf) .reveal h1{font-size:28pt!important}html:not(.print-pdf) .reveal h2{font-size:24pt!important}html:not(.print-pdf) .reveal h3{font-size:22pt!important}html:not(.print-pdf) .reveal h4{font-size:22pt!important;font-variant:small-caps}html:not(.print-pdf) .reveal h5{font-size:21pt!important}html:not(.print-pdf) .reveal h6{font-size:20pt!important;font-style:italic}html:not(.print-pdf) .reveal a:link,html:not(.print-pdf) .reveal a:visited{color:#000!important;font-weight:700;text-decoration:underline}html:not(.print-pdf) .reveal ul,html:not(.print-pdf) .reveal ol,html:not(.print-pdf) .reveal div,html:not(.print-pdf) .reveal p{visibility:visible;position:static;width:auto;height:auto;display:block;overflow:visible;margin:0;text-align:left!important}html:not(.print-pdf) .reveal pre,html:not(.print-pdf) .reveal table{margin-left:0;margin-right:0}html:not(.print-pdf) .reveal pre code{padding:20px}html:not(.print-pdf) .reveal blockquote{margin:20px 0}html:not(.print-pdf) .reveal .slides{position:static!important;width:auto!important;height:auto!important;left:0!important;top:0!important;margin-left:0!important;margin-top:0!important;padding:0!important;zoom:1!important;transform:none!important;overflow:visible!important;display:block!important;text-align:left!important;perspective:none;perspective-origin:50% 50%}html:not(.print-pdf) .reveal .slides section{visibility:visible!important;position:static!important;width:auto!important;height:auto!important;display:block!important;overflow:visible!important;left:0!important;top:0!important;margin-left:0!important;margin-top:0!important;padding:60px 20px!important;z-index:auto!important;opacity:1!important;page-break-after:always!important;transform-style:flat!important;transform:none!important;transition:none!important}html:not(.print-pdf) .reveal .slides section.stack{padding:0!important}html:not(.print-pdf) .reveal .slides section:last-of-type{page-break-after:avoid!important}html:not(.print-pdf) .reveal .slides section .fragment{opacity:1!important;visibility:visible!important;transform:none!important}html:not(.print-pdf) .reveal .r-fit-text{white-space:normal!important}html:not(.print-pdf) .reveal section img{display:block;margin:15px 0;background:#fff;border:1px solid #666;box-shadow:none}html:not(.print-pdf) .reveal section small{font-size:.8em}html:not(.print-pdf) .reveal .hljs{max-height:100%;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;font-size:15pt}html:not(.print-pdf) .reveal .hljs .hljs-ln-numbers{white-space:nowrap}html:not(.print-pdf) .reveal .hljs td{font-size:inherit!important;color:inherit!important}}html.reveal-full-page{width:100%;height:100%;height:100vh;height:calc(var(--vh, 1vh) * 100);height:100svh;overflow:hidden}.reveal-viewport{height:100%;overflow:hidden;position:relative;line-height:1;margin:0;background-color:#fff;color:#000;--r-controls-spacing: 12px}.reveal-viewport:fullscreen{top:0!important;left:0!important;width:100%!important;height:100%!important;transform:none!important}.reveal .fragment{transition:all .2s ease}.reveal .fragment:not(.custom){opacity:0;visibility:hidden;will-change:opacity}.reveal .fragment.visible{opacity:1;visibility:inherit}.reveal .fragment.disabled{transition:none}.reveal .fragment.grow{opacity:1;visibility:inherit}.reveal .fragment.grow.visible{transform:scale(1.3)}.reveal .fragment.shrink{opacity:1;visibility:inherit}.reveal .fragment.shrink.visible{transform:scale(.7)}.reveal .fragment.zoom-in{transform:scale(.1)}.reveal .fragment.zoom-in.visible{transform:none}.reveal .fragment.fade-out{opacity:1;visibility:inherit}.reveal .fragment.fade-out.visible{opacity:0;visibility:hidden}.reveal .fragment.semi-fade-out{opacity:1;visibility:inherit}.reveal .fragment.semi-fade-out.visible{opacity:.5;visibility:inherit}.reveal .fragment.strike{opacity:1;visibility:inherit}.reveal .fragment.strike.visible{text-decoration:line-through}.reveal .fragment.fade-up{transform:translateY(40px)}.reveal .fragment.fade-up.visible{transform:translate(0)}.reveal .fragment.fade-down{transform:translateY(-40px)}.reveal .fragment.fade-down.visible{transform:translate(0)}.reveal .fragment.fade-right{transform:translate(-40px)}.reveal .fragment.fade-right.visible{transform:translate(0)}.reveal .fragment.fade-left{transform:translate(40px)}.reveal .fragment.fade-left.visible{transform:translate(0)}.reveal .fragment.fade-in-then-out,.reveal .fragment.current-visible{opacity:0;visibility:hidden}.reveal .fragment.fade-in-then-out.current-fragment,.reveal .fragment.current-visible.current-fragment{opacity:1;visibility:inherit}.reveal .fragment.fade-in-then-semi-out{opacity:0;visibility:hidden}.reveal .fragment.fade-in-then-semi-out.visible{opacity:.5;visibility:inherit}.reveal .fragment.fade-in-then-semi-out.current-fragment,.reveal .fragment.highlight-red,.reveal .fragment.highlight-current-red,.reveal .fragment.highlight-green,.reveal .fragment.highlight-current-green,.reveal .fragment.highlight-blue,.reveal .fragment.highlight-current-blue{opacity:1;visibility:inherit}.reveal .fragment.highlight-red.visible{color:#ff2c2d}.reveal .fragment.highlight-green.visible{color:#17ff2e}.reveal .fragment.highlight-blue.visible{color:#1b91ff}.reveal .fragment.highlight-current-red.current-fragment{color:#ff2c2d}.reveal .fragment.highlight-current-green.current-fragment{color:#17ff2e}.reveal .fragment.highlight-current-blue.current-fragment{color:#1b91ff}.reveal:after{content:"";font-style:italic}.reveal iframe{z-index:1}.reveal a{position:relative}@keyframes bounce-right{0%,10%,25%,40%,50%{transform:translate(0)}20%{transform:translate(10px)}30%{transform:translate(-5px)}}@keyframes bounce-left{0%,10%,25%,40%,50%{transform:translate(0)}20%{transform:translate(-10px)}30%{transform:translate(5px)}}@keyframes bounce-down{0%,10%,25%,40%,50%{transform:translateY(0)}20%{transform:translateY(10px)}30%{transform:translateY(-5px)}}.reveal .controls{display:none;position:absolute;top:auto;bottom:var(--r-controls-spacing);right:var(--r-controls-spacing);left:auto;z-index:11;color:#000;pointer-events:none;font-size:10px}.reveal .controls button{position:absolute;padding:0;background-color:transparent;border:0;outline:0;cursor:pointer;color:currentColor;transform:scale(.9999);transition:color .2s ease,opacity .2s ease,transform .2s ease;z-index:2;pointer-events:auto;font-size:inherit;visibility:hidden;opacity:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.reveal .controls .controls-arrow:before,.reveal .controls .controls-arrow:after{content:"";position:absolute;top:0;left:0;width:2.6em;height:.5em;border-radius:.25em;background-color:currentColor;transition:all .15s ease,background-color .8s ease;transform-origin:.2em 50%;will-change:transform}.reveal .controls .controls-arrow{position:relative;width:3.6em;height:3.6em}.reveal .controls .controls-arrow:before{transform:translate(.5em) translateY(1.55em) rotate(45deg)}.reveal .controls .controls-arrow:after{transform:translate(.5em) translateY(1.55em) rotate(-45deg)}.reveal .controls .controls-arrow:hover:before{transform:translate(.5em) translateY(1.55em) rotate(40deg)}.reveal .controls .controls-arrow:hover:after{transform:translate(.5em) translateY(1.55em) rotate(-40deg)}.reveal .controls .controls-arrow:active:before{transform:translate(.5em) translateY(1.55em) rotate(36deg)}.reveal .controls .controls-arrow:active:after{transform:translate(.5em) translateY(1.55em) rotate(-36deg)}.reveal .controls .navigate-left{right:6.4em;bottom:3.2em;transform:translate(-10px)}.reveal .controls .navigate-left.highlight{animation:bounce-left 2s 50 both ease-out}.reveal .controls .navigate-right{right:0;bottom:3.2em;transform:translate(10px)}.reveal .controls .navigate-right .controls-arrow{transform:rotate(180deg)}.reveal .controls .navigate-right.highlight{animation:bounce-right 2s 50 both ease-out}.reveal .controls .navigate-up{right:3.2em;bottom:6.4em;transform:translateY(-10px)}.reveal .controls .navigate-up .controls-arrow{transform:rotate(90deg)}.reveal .controls .navigate-down{right:3.2em;bottom:-1.4em;padding-bottom:1.4em;transform:translateY(10px)}.reveal .controls .navigate-down .controls-arrow{transform:rotate(-90deg)}.reveal .controls .navigate-down.highlight{animation:bounce-down 2s 50 both ease-out}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled{opacity:.3}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled:hover{opacity:1}.reveal .controls[data-controls-back-arrows=hidden] .navigate-up.enabled{opacity:0;visibility:hidden}.reveal .controls .enabled{visibility:visible;opacity:.9;cursor:pointer;transform:none}.reveal .controls .enabled.fragmented{opacity:.5}.reveal .controls .enabled:hover,.reveal .controls .enabled.fragmented:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled{opacity:.3}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=hidden] .navigate-left.enabled{opacity:0;visibility:hidden}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled{opacity:.3}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled:hover{opacity:1}.reveal.rtl .controls[data-controls-back-arrows=hidden] .navigate-right.enabled{opacity:0;visibility:hidden}.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-up,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-down{display:none}.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-left,.reveal:not(.has-vertical-slides) .controls .navigate-left{bottom:1.4em;right:5.5em}.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-right,.reveal:not(.has-vertical-slides) .controls .navigate-right{bottom:1.4em;right:.5em}.reveal:not(.has-horizontal-slides) .controls .navigate-up{right:1.4em;bottom:5em}.reveal:not(.has-horizontal-slides) .controls .navigate-down{right:1.4em;bottom:.5em}.reveal.has-dark-background .controls{color:#fff}.reveal.has-light-background .controls{color:#000}.reveal.no-hover .controls .controls-arrow:hover:before,.reveal.no-hover .controls .controls-arrow:active:before{transform:translate(.5em) translateY(1.55em) rotate(45deg)}.reveal.no-hover .controls .controls-arrow:hover:after,.reveal.no-hover .controls .controls-arrow:active:after{transform:translate(.5em) translateY(1.55em) rotate(-45deg)}@media screen and (min-width: 500px){.reveal-viewport{--r-controls-spacing: .8em}.reveal .controls[data-controls-layout=edges]{top:0;right:0;bottom:0;left:0}.reveal .controls[data-controls-layout=edges] .navigate-left,.reveal .controls[data-controls-layout=edges] .navigate-right,.reveal .controls[data-controls-layout=edges] .navigate-up,.reveal .controls[data-controls-layout=edges] .navigate-down{bottom:auto;right:auto}.reveal .controls[data-controls-layout=edges] .navigate-left{top:50%;left:var(--r-controls-spacing);margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-right{top:50%;right:var(--r-controls-spacing);margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-up{top:var(--r-controls-spacing);left:50%;margin-left:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-down{bottom:calc(var(--r-controls-spacing) - 1.4em + .3em);left:50%;margin-left:-1.8em}}.reveal .progress{position:absolute;display:none;height:3px;width:100%;bottom:0;left:0;z-index:10;background-color:#0003;color:#fff}.reveal .progress:after{content:"";display:block;position:absolute;height:10px;width:100%;top:-10px}.reveal .progress span{display:block;height:100%;width:100%;background-color:currentColor;transition:transform .8s cubic-bezier(.26,.86,.44,.985);transform-origin:0 0;transform:scaleX(0)}.reveal .slide-number{position:absolute;display:block;right:8px;bottom:8px;z-index:31;font-family:Helvetica,sans-serif;font-size:12px;line-height:1;color:#fff;background-color:#0006;padding:5px}.reveal .slide-number a{color:currentColor}.reveal .slide-number-delimiter{margin:0 3px}.reveal{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pinch-zoom}.reveal.embedded{touch-action:pan-y}.reveal.embedded.is-vertical-slide{touch-action:none}.reveal .slides{position:absolute;width:100%;height:100%;top:0;right:0;bottom:0;left:0;margin:auto;pointer-events:none;overflow:visible;z-index:1;text-align:center;perspective:600px;perspective-origin:50% 40%}.reveal .slides>section{perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;pointer-events:auto;z-index:10;transform-style:flat;transition:transform-origin .8s cubic-bezier(.26,.86,.44,.985),transform .8s cubic-bezier(.26,.86,.44,.985),visibility .8s cubic-bezier(.26,.86,.44,.985),opacity .8s cubic-bezier(.26,.86,.44,.985)}.reveal[data-transition-speed=fast] .slides section{transition-duration:.4s}.reveal[data-transition-speed=slow] .slides section{transition-duration:1.2s}.reveal .slides section[data-transition-speed=fast]{transition-duration:.4s}.reveal .slides section[data-transition-speed=slow]{transition-duration:1.2s}.reveal .slides>section.stack{padding-top:0;padding-bottom:0;pointer-events:none;height:100%}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal .slides>section:empty,.reveal .slides>section>section:empty,.reveal .slides>section[data-background-interactive],.reveal .slides>section>section[data-background-interactive]{pointer-events:none}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:0!important}.reveal .slides>section:not(.present),.reveal .slides>section>section:not(.present){pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section.past,.reveal .slides>section.future,.reveal .slides>section.past>section,.reveal .slides>section.future>section,.reveal .slides>section>section.past,.reveal .slides>section>section.future{opacity:0}.reveal .slides>section[data-transition=slide].past,.reveal .slides>section[data-transition~=slide-out].past,.reveal.slide .slides>section:not([data-transition]).past{transform:translate(-150%)}.reveal .slides>section[data-transition=slide].future,.reveal .slides>section[data-transition~=slide-in].future,.reveal.slide .slides>section:not([data-transition]).future{transform:translate(150%)}.reveal .slides>section>section[data-transition=slide].past,.reveal .slides>section>section[data-transition~=slide-out].past,.reveal.slide .slides>section>section:not([data-transition]).past{transform:translateY(-150%)}.reveal .slides>section>section[data-transition=slide].future,.reveal .slides>section>section[data-transition~=slide-in].future,.reveal.slide .slides>section>section:not([data-transition]).future{transform:translateY(150%)}.reveal .slides>section[data-transition=linear].past,.reveal .slides>section[data-transition~=linear-out].past,.reveal.linear .slides>section:not([data-transition]).past{transform:translate(-150%)}.reveal .slides>section[data-transition=linear].future,.reveal .slides>section[data-transition~=linear-in].future,.reveal.linear .slides>section:not([data-transition]).future{transform:translate(150%)}.reveal .slides>section>section[data-transition=linear].past,.reveal .slides>section>section[data-transition~=linear-out].past,.reveal.linear .slides>section>section:not([data-transition]).past{transform:translateY(-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal .slides>section>section[data-transition~=linear-in].future,.reveal.linear .slides>section>section:not([data-transition]).future{transform:translateY(150%)}.reveal .slides section[data-transition=default].stack,.reveal.default .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=default].past,.reveal .slides>section[data-transition~=default-out].past,.reveal.default .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section[data-transition~=default-in].future,.reveal.default .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section[data-transition~=default-out].past,.reveal.default .slides>section>section:not([data-transition]).past{transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section[data-transition~=default-in].future,.reveal.default .slides>section>section:not([data-transition]).future{transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=convex].stack,.reveal.convex .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=convex].past,.reveal .slides>section[data-transition~=convex-out].past,.reveal.convex .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=convex].future,.reveal .slides>section[data-transition~=convex-in].future,.reveal.convex .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=convex].past,.reveal .slides>section>section[data-transition~=convex-out].past,.reveal.convex .slides>section>section:not([data-transition]).past{transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=convex].future,.reveal .slides>section>section[data-transition~=convex-in].future,.reveal.convex .slides>section>section:not([data-transition]).future{transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=concave].stack,.reveal.concave .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=concave].past,.reveal .slides>section[data-transition~=concave-out].past,.reveal.concave .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal .slides>section[data-transition~=concave-in].future,.reveal.concave .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal .slides>section>section[data-transition~=concave-out].past,.reveal.concave .slides>section>section:not([data-transition]).past{transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal .slides>section>section[data-transition~=concave-in].future,.reveal.concave .slides>section>section:not([data-transition]).future{transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides section[data-transition=zoom],.reveal.zoom .slides section:not([data-transition]){transition-timing-function:ease}.reveal .slides>section[data-transition=zoom].past,.reveal .slides>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section:not([data-transition]).past{visibility:hidden;transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal .slides>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section:not([data-transition]).future{visibility:hidden;transform:scale(.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal .slides>section>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section>section:not([data-transition]).past{transform:scale(16)}.reveal .slides>section>section[data-transition=zoom].future,.reveal .slides>section>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section>section:not([data-transition]).future{transform:scale(.2)}.reveal.cube .slides{perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;backface-visibility:hidden;box-sizing:border-box;transform-style:preserve-3d}.reveal.center.cube .slides section{min-height:0}.reveal.cube .slides section:not(.stack):before{content:"";position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:#0000001a;border-radius:4px;transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:"";position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:none;z-index:1;border-radius:4px;box-shadow:0 95px 25px #0003;transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:none}.reveal.cube .slides>section.past{transform-origin:100% 0%;transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{transform-origin:0% 0%;transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{transform-origin:0% 100%;transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{transform-origin:0% 0%;transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{perspective-origin:0% 50%;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;box-sizing:border-box;transform-style:preserve-3d}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:"";position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:#0000001a;transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:"";position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:none;z-index:1;border-radius:4px;box-shadow:0 95px 25px #0003;-webkit-transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:none}.reveal.page .slides>section.past{transform-origin:0% 0%;transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{transform-origin:100% 0%;transform:translateZ(0)}.reveal.page .slides>section>section.past{transform-origin:0% 0%;transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{transform-origin:0% 100%;transform:translateZ(0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section:not([data-transition]),.reveal.fade .slides>section>section:not([data-transition]){transform:none;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section{transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section:not([data-transition]){transform:none;transition:none}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;visibility:hidden;opacity:0;z-index:100;transition:all 1s ease}.reveal .pause-overlay .resume-button{position:absolute;bottom:20px;right:20px;color:#ccc;border-radius:2px;padding:6px 14px;border:2px solid #ccc;font-size:16px;background:transparent;cursor:pointer}.reveal .pause-overlay .resume-button:hover{color:#fff;border-color:#fff}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.reveal .no-transition,.reveal .no-transition *,.reveal .slides.disable-slide-transitions section{transition:none!important}.reveal .slides.disable-slide-transitions section{transform:none!important}.reveal .backgrounds{position:absolute;width:100%;height:100%;top:0;left:0;perspective:600px}.reveal .slide-background{display:none;position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;overflow:hidden;background-color:#0000;transition:all .8s cubic-bezier(.26,.86,.44,.985)}.reveal .slide-background-content{position:absolute;width:100%;height:100%;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.reveal .slide-background.stack{display:block}.reveal .slide-background.present{opacity:1;visibility:visible;z-index:2}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal .slide-background video{position:absolute;width:100%;height:100%;max-width:none;max-height:none;top:0;left:0;object-fit:cover}.reveal .slide-background[data-background-size=contain] video{object-fit:contain}.reveal[data-background-transition=none]>.backgrounds .slide-background:not([data-background-transition]),.reveal>.backgrounds .slide-background[data-background-transition=none]{transition:none}.reveal[data-background-transition=slide]>.backgrounds .slide-background:not([data-background-transition]),.reveal>.backgrounds .slide-background[data-background-transition=slide]{opacity:1}.reveal[data-background-transition=slide]>.backgrounds .slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background.past[data-background-transition=slide]{transform:translate(-100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background.future[data-background-transition=slide]{transform:translate(100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide]{transform:translateY(-100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide]{transform:translateY(100%)}.reveal[data-background-transition=convex]>.backgrounds .slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background.past[data-background-transition=convex]{opacity:0;transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background.future[data-background-transition=convex]{opacity:0;transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex]{opacity:0;transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex]{opacity:0;transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background.past[data-background-transition=concave]{opacity:0;transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background.future[data-background-transition=concave]{opacity:0;transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave]{opacity:0;transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave]{opacity:0;transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background:not([data-background-transition]),.reveal>.backgrounds .slide-background[data-background-transition=zoom]{transition-timing-function:ease}.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background.past[data-background-transition=zoom]{opacity:0;visibility:hidden;transform:scale(16)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background.future[data-background-transition=zoom]{opacity:0;visibility:hidden;transform:scale(.2)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom]{opacity:0;visibility:hidden;transform:scale(16)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom]{opacity:0;visibility:hidden;transform:scale(.2)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{transition-duration:.4s}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{transition-duration:1.2s}.reveal [data-auto-animate-target^=unmatched]{will-change:opacity}.reveal section[data-auto-animate]:not(.stack):not([data-auto-animate=running]) [data-auto-animate-target^=unmatched]{opacity:0}.reveal.overview{perspective-origin:50% 50%;perspective:700px}.reveal.overview .slides{-moz-transform-style:preserve-3d}.reveal.overview .slides section{height:100%;top:0!important;opacity:1!important;overflow:hidden;visibility:visible!important;cursor:pointer;box-sizing:border-box}.reveal.overview .slides section:hover,.reveal.overview .slides section.present{outline:10px solid rgba(150,150,150,.4);outline-offset:10px}.reveal.overview .slides section .fragment{opacity:1;transition:none}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides>section.stack{padding:0;top:0!important;background:none;outline:none;overflow:visible}.reveal.overview .backgrounds{perspective:inherit;-moz-transform-style:preserve-3d}.reveal.overview .backgrounds .slide-background{opacity:1;visibility:visible;outline:10px solid rgba(150,150,150,.1);outline-offset:10px}.reveal.overview .backgrounds .slide-background.stack{overflow:visible}.reveal.overview .slides section,.reveal.overview-deactivating .slides section{transition:none}.reveal.overview .backgrounds .slide-background,.reveal.overview-deactivating .backgrounds .slide-background{transition:none}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl pre,.reveal.rtl code{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{transform-origin:100% 0}.reveal.has-parallax-background .backgrounds{transition:all .8s ease}.reveal.has-parallax-background[data-transition-speed=fast] .backgrounds{transition-duration:.4s}.reveal.has-parallax-background[data-transition-speed=slow] .backgrounds{transition-duration:1.2s}.reveal>.overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:#000000f2;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:all .3s ease}.reveal>.overlay .spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:visible;opacity:.6;transition:all .3s ease}.reveal>.overlay header{position:absolute;left:0;top:0;width:100%;padding:5px;z-index:2;box-sizing:border-box}.reveal>.overlay header a{display:inline-block;width:40px;height:40px;line-height:36px;padding:0 10px;float:right;opacity:.6;box-sizing:border-box}.reveal>.overlay header a:hover{opacity:1}.reveal>.overlay header a .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.reveal>.overlay header a.close .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC)}.reveal>.overlay header a.external .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==)}.reveal>.overlay .viewport{position:absolute;display:flex;top:50px;right:0;bottom:0;left:0}.reveal>.overlay.overlay-preview .viewport iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;transition:all .3s ease}.reveal>.overlay.overlay-preview.loaded .viewport iframe{opacity:1;visibility:visible}.reveal>.overlay.overlay-preview.loaded .viewport-inner{position:absolute;z-index:-1;left:0;top:45%;width:100%;text-align:center;letter-spacing:normal}.reveal>.overlay.overlay-preview .x-frame-error{opacity:0;transition:opacity .3s ease .3s}.reveal>.overlay.overlay-preview.loaded .x-frame-error{opacity:1}.reveal>.overlay.overlay-preview.loaded .spinner{opacity:0;visibility:hidden;transform:scale(.2)}.reveal>.overlay.overlay-help .viewport{overflow:auto;color:#fff}.reveal>.overlay.overlay-help .viewport .viewport-inner{width:600px;margin:auto;padding:20px 20px 80px;text-align:center;letter-spacing:normal}.reveal>.overlay.overlay-help .viewport .viewport-inner .title{font-size:20px}.reveal>.overlay.overlay-help .viewport .viewport-inner table{border:1px solid #fff;border-collapse:collapse;font-size:16px}.reveal>.overlay.overlay-help .viewport .viewport-inner table th,.reveal>.overlay.overlay-help .viewport .viewport-inner table td{width:200px;padding:14px;border:1px solid #fff;vertical-align:middle}.reveal>.overlay.overlay-help .viewport .viewport-inner table th{padding-top:20px;padding-bottom:20px}.reveal .playback{position:absolute;left:15px;bottom:20px;z-index:30;cursor:pointer;transition:all .4s ease;-webkit-tap-highlight-color:rgba(0,0,0,0)}.reveal.overview .playback{opacity:0;visibility:hidden}.reveal .hljs{min-height:100%}.reveal .hljs table{margin:initial}.reveal .hljs-ln-code,.reveal .hljs-ln-numbers{padding:0;border:0}.reveal .hljs-ln-numbers{opacity:.6;padding-right:.75em;text-align:right;vertical-align:top}.reveal .hljs.has-highlights tr:not(.highlight-line){opacity:.4}.reveal .hljs.has-highlights.fragment{transition:all .2s ease}.reveal .hljs:not(:first-child).fragment{position:absolute;top:0;left:0;width:100%;box-sizing:border-box}.reveal pre[data-auto-animate-target]{overflow:hidden}.reveal pre[data-auto-animate-target] code{height:100%}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;perspective:400px;perspective-origin:50% 50%}.reveal .roll:hover{background:none;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;transition:all .4s ease;transform-origin:50% 0%;transform-style:preserve-3d;backface-visibility:hidden}.reveal .roll:hover span{background:#00000080;transform:translateZ(-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;backface-visibility:hidden;transform-origin:50% 0%;transform:translate3d(0,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.reveal .speaker-notes{display:none;position:absolute;width:33.3333333333%;height:100%;top:0;left:100%;padding:14px 18px;z-index:1;font-size:18px;line-height:1.4;border:1px solid rgba(0,0,0,.05);color:#222;background-color:#f5f5f5;overflow:auto;box-sizing:border-box;text-align:left;font-family:Helvetica,sans-serif;-webkit-overflow-scrolling:touch}.reveal .speaker-notes .notes-placeholder{color:#ccc;font-style:italic}.reveal .speaker-notes:focus{outline:none}.reveal .speaker-notes:before{content:"Speaker notes";display:block;margin-bottom:10px;opacity:.5}.reveal.show-notes{max-width:75%;overflow:visible}.reveal.show-notes .speaker-notes{display:block}@media screen and (min-width: 1600px){.reveal .speaker-notes{font-size:20px}}@media screen and (max-width: 1024px){.reveal.show-notes{border-left:0;max-width:none;max-height:70%;max-height:70vh;overflow:visible}.reveal.show-notes .speaker-notes{top:100%;left:0;width:100%;height:30vh;border:0}}@media screen and (max-width: 600px){.reveal.show-notes{max-height:60%;max-height:60vh}.reveal.show-notes .speaker-notes{top:100%;height:40vh}.reveal .speaker-notes{font-size:14px}}.reveal .jump-to-slide{position:absolute;top:15px;left:15px;z-index:30;font-size:32px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.reveal .jump-to-slide-input{background:transparent;padding:8px;font-size:inherit;color:currentColor;border:0}.reveal .jump-to-slide-input::placeholder{color:currentColor;opacity:.5}.reveal.has-dark-background .jump-to-slide-input{color:#fff}.reveal.has-light-background .jump-to-slide-input{color:#222}.reveal .jump-to-slide-input:focus{outline:none}.zoomed .reveal *,.zoomed .reveal *:before,.zoomed .reveal *:after{backface-visibility:visible!important}.zoomed .reveal .progress,.zoomed .reveal .controls{opacity:0}.zoomed .reveal .roll span{background:none}.zoomed .reveal .roll span:after{visibility:hidden}.reveal-viewport.loading-scroll-mode{visibility:hidden}.reveal-viewport.reveal-scroll{margin:0 auto;overflow:auto;overflow-x:hidden;overflow-y:auto;z-index:1;--r-scrollbar-width: 7px;--r-scrollbar-trigger-size: 5px;--r-controls-spacing: 8px}@media screen and (max-width: 500px){.reveal-viewport.reveal-scroll{--r-scrollbar-width: 3px;--r-scrollbar-trigger-size: 3px}}.reveal-viewport.reveal-scroll .controls,.reveal-viewport.reveal-scroll .progress,.reveal-viewport.reveal-scroll .playback,.reveal-viewport.reveal-scroll .backgrounds,.reveal-viewport.reveal-scroll .slide-number,.reveal-viewport.reveal-scroll .speaker-notes{display:none!important}.reveal-viewport.reveal-scroll .overlay,.reveal-viewport.reveal-scroll .pause-overlay{position:fixed}.reveal-viewport.reveal-scroll .reveal{overflow:visible;touch-action:manipulation}.reveal-viewport.reveal-scroll .slides{position:static;pointer-events:initial;left:auto;top:auto;width:100%!important;margin:0;padding:0;overflow:visible;display:block;perspective:none;perspective-origin:50% 50%}.reveal-viewport.reveal-scroll .scroll-page{position:relative;width:100%;height:calc(var(--page-height) + var(--page-scroll-padding));z-index:1;overflow:visible}.reveal-viewport.reveal-scroll .scroll-page-sticky{position:sticky;height:var(--page-height);top:0}.reveal-viewport.reveal-scroll .scroll-page-content{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.reveal-viewport.reveal-scroll .scroll-page section{visibility:visible!important;display:block!important;position:absolute!important;width:var(--slide-width)!important;height:var(--slide-height)!important;top:50%!important;left:50%!important;opacity:1!important;transform:scale(var(--slide-scale)) translate(-50%,-50%)!important;transform-style:flat!important;transform-origin:0 0!important}.reveal-viewport.reveal-scroll .slide-background{display:block!important;position:absolute;top:0;left:0;width:100%;height:100%;z-index:auto!important;visibility:visible;opacity:1;touch-action:manipulation}.reveal-viewport.reveal-scroll[data-scrollbar=true]::-webkit-scrollbar,.reveal-viewport.reveal-scroll[data-scrollbar=auto]::-webkit-scrollbar{display:none}.reveal-viewport.reveal-scroll[data-scrollbar=true],.reveal-viewport.reveal-scroll[data-scrollbar=auto]{scrollbar-width:none}.reveal.has-dark-background,.reveal-viewport.has-dark-background{--r-overlay-element-bg-color: 240, 240, 240;--r-overlay-element-fg-color: 0, 0, 0}.reveal.has-light-background,.reveal-viewport.has-light-background{--r-overlay-element-bg-color: 0, 0, 0;--r-overlay-element-fg-color: 240, 240, 240}.reveal-viewport.reveal-scroll .scrollbar{position:sticky;top:50%;z-index:20;opacity:0;transition:all .3s ease}.reveal-viewport.reveal-scroll .scrollbar.visible,.reveal-viewport.reveal-scroll .scrollbar:hover{opacity:1}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-inner{position:absolute;width:var(--r-scrollbar-width);height:calc(var(--viewport-height) - var(--r-controls-spacing) * 2);right:var(--r-controls-spacing);top:0;transform:translateY(-50%);border-radius:var(--r-scrollbar-width);z-index:10}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-playhead{position:absolute;width:var(--r-scrollbar-width);height:var(--r-scrollbar-width);top:0;left:0;border-radius:var(--r-scrollbar-width);background-color:rgba(var(--r-overlay-element-bg-color),1);z-index:11;transition:background-color .2s ease}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide{position:absolute;width:100%;background-color:rgba(var(--r-overlay-element-bg-color),.2);box-shadow:0 0 0 1px rgba(var(--r-overlay-element-fg-color),.1);border-radius:var(--r-scrollbar-width);transition:background-color .2s ease}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide:after{content:"";position:absolute;width:200%;height:100%;top:0;left:-50%;background:#0000;z-index:-1}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide:hover,.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active{background-color:rgba(var(--r-overlay-element-bg-color),.4)}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-trigger{position:absolute;width:100%;transition:background-color .2s ease}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active.has-triggers{background-color:rgba(var(--r-overlay-element-bg-color),.4);z-index:10}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger:after{content:"";position:absolute;width:var(--r-scrollbar-trigger-size);height:var(--r-scrollbar-trigger-size);border-radius:20px;top:50%;left:50%;transform:translate(-50%,-50%);background-color:rgba(var(--r-overlay-element-bg-color),1);transition:transform .2s ease,opacity .2s ease;opacity:.4}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger.active:after,.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger.active~.scrollbar-trigger:after{opacity:1}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger~.scrollbar-trigger.active:after{transform:translate(calc(var(--r-scrollbar-width) * -2));background-color:rgba(var(--r-overlay-element-bg-color),1)} +.reveal .stretch,.reveal .r-stretch{max-width:none;max-height:none}.reveal pre.stretch code,.reveal pre.r-stretch code{height:100%;max-height:100%;box-sizing:border-box}.reveal .r-fit-text{display:inline-block;white-space:nowrap}.reveal .r-stack{display:grid;grid-template-rows:100%}.reveal .r-stack>*{grid-area:1/1;margin:auto}.reveal .r-vstack,.reveal .r-hstack{display:flex}.reveal .r-vstack img,.reveal .r-vstack video,.reveal .r-hstack img,.reveal .r-hstack video{min-width:0;min-height:0;object-fit:contain}.reveal .r-vstack{flex-direction:column;align-items:center;justify-content:center}.reveal .r-hstack{flex-direction:row;align-items:center;justify-content:center}.reveal .items-stretch{align-items:stretch}.reveal .items-start{align-items:flex-start}.reveal .items-center{align-items:center}.reveal .items-end{align-items:flex-end}.reveal .justify-between{justify-content:space-between}.reveal .justify-around{justify-content:space-around}.reveal .justify-start{justify-content:flex-start}.reveal .justify-center{justify-content:center}.reveal .justify-end{justify-content:flex-end}html.reveal-print *{-webkit-print-color-adjust:exact}html.reveal-print{width:100%;height:100%;overflow:visible}html.reveal-print body{margin:0 auto!important;border:0;padding:0;float:none!important;overflow:visible}html.reveal-print .nestedarrow,html.reveal-print .reveal .controls,html.reveal-print .reveal .progress,html.reveal-print .reveal .playback,html.reveal-print .reveal.overview,html.reveal-print .state-background{display:none!important}html.reveal-print .reveal pre code{overflow:hidden!important}html.reveal-print .reveal{width:auto!important;height:auto!important;overflow:hidden!important}html.reveal-print .reveal .slides{position:static;width:100%!important;height:auto!important;zoom:1!important;pointer-events:initial;left:auto;top:auto;margin:0!important;padding:0!important;overflow:visible;display:block;perspective:none;perspective-origin:50% 50%}html.reveal-print .reveal .slides .pdf-page{position:relative;overflow:hidden;z-index:1;page-break-after:always}html.reveal-print .reveal .slides .pdf-page:last-of-type{page-break-after:avoid}html.reveal-print .reveal .slides section{visibility:visible!important;display:block!important;position:absolute!important;margin:0!important;padding:0!important;box-sizing:border-box!important;min-height:1px;opacity:1!important;transform-style:flat!important;transform:none!important}html.reveal-print .reveal section.stack{position:relative!important;margin:0!important;padding:0!important;page-break-after:avoid!important;height:auto!important;min-height:auto!important}html.reveal-print .reveal img{box-shadow:none}html.reveal-print .reveal .backgrounds{display:none}html.reveal-print .reveal .slide-background{display:block!important;position:absolute;top:0;left:0;width:100%;height:100%;z-index:auto!important}html.reveal-print .reveal.show-notes{max-width:none;max-height:none}html.reveal-print .reveal .speaker-notes-pdf{display:block;width:100%;height:auto;max-height:none;top:auto;right:auto;bottom:auto;left:auto;z-index:100}html.reveal-print .reveal .speaker-notes-pdf[data-layout=separate-page]{position:relative;color:inherit;background-color:transparent;padding:20px;page-break-after:always;border:0}html.reveal-print .reveal .slide-number-pdf{display:block;position:absolute;font-size:14px;visibility:visible}html.reveal-print .aria-status{display:none}@media print{html:not(.print-pdf){overflow:visible;width:auto;height:auto}html:not(.print-pdf) body{margin:0;padding:0;overflow:visible}html:not(.print-pdf) .reveal{background:#fff;font-size:20pt}html:not(.print-pdf) .reveal .controls,html:not(.print-pdf) .reveal .state-background,html:not(.print-pdf) .reveal .progress,html:not(.print-pdf) .reveal .backgrounds,html:not(.print-pdf) .reveal .slide-number{display:none!important}html:not(.print-pdf) .reveal p,html:not(.print-pdf) .reveal td,html:not(.print-pdf) .reveal li{font-size:20pt!important;color:#000}html:not(.print-pdf) .reveal h1,html:not(.print-pdf) .reveal h2,html:not(.print-pdf) .reveal h3,html:not(.print-pdf) .reveal h4,html:not(.print-pdf) .reveal h5,html:not(.print-pdf) .reveal h6{color:#000!important;height:auto;line-height:normal;text-align:left;letter-spacing:normal}html:not(.print-pdf) .reveal h1{font-size:28pt!important}html:not(.print-pdf) .reveal h2{font-size:24pt!important}html:not(.print-pdf) .reveal h3{font-size:22pt!important}html:not(.print-pdf) .reveal h4{font-size:22pt!important;font-variant:small-caps}html:not(.print-pdf) .reveal h5{font-size:21pt!important}html:not(.print-pdf) .reveal h6{font-size:20pt!important;font-style:italic}html:not(.print-pdf) .reveal a:link,html:not(.print-pdf) .reveal a:visited{color:#000!important;font-weight:700;text-decoration:underline}html:not(.print-pdf) .reveal ul,html:not(.print-pdf) .reveal ol,html:not(.print-pdf) .reveal div,html:not(.print-pdf) .reveal p{visibility:visible;position:static;width:auto;height:auto;display:block;overflow:visible;margin:0;text-align:left!important}html:not(.print-pdf) .reveal pre,html:not(.print-pdf) .reveal table{margin-left:0;margin-right:0}html:not(.print-pdf) .reveal pre code{padding:20px}html:not(.print-pdf) .reveal blockquote{margin:20px 0}html:not(.print-pdf) .reveal .slides{position:static!important;width:auto!important;height:auto!important;left:0!important;top:0!important;margin-left:0!important;margin-top:0!important;padding:0!important;zoom:1!important;transform:none!important;overflow:visible!important;display:block!important;text-align:left!important;perspective:none;perspective-origin:50% 50%}html:not(.print-pdf) .reveal .slides section{visibility:visible!important;position:static!important;width:auto!important;height:auto!important;display:block!important;overflow:visible!important;left:0!important;top:0!important;margin-left:0!important;margin-top:0!important;padding:60px 20px!important;z-index:auto!important;opacity:1!important;page-break-after:always!important;transform-style:flat!important;transform:none!important;transition:none!important}html:not(.print-pdf) .reveal .slides section.stack{padding:0!important}html:not(.print-pdf) .reveal .slides section:last-of-type{page-break-after:avoid!important}html:not(.print-pdf) .reveal .slides section .fragment{opacity:1!important;visibility:visible!important;transform:none!important}html:not(.print-pdf) .reveal .r-fit-text{white-space:normal!important}html:not(.print-pdf) .reveal section img{display:block;margin:15px 0;background:#fff;border:1px solid #666;box-shadow:none}html:not(.print-pdf) .reveal section small{font-size:.8em}html:not(.print-pdf) .reveal .hljs{max-height:100%;white-space:pre-wrap;word-wrap:break-word;word-break:break-word;font-size:15pt}html:not(.print-pdf) .reveal .hljs .hljs-ln-numbers{white-space:nowrap}html:not(.print-pdf) .reveal .hljs td{font-size:inherit!important;color:inherit!important}}html.reveal-full-page{width:100%;height:100%;height:100vh;height:calc(var(--vh, 1vh) * 100);height:100dvh;overflow:hidden}.reveal-viewport{height:100%;overflow:hidden;position:relative;line-height:1;margin:0;background-color:#fff;color:#000;--r-controls-spacing: 12px;--r-overlay-header-height: 40px;--r-overlay-margin: 0px;--r-overlay-padding: 6px;--r-overlay-gap: 5px}.reveal-viewport:fullscreen{top:0!important;left:0!important;width:100%!important;height:100%!important;transform:none!important}.reveal .fragment{transition:all .2s ease}.reveal .fragment:not(.custom){opacity:0;visibility:hidden;will-change:opacity}.reveal .fragment.visible{opacity:1;visibility:inherit}.reveal .fragment.disabled{transition:none}.reveal .fragment.grow{opacity:1;visibility:inherit}.reveal .fragment.grow.visible{transform:scale(1.3)}.reveal .fragment.shrink{opacity:1;visibility:inherit}.reveal .fragment.shrink.visible{transform:scale(.7)}.reveal .fragment.zoom-in{transform:scale(.1)}.reveal .fragment.zoom-in.visible{transform:none}.reveal .fragment.fade-out{opacity:1;visibility:inherit}.reveal .fragment.fade-out.visible{opacity:0;visibility:hidden}.reveal .fragment.semi-fade-out{opacity:1;visibility:inherit}.reveal .fragment.semi-fade-out.visible{opacity:.5;visibility:inherit}.reveal .fragment.strike{opacity:1;visibility:inherit}.reveal .fragment.strike.visible{text-decoration:line-through}.reveal .fragment.fade-up{transform:translateY(40px)}.reveal .fragment.fade-up.visible{transform:translate(0)}.reveal .fragment.fade-down{transform:translateY(-40px)}.reveal .fragment.fade-down.visible{transform:translate(0)}.reveal .fragment.fade-right{transform:translate(-40px)}.reveal .fragment.fade-right.visible{transform:translate(0)}.reveal .fragment.fade-left{transform:translate(40px)}.reveal .fragment.fade-left.visible{transform:translate(0)}.reveal .fragment.fade-in-then-out,.reveal .fragment.current-visible{opacity:0;visibility:hidden}.reveal .fragment.fade-in-then-out.current-fragment,.reveal .fragment.current-visible.current-fragment{opacity:1;visibility:inherit}.reveal .fragment.fade-in-then-semi-out{opacity:0;visibility:hidden}.reveal .fragment.fade-in-then-semi-out.visible{opacity:.5;visibility:inherit}.reveal .fragment.fade-in-then-semi-out.current-fragment,.reveal .fragment.highlight-red,.reveal .fragment.highlight-current-red,.reveal .fragment.highlight-green,.reveal .fragment.highlight-current-green,.reveal .fragment.highlight-blue,.reveal .fragment.highlight-current-blue{opacity:1;visibility:inherit}.reveal .fragment.highlight-red.visible{color:#ff2c2d}.reveal .fragment.highlight-green.visible{color:#17ff2e}.reveal .fragment.highlight-blue.visible{color:#1b91ff}.reveal .fragment.highlight-current-red.current-fragment{color:#ff2c2d}.reveal .fragment.highlight-current-green.current-fragment{color:#17ff2e}.reveal .fragment.highlight-current-blue.current-fragment{color:#1b91ff}.reveal:after{content:"";font-style:italic}.reveal iframe{z-index:1}.reveal a{position:relative}@keyframes bounce-right{0%,10%,25%,40%,50%{transform:translate(0)}20%{transform:translate(10px)}30%{transform:translate(-5px)}}@keyframes bounce-left{0%,10%,25%,40%,50%{transform:translate(0)}20%{transform:translate(-10px)}30%{transform:translate(5px)}}@keyframes bounce-down{0%,10%,25%,40%,50%{transform:translateY(0)}20%{transform:translateY(10px)}30%{transform:translateY(-5px)}}.reveal .controls{display:none;position:absolute;top:auto;bottom:var(--r-controls-spacing);right:var(--r-controls-spacing);left:auto;z-index:11;color:#000;pointer-events:none;font-size:10px}.reveal .controls button{position:absolute;padding:0;background-color:transparent;border:0;outline:0;cursor:pointer;color:currentColor;transform:scale(.9999);transition:color .2s ease,opacity .2s ease,transform .2s ease;z-index:2;pointer-events:auto;font-size:inherit;visibility:hidden;opacity:0;-webkit-appearance:none;-webkit-tap-highlight-color:rgba(0,0,0,0)}.reveal .controls .controls-arrow:before,.reveal .controls .controls-arrow:after{content:"";position:absolute;top:0;left:0;width:2.6em;height:.5em;border-radius:.25em;background-color:currentColor;transition:all .15s ease,background-color .8s ease;transform-origin:.2em 50%;will-change:transform}.reveal .controls .controls-arrow{position:relative;width:3.6em;height:3.6em}.reveal .controls .controls-arrow:before{transform:translate(.5em) translateY(1.55em) rotate(45deg)}.reveal .controls .controls-arrow:after{transform:translate(.5em) translateY(1.55em) rotate(-45deg)}.reveal .controls .controls-arrow:hover:before{transform:translate(.5em) translateY(1.55em) rotate(40deg)}.reveal .controls .controls-arrow:hover:after{transform:translate(.5em) translateY(1.55em) rotate(-40deg)}.reveal .controls .controls-arrow:active:before{transform:translate(.5em) translateY(1.55em) rotate(36deg)}.reveal .controls .controls-arrow:active:after{transform:translate(.5em) translateY(1.55em) rotate(-36deg)}.reveal .controls .navigate-left{right:6.4em;bottom:3.2em;transform:translate(-10px)}.reveal .controls .navigate-left.highlight{animation:bounce-left 2s 50 both ease-out}.reveal .controls .navigate-right{right:0;bottom:3.2em;transform:translate(10px)}.reveal .controls .navigate-right .controls-arrow{transform:rotate(180deg)}.reveal .controls .navigate-right.highlight{animation:bounce-right 2s 50 both ease-out}.reveal .controls .navigate-up{right:3.2em;bottom:6.4em;transform:translateY(-10px)}.reveal .controls .navigate-up .controls-arrow{transform:rotate(90deg)}.reveal .controls .navigate-down{right:3.2em;bottom:-1.4em;padding-bottom:1.4em;transform:translateY(10px)}.reveal .controls .navigate-down .controls-arrow{transform:rotate(-90deg)}.reveal .controls .navigate-down.highlight{animation:bounce-down 2s 50 both ease-out}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled{opacity:.3}.reveal .controls[data-controls-back-arrows=faded] .navigate-up.enabled:hover{opacity:1}.reveal .controls[data-controls-back-arrows=hidden] .navigate-up.enabled{opacity:0;visibility:hidden}.reveal .controls .enabled{visibility:visible;opacity:.9;cursor:pointer;transform:none}.reveal .controls .enabled.fragmented{opacity:.5}.reveal .controls .enabled:hover,.reveal .controls .enabled.fragmented:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled{opacity:.3}.reveal:not(.rtl) .controls[data-controls-back-arrows=faded] .navigate-left.enabled:hover{opacity:1}.reveal:not(.rtl) .controls[data-controls-back-arrows=hidden] .navigate-left.enabled{opacity:0;visibility:hidden}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled{opacity:.3}.reveal.rtl .controls[data-controls-back-arrows=faded] .navigate-right.enabled:hover{opacity:1}.reveal.rtl .controls[data-controls-back-arrows=hidden] .navigate-right.enabled{opacity:0;visibility:hidden}.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-up,.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-down{display:none}.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-left,.reveal:not(.has-vertical-slides) .controls .navigate-left{bottom:1.4em;right:5.5em}.reveal[data-navigation-mode=linear].has-horizontal-slides .navigate-right,.reveal:not(.has-vertical-slides) .controls .navigate-right{bottom:1.4em;right:.5em}.reveal:not(.has-horizontal-slides) .controls .navigate-up{right:1.4em;bottom:5em}.reveal:not(.has-horizontal-slides) .controls .navigate-down{right:1.4em;bottom:.5em}.reveal.has-dark-background .controls{color:#fff}.reveal.has-light-background .controls{color:#000}.reveal.no-hover .controls .controls-arrow:hover:before,.reveal.no-hover .controls .controls-arrow:active:before{transform:translate(.5em) translateY(1.55em) rotate(45deg)}.reveal.no-hover .controls .controls-arrow:hover:after,.reveal.no-hover .controls .controls-arrow:active:after{transform:translate(.5em) translateY(1.55em) rotate(-45deg)}@media screen and (min-width: 500px){.reveal-viewport{--r-controls-spacing: .8em}.reveal .controls[data-controls-layout=edges]{top:0;right:0;bottom:0;left:0}.reveal .controls[data-controls-layout=edges] .navigate-left,.reveal .controls[data-controls-layout=edges] .navigate-right,.reveal .controls[data-controls-layout=edges] .navigate-up,.reveal .controls[data-controls-layout=edges] .navigate-down{bottom:auto;right:auto}.reveal .controls[data-controls-layout=edges] .navigate-left{top:50%;left:var(--r-controls-spacing);margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-right{top:50%;right:var(--r-controls-spacing);margin-top:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-up{top:var(--r-controls-spacing);left:50%;margin-left:-1.8em}.reveal .controls[data-controls-layout=edges] .navigate-down{bottom:calc(var(--r-controls-spacing) - 1.4em + .3em);left:50%;margin-left:-1.8em}}.reveal .progress{position:absolute;display:none;height:3px;width:100%;bottom:0;left:0;z-index:10;background-color:#0003;color:#fff}.reveal .progress:after{content:"";display:block;position:absolute;height:10px;width:100%;top:-10px}.reveal .progress span{display:block;height:100%;width:100%;background-color:currentColor;transition:transform .8s cubic-bezier(.26,.86,.44,.985);transform-origin:0 0;transform:scaleX(0)}.reveal .slide-number{position:absolute;display:block;right:8px;bottom:8px;z-index:31;font-family:Helvetica,sans-serif;font-size:12px;line-height:1;color:#fff;background-color:#0006;padding:5px}.reveal .slide-number a{color:currentColor}.reveal .slide-number-delimiter{margin:0 3px}.reveal{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pinch-zoom}.reveal.embedded{touch-action:pan-y}.reveal.embedded.is-vertical-slide{touch-action:none}.reveal .slides{position:absolute;width:100%;height:100%;top:0;right:0;bottom:0;left:0;margin:auto;pointer-events:none;overflow:visible;z-index:1;text-align:center;perspective:600px;perspective-origin:50% 40%}.reveal .slides>section{perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;pointer-events:auto;z-index:10;transform-style:flat;transition:transform-origin .8s cubic-bezier(.26,.86,.44,.985),transform .8s cubic-bezier(.26,.86,.44,.985),visibility .8s cubic-bezier(.26,.86,.44,.985),opacity .8s cubic-bezier(.26,.86,.44,.985)}.reveal[data-transition-speed=fast] .slides section{transition-duration:.4s}.reveal[data-transition-speed=slow] .slides section{transition-duration:1.2s}.reveal .slides section[data-transition-speed=fast]{transition-duration:.4s}.reveal .slides section[data-transition-speed=slow]{transition-duration:1.2s}.reveal .slides>section.stack{padding-top:0;padding-bottom:0;pointer-events:none;height:100%}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal .slides>section:empty,.reveal .slides>section>section:empty,.reveal .slides>section[data-background-interactive],.reveal .slides>section>section[data-background-interactive]{pointer-events:none}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:0!important}.reveal .slides>section:not(.present),.reveal .slides>section>section:not(.present){pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section.past,.reveal .slides>section.future,.reveal .slides>section.past>section,.reveal .slides>section.future>section,.reveal .slides>section>section.past,.reveal .slides>section>section.future{opacity:0}.reveal .slides>section[data-transition=slide].past,.reveal .slides>section[data-transition~=slide-out].past,.reveal.slide .slides>section:not([data-transition]).past{transform:translate(-150%)}.reveal .slides>section[data-transition=slide].future,.reveal .slides>section[data-transition~=slide-in].future,.reveal.slide .slides>section:not([data-transition]).future{transform:translate(150%)}.reveal .slides>section>section[data-transition=slide].past,.reveal .slides>section>section[data-transition~=slide-out].past,.reveal.slide .slides>section>section:not([data-transition]).past{transform:translateY(-150%)}.reveal .slides>section>section[data-transition=slide].future,.reveal .slides>section>section[data-transition~=slide-in].future,.reveal.slide .slides>section>section:not([data-transition]).future{transform:translateY(150%)}.reveal .slides>section[data-transition=linear].past,.reveal .slides>section[data-transition~=linear-out].past,.reveal.linear .slides>section:not([data-transition]).past{transform:translate(-150%)}.reveal .slides>section[data-transition=linear].future,.reveal .slides>section[data-transition~=linear-in].future,.reveal.linear .slides>section:not([data-transition]).future{transform:translate(150%)}.reveal .slides>section>section[data-transition=linear].past,.reveal .slides>section>section[data-transition~=linear-out].past,.reveal.linear .slides>section>section:not([data-transition]).past{transform:translateY(-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal .slides>section>section[data-transition~=linear-in].future,.reveal.linear .slides>section>section:not([data-transition]).future{transform:translateY(150%)}.reveal .slides section[data-transition=default].stack,.reveal.default .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=default].past,.reveal .slides>section[data-transition~=default-out].past,.reveal.default .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section[data-transition~=default-in].future,.reveal.default .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section[data-transition~=default-out].past,.reveal.default .slides>section>section:not([data-transition]).past{transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section[data-transition~=default-in].future,.reveal.default .slides>section>section:not([data-transition]).future{transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=convex].stack,.reveal.convex .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=convex].past,.reveal .slides>section[data-transition~=convex-out].past,.reveal.convex .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=convex].future,.reveal .slides>section[data-transition~=convex-in].future,.reveal.convex .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=convex].past,.reveal .slides>section>section[data-transition~=convex-out].past,.reveal.convex .slides>section>section:not([data-transition]).past{transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=convex].future,.reveal .slides>section>section[data-transition~=convex-in].future,.reveal.convex .slides>section>section:not([data-transition]).future{transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides section[data-transition=concave].stack,.reveal.concave .slides section.stack{transform-style:preserve-3d}.reveal .slides>section[data-transition=concave].past,.reveal .slides>section[data-transition~=concave-out].past,.reveal.concave .slides>section:not([data-transition]).past{transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal .slides>section[data-transition~=concave-in].future,.reveal.concave .slides>section:not([data-transition]).future{transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal .slides>section>section[data-transition~=concave-out].past,.reveal.concave .slides>section>section:not([data-transition]).past{transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal .slides>section>section[data-transition~=concave-in].future,.reveal.concave .slides>section>section:not([data-transition]).future{transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides section[data-transition=zoom],.reveal.zoom .slides section:not([data-transition]){transition-timing-function:ease}.reveal .slides>section[data-transition=zoom].past,.reveal .slides>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section:not([data-transition]).past{visibility:hidden;transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal .slides>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section:not([data-transition]).future{visibility:hidden;transform:scale(.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal .slides>section>section[data-transition~=zoom-out].past,.reveal.zoom .slides>section>section:not([data-transition]).past{transform:scale(16)}.reveal .slides>section>section[data-transition=zoom].future,.reveal .slides>section>section[data-transition~=zoom-in].future,.reveal.zoom .slides>section>section:not([data-transition]).future{transform:scale(.2)}.reveal.cube .slides{perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;backface-visibility:hidden;box-sizing:border-box;transform-style:preserve-3d}.reveal.center.cube .slides section{min-height:0}.reveal.cube .slides section:not(.stack):before{content:"";position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:#0000001a;border-radius:4px;transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:"";position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:none;z-index:1;border-radius:4px;box-shadow:0 95px 25px #0003;transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:none}.reveal.cube .slides>section.past{transform-origin:100% 0%;transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{transform-origin:0% 0%;transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{transform-origin:0% 100%;transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{transform-origin:0% 0%;transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{perspective-origin:0% 50%;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;box-sizing:border-box;transform-style:preserve-3d}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:"";position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:#0000001a;transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:"";position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:none;z-index:1;border-radius:4px;box-shadow:0 95px 25px #0003;transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:none}.reveal.page .slides>section.past{transform-origin:0% 0%;transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{transform-origin:100% 0%;transform:translateZ(0)}.reveal.page .slides>section>section.past{transform-origin:0% 0%;transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{transform-origin:0% 100%;transform:translateZ(0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section:not([data-transition]),.reveal.fade .slides>section>section:not([data-transition]){transform:none;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section{transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section:not([data-transition]){transform:none;transition:none}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;visibility:hidden;opacity:0;z-index:100;transition:all 1s ease}.reveal .pause-overlay .resume-button{position:absolute;bottom:20px;right:20px;color:#ccc;border-radius:2px;padding:6px 14px;border:2px solid #ccc;font-size:16px;background:transparent;cursor:pointer}.reveal .pause-overlay .resume-button:hover{color:#fff;border-color:#fff}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.reveal .no-transition,.reveal .no-transition *,.reveal .slides.disable-slide-transitions section{transition:none!important}.reveal .slides.disable-slide-transitions section{transform:none!important}.reveal .backgrounds{position:absolute;width:100%;height:100%;top:0;left:0;perspective:600px}.reveal .slide-background{display:none;position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;overflow:hidden;background-color:#0000;transition:all .8s cubic-bezier(.26,.86,.44,.985)}.reveal .slide-background-content{position:absolute;width:100%;height:100%;background-position:50% 50%;background-repeat:no-repeat;background-size:cover}.reveal .slide-background.stack{display:block}.reveal .slide-background.present{opacity:1;visibility:visible;z-index:2}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal .slide-background video{position:absolute;width:100%;height:100%;max-width:none;max-height:none;top:0;left:0;object-fit:cover}.reveal .slide-background[data-background-size=contain] video{object-fit:contain}.reveal[data-background-transition=none]>.backgrounds .slide-background:not([data-background-transition]),.reveal>.backgrounds .slide-background[data-background-transition=none]{transition:none}.reveal[data-background-transition=slide]>.backgrounds .slide-background:not([data-background-transition]),.reveal>.backgrounds .slide-background[data-background-transition=slide]{opacity:1}.reveal[data-background-transition=slide]>.backgrounds .slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background.past[data-background-transition=slide]{transform:translate(-100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background.future[data-background-transition=slide]{transform:translate(100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide]{transform:translateY(-100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide]{transform:translateY(100%)}.reveal[data-background-transition=convex]>.backgrounds .slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background.past[data-background-transition=convex]{opacity:0;transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background.future[data-background-transition=convex]{opacity:0;transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex]{opacity:0;transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex]{opacity:0;transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background.past[data-background-transition=concave]{opacity:0;transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background.future[data-background-transition=concave]{opacity:0;transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave]{opacity:0;transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave]{opacity:0;transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background:not([data-background-transition]),.reveal>.backgrounds .slide-background[data-background-transition=zoom]{transition-timing-function:ease}.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background.past[data-background-transition=zoom]{opacity:0;visibility:hidden;transform:scale(16)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background.future[data-background-transition=zoom]{opacity:0;visibility:hidden;transform:scale(.2)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom]{opacity:0;visibility:hidden;transform:scale(16)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future:not([data-background-transition]),.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom]{opacity:0;visibility:hidden;transform:scale(.2)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{transition-duration:.4s}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{transition-duration:1.2s}.reveal [data-auto-animate-target^=unmatched]{will-change:opacity}.reveal section[data-auto-animate]:not(.stack):not([data-auto-animate=running]) [data-auto-animate-target^=unmatched]{opacity:0}.reveal.overview{perspective-origin:50% 50%;perspective:700px}.reveal.overview .slides section{height:100%;top:0!important;opacity:1!important;overflow:hidden;visibility:visible!important;cursor:pointer;box-sizing:border-box}.reveal.overview .slides section:hover,.reveal.overview .slides section.present{outline:10px solid rgba(150,150,150,.4);outline-offset:10px}.reveal.overview .slides section .fragment{opacity:1;transition:none}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides>section.stack{padding:0;top:0!important;background:none;outline:none;overflow:visible}.reveal.overview .backgrounds{perspective:inherit}.reveal.overview .backgrounds .slide-background{opacity:1;visibility:visible;outline:10px solid rgba(150,150,150,.1);outline-offset:10px}.reveal.overview .backgrounds .slide-background.stack{overflow:visible}.reveal.overview .slides section,.reveal.overview-deactivating .slides section{transition:none}.reveal.overview .backgrounds .slide-background,.reveal.overview-deactivating .backgrounds .slide-background{transition:none}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl pre,.reveal.rtl code{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{transform-origin:100% 0}.reveal.has-parallax-background .backgrounds{transition:all .8s ease}.reveal.has-parallax-background[data-transition-speed=fast] .backgrounds{transition-duration:.4s}.reveal.has-parallax-background[data-transition-speed=slow] .backgrounds{transition-duration:1.2s}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes scale-up{0%{transform:scale(.95)}to{transform:scale(1)}}.reveal [data-preview-image],.reveal [data-preview-video]{cursor:zoom-in}.r-overlay{position:absolute;top:var(--r-overlay-margin);right:var(--r-overlay-margin);bottom:var(--r-overlay-margin);left:var(--r-overlay-margin);border-radius:min(var(--r-overlay-margin),6px);z-index:1000;background:#000000f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease;color:#fff;animation:fade-in .3s ease;font-family:ui-sans-serif,system-ui,-apple-system,Helvetica,sans-serif}.r-overlay-viewport{position:absolute;top:var(--r-overlay-padding);right:var(--r-overlay-padding);bottom:var(--r-overlay-padding);left:var(--r-overlay-padding);gap:var(--r-overlay-gap);display:flex;flex-direction:column}.r-overlay-header{display:flex;z-index:2;box-sizing:border-box;align-items:center;justify-content:flex-end;height:var(--r-overlay-header-height);gap:6px}.r-overlay-header .r-overlay-button{all:unset;display:flex;align-items:center;justify-content:center;min-width:var(--r-overlay-header-height);min-height:var(--r-overlay-header-height);padding:0 10px;opacity:1;border-radius:6px;font-size:18px;gap:8px;cursor:pointer;box-sizing:border-box}.r-overlay-header .r-overlay-button:hover{opacity:1;background-color:#ffffff26}.r-overlay-header .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.r-overlay-close .icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMTIuODU0IDIuODU0YS41LjUgMCAwIDAtLjcwOC0uNzA4TDcuNSA2Ljc5MyAyLjg1NCAyLjE0NmEuNS41IDAgMSAwLS43MDguNzA4TDYuNzkzIDcuNWwtNC42NDcgNC42NDZhLjUuNSAwIDAgMCAuNzA4LjcwOEw3LjUgOC4yMDdsNC42NDYgNC42NDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMOC4yMDcgNy41bDQuNjQ3LTQuNjQ2WiIgY2xpcC1ydWxlPSJldmVub2RkIi8+PC9zdmc+)}.r-overlay-external .icon{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSI+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMyAyYTEgMSAwIDAgMC0xIDF2OWExIDEgMCAwIDAgMSAxaDlhMSAxIDAgMCAwIDEtMVY4LjVhLjUuNSAwIDAgMC0xIDBWMTJIM1YzaDMuNWEuNS41IDAgMCAwIDAtMUgzWm05Ljg1NC4xNDZhLjUuNSAwIDAgMSAuMTQ2LjM1MVY1LjVhLjUuNSAwIDAgMS0xIDBWMy43MDdMNi44NTQgOC44NTRhLjUuNSAwIDEgMS0uNzA4LS43MDhMMTEuMjkzIDNIOS41YS41LjUgMCAwIDEgMC0xaDNhLjQ5OS40OTkgMCAwIDEgLjM1NC4xNDZaIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)}.r-overlay-content{position:relative;display:grid;place-items:center;border-radius:6px;overflow:hidden;flex-grow:1;background-color:#141414cc;animation:scale-up .5s cubic-bezier(.26,.86,.44,.985)}.r-overlay-spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:hidden;opacity:0}.r-overlay-preview iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;transition:all .3s ease}.r-overlay-preview[data-state=loaded] iframe{opacity:1;visibility:visible}.r-overlay-preview img,.r-overlay-preview video{position:absolute;max-width:100%;max-height:100%;width:100%;height:100%;margin:0;object-fit:scale-down}.r-overlay-preview[data-preview-fit=none] img,.r-overlay-preview[data-preview-fit=none] video{object-fit:none}.r-overlay-preview[data-preview-fit=scale-down] img,.r-overlay-preview[data-preview-fit=scale-down] video{object-fit:scale-down}.r-overlay-preview[data-preview-fit=contain] img,.r-overlay-preview[data-preview-fit=contain] video{object-fit:contain}.r-overlay-preview[data-preview-fit=cover] img,.r-overlay-preview[data-preview-fit=cover] video{object-fit:cover}.r-overlay-preview[data-state=loaded] .r-overlay-content-inner{position:absolute;z-index:-1;left:0;top:45%;width:100%;text-align:center;letter-spacing:normal}.r-overlay-preview .r-overlay-error{font-size:18px;color:orange}.r-overlay-preview .x-frame-error{opacity:0;transition:opacity .3s ease .3s}.r-overlay-preview[data-state=loaded] .x-frame-error{opacity:1}.r-overlay-preview[data-state=loading] .r-overlay-spinner{opacity:.6;visibility:visible}.r-overlay-help .r-overlay-content{overflow:auto}.r-overlay-help-content{max-width:560px;padding:20px 0;margin:auto;text-align:center;letter-spacing:normal}.r-overlay-help-content .title{font-size:20px;margin-top:0}.r-overlay-help-content table{border:1px solid #fff;border-collapse:collapse;font-size:16px;text-align:left}.r-overlay-help-content table th,.r-overlay-help-content table td{width:240px;padding:14px;border:1px solid #fff;vertical-align:middle}.r-overlay-help-content table th{padding-top:20px;padding-bottom:20px}.reveal .playback{position:absolute;left:15px;bottom:20px;z-index:30;cursor:pointer;transition:all .4s ease;-webkit-tap-highlight-color:rgba(0,0,0,0)}.reveal.overview .playback{opacity:0;visibility:hidden}.reveal .hljs{min-height:100%}.reveal .hljs table{margin:initial}.reveal .hljs-ln-code,.reveal .hljs-ln-numbers{padding:0;border:0}.reveal .hljs-ln-numbers{opacity:.6;padding-right:.75em;text-align:right;vertical-align:top}.reveal .hljs.has-highlights tr:not(.highlight-line){opacity:.4}.reveal .hljs.has-highlights.fragment{transition:all .2s ease}.reveal .hljs:not(:first-child).fragment{position:absolute;top:0;left:0;width:100%;box-sizing:border-box}.reveal pre[data-auto-animate-target]{overflow:hidden}.reveal pre[data-auto-animate-target] code{height:100%}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;perspective:400px;perspective-origin:50% 50%}.reveal .roll:hover{background:none;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;transition:all .4s ease;transform-origin:50% 0%;transform-style:preserve-3d;backface-visibility:hidden}.reveal .roll:hover span{background:#00000080;transform:translateZ(-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;backface-visibility:hidden;transform-origin:50% 0%;transform:translate3d(0,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.reveal .speaker-notes{display:none;position:absolute;width:33.3333333333%;height:100%;top:0;left:100%;padding:14px 18px;z-index:1;font-size:18px;line-height:1.4;border:1px solid rgba(0,0,0,.05);color:#222;background-color:#f5f5f5;overflow:auto;box-sizing:border-box;text-align:left;font-family:Helvetica,sans-serif;-webkit-overflow-scrolling:touch}.reveal .speaker-notes .notes-placeholder{color:#ccc;font-style:italic}.reveal .speaker-notes:focus{outline:none}.reveal .speaker-notes:before{content:"Speaker notes";display:block;margin-bottom:10px;opacity:.5}.reveal.show-notes{max-width:75%;overflow:visible}.reveal.show-notes .speaker-notes{display:block}@media screen and (min-width: 1600px){.reveal .speaker-notes{font-size:20px}}@media screen and (max-width: 1024px){.reveal.show-notes{border-left:0;max-width:none;max-height:70%;max-height:70vh;overflow:visible}.reveal.show-notes .speaker-notes{top:100%;left:0;width:100%;height:30vh;border:0}}@media screen and (max-width: 600px){.reveal.show-notes{max-height:60%;max-height:60vh}.reveal.show-notes .speaker-notes{top:100%;height:40vh}.reveal .speaker-notes{font-size:14px}}.reveal .jump-to-slide{position:absolute;top:15px;left:15px;z-index:30;font-size:32px;-webkit-tap-highlight-color:rgba(0,0,0,0)}.reveal .jump-to-slide-input{background:transparent;padding:8px;font-size:inherit;color:currentColor;border:0}.reveal .jump-to-slide-input::placeholder{color:currentColor;opacity:.5}.reveal.has-dark-background .jump-to-slide-input{color:#fff}.reveal.has-light-background .jump-to-slide-input{color:#222}.reveal .jump-to-slide-input:focus{outline:none}.zoomed .reveal *,.zoomed .reveal *:before,.zoomed .reveal *:after{backface-visibility:visible!important}.zoomed .reveal .progress,.zoomed .reveal .controls{opacity:0}.zoomed .reveal .roll span{background:none}.zoomed .reveal .roll span:after{visibility:hidden}.reveal-viewport.loading-scroll-mode{visibility:hidden}.reveal-viewport.reveal-scroll{margin:0 auto;overflow:auto;overflow-x:hidden;overflow-y:auto;z-index:1;--r-scrollbar-width: 7px;--r-scrollbar-trigger-size: 5px;--r-controls-spacing: 8px}@media screen and (max-width: 500px){.reveal-viewport.reveal-scroll{--r-scrollbar-width: 3px;--r-scrollbar-trigger-size: 3px}}.reveal-viewport.reveal-scroll .controls,.reveal-viewport.reveal-scroll .progress,.reveal-viewport.reveal-scroll .playback,.reveal-viewport.reveal-scroll .backgrounds,.reveal-viewport.reveal-scroll .slide-number,.reveal-viewport.reveal-scroll .speaker-notes{display:none!important}.reveal-viewport.reveal-scroll .r-overlay,.reveal-viewport.reveal-scroll .pause-overlay{position:fixed}.reveal-viewport.reveal-scroll .reveal{overflow:visible;touch-action:manipulation}.reveal-viewport.reveal-scroll .slides{position:static;pointer-events:initial;left:auto;top:auto;width:100%!important;margin:0;padding:0;overflow:visible;display:block;perspective:none;perspective-origin:50% 50%}.reveal-viewport.reveal-scroll .scroll-page{position:relative;width:100%;height:calc(var(--page-height) + var(--page-scroll-padding));z-index:1;overflow:visible}.reveal-viewport.reveal-scroll .scroll-page-sticky{position:sticky;height:var(--page-height);top:0}.reveal-viewport.reveal-scroll .scroll-page-content{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.reveal-viewport.reveal-scroll .scroll-page section{visibility:visible!important;display:block!important;position:absolute!important;width:var(--slide-width)!important;height:var(--slide-height)!important;top:50%!important;left:50%!important;opacity:1!important;transform:scale(var(--slide-scale)) translate(-50%,-50%)!important;transform-style:flat!important;transform-origin:0 0!important}.reveal-viewport.reveal-scroll .slide-background{display:block!important;position:absolute;top:0;left:0;width:100%;height:100%;z-index:auto!important;visibility:visible;opacity:1;touch-action:manipulation}.reveal-viewport.reveal-scroll[data-scrollbar=true]::-webkit-scrollbar,.reveal-viewport.reveal-scroll[data-scrollbar=auto]::-webkit-scrollbar{display:none}.reveal-viewport.reveal-scroll[data-scrollbar=true],.reveal-viewport.reveal-scroll[data-scrollbar=auto]{scrollbar-width:none}.reveal.has-dark-background,.reveal-viewport.has-dark-background{--r-overlay-element-bg-color: 240, 240, 240;--r-overlay-element-fg-color: 0, 0, 0}.reveal.has-light-background,.reveal-viewport.has-light-background{--r-overlay-element-bg-color: 0, 0, 0;--r-overlay-element-fg-color: 240, 240, 240}.reveal-viewport.reveal-scroll .scrollbar{position:sticky;top:50%;z-index:20;opacity:0;transition:all .3s ease}.reveal-viewport.reveal-scroll .scrollbar.visible,.reveal-viewport.reveal-scroll .scrollbar:hover{opacity:1}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-inner{position:absolute;width:var(--r-scrollbar-width);height:calc(var(--viewport-height) - var(--r-controls-spacing) * 2);right:var(--r-controls-spacing);top:0;transform:translateY(-50%);border-radius:var(--r-scrollbar-width);z-index:10}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-playhead{position:absolute;width:var(--r-scrollbar-width);height:var(--r-scrollbar-width);top:0;left:0;border-radius:var(--r-scrollbar-width);background-color:rgba(var(--r-overlay-element-bg-color),1);z-index:11;transition:background-color .2s ease}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide{position:absolute;width:100%;background-color:rgba(var(--r-overlay-element-bg-color),.2);box-shadow:0 0 0 1px rgba(var(--r-overlay-element-fg-color),.1);border-radius:var(--r-scrollbar-width);transition:background-color .2s ease}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide:after{content:"";position:absolute;width:200%;height:100%;top:0;left:-50%;background:#0000;z-index:-1}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide:hover,.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active{background-color:rgba(var(--r-overlay-element-bg-color),.4)}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-trigger{position:absolute;width:100%;transition:background-color .2s ease}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active.has-triggers{background-color:rgba(var(--r-overlay-element-bg-color),.4);z-index:10}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger:after{content:"";position:absolute;width:var(--r-scrollbar-trigger-size);height:var(--r-scrollbar-trigger-size);border-radius:20px;top:50%;left:50%;transform:translate(-50%,-50%);background-color:rgba(var(--r-overlay-element-bg-color),1);transition:transform .2s ease,opacity .2s ease;opacity:.4}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger.active:after,.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger.active~.scrollbar-trigger:after{opacity:1}.reveal-viewport.reveal-scroll .scrollbar .scrollbar-slide.active .scrollbar-trigger~.scrollbar-trigger.active:after{transform:translate(calc(var(--r-scrollbar-width) * -2));background-color:rgba(var(--r-overlay-element-bg-color),1)} diff --git a/dist/reveal.d.ts b/dist/reveal.d.ts index e547a39ef54..6d9a45d96ea 100644 --- a/dist/reveal.d.ts +++ b/dist/reveal.d.ts @@ -32,10 +32,13 @@ declare interface Config { maxScale?: number; /** * Display presentation control arrows + * - true: Display controls in all views + * - false: Hide controls in all views + * - 'speaker-only': Display controls only in the speaker view * * @defaultValue true */ - controls?: boolean; + controls?: boolean | 'speaker-only'; /** * Help the user learn the controls by providing hints, for example by * bouncing the down arrow when they first encounter a vertical slide diff --git a/dist/reveal.js b/dist/reveal.js index 8cc6142bcc4..034a81f9f5d 100644 --- a/dist/reveal.js +++ b/dist/reveal.js @@ -1,29 +1,33 @@ -(function(z,b){typeof exports=="object"&&typeof module<"u"?module.exports=b():typeof define=="function"&&define.amd?define(b):(z=typeof globalThis<"u"?globalThis:z||self,z.Reveal=b())})(this,function(){"use strict";var Ji=Object.defineProperty;var Qi=(z,b,ee)=>b in z?Ji(z,b,{enumerable:!0,configurable:!0,writable:!0,value:ee}):z[b]=ee;var qt=(z,b,ee)=>Qi(z,typeof b!="symbol"?b+"":b,ee);const z=(h,e)=>{for(let i in e)h[i]=e[i];return h},b=(h,e)=>Array.from(h.querySelectorAll(e)),ee=(h,e,i)=>{i?h.classList.add(e):h.classList.remove(e)},ce=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},te=(h,e)=>{h.style.transform=e},ye=(h,e)=>{let i=h.matches||h.matchesSelector||h.msMatchesSelector;return!!(i&&i.call(h,e))},F=(h,e)=>{if(typeof h.closest=="function")return h.closest(e);for(;h;){if(ye(h,e))return h;h=h.parentNode}return null},Ke=h=>{h=h||document.documentElement;let e=h.requestFullscreen||h.webkitRequestFullscreen||h.webkitRequestFullScreen||h.mozRequestFullScreen||h.msRequestFullscreen;e&&e.apply(h)},Ut=(h,e,i,t="")=>{let s=h.querySelectorAll("."+i);for(let n=0;n{let e=document.createElement("style");return e.type="text/css",h&&h.length>0&&(e.styleSheet?e.styleSheet.cssText=h:e.appendChild(document.createTextNode(h))),document.head.appendChild(e),e},$e=()=>{let h={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,e=>{h[e.split("=").shift()]=e.split("=").pop()});for(let e in h){let i=h[e];h[e]=ce(unescape(i))}return typeof h.dependencies<"u"&&delete h.dependencies,h},Wt=(h,e=0)=>{if(h){let i,t=h.style.height;return h.style.height="0px",h.parentNode.style.height="auto",i=e-h.parentNode.offsetHeight,h.style.height=t+"px",h.parentNode.style.removeProperty("height"),i}return e},jt={mp4:"video/mp4",m4a:"video/mp4",ogv:"video/ogg",mpeg:"video/mpeg",webm:"video/webm"},_t=(h="")=>jt[h.split(".").pop()],Kt=(h="")=>encodeURI(h).replace(/%5B/g,"[").replace(/%5D/g,"]").replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),Xe=navigator.userAgent,he=/(iphone|ipod|ipad|android)/gi.test(Xe)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,Ye=/android/gi.test(Xe);var $t=function(h){if(h){var e=function(u){return[].slice.call(u)},i=0,t=1,s=2,l=3,n=[],o=null,c="requestAnimationFrame"in h?function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{sync:!1};h.cancelAnimationFrame(o);var S=function(){return g(n.filter(function(x){return x.dirty&&x.active}))};if(u.sync)return S();o=h.requestAnimationFrame(S)}:function(){},f=function(u){return function(S){n.forEach(function(x){return x.dirty=u}),c(S)}},g=function(u){u.filter(function(x){return!x.styleComputed}).forEach(function(x){x.styleComputed=r(x)}),u.filter(A).forEach(I);var S=u.filter(E);S.forEach(y),S.forEach(function(x){I(x),v(x)}),S.forEach(O)},v=function(u){return u.dirty=i},y=function(u){u.availableWidth=u.element.parentNode.clientWidth,u.currentWidth=u.element.scrollWidth,u.previousFontSize=u.currentFontSize,u.currentFontSize=Math.min(Math.max(u.minSize,u.availableWidth/u.currentWidth*u.previousFontSize),u.maxSize),u.whiteSpace=u.multiLine&&u.currentFontSize===u.minSize?"normal":"nowrap"},E=function(u){return u.dirty!==s||u.dirty===s&&u.element.parentNode.clientWidth!==u.availableWidth},r=function(u){var S=h.getComputedStyle(u.element,null);return u.currentFontSize=parseFloat(S.getPropertyValue("font-size")),u.display=S.getPropertyValue("display"),u.whiteSpace=S.getPropertyValue("white-space"),!0},A=function(u){var S=!1;return!u.preStyleTestCompleted&&(/inline-/.test(u.display)||(S=!0,u.display="inline-block"),u.whiteSpace!=="nowrap"&&(S=!0,u.whiteSpace="nowrap"),u.preStyleTestCompleted=!0,S)},I=function(u){u.element.style.whiteSpace=u.whiteSpace,u.element.style.display=u.display,u.element.style.fontSize=u.currentFontSize+"px"},O=function(u){u.element.dispatchEvent(new CustomEvent("fit",{detail:{oldValue:u.previousFontSize,newValue:u.currentFontSize,scaleFactor:u.currentFontSize/u.previousFontSize}}))},q=function(u,S){return function(x){u.dirty=S,u.active&&c(x)}},oe=function(u){return function(){n=n.filter(function(S){return S.element!==u.element}),u.observeMutations&&u.observer.disconnect(),u.element.style.whiteSpace=u.originalStyle.whiteSpace,u.element.style.display=u.originalStyle.display,u.element.style.fontSize=u.originalStyle.fontSize}},V=function(u){return function(){u.active||(u.active=!0,c())}},k=function(u){return function(){return u.active=!1}},N=function(u){u.observeMutations&&(u.observer=new MutationObserver(q(u,t)),u.observer.observe(u.element,u.observeMutations))},W={minSize:16,maxSize:512,multiLine:!0,observeMutations:"MutationObserver"in h&&{subtree:!0,childList:!0,characterData:!0}},j=null,P=function(){h.clearTimeout(j),j=h.setTimeout(f(s),L.observeWindowDelay)},R=["resize","orientationchange"];return Object.defineProperty(L,"observeWindow",{set:function(u){var S="".concat(u?"add":"remove","EventListener");R.forEach(function(x){h[S](x,P)})}}),L.observeWindow=!0,L.observeWindowDelay=100,L.fitAll=f(l),L}function D(u,S){var x=Object.assign({},W,S),X=u.map(function(_){var ae=Object.assign({},x,{element:_,active:!0});return function(H){H.originalStyle={whiteSpace:H.element.style.whiteSpace,display:H.element.style.display,fontSize:H.element.style.fontSize},N(H),H.newbie=!0,H.dirty=!0,n.push(H)}(ae),{element:_,fit:q(ae,l),unfreeze:V(ae),freeze:k(ae),unsubscribe:oe(ae)}});return c(),X}function L(u){var S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return typeof u=="string"?D(e(document.querySelectorAll(u)),S):D([u],S)[0]}}(typeof window>"u"?null:window);class Xt{constructor(e){this.Reveal=e,this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this)}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={}){e.style.display=this.Reveal.getConfig().display,b(e,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach(s=>{(s.tagName!=="IFRAME"||this.shouldPreload(s))&&(s.setAttribute("src",s.getAttribute("data-src")),s.setAttribute("data-lazy-loaded",""),s.removeAttribute("data-src"))}),b(e,"video, audio").forEach(s=>{let l=0;b(s,"source[data-src]").forEach(n=>{n.setAttribute("src",n.getAttribute("data-src")),n.removeAttribute("data-src"),n.setAttribute("data-lazy-loaded",""),l+=1}),he&&s.tagName==="VIDEO"&&s.setAttribute("playsinline",""),l>0&&s.load()});let t=e.slideBackgroundElement;if(t){t.style.display="block";let s=e.slideBackgroundContentElement,l=e.getAttribute("data-background-iframe");if(t.hasAttribute("data-loaded")===!1){t.setAttribute("data-loaded","true");let o=e.getAttribute("data-background-image"),c=e.getAttribute("data-background-video"),f=e.hasAttribute("data-background-video-loop"),g=e.hasAttribute("data-background-video-muted");if(o)/^data:/.test(o.trim())?s.style.backgroundImage=`url(${o.trim()})`:s.style.backgroundImage=o.split(",").map(v=>{let y=decodeURI(v.trim());return`url(${Kt(y)})`}).join(",");else if(c){let v=document.createElement("video");f&&v.setAttribute("loop",""),(g||this.Reveal.isSpeakerNotes())&&(v.muted=!0),he&&(v.muted=!0,v.setAttribute("playsinline","")),c.split(",").forEach(y=>{const E=document.createElement("source");E.setAttribute("src",y);let r=_t(y);r&&E.setAttribute("type",r),v.appendChild(E)}),s.appendChild(v)}else if(l&&i.excludeIframes!==!0){let v=document.createElement("iframe");v.setAttribute("allowfullscreen",""),v.setAttribute("mozallowfullscreen",""),v.setAttribute("webkitallowfullscreen",""),v.setAttribute("allow","autoplay"),v.setAttribute("data-src",l),v.style.width="100%",v.style.height="100%",v.style.maxHeight="100%",v.style.maxWidth="100%",s.appendChild(v)}}let n=s.querySelector("iframe[data-src]");n&&this.shouldPreload(t)&&!/autoplay=(1|true|yes)/gi.test(l)&&n.getAttribute("src")!==l&&n.setAttribute("src",l)}this.layout(e)}layout(e){Array.from(e.querySelectorAll(".r-fit-text")).forEach(i=>{$t(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(l=>{let n=l.getAttribute(i);n&&n.indexOf(s)===-1&&l.setAttribute(i,n+(/\?/.test(n)?"&":"?")+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(F(t,".fragment")&&!F(t,".fragment.visible"))return;let s=this.Reveal.getConfig().autoPlayMedia;if(typeof s!="boolean"&&(s=t.hasAttribute("data-autoplay")||!!F(t,".slide-background")),s&&typeof t.play=="function"){if(i&&!t.muted)return;if(t.readyState>1)this.startEmbeddedMedia({target:t});else if(he){let l=t.play();l&&typeof l.catch=="function"&&t.controls===!1&&l.catch(()=>{t.controls=!0,t.addEventListener("play",()=>{t.controls=!1})})}else t.removeEventListener("loadeddata",this.startEmbeddedMedia),t.addEventListener("loadeddata",this.startEmbeddedMedia)}}),i||(b(e,"iframe[src]").forEach(t=>{F(t,".fragment")&&!F(t,".fragment.visible")||this.startEmbeddedIframe({target:t})}),b(e,"iframe[data-src]").forEach(t=>{F(t,".fragment")&&!F(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")))}))}}startEmbeddedMedia(e){let i=!!F(e.target,"html"),t=!!F(e.target,".present");i&&t&&(e.target.paused||e.target.ended)&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}startEmbeddedIframe(e){let i=e.target;if(i&&i.contentWindow){let t=!!F(e.target,"html"),s=!!F(e.target,".present");if(t&&s){let l=this.Reveal.getConfig().autoPlayMedia;typeof l!="boolean"&&(l=i.hasAttribute("data-autoplay")||!!F(i,".slide-background")),/youtube\.com\/embed\//.test(i.getAttribute("src"))&&l?i.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(i.getAttribute("src"))&&l?i.contentWindow.postMessage('{"method":"play"}',"*"):i.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(e,i={}){i=z({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())}),b(e,"iframe").forEach(t=>{t.contentWindow&&t.contentWindow.postMessage("slide:stop","*"),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")}))}}const re=".slides section",ie=".slides>section",Ge=".slides>section.present>section",Yt=".backgrounds>.slide-background",Gt=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/,Je=/fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/,Jt="h.v",Qt="h/v",Ie="c",Qe="c/t";class Zt{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=Jt;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=Ie);let n=e&&e.dataset.visibility==="uncounted"?0:1;switch(t=[],s){case Ie:t.push(this.Reveal.getSlidePastCount(e)+n);break;case Qe:t.push(this.Reveal.getSlidePastCount(e)+n,"/",this.Reveal.getTotalSlides());break;default:let o=this.Reveal.getIndices(e);t.push(o.h+n);let c=s===Qt?"/":".";this.Reveal.isVerticalSlide(e)&&t.push(c,o.v+1)}}let l="#"+this.Reveal.location.getHash(e);return this.formatNumber(t[0],t[1],t[2],l)}formatNumber(e,i,t,s="#"+this.Reveal.location.getHash()){return typeof t=="number"&&!isNaN(t)?` +(function(z,b){typeof exports=="object"&&typeof module<"u"?module.exports=b():typeof define=="function"&&define.amd?define(b):(z=typeof globalThis<"u"?globalThis:z||self,z.Reveal=b())})(this,function(){"use strict";var Ki=Object.defineProperty;var _i=(z,b,ee)=>b in z?Ki(z,b,{enumerable:!0,configurable:!0,writable:!0,value:ee}):z[b]=ee;var Ht=(z,b,ee)=>_i(z,typeof b!="symbol"?b+"":b,ee);const z=(h,e)=>{for(let i in e)h[i]=e[i];return h},b=(h,e)=>Array.from(h.querySelectorAll(e)),ee=(h,e,i)=>{i?h.classList.add(e):h.classList.remove(e)},ce=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},te=(h,e)=>{h.style.transform=e},ye=(h,e)=>{let i=h.matches||h.matchesSelector||h.msMatchesSelector;return!!(i&&i.call(h,e))},F=(h,e)=>{if(typeof h.closest=="function")return h.closest(e);for(;h;){if(ye(h,e))return h;h=h.parentNode}return null},Ke=h=>{h=h||document.documentElement;let e=h.requestFullscreen||h.webkitRequestFullscreen||h.webkitRequestFullScreen||h.mozRequestFullScreen||h.msRequestFullscreen;e&&e.apply(h)},Dt=(h,e,i,t="")=>{let s=h.querySelectorAll("."+i);for(let a=0;a{let e=document.createElement("style");return e.type="text/css",h&&h.length>0&&(e.styleSheet?e.styleSheet.cssText=h:e.appendChild(document.createTextNode(h))),document.head.appendChild(e),e},_e=()=>{let h={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,e=>{h[e.split("=").shift()]=e.split("=").pop()});for(let e in h){let i=h[e];h[e]=ce(unescape(i))}return typeof h.dependencies<"u"&&delete h.dependencies,h},zt=(h,e=0)=>{if(h){let i,t=h.style.height;return h.style.height="0px",h.parentNode.style.height="auto",i=e-h.parentNode.offsetHeight,h.style.height=t+"px",h.parentNode.style.removeProperty("height"),i}return e},Ft={mp4:"video/mp4",m4a:"video/mp4",ogv:"video/ogg",mpeg:"video/mpeg",webm:"video/webm"},Ot=(h="")=>Ft[h.split(".").pop()],Vt=(h="")=>encodeURI(h).replace(/%5B/g,"[").replace(/%5D/g,"]").replace(/[!'()*]/g,e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`),$e=navigator.userAgent,he=/(iphone|ipod|ipad|android)/gi.test($e)||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,Xe=/android/gi.test($e);var qt=function(h){if(h){var e=function(u){return[].slice.call(u)},i=0,t=1,s=2,r=3,a=[],o=null,c="requestAnimationFrame"in h?function(){var u=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{sync:!1};h.cancelAnimationFrame(o);var S=function(){return g(a.filter(function(x){return x.dirty&&x.active}))};if(u.sync)return S();o=h.requestAnimationFrame(S)}:function(){},f=function(u){return function(S){a.forEach(function(x){return x.dirty=u}),c(S)}},g=function(u){u.filter(function(x){return!x.styleComputed}).forEach(function(x){x.styleComputed=l(x)}),u.filter(A).forEach(I);var S=u.filter(E);S.forEach(y),S.forEach(function(x){I(x),p(x)}),S.forEach(q)},p=function(u){return u.dirty=i},y=function(u){u.availableWidth=u.element.parentNode.clientWidth,u.currentWidth=u.element.scrollWidth,u.previousFontSize=u.currentFontSize,u.currentFontSize=Math.min(Math.max(u.minSize,u.availableWidth/u.currentWidth*u.previousFontSize),u.maxSize),u.whiteSpace=u.multiLine&&u.currentFontSize===u.minSize?"normal":"nowrap"},E=function(u){return u.dirty!==s||u.dirty===s&&u.element.parentNode.clientWidth!==u.availableWidth},l=function(u){var S=h.getComputedStyle(u.element,null);return u.currentFontSize=parseFloat(S.getPropertyValue("font-size")),u.display=S.getPropertyValue("display"),u.whiteSpace=S.getPropertyValue("white-space"),!0},A=function(u){var S=!1;return!u.preStyleTestCompleted&&(/inline-/.test(u.display)||(S=!0,u.display="inline-block"),u.whiteSpace!=="nowrap"&&(S=!0,u.whiteSpace="nowrap"),u.preStyleTestCompleted=!0,S)},I=function(u){u.element.style.whiteSpace=u.whiteSpace,u.element.style.display=u.display,u.element.style.fontSize=u.currentFontSize+"px"},q=function(u){u.element.dispatchEvent(new CustomEvent("fit",{detail:{oldValue:u.previousFontSize,newValue:u.currentFontSize,scaleFactor:u.currentFontSize/u.previousFontSize}}))},U=function(u,S){return function(x){u.dirty=S,u.active&&c(x)}},oe=function(u){return function(){a=a.filter(function(S){return S.element!==u.element}),u.observeMutations&&u.observer.disconnect(),u.element.style.whiteSpace=u.originalStyle.whiteSpace,u.element.style.display=u.originalStyle.display,u.element.style.fontSize=u.originalStyle.fontSize}},O=function(u){return function(){u.active||(u.active=!0,c())}},k=function(u){return function(){return u.active=!1}},M=function(u){u.observeMutations&&(u.observer=new MutationObserver(U(u,t)),u.observer.observe(u.element,u.observeMutations))},j={minSize:16,maxSize:512,multiLine:!0,observeMutations:"MutationObserver"in h&&{subtree:!0,childList:!0,characterData:!0}},K=null,P=function(){h.clearTimeout(K),K=h.setTimeout(f(s),C.observeWindowDelay)},R=["resize","orientationchange"];return Object.defineProperty(C,"observeWindow",{set:function(u){var S="".concat(u?"add":"remove","EventListener");R.forEach(function(x){h[S](x,P)})}}),C.observeWindow=!0,C.observeWindowDelay=100,C.fitAll=f(r),C}function D(u,S){var x=Object.assign({},j,S),Y=u.map(function(_){var ae=Object.assign({},x,{element:_,active:!0});return function(H){H.originalStyle={whiteSpace:H.element.style.whiteSpace,display:H.element.style.display,fontSize:H.element.style.fontSize},M(H),H.newbie=!0,H.dirty=!0,a.push(H)}(ae),{element:_,fit:U(ae,r),unfreeze:O(ae),freeze:k(ae),unsubscribe:oe(ae)}});return c(),Y}function C(u){var S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return typeof u=="string"?D(e(document.querySelectorAll(u)),S):D([u],S)[0]}}(typeof window>"u"?null:window);class Ut{constructor(e){this.Reveal=e,this.startEmbeddedIframe=this.startEmbeddedIframe.bind(this)}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={}){e.style.display=this.Reveal.getConfig().display,b(e,"img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach(s=>{(s.tagName!=="IFRAME"||this.shouldPreload(s))&&(s.setAttribute("src",s.getAttribute("data-src")),s.setAttribute("data-lazy-loaded",""),s.removeAttribute("data-src"))}),b(e,"video, audio").forEach(s=>{let r=0;b(s,"source[data-src]").forEach(a=>{a.setAttribute("src",a.getAttribute("data-src")),a.removeAttribute("data-src"),a.setAttribute("data-lazy-loaded",""),r+=1}),he&&s.tagName==="VIDEO"&&s.setAttribute("playsinline",""),r>0&&s.load()});let t=e.slideBackgroundElement;if(t){t.style.display="block";let s=e.slideBackgroundContentElement,r=e.getAttribute("data-background-iframe");if(t.hasAttribute("data-loaded")===!1){t.setAttribute("data-loaded","true");let o=e.getAttribute("data-background-image"),c=e.getAttribute("data-background-video"),f=e.hasAttribute("data-background-video-loop"),g=e.hasAttribute("data-background-video-muted");if(o)/^data:/.test(o.trim())?s.style.backgroundImage=`url(${o.trim()})`:s.style.backgroundImage=o.split(",").map(p=>{let y=decodeURI(p.trim());return`url(${Vt(y)})`}).join(",");else if(c){let p=document.createElement("video");f&&p.setAttribute("loop",""),(g||this.Reveal.isSpeakerNotes())&&(p.muted=!0),he&&(p.muted=!0,p.setAttribute("playsinline","")),c.split(",").forEach(y=>{const E=document.createElement("source");E.setAttribute("src",y);let l=Ot(y);l&&E.setAttribute("type",l),p.appendChild(E)}),s.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%",s.appendChild(p)}}let a=s.querySelector("iframe[data-src]");a&&this.shouldPreload(t)&&!/autoplay=(1|true|yes)/gi.test(r)&&a.getAttribute("src")!==r&&a.setAttribute("src",r)}this.layout(e)}layout(e){Array.from(e.querySelectorAll(".r-fit-text")).forEach(i=>{qt(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(r=>{let a=r.getAttribute(i);a&&a.indexOf(s)===-1&&r.setAttribute(i,a+(/\?/.test(a)?"&":"?")+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(F(t,".fragment")&&!F(t,".fragment.visible"))return;let s=this.Reveal.getConfig().autoPlayMedia;if(typeof s!="boolean"&&(s=t.hasAttribute("data-autoplay")||!!F(t,".slide-background")),s&&typeof t.play=="function"){if(i&&!t.muted)return;if(t.readyState>1)this.startEmbeddedMedia({target:t});else if(he){let r=t.play();r&&typeof r.catch=="function"&&t.controls===!1&&r.catch(()=>{t.controls=!0,t.addEventListener("play",()=>{t.controls=!1})})}else t.removeEventListener("loadeddata",this.startEmbeddedMedia),t.addEventListener("loadeddata",this.startEmbeddedMedia)}}),i||(b(e,"iframe[src]").forEach(t=>{F(t,".fragment")&&!F(t,".fragment.visible")||this.startEmbeddedIframe({target:t})}),b(e,"iframe[data-src]").forEach(t=>{F(t,".fragment")&&!F(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")))}))}}startEmbeddedMedia(e){let i=!!F(e.target,"html"),t=!!F(e.target,".present");i&&t&&(e.target.paused||e.target.ended)&&(e.target.currentTime=0,e.target.play()),e.target.removeEventListener("loadeddata",this.startEmbeddedMedia)}startEmbeddedIframe(e){let i=e.target;if(i&&i.contentWindow){let t=!!F(e.target,"html"),s=!!F(e.target,".present");if(t&&s){let r=this.Reveal.getConfig().autoPlayMedia;typeof r!="boolean"&&(r=i.hasAttribute("data-autoplay")||!!F(i,".slide-background")),/youtube\.com\/embed\//.test(i.getAttribute("src"))&&r?i.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*"):/player\.vimeo\.com\//.test(i.getAttribute("src"))&&r?i.contentWindow.postMessage('{"method":"play"}',"*"):i.contentWindow.postMessage("slide:start","*")}}}stopEmbeddedContent(e,i={}){i=z({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())}),b(e,"iframe").forEach(t=>{t.contentWindow&&t.contentWindow.postMessage("slide:stop","*"),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")}))}}const re=".slides section",ie=".slides>section",Ye=".slides>section.present>section",Wt=".backgrounds>.slide-background",jt=/registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/,Kt="h.v",_t="h/v",Ie="c",Ge="c/t";class $t{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=Kt;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=Ie);let a=e&&e.dataset.visibility==="uncounted"?0:1;switch(t=[],s){case Ie:t.push(this.Reveal.getSlidePastCount(e)+a);break;case Ge:t.push(this.Reveal.getSlidePastCount(e)+a,"/",this.Reveal.getTotalSlides());break;default:let o=this.Reveal.getIndices(e);t.push(o.h+a);let c=s===_t?"/":".";this.Reveal.isVerticalSlide(e)&&t.push(c,o.v+1)}}let r="#"+this.Reveal.location.getHash(e);return this.formatNumber(t[0],t[1],t[2],r)}formatNumber(e,i,t,s="#"+this.Reveal.location.getHash()){return typeof t=="number"&&!isNaN(t)?` ${e} ${i} ${t} `:` ${e} - `}destroy(){this.element.remove()}}class ei{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===Ie||t===Qe){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 Ne=h=>{let e=h.match(/^#([0-9a-f]{3})$/i);if(e&&e[1])return e=e[1],{r:parseInt(e.charAt(0),16)*17,g:parseInt(e.charAt(1),16)*17,b:parseInt(e.charAt(2),16)*17};let i=h.match(/^#([0-9a-f]{6})$/i);if(i&&i[1])return i=i[1],{r:parseInt(i.slice(0,2),16),g:parseInt(i.slice(2,4),16),b:parseInt(i.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},ti=h=>(typeof h=="string"&&(h=Ne(h)),h?(h.r*299+h.g*587+h.b*114)/1e3:null);class ii{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")},l=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),l&&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 n=this.getContrastClass(e);typeof n=="string"&&e.classList.add(n)}getContrastClass(e){const i=e.slideBackgroundElement;let t=e.getAttribute("data-background-color");if(!t||!Ne(t)){let s=window.getComputedStyle(i);s&&s.backgroundColor&&(t=s.backgroundColor)}if(t){const s=Ne(t);if(s&&s.a!==0)return ti(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(),l=null,n=i.rtl?"future":"past",o=i.rtl?"past":"future";if(Array.from(this.element.childNodes).forEach((c,f)=>{c.classList.remove("past","present","future"),fs.h?c.classList.add(o):(c.classList.add("present"),l=c),(e||f===s.h)&&b(c,".slide-background").forEach((g,v)=>{g.classList.remove("past","present","future");const y=typeof s.v=="number"?s.v:0;vy?g.classList.add("future"):(g.classList.add("present"),f===s.h&&(l=g))})}),this.previousBackground&&!this.previousBackground.closest("body")&&(this.previousBackground=null),l&&this.previousBackground){let c=this.previousBackground.getAttribute("data-background-hash"),f=l.getAttribute("data-background-hash");if(f&&f===c&&l!==this.previousBackground){this.element.classList.add("no-transition");const g=l.querySelector("video"),v=this.previousBackground.querySelector("video");if(g&&v){const y=g.parentNode;v.parentNode.appendChild(g),y.appendChild(v)}}}if(this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),l){this.Reveal.slideContent.startEmbeddedContent(l);let c=l.querySelector(".slide-background-content");if(c){let f=c.style.backgroundImage||"";/\.gif/i.test(f)&&(c.style.backgroundImage="",window.getComputedStyle(c).opacity,c.style.backgroundImage=f)}this.previousBackground=l}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(" "),l,n;s.length===1?l=n=parseInt(s[0],10):(l=parseInt(s[0],10),n=parseInt(s[1],10));let o=this.element.offsetWidth,c=i.length,f,g;typeof this.Reveal.getConfig().parallaxBackgroundHorizontal=="number"?f=this.Reveal.getConfig().parallaxBackgroundHorizontal:f=c>1?(l-o)/(c-1):0,g=f*e.h*-1;let v=this.element.offsetHeight,y=t.length,E,r;typeof this.Reveal.getConfig().parallaxBackgroundVertical=="number"?E=this.Reveal.getConfig().parallaxBackgroundVertical:E=(n-v)/(y-1),r=y>0?E*e.v:0,this.element.style.backgroundPosition=g+"px "+-r+"px"}}destroy(){this.element.remove()}}let Ze=0;class si{constructor(e){this.Reveal=e}run(e,i){this.reset();let t=this.Reveal.getSlides(),s=t.indexOf(i),l=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>l?i:e).hasAttribute("data-auto-animate-restart")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||Te();let n=this.getAutoAnimateOptions(i);e.dataset.autoAnimate="pending",i.dataset.autoAnimate="pending",n.slideDirection=s>l?"forward":"backward";let o=e.style.display==="none";o&&(e.style.display=this.Reveal.getConfig().display);let c=this.getAutoAnimatableElements(e,i).map(f=>this.autoAnimateElements(f.from,f.to,f.options||{},n,Ze++));if(o&&(e.style.display="none"),i.dataset.autoAnimateUnmatched!=="false"&&this.Reveal.getConfig().autoAnimateUnmatched===!0){let f=n.duration*.8,g=n.duration*.2;this.getUnmatchedAutoAnimateElements(i).forEach(v=>{let y=this.getAutoAnimateOptions(v,n),E="unmatched";(y.duration!==n.duration||y.delay!==n.delay)&&(E="unmatched-"+Ze++,c.push(`[data-auto-animate="running"] [data-auto-animate-target="${E}"] { transition: opacity ${y.duration}s ease ${y.delay}s; }`)),v.dataset.autoAnimateTarget=E},this),c.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${f}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,l){e.dataset.autoAnimateTarget="",i.dataset.autoAnimateTarget=l;let n=this.getAutoAnimateOptions(i,s);typeof t.delay<"u"&&(n.delay=t.delay),typeof t.duration<"u"&&(n.duration=t.duration),typeof t.easing<"u"&&(n.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,e.classList.contains("fragment"))){let v=(e.className.match(Je)||[""])[0],y=(i.className.match(Je)||[""])[0];v===y&&s.slideDirection==="forward"&&i.classList.add("visible","disabled")}if(t.translate!==!1||t.scale!==!1){let v=this.Reveal.getScale(),y={x:(o.x-c.x)/v,y:(o.y-c.y)/v,scaleX:o.width/c.width,scaleY:o.height/c.height};y.x=Math.round(y.x*1e3)/1e3,y.y=Math.round(y.y*1e3)/1e3,y.scaleX=Math.round(y.scaleX*1e3)/1e3,y.scaleX=Math.round(y.scaleX*1e3)/1e3;let E=t.translate!==!1&&(y.x!==0||y.y!==0),r=t.scale!==!1&&(y.scaleX!==0||y.scaleY!==0);if(E||r){let A=[];E&&A.push(`translate(${y.x}px, ${y.y}px)`),r&&A.push(`scale(${y.scaleX}, ${y.scaleY})`),o.styles.transform=A.join(" "),o.styles["transform-origin"]="top left",c.styles.transform="none"}}for(let v in c.styles){const y=c.styles[v],E=o.styles[v];y===E?delete c.styles[v]:(y.explicitValue===!0&&(c.styles[v]=y.value),E.explicitValue===!0&&(o.styles[v]=E.value))}let f="",g=Object.keys(c.styles);if(g.length>0){o.styles.transition="none",c.styles.transition=`all ${n.duration}s ${n.easing} ${n.delay}s`,c.styles["transition-property"]=g.join(", "),c.styles["will-change"]=g.join(", ");let v=Object.keys(o.styles).map(E=>E+": "+o.styles[E]+" !important;").join(""),y=Object.keys(c.styles).map(E=>E+": "+c.styles[E]+" !important;").join("");f='[data-auto-animate-target="'+l+'"] {'+v+'}[data-auto-animate="running"] [data-auto-animate-target="'+l+'"] {'+y+"}"}return f}getAutoAnimateOptions(e,i){let t={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(t=z(t,i),e.parentNode){let s=F(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(),l={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}}l.x=o.x,l.y=o.y,l.width=o.width,l.height=o.height}const n=getComputedStyle(i);return(t.styles||s.autoAnimateStyles).forEach(o=>{let c;typeof o=="string"&&(o={property:o}),typeof o.from<"u"&&e==="from"?c={value:o.from,explicitValue:!0}:typeof o.to<"u"&&e==="to"?c={value:o.to,explicitValue:!0}:(o.property==="line-height"&&(c=parseFloat(n["line-height"])/parseFloat(n["font-size"])),isNaN(c)&&(c=n[o.property])),c!==""&&(l.styles[o.property]=c)}),l}getAutoAnimatableElements(e,i){let s=(typeof this.Reveal.getConfig().autoAnimateMatcher=="function"?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,i),l=[];return s.filter((n,o)=>{if(l.indexOf(n.to)===-1)return l.push(n.to),!0})}getAutoAnimatePairs(e,i){let t=[];const s="pre",l="h1, h2, h3, h4, h5, h6, p, li",n="img, video, iframe";return this.findAutoAnimateMatches(t,e,i,"[data-id]",o=>o.nodeName+":::"+o.getAttribute("data-id")),this.findAutoAnimateMatches(t,e,i,l,o=>o.nodeName+":::"+o.innerText),this.findAutoAnimateMatches(t,e,i,n,o=>o.nodeName+":::"+(o.getAttribute("src")||o.getAttribute("data-src"))),this.findAutoAnimateMatches(t,e,i,s,o=>o.nodeName+":::"+o.innerText),t.forEach(o=>{ye(o.from,l)?o.options={scale:!1}:ye(o.from,s)&&(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,l,n){let o={},c={};[].slice.call(i.querySelectorAll(s)).forEach((f,g)=>{const v=l(f);typeof v=="string"&&v.length&&(o[v]=o[v]||[],o[v].push(f))}),[].slice.call(t.querySelectorAll(s)).forEach((f,g)=>{const v=l(f);c[v]=c[v]||[],c[v].push(f);let y;if(o[v]){const E=c[v].length-1,r=o[v].length-1;o[v][E]?(y=o[v][E],o[v][E]=null):o[v][r]&&(y=o[v][r],o[v][r]=null)}y&&e.push({from:y,to:f,options:n})})}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 ai=500,ni=4,ri=6,oi=8;class li{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(),ie),t=b(this.Reveal.getRevealElement(),Yt);this.viewportElement.classList.add("loading-scroll-mode","reveal-scroll");let s;const l=window.getComputedStyle(this.viewportElement);l&&l.background&&(s=l.background);const n=[],o=i[0].parentNode;let c;const f=(g,v,y,E)=>{let r;if(c&&this.Reveal.shouldAutoAnimateBetween(c,g))r=document.createElement("div"),r.className="scroll-page-content scroll-auto-animate-page",r.style.display="none",c.closest(".scroll-page-content").parentNode.appendChild(r);else{const A=document.createElement("div");if(A.className="scroll-page",n.push(A),E&&t.length>v){const O=t[v],q=window.getComputedStyle(O);q&&q.background?A.style.background=q.background:s&&(A.style.background=s)}else s&&(A.style.background=s);const I=document.createElement("div");I.className="scroll-page-sticky",A.appendChild(I),r=document.createElement("div"),r.className="scroll-page-content",I.appendChild(r)}r.appendChild(g),g.classList.remove("past","future"),g.setAttribute("data-index-h",v),g.setAttribute("data-index-v",y),g.slideBackgroundElement&&(g.slideBackgroundElement.remove("past","future"),r.insertBefore(g.slideBackgroundElement,g)),c=g};i.forEach((g,v)=>{this.Reveal.isVerticalStack(g)?g.querySelectorAll("section").forEach((y,E)=>{f(y,v,E,!0)}):f(g,v,0)},this),this.createProgressBar(),b(this.Reveal.getRevealElement(),".stack").forEach(g=>g.remove()),n.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 l=(s.clientY-this.progressBarInner.getBoundingClientRect().top)/this.progressBarHeight;l=Math.max(Math.min(l,1),0),this.viewportElement.scrollTop=l*(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",l=this.viewportElement.offsetHeight,n=i.height*t,o=s?n:l;this.scrollTriggerHeight=s?n:l,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(f=>{const g=this.createPage({pageElement:f,slideElement:f.querySelector("section"),stickyElement:f.querySelector(".scroll-page-sticky"),contentElement:f.querySelector(".scroll-page-content"),backgroundElement:f.querySelector(".slide-background"),autoAnimateElements:f.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 v=Math.max(g.scrollTriggers.length-1,0);v+=g.autoAnimatePages.reduce((y,E)=>y+Math.max(E.scrollTriggers.length-1,0),g.autoAnimatePages.length),g.pageElement.querySelectorAll(".scroll-snap-point").forEach(y=>y.remove());for(let y=0;y0?(g.pageHeight=l,g.pageElement.style.setProperty("--page-height",l+"px")):(g.pageHeight=o,g.pageElement.style.removeProperty("--page-height")),g.scrollPadding=this.scrollTriggerHeight*v,g.totalHeight=g.pageHeight+g.scrollPadding,g.pageElement.style.setProperty("--page-scroll-padding",g.scrollPadding+"px"),v>0?(g.stickyElement.style.position="sticky",g.stickyElement.style.top=Math.max((l-g.pageHeight)/2,0)+"px"):(g.stickyElement.style.position="relative",g.pageElement.style.scrollSnapAlign=g.pageHeight1?(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((l,n)=>{l.range=[e+n*s,e+(n+1)*s]}),e=i.range[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,l)=>{e.scrollTriggers.push({activate:()=>{this.Reveal.fragments.update(l,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(n=>n.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,oi),this.progressBarScrollableHeight=this.progressBarHeight-this.playheadHeight;const s=i/e*this.progressBarHeight,l=Math.min(s/8,ni);this.progressBarPlayhead.style.height=this.playheadHeight-l+"px",s>ri?this.slideTriggers.forEach(n=>{const{page:o}=n;o.progressBarSlide=document.createElement("div"),o.progressBarSlide.className="scrollbar-slide",o.progressBarSlide.style.top=n.range[0]*this.progressBarHeight+"px",o.progressBarSlide.style.height=(n.range[1]-n.range[0])*this.progressBarHeight-l+"px",o.progressBarSlide.classList.toggle("has-triggers",o.scrollTriggers.length>0),this.progressBarInner.appendChild(o.progressBarSlide),o.scrollTriggerElements=o.scrollTriggers.map((c,f)=>{const g=document.createElement("div");return g.className="scrollbar-trigger",g.style.top=(c.range[0]-n.range[0])*this.progressBarHeight+"px",g.style.height=(c.range[1]-c.range[0])*this.progressBarHeight-l+"px",o.progressBarSlide.appendChild(g),f===0&&(g.style.display="none"),g})}):this.pages.forEach(n=>n.progressBarSlide=null)}syncScrollPosition(){const e=this.viewportElement.offsetHeight,i=e/this.viewportElement.scrollHeight,t=this.viewportElement.scrollTop,s=this.viewportElement.scrollHeight-e,l=Math.max(Math.min(t/s,1),0),n=Math.max(Math.min((t+e/2)/this.viewportElement.scrollHeight,1),0);let o;this.slideTriggers.forEach(c=>{const{page:f}=c;l>=c.range[0]-i*2&&l<=c.range[1]+i*2&&!f.loaded?(f.loaded=!0,this.Reveal.slideContent.load(f.slideElement)):f.loaded&&(f.loaded=!1,this.Reveal.slideContent.unload(f.slideElement)),l>=c.range[0]&&l<=c.range[1]?(this.activateTrigger(c),o=c.page):c.active&&this.deactivateTrigger(c)}),o&&o.scrollTriggers.forEach(c=>{n>=c.range[0]&&n<=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")},ai))}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:l,indexv:n}=e;s.style.display="block",i.classList.add("present"),t&&t.classList.add("present"),this.Reveal.setCurrentScrollPage(i,l,n),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 di{constructor(e){this.Reveal=e}async activate(){const e=this.Reveal.getConfig(),i=b(this.Reveal.getRevealElement(),re),t=e.slideNumber&&/all|print/i.test(e.showSlideNumber),s=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),l=Math.floor(s.width*(1+e.margin)),n=Math.floor(s.height*(1+e.margin)),o=s.width,c=s.height;await new Promise(requestAnimationFrame),Te("@page{size:"+l+"px "+n+"px; margin: 0px;}"),Te(".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=l+"px",document.body.style.height=n+"px";const f=this.Reveal.getViewportElement();let g;if(f){const A=window.getComputedStyle(f);A&&A.background&&(g=A.background)}await new Promise(requestAnimationFrame),this.Reveal.layoutSlideContents(o,c),await new Promise(requestAnimationFrame);const v=i.map(A=>A.scrollHeight),y=[],E=i[0].parentNode;let r=1;i.forEach(function(A,I){if(A.classList.contains("stack")===!1){let O=(l-o)/2,q=(n-c)/2;const oe=v[I];let V=Math.max(Math.ceil(oe/n),1);V=Math.min(V,e.pdfMaxPagesPerSlide),(V===1&&e.center||A.classList.contains("center"))&&(q=Math.max((n-oe)/2,0));const k=document.createElement("div");if(y.push(k),k.className="pdf-page",k.style.height=(n+e.pdfPageHeightOffset)*V+"px",g&&(k.style.background=g),k.appendChild(A),A.style.left=O+"px",A.style.top=q+"px",A.style.width=o+"px",this.Reveal.slideContent.layout(A),A.slideBackgroundElement&&k.insertBefore(A.slideBackgroundElement,A),e.showNotes){const N=this.Reveal.getSlideNotes(A);if(N){const j=typeof e.showNotes=="string"?e.showNotes:"inline",P=document.createElement("div");P.classList.add("speaker-notes"),P.classList.add("speaker-notes-pdf"),P.setAttribute("data-layout",j),P.innerHTML=N,j==="separate-page"?y.push(P):(P.style.left="8px",P.style.bottom="8px",P.style.width=l-8*2+"px",k.appendChild(P))}}if(t){const N=document.createElement("div");N.classList.add("slide-number"),N.classList.add("slide-number-pdf"),N.innerHTML=r++,k.appendChild(N)}if(e.pdfSeparateFragments){const N=this.Reveal.fragments.sort(k.querySelectorAll(".fragment"),!0);let W;N.forEach(function(j,P){W&&W.forEach(function(D){D.classList.remove("current-fragment")}),j.forEach(function(D){D.classList.add("visible","current-fragment")},this);const R=k.cloneNode(!0);if(t){const D=R.querySelector(".slide-number-pdf"),L=P+1;D.innerHTML+="."+L}y.push(R),W=j},this),N.forEach(function(j){j.forEach(function(P){P.classList.remove("visible","current-fragment")})})}else b(k,".fragment:not(.fade-out)").forEach(function(N){N.classList.add("visible")})}},this),await new Promise(requestAnimationFrame),y.forEach(A=>E.appendChild(A)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.dispatchEvent({type:"pdf-ready"}),f.classList.remove("loading-scroll-mode")}isActive(){return this.Reveal.getConfig().view==="print"}}class ci{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=[],l=[];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 n=0;return t.forEach(o=>{o.forEach(c=>{l.push(c),c.setAttribute("data-fragment-index",n)}),n++}),i===!0?t:l}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 l=0;if(typeof e!="number"){let n=this.sort(t.querySelectorAll(".fragment.visible")).pop();n&&(e=parseInt(n.getAttribute("data-fragment-index")||0,10))}Array.from(i).forEach((n,o)=>{if(n.hasAttribute("data-fragment-index")&&(o=parseInt(n.getAttribute("data-fragment-index"),10)),l=Math.max(l,o),o<=e){let c=n.classList.contains("visible");n.classList.add("visible"),n.classList.remove("current-fragment"),o===e&&(this.Reveal.announceStatus(this.Reveal.getStatusText(n)),n.classList.add("current-fragment"),this.Reveal.slideContent.startEmbeddedContent(n)),c||(s.shown.push(n),this.Reveal.dispatchEvent({target:n,type:"visible",bubbles:!1}))}else{let c=n.classList.contains("visible");n.classList.remove("visible"),n.classList.remove("current-fragment"),c&&(this.Reveal.slideContent.stopEmbeddedContent(n),s.hidden.push(n),this.Reveal.dispatchEvent({target:n,type:"hidden",bubbles:!1}))}}),e=typeof e=="number"?e:-1,e=Math.max(Math.min(e,l),-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 n=this.sort(t.querySelectorAll(".fragment:not(.disabled).visible")).pop();n?e=parseInt(n.getAttribute("data-fragment-index")||0,10):e=-1}e+=i;let l=this.update(e,s);return this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!!(l.shown.length||l.hidden.length)}}return!1}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class hi{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(),re).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),te(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),te(t,"translate3d(0, "+s*this.overviewSlideHeight+"px, 0)")})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,i)=>{te(e,"translate3d("+i*this.overviewSlideWidth+"px, 0, 0)"),b(e,".slide-background").forEach((t,s)=>{te(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(),re).forEach(i=>{te(i,""),i.removeEventListener("click",this.onSlideClicked,!0)}),b(this.Reveal.getBackgroundsElement(),".slide-background").forEach(i=>{te(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 ui{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 l=document.activeElement&&document.activeElement.isContentEditable===!0,n=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),f=!([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(l||n||o||f)return;let g=[66,86,190,191,112],v;if(typeof i.keyboard=="object")for(v in i.keyboard)i.keyboard[v]==="togglePause"&&g.push(parseInt(v,10));if(this.Reveal.isPaused()&&g.indexOf(t)===-1)return!1;let y=i.navigationMode==="linear"||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),E=!1;if(typeof i.keyboard=="object"){for(v in i.keyboard)if(parseInt(v,10)===t){let r=i.keyboard[v];typeof r=="function"?r.apply(null,[e]):typeof r=="string"&&typeof this.Reveal[r]=="function"&&this.Reveal[r].call(),E=!0}}if(E===!1){for(v in this.bindings)if(parseInt(v,10)===t){let r=this.bindings[v].callback;typeof r=="function"?r.apply(null,[e]):typeof r=="string"&&typeof this.Reveal[r]=="function"&&this.Reveal[r].call(),E=!0}}E===!1&&(E=!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()&&y?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()&&y?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()&&y?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()&&y?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?Ke(i.embedded?this.Reveal.getViewportElement():document.documentElement):t===65?i.autoSlideStoppable&&this.Reveal.toggleAutoSlide(s):t===71?i.jumpToSlide&&this.Reveal.toggleJumpToSlide():(t===63||t===191)&&e.shiftKey?this.Reveal.toggleHelp():t===112?this.Reveal.toggleHelp():E=!1),E?e.preventDefault&&e.preventDefault():(t===27||t===79)&&(this.Reveal.closeOverlay()===!1&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}}class fi{constructor(e){qt(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 l,n;/\/[-\d]+$/g.test(t)&&(n=parseInt(t.split("/").pop(),10),n=isNaN(n)?void 0:n,t=t.split("/").shift());try{l=document.getElementById(decodeURIComponent(t)).closest(".slides section")}catch{}if(l)return{...this.Reveal.getIndices(l),f:n}}else{const l=this.Reveal.getConfig();let n=l.hashOneBasedIndex||i.oneBasedIndex?1:0,o=parseInt(s[0],10)-n||0,c=parseInt(s[1],10)-n||0,f;return l.fragmentInURL&&(f=parseInt(s[2],10),isNaN(f)&&(f=void 0)),{h:o,v:c,f}}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 l=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(l.f=void 0),typeof s=="string"&&s.length)i="/"+s,l.f>=0&&(i+="/"+l.f);else{let n=this.Reveal.getConfig().hashOneBasedIndex?1:0;(l.h>0||l.v>0||l.f>=0)&&(i+=l.h+n),(l.v>0||l.f>=0)&&(i+="/"+(l.v+n)),l.f>=0&&(i+="/"+l.f)}return i}onWindowHashChange(e){this.readURL()}}class gi{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=` + `}destroy(){this.element.remove()}}class Xt{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===Ie||t===Ge){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 Me=h=>{let e=h.match(/^#([0-9a-f]{3})$/i);if(e&&e[1])return e=e[1],{r:parseInt(e.charAt(0),16)*17,g:parseInt(e.charAt(1),16)*17,b:parseInt(e.charAt(2),16)*17};let i=h.match(/^#([0-9a-f]{6})$/i);if(i&&i[1])return i=i[1],{r:parseInt(i.slice(0,2),16),g:parseInt(i.slice(2,4),16),b:parseInt(i.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},Yt=h=>(typeof h=="string"&&(h=Me(h)),h?(h.r*299+h.g*587+h.b*114)/1e3:null);class Gt{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")},r=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),r&&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 a=this.getContrastClass(e);typeof a=="string"&&e.classList.add(a)}getContrastClass(e){const i=e.slideBackgroundElement;let t=e.getAttribute("data-background-color");if(!t||!Me(t)){let s=window.getComputedStyle(i);s&&s.backgroundColor&&(t=s.backgroundColor)}if(t){const s=Me(t);if(s&&s.a!==0)return Yt(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(),r=null,a=i.rtl?"future":"past",o=i.rtl?"past":"future";if(Array.from(this.element.childNodes).forEach((c,f)=>{c.classList.remove("past","present","future"),fs.h?c.classList.add(o):(c.classList.add("present"),r=c),(e||f===s.h)&&b(c,".slide-background").forEach((g,p)=>{g.classList.remove("past","present","future");const y=typeof s.v=="number"?s.v:0;py?g.classList.add("future"):(g.classList.add("present"),f===s.h&&(r=g))})}),this.previousBackground&&!this.previousBackground.closest("body")&&(this.previousBackground=null),r&&this.previousBackground){let c=this.previousBackground.getAttribute("data-background-hash"),f=r.getAttribute("data-background-hash");if(f&&f===c&&r!==this.previousBackground){this.element.classList.add("no-transition");const g=r.querySelector("video"),p=this.previousBackground.querySelector("video");if(g&&p){const y=g.parentNode;p.parentNode.appendChild(g),y.appendChild(p)}}}if(this.previousBackground&&this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground,{unloadIframes:!this.Reveal.slideContent.shouldPreload(this.previousBackground)}),r){this.Reveal.slideContent.startEmbeddedContent(r);let c=r.querySelector(".slide-background-content");if(c){let f=c.style.backgroundImage||"";/\.gif/i.test(f)&&(c.style.backgroundImage="",window.getComputedStyle(c).opacity,c.style.backgroundImage=f)}this.previousBackground=r}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(" "),r,a;s.length===1?r=a=parseInt(s[0],10):(r=parseInt(s[0],10),a=parseInt(s[1],10));let o=this.element.offsetWidth,c=i.length,f,g;typeof this.Reveal.getConfig().parallaxBackgroundHorizontal=="number"?f=this.Reveal.getConfig().parallaxBackgroundHorizontal:f=c>1?(r-o)/(c-1):0,g=f*e.h*-1;let p=this.element.offsetHeight,y=t.length,E,l;typeof this.Reveal.getConfig().parallaxBackgroundVertical=="number"?E=this.Reveal.getConfig().parallaxBackgroundVertical:E=(a-p)/(y-1),l=y>0?E*e.v:0,this.element.style.backgroundPosition=g+"px "+-l+"px"}}destroy(){this.element.remove()}}let Je=0;class Jt{constructor(e){this.Reveal=e}run(e,i){this.reset();let t=this.Reveal.getSlides(),s=t.indexOf(i),r=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>r?i:e).hasAttribute("data-auto-animate-restart")){this.autoAnimateStyleSheet=this.autoAnimateStyleSheet||Te();let a=this.getAutoAnimateOptions(i);e.dataset.autoAnimate="pending",i.dataset.autoAnimate="pending",a.slideDirection=s>r?"forward":"backward";let o=e.style.display==="none";o&&(e.style.display=this.Reveal.getConfig().display);let c=this.getAutoAnimatableElements(e,i).map(f=>this.autoAnimateElements(f.from,f.to,f.options||{},a,Je++));if(o&&(e.style.display="none"),i.dataset.autoAnimateUnmatched!=="false"&&this.Reveal.getConfig().autoAnimateUnmatched===!0){let f=a.duration*.8,g=a.duration*.2;this.getUnmatchedAutoAnimateElements(i).forEach(p=>{let y=this.getAutoAnimateOptions(p,a),E="unmatched";(y.duration!==a.duration||y.delay!==a.delay)&&(E="unmatched-"+Je++,c.push(`[data-auto-animate="running"] [data-auto-animate-target="${E}"] { transition: opacity ${y.duration}s ease ${y.delay}s; }`)),p.dataset.autoAnimateTarget=E},this),c.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${f}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,r){e.dataset.autoAnimateTarget="",i.dataset.autoAnimateTarget=r;let a=this.getAutoAnimateOptions(i,s);typeof t.delay<"u"&&(a.delay=t.delay),typeof t.duration<"u"&&(a.duration=t.duration),typeof t.easing<"u"&&(a.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 p=this.Reveal.getScale(),y={x:(o.x-c.x)/p,y:(o.y-c.y)/p,scaleX:o.width/c.width,scaleY:o.height/c.height};y.x=Math.round(y.x*1e3)/1e3,y.y=Math.round(y.y*1e3)/1e3,y.scaleX=Math.round(y.scaleX*1e3)/1e3,y.scaleX=Math.round(y.scaleX*1e3)/1e3;let E=t.translate!==!1&&(y.x!==0||y.y!==0),l=t.scale!==!1&&(y.scaleX!==0||y.scaleY!==0);if(E||l){let A=[];E&&A.push(`translate(${y.x}px, ${y.y}px)`),l&&A.push(`scale(${y.scaleX}, ${y.scaleY})`),o.styles.transform=A.join(" "),o.styles["transform-origin"]="top left",c.styles.transform="none"}}for(let p in c.styles){const y=c.styles[p],E=o.styles[p];y===E?delete c.styles[p]:(y.explicitValue===!0&&(c.styles[p]=y.value),E.explicitValue===!0&&(o.styles[p]=E.value))}let f="",g=Object.keys(c.styles);if(g.length>0){o.styles.transition="none",c.styles.transition=`all ${a.duration}s ${a.easing} ${a.delay}s`,c.styles["transition-property"]=g.join(", "),c.styles["will-change"]=g.join(", ");let p=Object.keys(o.styles).map(E=>E+": "+o.styles[E]+" !important;").join(""),y=Object.keys(c.styles).map(E=>E+": "+c.styles[E]+" !important;").join("");f='[data-auto-animate-target="'+r+'"] {'+p+'}[data-auto-animate="running"] [data-auto-animate-target="'+r+'"] {'+y+"}"}return f}getAutoAnimateOptions(e,i){let t={easing:this.Reveal.getConfig().autoAnimateEasing,duration:this.Reveal.getConfig().autoAnimateDuration,delay:0};if(t=z(t,i),e.parentNode){let s=F(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(),r={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}}r.x=o.x,r.y=o.y,r.width=o.width,r.height=o.height}const a=getComputedStyle(i);return(t.styles||s.autoAnimateStyles).forEach(o=>{let c;typeof o=="string"&&(o={property:o}),typeof o.from<"u"&&e==="from"?c={value:o.from,explicitValue:!0}:typeof o.to<"u"&&e==="to"?c={value:o.to,explicitValue:!0}:(o.property==="line-height"&&(c=parseFloat(a["line-height"])/parseFloat(a["font-size"])),isNaN(c)&&(c=a[o.property])),c!==""&&(r.styles[o.property]=c)}),r}getAutoAnimatableElements(e,i){let s=(typeof this.Reveal.getConfig().autoAnimateMatcher=="function"?this.Reveal.getConfig().autoAnimateMatcher:this.getAutoAnimatePairs).call(this,e,i),r=[];return s.filter((a,o)=>{if(r.indexOf(a.to)===-1)return r.push(a.to),!0})}getAutoAnimatePairs(e,i){let t=[];const s="pre",r="h1, h2, h3, h4, h5, h6, p, li",a="img, video, iframe";return this.findAutoAnimateMatches(t,e,i,"[data-id]",o=>o.nodeName+":::"+o.getAttribute("data-id")),this.findAutoAnimateMatches(t,e,i,r,o=>o.nodeName+":::"+o.textContent.trim()),this.findAutoAnimateMatches(t,e,i,a,o=>o.nodeName+":::"+(o.getAttribute("src")||o.getAttribute("data-src"))),this.findAutoAnimateMatches(t,e,i,s,o=>o.nodeName+":::"+o.textContent.trim()),t.forEach(o=>{ye(o.from,r)?o.options={scale:!1}:ye(o.from,s)&&(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,r,a){let o={},c={};[].slice.call(i.querySelectorAll(s)).forEach((f,g)=>{const p=r(f);typeof p=="string"&&p.length&&(o[p]=o[p]||[],o[p].push(f))}),[].slice.call(t.querySelectorAll(s)).forEach((f,g)=>{const p=r(f);c[p]=c[p]||[],c[p].push(f);let y;if(o[p]){const E=c[p].length-1,l=o[p].length-1;o[p][E]?(y=o[p][E],o[p][E]=null):o[p][l]&&(y=o[p][l],o[p][l]=null)}y&&e.push({from:y,to:f,options:a})})}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 Qt=500,Zt=4,ei=6,ti=8;class ii{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(),ie),t=b(this.Reveal.getRevealElement(),Wt);this.viewportElement.classList.add("loading-scroll-mode","reveal-scroll");let s;const r=window.getComputedStyle(this.viewportElement);r&&r.background&&(s=r.background);const a=[],o=i[0].parentNode;let c;const f=(g,p,y,E)=>{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",a.push(A),E&&t.length>p){const q=t[p],U=window.getComputedStyle(q);U&&U.background?A.style.background=U.background:s&&(A.style.background=s)}else s&&(A.style.background=s);const I=document.createElement("div");I.className="scroll-page-sticky",A.appendChild(I),l=document.createElement("div"),l.className="scroll-page-content",I.appendChild(l)}l.appendChild(g),g.classList.remove("past","future"),g.setAttribute("data-index-h",p),g.setAttribute("data-index-v",y),g.slideBackgroundElement&&(g.slideBackgroundElement.remove("past","future"),l.insertBefore(g.slideBackgroundElement,g)),c=g};i.forEach((g,p)=>{this.Reveal.isVerticalStack(g)?g.querySelectorAll("section").forEach((y,E)=>{f(y,p,E,!0)}):f(g,p,0)},this),this.createProgressBar(),b(this.Reveal.getRevealElement(),".stack").forEach(g=>g.remove()),a.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 r=(s.clientY-this.progressBarInner.getBoundingClientRect().top)/this.progressBarHeight;r=Math.max(Math.min(r,1),0),this.viewportElement.scrollTop=r*(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",r=this.viewportElement.offsetHeight,a=i.height*t,o=s?a:r;this.scrollTriggerHeight=s?a:r,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(f=>{const g=this.createPage({pageElement:f,slideElement:f.querySelector("section"),stickyElement:f.querySelector(".scroll-page-sticky"),contentElement:f.querySelector(".scroll-page-content"),backgroundElement:f.querySelector(".slide-background"),autoAnimateElements:f.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 p=Math.max(g.scrollTriggers.length-1,0);p+=g.autoAnimatePages.reduce((y,E)=>y+Math.max(E.scrollTriggers.length-1,0),g.autoAnimatePages.length),g.pageElement.querySelectorAll(".scroll-snap-point").forEach(y=>y.remove());for(let y=0;y0?(g.pageHeight=r,g.pageElement.style.setProperty("--page-height",r+"px")):(g.pageHeight=o,g.pageElement.style.removeProperty("--page-height")),g.scrollPadding=this.scrollTriggerHeight*p,g.totalHeight=g.pageHeight+g.scrollPadding,g.pageElement.style.setProperty("--page-scroll-padding",g.scrollPadding+"px"),p>0?(g.stickyElement.style.position="sticky",g.stickyElement.style.top=Math.max((r-g.pageHeight)/2,0)+"px"):(g.stickyElement.style.position="relative",g.pageElement.style.scrollSnapAlign=g.pageHeight1?(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((r,a)=>{r.range=[e+a*s,e+(a+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,r)=>{e.scrollTriggers.push({activate:()=>{this.Reveal.fragments.update(r,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(a=>a.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,ti),this.progressBarScrollableHeight=this.progressBarHeight-this.playheadHeight;const s=i/e*this.progressBarHeight,r=Math.min(s/8,Zt);this.progressBarPlayhead.style.height=this.playheadHeight-r+"px",s>ei?this.slideTriggers.forEach(a=>{const{page:o}=a;o.progressBarSlide=document.createElement("div"),o.progressBarSlide.className="scrollbar-slide",o.progressBarSlide.style.top=a.range[0]*this.progressBarHeight+"px",o.progressBarSlide.style.height=(a.range[1]-a.range[0])*this.progressBarHeight-r+"px",o.progressBarSlide.classList.toggle("has-triggers",o.scrollTriggers.length>0),this.progressBarInner.appendChild(o.progressBarSlide),o.scrollTriggerElements=o.scrollTriggers.map((c,f)=>{const g=document.createElement("div");return g.className="scrollbar-trigger",g.style.top=(c.range[0]-a.range[0])*this.progressBarHeight+"px",g.style.height=(c.range[1]-c.range[0])*this.progressBarHeight-r+"px",o.progressBarSlide.appendChild(g),f===0&&(g.style.display="none"),g})}):this.pages.forEach(a=>a.progressBarSlide=null)}syncScrollPosition(){const e=this.viewportElement.offsetHeight,i=e/this.viewportElement.scrollHeight,t=this.viewportElement.scrollTop,s=this.viewportElement.scrollHeight-e,r=Math.max(Math.min(t/s,1),0),a=Math.max(Math.min((t+e/2)/this.viewportElement.scrollHeight,1),0);let o;this.slideTriggers.forEach(c=>{const{page:f}=c;r>=c.range[0]-i*2&&r<=c.range[1]+i*2&&!f.loaded?(f.loaded=!0,this.Reveal.slideContent.load(f.slideElement)):f.loaded&&(f.loaded=!1,this.Reveal.slideContent.unload(f.slideElement)),r>=c.range[0]&&r<=c.range[1]?(this.activateTrigger(c),o=c.page):c.active&&this.deactivateTrigger(c)}),o&&o.scrollTriggers.forEach(c=>{a>=c.range[0]&&a<=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")},Qt))}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:r,indexv:a}=e;s.style.display="block",i.classList.add("present"),t&&t.classList.add("present"),this.Reveal.setCurrentScrollPage(i,r,a),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 si{constructor(e){this.Reveal=e}async activate(){const e=this.Reveal.getConfig(),i=b(this.Reveal.getRevealElement(),re),t=e.slideNumber&&/all|print/i.test(e.showSlideNumber),s=this.Reveal.getComputedSlideSize(window.innerWidth,window.innerHeight),r=Math.floor(s.width*(1+e.margin)),a=Math.floor(s.height*(1+e.margin)),o=s.width,c=s.height;await new Promise(requestAnimationFrame),Te("@page{size:"+r+"px "+a+"px; margin: 0px;}"),Te(".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=r+"px",document.body.style.height=a+"px";const f=this.Reveal.getViewportElement();let g;if(f){const A=window.getComputedStyle(f);A&&A.background&&(g=A.background)}await new Promise(requestAnimationFrame),this.Reveal.layoutSlideContents(o,c),await new Promise(requestAnimationFrame);const p=i.map(A=>A.scrollHeight),y=[],E=i[0].parentNode;let l=1;i.forEach(function(A,I){if(A.classList.contains("stack")===!1){let q=(r-o)/2,U=(a-c)/2;const oe=p[I];let O=Math.max(Math.ceil(oe/a),1);O=Math.min(O,e.pdfMaxPagesPerSlide),(O===1&&e.center||A.classList.contains("center"))&&(U=Math.max((a-oe)/2,0));const k=document.createElement("div");if(y.push(k),k.className="pdf-page",k.style.height=(a+e.pdfPageHeightOffset)*O+"px",g&&(k.style.background=g),k.appendChild(A),A.style.left=q+"px",A.style.top=U+"px",A.style.width=o+"px",this.Reveal.slideContent.layout(A),A.slideBackgroundElement&&k.insertBefore(A.slideBackgroundElement,A),e.showNotes){const M=this.Reveal.getSlideNotes(A);if(M){const K=typeof e.showNotes=="string"?e.showNotes:"inline",P=document.createElement("div");P.classList.add("speaker-notes"),P.classList.add("speaker-notes-pdf"),P.setAttribute("data-layout",K),P.innerHTML=M,K==="separate-page"?y.push(P):(P.style.left="8px",P.style.bottom="8px",P.style.width=r-8*2+"px",k.appendChild(P))}}if(t){const M=document.createElement("div");M.classList.add("slide-number"),M.classList.add("slide-number-pdf"),M.innerHTML=l++,k.appendChild(M)}if(e.pdfSeparateFragments){const M=this.Reveal.fragments.sort(k.querySelectorAll(".fragment"),!0);let j;M.forEach(function(K,P){j&&j.forEach(function(D){D.classList.remove("current-fragment")}),K.forEach(function(D){D.classList.add("visible","current-fragment")},this);const R=k.cloneNode(!0);if(t){const D=R.querySelector(".slide-number-pdf"),C=P+1;D.innerHTML+="."+C}y.push(R),j=K},this),M.forEach(function(K){K.forEach(function(P){P.classList.remove("visible","current-fragment")})})}else b(k,".fragment:not(.fade-out)").forEach(function(M){M.classList.add("visible")})}},this),await new Promise(requestAnimationFrame),y.forEach(A=>E.appendChild(A)),this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()),this.Reveal.dispatchEvent({type:"pdf-ready"}),f.classList.remove("loading-scroll-mode")}isActive(){return this.Reveal.getConfig().view==="print"}}class ai{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=[],r=[];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 a=0;return t.forEach(o=>{o.forEach(c=>{r.push(c),c.setAttribute("data-fragment-index",a)}),a++}),i===!0?t:r}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 r=0;if(typeof e!="number"){let a=this.sort(t.querySelectorAll(".fragment.visible")).pop();a&&(e=parseInt(a.getAttribute("data-fragment-index")||0,10))}Array.from(i).forEach((a,o)=>{if(a.hasAttribute("data-fragment-index")&&(o=parseInt(a.getAttribute("data-fragment-index"),10)),r=Math.max(r,o),o<=e){let c=a.classList.contains("visible");a.classList.add("visible"),a.classList.remove("current-fragment"),o===e&&(this.Reveal.announceStatus(this.Reveal.getStatusText(a)),a.classList.add("current-fragment"),this.Reveal.slideContent.startEmbeddedContent(a)),c||(s.shown.push(a),this.Reveal.dispatchEvent({target:a,type:"visible",bubbles:!1}))}else{let c=a.classList.contains("visible");a.classList.remove("visible"),a.classList.remove("current-fragment"),c&&(this.Reveal.slideContent.stopEmbeddedContent(a),s.hidden.push(a),this.Reveal.dispatchEvent({target:a,type:"hidden",bubbles:!1}))}}),e=typeof e=="number"?e:-1,e=Math.max(Math.min(e,r),-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 a=this.sort(t.querySelectorAll(".fragment:not(.disabled).visible")).pop();a?e=parseInt(a.getAttribute("data-fragment-index")||0,10):e=-1}e+=i;let r=this.update(e,s);return this.Reveal.controls.update(),this.Reveal.progress.update(),this.Reveal.getConfig().fragmentInURL&&this.Reveal.location.writeURL(),!!(r.shown.length||r.hidden.length)}}return!1}next(){return this.goto(null,1)}prev(){return this.goto(null,-1)}}class ni{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(),re).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),te(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),te(t,"translate3d(0, "+s*this.overviewSlideHeight+"px, 0)")})}),Array.from(this.Reveal.getBackgroundsElement().childNodes).forEach((e,i)=>{te(e,"translate3d("+i*this.overviewSlideWidth+"px, 0, 0)"),b(e,".slide-background").forEach((t,s)=>{te(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(),re).forEach(i=>{te(i,""),i.removeEventListener("click",this.onSlideClicked,!0)}),b(this.Reveal.getBackgroundsElement(),".slide-background").forEach(i=>{te(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 ri{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 r=document.activeElement&&document.activeElement.isContentEditable===!0,a=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),f=!([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(r||a||o||f)return;let g=[66,86,190,191,112],p;if(typeof i.keyboard=="object")for(p in i.keyboard)i.keyboard[p]==="togglePause"&&g.push(parseInt(p,10));if(this.Reveal.isPaused()&&g.indexOf(t)===-1)return!1;let y=i.navigationMode==="linear"||!this.Reveal.hasHorizontalSlides()||!this.Reveal.hasVerticalSlides(),E=!1;if(typeof i.keyboard=="object"){for(p in i.keyboard)if(parseInt(p,10)===t){let l=i.keyboard[p];typeof l=="function"?l.apply(null,[e]):typeof l=="string"&&typeof this.Reveal[l]=="function"&&this.Reveal[l].call(),E=!0}}if(E===!1){for(p in this.bindings)if(parseInt(p,10)===t){let l=this.bindings[p].callback;typeof l=="function"?l.apply(null,[e]):typeof l=="string"&&typeof this.Reveal[l]=="function"&&this.Reveal[l].call(),E=!0}}E===!1&&(E=!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()&&y?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()&&y?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()&&y?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()&&y?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?Ke(i.embedded?this.Reveal.getViewportElement():document.documentElement):t===65?i.autoSlideStoppable&&this.Reveal.toggleAutoSlide(s):t===71?i.jumpToSlide&&this.Reveal.toggleJumpToSlide():(t===63||t===191)&&e.shiftKey?this.Reveal.toggleHelp():t===112?this.Reveal.toggleHelp():E=!1),E?e.preventDefault&&e.preventDefault():(t===27||t===79)&&(this.Reveal.closeOverlay()===!1&&this.Reveal.overview.toggle(),e.preventDefault&&e.preventDefault()),this.Reveal.cueAutoSlide()}}class oi{constructor(e){Ht(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 r,a;/\/[-\d]+$/g.test(t)&&(a=parseInt(t.split("/").pop(),10),a=isNaN(a)?void 0:a,t=t.split("/").shift());try{r=document.getElementById(decodeURIComponent(t)).closest(".slides section")}catch{}if(r)return{...this.Reveal.getIndices(r),f:a}}else{const r=this.Reveal.getConfig();let a=r.hashOneBasedIndex||i.oneBasedIndex?1:0,o=parseInt(s[0],10)-a||0,c=parseInt(s[1],10)-a||0,f;return r.fragmentInURL&&(f=parseInt(s[2],10),isNaN(f)&&(f=void 0)),{h:o,v:c,f}}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 r=this.Reveal.getIndices(e);if(this.Reveal.getConfig().fragmentInURL||(r.f=void 0),typeof s=="string"&&s.length)i="/"+s,r.f>=0&&(i+="/"+r.f);else{let a=this.Reveal.getConfig().hashOneBasedIndex?1:0;(r.h>0||r.v>0||r.f>=0)&&(i+=r.h+a),(r.v>0||r.f>=0)&&(i+="/"+(r.v+a)),r.f>=0&&(i+="/"+r.f)}return i}onWindowHashChange(e){this.readURL()}}class li{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=` - `,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){this.element.style.display=e.controls?"block":"none",this.element.setAttribute("data-controls-layout",e.controlsLayout),this.element.setAttribute("data-controls-back-arrows",e.controlsBackArrows)}bind(){let e=["touchstart","click"];Ye&&(e=["touchstart"]),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","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(n=>{n.classList.add("fragmented","enabled"),n.removeAttribute("disabled")}),t.next&&this.controlsNext.forEach(n=>{n.classList.add("fragmented","enabled"),n.removeAttribute("disabled")});const s=this.Reveal.isVerticalSlide(i),l=s&&i.parentElement&&i.parentElement.querySelectorAll(":scope > section").length>1;s&&l?(t.prev&&this.controlsUp.forEach(n=>{n.classList.add("fragmented","enabled"),n.removeAttribute("disabled")}),t.next&&this.controlsDown.forEach(n=>{n.classList.add("fragmented","enabled"),n.removeAttribute("disabled")})):(t.prev&&this.controlsLeft.forEach(n=>{n.classList.add("fragmented","enabled"),n.removeAttribute("disabled")}),t.next&&this.controlsRight.forEach(n=>{n.classList.add("fragmented","enabled"),n.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();Ke(i.embedded?t:t.parentElement)}}class pi{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 l=this.Reveal.getIndices(i[s]);this.Reveal.slide(l.h,l.v)}destroy(){this.element.remove()}}class vi{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 et=(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=i.onreadystatechange=s=>{(s.type==="load"||/loaded|complete/.test(i.readyState))&&(i.onload=i.onreadystatechange=i.onerror=null,e())},i.onerror=s=>{i.onload=i.onreadystatechange=i.onerror=null,e(new Error("Failed loading script: "+i.src+` -`+s))});const t=document.querySelector("head");t.insertBefore(i,t.lastChild)};class mi{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=[],l=0;if(i.forEach(n=>{(!n.condition||n.condition())&&(n.async?this.asyncDependencies.push(n):s.push(n))}),s.length){l=s.length;const n=o=>{o&&typeof o.callback=="function"&&o.callback(),--l===0&&this.initPlugins().then(t)};s.forEach(o=>{typeof o.id=="string"?(this.registerPlugin(o),n(o)):typeof o.src=="string"?et(o.src,()=>n(o)):(console.warn("Unrecognized plugin format",o),n())})}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,l=()=>{--t===0?this.loadAsync().then(e):s()},n=0;s=()=>{let o=i[n++];if(typeof o.init=="function"){let c=o.init(this.Reveal);c&&typeof c.then=="function"?c.then(l):l()}else l()},s()}})}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach(e=>{et(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=[]}}const be=40;class yi{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(ye(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)Ye&&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 l=this.Reveal.availableRoutes({includeFragments:!0}),n=t-this.touchStartX,o=s-this.touchStartY;n>be&&Math.abs(n)>Math.abs(o)?(this.touchCaptured=!0,i.navigationMode==="linear"?i.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):n<-be&&Math.abs(n)>Math.abs(o)?(this.touchCaptured=!0,i.navigationMode==="linear"?i.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):o>be&&l.up?(this.touchCaptured=!0,i.navigationMode==="linear"?this.Reveal.prev():this.Reveal.up()):o<-be&&l.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=!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 Me="focus",tt="blur";class bi{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!==Me&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=Me}blur(){this.state!==tt&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=tt}isFocused(){return this.state===Me}destroy(){this.Reveal.getRevealElement().classList.remove("focused")}onRevealPointerDown(e){this.focus()}onDocumentPointerDown(e){let i=F(e.target,".reveal");(!i||i!==this.Reveal.getRevealElement())&&this.blur()}}class wi{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()||'No notes on this slide.')}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 Ei{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,l=28;this.progressOffset+=(1-this.progressOffset)*.1;const n=-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,n,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(t-l/2,s-l/2),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,l/2-4,l),this.context.fillRect(l/2+4,0,l/2-4,l)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(l-4,l/2),this.context.lineTo(0,l),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 Si={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:[]},it="5.1.0";function st(h,e){arguments.length<2&&(e=arguments[0],h=document.querySelector(".reveal"));const i={};let t={},s=!1,l=!1,n,o,c,f,g={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},v=[],y=1,E={layout:"",overview:""},r={},A="idle",I=0,O,q=0,oe=-1,V=!1,k=new Xt(i),N=new Zt(i),W=new ei(i),j=new si(i),P=new ii(i),R=new li(i),D=new di(i),L=new ci(i),u=new hi(i),S=new ui(i),x=new fi(i),X=new gi(i),_=new pi(i),ae=new vi(i),H=new mi(i),le=new bi(i),Be=new yi(i),$=new wi(i);function Ai(a){if(!h)throw'Unable to find presentation root (
).';if(s)throw"Reveal.js has already been initialized.";if(s=!0,r.wrapper=h,r.slides=h.querySelector(".slides"),!r.slides)throw'Unable to find slides container (
).';return t={...Si,...t,...e,...a,...$e()},/print-pdf/gi.test(window.location.search)&&(t.view="print"),Ri(),window.addEventListener("load",ue,!1),H.load(t.plugins,t.dependencies).then(ki),new Promise(d=>i.on("ready",d))}function Ri(){t.embedded===!0?r.viewport=F(h,".reveal-viewport")||h:(r.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),r.viewport.classList.add("reveal-viewport")}function ki(){s!==!1&&(l=!0,Ci(),Pi(),Ni(),Ti(),Ii(),Ui(),nt(),P.update(!0),Li(),x.readURL(),setTimeout(()=>{r.slides.classList.remove("no-transition"),r.wrapper.classList.add("ready"),K({type:"ready",data:{indexh:n,indexv:o,currentSlide:f}})},1))}function Li(){const a=t.view==="print",d=t.view==="scroll"||t.view==="reader";(a||d)&&(a?Ee():Be.unbind(),r.viewport.classList.add("loading-scroll-mode"),a?document.readyState==="complete"?D.activate():window.addEventListener("load",()=>D.activate()):R.activate())}function Ci(){t.showHiddenSlides||b(r.wrapper,'section[data-visibility="hidden"]').forEach(a=>{const d=a.parentNode;d.childElementCount===1&&/section/i.test(d.nodeName)?d.remove():a.remove()})}function Pi(){r.slides.classList.add("no-transition"),he?r.wrapper.classList.add("no-hover"):r.wrapper.classList.remove("no-hover"),P.render(),N.render(),W.render(),X.render(),_.render(),$.render(),r.pauseOverlay=Ut(r.wrapper,"div","pause-overlay",t.controls?'':null),r.statusElement=xi(),r.wrapper.setAttribute("role","application")}function xi(){let a=r.wrapper.querySelector(".aria-status");return a||(a=document.createElement("div"),a.style.position="absolute",a.style.height="1px",a.style.width="1px",a.style.overflow="hidden",a.style.clip="rect( 1px, 1px, 1px, 1px )",a.classList.add("aria-status"),a.setAttribute("aria-live","polite"),a.setAttribute("aria-atomic","true"),r.wrapper.appendChild(a)),a}function He(a){r.statusElement.textContent=a}function we(a){let d="";if(a.nodeType===3)d+=a.textContent;else if(a.nodeType===1){let p=a.getAttribute("aria-hidden"),m=window.getComputedStyle(a).display==="none";p!=="true"&&!m&&Array.from(a.childNodes).forEach(w=>{d+=we(w)})}return d=d.trim(),d===""?"":d+" "}function Ti(){setInterval(()=>{(!R.isActive()&&r.wrapper.scrollTop!==0||r.wrapper.scrollLeft!==0)&&(r.wrapper.scrollTop=0,r.wrapper.scrollLeft=0)},1e3)}function Ii(){document.addEventListener("fullscreenchange",Pe),document.addEventListener("webkitfullscreenchange",Pe)}function Ni(){t.postMessage&&window.addEventListener("message",Bt,!1)}function nt(a){const d={...t};if(typeof a=="object"&&z(t,a),i.isReady()===!1)return;const p=r.wrapper.querySelectorAll(re).length;r.wrapper.classList.remove(d.transition),r.wrapper.classList.add(t.transition),r.wrapper.setAttribute("data-transition-speed",t.transitionSpeed),r.wrapper.setAttribute("data-background-transition",t.backgroundTransition),r.viewport.style.setProperty("--slide-width",typeof t.width=="string"?t.width:t.width+"px"),r.viewport.style.setProperty("--slide-height",typeof t.height=="string"?t.height:t.height+"px"),t.shuffle&&Oe(),ee(r.wrapper,"embedded",t.embedded),ee(r.wrapper,"rtl",t.rtl),ee(r.wrapper,"center",t.center),t.pause===!1&&ve(),t.previewLinks?(ht(),ze("[data-preview-link=false]")):(ze(),ht("[data-preview-link]:not([data-preview-link=false])")),j.reset(),O&&(O.destroy(),O=null),p>1&&t.autoSlide&&t.autoSlideStoppable&&(O=new Ei(r.wrapper,()=>Math.min(Math.max((Date.now()-oe)/I,0),1)),O.on("click",Yi),V=!1),t.navigationMode!=="default"?r.wrapper.setAttribute("data-navigation-mode",t.navigationMode):r.wrapper.removeAttribute("data-navigation-mode"),$.configure(t,d),le.configure(t,d),ae.configure(t,d),X.configure(t,d),_.configure(t,d),S.configure(t,d),L.configure(t,d),N.configure(t,d),Et()}function rt(){window.addEventListener("resize",zt,!1),t.touch&&Be.bind(),t.keyboard&&S.bind(),t.progress&&_.bind(),t.respondToHashChanges&&x.bind(),X.bind(),le.bind(),r.slides.addEventListener("click",Dt,!1),r.slides.addEventListener("transitionend",Ht,!1),r.pauseOverlay.addEventListener("click",ve,!1),t.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",Ft,!1)}function Ee(){Be.unbind(),le.unbind(),S.unbind(),X.unbind(),_.unbind(),x.unbind(),window.removeEventListener("resize",zt,!1),r.slides.removeEventListener("click",Dt,!1),r.slides.removeEventListener("transitionend",Ht,!1),r.pauseOverlay.removeEventListener("click",ve,!1)}function Mi(){s=!1,l!==!1&&(Ee(),Ae(),ze(),$.destroy(),le.destroy(),H.destroy(),ae.destroy(),X.destroy(),_.destroy(),P.destroy(),N.destroy(),W.destroy(),document.removeEventListener("fullscreenchange",Pe),document.removeEventListener("webkitfullscreenchange",Pe),document.removeEventListener("visibilitychange",Ft,!1),window.removeEventListener("message",Bt,!1),window.removeEventListener("load",ue,!1),r.pauseOverlay&&r.pauseOverlay.remove(),r.statusElement&&r.statusElement.remove(),document.documentElement.classList.remove("reveal-full-page"),r.wrapper.classList.remove("ready","center","has-horizontal-slides","has-vertical-slides"),r.wrapper.removeAttribute("data-transition-speed"),r.wrapper.removeAttribute("data-background-transition"),r.viewport.classList.remove("reveal-viewport"),r.viewport.style.removeProperty("--slide-width"),r.viewport.style.removeProperty("--slide-height"),r.slides.style.removeProperty("width"),r.slides.style.removeProperty("height"),r.slides.style.removeProperty("zoom"),r.slides.style.removeProperty("left"),r.slides.style.removeProperty("top"),r.slides.style.removeProperty("bottom"),r.slides.style.removeProperty("right"),r.slides.style.removeProperty("transform"),Array.from(r.wrapper.querySelectorAll(re)).forEach(a=>{a.style.removeProperty("display"),a.style.removeProperty("top"),a.removeAttribute("hidden"),a.removeAttribute("aria-hidden")}))}function ot(a,d,p){h.addEventListener(a,d,p)}function lt(a,d,p){h.removeEventListener(a,d,p)}function De(a){typeof a.layout=="string"&&(E.layout=a.layout),typeof a.overview=="string"&&(E.overview=a.overview),E.layout?te(r.slides,E.layout+" "+E.overview):te(r.slides,E.overview)}function K({target:a=r.wrapper,type:d,data:p,bubbles:m=!0}){let w=document.createEvent("HTMLEvents",1,2);return w.initEvent(d,m,!0),z(w,p),a.dispatchEvent(w),a===r.wrapper&&ct(d),w}function dt(a){K({type:"slidechanged",data:{indexh:n,indexv:o,previousSlide:c,currentSlide:f,origin:a}})}function ct(a,d){if(t.postMessageEvents&&window.parent!==window.self){let p={namespace:"reveal",eventName:a,state:Nt()};z(p,d),window.parent.postMessage(JSON.stringify(p),"*")}}function ht(a="a"){Array.from(r.wrapper.querySelectorAll(a)).forEach(d=>{/^(http|www)/gi.test(d.getAttribute("href"))&&d.addEventListener("click",Vt,!1)})}function ze(a="a"){Array.from(r.wrapper.querySelectorAll(a)).forEach(d=>{/^(http|www)/gi.test(d.getAttribute("href"))&&d.removeEventListener("click",Vt,!1)})}function ut(a){J(),r.overlay=document.createElement("div"),r.overlay.classList.add("overlay"),r.overlay.classList.add("overlay-preview"),r.wrapper.appendChild(r.overlay),r.overlay.innerHTML=`
- - + `,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){this.element.style.display=e.controls&&(e.controls!=="speaker-only"||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"];Xe&&(e=["touchstart"]),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","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(a=>{a.classList.add("fragmented","enabled"),a.removeAttribute("disabled")}),t.next&&this.controlsNext.forEach(a=>{a.classList.add("fragmented","enabled"),a.removeAttribute("disabled")});const s=this.Reveal.isVerticalSlide(i),r=s&&i.parentElement&&i.parentElement.querySelectorAll(":scope > section").length>1;s&&r?(t.prev&&this.controlsUp.forEach(a=>{a.classList.add("fragmented","enabled"),a.removeAttribute("disabled")}),t.next&&this.controlsDown.forEach(a=>{a.classList.add("fragmented","enabled"),a.removeAttribute("disabled")})):(t.prev&&this.controlsLeft.forEach(a=>{a.classList.add("fragmented","enabled"),a.removeAttribute("disabled")}),t.next&&this.controlsRight.forEach(a=>{a.classList.add("fragmented","enabled"),a.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();Ke(i.embedded?t:t.parentElement)}}class di{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 r=this.Reveal.getIndices(i[s]);this.Reveal.slide(r.h,r.v)}destroy(){this.element.remove()}}class ci{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 Qe=(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=i.onreadystatechange=s=>{(s.type==="load"||/loaded|complete/.test(i.readyState))&&(i.onload=i.onreadystatechange=i.onerror=null,e())},i.onerror=s=>{i.onload=i.onreadystatechange=i.onerror=null,e(new Error("Failed loading script: "+i.src+` +`+s))});const t=document.querySelector("head");t.insertBefore(i,t.lastChild)};class hi{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=[],r=0;if(i.forEach(a=>{(!a.condition||a.condition())&&(a.async?this.asyncDependencies.push(a):s.push(a))}),s.length){r=s.length;const a=o=>{o&&typeof o.callback=="function"&&o.callback(),--r===0&&this.initPlugins().then(t)};s.forEach(o=>{typeof o.id=="string"?(this.registerPlugin(o),a(o)):typeof o.src=="string"?Qe(o.src,()=>a(o)):(console.warn("Unrecognized plugin format",o),a())})}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,r=()=>{--t===0?this.loadAsync().then(e):s()},a=0;s=()=>{let o=i[a++];if(typeof o.init=="function"){let c=o.init(this.Reveal);c&&typeof c.then=="function"?c.then(r):r()}else r()},s()}})}loadAsync(){return this.state="loaded",this.asyncDependencies.length&&this.asyncDependencies.forEach(e=>{Qe(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 ui{constructor(e){this.Reveal=e,this.onSlidesClicked=this.onSlidesClicked.bind(this),this.linkPreviewSelector=null,this.mediaPreviewSelector="[data-preview-image], [data-preview-video]"}update(){this.Reveal.getConfig().previewLinks?this.linkPreviewSelector="a[href]:not([data-preview-link=false])":this.linkPreviewSelector="[data-preview-link]:not([data-preview-link=false])",this.hasLinkPreviews=this.Reveal.getSlidesElement().querySelectorAll(this.linkPreviewSelector).length>0,this.hasMediaPreviews=this.Reveal.getSlidesElement().querySelectorAll(this.mediaPreviewSelector).length>0,this.hasLinkPreviews||this.hasMediaPreviews?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.getViewportElement().appendChild(this.dom)}showIframePreview(e){this.close(),this.createOverlay("r-overlay-preview"),this.dom.dataset.state="loading",this.viewport.innerHTML=`
+ +
-
-
- - - Unable to load iframe. This is likely due to the site's policy (x-frame-options). +
+
+ + + Unable to load iframe. This is likely due to the site's policy (x-frame-options). -
`,r.overlay.querySelector("iframe").addEventListener("load",d=>{r.overlay.classList.add("loaded")},!1),r.overlay.querySelector(".close").addEventListener("click",d=>{J(),d.preventDefault()},!1),r.overlay.querySelector(".external").addEventListener("click",d=>{J()},!1)}function Bi(a){typeof a=="boolean"?a?ft():J():r.overlay?J():ft()}function ft(){if(t.help){J(),r.overlay=document.createElement("div"),r.overlay.classList.add("overlay"),r.overlay.classList.add("overlay-help"),r.wrapper.appendChild(r.overlay);let a='

Keyboard Shortcuts


',d=S.getShortcuts(),p=S.getBindings();a+="";for(let m in d)a+=``;for(let m in p)p[m].key&&p[m].description&&(a+=``);a+="
KEYACTION
${m}${d[m]}
${p[m].key}${p[m].description}
",r.overlay.innerHTML=` -
- +
`,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)}showMediaPreview(e,i,t){if(i!=="image"&&i!=="video"){console.warn("Please specify a valid media type to preview (image|video)");return}this.close(),this.createOverlay("r-overlay-preview"),this.dom.dataset.state="loading",this.dom.dataset.previewFit=t&&t.dataset.previewFit||"scale-down",this.viewport.innerHTML=`
+ +
+
+
`;const s=this.dom.querySelector(".r-overlay-content");if(i==="image"){const r=document.createElement("img",{});r.src=e,s.appendChild(r),r.addEventListener("load",()=>{this.dom.dataset.state="loaded"},!1),r.addEventListener("error",()=>{this.dom.dataset.state="error",s.innerHTML='Unable to load image.'},!1),this.dom.style.cursor="zoom-out",this.dom.addEventListener("click",a=>{this.close()},!1)}else if(i==="video"){const r=document.createElement("video");r.autoplay=this.dom.dataset.previewAutoplay!=="false",r.controls=this.dom.dataset.previewControls!=="false",r.loop=this.dom.dataset.previewLoop==="true",r.muted=this.dom.dataset.previewMuted==="true",r.playsInline=!0,r.src=e,s.appendChild(r),r.addEventListener("loadeddata",()=>{this.dom.dataset.state="loaded"},!1),r.addEventListener("error",()=>{this.dom.dataset.state="error",s.innerHTML='Unable to load video.'},!1)}else throw new Error("Please specify a valid media type to preview");this.dom.querySelector(".r-overlay-close").addEventListener("click",r=>{this.close(),r.preventDefault()},!1)}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='

Keyboard Shortcuts

',i=this.Reveal.keyboard.getShortcuts(),t=this.Reveal.keyboard.getBindings();e+="";for(let s in i)e+=``;for(let s in t)t[s].key&&t[s].description&&(e+=``);e+="
KEYACTION
${s}${i[s]}
${t[s].key}${t[s].description}
",this.viewport.innerHTML=` +
+
-
-
${a}
+
+
${e}
- `,r.overlay.querySelector(".close").addEventListener("click",m=>{J(),m.preventDefault()},!1)}}function J(){return r.overlay?(r.overlay.parentNode.removeChild(r.overlay),r.overlay=null,!0):!1}function ue(){if(r.wrapper&&!D.isActive()){const a=r.viewport.offsetWidth,d=r.viewport.offsetHeight;if(!t.disableLayout){he&&!t.embedded&&document.documentElement.style.setProperty("--vh",window.innerHeight*.01+"px");const p=R.isActive()?Se(a,d):Se(),m=y;gt(t.width,t.height),r.slides.style.width=p.width+"px",r.slides.style.height=p.height+"px",y=Math.min(p.presentationWidth/p.width,p.presentationHeight/p.height),y=Math.max(y,t.minScale),y=Math.min(y,t.maxScale),y===1||R.isActive()?(r.slides.style.zoom="",r.slides.style.left="",r.slides.style.top="",r.slides.style.bottom="",r.slides.style.right="",De({layout:""})):(r.slides.style.zoom="",r.slides.style.left="50%",r.slides.style.top="50%",r.slides.style.bottom="auto",r.slides.style.right="auto",De({layout:"translate(-50%, -50%) scale("+y+")"}));const w=Array.from(r.wrapper.querySelectorAll(re));for(let C=0,T=w.length;C .stretch, section > .r-stretch").forEach(p=>{let m=Wt(p,d);if(/(img|video)/gi.test(p.nodeName)){const w=p.naturalWidth||p.videoWidth,C=p.naturalHeight||p.videoHeight,T=Math.min(a/w,m/C);p.style.width=w*T+"px",p.style.height=C*T+"px"}else p.style.width=a+"px",p.style.height=m+"px"})}function Hi(){if(r.wrapper&&!t.disableLayout&&!D.isActive()&&typeof t.scrollActivationWidth=="number"&&t.view!=="scroll"){const a=Se();a.presentationWidth>0&&a.presentationWidth<=t.scrollActivationWidth?R.isActive()||(P.create(),R.activate()):R.isActive()&&R.deactivate()}}function Se(a,d){let p=t.width,m=t.height;t.disableLayout&&(p=r.slides.offsetWidth,m=r.slides.offsetHeight);const w={width:p,height:m,presentationWidth:a||r.wrapper.offsetWidth,presentationHeight:d||r.wrapper.offsetHeight};return w.presentationWidth-=w.presentationWidth*t.margin,w.presentationHeight-=w.presentationHeight*t.margin,typeof w.width=="string"&&/%$/.test(w.width)&&(w.width=parseInt(w.width,10)/100*w.presentationWidth),typeof w.height=="string"&&/%$/.test(w.height)&&(w.height=parseInt(w.height,10)/100*w.presentationHeight),w}function pt(a,d){typeof a=="object"&&typeof a.setAttribute=="function"&&a.setAttribute("data-previous-indexv",d||0)}function vt(a){if(typeof a=="object"&&typeof a.setAttribute=="function"&&a.classList.contains("stack")){const d=a.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(a.getAttribute(d)||0,10)}return 0}function pe(a=f){return a&&a.parentNode&&!!a.parentNode.nodeName.match(/section/i)}function Di(a=f){return a.classList.contains(".stack")||a.querySelector("section")!==null}function mt(){return f&&pe(f)?!f.nextElementSibling:!1}function yt(){return n===0&&o===0}function Fe(){return f?!(f.nextElementSibling||pe(f)&&f.parentNode.nextElementSibling):!1}function bt(){if(t.pause){const a=r.wrapper.classList.contains("paused");Ae(),r.wrapper.classList.add("paused"),a===!1&&K({type:"paused"})}}function ve(){const a=r.wrapper.classList.contains("paused");r.wrapper.classList.remove("paused"),fe(),a&&K({type:"resumed"})}function wt(a){typeof a=="boolean"?a?bt():ve():me()?ve():bt()}function me(){return r.wrapper.classList.contains("paused")}function zi(a){typeof a=="boolean"?a?W.show():W.hide():W.isVisible()?W.hide():W.show()}function Fi(a){typeof a=="boolean"?a?ke():Re():V?ke():Re()}function Vi(){return!!(I&&!V)}function Y(a,d,p,m){if(K({type:"beforeslidechange",data:{indexh:a===void 0?n:a,indexv:d===void 0?o:d,origin:m}}).defaultPrevented)return;c=f;const C=r.wrapper.querySelectorAll(ie);if(R.isActive()){const G=R.getSlideByIndices(a,d);G&&R.scrollToSlide(G);return}if(C.length===0)return;d===void 0&&!u.isActive()&&(d=vt(C[a])),c&&c.parentNode&&c.parentNode.classList.contains("stack")&&pt(c.parentNode,o);const T=v.concat();v.length=0;let B=n||0,de=o||0;n=St(ie,a===void 0?n:a),o=St(Ge,d===void 0?o:d);let Z=n!==B||o!==de;Z||(c=null);let U=C[n],M=U.querySelectorAll("section");h.classList.toggle("is-vertical-slide",M.length>1),f=M[o]||U;let ge=!1;Z&&c&&f&&!u.isActive()&&(A="running",ge=Ve(c,f,B,de),ge&&r.slides.classList.add("disable-slide-transitions")),qe(),ue(),u.isActive()&&u.update(),typeof p<"u"&&L.goto(p),c&&c!==f&&(c.classList.remove("present"),c.setAttribute("aria-hidden","true"),yt()&&setTimeout(()=>{ji().forEach(G=>{pt(G,0)})},0));e:for(let G=0,Gi=v.length;G{He(we(f))}),_.update(),X.update(),$.update(),P.update(),P.updateParallax(),N.update(),L.update(),x.writeURL(),fe(),ge&&(setTimeout(()=>{r.slides.classList.remove("disable-slide-transitions")},0),t.autoAnimate&&j.run(c,f))}function Ve(a,d,p,m){return a.hasAttribute("data-auto-animate")&&d.hasAttribute("data-auto-animate")&&a.getAttribute("data-auto-animate-id")===d.getAttribute("data-auto-animate-id")&&!(n>p||o>m?d:a).hasAttribute("data-auto-animate-restart")}function Oi(a,d,p){let m=n||0;n=d,o=p;const w=f!==a;c=f,f=a,f&&c&&t.autoAnimate&&Ve(c,f,m,o)&&j.run(c,f),w&&(c&&(k.stopEmbeddedContent(c),k.stopEmbeddedContent(c.slideBackgroundElement)),k.startEmbeddedContent(f),k.startEmbeddedContent(f.slideBackgroundElement)),requestAnimationFrame(()=>{He(we(f))}),dt()}function Et(){Ee(),rt(),ue(),I=t.autoSlide,fe(),P.create(),x.writeURL(),t.sortFragmentsOnSync===!0&&L.sortAll(),X.update(),_.update(),qe(),$.update(),$.updateVisibility(),P.update(!0),N.update(),k.formatEmbeddedContent(),t.autoPlayMedia===!1?k.stopEmbeddedContent(f,{unloadIframes:!1}):k.startEmbeddedContent(f),u.isActive()&&u.layout()}function qi(a=f){P.sync(a),L.sync(a),k.load(a),P.update(),$.update()}function Ui(){ne().forEach(a=>{b(a,"section").forEach((d,p)=>{p>0&&(d.classList.remove("present"),d.classList.remove("past"),d.classList.add("future"),d.setAttribute("aria-hidden","true"))})})}function Oe(a=ne()){a.forEach((d,p)=>{let m=a[Math.floor(Math.random()*a.length)];m.parentNode===d.parentNode&&d.parentNode.insertBefore(d,m);let w=d.querySelectorAll("section");w.length&&Oe(w)})}function St(a,d){let p=b(r.wrapper,a),m=p.length,w=R.isActive()||D.isActive(),C=!1,T=!1;if(m){t.loop&&(d>=m&&(C=!0),d%=m,d<0&&(d=m+d,T=!0)),d=Math.max(Math.min(d,m-1),0);for(let U=0;Ud?(M.classList.add(ge?"past":"future"),t.fragments&&Rt(M)):U===d&&t.fragments&&(C?Rt(M):T&&At(M))}let B=p[d],de=B.classList.contains("present");B.classList.add("present"),B.removeAttribute("hidden"),B.removeAttribute("aria-hidden"),de||K({target:B,type:"visible",bubbles:!1});let Z=B.getAttribute("data-state");Z&&(v=v.concat(Z.split(" ")))}else d=0;return d}function At(a){b(a,".fragment").forEach(d=>{d.classList.add("visible"),d.classList.remove("current-fragment")})}function Rt(a){b(a,".fragment.visible").forEach(d=>{d.classList.remove("visible","current-fragment")})}function qe(){let a=ne(),d=a.length,p,m;if(d&&typeof n<"u"){let w=u.isActive()?10:t.viewDistance;he&&(w=u.isActive()?6:t.mobileViewDistance),D.isActive()&&(w=Number.MAX_VALUE);for(let C=0;C0,right:n0,down:o1&&(m.left=!0,m.right=!0),p.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),a===!0){let w=L.availableRoutes();m.left=m.left||w.prev,m.up=m.up||w.prev,m.down=m.down||w.next,m.right=m.right||w.next}if(t.rtl){let w=m.left;m.left=m.right,m.right=w}return m}function kt(a=f){let d=ne(),p=0;e:for(let m=0;m0){let m=f.querySelectorAll(".fragment.visible");d+=m.length/p.length*.9}}return Math.min(d/(a-1),1)}function Lt(a){let d=n,p=o,m;if(a)if(R.isActive())d=parseInt(a.getAttribute("data-index-h"),10),a.getAttribute("data-index-v")&&(p=parseInt(a.getAttribute("data-index-v"),10));else{let w=pe(a),C=w?a.parentNode:a,T=ne();d=Math.max(T.indexOf(C),0),p=void 0,w&&(p=Math.max(b(a.parentNode,"section").indexOf(a),0))}if(!a&&f&&f.querySelectorAll(".fragment").length>0){let C=f.querySelector(".current-fragment");C&&C.hasAttribute("data-fragment-index")?m=parseInt(C.getAttribute("data-fragment-index"),10):m=f.querySelectorAll(".fragment.visible").length-1}return{h:d,v:p,f:m}}function Ue(){return b(r.wrapper,re+':not(.stack):not([data-visibility="uncounted"])')}function ne(){return b(r.wrapper,ie)}function Ct(){return b(r.wrapper,".slides>section>section")}function ji(){return b(r.wrapper,ie+".stack")}function Pt(){return ne().length>1}function xt(){return Ct().length>1}function _i(){return Ue().map(a=>{let d={};for(let p=0;p{w.hasAttribute("data-autoplay")&&I&&w.duration*1e3/w.playbackRate>I&&(I=w.duration*1e3/w.playbackRate+1e3)})),I&&!V&&!me()&&!u.isActive()&&(!Fe()||L.availableRoutes().next||t.loop===!0)&&(q=setTimeout(()=>{typeof t.autoSlideMethod=="function"?t.autoSlideMethod():_e(),fe()},I),oe=Date.now()),O&&O.setPlaying(q!==-1)}}function Ae(){clearTimeout(q),q=-1}function Re(){I&&!V&&(V=!0,K({type:"autoslidepaused"}),clearTimeout(q),O&&O.setPlaying(!1))}function ke(){I&&V&&(V=!1,K({type:"autoslideresumed"}),fe())}function Le({skipFragments:a=!1}={}){if(g.hasNavigatedHorizontally=!0,R.isActive())return R.prev();t.rtl?(u.isActive()||a||L.next()===!1)&&Q().left&&Y(n+1,t.navigationMode==="grid"?o:void 0):(u.isActive()||a||L.prev()===!1)&&Q().left&&Y(n-1,t.navigationMode==="grid"?o:void 0)}function Ce({skipFragments:a=!1}={}){if(g.hasNavigatedHorizontally=!0,R.isActive())return R.next();t.rtl?(u.isActive()||a||L.prev()===!1)&&Q().right&&Y(n-1,t.navigationMode==="grid"?o:void 0):(u.isActive()||a||L.next()===!1)&&Q().right&&Y(n+1,t.navigationMode==="grid"?o:void 0)}function We({skipFragments:a=!1}={}){if(R.isActive())return R.prev();(u.isActive()||a||L.prev()===!1)&&Q().up&&Y(n,o-1)}function je({skipFragments:a=!1}={}){if(g.hasNavigatedVertically=!0,R.isActive())return R.next();(u.isActive()||a||L.next()===!1)&&Q().down&&Y(n,o+1)}function Mt({skipFragments:a=!1}={}){if(R.isActive())return R.prev();if(a||L.prev()===!1)if(Q().up)We({skipFragments:a});else{let d;if(t.rtl?d=b(r.wrapper,ie+".future").pop():d=b(r.wrapper,ie+".past").pop(),d&&d.classList.contains("stack")){let p=d.querySelectorAll("section").length-1||void 0,m=n-1;Y(m,p)}else t.rtl?Ce({skipFragments:a}):Le({skipFragments:a})}}function _e({skipFragments:a=!1}={}){if(g.hasNavigatedHorizontally=!0,g.hasNavigatedVertically=!0,R.isActive())return R.next();if(a||L.next()===!1){let d=Q();d.down&&d.right&&t.loop&&mt()&&(d.down=!1),d.down?je({skipFragments:a}):t.rtl?Le({skipFragments:a}):Ce({skipFragments:a})}}function Xi(a){t.autoSlideStoppable&&Re()}function Bt(a){let d=a.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(Gt.test(d.method)===!1){const p=i[d.method].apply(i,d.args);ct("callback",{method:d.method,result:p})}else console.warn('reveal.js: "'+d.method+'" is is blacklisted from the postMessage API')}function Ht(a){A==="running"&&/section/gi.test(a.target.nodeName)&&(A="idle",K({type:"slidetransitionend",data:{indexh:n,indexv:o,previousSlide:c,currentSlide:f}}))}function Dt(a){const d=F(a.target,'a[href^="#"]');if(d){const p=d.getAttribute("href"),m=x.getIndicesFromHash(p);m&&(i.slide(m.h,m.v,m.f),a.preventDefault())}}function zt(a){ue()}function Ft(a){document.hidden===!1&&document.activeElement!==document.body&&(typeof document.activeElement.blur=="function"&&document.activeElement.blur(),document.body.focus())}function Pe(a){(document.fullscreenElement||document.webkitFullscreenElement)===r.wrapper&&(a.stopImmediatePropagation(),setTimeout(()=>{i.layout(),i.focus.focus()},1))}function Vt(a){if(a.currentTarget&&a.currentTarget.hasAttribute("href")){let d=a.currentTarget.getAttribute("href");d&&(ut(d),a.preventDefault())}}function Yi(a){Fe()&&t.loop===!1?(Y(0,0),ke()):V?ke():Re()}const Ot={VERSION:it,initialize:Ai,configure:nt,destroy:Mi,sync:Et,syncSlide:qi,syncFragments:L.sync.bind(L),slide:Y,left:Le,right:Ce,up:We,down:je,prev:Mt,next:_e,navigateLeft:Le,navigateRight:Ce,navigateUp:We,navigateDown:je,navigatePrev:Mt,navigateNext:_e,navigateFragment:L.goto.bind(L),prevFragment:L.prev.bind(L),nextFragment:L.next.bind(L),on:ot,off:lt,addEventListener:ot,removeEventListener:lt,layout:ue,shuffle:Oe,availableRoutes:Q,availableFragments:L.availableRoutes.bind(L),toggleHelp:Bi,toggleOverview:u.toggle.bind(u),toggleScrollView:R.toggle.bind(R),togglePause:wt,toggleAutoSlide:Fi,toggleJumpToSlide:zi,isFirstSlide:yt,isLastSlide:Fe,isLastVerticalSlide:mt,isVerticalSlide:pe,isVerticalStack:Di,isPaused:me,isAutoSliding:Vi,isSpeakerNotes:$.isSpeakerNotesWindow.bind($),isOverview:u.isActive.bind(u),isFocused:le.isFocused.bind(le),isScrollView:R.isActive.bind(R),isPrintView:D.isActive.bind(D),isReady:()=>l,loadSlide:k.load.bind(k),unloadSlide:k.unload.bind(k),startEmbeddedContent:()=>k.startEmbeddedContent(f),stopEmbeddedContent:()=>k.stopEmbeddedContent(f,{unloadIframes:!1}),showPreview:ut,hidePreview:J,addEventListeners:rt,removeEventListeners:Ee,dispatchEvent:K,getState:Nt,setState:$i,getProgress:Wi,getIndices:Lt,getSlidesAttributes:_i,getSlidePastCount:kt,getTotalSlides:Tt,getSlide:It,getPreviousSlide:()=>c,getCurrentSlide:()=>f,getSlideBackground:Ki,getSlideNotes:$.getSlideNotes.bind($),getSlides:Ue,getHorizontalSlides:ne,getVerticalSlides:Ct,hasHorizontalSlides:Pt,hasVerticalSlides:xt,hasNavigatedHorizontally:()=>g.hasNavigatedHorizontally,hasNavigatedVertically:()=>g.hasNavigatedVertically,shouldAutoAnimateBetween:Ve,addKeyBinding:S.addKeyBinding.bind(S),removeKeyBinding:S.removeKeyBinding.bind(S),triggerKey:S.triggerKey.bind(S),registerKeyboardShortcut:S.registerKeyboardShortcut.bind(S),getComputedSlideSize:Se,setCurrentScrollPage:Oi,getScale:()=>y,getConfig:()=>t,getQueryHash:$e,getSlidePath:x.getHash.bind(x),getRevealElement:()=>h,getSlidesElement:()=>r.slides,getViewportElement:()=>r.viewport,getBackgroundsElement:()=>P.element,registerPlugin:H.registerPlugin.bind(H),hasPlugin:H.hasPlugin.bind(H),getPlugin:H.getPlugin.bind(H),getPlugins:H.getRegisteredPlugins.bind(H)};return z(i,{...Ot,announceStatus:He,getStatusText:we,focus:le,scroll:R,progress:_,controls:X,location:x,overview:u,fragments:L,backgrounds:P,slideContent:k,slideNumber:N,onUserInput:Xi,closeOverlay:J,updateSlidesVisibility:qe,layoutSlideContents:gt,transformSlides:De,cueAutoSlide:fe,cancelAutoSlide:Ae}),Ot}let se=st,at=[];return se.initialize=h=>(Object.assign(se,new st(document.querySelector(".reveal"),h)),at.map(e=>e(se)),se.initialize()),["configure","on","off","addEventListener","removeEventListener","registerPlugin"].forEach(h=>{se[h]=(...e)=>{at.push(i=>i[h].call(null,...e))}}),se.isReady=()=>!1,se.VERSION=it,se}); + `,this.dom.querySelector(".r-overlay-close").addEventListener("click",s=>{this.close(),s.preventDefault()},!1)}}isOpen(){return!!this.dom}close(){return this.dom?(this.dom.remove(),this.dom=null,!0):!1}onSlidesClicked(e){const i=e.target,t=i.closest(this.linkPreviewSelector),s=i.closest(this.mediaPreviewSelector);if(t){let r=t.getAttribute("href");r&&(this.showIframePreview(r),e.preventDefault())}else if(s){if(s.hasAttribute("data-preview-image")){let r=s.dataset.previewImage||s.getAttribute("src");r&&(this.showMediaPreview(r,"image",s),e.preventDefault())}else if(s.hasAttribute("data-preview-video")){let r=s.dataset.previewVideo||s.getAttribute("src");if(!r){let a=s.querySelector("source");a&&(r=a.getAttribute("src"))}r&&(this.showMediaPreview(r,"video",s),e.preventDefault())}}}destroy(){this.close()}}const be=40;class fi{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(ye(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)Xe&&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 r=this.Reveal.availableRoutes({includeFragments:!0}),a=t-this.touchStartX,o=s-this.touchStartY;a>be&&Math.abs(a)>Math.abs(o)?(this.touchCaptured=!0,i.navigationMode==="linear"?i.rtl?this.Reveal.next():this.Reveal.prev():this.Reveal.left()):a<-be&&Math.abs(a)>Math.abs(o)?(this.touchCaptured=!0,i.navigationMode==="linear"?i.rtl?this.Reveal.prev():this.Reveal.next():this.Reveal.right()):o>be&&r.up?(this.touchCaptured=!0,i.navigationMode==="linear"?this.Reveal.prev():this.Reveal.up()):o<-be&&r.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=!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 Ne="focus",Ze="blur";class gi{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!==Ne&&(this.Reveal.getRevealElement().classList.add("focused"),document.addEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=Ne}blur(){this.state!==Ze&&(this.Reveal.getRevealElement().classList.remove("focused"),document.removeEventListener("pointerdown",this.onDocumentPointerDown,!1)),this.state=Ze}isFocused(){return this.state===Ne}destroy(){this.Reveal.getRevealElement().classList.remove("focused")}onRevealPointerDown(e){this.focus()}onDocumentPointerDown(e){let i=F(e.target,".reveal");(!i||i!==this.Reveal.getRevealElement())&&this.blur()}}class pi{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()||'No notes on this slide.')}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 vi{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,r=28;this.progressOffset+=(1-this.progressOffset)*.1;const a=-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,a,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(t-r/2,s-r/2),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,r/2-4,r),this.context.fillRect(r/2+4,0,r/2-4,r)):(this.context.beginPath(),this.context.translate(4,0),this.context.moveTo(0,0),this.context.lineTo(r-4,r/2),this.context.lineTo(0,r),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 mi={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:[]},et="6.0.0";function tt(h,e){arguments.length<2&&(e=arguments[0],h=document.querySelector(".reveal"));const i={};let t={},s=!1,r=!1,a,o,c,f,g={hasNavigatedHorizontally:!1,hasNavigatedVertically:!1},p=[],y=1,E={layout:"",overview:""},l={},A="idle",I=0,q,U=0,oe=-1,O=!1,k=new Ut(i),M=new $t(i),j=new Xt(i),K=new Jt(i),P=new Gt(i),R=new ii(i),D=new si(i),C=new ai(i),u=new ni(i),S=new ri(i),x=new oi(i),Y=new li(i),_=new di(i),ae=new ci(i),H=new hi(i),V=new ui(i),le=new gi(i),Be=new fi(i),X=new pi(i);function yi(n){if(!h)throw'Unable to find presentation root (
).';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 (
).';return t={...mi,...t,...e,...n,..._e()},/print-pdf/gi.test(window.location.search)&&(t.view="print"),bi(),window.addEventListener("load",ue,!1),H.load(t.plugins,t.dependencies).then(wi),new Promise(d=>i.on("ready",d))}function bi(){t.embedded===!0?l.viewport=F(h,".reveal-viewport")||h:(l.viewport=document.body,document.documentElement.classList.add("reveal-full-page")),l.viewport.classList.add("reveal-viewport")}function wi(){s!==!1&&(r=!0,Si(),Ai(),Li(),ki(),Ci(),Di(),st(),P.update(!0),Ei(),x.readURL(),setTimeout(()=>{l.slides.classList.remove("no-transition"),l.wrapper.classList.add("ready"),$({type:"ready",data:{indexh:a,indexv:o,currentSlide:f}})},1))}function Ei(){const n=t.view==="print",d=t.view==="scroll"||t.view==="reader";(n||d)&&(n?Ee():Be.unbind(),l.viewport.classList.add("loading-scroll-mode"),n?document.readyState==="complete"?D.activate():window.addEventListener("load",()=>D.activate()):R.activate())}function Si(){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 Ai(){l.slides.classList.add("no-transition"),he?l.wrapper.classList.add("no-hover"):l.wrapper.classList.remove("no-hover"),P.render(),M.render(),j.render(),Y.render(),_.render(),X.render(),l.pauseOverlay=Dt(l.wrapper,"div","pause-overlay",t.controls?'':null),l.statusElement=Ri(),l.wrapper.setAttribute("role","application")}function Ri(){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 He(n){l.statusElement.textContent=n}function we(n){let d="";if(n.nodeType===3)d+=n.textContent;else if(n.nodeType===1){let v=n.getAttribute("aria-hidden"),m=window.getComputedStyle(n).display==="none";v!=="true"&&!m&&Array.from(n.childNodes).forEach(w=>{d+=we(w)})}return d=d.trim(),d===""?"":d+" "}function ki(){setInterval(()=>{(!R.isActive()&&l.wrapper.scrollTop!==0||l.wrapper.scrollLeft!==0)&&(l.wrapper.scrollTop=0,l.wrapper.scrollLeft=0)},1e3)}function Ci(){document.addEventListener("fullscreenchange",Pe),document.addEventListener("webkitfullscreenchange",Pe)}function Li(){t.postMessage&&window.addEventListener("message",xt,!1)}function st(n){const d={...t};if(typeof n=="object"&&z(t,n),i.isReady()===!1)return;const v=l.wrapper.querySelectorAll(re).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&&Oe(),ee(l.wrapper,"embedded",t.embedded),ee(l.wrapper,"rtl",t.rtl),ee(l.wrapper,"center",t.center),t.pause===!1&&ve(),K.reset(),q&&(q.destroy(),q=null),v>1&&t.autoSlide&&t.autoSlideStoppable&&(q=new vi(l.wrapper,()=>Math.min(Math.max((Date.now()-oe)/I,0),1)),q.on("click",Wi),O=!1),t.navigationMode!=="default"?l.wrapper.setAttribute("data-navigation-mode",t.navigationMode):l.wrapper.removeAttribute("data-navigation-mode"),X.configure(t,d),le.configure(t,d),ae.configure(t,d),Y.configure(t,d),_.configure(t,d),S.configure(t,d),C.configure(t,d),M.configure(t,d),vt()}function at(){window.addEventListener("resize",Mt,!1),t.touch&&Be.bind(),t.keyboard&&S.bind(),t.progress&&_.bind(),t.respondToHashChanges&&x.bind(),Y.bind(),le.bind(),l.slides.addEventListener("click",It,!1),l.slides.addEventListener("transitionend",Tt,!1),l.pauseOverlay.addEventListener("click",ve,!1),t.focusBodyOnPageVisibilityChange&&document.addEventListener("visibilitychange",Nt,!1)}function Ee(){Be.unbind(),le.unbind(),S.unbind(),Y.unbind(),_.unbind(),x.unbind(),window.removeEventListener("resize",Mt,!1),l.slides.removeEventListener("click",It,!1),l.slides.removeEventListener("transitionend",Tt,!1),l.pauseOverlay.removeEventListener("click",ve,!1)}function Pi(){s=!1,r!==!1&&(Ee(),Ae(),X.destroy(),le.destroy(),V.destroy(),H.destroy(),ae.destroy(),Y.destroy(),_.destroy(),P.destroy(),M.destroy(),j.destroy(),document.removeEventListener("fullscreenchange",Pe),document.removeEventListener("webkitfullscreenchange",Pe),document.removeEventListener("visibilitychange",Nt,!1),window.removeEventListener("message",xt,!1),window.removeEventListener("load",ue,!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(re)).forEach(n=>{n.style.removeProperty("display"),n.style.removeProperty("top"),n.removeAttribute("hidden"),n.removeAttribute("aria-hidden")}))}function nt(n,d,v){h.addEventListener(n,d,v)}function rt(n,d,v){h.removeEventListener(n,d,v)}function De(n){typeof n.layout=="string"&&(E.layout=n.layout),typeof n.overview=="string"&&(E.overview=n.overview),E.layout?te(l.slides,E.layout+" "+E.overview):te(l.slides,E.overview)}function $({target:n=l.wrapper,type:d,data:v,bubbles:m=!0}){let w=document.createEvent("HTMLEvents",1,2);return w.initEvent(d,m,!0),z(w,v),n.dispatchEvent(w),n===l.wrapper&<(d),w}function ot(n){$({type:"slidechanged",data:{indexh:a,indexv:o,previousSlide:c,currentSlide:f,origin:n}})}function lt(n,d){if(t.postMessageEvents&&window.parent!==window.self){let v={namespace:"reveal",eventName:n,state:Lt()};z(v,d),window.parent.postMessage(JSON.stringify(v),"*")}}function ue(){if(l.wrapper&&!D.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=R.isActive()?Se(n,d):Se(),m=y;dt(t.width,t.height),l.slides.style.width=v.width+"px",l.slides.style.height=v.height+"px",y=Math.min(v.presentationWidth/v.width,v.presentationHeight/v.height),y=Math.max(y,t.minScale),y=Math.min(y,t.maxScale),y===1||R.isActive()?(l.slides.style.zoom="",l.slides.style.left="",l.slides.style.top="",l.slides.style.bottom="",l.slides.style.right="",De({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",De({layout:"translate(-50%, -50%) scale("+y+")"}));const w=Array.from(l.wrapper.querySelectorAll(re));for(let L=0,T=w.length;L .stretch, section > .r-stretch").forEach(v=>{let m=zt(v,d);if(/(img|video)/gi.test(v.nodeName)){const w=v.naturalWidth||v.videoWidth,L=v.naturalHeight||v.videoHeight,T=Math.min(n/w,m/L);v.style.width=w*T+"px",v.style.height=L*T+"px"}else v.style.width=n+"px",v.style.height=m+"px"})}function xi(){if(l.wrapper&&!t.disableLayout&&!D.isActive()&&typeof t.scrollActivationWidth=="number"&&t.view!=="scroll"){const n=Se();n.presentationWidth>0&&n.presentationWidth<=t.scrollActivationWidth?R.isActive()||(P.create(),R.activate()):R.isActive()&&R.deactivate()}}function Se(n,d){let v=t.width,m=t.height;t.disableLayout&&(v=l.slides.offsetWidth,m=l.slides.offsetHeight);const w={width:v,height:m,presentationWidth:n||l.wrapper.offsetWidth,presentationHeight:d||l.wrapper.offsetHeight};return w.presentationWidth-=w.presentationWidth*t.margin,w.presentationHeight-=w.presentationHeight*t.margin,typeof w.width=="string"&&/%$/.test(w.width)&&(w.width=parseInt(w.width,10)/100*w.presentationWidth),typeof w.height=="string"&&/%$/.test(w.height)&&(w.height=parseInt(w.height,10)/100*w.presentationHeight),w}function ct(n,d){typeof n=="object"&&typeof n.setAttribute=="function"&&n.setAttribute("data-previous-indexv",d||0)}function ht(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 pe(n=f){return n&&n.parentNode&&!!n.parentNode.nodeName.match(/section/i)}function Ti(n=f){return n.classList.contains(".stack")||n.querySelector("section")!==null}function ut(){return f&&pe(f)?!f.nextElementSibling:!1}function ft(){return a===0&&o===0}function ze(){return f?!(f.nextElementSibling||pe(f)&&f.parentNode.nextElementSibling):!1}function gt(){if(t.pause){const n=l.wrapper.classList.contains("paused");Ae(),l.wrapper.classList.add("paused"),n===!1&&$({type:"paused"})}}function ve(){const n=l.wrapper.classList.contains("paused");l.wrapper.classList.remove("paused"),fe(),n&&$({type:"resumed"})}function pt(n){typeof n=="boolean"?n?gt():ve():me()?ve():gt()}function me(){return l.wrapper.classList.contains("paused")}function Ii(n){typeof n=="boolean"?n?j.show():j.hide():j.isVisible()?j.hide():j.show()}function Mi(n){typeof n=="boolean"?n?ke():Re():O?ke():Re()}function Ni(){return!!(I&&!O)}function G(n,d,v,m){if($({type:"beforeslidechange",data:{indexh:n===void 0?a:n,indexv:d===void 0?o:d,origin:m}}).defaultPrevented)return;c=f;const L=l.wrapper.querySelectorAll(ie);if(R.isActive()){const J=R.getSlideByIndices(n,d);J&&R.scrollToSlide(J);return}if(L.length===0)return;d===void 0&&!u.isActive()&&(d=ht(L[n])),c&&c.parentNode&&c.parentNode.classList.contains("stack")&&ct(c.parentNode,o);const T=p.concat();p.length=0;let B=a||0,de=o||0;a=mt(ie,n===void 0?a:n),o=mt(Ye,d===void 0?o:d);let Z=a!==B||o!==de;Z||(c=null);let W=L[a],N=W.querySelectorAll("section");h.classList.toggle("is-vertical-slide",N.length>1),f=N[o]||W;let ge=!1;Z&&c&&f&&!u.isActive()&&(A="running",ge=Fe(c,f,B,de),ge&&l.slides.classList.add("disable-slide-transitions")),Ve(),ue(),u.isActive()&&u.update(),typeof v<"u"&&C.goto(v),c&&c!==f&&(c.classList.remove("present"),c.setAttribute("aria-hidden","true"),ft()&&setTimeout(()=>{Fi().forEach(J=>{ct(J,0)})},0));e:for(let J=0,ji=p.length;J{He(we(f))}),_.update(),Y.update(),X.update(),P.update(),P.updateParallax(),M.update(),C.update(),x.writeURL(),fe(),ge&&(setTimeout(()=>{l.slides.classList.remove("disable-slide-transitions")},0),t.autoAnimate&&K.run(c,f))}function Fe(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")&&!(a>v||o>m?d:n).hasAttribute("data-auto-animate-restart")}function Bi(n,d,v){let m=a||0;a=d,o=v;const w=f!==n;c=f,f=n,f&&c&&t.autoAnimate&&Fe(c,f,m,o)&&K.run(c,f),w&&(c&&(k.stopEmbeddedContent(c),k.stopEmbeddedContent(c.slideBackgroundElement)),k.startEmbeddedContent(f),k.startEmbeddedContent(f.slideBackgroundElement)),requestAnimationFrame(()=>{He(we(f))}),ot()}function vt(){Ee(),at(),ue(),I=t.autoSlide,fe(),P.create(),x.writeURL(),t.sortFragmentsOnSync===!0&&C.sortAll(),Y.update(),_.update(),Ve(),X.update(),X.updateVisibility(),V.update(),P.update(!0),M.update(),k.formatEmbeddedContent(),t.autoPlayMedia===!1?k.stopEmbeddedContent(f,{unloadIframes:!1}):k.startEmbeddedContent(f),u.isActive()&&u.layout()}function Hi(n=f){P.sync(n),C.sync(n),k.load(n),P.update(),X.update()}function Di(){ne().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 Oe(n=ne()){n.forEach((d,v)=>{let m=n[Math.floor(Math.random()*n.length)];m.parentNode===d.parentNode&&d.parentNode.insertBefore(d,m);let w=d.querySelectorAll("section");w.length&&Oe(w)})}function mt(n,d){let v=b(l.wrapper,n),m=v.length,w=R.isActive()||D.isActive(),L=!1,T=!1;if(m){t.loop&&(d>=m&&(L=!0),d%=m,d<0&&(d=m+d,T=!0)),d=Math.max(Math.min(d,m-1),0);for(let W=0;Wd?(N.classList.add(ge?"past":"future"),t.fragments&&bt(N)):W===d&&t.fragments&&(L?bt(N):T&&yt(N))}let B=v[d],de=B.classList.contains("present");B.classList.add("present"),B.removeAttribute("hidden"),B.removeAttribute("aria-hidden"),de||$({target:B,type:"visible",bubbles:!1});let Z=B.getAttribute("data-state");Z&&(p=p.concat(Z.split(" ")))}else d=0;return d}function yt(n){b(n,".fragment").forEach(d=>{d.classList.add("visible"),d.classList.remove("current-fragment")})}function bt(n){b(n,".fragment.visible").forEach(d=>{d.classList.remove("visible","current-fragment")})}function Ve(){let n=ne(),d=n.length,v,m;if(d&&typeof a<"u"){let w=u.isActive()?10:t.viewDistance;he&&(w=u.isActive()?6:t.mobileViewDistance),D.isActive()&&(w=Number.MAX_VALUE);for(let L=0;L0,right:a0,down:o1&&(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 w=C.availableRoutes();m.left=m.left||w.prev,m.up=m.up||w.prev,m.down=m.down||w.next,m.right=m.right||w.next}if(t.rtl){let w=m.left;m.left=m.right,m.right=w}return m}function wt(n=f){let d=ne(),v=0;e:for(let m=0;m0){let m=f.querySelectorAll(".fragment.visible");d+=m.length/v.length*.9}}return Math.min(d/(n-1),1)}function Et(n){let d=a,v=o,m;if(n)if(R.isActive())d=parseInt(n.getAttribute("data-index-h"),10),n.getAttribute("data-index-v")&&(v=parseInt(n.getAttribute("data-index-v"),10));else{let w=pe(n),L=w?n.parentNode:n,T=ne();d=Math.max(T.indexOf(L),0),v=void 0,w&&(v=Math.max(b(n.parentNode,"section").indexOf(n),0))}if(!n&&f&&f.querySelectorAll(".fragment").length>0){let L=f.querySelector(".current-fragment");L&&L.hasAttribute("data-fragment-index")?m=parseInt(L.getAttribute("data-fragment-index"),10):m=f.querySelectorAll(".fragment.visible").length-1}return{h:d,v,f:m}}function qe(){return b(l.wrapper,re+':not(.stack):not([data-visibility="uncounted"])')}function ne(){return b(l.wrapper,ie)}function St(){return b(l.wrapper,".slides>section>section")}function Fi(){return b(l.wrapper,ie+".stack")}function At(){return ne().length>1}function Rt(){return St().length>1}function Oi(){return qe().map(n=>{let d={};for(let v=0;v{w.hasAttribute("data-autoplay")&&I&&w.duration*1e3/w.playbackRate>I&&(I=w.duration*1e3/w.playbackRate+1e3)})),I&&!O&&!me()&&!u.isActive()&&(!ze()||C.availableRoutes().next||t.loop===!0)&&(U=setTimeout(()=>{typeof t.autoSlideMethod=="function"?t.autoSlideMethod():je(),fe()},I),oe=Date.now()),q&&q.setPlaying(U!==-1)}}function Ae(){clearTimeout(U),U=-1}function Re(){I&&!O&&(O=!0,$({type:"autoslidepaused"}),clearTimeout(U),q&&q.setPlaying(!1))}function ke(){I&&O&&(O=!1,$({type:"autoslideresumed"}),fe())}function Ce({skipFragments:n=!1}={}){if(g.hasNavigatedHorizontally=!0,R.isActive())return R.prev();t.rtl?(u.isActive()||n||C.next()===!1)&&Q().left&&G(a+1,t.navigationMode==="grid"?o:void 0):(u.isActive()||n||C.prev()===!1)&&Q().left&&G(a-1,t.navigationMode==="grid"?o:void 0)}function Le({skipFragments:n=!1}={}){if(g.hasNavigatedHorizontally=!0,R.isActive())return R.next();t.rtl?(u.isActive()||n||C.prev()===!1)&&Q().right&&G(a-1,t.navigationMode==="grid"?o:void 0):(u.isActive()||n||C.next()===!1)&&Q().right&&G(a+1,t.navigationMode==="grid"?o:void 0)}function Ue({skipFragments:n=!1}={}){if(R.isActive())return R.prev();(u.isActive()||n||C.prev()===!1)&&Q().up&&G(a,o-1)}function We({skipFragments:n=!1}={}){if(g.hasNavigatedVertically=!0,R.isActive())return R.next();(u.isActive()||n||C.next()===!1)&&Q().down&&G(a,o+1)}function Pt({skipFragments:n=!1}={}){if(R.isActive())return R.prev();if(n||C.prev()===!1)if(Q().up)Ue({skipFragments:n});else{let d;if(t.rtl?d=b(l.wrapper,ie+".future").pop():d=b(l.wrapper,ie+".past").pop(),d&&d.classList.contains("stack")){let v=d.querySelectorAll("section").length-1||void 0,m=a-1;G(m,v)}else t.rtl?Le({skipFragments:n}):Ce({skipFragments:n})}}function je({skipFragments:n=!1}={}){if(g.hasNavigatedHorizontally=!0,g.hasNavigatedVertically=!0,R.isActive())return R.next();if(n||C.next()===!1){let d=Q();d.down&&d.right&&t.loop&&ut()&&(d.down=!1),d.down?We({skipFragments:n}):t.rtl?Ce({skipFragments:n}):Le({skipFragments:n})}}function Ui(n){t.autoSlideStoppable&&Re()}function xt(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);lt("callback",{method:d.method,result:v})}else console.warn('reveal.js: "'+d.method+'" is is blacklisted from the postMessage API')}function Tt(n){A==="running"&&/section/gi.test(n.target.nodeName)&&(A="idle",$({type:"slidetransitionend",data:{indexh:a,indexv:o,previousSlide:c,currentSlide:f}}))}function It(n){const d=F(n.target,'a[href^="#"]');if(d){const v=d.getAttribute("href"),m=x.getIndicesFromHash(v);m&&(i.slide(m.h,m.v,m.f),n.preventDefault())}}function Mt(n){ue()}function Nt(n){document.hidden===!1&&document.activeElement!==document.body&&(typeof document.activeElement.blur=="function"&&document.activeElement.blur(),document.body.focus())}function Pe(n){(document.fullscreenElement||document.webkitFullscreenElement)===l.wrapper&&(n.stopImmediatePropagation(),setTimeout(()=>{i.layout(),i.focus.focus()},1))}function Wi(n){ze()&&t.loop===!1?(G(0,0),ke()):O?ke():Re()}const Bt={VERSION:et,initialize:yi,configure:st,destroy:Pi,sync:vt,syncSlide:Hi,syncFragments:C.sync.bind(C),slide:G,left:Ce,right:Le,up:Ue,down:We,prev:Pt,next:je,navigateLeft:Ce,navigateRight:Le,navigateUp:Ue,navigateDown:We,navigatePrev:Pt,navigateNext:je,navigateFragment:C.goto.bind(C),prevFragment:C.prev.bind(C),nextFragment:C.next.bind(C),on:nt,off:rt,addEventListener:nt,removeEventListener:rt,layout:ue,shuffle:Oe,availableRoutes:Q,availableFragments:C.availableRoutes.bind(C),toggleHelp:V.toggleHelp.bind(V),toggleOverview:u.toggle.bind(u),toggleScrollView:R.toggle.bind(R),togglePause:pt,toggleAutoSlide:Mi,toggleJumpToSlide:Ii,isFirstSlide:ft,isLastSlide:ze,isLastVerticalSlide:ut,isVerticalSlide:pe,isVerticalStack:Ti,isPaused:me,isAutoSliding:Ni,isSpeakerNotes:X.isSpeakerNotesWindow.bind(X),isOverview:u.isActive.bind(u),isFocused:le.isFocused.bind(le),isOverlayOpen:V.isOpen.bind(V),isScrollView:R.isActive.bind(R),isPrintView:D.isActive.bind(D),isReady:()=>r,loadSlide:k.load.bind(k),unloadSlide:k.unload.bind(k),startEmbeddedContent:()=>k.startEmbeddedContent(f),stopEmbeddedContent:()=>k.stopEmbeddedContent(f,{unloadIframes:!1}),showIframePreview:V.showIframePreview.bind(V),showMediaPreview:V.showMediaPreview.bind(V),showPreview:V.showIframePreview.bind(V),hidePreview:V.close.bind(V),addEventListeners:at,removeEventListeners:Ee,dispatchEvent:$,getState:Lt,setState:qi,getProgress:zi,getIndices:Et,getSlidesAttributes:Oi,getSlidePastCount:wt,getTotalSlides:kt,getSlide:Ct,getPreviousSlide:()=>c,getCurrentSlide:()=>f,getSlideBackground:Vi,getSlideNotes:X.getSlideNotes.bind(X),getSlides:qe,getHorizontalSlides:ne,getVerticalSlides:St,hasHorizontalSlides:At,hasVerticalSlides:Rt,hasNavigatedHorizontally:()=>g.hasNavigatedHorizontally,hasNavigatedVertically:()=>g.hasNavigatedVertically,shouldAutoAnimateBetween:Fe,addKeyBinding:S.addKeyBinding.bind(S),removeKeyBinding:S.removeKeyBinding.bind(S),triggerKey:S.triggerKey.bind(S),registerKeyboardShortcut:S.registerKeyboardShortcut.bind(S),getComputedSlideSize:Se,setCurrentScrollPage:Bi,getScale:()=>y,getConfig:()=>t,getQueryHash:_e,getSlidePath:x.getHash.bind(x),getRevealElement:()=>h,getSlidesElement:()=>l.slides,getViewportElement:()=>l.viewport,getBackgroundsElement:()=>P.element,registerPlugin:H.registerPlugin.bind(H),hasPlugin:H.hasPlugin.bind(H),getPlugin:H.getPlugin.bind(H),getPlugins:H.getRegisteredPlugins.bind(H)};return z(i,{...Bt,announceStatus:He,getStatusText:we,focus:le,scroll:R,progress:_,controls:Y,location:x,overview:u,keyboard:S,fragments:C,backgrounds:P,slideContent:k,slideNumber:M,onUserInput:Ui,closeOverlay:V.close.bind(V),updateSlidesVisibility:Ve,layoutSlideContents:dt,transformSlides:De,cueAutoSlide:fe,cancelAutoSlide:Ae}),Bt}let se=tt,it=[];return se.initialize=h=>(Object.assign(se,new tt(document.querySelector(".reveal"),h)),it.map(e=>e(se)),se.initialize()),["configure","on","off","addEventListener","removeEventListener","registerPlugin"].forEach(h=>{se[h]=(...e)=>{it.push(i=>i[h].call(null,...e))}}),se.isReady=()=>!1,se.VERSION=et,se}); diff --git a/dist/reveal.mjs b/dist/reveal.mjs index e94f4048ee4..aea912bdf67 100644 --- a/dist/reveal.mjs +++ b/dist/reveal.mjs @@ -1,11 +1,11 @@ -var vi = Object.defineProperty; -var mi = (h, e, i) => e in h ? vi(h, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : h[e] = i; -var Pt = (h, e, i) => mi(h, typeof e != "symbol" ? e + "" : e, i); +var di = Object.defineProperty; +var ci = (h, e, i) => e in h ? di(h, e, { enumerable: !0, configurable: !0, writable: !0, value: i }) : h[e] = i; +var At = (h, e, i) => ci(h, typeof e != "symbol" ? e + "" : e, i); const ue = (h, e) => { for (let i in e) h[i] = e[i]; return h; -}, E = (h, e) => Array.from(h.querySelectorAll(e)), qe = (h, e, i) => { +}, E = (h, e) => Array.from(h.querySelectorAll(e)), Ve = (h, e, i) => { i ? h.classList.add(e) : h.classList.remove(e); }, he = (h) => { if (typeof h == "string") { @@ -20,7 +20,7 @@ const ue = (h, e) => { }, Pe = (h, e) => { let i = h.matches || h.matchesSelector || h.msMatchesSelector; return !!(i && i.call(h, e)); -}, F = (h, e) => { +}, O = (h, e) => { if (typeof h.closest == "function") return h.closest(e); for (; h; ) { @@ -29,23 +29,23 @@ const ue = (h, e) => { h = h.parentNode; } return null; -}, Ht = (h) => { +}, xt = (h) => { h = h || document.documentElement; let e = h.requestFullscreen || h.webkitRequestFullscreen || h.webkitRequestFullScreen || h.mozRequestFullScreen || h.msRequestFullscreen; e && e.apply(h); -}, yi = (h, e, i, t = "") => { +}, hi = (h, e, i, t = "") => { let s = h.querySelectorAll("." + i); - for (let n = 0; n < s.length; n++) { - let o = s[n]; + for (let a = 0; a < s.length; a++) { + let o = s[a]; if (o.parentNode === h) return o; } - let l = document.createElement(e); - return l.className = i, l.innerHTML = t, h.appendChild(l), l; -}, We = (h) => { + let r = document.createElement(e); + return r.className = i, r.innerHTML = t, h.appendChild(r), r; +}, Ue = (h) => { let e = document.createElement("style"); return e.type = "text/css", h && h.length > 0 && (e.styleSheet ? e.styleSheet.cssText = h : e.appendChild(document.createTextNode(h))), document.head.appendChild(e), e; -}, xt = () => { +}, Rt = () => { let h = {}; location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi, (e) => { h[e.split("=").shift()] = e.split("=").pop(); @@ -55,31 +55,31 @@ const ue = (h, e) => { h[e] = he(unescape(i)); } return typeof h.dependencies < "u" && delete h.dependencies, h; -}, bi = (h, e = 0) => { +}, ui = (h, e = 0) => { if (h) { let i, t = h.style.height; return h.style.height = "0px", h.parentNode.style.height = "auto", i = e - h.parentNode.offsetHeight, h.style.height = t + "px", h.parentNode.style.removeProperty("height"), i; } return e; -}, wi = { +}, fi = { mp4: "video/mp4", m4a: "video/mp4", ogv: "video/ogg", mpeg: "video/mpeg", webm: "video/webm" -}, Ei = (h = "") => wi[h.split(".").pop()], Si = (h = "") => encodeURI(h).replace(/%5B/g, "[").replace(/%5D/g, "]").replace( +}, gi = (h = "") => fi[h.split(".").pop()], pi = (h = "") => encodeURI(h).replace(/%5B/g, "[").replace(/%5D/g, "]").replace( /[!'()*]/g, (e) => `%${e.charCodeAt(0).toString(16).toUpperCase()}` -), Dt = navigator.userAgent, fe = /(iphone|ipod|ipad|android)/gi.test(Dt) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1, zt = /android/gi.test(Dt); -var Ai = function(h) { +), Tt = navigator.userAgent, fe = /(iphone|ipod|ipad|android)/gi.test(Tt) || navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1, It = /android/gi.test(Tt); +var vi = function(h) { if (h) { var e = function(u) { return [].slice.call(u); - }, i = 0, t = 1, s = 2, l = 3, n = [], o = null, c = "requestAnimationFrame" in h ? function() { + }, i = 0, t = 1, s = 2, r = 3, a = [], o = null, c = "requestAnimationFrame" in h ? function() { var u = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : { sync: !1 }; h.cancelAnimationFrame(o); var S = function() { - return g(n.filter(function(x) { + return g(a.filter(function(x) { return x.dirty && x.active; })); }; @@ -88,7 +88,7 @@ var Ai = function(h) { } : function() { }, f = function(u) { return function(S) { - n.forEach(function(x) { + a.forEach(function(x) { return x.dirty = u; }), c(S); }; @@ -96,19 +96,19 @@ var Ai = function(h) { u.filter(function(x) { return !x.styleComputed; }).forEach(function(x) { - x.styleComputed = r(x); + x.styleComputed = l(x); }), u.filter(A).forEach(I); var S = u.filter(w); S.forEach(y), S.forEach(function(x) { - I(x), v(x); + I(x), p(x); }), S.forEach(V); - }, v = function(u) { + }, p = function(u) { return u.dirty = i; }, y = function(u) { u.availableWidth = u.element.parentNode.clientWidth, u.currentWidth = u.element.scrollWidth, u.previousFontSize = u.currentFontSize, u.currentFontSize = Math.min(Math.max(u.minSize, u.availableWidth / u.currentWidth * u.previousFontSize), u.maxSize), u.whiteSpace = u.multiLine && u.currentFontSize === u.minSize ? "normal" : "nowrap"; }, w = function(u) { return u.dirty !== s || u.dirty === s && u.element.parentNode.clientWidth !== u.availableWidth; - }, r = function(u) { + }, l = function(u) { var S = h.getComputedStyle(u.element, null); return u.currentFontSize = parseFloat(S.getPropertyValue("font-size")), u.display = S.getPropertyValue("display"), u.whiteSpace = S.getPropertyValue("white-space"), !0; }, A = function(u) { @@ -118,13 +118,13 @@ var Ai = function(h) { u.element.style.whiteSpace = u.whiteSpace, u.element.style.display = u.display, u.element.style.fontSize = u.currentFontSize + "px"; }, V = function(u) { u.element.dispatchEvent(new CustomEvent("fit", { detail: { oldValue: u.previousFontSize, newValue: u.currentFontSize, scaleFactor: u.currentFontSize / u.previousFontSize } })); - }, O = function(u, S) { + }, q = function(u, S) { return function(x) { u.dirty = S, u.active && c(x); }; }, se = function(u) { return function() { - n = n.filter(function(S) { + a = a.filter(function(S) { return S.element !== u.element; }), u.observeMutations && u.observer.disconnect(), u.element.style.whiteSpace = u.originalStyle.whiteSpace, u.element.style.display = u.originalStyle.display, u.element.style.fontSize = u.originalStyle.fontSize; }; @@ -136,33 +136,33 @@ var Ai = function(h) { return function() { return u.active = !1; }; - }, N = function(u) { - u.observeMutations && (u.observer = new MutationObserver(O(u, t)), u.observer.observe(u.element, u.observeMutations)); - }, U = { minSize: 16, maxSize: 512, multiLine: !0, observeMutations: "MutationObserver" in h && { subtree: !0, childList: !0, characterData: !0 } }, W = null, P = function() { - h.clearTimeout(W), W = h.setTimeout(f(s), L.observeWindowDelay); + }, M = function(u) { + u.observeMutations && (u.observer = new MutationObserver(q(u, t)), u.observer.observe(u.element, u.observeMutations)); + }, W = { minSize: 16, maxSize: 512, multiLine: !0, observeMutations: "MutationObserver" in h && { subtree: !0, childList: !0, characterData: !0 } }, j = null, P = function() { + h.clearTimeout(j), j = h.setTimeout(f(s), C.observeWindowDelay); }, R = ["resize", "orientationchange"]; - return Object.defineProperty(L, "observeWindow", { set: function(u) { + return Object.defineProperty(C, "observeWindow", { set: function(u) { var S = "".concat(u ? "add" : "remove", "EventListener"); R.forEach(function(x) { h[S](x, P); }); - } }), L.observeWindow = !0, L.observeWindowDelay = 100, L.fitAll = f(l), L; + } }), C.observeWindow = !0, C.observeWindowDelay = 100, C.fitAll = f(r), C; } function D(u, S) { - var x = Object.assign({}, U, S), $ = u.map(function(j) { - var Z = Object.assign({}, x, { element: j, active: !0 }); + var x = Object.assign({}, W, S), X = u.map(function(K) { + var Z = Object.assign({}, x, { element: K, active: !0 }); return function(H) { - H.originalStyle = { whiteSpace: H.element.style.whiteSpace, display: H.element.style.display, fontSize: H.element.style.fontSize }, N(H), H.newbie = !0, H.dirty = !0, n.push(H); - }(Z), { element: j, fit: O(Z, l), unfreeze: z(Z), freeze: k(Z), unsubscribe: se(Z) }; + H.originalStyle = { whiteSpace: H.element.style.whiteSpace, display: H.element.style.display, fontSize: H.element.style.fontSize }, M(H), H.newbie = !0, H.dirty = !0, a.push(H); + }(Z), { element: K, fit: q(Z, r), unfreeze: z(Z), freeze: k(Z), unsubscribe: se(Z) }; }); - return c(), $; + return c(), X; } - function L(u) { + function C(u) { var S = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; return typeof u == "string" ? D(e(document.querySelectorAll(u)), S) : D([u], S)[0]; } }(typeof window > "u" ? null : window); -class Ri { +class mi { constructor(e) { this.Reveal = e, this.startEmbeddedIframe = this.startEmbeddedIframe.bind(this); } @@ -189,38 +189,38 @@ class Ri { e.style.display = this.Reveal.getConfig().display, E(e, "img[data-src], video[data-src], audio[data-src], iframe[data-src]").forEach((s) => { (s.tagName !== "IFRAME" || this.shouldPreload(s)) && (s.setAttribute("src", s.getAttribute("data-src")), s.setAttribute("data-lazy-loaded", ""), s.removeAttribute("data-src")); }), E(e, "video, audio").forEach((s) => { - let l = 0; - E(s, "source[data-src]").forEach((n) => { - n.setAttribute("src", n.getAttribute("data-src")), n.removeAttribute("data-src"), n.setAttribute("data-lazy-loaded", ""), l += 1; - }), fe && s.tagName === "VIDEO" && s.setAttribute("playsinline", ""), l > 0 && s.load(); + let r = 0; + E(s, "source[data-src]").forEach((a) => { + a.setAttribute("src", a.getAttribute("data-src")), a.removeAttribute("data-src"), a.setAttribute("data-lazy-loaded", ""), r += 1; + }), fe && s.tagName === "VIDEO" && s.setAttribute("playsinline", ""), r > 0 && s.load(); }); let t = e.slideBackgroundElement; if (t) { t.style.display = "block"; - let s = e.slideBackgroundContentElement, l = e.getAttribute("data-background-iframe"); + let s = e.slideBackgroundContentElement, r = e.getAttribute("data-background-iframe"); if (t.hasAttribute("data-loaded") === !1) { t.setAttribute("data-loaded", "true"); let o = e.getAttribute("data-background-image"), c = e.getAttribute("data-background-video"), f = e.hasAttribute("data-background-video-loop"), g = e.hasAttribute("data-background-video-muted"); if (o) - /^data:/.test(o.trim()) ? s.style.backgroundImage = `url(${o.trim()})` : s.style.backgroundImage = o.split(",").map((v) => { - let y = decodeURI(v.trim()); - return `url(${Si(y)})`; + /^data:/.test(o.trim()) ? s.style.backgroundImage = `url(${o.trim()})` : s.style.backgroundImage = o.split(",").map((p) => { + let y = decodeURI(p.trim()); + return `url(${pi(y)})`; }).join(","); else if (c) { - let v = document.createElement("video"); - f && v.setAttribute("loop", ""), (g || this.Reveal.isSpeakerNotes()) && (v.muted = !0), fe && (v.muted = !0, v.setAttribute("playsinline", "")), c.split(",").forEach((y) => { + let p = document.createElement("video"); + f && p.setAttribute("loop", ""), (g || this.Reveal.isSpeakerNotes()) && (p.muted = !0), fe && (p.muted = !0, p.setAttribute("playsinline", "")), c.split(",").forEach((y) => { const w = document.createElement("source"); w.setAttribute("src", y); - let r = Ei(y); - r && w.setAttribute("type", r), v.appendChild(w); - }), s.appendChild(v); - } else if (l && i.excludeIframes !== !0) { - let v = document.createElement("iframe"); - v.setAttribute("allowfullscreen", ""), v.setAttribute("mozallowfullscreen", ""), v.setAttribute("webkitallowfullscreen", ""), v.setAttribute("allow", "autoplay"), v.setAttribute("data-src", l), v.style.width = "100%", v.style.height = "100%", v.style.maxHeight = "100%", v.style.maxWidth = "100%", s.appendChild(v); + let l = gi(y); + l && w.setAttribute("type", l), p.appendChild(w); + }), s.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%", s.appendChild(p); } } - let n = s.querySelector("iframe[data-src]"); - n && this.shouldPreload(t) && !/autoplay=(1|true|yes)/gi.test(l) && n.getAttribute("src") !== l && n.setAttribute("src", l); + let a = s.querySelector("iframe[data-src]"); + a && this.shouldPreload(t) && !/autoplay=(1|true|yes)/gi.test(r) && a.getAttribute("src") !== r && a.setAttribute("src", r); } this.layout(e); } @@ -229,7 +229,7 @@ class Ri { */ layout(e) { Array.from(e.querySelectorAll(".r-fit-text")).forEach((i) => { - Ai(i, { + vi(i, { minSize: 24, maxSize: this.Reveal.getConfig().height * 0.8, observeMutations: !1, @@ -259,9 +259,9 @@ class Ri { */ formatEmbeddedContent() { let e = (i, t, s) => { - E(this.Reveal.getSlidesElement(), "iframe[" + i + '*="' + t + '"]').forEach((l) => { - let n = l.getAttribute(i); - n && n.indexOf(s) === -1 && l.setAttribute(i, n + (/\?/.test(n) ? "&" : "?") + s); + E(this.Reveal.getSlidesElement(), "iframe[" + i + '*="' + t + '"]').forEach((r) => { + let a = r.getAttribute(i); + a && a.indexOf(s) === -1 && r.setAttribute(i, a + (/\?/.test(a) ? "&" : "?") + 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"); @@ -278,16 +278,16 @@ class Ri { E(e, 'img[src$=".gif"]').forEach((t) => { t.setAttribute("src", t.getAttribute("src")); }), E(e, "video, audio").forEach((t) => { - if (F(t, ".fragment") && !F(t, ".fragment.visible")) + if (O(t, ".fragment") && !O(t, ".fragment.visible")) return; let s = this.Reveal.getConfig().autoPlayMedia; - if (typeof s != "boolean" && (s = t.hasAttribute("data-autoplay") || !!F(t, ".slide-background")), s && typeof t.play == "function") { + if (typeof s != "boolean" && (s = t.hasAttribute("data-autoplay") || !!O(t, ".slide-background")), s && typeof t.play == "function") { if (i && !t.muted) return; if (t.readyState > 1) this.startEmbeddedMedia({ target: t }); else if (fe) { - let l = t.play(); - l && typeof l.catch == "function" && t.controls === !1 && l.catch(() => { + let r = t.play(); + r && typeof r.catch == "function" && t.controls === !1 && r.catch(() => { t.controls = !0, t.addEventListener("play", () => { t.controls = !1; }); @@ -296,9 +296,9 @@ class Ri { t.removeEventListener("loadeddata", this.startEmbeddedMedia), t.addEventListener("loadeddata", this.startEmbeddedMedia); } }), i || (E(e, "iframe[src]").forEach((t) => { - F(t, ".fragment") && !F(t, ".fragment.visible") || this.startEmbeddedIframe({ target: t }); + O(t, ".fragment") && !O(t, ".fragment.visible") || this.startEmbeddedIframe({ target: t }); }), E(e, "iframe[data-src]").forEach((t) => { - F(t, ".fragment") && !F(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"))); + O(t, ".fragment") && !O(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"))); })); } } @@ -309,7 +309,7 @@ class Ri { * @param {object} event */ startEmbeddedMedia(e) { - let i = !!F(e.target, "html"), t = !!F(e.target, ".present"); + let i = !!O(e.target, "html"), t = !!O(e.target, ".present"); i && t && (e.target.paused || e.target.ended) && (e.target.currentTime = 0, e.target.play()), e.target.removeEventListener("loadeddata", this.startEmbeddedMedia); } /** @@ -321,10 +321,10 @@ class Ri { startEmbeddedIframe(e) { let i = e.target; if (i && i.contentWindow) { - let t = !!F(e.target, "html"), s = !!F(e.target, ".present"); + let t = !!O(e.target, "html"), s = !!O(e.target, ".present"); if (t && s) { - let l = this.Reveal.getConfig().autoPlayMedia; - typeof l != "boolean" && (l = i.hasAttribute("data-autoplay") || !!F(i, ".slide-background")), /youtube\.com\/embed\//.test(i.getAttribute("src")) && l ? i.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', "*") : /player\.vimeo\.com\//.test(i.getAttribute("src")) && l ? i.contentWindow.postMessage('{"method":"play"}', "*") : i.contentWindow.postMessage("slide:start", "*"); + let r = this.Reveal.getConfig().autoPlayMedia; + typeof r != "boolean" && (r = i.hasAttribute("data-autoplay") || !!O(i, ".slide-background")), /youtube\.com\/embed\//.test(i.getAttribute("src")) && r ? i.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', "*") : /player\.vimeo\.com\//.test(i.getAttribute("src")) && r ? i.contentWindow.postMessage('{"method":"play"}', "*") : i.contentWindow.postMessage("slide:start", "*"); } } } @@ -351,8 +351,8 @@ class Ri { })); } } -const re = ".slides section", te = ".slides>section", Tt = ".slides>section.present>section", ki = ".backgrounds>.slide-background", Li = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/, It = /fade-(down|up|right|left|out|in-then-out|in-then-semi-out)|semi-fade-out|current-visible|shrink|grow/, Ci = "h.v", Pi = "h/v", je = "c", Ft = "c/t"; -class xi { +const re = ".slides section", te = ".slides>section", kt = ".slides>section.present>section", yi = ".backgrounds>.slide-background", bi = /registerPlugin|registerKeyboardShortcut|addKeyBinding|addEventListener|showPreview/, wi = "h.v", Ei = "h/v", We = "c", Mt = "c/t"; +class Si { constructor(e) { this.Reveal = e; } @@ -377,28 +377,28 @@ class xi { * number, including formatting. */ getSlideNumber(e = this.Reveal.getCurrentSlide()) { - let i = this.Reveal.getConfig(), t, s = Ci; + let i = this.Reveal.getConfig(), t, s = wi; 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 = je); - let n = e && e.dataset.visibility === "uncounted" ? 0 : 1; + typeof i.slideNumber == "string" && (s = i.slideNumber), !/c/.test(s) && this.Reveal.getHorizontalSlides().length === 1 && (s = We); + let a = e && e.dataset.visibility === "uncounted" ? 0 : 1; switch (t = [], s) { - case je: - t.push(this.Reveal.getSlidePastCount(e) + n); + case We: + t.push(this.Reveal.getSlidePastCount(e) + a); break; - case Ft: - t.push(this.Reveal.getSlidePastCount(e) + n, "/", this.Reveal.getTotalSlides()); + case Mt: + t.push(this.Reveal.getSlidePastCount(e) + a, "/", this.Reveal.getTotalSlides()); break; default: let o = this.Reveal.getIndices(e); - t.push(o.h + n); - let c = s === Pi ? "/" : "."; + t.push(o.h + a); + let c = s === Ei ? "/" : "."; this.Reveal.isVerticalSlide(e) && t.push(c, o.v + 1); } } - let l = "#" + this.Reveal.location.getHash(e); - return this.formatNumber(t[0], t[1], t[2], l); + let r = "#" + this.Reveal.location.getHash(e); + return this.formatNumber(t[0], t[1], t[2], r); } /** * Applies HTML formatting to a slide number before it's @@ -423,7 +423,7 @@ class xi { this.element.remove(); } } -class Ti { +class Ai { constructor(e) { this.Reveal = e, this.onInput = this.onInput.bind(this), this.onBlur = this.onBlur.bind(this), this.onKeyDown = this.onKeyDown.bind(this); } @@ -447,7 +447,7 @@ class Ti { let e = this.jumpInput.value.trim(""), i; if (/^\d+$/.test(e)) { const t = this.Reveal.getConfig().slideNumber; - if (t === je || t === Ft) { + if (t === We || t === Mt) { const s = this.Reveal.getSlides()[parseInt(e, 10) - 1]; s && (i = this.Reveal.getIndices(s)); } @@ -488,7 +488,7 @@ class Ti { setTimeout(() => this.hide(), 1); } } -const _e = (h) => { +const je = (h) => { let e = h.match(/^#([0-9a-f]{3})$/i); if (e && e[1]) return e = e[1], { @@ -517,8 +517,8 @@ const _e = (h) => { b: parseInt(s[3], 10), a: parseFloat(s[4]) } : null; -}, Ii = (h) => (typeof h == "string" && (h = _e(h)), h ? (h.r * 299 + h.g * 587 + h.b * 114) / 1e3 : null); -class Ni { +}, Ri = (h) => (typeof h == "string" && (h = je(h)), h ? (h.r * 299 + h.g * 587 + h.b * 114) / 1e3 : null); +class ki { constructor(e) { this.Reveal = e; } @@ -573,10 +573,10 @@ class Ni { backgroundPosition: e.getAttribute("data-background-position"), backgroundTransition: e.getAttribute("data-background-transition"), backgroundOpacity: e.getAttribute("data-background-opacity") - }, l = 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), l && 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 n = this.getContrastClass(e); - typeof n == "string" && e.classList.add(n); + }, r = 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), r && 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 a = this.getContrastClass(e); + typeof a == "string" && e.classList.add(a); } /** * Returns a class name that can be applied to a slide to indicate @@ -589,14 +589,14 @@ class Ni { getContrastClass(e) { const i = e.slideBackgroundElement; let t = e.getAttribute("data-background-color"); - if (!t || !_e(t)) { + if (!t || !je(t)) { let s = window.getComputedStyle(i); s && s.backgroundColor && (t = s.backgroundColor); } if (t) { - const s = _e(t); + const s = je(t); if (s && s.a !== 0) - return Ii(t) < 128 ? "has-dark-background" : "has-light-background"; + return Ri(t) < 128 ? "has-dark-background" : "has-light-background"; } return null; } @@ -616,32 +616,32 @@ class Ni { * all vertical slides (not just the present) will be updated. */ update(e = !1) { - let i = this.Reveal.getConfig(), t = this.Reveal.getCurrentSlide(), s = this.Reveal.getIndices(), l = null, n = i.rtl ? "future" : "past", o = i.rtl ? "past" : "future"; + let i = this.Reveal.getConfig(), t = this.Reveal.getCurrentSlide(), s = this.Reveal.getIndices(), r = null, a = i.rtl ? "future" : "past", o = i.rtl ? "past" : "future"; if (Array.from(this.element.childNodes).forEach((c, f) => { - c.classList.remove("past", "present", "future"), f < s.h ? c.classList.add(n) : f > s.h ? c.classList.add(o) : (c.classList.add("present"), l = c), (e || f === s.h) && E(c, ".slide-background").forEach((g, v) => { + c.classList.remove("past", "present", "future"), f < s.h ? c.classList.add(a) : f > s.h ? c.classList.add(o) : (c.classList.add("present"), r = c), (e || f === s.h) && E(c, ".slide-background").forEach((g, p) => { g.classList.remove("past", "present", "future"); const y = typeof s.v == "number" ? s.v : 0; - v < y ? g.classList.add("past") : v > y ? g.classList.add("future") : (g.classList.add("present"), f === s.h && (l = g)); + p < y ? g.classList.add("past") : p > y ? g.classList.add("future") : (g.classList.add("present"), f === s.h && (r = g)); }); - }), this.previousBackground && !this.previousBackground.closest("body") && (this.previousBackground = null), l && this.previousBackground) { - let c = this.previousBackground.getAttribute("data-background-hash"), f = l.getAttribute("data-background-hash"); - if (f && f === c && l !== this.previousBackground) { + }), this.previousBackground && !this.previousBackground.closest("body") && (this.previousBackground = null), r && this.previousBackground) { + let c = this.previousBackground.getAttribute("data-background-hash"), f = r.getAttribute("data-background-hash"); + if (f && f === c && r !== this.previousBackground) { this.element.classList.add("no-transition"); - const g = l.querySelector("video"), v = this.previousBackground.querySelector("video"); - if (g && v) { + const g = r.querySelector("video"), p = this.previousBackground.querySelector("video"); + if (g && p) { const y = g.parentNode; - v.parentNode.appendChild(g), y.appendChild(v); + p.parentNode.appendChild(g), y.appendChild(p); } } } - if (this.previousBackground && this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground, { unloadIframes: !this.Reveal.slideContent.shouldPreload(this.previousBackground) }), l) { - this.Reveal.slideContent.startEmbeddedContent(l); - let c = l.querySelector(".slide-background-content"); + if (this.previousBackground && this.Reveal.slideContent.stopEmbeddedContent(this.previousBackground, { unloadIframes: !this.Reveal.slideContent.shouldPreload(this.previousBackground) }), r) { + this.Reveal.slideContent.startEmbeddedContent(r); + let c = r.querySelector(".slide-background-content"); if (c) { let f = c.style.backgroundImage || ""; /\.gif/i.test(f) && (c.style.backgroundImage = "", window.getComputedStyle(c).opacity, c.style.backgroundImage = f); } - this.previousBackground = l; + this.previousBackground = r; } t && this.bubbleSlideContrastClassToElement(t, this.Reveal.getRevealElement()), setTimeout(() => { this.element.classList.remove("no-transition"); @@ -654,20 +654,20 @@ class Ni { 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(" "), l, n; - s.length === 1 ? l = n = parseInt(s[0], 10) : (l = parseInt(s[0], 10), n = parseInt(s[1], 10)); + let i = this.Reveal.getHorizontalSlides(), t = this.Reveal.getVerticalSlides(), s = this.element.style.backgroundSize.split(" "), r, a; + s.length === 1 ? r = a = parseInt(s[0], 10) : (r = parseInt(s[0], 10), a = parseInt(s[1], 10)); let o = this.element.offsetWidth, c = i.length, f, g; - typeof this.Reveal.getConfig().parallaxBackgroundHorizontal == "number" ? f = this.Reveal.getConfig().parallaxBackgroundHorizontal : f = c > 1 ? (l - o) / (c - 1) : 0, g = f * e.h * -1; - let v = this.element.offsetHeight, y = t.length, w, r; - typeof this.Reveal.getConfig().parallaxBackgroundVertical == "number" ? w = this.Reveal.getConfig().parallaxBackgroundVertical : w = (n - v) / (y - 1), r = y > 0 ? w * e.v : 0, this.element.style.backgroundPosition = g + "px " + -r + "px"; + typeof this.Reveal.getConfig().parallaxBackgroundHorizontal == "number" ? f = this.Reveal.getConfig().parallaxBackgroundHorizontal : f = c > 1 ? (r - o) / (c - 1) : 0, g = f * e.h * -1; + let p = this.element.offsetHeight, y = t.length, w, l; + typeof this.Reveal.getConfig().parallaxBackgroundVertical == "number" ? w = this.Reveal.getConfig().parallaxBackgroundVertical : w = (a - p) / (y - 1), l = y > 0 ? w * e.v : 0, this.element.style.backgroundPosition = g + "px " + -l + "px"; } } destroy() { this.element.remove(); } } -let Nt = 0; -class Mi { +let Ct = 0; +class Ci { constructor(e) { this.Reveal = e; } @@ -679,19 +679,19 @@ class Mi { */ run(e, i) { this.reset(); - let t = this.Reveal.getSlides(), s = t.indexOf(i), l = 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 > l ? i : e).hasAttribute("data-auto-animate-restart")) { - this.autoAnimateStyleSheet = this.autoAnimateStyleSheet || We(); - let n = this.getAutoAnimateOptions(i); - e.dataset.autoAnimate = "pending", i.dataset.autoAnimate = "pending", n.slideDirection = s > l ? "forward" : "backward"; + let t = this.Reveal.getSlides(), s = t.indexOf(i), r = 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 > r ? i : e).hasAttribute("data-auto-animate-restart")) { + this.autoAnimateStyleSheet = this.autoAnimateStyleSheet || Ue(); + let a = this.getAutoAnimateOptions(i); + e.dataset.autoAnimate = "pending", i.dataset.autoAnimate = "pending", a.slideDirection = s > r ? "forward" : "backward"; let o = e.style.display === "none"; o && (e.style.display = this.Reveal.getConfig().display); - let c = this.getAutoAnimatableElements(e, i).map((f) => this.autoAnimateElements(f.from, f.to, f.options || {}, n, Nt++)); + let c = this.getAutoAnimatableElements(e, i).map((f) => this.autoAnimateElements(f.from, f.to, f.options || {}, a, Ct++)); if (o && (e.style.display = "none"), i.dataset.autoAnimateUnmatched !== "false" && this.Reveal.getConfig().autoAnimateUnmatched === !0) { - let f = n.duration * 0.8, g = n.duration * 0.2; - this.getUnmatchedAutoAnimateElements(i).forEach((v) => { - let y = this.getAutoAnimateOptions(v, n), w = "unmatched"; - (y.duration !== n.duration || y.delay !== n.delay) && (w = "unmatched-" + Nt++, c.push(`[data-auto-animate="running"] [data-auto-animate-target="${w}"] { transition: opacity ${y.duration}s ease ${y.delay}s; }`)), v.dataset.autoAnimateTarget = w; + let f = a.duration * 0.8, g = a.duration * 0.2; + this.getUnmatchedAutoAnimateElements(i).forEach((p) => { + let y = this.getAutoAnimateOptions(p, a), w = "unmatched"; + (y.duration !== a.duration || y.delay !== a.delay) && (w = "unmatched-" + Ct++, c.push(`[data-auto-animate="running"] [data-auto-animate-target="${w}"] { transition: opacity ${y.duration}s ease ${y.delay}s; }`)), p.dataset.autoAnimateTarget = w; }, this), c.push(`[data-auto-animate="running"] [data-auto-animate-target="unmatched"] { transition: opacity ${f}s ease ${g}s; }`); } this.autoAnimateStyleSheet.innerHTML = c.join(""), requestAnimationFrame(() => { @@ -729,38 +729,34 @@ class Mi { * @param {String} id Unique ID that we can use to identify this * auto-animate element in the DOM */ - autoAnimateElements(e, i, t, s, l) { - e.dataset.autoAnimateTarget = "", i.dataset.autoAnimateTarget = l; - let n = this.getAutoAnimateOptions(i, s); - typeof t.delay < "u" && (n.delay = t.delay), typeof t.duration < "u" && (n.duration = t.duration), typeof t.easing < "u" && (n.easing = t.easing); + autoAnimateElements(e, i, t, s, r) { + e.dataset.autoAnimateTarget = "", i.dataset.autoAnimateTarget = r; + let a = this.getAutoAnimateOptions(i, s); + typeof t.delay < "u" && (a.delay = t.delay), typeof t.duration < "u" && (a.duration = t.duration), typeof t.easing < "u" && (a.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, e.classList.contains("fragment"))) { - let v = (e.className.match(It) || [""])[0], y = (i.className.match(It) || [""])[0]; - v === y && s.slideDirection === "forward" && i.classList.add("visible", "disabled"); - } - if (t.translate !== !1 || t.scale !== !1) { - let v = this.Reveal.getScale(), y = { - x: (o.x - c.x) / v, - y: (o.y - c.y) / v, + if (i.classList.contains("fragment") && delete c.styles.opacity, t.translate !== !1 || t.scale !== !1) { + let p = this.Reveal.getScale(), y = { + x: (o.x - c.x) / p, + y: (o.y - c.y) / p, scaleX: o.width / c.width, scaleY: o.height / c.height }; y.x = Math.round(y.x * 1e3) / 1e3, y.y = Math.round(y.y * 1e3) / 1e3, y.scaleX = Math.round(y.scaleX * 1e3) / 1e3, y.scaleX = Math.round(y.scaleX * 1e3) / 1e3; - let w = t.translate !== !1 && (y.x !== 0 || y.y !== 0), r = t.scale !== !1 && (y.scaleX !== 0 || y.scaleY !== 0); - if (w || r) { + let w = t.translate !== !1 && (y.x !== 0 || y.y !== 0), l = t.scale !== !1 && (y.scaleX !== 0 || y.scaleY !== 0); + if (w || l) { let A = []; - w && A.push(`translate(${y.x}px, ${y.y}px)`), r && A.push(`scale(${y.scaleX}, ${y.scaleY})`), o.styles.transform = A.join(" "), o.styles["transform-origin"] = "top left", c.styles.transform = "none"; + w && A.push(`translate(${y.x}px, ${y.y}px)`), l && A.push(`scale(${y.scaleX}, ${y.scaleY})`), o.styles.transform = A.join(" "), o.styles["transform-origin"] = "top left", c.styles.transform = "none"; } } - for (let v in c.styles) { - const y = c.styles[v], w = o.styles[v]; - y === w ? delete c.styles[v] : (y.explicitValue === !0 && (c.styles[v] = y.value), w.explicitValue === !0 && (o.styles[v] = w.value)); + for (let p in c.styles) { + const y = c.styles[p], w = o.styles[p]; + y === w ? delete c.styles[p] : (y.explicitValue === !0 && (c.styles[p] = y.value), w.explicitValue === !0 && (o.styles[p] = w.value)); } let f = "", g = Object.keys(c.styles); if (g.length > 0) { - o.styles.transition = "none", c.styles.transition = `all ${n.duration}s ${n.easing} ${n.delay}s`, c.styles["transition-property"] = g.join(", "), c.styles["will-change"] = g.join(", "); - let v = Object.keys(o.styles).map((w) => w + ": " + o.styles[w] + " !important;").join(""), y = Object.keys(c.styles).map((w) => w + ": " + c.styles[w] + " !important;").join(""); - f = '[data-auto-animate-target="' + l + '"] {' + v + '}[data-auto-animate="running"] [data-auto-animate-target="' + l + '"] {' + y + "}"; + o.styles.transition = "none", c.styles.transition = `all ${a.duration}s ${a.easing} ${a.delay}s`, c.styles["transition-property"] = g.join(", "), c.styles["will-change"] = g.join(", "); + let p = Object.keys(o.styles).map((w) => w + ": " + o.styles[w] + " !important;").join(""), y = Object.keys(c.styles).map((w) => w + ": " + c.styles[w] + " !important;").join(""); + f = '[data-auto-animate-target="' + r + '"] {' + p + '}[data-auto-animate="running"] [data-auto-animate-target="' + r + '"] {' + y + "}"; } return f; } @@ -779,7 +775,7 @@ class Mi { delay: 0 }; if (t = ue(t, i), e.parentNode) { - let s = F(e.parentNode, "[data-auto-animate-target]"); + let s = O(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; @@ -792,7 +788,7 @@ class Mi { * @param {String} direction 'from' or 'to' */ getAutoAnimatableProperties(e, i, t) { - let s = this.Reveal.getConfig(), l = { styles: [] }; + let s = this.Reveal.getConfig(), r = { styles: [] }; if (t.translate !== !1 || t.scale !== !1) { let o; if (typeof t.measure == "function") @@ -808,13 +804,13 @@ class Mi { height: i.offsetHeight * c }; } - l.x = o.x, l.y = o.y, l.width = o.width, l.height = o.height; + r.x = o.x, r.y = o.y, r.width = o.width, r.height = o.height; } - const n = getComputedStyle(i); + const a = getComputedStyle(i); return (t.styles || s.autoAnimateStyles).forEach((o) => { let c; - typeof o == "string" && (o = { property: o }), typeof o.from < "u" && e === "from" ? c = { value: o.from, explicitValue: !0 } : typeof o.to < "u" && e === "to" ? c = { value: o.to, explicitValue: !0 } : (o.property === "line-height" && (c = parseFloat(n["line-height"]) / parseFloat(n["font-size"])), isNaN(c) && (c = n[o.property])), c !== "" && (l.styles[o.property] = c); - }), l; + typeof o == "string" && (o = { property: o }), typeof o.from < "u" && e === "from" ? c = { value: o.from, explicitValue: !0 } : typeof o.to < "u" && e === "to" ? c = { value: o.to, explicitValue: !0 } : (o.property === "line-height" && (c = parseFloat(a["line-height"]) / parseFloat(a["font-size"])), isNaN(c) && (c = a[o.property])), c !== "" && (r.styles[o.property] = c); + }), r; } /** * Get a list of all element pairs that we can animate @@ -828,10 +824,10 @@ class Mi { * element we're animating to */ getAutoAnimatableElements(e, i) { - let s = (typeof this.Reveal.getConfig().autoAnimateMatcher == "function" ? this.Reveal.getConfig().autoAnimateMatcher : this.getAutoAnimatePairs).call(this, e, i), l = []; - return s.filter((n, o) => { - if (l.indexOf(n.to) === -1) - return l.push(n.to), !0; + let s = (typeof this.Reveal.getConfig().autoAnimateMatcher == "function" ? this.Reveal.getConfig().autoAnimateMatcher : this.getAutoAnimatePairs).call(this, e, i), r = []; + return s.filter((a, o) => { + if (r.indexOf(a.to) === -1) + return r.push(a.to), !0; }); } /** @@ -842,9 +838,9 @@ class Mi { */ getAutoAnimatePairs(e, i) { let t = []; - const s = "pre", l = "h1, h2, h3, h4, h5, h6, p, li", n = "img, video, iframe"; - return this.findAutoAnimateMatches(t, e, i, "[data-id]", (o) => o.nodeName + ":::" + o.getAttribute("data-id")), this.findAutoAnimateMatches(t, e, i, l, (o) => o.nodeName + ":::" + o.innerText), this.findAutoAnimateMatches(t, e, i, n, (o) => o.nodeName + ":::" + (o.getAttribute("src") || o.getAttribute("data-src"))), this.findAutoAnimateMatches(t, e, i, s, (o) => o.nodeName + ":::" + o.innerText), t.forEach((o) => { - Pe(o.from, l) ? o.options = { scale: !1 } : Pe(o.from, s) && (o.options = { scale: !1, styles: ["width", "height"] }, this.findAutoAnimateMatches(t, o.from, o.to, ".hljs .hljs-ln-code", (c) => c.textContent, { + const s = "pre", r = "h1, h2, h3, h4, h5, h6, p, li", a = "img, video, iframe"; + return this.findAutoAnimateMatches(t, e, i, "[data-id]", (o) => o.nodeName + ":::" + o.getAttribute("data-id")), this.findAutoAnimateMatches(t, e, i, r, (o) => o.nodeName + ":::" + o.textContent.trim()), this.findAutoAnimateMatches(t, e, i, a, (o) => o.nodeName + ":::" + (o.getAttribute("src") || o.getAttribute("data-src"))), this.findAutoAnimateMatches(t, e, i, s, (o) => o.nodeName + ":::" + o.textContent.trim()), t.forEach((o) => { + Pe(o.from, r) ? o.options = { scale: !1 } : Pe(o.from, s) && (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) @@ -882,23 +878,23 @@ class Mi { * a stringified ID based on its contents * @param {Object} animationOptions Optional config options for this pair */ - findAutoAnimateMatches(e, i, t, s, l, n) { + findAutoAnimateMatches(e, i, t, s, r, a) { let o = {}, c = {}; [].slice.call(i.querySelectorAll(s)).forEach((f, g) => { - const v = l(f); - typeof v == "string" && v.length && (o[v] = o[v] || [], o[v].push(f)); + const p = r(f); + typeof p == "string" && p.length && (o[p] = o[p] || [], o[p].push(f)); }), [].slice.call(t.querySelectorAll(s)).forEach((f, g) => { - const v = l(f); - c[v] = c[v] || [], c[v].push(f); + const p = r(f); + c[p] = c[p] || [], c[p].push(f); let y; - if (o[v]) { - const w = c[v].length - 1, r = o[v].length - 1; - o[v][w] ? (y = o[v][w], o[v][w] = null) : o[v][r] && (y = o[v][r], o[v][r] = null); + if (o[p]) { + const w = c[p].length - 1, l = o[p].length - 1; + o[p][w] ? (y = o[p][w], o[p][w] = null) : o[p][l] && (y = o[p][l], o[p][l] = null); } y && e.push({ from: y, to: f, - options: n + options: a }); }); } @@ -921,8 +917,8 @@ class Mi { }, []); } } -const Bi = 500, Hi = 4, Di = 6, zi = 8; -class Fi { +const Li = 500, Pi = 4, xi = 6, Ti = 8; +class Ii { constructor(e) { this.Reveal = e, this.active = !1, this.activatedCallbacks = [], this.onScroll = this.onScroll.bind(this); } @@ -934,33 +930,33 @@ class Fi { if (this.active) return; const e = this.Reveal.getState(); this.active = !0, this.slideHTMLBeforeActivation = this.Reveal.getSlidesElement().innerHTML; - const i = E(this.Reveal.getRevealElement(), te), t = E(this.Reveal.getRevealElement(), ki); + const i = E(this.Reveal.getRevealElement(), te), t = E(this.Reveal.getRevealElement(), yi); this.viewportElement.classList.add("loading-scroll-mode", "reveal-scroll"); let s; - const l = window.getComputedStyle(this.viewportElement); - l && l.background && (s = l.background); - const n = [], o = i[0].parentNode; + const r = window.getComputedStyle(this.viewportElement); + r && r.background && (s = r.background); + const a = [], o = i[0].parentNode; let c; - const f = (g, v, y, w) => { - let r; + const f = (g, p, y, w) => { + let l; if (c && this.Reveal.shouldAutoAnimateBetween(c, g)) - r = document.createElement("div"), r.className = "scroll-page-content scroll-auto-animate-page", r.style.display = "none", c.closest(".scroll-page-content").parentNode.appendChild(r); + 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", n.push(A), w && t.length > v) { - const V = t[v], O = window.getComputedStyle(V); - O && O.background ? A.style.background = O.background : s && (A.style.background = s); + if (A.className = "scroll-page", a.push(A), w && t.length > p) { + const V = t[p], q = window.getComputedStyle(V); + q && q.background ? A.style.background = q.background : s && (A.style.background = s); } else s && (A.style.background = s); const I = document.createElement("div"); - I.className = "scroll-page-sticky", A.appendChild(I), r = document.createElement("div"), r.className = "scroll-page-content", I.appendChild(r); + I.className = "scroll-page-sticky", A.appendChild(I), l = document.createElement("div"), l.className = "scroll-page-content", I.appendChild(l); } - r.appendChild(g), g.classList.remove("past", "future"), g.setAttribute("data-index-h", v), g.setAttribute("data-index-v", y), g.slideBackgroundElement && (g.slideBackgroundElement.remove("past", "future"), r.insertBefore(g.slideBackgroundElement, g)), c = g; + l.appendChild(g), g.classList.remove("past", "future"), g.setAttribute("data-index-h", p), g.setAttribute("data-index-v", y), g.slideBackgroundElement && (g.slideBackgroundElement.remove("past", "future"), l.insertBefore(g.slideBackgroundElement, g)), c = g; }; - i.forEach((g, v) => { + i.forEach((g, p) => { this.Reveal.isVerticalStack(g) ? g.querySelectorAll("section").forEach((y, w) => { - f(y, v, w, !0); - }) : f(g, v, 0); - }, this), this.createProgressBar(), E(this.Reveal.getRevealElement(), ".stack").forEach((g) => g.remove()), n.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 }); + f(y, p, w, !0); + }) : f(g, p, 0); + }, this), this.createProgressBar(), E(this.Reveal.getRevealElement(), ".stack").forEach((g) => g.remove()), a.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 }); } /** * Deactivates the scroll view and restores the standard slide-based @@ -986,8 +982,8 @@ class Fi { 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 l = (s.clientY - this.progressBarInner.getBoundingClientRect().top) / this.progressBarHeight; - l = Math.max(Math.min(l, 1), 0), this.viewportElement.scrollTop = l * (this.viewportElement.scrollHeight - this.viewportElement.offsetHeight); + let r = (s.clientY - this.progressBarInner.getBoundingClientRect().top) / this.progressBarHeight; + r = Math.max(Math.min(r, 1), 0), this.viewportElement.scrollTop = r * (this.viewportElement.scrollHeight - this.viewportElement.offsetHeight); }, i = (s) => { this.draggingProgressBar = !1, this.showProgressBar(), document.removeEventListener("mousemove", e), document.removeEventListener("mouseup", i); }, t = (s) => { @@ -1006,8 +1002,8 @@ class Fi { * presentation size. */ syncPages() { - const e = this.Reveal.getConfig(), i = this.Reveal.getComputedSlideSize(window.innerWidth, window.innerHeight), t = this.Reveal.getScale(), s = e.scrollLayout === "compact", l = this.viewportElement.offsetHeight, n = i.height * t, o = s ? n : l; - this.scrollTriggerHeight = s ? n : l, this.viewportElement.style.setProperty("--page-height", o + "px"), this.viewportElement.style.scrollSnapType = typeof e.scrollSnap == "string" ? `y ${e.scrollSnap}` : "", this.slideTriggers = []; + const e = this.Reveal.getConfig(), i = this.Reveal.getComputedSlideSize(window.innerWidth, window.innerHeight), t = this.Reveal.getScale(), s = e.scrollLayout === "compact", r = this.viewportElement.offsetHeight, a = i.height * t, o = s ? a : r; + this.scrollTriggerHeight = s ? a : r, 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((f) => { const g = this.createPage({ @@ -1024,13 +1020,13 @@ class Fi { activate: () => this.activatePage(g), deactivate: () => this.deactivatePage(g) }), this.createFragmentTriggersForPage(g), g.autoAnimateElements.length > 0 && this.createAutoAnimateTriggersForPage(g); - let v = Math.max(g.scrollTriggers.length - 1, 0); - v += g.autoAnimatePages.reduce((y, w) => y + Math.max(w.scrollTriggers.length - 1, 0), g.autoAnimatePages.length), g.pageElement.querySelectorAll(".scroll-snap-point").forEach((y) => y.remove()); - for (let y = 0; y < v + 1; y++) { + let p = Math.max(g.scrollTriggers.length - 1, 0); + p += g.autoAnimatePages.reduce((y, w) => y + Math.max(w.scrollTriggers.length - 1, 0), g.autoAnimatePages.length), g.pageElement.querySelectorAll(".scroll-snap-point").forEach((y) => y.remove()); + for (let y = 0; y < p + 1; y++) { 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), y === 0 && (w.style.marginTop = -this.scrollTriggerHeight + "px"); } - return s && g.scrollTriggers.length > 0 ? (g.pageHeight = l, g.pageElement.style.setProperty("--page-height", l + "px")) : (g.pageHeight = o, g.pageElement.style.removeProperty("--page-height")), g.scrollPadding = this.scrollTriggerHeight * v, g.totalHeight = g.pageHeight + g.scrollPadding, g.pageElement.style.setProperty("--page-scroll-padding", g.scrollPadding + "px"), v > 0 ? (g.stickyElement.style.position = "sticky", g.stickyElement.style.top = Math.max((l - g.pageHeight) / 2, 0) + "px") : (g.stickyElement.style.position = "relative", g.pageElement.style.scrollSnapAlign = g.pageHeight < l ? "center" : "start"), g; + return s && g.scrollTriggers.length > 0 ? (g.pageHeight = r, g.pageElement.style.setProperty("--page-height", r + "px")) : (g.pageHeight = o, g.pageElement.style.removeProperty("--page-height")), g.scrollPadding = this.scrollTriggerHeight * p, g.totalHeight = g.pageHeight + g.scrollPadding, g.pageElement.style.setProperty("--page-scroll-padding", g.scrollPadding + "px"), p > 0 ? (g.stickyElement.style.position = "sticky", g.stickyElement.style.top = Math.max((r - g.pageHeight) / 2, 0) + "px") : (g.stickyElement.style.position = "relative", g.pageElement.style.scrollSnapAlign = g.pageHeight < r ? "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(); } /** @@ -1046,13 +1042,13 @@ class Fi { 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((l, n) => { - l.range = [ - e + n * s, - e + (n + 1) * s + i.page.scrollTriggers.forEach((r, a) => { + r.range = [ + e + a * s, + e + (a + 1) * s ]; }), e = i.range[1]; - }); + }), this.slideTriggers[this.slideTriggers.length - 1].range[1] = 1; } /** * Creates one scroll trigger for each fragments in the given page. @@ -1069,10 +1065,10 @@ class Fi { this.Reveal.fragments.update(-1, e.fragments, i); } } - ), t.forEach((s, l) => { + ), t.forEach((s, r) => { e.scrollTriggers.push({ activate: () => { - this.Reveal.fragments.update(l, e.fragments, i); + this.Reveal.fragments.update(r, e.fragments, i); } }); })), e.scrollTriggers.length; @@ -1109,30 +1105,30 @@ class Fi { * reveal.js config and size. */ syncProgressBar() { - this.progressBarInner.querySelectorAll(".scrollbar-slide").forEach((n) => n.remove()); + this.progressBarInner.querySelectorAll(".scrollbar-slide").forEach((a) => a.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, zi), this.progressBarScrollableHeight = this.progressBarHeight - this.playheadHeight; - const s = i / e * this.progressBarHeight, l = Math.min(s / 8, Hi); - this.progressBarPlayhead.style.height = this.playheadHeight - l + "px", s > Di ? this.slideTriggers.forEach((n) => { - const { page: o } = n; - o.progressBarSlide = document.createElement("div"), o.progressBarSlide.className = "scrollbar-slide", o.progressBarSlide.style.top = n.range[0] * this.progressBarHeight + "px", o.progressBarSlide.style.height = (n.range[1] - n.range[0]) * this.progressBarHeight - l + "px", o.progressBarSlide.classList.toggle("has-triggers", o.scrollTriggers.length > 0), this.progressBarInner.appendChild(o.progressBarSlide), o.scrollTriggerElements = o.scrollTriggers.map((c, f) => { + this.progressBarHeight = this.progressBarInner.offsetHeight, this.playheadHeight = Math.max(t * this.progressBarHeight, Ti), this.progressBarScrollableHeight = this.progressBarHeight - this.playheadHeight; + const s = i / e * this.progressBarHeight, r = Math.min(s / 8, Pi); + this.progressBarPlayhead.style.height = this.playheadHeight - r + "px", s > xi ? this.slideTriggers.forEach((a) => { + const { page: o } = a; + o.progressBarSlide = document.createElement("div"), o.progressBarSlide.className = "scrollbar-slide", o.progressBarSlide.style.top = a.range[0] * this.progressBarHeight + "px", o.progressBarSlide.style.height = (a.range[1] - a.range[0]) * this.progressBarHeight - r + "px", o.progressBarSlide.classList.toggle("has-triggers", o.scrollTriggers.length > 0), this.progressBarInner.appendChild(o.progressBarSlide), o.scrollTriggerElements = o.scrollTriggers.map((c, f) => { const g = document.createElement("div"); - return g.className = "scrollbar-trigger", g.style.top = (c.range[0] - n.range[0]) * this.progressBarHeight + "px", g.style.height = (c.range[1] - c.range[0]) * this.progressBarHeight - l + "px", o.progressBarSlide.appendChild(g), f === 0 && (g.style.display = "none"), g; + return g.className = "scrollbar-trigger", g.style.top = (c.range[0] - a.range[0]) * this.progressBarHeight + "px", g.style.height = (c.range[1] - c.range[0]) * this.progressBarHeight - r + "px", o.progressBarSlide.appendChild(g), f === 0 && (g.style.display = "none"), g; }); - }) : this.pages.forEach((n) => n.progressBarSlide = null); + }) : this.pages.forEach((a) => a.progressBarSlide = null); } /** * Reads the current scroll position and updates our active * trigger states accordingly. */ syncScrollPosition() { - const e = this.viewportElement.offsetHeight, i = e / this.viewportElement.scrollHeight, t = this.viewportElement.scrollTop, s = this.viewportElement.scrollHeight - e, l = Math.max(Math.min(t / s, 1), 0), n = Math.max(Math.min((t + e / 2) / this.viewportElement.scrollHeight, 1), 0); + const e = this.viewportElement.offsetHeight, i = e / this.viewportElement.scrollHeight, t = this.viewportElement.scrollTop, s = this.viewportElement.scrollHeight - e, r = Math.max(Math.min(t / s, 1), 0), a = Math.max(Math.min((t + e / 2) / this.viewportElement.scrollHeight, 1), 0); let o; this.slideTriggers.forEach((c) => { const { page: f } = c; - l >= c.range[0] - i * 2 && l <= c.range[1] + i * 2 && !f.loaded ? (f.loaded = !0, this.Reveal.slideContent.load(f.slideElement)) : f.loaded && (f.loaded = !1, this.Reveal.slideContent.unload(f.slideElement)), l >= c.range[0] && l <= c.range[1] ? (this.activateTrigger(c), o = c.page) : c.active && this.deactivateTrigger(c); + r >= c.range[0] - i * 2 && r <= c.range[1] + i * 2 && !f.loaded ? (f.loaded = !0, this.Reveal.slideContent.load(f.slideElement)) : f.loaded && (f.loaded = !1, this.Reveal.slideContent.unload(f.slideElement)), r >= c.range[0] && r <= c.range[1] ? (this.activateTrigger(c), o = c.page) : c.active && this.deactivateTrigger(c); }), o && o.scrollTriggers.forEach((c) => { - n >= c.range[0] && n <= c.range[1] ? this.activateTrigger(c) : c.active && this.deactivateTrigger(c); + a >= c.range[0] && a <= c.range[1] ? this.activateTrigger(c) : c.active && this.deactivateTrigger(c); }), this.setProgressBarValue(t / (this.viewportElement.scrollHeight - e)); } /** @@ -1154,7 +1150,7 @@ class Fi { 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"); - }, Bi)); + }, Li)); } /** * Scroll to the previous page. @@ -1206,8 +1202,8 @@ class Fi { activatePage(e) { if (!e.active) { e.active = !0; - const { slideElement: i, backgroundElement: t, contentElement: s, indexh: l, indexv: n } = e; - s.style.display = "block", i.classList.add("present"), t && t.classList.add("present"), this.Reveal.setCurrentScrollPage(i, l, n), this.Reveal.backgrounds.bubbleSlideContrastClassToElement(i, this.viewportElement), Array.from(s.parentNode.querySelectorAll(".scroll-page-content")).forEach((o) => { + const { slideElement: i, backgroundElement: t, contentElement: s, indexh: r, indexv: a } = e; + s.style.display = "block", i.classList.add("present"), t && t.classList.add("present"), this.Reveal.setCurrentScrollPage(i, r, a), this.Reveal.backgrounds.bubbleSlideContrastClassToElement(i, this.viewportElement), Array.from(s.parentNode.querySelectorAll(".scroll-page-content")).forEach((o) => { o !== s && (o.style.display = "none"); }); } @@ -1264,7 +1260,7 @@ class Fi { return this.Reveal.getViewportElement(); } } -class Vi { +class Mi { constructor(e) { this.Reveal = e; } @@ -1273,8 +1269,8 @@ class Vi { * PDF. */ async activate() { - const e = this.Reveal.getConfig(), i = E(this.Reveal.getRevealElement(), re), t = e.slideNumber && /all|print/i.test(e.showSlideNumber), s = this.Reveal.getComputedSlideSize(window.innerWidth, window.innerHeight), l = Math.floor(s.width * (1 + e.margin)), n = Math.floor(s.height * (1 + e.margin)), o = s.width, c = s.height; - await new Promise(requestAnimationFrame), We("@page{size:" + l + "px " + n + "px; margin: 0px;}"), We(".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 = l + "px", document.body.style.height = n + "px"; + const e = this.Reveal.getConfig(), i = E(this.Reveal.getRevealElement(), re), t = e.slideNumber && /all|print/i.test(e.showSlideNumber), s = this.Reveal.getComputedSlideSize(window.innerWidth, window.innerHeight), r = Math.floor(s.width * (1 + e.margin)), a = Math.floor(s.height * (1 + e.margin)), o = s.width, c = s.height; + await new Promise(requestAnimationFrame), Ue("@page{size:" + r + "px " + a + "px; margin: 0px;}"), Ue(".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 = r + "px", document.body.style.height = a + "px"; const f = this.Reveal.getViewportElement(); let g; if (f) { @@ -1282,49 +1278,49 @@ class Vi { A && A.background && (g = A.background); } await new Promise(requestAnimationFrame), this.Reveal.layoutSlideContents(o, c), await new Promise(requestAnimationFrame); - const v = i.map((A) => A.scrollHeight), y = [], w = i[0].parentNode; - let r = 1; + const p = i.map((A) => A.scrollHeight), y = [], w = i[0].parentNode; + let l = 1; i.forEach(function(A, I) { if (A.classList.contains("stack") === !1) { - let V = (l - o) / 2, O = (n - c) / 2; - const se = v[I]; - let z = Math.max(Math.ceil(se / n), 1); - z = Math.min(z, e.pdfMaxPagesPerSlide), (z === 1 && e.center || A.classList.contains("center")) && (O = Math.max((n - se) / 2, 0)); + let V = (r - o) / 2, q = (a - c) / 2; + const se = p[I]; + let z = Math.max(Math.ceil(se / a), 1); + z = Math.min(z, e.pdfMaxPagesPerSlide), (z === 1 && e.center || A.classList.contains("center")) && (q = Math.max((a - se) / 2, 0)); const k = document.createElement("div"); - if (y.push(k), k.className = "pdf-page", k.style.height = (n + e.pdfPageHeightOffset) * z + "px", g && (k.style.background = g), k.appendChild(A), A.style.left = V + "px", A.style.top = O + "px", A.style.width = o + "px", this.Reveal.slideContent.layout(A), A.slideBackgroundElement && k.insertBefore(A.slideBackgroundElement, A), e.showNotes) { - const N = this.Reveal.getSlideNotes(A); - if (N) { - const W = typeof e.showNotes == "string" ? e.showNotes : "inline", P = document.createElement("div"); - P.classList.add("speaker-notes"), P.classList.add("speaker-notes-pdf"), P.setAttribute("data-layout", W), P.innerHTML = N, W === "separate-page" ? y.push(P) : (P.style.left = "8px", P.style.bottom = "8px", P.style.width = l - 8 * 2 + "px", k.appendChild(P)); + if (y.push(k), k.className = "pdf-page", k.style.height = (a + e.pdfPageHeightOffset) * z + "px", g && (k.style.background = g), k.appendChild(A), A.style.left = V + "px", A.style.top = q + "px", A.style.width = o + "px", this.Reveal.slideContent.layout(A), A.slideBackgroundElement && k.insertBefore(A.slideBackgroundElement, A), e.showNotes) { + const M = this.Reveal.getSlideNotes(A); + if (M) { + const j = typeof e.showNotes == "string" ? e.showNotes : "inline", P = document.createElement("div"); + P.classList.add("speaker-notes"), P.classList.add("speaker-notes-pdf"), P.setAttribute("data-layout", j), P.innerHTML = M, j === "separate-page" ? y.push(P) : (P.style.left = "8px", P.style.bottom = "8px", P.style.width = r - 8 * 2 + "px", k.appendChild(P)); } } if (t) { - const N = document.createElement("div"); - N.classList.add("slide-number"), N.classList.add("slide-number-pdf"), N.innerHTML = r++, k.appendChild(N); + const M = document.createElement("div"); + M.classList.add("slide-number"), M.classList.add("slide-number-pdf"), M.innerHTML = l++, k.appendChild(M); } if (e.pdfSeparateFragments) { - const N = this.Reveal.fragments.sort(k.querySelectorAll(".fragment"), !0); - let U; - N.forEach(function(W, P) { - U && U.forEach(function(D) { + const M = this.Reveal.fragments.sort(k.querySelectorAll(".fragment"), !0); + let W; + M.forEach(function(j, P) { + W && W.forEach(function(D) { D.classList.remove("current-fragment"); - }), W.forEach(function(D) { + }), j.forEach(function(D) { D.classList.add("visible", "current-fragment"); }, this); const R = k.cloneNode(!0); if (t) { - const D = R.querySelector(".slide-number-pdf"), L = P + 1; - D.innerHTML += "." + L; + const D = R.querySelector(".slide-number-pdf"), C = P + 1; + D.innerHTML += "." + C; } - y.push(R), U = W; - }, this), N.forEach(function(W) { - W.forEach(function(P) { + y.push(R), W = j; + }, this), M.forEach(function(j) { + j.forEach(function(P) { P.classList.remove("visible", "current-fragment"); }); }); } else - E(k, ".fragment:not(.fade-out)").forEach(function(N) { - N.classList.add("visible"); + E(k, ".fragment:not(.fade-out)").forEach(function(M) { + M.classList.add("visible"); }); } }, this), await new Promise(requestAnimationFrame), y.forEach((A) => w.appendChild(A)), this.Reveal.slideContent.layout(this.Reveal.getSlidesElement()), this.Reveal.dispatchEvent({ type: "pdf-ready" }), f.classList.remove("loading-scroll-mode"); @@ -1336,7 +1332,7 @@ class Vi { return this.Reveal.getConfig().view === "print"; } } -class Oi { +class Ni { constructor(e) { this.Reveal = e; } @@ -1402,7 +1398,7 @@ class Oi { */ sort(e, i = !1) { e = Array.from(e); - let t = [], s = [], l = []; + let t = [], s = [], r = []; e.forEach((o) => { if (o.hasAttribute("data-fragment-index")) { let c = parseInt(o.getAttribute("data-fragment-index"), 10); @@ -1410,12 +1406,12 @@ class Oi { } else s.push([o]); }), t = t.concat(s); - let n = 0; + let a = 0; return t.forEach((o) => { o.forEach((c) => { - l.push(c), c.setAttribute("data-fragment-index", n); - }), n++; - }), i === !0 ? t : l; + r.push(c), c.setAttribute("data-fragment-index", a); + }), a++; + }), i === !0 ? t : r; } /** * Sorts and formats all of fragments in the @@ -1445,28 +1441,28 @@ class Oi { hidden: [] }; if (t && this.Reveal.getConfig().fragments && (i = i || this.sort(t.querySelectorAll(".fragment")), i.length)) { - let l = 0; + let r = 0; if (typeof e != "number") { - let n = this.sort(t.querySelectorAll(".fragment.visible")).pop(); - n && (e = parseInt(n.getAttribute("data-fragment-index") || 0, 10)); + let a = this.sort(t.querySelectorAll(".fragment.visible")).pop(); + a && (e = parseInt(a.getAttribute("data-fragment-index") || 0, 10)); } - Array.from(i).forEach((n, o) => { - if (n.hasAttribute("data-fragment-index") && (o = parseInt(n.getAttribute("data-fragment-index"), 10)), l = Math.max(l, o), o <= e) { - let c = n.classList.contains("visible"); - n.classList.add("visible"), n.classList.remove("current-fragment"), o === e && (this.Reveal.announceStatus(this.Reveal.getStatusText(n)), n.classList.add("current-fragment"), this.Reveal.slideContent.startEmbeddedContent(n)), c || (s.shown.push(n), this.Reveal.dispatchEvent({ - target: n, + Array.from(i).forEach((a, o) => { + if (a.hasAttribute("data-fragment-index") && (o = parseInt(a.getAttribute("data-fragment-index"), 10)), r = Math.max(r, o), o <= e) { + let c = a.classList.contains("visible"); + a.classList.add("visible"), a.classList.remove("current-fragment"), o === e && (this.Reveal.announceStatus(this.Reveal.getStatusText(a)), a.classList.add("current-fragment"), this.Reveal.slideContent.startEmbeddedContent(a)), c || (s.shown.push(a), this.Reveal.dispatchEvent({ + target: a, type: "visible", bubbles: !1 })); } else { - let c = n.classList.contains("visible"); - n.classList.remove("visible"), n.classList.remove("current-fragment"), c && (this.Reveal.slideContent.stopEmbeddedContent(n), s.hidden.push(n), this.Reveal.dispatchEvent({ - target: n, + let c = a.classList.contains("visible"); + a.classList.remove("visible"), a.classList.remove("current-fragment"), c && (this.Reveal.slideContent.stopEmbeddedContent(a), s.hidden.push(a), this.Reveal.dispatchEvent({ + target: a, type: "hidden", bubbles: !1 })); } - }), e = typeof e == "number" ? e : -1, e = Math.max(Math.min(e, l), -1), t.setAttribute("data-fragment", e); + }), e = typeof e == "number" ? e : -1, e = Math.max(Math.min(e, r), -1), t.setAttribute("data-fragment", e); } return s.hidden.length && this.Reveal.dispatchEvent({ type: "fragmenthidden", @@ -1510,12 +1506,12 @@ class Oi { let s = this.sort(t.querySelectorAll(".fragment:not(.disabled)")); if (s.length) { if (typeof e != "number") { - let n = this.sort(t.querySelectorAll(".fragment:not(.disabled).visible")).pop(); - n ? e = parseInt(n.getAttribute("data-fragment-index") || 0, 10) : e = -1; + let a = this.sort(t.querySelectorAll(".fragment:not(.disabled).visible")).pop(); + a ? e = parseInt(a.getAttribute("data-fragment-index") || 0, 10) : e = -1; } e += i; - let l = this.update(e, s); - return this.Reveal.controls.update(), this.Reveal.progress.update(), this.Reveal.getConfig().fragmentInURL && this.Reveal.location.writeURL(), !!(l.shown.length || l.hidden.length); + let r = this.update(e, s); + return this.Reveal.controls.update(), this.Reveal.progress.update(), this.Reveal.getConfig().fragmentInURL && this.Reveal.location.writeURL(), !!(r.shown.length || r.hidden.length); } } return !1; @@ -1539,7 +1535,7 @@ class Oi { return this.goto(null, -1); } } -class qi { +class Bi { constructor(e) { this.Reveal = e, this.active = !1, this.onSlideClicked = this.onSlideClicked.bind(this); } @@ -1655,7 +1651,7 @@ class qi { } } } -class Ui { +class Hi { constructor(e) { this.Reveal = e, this.shortcuts = {}, this.bindings = {}, this.onDocumentKeyDown = this.onDocumentKeyDown.bind(this); } @@ -1732,37 +1728,37 @@ class Ui { return !0; let t = e.keyCode, s = !this.Reveal.isAutoSliding(); this.Reveal.onUserInput(e); - let l = document.activeElement && document.activeElement.isContentEditable === !0, n = 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), f = !([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 (l || n || o || f) return; - let g = [66, 86, 190, 191, 112], v; + let r = document.activeElement && document.activeElement.isContentEditable === !0, a = 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), f = !([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 (r || a || o || f) return; + let g = [66, 86, 190, 191, 112], p; if (typeof i.keyboard == "object") - for (v in i.keyboard) - i.keyboard[v] === "togglePause" && g.push(parseInt(v, 10)); + for (p in i.keyboard) + i.keyboard[p] === "togglePause" && g.push(parseInt(p, 10)); if (this.Reveal.isPaused() && g.indexOf(t) === -1) return !1; let y = i.navigationMode === "linear" || !this.Reveal.hasHorizontalSlides() || !this.Reveal.hasVerticalSlides(), w = !1; if (typeof i.keyboard == "object") { - for (v in i.keyboard) - if (parseInt(v, 10) === t) { - let r = i.keyboard[v]; - typeof r == "function" ? r.apply(null, [e]) : typeof r == "string" && typeof this.Reveal[r] == "function" && this.Reveal[r].call(), w = !0; + for (p in i.keyboard) + if (parseInt(p, 10) === t) { + let l = i.keyboard[p]; + 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 (v in this.bindings) - if (parseInt(v, 10) === t) { - let r = this.bindings[v].callback; - typeof r == "function" ? r.apply(null, [e]) : typeof r == "string" && typeof this.Reveal[r] == "function" && this.Reveal[r].call(), w = !0; + for (p in this.bindings) + if (parseInt(p, 10) === t) { + let l = this.bindings[p].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() && y ? 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() && y ? 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() && y ? 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() && y ? 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 ? Ht(i.embedded ? this.Reveal.getViewportElement() : document.documentElement) : t === 65 ? i.autoSlideStoppable && this.Reveal.toggleAutoSlide(s) : t === 71 ? i.jumpToSlide && this.Reveal.toggleJumpToSlide() : (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()), this.Reveal.cueAutoSlide(); + 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() && y ? 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() && y ? 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() && y ? 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() && y ? 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 ? xt(i.embedded ? this.Reveal.getViewportElement() : document.documentElement) : t === 65 ? i.autoSlideStoppable && this.Reveal.toggleAutoSlide(s) : t === 71 ? i.jumpToSlide && this.Reveal.toggleJumpToSlide() : (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()), this.Reveal.cueAutoSlide(); } } -class Wi { +class Di { constructor(e) { // The minimum number of milliseconds that must pass between // calls to history.replaceState - Pt(this, "MAX_REPLACE_STATE_FREQUENCY", 1e3); + At(this, "MAX_REPLACE_STATE_FREQUENCY", 1e3); this.Reveal = e, this.writeURLTimeout = 0, this.replaceStateTimestamp = 0, this.onWindowHashChange = this.onWindowHashChange.bind(this); } bind() { @@ -1782,18 +1778,18 @@ class Wi { getIndicesFromHash(e = window.location.hash, i = {}) { let t = e.replace(/^#\/?/, ""), s = t.split("/"); if (!/^[0-9]*$/.test(s[0]) && t.length) { - let l, n; - /\/[-\d]+$/g.test(t) && (n = parseInt(t.split("/").pop(), 10), n = isNaN(n) ? void 0 : n, t = t.split("/").shift()); + let r, a; + /\/[-\d]+$/g.test(t) && (a = parseInt(t.split("/").pop(), 10), a = isNaN(a) ? void 0 : a, t = t.split("/").shift()); try { - l = document.getElementById(decodeURIComponent(t)).closest(".slides section"); + r = document.getElementById(decodeURIComponent(t)).closest(".slides section"); } catch { } - if (l) - return { ...this.Reveal.getIndices(l), f: n }; + if (r) + return { ...this.Reveal.getIndices(r), f: a }; } else { - const l = this.Reveal.getConfig(); - let n = l.hashOneBasedIndex || i.oneBasedIndex ? 1 : 0, o = parseInt(s[0], 10) - n || 0, c = parseInt(s[1], 10) - n || 0, f; - return l.fragmentInURL && (f = parseInt(s[2], 10), isNaN(f) && (f = void 0)), { h: o, v: c, f }; + const r = this.Reveal.getConfig(); + let a = r.hashOneBasedIndex || i.oneBasedIndex ? 1 : 0, o = parseInt(s[0], 10) - a || 0, c = parseInt(s[1], 10) - a || 0, f; + return r.fragmentInURL && (f = parseInt(s[2], 10), isNaN(f) && (f = void 0)), { h: o, v: c, f }; } return null; } @@ -1834,12 +1830,12 @@ class Wi { getHash(e) { let i = "/", t = e || this.Reveal.getCurrentSlide(), s = t ? t.getAttribute("id") : null; s && (s = encodeURIComponent(s)); - let l = this.Reveal.getIndices(e); - if (this.Reveal.getConfig().fragmentInURL || (l.f = void 0), typeof s == "string" && s.length) - i = "/" + s, l.f >= 0 && (i += "/" + l.f); + let r = this.Reveal.getIndices(e); + if (this.Reveal.getConfig().fragmentInURL || (r.f = void 0), typeof s == "string" && s.length) + i = "/" + s, r.f >= 0 && (i += "/" + r.f); else { - let n = this.Reveal.getConfig().hashOneBasedIndex ? 1 : 0; - (l.h > 0 || l.v > 0 || l.f >= 0) && (i += l.h + n), (l.v > 0 || l.f >= 0) && (i += "/" + (l.v + n)), l.f >= 0 && (i += "/" + l.f); + let a = this.Reveal.getConfig().hashOneBasedIndex ? 1 : 0; + (r.h > 0 || r.v > 0 || r.f >= 0) && (i += r.h + a), (r.v > 0 || r.f >= 0) && (i += "/" + (r.v + a)), r.f >= 0 && (i += "/" + r.f); } return i; } @@ -1852,7 +1848,7 @@ class Wi { this.readURL(); } } -class ji { +class zi { 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); } @@ -1867,11 +1863,11 @@ class ji { * Called when the reveal.js config is updated. */ configure(e, i) { - this.element.style.display = e.controls ? "block" : "none", this.element.setAttribute("data-controls-layout", e.controlsLayout), this.element.setAttribute("data-controls-back-arrows", e.controlsBackArrows); + this.element.style.display = e.controls && (e.controls !== "speaker-only" || 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"]; - zt && (e = ["touchstart"]), e.forEach((i) => { + It && (e = ["touchstart"]), 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)); }); } @@ -1903,20 +1899,20 @@ class ji { let i = this.Reveal.getCurrentSlide(); if (i) { let t = this.Reveal.fragments.availableRoutes(); - t.prev && this.controlsPrev.forEach((n) => { - n.classList.add("fragmented", "enabled"), n.removeAttribute("disabled"); - }), t.next && this.controlsNext.forEach((n) => { - n.classList.add("fragmented", "enabled"), n.removeAttribute("disabled"); + t.prev && this.controlsPrev.forEach((a) => { + a.classList.add("fragmented", "enabled"), a.removeAttribute("disabled"); + }), t.next && this.controlsNext.forEach((a) => { + a.classList.add("fragmented", "enabled"), a.removeAttribute("disabled"); }); - const s = this.Reveal.isVerticalSlide(i), l = s && i.parentElement && i.parentElement.querySelectorAll(":scope > section").length > 1; - s && l ? (t.prev && this.controlsUp.forEach((n) => { - n.classList.add("fragmented", "enabled"), n.removeAttribute("disabled"); - }), t.next && this.controlsDown.forEach((n) => { - n.classList.add("fragmented", "enabled"), n.removeAttribute("disabled"); - })) : (t.prev && this.controlsLeft.forEach((n) => { - n.classList.add("fragmented", "enabled"), n.removeAttribute("disabled"); - }), t.next && this.controlsRight.forEach((n) => { - n.classList.add("fragmented", "enabled"), n.removeAttribute("disabled"); + const s = this.Reveal.isVerticalSlide(i), r = s && i.parentElement && i.parentElement.querySelectorAll(":scope > section").length > 1; + s && r ? (t.prev && this.controlsUp.forEach((a) => { + a.classList.add("fragmented", "enabled"), a.removeAttribute("disabled"); + }), t.next && this.controlsDown.forEach((a) => { + a.classList.add("fragmented", "enabled"), a.removeAttribute("disabled"); + })) : (t.prev && this.controlsLeft.forEach((a) => { + a.classList.add("fragmented", "enabled"), a.removeAttribute("disabled"); + }), t.next && this.controlsRight.forEach((a) => { + a.classList.add("fragmented", "enabled"), a.removeAttribute("disabled"); })); } if (this.Reveal.getConfig().controlsTutorial) { @@ -1950,10 +1946,10 @@ class ji { } onEnterFullscreen(e) { const i = this.Reveal.getConfig(), t = this.Reveal.getViewportElement(); - Ht(i.embedded ? t : t.parentElement); + xt(i.embedded ? t : t.parentElement); } } -class _i { +class Fi { constructor(e) { this.Reveal = e, this.onProgressClicked = this.onProgressClicked.bind(this); } @@ -1996,14 +1992,14 @@ class _i { 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 l = this.Reveal.getIndices(i[s]); - this.Reveal.slide(l.h, l.v); + let r = this.Reveal.getIndices(i[s]); + this.Reveal.slide(r.h, r.v); } destroy() { this.element.remove(); } } -class Ki { +class Oi { 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); } @@ -2053,7 +2049,7 @@ class Ki { } } } -const Mt = (h, e) => { +const Lt = (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 = i.onreadystatechange = (s) => { (s.type === "load" || /loaded|complete/.test(i.readyState)) && (i.onload = i.onreadystatechange = i.onerror = null, e()); @@ -2064,7 +2060,7 @@ const Mt = (h, e) => { const t = document.querySelector("head"); t.insertBefore(i, t.lastChild); }; -class $i { +class Vi { constructor(e) { this.Reveal = e, this.state = "idle", this.registeredPlugins = {}, this.asyncDependencies = []; } @@ -2083,16 +2079,16 @@ class $i { */ load(e, i) { return this.state = "loading", e.forEach(this.registerPlugin.bind(this)), new Promise((t) => { - let s = [], l = 0; - if (i.forEach((n) => { - (!n.condition || n.condition()) && (n.async ? this.asyncDependencies.push(n) : s.push(n)); + let s = [], r = 0; + if (i.forEach((a) => { + (!a.condition || a.condition()) && (a.async ? this.asyncDependencies.push(a) : s.push(a)); }), s.length) { - l = s.length; - const n = (o) => { - o && typeof o.callback == "function" && o.callback(), --l === 0 && this.initPlugins().then(t); + r = s.length; + const a = (o) => { + o && typeof o.callback == "function" && o.callback(), --r === 0 && this.initPlugins().then(t); }; s.forEach((o) => { - typeof o.id == "string" ? (this.registerPlugin(o), n(o)) : typeof o.src == "string" ? Mt(o.src, () => n(o)) : (console.warn("Unrecognized plugin format", o), n()); + typeof o.id == "string" ? (this.registerPlugin(o), a(o)) : typeof o.src == "string" ? Lt(o.src, () => a(o)) : (console.warn("Unrecognized plugin format", o), a()); }); } else this.initPlugins().then(t); @@ -2108,16 +2104,16 @@ class $i { if (t === 0) this.loadAsync().then(e); else { - let s, l = () => { + let s, r = () => { --t === 0 ? this.loadAsync().then(e) : s(); - }, n = 0; + }, a = 0; s = () => { - let o = i[n++]; + let o = i[a++]; if (typeof o.init == "function") { let c = o.init(this.Reveal); - c && typeof c.then == "function" ? c.then(l) : l(); + c && typeof c.then == "function" ? c.then(r) : r(); } else - l(); + r(); }, s(); } }); @@ -2127,7 +2123,7 @@ class $i { */ loadAsync() { return this.state = "loaded", this.asyncDependencies.length && this.asyncDependencies.forEach((e) => { - Mt(e.src, e.callback); + Lt(e.src, e.callback); }), Promise.resolve(); } /** @@ -2168,8 +2164,150 @@ class $i { }), this.registeredPlugins = {}, this.asyncDependencies = []; } } -const Ce = 40; -class Xi { +class qi { + constructor(e) { + this.Reveal = e, this.onSlidesClicked = this.onSlidesClicked.bind(this), this.linkPreviewSelector = null, this.mediaPreviewSelector = "[data-preview-image], [data-preview-video]"; + } + update() { + this.Reveal.getConfig().previewLinks ? this.linkPreviewSelector = "a[href]:not([data-preview-link=false])" : this.linkPreviewSelector = "[data-preview-link]:not([data-preview-link=false])", this.hasLinkPreviews = this.Reveal.getSlidesElement().querySelectorAll(this.linkPreviewSelector).length > 0, this.hasMediaPreviews = this.Reveal.getSlidesElement().querySelectorAll(this.mediaPreviewSelector).length > 0, this.hasLinkPreviews || this.hasMediaPreviews ? 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.getViewportElement().appendChild(this.dom); + } + /** + * Opens a preview window for the target URL. + * + * @param {string} url - url for preview iframe src + */ + showIframePreview(e) { + this.close(), this.createOverlay("r-overlay-preview"), this.dom.dataset.state = "loading", this.viewport.innerHTML = `
+ + +
+
+
+ + + Unable to load iframe. This is likely due to the site's policy (x-frame-options). + +
`, 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); + } + /** + * Opens a preview window that provides a larger view of the + * given image/video. + * + * @param {string} url - url to the image/video to preview + * @param {image|video} mediaType + * @param {HTMLElement} [trigger] - the element that triggered + * the preview + */ + showMediaPreview(e, i, t) { + if (i !== "image" && i !== "video") { + console.warn("Please specify a valid media type to preview (image|video)"); + return; + } + this.close(), this.createOverlay("r-overlay-preview"), this.dom.dataset.state = "loading", this.dom.dataset.previewFit = t && t.dataset.previewFit || "scale-down", this.viewport.innerHTML = `
+ +
+
+
`; + const s = this.dom.querySelector(".r-overlay-content"); + if (i === "image") { + const r = document.createElement("img", {}); + r.src = e, s.appendChild(r), r.addEventListener("load", () => { + this.dom.dataset.state = "loaded"; + }, !1), r.addEventListener("error", () => { + this.dom.dataset.state = "error", s.innerHTML = 'Unable to load image.'; + }, !1), this.dom.style.cursor = "zoom-out", this.dom.addEventListener("click", (a) => { + this.close(); + }, !1); + } else if (i === "video") { + const r = document.createElement("video"); + r.autoplay = this.dom.dataset.previewAutoplay !== "false", r.controls = this.dom.dataset.previewControls !== "false", r.loop = this.dom.dataset.previewLoop === "true", r.muted = this.dom.dataset.previewMuted === "true", r.playsInline = !0, r.src = e, s.appendChild(r), r.addEventListener("loadeddata", () => { + this.dom.dataset.state = "loaded"; + }, !1), r.addEventListener("error", () => { + this.dom.dataset.state = "error", s.innerHTML = 'Unable to load video.'; + }, !1); + } else + throw new Error("Please specify a valid media type to preview"); + this.dom.querySelector(".r-overlay-close").addEventListener("click", (r) => { + this.close(), r.preventDefault(); + }, !1); + } + /** + * Open or close help overlay window. + * + * @param {Boolean} [override] Flag which overrides the + * toggle logic and forcibly sets the desired state. True means + * help is open, false means it's closed. + */ + toggleHelp(e) { + typeof e == "boolean" ? e ? this.showHelp() : this.close() : this.dom ? this.close() : this.showHelp(); + } + /** + * Opens an overlay window with help material. + */ + showHelp() { + if (this.Reveal.getConfig().help) { + this.close(), this.createOverlay("r-overlay-help"); + let e = '

Keyboard Shortcuts

', i = this.Reveal.keyboard.getShortcuts(), t = this.Reveal.keyboard.getBindings(); + e += ""; + for (let s in i) + e += ``; + for (let s in t) + t[s].key && t[s].description && (e += ``); + e += "
KEYACTION
${s}${i[s]}
${t[s].key}${t[s].description}
", this.viewport.innerHTML = ` +
+ +
+
+
${e}
+
+ `, this.dom.querySelector(".r-overlay-close").addEventListener("click", (s) => { + this.close(), s.preventDefault(); + }, !1); + } + } + isOpen() { + return !!this.dom; + } + /** + * Closes any currently open overlay. + */ + close() { + return this.dom ? (this.dom.remove(), this.dom = null, !0) : !1; + } + onSlidesClicked(e) { + const i = e.target, t = i.closest(this.linkPreviewSelector), s = i.closest(this.mediaPreviewSelector); + if (t) { + let r = t.getAttribute("href"); + r && (this.showIframePreview(r), e.preventDefault()); + } else if (s) { + if (s.hasAttribute("data-preview-image")) { + let r = s.dataset.previewImage || s.getAttribute("src"); + r && (this.showMediaPreview(r, "image", s), e.preventDefault()); + } else if (s.hasAttribute("data-preview-video")) { + let r = s.dataset.previewVideo || s.getAttribute("src"); + if (!r) { + let a = s.querySelector("source"); + a && (r = a.getAttribute("src")); + } + r && (this.showMediaPreview(r, "video", s), e.preventDefault()); + } + } + } + destroy() { + this.close(); + } +} +const Le = 40; +class Ui { 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); } @@ -2218,13 +2356,13 @@ class Xi { if (this.isSwipePrevented(e.target)) return !0; let i = this.Reveal.getConfig(); if (this.touchCaptured) - zt && e.preventDefault(); + It && 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 l = this.Reveal.availableRoutes({ includeFragments: !0 }), n = t - this.touchStartX, o = s - this.touchStartY; - n > Ce && Math.abs(n) > Math.abs(o) ? (this.touchCaptured = !0, i.navigationMode === "linear" ? i.rtl ? this.Reveal.next() : this.Reveal.prev() : this.Reveal.left()) : n < -Ce && Math.abs(n) > Math.abs(o) ? (this.touchCaptured = !0, i.navigationMode === "linear" ? i.rtl ? this.Reveal.prev() : this.Reveal.next() : this.Reveal.right()) : o > Ce && l.up ? (this.touchCaptured = !0, i.navigationMode === "linear" ? this.Reveal.prev() : this.Reveal.up()) : o < -Ce && l.down && (this.touchCaptured = !0, i.navigationMode === "linear" ? this.Reveal.next() : this.Reveal.down()), i.embedded ? (this.touchCaptured || this.Reveal.isVerticalSlide()) && e.preventDefault() : e.preventDefault(); + let r = this.Reveal.availableRoutes({ includeFragments: !0 }), a = t - this.touchStartX, o = s - this.touchStartY; + a > Le && Math.abs(a) > Math.abs(o) ? (this.touchCaptured = !0, i.navigationMode === "linear" ? i.rtl ? this.Reveal.next() : this.Reveal.prev() : this.Reveal.left()) : a < -Le && Math.abs(a) > Math.abs(o) ? (this.touchCaptured = !0, i.navigationMode === "linear" ? i.rtl ? this.Reveal.prev() : this.Reveal.next() : this.Reveal.right()) : o > Le && r.up ? (this.touchCaptured = !0, i.navigationMode === "linear" ? this.Reveal.prev() : this.Reveal.up()) : o < -Le && r.down && (this.touchCaptured = !0, i.navigationMode === "linear" ? this.Reveal.next() : this.Reveal.down()), i.embedded ? (this.touchCaptured || this.Reveal.isVerticalSlide()) && e.preventDefault() : e.preventDefault(); } } } @@ -2261,8 +2399,8 @@ class Xi { (e.pointerType === e.MSPOINTER_TYPE_TOUCH || e.pointerType === "touch") && (e.touches = [{ clientX: e.clientX, clientY: e.clientY }], this.onTouchEnd(e)); } } -const Ue = "focus", Bt = "blur"; -class Yi { +const qe = "focus", Pt = "blur"; +class Wi { constructor(e) { this.Reveal = e, this.onRevealPointerDown = this.onRevealPointerDown.bind(this), this.onDocumentPointerDown = this.onDocumentPointerDown.bind(this); } @@ -2279,13 +2417,13 @@ class Yi { this.Reveal.getRevealElement().removeEventListener("pointerdown", this.onRevealPointerDown, !1), document.removeEventListener("pointerdown", this.onDocumentPointerDown, !1); } focus() { - this.state !== Ue && (this.Reveal.getRevealElement().classList.add("focused"), document.addEventListener("pointerdown", this.onDocumentPointerDown, !1)), this.state = Ue; + this.state !== qe && (this.Reveal.getRevealElement().classList.add("focused"), document.addEventListener("pointerdown", this.onDocumentPointerDown, !1)), this.state = qe; } blur() { - this.state !== Bt && (this.Reveal.getRevealElement().classList.remove("focused"), document.removeEventListener("pointerdown", this.onDocumentPointerDown, !1)), this.state = Bt; + this.state !== Pt && (this.Reveal.getRevealElement().classList.remove("focused"), document.removeEventListener("pointerdown", this.onDocumentPointerDown, !1)), this.state = Pt; } isFocused() { - return this.state === Ue; + return this.state === qe; } destroy() { this.Reveal.getRevealElement().classList.remove("focused"); @@ -2294,11 +2432,11 @@ class Yi { this.focus(); } onDocumentPointerDown(e) { - let i = F(e.target, ".reveal"); + let i = O(e.target, ".reveal"); (!i || i !== this.Reveal.getRevealElement()) && this.blur(); } } -class Gi { +class ji { constructor(e) { this.Reveal = e; } @@ -2365,7 +2503,7 @@ class Gi { this.element.remove(); } } -class Ji { +class Ki { /** * @param {HTMLElement} container The component will append * itself to this @@ -2388,10 +2526,10 @@ class Ji { * Renders the current progress and playback state. */ render() { - let e = this.playing ? this.progress : 0, i = this.diameter2 - this.thickness, t = this.diameter2, s = this.diameter2, l = 28; + let e = this.playing ? this.progress : 0, i = this.diameter2 - this.thickness, t = this.diameter2, s = this.diameter2, r = 28; this.progressOffset += (1 - this.progressOffset) * 0.1; - const n = -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, n, !1), this.context.lineWidth = this.thickness, this.context.strokeStyle = "#fff", this.context.stroke()), this.context.translate(t - l / 2, s - l / 2), this.playing ? (this.context.fillStyle = "#fff", this.context.fillRect(0, 0, l / 2 - 4, l), this.context.fillRect(l / 2 + 4, 0, l / 2 - 4, l)) : (this.context.beginPath(), this.context.translate(4, 0), this.context.moveTo(0, 0), this.context.lineTo(l - 4, l / 2), this.context.lineTo(0, l), this.context.fillStyle = "#fff", this.context.fill()), this.context.restore(); + const a = -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, a, !1), this.context.lineWidth = this.thickness, this.context.strokeStyle = "#fff", this.context.stroke()), this.context.translate(t - r / 2, s - r / 2), this.playing ? (this.context.fillStyle = "#fff", this.context.fillRect(0, 0, r / 2 - 4, r), this.context.fillRect(r / 2 + 4, 0, r / 2 - 4, r)) : (this.context.beginPath(), this.context.translate(4, 0), this.context.moveTo(0, 0), this.context.lineTo(r - 4, r / 2), this.context.lineTo(0, r), this.context.fillStyle = "#fff", this.context.fill()), this.context.restore(); } on(e, i) { this.canvas.addEventListener(e, i, !1); @@ -2403,7 +2541,7 @@ class Ji { this.playing = !1, this.canvas.parentNode && this.container.removeChild(this.canvas); } } -const Qi = { +const _i = { width: 960, height: 700, margin: 0.04, @@ -2493,430 +2631,374 @@ const Qi = { pdfPageHeightOffset: -1, dependencies: [], plugins: [] -}, Vt = "5.1.0"; -function Ot(h, e) { +}, Nt = "6.0.0"; +function Bt(h, e) { arguments.length < 2 && (e = arguments[0], h = document.querySelector(".reveal")); const i = {}; - let t = {}, s = !1, l = !1, n, o, c, f, g = { + let t = {}, s = !1, r = !1, a, o, c, f, g = { hasNavigatedHorizontally: !1, hasNavigatedVertically: !1 - }, v = [], y = 1, w = { layout: "", overview: "" }, r = {}, A = "idle", I = 0, V, O = 0, se = -1, z = !1, k = new Ri(i), N = new xi(i), U = new Ti(i), W = new Mi(i), P = new Ni(i), R = new Fi(i), D = new Vi(i), L = new Oi(i), u = new qi(i), S = new Ui(i), x = new Wi(i), $ = new ji(i), j = new _i(i), Z = new Ki(i), H = new $i(i), ae = new Yi(i), xe = new Xi(i), K = new Gi(i); - function Ut(a) { + }, p = [], y = 1, w = { layout: "", overview: "" }, l = {}, A = "idle", I = 0, V, q = 0, se = -1, z = !1, k = new mi(i), M = new Si(i), W = new Ai(i), j = new Ci(i), P = new ki(i), R = new Ii(i), D = new Mi(i), C = new Ni(i), u = new Bi(i), S = new Hi(i), x = new Di(i), X = new zi(i), K = new Fi(i), Z = new Oi(i), H = new Vi(i), F = new qi(i), ae = new Wi(i), xe = new Ui(i), $ = new ji(i); + function Dt(n) { if (!h) throw 'Unable to find presentation root (
).'; if (s) throw "Reveal.js has already been initialized."; - if (s = !0, r.wrapper = h, r.slides = h.querySelector(".slides"), !r.slides) throw 'Unable to find slides container (
).'; - return t = { ...Qi, ...t, ...e, ...a, ...xt() }, /print-pdf/gi.test(window.location.search) && (t.view = "print"), Wt(), window.addEventListener("load", le, !1), H.load(t.plugins, t.dependencies).then(jt), new Promise((d) => i.on("ready", d)); + if (s = !0, l.wrapper = h, l.slides = h.querySelector(".slides"), !l.slides) throw 'Unable to find slides container (
).'; + return t = { ..._i, ...t, ...e, ...n, ...Rt() }, /print-pdf/gi.test(window.location.search) && (t.view = "print"), zt(), window.addEventListener("load", le, !1), H.load(t.plugins, t.dependencies).then(Ft), new Promise((d) => i.on("ready", d)); } - function Wt() { - t.embedded === !0 ? r.viewport = F(h, ".reveal-viewport") || h : (r.viewport = document.body, document.documentElement.classList.add("reveal-full-page")), r.viewport.classList.add("reveal-viewport"); + function zt() { + t.embedded === !0 ? l.viewport = O(h, ".reveal-viewport") || h : (l.viewport = document.body, document.documentElement.classList.add("reveal-full-page")), l.viewport.classList.add("reveal-viewport"); } - function jt() { - s !== !1 && (l = !0, Kt(), $t(), Jt(), Yt(), Gt(), oi(), Ke(), P.update(!0), _t(), x.readURL(), setTimeout(() => { - r.slides.classList.remove("no-transition"), r.wrapper.classList.add("ready"), _({ + function Ft() { + s !== !1 && (r = !0, Vt(), qt(), Kt(), Wt(), jt(), ei(), Ke(), P.update(!0), Ot(), x.readURL(), setTimeout(() => { + l.slides.classList.remove("no-transition"), l.wrapper.classList.add("ready"), _({ type: "ready", data: { - indexh: n, + indexh: a, indexv: o, currentSlide: f } }); }, 1)); } - function _t() { - const a = t.view === "print", d = t.view === "scroll" || t.view === "reader"; - (a || d) && (a ? ye() : xe.unbind(), r.viewport.classList.add("loading-scroll-mode"), a ? document.readyState === "complete" ? D.activate() : window.addEventListener("load", () => D.activate()) : R.activate()); + function Ot() { + const n = t.view === "print", d = t.view === "scroll" || t.view === "reader"; + (n || d) && (n ? ye() : xe.unbind(), l.viewport.classList.add("loading-scroll-mode"), n ? document.readyState === "complete" ? D.activate() : window.addEventListener("load", () => D.activate()) : R.activate()); } - function Kt() { - t.showHiddenSlides || E(r.wrapper, 'section[data-visibility="hidden"]').forEach((a) => { - const d = a.parentNode; - d.childElementCount === 1 && /section/i.test(d.nodeName) ? d.remove() : a.remove(); + function Vt() { + t.showHiddenSlides || E(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 $t() { - r.slides.classList.add("no-transition"), fe ? r.wrapper.classList.add("no-hover") : r.wrapper.classList.remove("no-hover"), P.render(), N.render(), U.render(), $.render(), j.render(), K.render(), r.pauseOverlay = yi(r.wrapper, "div", "pause-overlay", t.controls ? '' : null), r.statusElement = Xt(), r.wrapper.setAttribute("role", "application"); + function qt() { + l.slides.classList.add("no-transition"), fe ? l.wrapper.classList.add("no-hover") : l.wrapper.classList.remove("no-hover"), P.render(), M.render(), W.render(), X.render(), K.render(), $.render(), l.pauseOverlay = hi(l.wrapper, "div", "pause-overlay", t.controls ? '' : null), l.statusElement = Ut(), l.wrapper.setAttribute("role", "application"); } - function Xt() { - let a = r.wrapper.querySelector(".aria-status"); - return a || (a = document.createElement("div"), a.style.position = "absolute", a.style.height = "1px", a.style.width = "1px", a.style.overflow = "hidden", a.style.clip = "rect( 1px, 1px, 1px, 1px )", a.classList.add("aria-status"), a.setAttribute("aria-live", "polite"), a.setAttribute("aria-atomic", "true"), r.wrapper.appendChild(a)), a; + function Ut() { + 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 Te(a) { - r.statusElement.textContent = a; + function Te(n) { + l.statusElement.textContent = n; } - function me(a) { + function me(n) { let d = ""; - if (a.nodeType === 3) - d += a.textContent; - else if (a.nodeType === 1) { - let p = a.getAttribute("aria-hidden"), m = window.getComputedStyle(a).display === "none"; - p !== "true" && !m && Array.from(a.childNodes).forEach((b) => { + if (n.nodeType === 3) + d += n.textContent; + else if (n.nodeType === 1) { + let v = n.getAttribute("aria-hidden"), m = window.getComputedStyle(n).display === "none"; + v !== "true" && !m && Array.from(n.childNodes).forEach((b) => { d += me(b); }); } return d = d.trim(), d === "" ? "" : d + " "; } - function Yt() { + function Wt() { setInterval(() => { - (!R.isActive() && r.wrapper.scrollTop !== 0 || r.wrapper.scrollLeft !== 0) && (r.wrapper.scrollTop = 0, r.wrapper.scrollLeft = 0); + (!R.isActive() && l.wrapper.scrollTop !== 0 || l.wrapper.scrollLeft !== 0) && (l.wrapper.scrollTop = 0, l.wrapper.scrollLeft = 0); }, 1e3); } - function Gt() { + function jt() { document.addEventListener("fullscreenchange", ke), document.addEventListener("webkitfullscreenchange", ke); } - function Jt() { - t.postMessage && window.addEventListener("message", Et, !1); + function Kt() { + t.postMessage && window.addEventListener("message", mt, !1); } - function Ke(a) { + function Ke(n) { const d = { ...t }; - if (typeof a == "object" && ue(t, a), i.isReady() === !1) return; - const p = r.wrapper.querySelectorAll(re).length; - r.wrapper.classList.remove(d.transition), r.wrapper.classList.add(t.transition), r.wrapper.setAttribute("data-transition-speed", t.transitionSpeed), r.wrapper.setAttribute("data-background-transition", t.backgroundTransition), r.viewport.style.setProperty("--slide-width", typeof t.width == "string" ? t.width : t.width + "px"), r.viewport.style.setProperty("--slide-height", typeof t.height == "string" ? t.height : t.height + "px"), t.shuffle && He(), qe(r.wrapper, "embedded", t.embedded), qe(r.wrapper, "rtl", t.rtl), qe(r.wrapper, "center", t.center), t.pause === !1 && pe(), t.previewLinks ? (Qe(), Ne("[data-preview-link=false]")) : (Ne(), Qe("[data-preview-link]:not([data-preview-link=false])")), W.reset(), V && (V.destroy(), V = null), p > 1 && t.autoSlide && t.autoSlideStoppable && (V = new Ji(r.wrapper, () => Math.min(Math.max((Date.now() - se) / I, 0), 1)), V.on("click", gi), z = !1), t.navigationMode !== "default" ? r.wrapper.setAttribute("data-navigation-mode", t.navigationMode) : r.wrapper.removeAttribute("data-navigation-mode"), K.configure(t, d), ae.configure(t, d), Z.configure(t, d), $.configure(t, d), j.configure(t, d), S.configure(t, d), L.configure(t, d), N.configure(t, d), lt(); + if (typeof n == "object" && ue(t, n), i.isReady() === !1) return; + const v = l.wrapper.querySelectorAll(re).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 && Be(), Ve(l.wrapper, "embedded", t.embedded), Ve(l.wrapper, "rtl", t.rtl), Ve(l.wrapper, "center", t.center), t.pause === !1 && pe(), j.reset(), V && (V.destroy(), V = null), v > 1 && t.autoSlide && t.autoSlideStoppable && (V = new Ki(l.wrapper, () => Math.min(Math.max((Date.now() - se) / I, 0), 1)), V.on("click", oi), z = !1), t.navigationMode !== "default" ? l.wrapper.setAttribute("data-navigation-mode", t.navigationMode) : l.wrapper.removeAttribute("data-navigation-mode"), $.configure(t, d), ae.configure(t, d), Z.configure(t, d), X.configure(t, d), K.configure(t, d), S.configure(t, d), C.configure(t, d), M.configure(t, d), at(); } - function $e() { - window.addEventListener("resize", Rt, !1), t.touch && xe.bind(), t.keyboard && S.bind(), t.progress && j.bind(), t.respondToHashChanges && x.bind(), $.bind(), ae.bind(), r.slides.addEventListener("click", At, !1), r.slides.addEventListener("transitionend", St, !1), r.pauseOverlay.addEventListener("click", pe, !1), t.focusBodyOnPageVisibilityChange && document.addEventListener("visibilitychange", kt, !1); + function _e() { + window.addEventListener("resize", wt, !1), t.touch && xe.bind(), t.keyboard && S.bind(), t.progress && K.bind(), t.respondToHashChanges && x.bind(), X.bind(), ae.bind(), l.slides.addEventListener("click", bt, !1), l.slides.addEventListener("transitionend", yt, !1), l.pauseOverlay.addEventListener("click", pe, !1), t.focusBodyOnPageVisibilityChange && document.addEventListener("visibilitychange", Et, !1); } function ye() { - xe.unbind(), ae.unbind(), S.unbind(), $.unbind(), j.unbind(), x.unbind(), window.removeEventListener("resize", Rt, !1), r.slides.removeEventListener("click", At, !1), r.slides.removeEventListener("transitionend", St, !1), r.pauseOverlay.removeEventListener("click", pe, !1); + xe.unbind(), ae.unbind(), S.unbind(), X.unbind(), K.unbind(), x.unbind(), window.removeEventListener("resize", wt, !1), l.slides.removeEventListener("click", bt, !1), l.slides.removeEventListener("transitionend", yt, !1), l.pauseOverlay.removeEventListener("click", pe, !1); } - function Qt() { - s = !1, l !== !1 && (ye(), we(), Ne(), K.destroy(), ae.destroy(), H.destroy(), Z.destroy(), $.destroy(), j.destroy(), P.destroy(), N.destroy(), U.destroy(), document.removeEventListener("fullscreenchange", ke), document.removeEventListener("webkitfullscreenchange", ke), document.removeEventListener("visibilitychange", kt, !1), window.removeEventListener("message", Et, !1), window.removeEventListener("load", le, !1), r.pauseOverlay && r.pauseOverlay.remove(), r.statusElement && r.statusElement.remove(), document.documentElement.classList.remove("reveal-full-page"), r.wrapper.classList.remove("ready", "center", "has-horizontal-slides", "has-vertical-slides"), r.wrapper.removeAttribute("data-transition-speed"), r.wrapper.removeAttribute("data-background-transition"), r.viewport.classList.remove("reveal-viewport"), r.viewport.style.removeProperty("--slide-width"), r.viewport.style.removeProperty("--slide-height"), r.slides.style.removeProperty("width"), r.slides.style.removeProperty("height"), r.slides.style.removeProperty("zoom"), r.slides.style.removeProperty("left"), r.slides.style.removeProperty("top"), r.slides.style.removeProperty("bottom"), r.slides.style.removeProperty("right"), r.slides.style.removeProperty("transform"), Array.from(r.wrapper.querySelectorAll(re)).forEach((a) => { - a.style.removeProperty("display"), a.style.removeProperty("top"), a.removeAttribute("hidden"), a.removeAttribute("aria-hidden"); + function _t() { + s = !1, r !== !1 && (ye(), we(), $.destroy(), ae.destroy(), F.destroy(), H.destroy(), Z.destroy(), X.destroy(), K.destroy(), P.destroy(), M.destroy(), W.destroy(), document.removeEventListener("fullscreenchange", ke), document.removeEventListener("webkitfullscreenchange", ke), document.removeEventListener("visibilitychange", Et, !1), window.removeEventListener("message", mt, !1), window.removeEventListener("load", le, !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(re)).forEach((n) => { + n.style.removeProperty("display"), n.style.removeProperty("top"), n.removeAttribute("hidden"), n.removeAttribute("aria-hidden"); })); } - function Xe(a, d, p) { - h.addEventListener(a, d, p); + function $e(n, d, v) { + h.addEventListener(n, d, v); } - function Ye(a, d, p) { - h.removeEventListener(a, d, p); + function Xe(n, d, v) { + h.removeEventListener(n, d, v); } - function Ie(a) { - typeof a.layout == "string" && (w.layout = a.layout), typeof a.overview == "string" && (w.overview = a.overview), w.layout ? ie(r.slides, w.layout + " " + w.overview) : ie(r.slides, w.overview); + function Ie(n) { + typeof n.layout == "string" && (w.layout = n.layout), typeof n.overview == "string" && (w.overview = n.overview), w.layout ? ie(l.slides, w.layout + " " + w.overview) : ie(l.slides, w.overview); } - function _({ target: a = r.wrapper, type: d, data: p, bubbles: m = !0 }) { + function _({ target: n = l.wrapper, type: d, data: v, bubbles: m = !0 }) { let b = document.createEvent("HTMLEvents", 1, 2); - return b.initEvent(d, m, !0), ue(b, p), a.dispatchEvent(b), a === r.wrapper && Je(d), b; + return b.initEvent(d, m, !0), ue(b, v), n.dispatchEvent(b), n === l.wrapper && Ge(d), b; } - function Ge(a) { + function Ye(n) { _({ type: "slidechanged", data: { - indexh: n, + indexh: a, indexv: o, previousSlide: c, currentSlide: f, - origin: a + origin: n } }); } - function Je(a, d) { + function Ge(n, d) { if (t.postMessageEvents && window.parent !== window.self) { - let p = { + let v = { namespace: "reveal", - eventName: a, - state: bt() + eventName: n, + state: pt() }; - ue(p, d), window.parent.postMessage(JSON.stringify(p), "*"); + ue(v, d), window.parent.postMessage(JSON.stringify(v), "*"); } } - function Qe(a = "a") { - Array.from(r.wrapper.querySelectorAll(a)).forEach((d) => { - /^(http|www)/gi.test(d.getAttribute("href")) && d.addEventListener("click", Lt, !1); - }); - } - function Ne(a = "a") { - Array.from(r.wrapper.querySelectorAll(a)).forEach((d) => { - /^(http|www)/gi.test(d.getAttribute("href")) && d.removeEventListener("click", Lt, !1); - }); - } - function Ze(a) { - G(), r.overlay = document.createElement("div"), r.overlay.classList.add("overlay"), r.overlay.classList.add("overlay-preview"), r.wrapper.appendChild(r.overlay), r.overlay.innerHTML = `
- - -
-
-
- - - Unable to load iframe. This is likely due to the site's policy (x-frame-options). - -
`, r.overlay.querySelector("iframe").addEventListener("load", (d) => { - r.overlay.classList.add("loaded"); - }, !1), r.overlay.querySelector(".close").addEventListener("click", (d) => { - G(), d.preventDefault(); - }, !1), r.overlay.querySelector(".external").addEventListener("click", (d) => { - G(); - }, !1); - } - function Zt(a) { - typeof a == "boolean" ? a ? et() : G() : r.overlay ? G() : et(); - } - function et() { - if (t.help) { - G(), r.overlay = document.createElement("div"), r.overlay.classList.add("overlay"), r.overlay.classList.add("overlay-help"), r.wrapper.appendChild(r.overlay); - let a = '

Keyboard Shortcuts


', d = S.getShortcuts(), p = S.getBindings(); - a += ""; - for (let m in d) - a += ``; - for (let m in p) - p[m].key && p[m].description && (a += ``); - a += "
KEYACTION
${m}${d[m]}
${p[m].key}${p[m].description}
", r.overlay.innerHTML = ` -
- -
-
-
${a}
-
- `, r.overlay.querySelector(".close").addEventListener("click", (m) => { - G(), m.preventDefault(); - }, !1); - } - } - function G() { - return r.overlay ? (r.overlay.parentNode.removeChild(r.overlay), r.overlay = null, !0) : !1; - } function le() { - if (r.wrapper && !D.isActive()) { - const a = r.viewport.offsetWidth, d = r.viewport.offsetHeight; + if (l.wrapper && !D.isActive()) { + const n = l.viewport.offsetWidth, d = l.viewport.offsetHeight; if (!t.disableLayout) { fe && !t.embedded && document.documentElement.style.setProperty("--vh", window.innerHeight * 0.01 + "px"); - const p = R.isActive() ? be(a, d) : be(), m = y; - tt(t.width, t.height), r.slides.style.width = p.width + "px", r.slides.style.height = p.height + "px", y = Math.min(p.presentationWidth / p.width, p.presentationHeight / p.height), y = Math.max(y, t.minScale), y = Math.min(y, t.maxScale), y === 1 || R.isActive() ? (r.slides.style.zoom = "", r.slides.style.left = "", r.slides.style.top = "", r.slides.style.bottom = "", r.slides.style.right = "", Ie({ layout: "" })) : (r.slides.style.zoom = "", r.slides.style.left = "50%", r.slides.style.top = "50%", r.slides.style.bottom = "auto", r.slides.style.right = "auto", Ie({ layout: "translate(-50%, -50%) scale(" + y + ")" })); - const b = Array.from(r.wrapper.querySelectorAll(re)); - for (let C = 0, T = b.length; C < T; C++) { - const B = b[C]; - B.style.display !== "none" && (t.center || B.classList.contains("center") ? B.classList.contains("stack") ? B.style.top = 0 : B.style.top = Math.max((p.height - B.scrollHeight) / 2, 0) + "px" : B.style.top = ""); + const v = R.isActive() ? be(n, d) : be(), m = y; + Je(t.width, t.height), l.slides.style.width = v.width + "px", l.slides.style.height = v.height + "px", y = Math.min(v.presentationWidth / v.width, v.presentationHeight / v.height), y = Math.max(y, t.minScale), y = Math.min(y, t.maxScale), y === 1 || R.isActive() ? (l.slides.style.zoom = "", l.slides.style.left = "", l.slides.style.top = "", l.slides.style.bottom = "", l.slides.style.right = "", Ie({ 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", Ie({ layout: "translate(-50%, -50%) scale(" + y + ")" })); + const b = Array.from(l.wrapper.querySelectorAll(re)); + for (let L = 0, T = b.length; L < T; L++) { + const B = b[L]; + 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 !== y && _({ type: "resize", data: { oldScale: m, scale: y, - size: p + size: v } }); } - ei(), r.viewport.style.setProperty("--slide-scale", y), r.viewport.style.setProperty("--viewport-width", a + "px"), r.viewport.style.setProperty("--viewport-height", d + "px"), R.layout(), j.update(), P.updateParallax(), u.isActive() && u.update(); + $t(), l.viewport.style.setProperty("--slide-scale", y), l.viewport.style.setProperty("--viewport-width", n + "px"), l.viewport.style.setProperty("--viewport-height", d + "px"), R.layout(), K.update(), P.updateParallax(), u.isActive() && u.update(); } } - function tt(a, d) { - E(r.slides, "section > .stretch, section > .r-stretch").forEach((p) => { - let m = bi(p, d); - if (/(img|video)/gi.test(p.nodeName)) { - const b = p.naturalWidth || p.videoWidth, C = p.naturalHeight || p.videoHeight, T = Math.min(a / b, m / C); - p.style.width = b * T + "px", p.style.height = C * T + "px"; + function Je(n, d) { + E(l.slides, "section > .stretch, section > .r-stretch").forEach((v) => { + let m = ui(v, d); + if (/(img|video)/gi.test(v.nodeName)) { + const b = v.naturalWidth || v.videoWidth, L = v.naturalHeight || v.videoHeight, T = Math.min(n / b, m / L); + v.style.width = b * T + "px", v.style.height = L * T + "px"; } else - p.style.width = a + "px", p.style.height = m + "px"; + v.style.width = n + "px", v.style.height = m + "px"; }); } - function ei() { - if (r.wrapper && !t.disableLayout && !D.isActive() && typeof t.scrollActivationWidth == "number" && t.view !== "scroll") { - const a = be(); - a.presentationWidth > 0 && a.presentationWidth <= t.scrollActivationWidth ? R.isActive() || (P.create(), R.activate()) : R.isActive() && R.deactivate(); + function $t() { + if (l.wrapper && !t.disableLayout && !D.isActive() && typeof t.scrollActivationWidth == "number" && t.view !== "scroll") { + const n = be(); + n.presentationWidth > 0 && n.presentationWidth <= t.scrollActivationWidth ? R.isActive() || (P.create(), R.activate()) : R.isActive() && R.deactivate(); } } - function be(a, d) { - let p = t.width, m = t.height; - t.disableLayout && (p = r.slides.offsetWidth, m = r.slides.offsetHeight); + function be(n, d) { + let v = t.width, m = t.height; + t.disableLayout && (v = l.slides.offsetWidth, m = l.slides.offsetHeight); const b = { // Slide size - width: p, + width: v, height: m, // Presentation size - presentationWidth: a || r.wrapper.offsetWidth, - presentationHeight: d || r.wrapper.offsetHeight + presentationWidth: n || l.wrapper.offsetWidth, + presentationHeight: d || l.wrapper.offsetHeight }; return b.presentationWidth -= b.presentationWidth * t.margin, b.presentationHeight -= b.presentationHeight * t.margin, typeof b.width == "string" && /%$/.test(b.width) && (b.width = parseInt(b.width, 10) / 100 * b.presentationWidth), typeof b.height == "string" && /%$/.test(b.height) && (b.height = parseInt(b.height, 10) / 100 * b.presentationHeight), b; } - function it(a, d) { - typeof a == "object" && typeof a.setAttribute == "function" && a.setAttribute("data-previous-indexv", d || 0); + function Qe(n, d) { + typeof n == "object" && typeof n.setAttribute == "function" && n.setAttribute("data-previous-indexv", d || 0); } - function st(a) { - if (typeof a == "object" && typeof a.setAttribute == "function" && a.classList.contains("stack")) { - const d = a.hasAttribute("data-start-indexv") ? "data-start-indexv" : "data-previous-indexv"; - return parseInt(a.getAttribute(d) || 0, 10); + function Ze(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 ge(a = f) { - return a && a.parentNode && !!a.parentNode.nodeName.match(/section/i); + function ge(n = f) { + return n && n.parentNode && !!n.parentNode.nodeName.match(/section/i); } - function ti(a = f) { - return a.classList.contains(".stack") || a.querySelector("section") !== null; + function Xt(n = f) { + return n.classList.contains(".stack") || n.querySelector("section") !== null; } - function at() { + function et() { return f && ge(f) ? !f.nextElementSibling : !1; } - function nt() { - return n === 0 && o === 0; + function tt() { + return a === 0 && o === 0; } function Me() { return f ? !(f.nextElementSibling || ge(f) && f.parentNode.nextElementSibling) : !1; } - function rt() { + function it() { if (t.pause) { - const a = r.wrapper.classList.contains("paused"); - we(), r.wrapper.classList.add("paused"), a === !1 && _({ type: "paused" }); + const n = l.wrapper.classList.contains("paused"); + we(), l.wrapper.classList.add("paused"), n === !1 && _({ type: "paused" }); } } function pe() { - const a = r.wrapper.classList.contains("paused"); - r.wrapper.classList.remove("paused"), de(), a && _({ type: "resumed" }); + const n = l.wrapper.classList.contains("paused"); + l.wrapper.classList.remove("paused"), de(), n && _({ type: "resumed" }); } - function ot(a) { - typeof a == "boolean" ? a ? rt() : pe() : ve() ? pe() : rt(); + function st(n) { + typeof n == "boolean" ? n ? it() : pe() : ve() ? pe() : it(); } function ve() { - return r.wrapper.classList.contains("paused"); + return l.wrapper.classList.contains("paused"); } - function ii(a) { - typeof a == "boolean" ? a ? U.show() : U.hide() : U.isVisible() ? U.hide() : U.show(); + function Yt(n) { + typeof n == "boolean" ? n ? W.show() : W.hide() : W.isVisible() ? W.hide() : W.show(); } - function si(a) { - typeof a == "boolean" ? a ? Se() : Ee() : z ? Se() : Ee(); + function Gt(n) { + typeof n == "boolean" ? n ? Se() : Ee() : z ? Se() : Ee(); } - function ai() { + function Jt() { return !!(I && !z); } - function X(a, d, p, m) { + function Y(n, d, v, m) { if (_({ type: "beforeslidechange", data: { - indexh: a === void 0 ? n : a, + indexh: n === void 0 ? a : n, indexv: d === void 0 ? o : d, origin: m } }).defaultPrevented) return; c = f; - const C = r.wrapper.querySelectorAll(te); + const L = l.wrapper.querySelectorAll(te); if (R.isActive()) { - const Y = R.getSlideByIndices(a, d); - Y && R.scrollToSlide(Y); + const G = R.getSlideByIndices(n, d); + G && R.scrollToSlide(G); return; } - if (C.length === 0) return; - d === void 0 && !u.isActive() && (d = st(C[a])), c && c.parentNode && c.parentNode.classList.contains("stack") && it(c.parentNode, o); - const T = v.concat(); - v.length = 0; - let B = n || 0, ne = o || 0; - n = dt(te, a === void 0 ? n : a), o = dt(Tt, d === void 0 ? o : d); - let Q = n !== B || o !== ne; + if (L.length === 0) return; + d === void 0 && !u.isActive() && (d = Ze(L[n])), c && c.parentNode && c.parentNode.classList.contains("stack") && Qe(c.parentNode, o); + const T = p.concat(); + p.length = 0; + let B = a || 0, ne = o || 0; + a = nt(te, n === void 0 ? a : n), o = nt(kt, d === void 0 ? o : d); + let Q = a !== B || o !== ne; Q || (c = null); - let q = C[n], M = q.querySelectorAll("section"); - h.classList.toggle("is-vertical-slide", M.length > 1), f = M[o] || q; + let U = L[a], N = U.querySelectorAll("section"); + h.classList.toggle("is-vertical-slide", N.length > 1), f = N[o] || U; let ce = !1; - Q && c && f && !u.isActive() && (A = "running", ce = Be(c, f, B, ne), ce && r.slides.classList.add("disable-slide-transitions")), De(), le(), u.isActive() && u.update(), typeof p < "u" && L.goto(p), c && c !== f && (c.classList.remove("present"), c.setAttribute("aria-hidden", "true"), nt() && setTimeout(() => { - di().forEach((Y) => { - it(Y, 0); + Q && c && f && !u.isActive() && (A = "running", ce = Ne(c, f, B, ne), ce && l.slides.classList.add("disable-slide-transitions")), He(), le(), u.isActive() && u.update(), typeof v < "u" && C.goto(v), c && c !== f && (c.classList.remove("present"), c.setAttribute("aria-hidden", "true"), tt() && setTimeout(() => { + ii().forEach((G) => { + Qe(G, 0); }); }, 0)); - e: for (let Y = 0, pi = v.length; Y < pi; Y++) { - for (let Le = 0; Le < T.length; Le++) - if (T[Le] === v[Y]) { - T.splice(Le, 1); + e: for (let G = 0, li = p.length; G < li; G++) { + for (let Ce = 0; Ce < T.length; Ce++) + if (T[Ce] === p[G]) { + T.splice(Ce, 1); continue e; } - r.viewport.classList.add(v[Y]), _({ type: v[Y] }); + l.viewport.classList.add(p[G]), _({ type: p[G] }); } for (; T.length; ) - r.viewport.classList.remove(T.pop()); - Q && Ge(m), (Q || !c) && (k.stopEmbeddedContent(c), k.startEmbeddedContent(f)), requestAnimationFrame(() => { + l.viewport.classList.remove(T.pop()); + Q && Ye(m), (Q || !c) && (k.stopEmbeddedContent(c), k.startEmbeddedContent(f)), requestAnimationFrame(() => { Te(me(f)); - }), j.update(), $.update(), K.update(), P.update(), P.updateParallax(), N.update(), L.update(), x.writeURL(), de(), ce && (setTimeout(() => { - r.slides.classList.remove("disable-slide-transitions"); - }, 0), t.autoAnimate && W.run(c, f)); - } - function Be(a, d, p, m) { - return a.hasAttribute("data-auto-animate") && d.hasAttribute("data-auto-animate") && a.getAttribute("data-auto-animate-id") === d.getAttribute("data-auto-animate-id") && !(n > p || o > m ? d : a).hasAttribute("data-auto-animate-restart"); - } - function ni(a, d, p) { - let m = n || 0; - n = d, o = p; - const b = f !== a; - c = f, f = a, f && c && t.autoAnimate && Be(c, f, m, o) && W.run(c, f), b && (c && (k.stopEmbeddedContent(c), k.stopEmbeddedContent(c.slideBackgroundElement)), k.startEmbeddedContent(f), k.startEmbeddedContent(f.slideBackgroundElement)), requestAnimationFrame(() => { + }), K.update(), X.update(), $.update(), P.update(), P.updateParallax(), M.update(), C.update(), x.writeURL(), de(), ce && (setTimeout(() => { + l.slides.classList.remove("disable-slide-transitions"); + }, 0), t.autoAnimate && j.run(c, f)); + } + function Ne(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") && !(a > v || o > m ? d : n).hasAttribute("data-auto-animate-restart"); + } + function Qt(n, d, v) { + let m = a || 0; + a = d, o = v; + const b = f !== n; + c = f, f = n, f && c && t.autoAnimate && Ne(c, f, m, o) && j.run(c, f), b && (c && (k.stopEmbeddedContent(c), k.stopEmbeddedContent(c.slideBackgroundElement)), k.startEmbeddedContent(f), k.startEmbeddedContent(f.slideBackgroundElement)), requestAnimationFrame(() => { Te(me(f)); - }), Ge(); + }), Ye(); } - function lt() { - ye(), $e(), le(), I = t.autoSlide, de(), P.create(), x.writeURL(), t.sortFragmentsOnSync === !0 && L.sortAll(), $.update(), j.update(), De(), K.update(), K.updateVisibility(), P.update(!0), N.update(), k.formatEmbeddedContent(), t.autoPlayMedia === !1 ? k.stopEmbeddedContent(f, { unloadIframes: !1 }) : k.startEmbeddedContent(f), u.isActive() && u.layout(); + function at() { + ye(), _e(), le(), I = t.autoSlide, de(), P.create(), x.writeURL(), t.sortFragmentsOnSync === !0 && C.sortAll(), X.update(), K.update(), He(), $.update(), $.updateVisibility(), F.update(), P.update(!0), M.update(), k.formatEmbeddedContent(), t.autoPlayMedia === !1 ? k.stopEmbeddedContent(f, { unloadIframes: !1 }) : k.startEmbeddedContent(f), u.isActive() && u.layout(); } - function ri(a = f) { - P.sync(a), L.sync(a), k.load(a), P.update(), K.update(); + function Zt(n = f) { + P.sync(n), C.sync(n), k.load(n), P.update(), $.update(); } - function oi() { - ee().forEach((a) => { - E(a, "section").forEach((d, p) => { - p > 0 && (d.classList.remove("present"), d.classList.remove("past"), d.classList.add("future"), d.setAttribute("aria-hidden", "true")); + function ei() { + ee().forEach((n) => { + E(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 He(a = ee()) { - a.forEach((d, p) => { - let m = a[Math.floor(Math.random() * a.length)]; + function Be(n = ee()) { + n.forEach((d, v) => { + let m = n[Math.floor(Math.random() * n.length)]; m.parentNode === d.parentNode && d.parentNode.insertBefore(d, m); let b = d.querySelectorAll("section"); - b.length && He(b); + b.length && Be(b); }); } - function dt(a, d) { - let p = E(r.wrapper, a), m = p.length, b = R.isActive() || D.isActive(), C = !1, T = !1; + function nt(n, d) { + let v = E(l.wrapper, n), m = v.length, b = R.isActive() || D.isActive(), L = !1, T = !1; if (m) { - t.loop && (d >= m && (C = !0), d %= m, d < 0 && (d = m + d, T = !0)), d = Math.max(Math.min(d, m - 1), 0); - for (let q = 0; q < m; q++) { - let M = p[q], ce = t.rtl && !ge(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"), b) { - M.classList.add("present"); + t.loop && (d >= m && (L = !0), d %= m, d < 0 && (d = m + d, T = !0)), d = Math.max(Math.min(d, m - 1), 0); + for (let U = 0; U < m; U++) { + let N = v[U], ce = t.rtl && !ge(N); + if (N.classList.remove("past"), N.classList.remove("present"), N.classList.remove("future"), N.setAttribute("hidden", ""), N.setAttribute("aria-hidden", "true"), N.querySelector("section") && N.classList.add("stack"), b) { + N.classList.add("present"); continue; } - q < d ? (M.classList.add(ce ? "future" : "past"), t.fragments && ct(M)) : q > d ? (M.classList.add(ce ? "past" : "future"), t.fragments && ht(M)) : q === d && t.fragments && (C ? ht(M) : T && ct(M)); + U < d ? (N.classList.add(ce ? "future" : "past"), t.fragments && rt(N)) : U > d ? (N.classList.add(ce ? "past" : "future"), t.fragments && ot(N)) : U === d && t.fragments && (L ? ot(N) : T && rt(N)); } - let B = p[d], ne = B.classList.contains("present"); + let B = v[d], ne = B.classList.contains("present"); B.classList.add("present"), B.removeAttribute("hidden"), B.removeAttribute("aria-hidden"), ne || _({ target: B, type: "visible", bubbles: !1 }); let Q = B.getAttribute("data-state"); - Q && (v = v.concat(Q.split(" "))); + Q && (p = p.concat(Q.split(" "))); } else d = 0; return d; } - function ct(a) { - E(a, ".fragment").forEach((d) => { + function rt(n) { + E(n, ".fragment").forEach((d) => { d.classList.add("visible"), d.classList.remove("current-fragment"); }); } - function ht(a) { - E(a, ".fragment.visible").forEach((d) => { + function ot(n) { + E(n, ".fragment.visible").forEach((d) => { d.classList.remove("visible", "current-fragment"); }); } - function De() { - let a = ee(), d = a.length, p, m; - if (d && typeof n < "u") { + function He() { + let n = ee(), d = n.length, v, m; + if (d && typeof a < "u") { let b = u.isActive() ? 10 : t.viewDistance; fe && (b = u.isActive() ? 6 : t.mobileViewDistance), D.isActive() && (b = Number.MAX_VALUE); - for (let C = 0; C < d; C++) { - let T = a[C], B = E(T, "section"), ne = B.length; - if (p = Math.abs((n || 0) - C) || 0, t.loop && (p = Math.abs(((n || 0) - C) % (d - b)) || 0), p < b ? k.load(T) : k.unload(T), ne) { - let Q = st(T); - for (let q = 0; q < ne; q++) { - let M = B[q]; - m = Math.abs(C === (n || 0) ? (o || 0) - q : q - Q), p + m < b ? k.load(M) : k.unload(M); + for (let L = 0; L < d; L++) { + let T = n[L], B = E(T, "section"), ne = B.length; + if (v = Math.abs((a || 0) - L) || 0, t.loop && (v = Math.abs(((a || 0) - L) % (d - b)) || 0), v < b ? k.load(T) : k.unload(T), ne) { + let Q = Ze(T); + for (let U = 0; U < ne; U++) { + let N = B[U]; + m = Math.abs(L === (a || 0) ? (o || 0) - U : U - Q), v + m < b ? k.load(N) : k.unload(N); } } } - vt() ? r.wrapper.classList.add("has-vertical-slides") : r.wrapper.classList.remove("has-vertical-slides"), pt() ? r.wrapper.classList.add("has-horizontal-slides") : r.wrapper.classList.remove("has-horizontal-slides"); + ut() ? l.wrapper.classList.add("has-vertical-slides") : l.wrapper.classList.remove("has-vertical-slides"), ht() ? l.wrapper.classList.add("has-horizontal-slides") : l.wrapper.classList.remove("has-horizontal-slides"); } } - function J({ includeFragments: a = !1 } = {}) { - let d = r.wrapper.querySelectorAll(te), p = r.wrapper.querySelectorAll(Tt), m = { - left: n > 0, - right: n < d.length - 1, + function J({ includeFragments: n = !1 } = {}) { + let d = l.wrapper.querySelectorAll(te), v = l.wrapper.querySelectorAll(kt), m = { + left: a > 0, + right: a < d.length - 1, up: o > 0, - down: o < p.length - 1 + down: o < v.length - 1 }; - if (t.loop && (d.length > 1 && (m.left = !0, m.right = !0), p.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), a === !0) { - let b = L.availableRoutes(); + 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 b = C.availableRoutes(); m.left = m.left || b.prev, m.up = m.up || b.prev, m.down = m.down || b.next, m.right = m.right || b.next; } if (t.rtl) { @@ -2925,273 +3007,268 @@ function Ot(h, e) { } return m; } - function ut(a = f) { - let d = ee(), p = 0; + function lt(n = f) { + let d = ee(), v = 0; e: for (let m = 0; m < d.length; m++) { - let b = d[m], C = b.querySelectorAll("section"); - for (let T = 0; T < C.length; T++) { - if (C[T] === a) + let b = d[m], L = b.querySelectorAll("section"); + for (let T = 0; T < L.length; T++) { + if (L[T] === n) break e; - C[T].dataset.visibility !== "uncounted" && p++; + L[T].dataset.visibility !== "uncounted" && v++; } - if (b === a) + if (b === n) break; - b.classList.contains("stack") === !1 && b.dataset.visibility !== "uncounted" && p++; + b.classList.contains("stack") === !1 && b.dataset.visibility !== "uncounted" && v++; } - return p; + return v; } - function li() { - let a = mt(), d = ut(); + function ti() { + let n = ft(), d = lt(); if (f) { - let p = f.querySelectorAll(".fragment"); - if (p.length > 0) { + let v = f.querySelectorAll(".fragment"); + if (v.length > 0) { let m = f.querySelectorAll(".fragment.visible"); - d += m.length / p.length * 0.9; + d += m.length / v.length * 0.9; } } - return Math.min(d / (a - 1), 1); + return Math.min(d / (n - 1), 1); } - function ft(a) { - let d = n, p = o, m; - if (a) + function dt(n) { + let d = a, v = o, m; + if (n) if (R.isActive()) - d = parseInt(a.getAttribute("data-index-h"), 10), a.getAttribute("data-index-v") && (p = parseInt(a.getAttribute("data-index-v"), 10)); + d = parseInt(n.getAttribute("data-index-h"), 10), n.getAttribute("data-index-v") && (v = parseInt(n.getAttribute("data-index-v"), 10)); else { - let b = ge(a), C = b ? a.parentNode : a, T = ee(); - d = Math.max(T.indexOf(C), 0), p = void 0, b && (p = Math.max(E(a.parentNode, "section").indexOf(a), 0)); + let b = ge(n), L = b ? n.parentNode : n, T = ee(); + d = Math.max(T.indexOf(L), 0), v = void 0, b && (v = Math.max(E(n.parentNode, "section").indexOf(n), 0)); } - if (!a && f && f.querySelectorAll(".fragment").length > 0) { - let C = f.querySelector(".current-fragment"); - C && C.hasAttribute("data-fragment-index") ? m = parseInt(C.getAttribute("data-fragment-index"), 10) : m = f.querySelectorAll(".fragment.visible").length - 1; + if (!n && f && f.querySelectorAll(".fragment").length > 0) { + let L = f.querySelector(".current-fragment"); + L && L.hasAttribute("data-fragment-index") ? m = parseInt(L.getAttribute("data-fragment-index"), 10) : m = f.querySelectorAll(".fragment.visible").length - 1; } - return { h: d, v: p, f: m }; + return { h: d, v, f: m }; } - function ze() { - return E(r.wrapper, re + ':not(.stack):not([data-visibility="uncounted"])'); + function De() { + return E(l.wrapper, re + ':not(.stack):not([data-visibility="uncounted"])'); } function ee() { - return E(r.wrapper, te); + return E(l.wrapper, te); } - function gt() { - return E(r.wrapper, ".slides>section>section"); + function ct() { + return E(l.wrapper, ".slides>section>section"); } - function di() { - return E(r.wrapper, te + ".stack"); + function ii() { + return E(l.wrapper, te + ".stack"); } - function pt() { + function ht() { return ee().length > 1; } - function vt() { - return gt().length > 1; + function ut() { + return ct().length > 1; } - function ci() { - return ze().map((a) => { + function si() { + return De().map((n) => { let d = {}; - for (let p = 0; p < a.attributes.length; p++) { - let m = a.attributes[p]; + for (let v = 0; v < n.attributes.length; v++) { + let m = n.attributes[v]; d[m.name] = m.value; } return d; }); } - function mt() { - return ze().length; + function ft() { + return De().length; } - function yt(a, d) { - let p = ee()[a], m = p && p.querySelectorAll("section"); - return m && m.length && typeof d == "number" ? m ? m[d] : void 0 : p; + function gt(n, d) { + let v = ee()[n], m = v && v.querySelectorAll("section"); + return m && m.length && typeof d == "number" ? m ? m[d] : void 0 : v; } - function hi(a, d) { - let p = typeof a == "number" ? yt(a, d) : a; - if (p) - return p.slideBackgroundElement; + function ai(n, d) { + let v = typeof n == "number" ? gt(n, d) : n; + if (v) + return v.slideBackgroundElement; } - function bt() { - let a = ft(); + function pt() { + let n = dt(); return { - indexh: a.h, - indexv: a.v, - indexf: a.f, + indexh: n.h, + indexv: n.v, + indexf: n.f, paused: ve(), overview: u.isActive() }; } - function ui(a) { - if (typeof a == "object") { - X(he(a.indexh), he(a.indexv), he(a.indexf)); - let d = he(a.paused), p = he(a.overview); - typeof d == "boolean" && d !== ve() && ot(d), typeof p == "boolean" && p !== u.isActive() && u.toggle(p); + function ni(n) { + if (typeof n == "object") { + Y(he(n.indexh), he(n.indexv), he(n.indexf)); + let d = he(n.paused), v = he(n.overview); + typeof d == "boolean" && d !== ve() && st(d), typeof v == "boolean" && v !== u.isActive() && u.toggle(v); } } function de() { if (we(), f && t.autoSlide !== !1) { - let a = f.querySelector(".current-fragment[data-autoslide]"), d = a ? a.getAttribute("data-autoslide") : null, p = f.parentNode ? f.parentNode.getAttribute("data-autoslide") : null, m = f.getAttribute("data-autoslide"); - d ? I = parseInt(d, 10) : m ? I = parseInt(m, 10) : p ? I = parseInt(p, 10) : (I = t.autoSlide, f.querySelectorAll(".fragment").length === 0 && E(f, "video, audio").forEach((b) => { + let n = f.querySelector(".current-fragment[data-autoslide]"), d = n ? n.getAttribute("data-autoslide") : null, v = f.parentNode ? f.parentNode.getAttribute("data-autoslide") : null, m = f.getAttribute("data-autoslide"); + d ? I = parseInt(d, 10) : m ? I = parseInt(m, 10) : v ? I = parseInt(v, 10) : (I = t.autoSlide, f.querySelectorAll(".fragment").length === 0 && E(f, "video, audio").forEach((b) => { b.hasAttribute("data-autoplay") && I && b.duration * 1e3 / b.playbackRate > I && (I = b.duration * 1e3 / b.playbackRate + 1e3); - })), I && !z && !ve() && !u.isActive() && (!Me() || L.availableRoutes().next || t.loop === !0) && (O = setTimeout(() => { + })), I && !z && !ve() && !u.isActive() && (!Me() || C.availableRoutes().next || t.loop === !0) && (q = setTimeout(() => { typeof t.autoSlideMethod == "function" ? t.autoSlideMethod() : Oe(), de(); - }, I), se = Date.now()), V && V.setPlaying(O !== -1); + }, I), se = Date.now()), V && V.setPlaying(q !== -1); } } function we() { - clearTimeout(O), O = -1; + clearTimeout(q), q = -1; } function Ee() { - I && !z && (z = !0, _({ type: "autoslidepaused" }), clearTimeout(O), V && V.setPlaying(!1)); + I && !z && (z = !0, _({ type: "autoslidepaused" }), clearTimeout(q), V && V.setPlaying(!1)); } function Se() { I && z && (z = !1, _({ type: "autoslideresumed" }), de()); } - function Ae({ skipFragments: a = !1 } = {}) { + function Ae({ skipFragments: n = !1 } = {}) { if (g.hasNavigatedHorizontally = !0, R.isActive()) return R.prev(); - t.rtl ? (u.isActive() || a || L.next() === !1) && J().left && X(n + 1, t.navigationMode === "grid" ? o : void 0) : (u.isActive() || a || L.prev() === !1) && J().left && X(n - 1, t.navigationMode === "grid" ? o : void 0); + t.rtl ? (u.isActive() || n || C.next() === !1) && J().left && Y(a + 1, t.navigationMode === "grid" ? o : void 0) : (u.isActive() || n || C.prev() === !1) && J().left && Y(a - 1, t.navigationMode === "grid" ? o : void 0); } - function Re({ skipFragments: a = !1 } = {}) { + function Re({ skipFragments: n = !1 } = {}) { if (g.hasNavigatedHorizontally = !0, R.isActive()) return R.next(); - t.rtl ? (u.isActive() || a || L.prev() === !1) && J().right && X(n - 1, t.navigationMode === "grid" ? o : void 0) : (u.isActive() || a || L.next() === !1) && J().right && X(n + 1, t.navigationMode === "grid" ? o : void 0); + t.rtl ? (u.isActive() || n || C.prev() === !1) && J().right && Y(a - 1, t.navigationMode === "grid" ? o : void 0) : (u.isActive() || n || C.next() === !1) && J().right && Y(a + 1, t.navigationMode === "grid" ? o : void 0); } - function Fe({ skipFragments: a = !1 } = {}) { + function ze({ skipFragments: n = !1 } = {}) { if (R.isActive()) return R.prev(); - (u.isActive() || a || L.prev() === !1) && J().up && X(n, o - 1); + (u.isActive() || n || C.prev() === !1) && J().up && Y(a, o - 1); } - function Ve({ skipFragments: a = !1 } = {}) { + function Fe({ skipFragments: n = !1 } = {}) { if (g.hasNavigatedVertically = !0, R.isActive()) return R.next(); - (u.isActive() || a || L.next() === !1) && J().down && X(n, o + 1); + (u.isActive() || n || C.next() === !1) && J().down && Y(a, o + 1); } - function wt({ skipFragments: a = !1 } = {}) { + function vt({ skipFragments: n = !1 } = {}) { if (R.isActive()) return R.prev(); - if (a || L.prev() === !1) + if (n || C.prev() === !1) if (J().up) - Fe({ skipFragments: a }); + ze({ skipFragments: n }); else { let d; - if (t.rtl ? d = E(r.wrapper, te + ".future").pop() : d = E(r.wrapper, te + ".past").pop(), d && d.classList.contains("stack")) { - let p = d.querySelectorAll("section").length - 1 || void 0, m = n - 1; - X(m, p); - } else t.rtl ? Re({ skipFragments: a }) : Ae({ skipFragments: a }); + if (t.rtl ? d = E(l.wrapper, te + ".future").pop() : d = E(l.wrapper, te + ".past").pop(), d && d.classList.contains("stack")) { + let v = d.querySelectorAll("section").length - 1 || void 0, m = a - 1; + Y(m, v); + } else t.rtl ? Re({ skipFragments: n }) : Ae({ skipFragments: n }); } } - function Oe({ skipFragments: a = !1 } = {}) { + function Oe({ skipFragments: n = !1 } = {}) { if (g.hasNavigatedHorizontally = !0, g.hasNavigatedVertically = !0, R.isActive()) return R.next(); - if (a || L.next() === !1) { + if (n || C.next() === !1) { let d = J(); - d.down && d.right && t.loop && at() && (d.down = !1), d.down ? Ve({ skipFragments: a }) : t.rtl ? Ae({ skipFragments: a }) : Re({ skipFragments: a }); + d.down && d.right && t.loop && et() && (d.down = !1), d.down ? Fe({ skipFragments: n }) : t.rtl ? Ae({ skipFragments: n }) : Re({ skipFragments: n }); } } - function fi(a) { + function ri(n) { t.autoSlideStoppable && Ee(); } - function Et(a) { - let d = a.data; + function mt(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 (Li.test(d.method) === !1) { - const p = i[d.method].apply(i, d.args); - Je("callback", { method: d.method, result: p }); + if (bi.test(d.method) === !1) { + const v = i[d.method].apply(i, d.args); + Ge("callback", { method: d.method, result: v }); } else console.warn('reveal.js: "' + d.method + '" is is blacklisted from the postMessage API'); } - function St(a) { - A === "running" && /section/gi.test(a.target.nodeName) && (A = "idle", _({ + function yt(n) { + A === "running" && /section/gi.test(n.target.nodeName) && (A = "idle", _({ type: "slidetransitionend", - data: { indexh: n, indexv: o, previousSlide: c, currentSlide: f } + data: { indexh: a, indexv: o, previousSlide: c, currentSlide: f } })); } - function At(a) { - const d = F(a.target, 'a[href^="#"]'); + function bt(n) { + const d = O(n.target, 'a[href^="#"]'); if (d) { - const p = d.getAttribute("href"), m = x.getIndicesFromHash(p); - m && (i.slide(m.h, m.v, m.f), a.preventDefault()); + const v = d.getAttribute("href"), m = x.getIndicesFromHash(v); + m && (i.slide(m.h, m.v, m.f), n.preventDefault()); } } - function Rt(a) { + function wt(n) { le(); } - function kt(a) { + function Et(n) { document.hidden === !1 && document.activeElement !== document.body && (typeof document.activeElement.blur == "function" && document.activeElement.blur(), document.body.focus()); } - function ke(a) { - (document.fullscreenElement || document.webkitFullscreenElement) === r.wrapper && (a.stopImmediatePropagation(), setTimeout(() => { + function ke(n) { + (document.fullscreenElement || document.webkitFullscreenElement) === l.wrapper && (n.stopImmediatePropagation(), setTimeout(() => { i.layout(), i.focus.focus(); }, 1)); } - function Lt(a) { - if (a.currentTarget && a.currentTarget.hasAttribute("href")) { - let d = a.currentTarget.getAttribute("href"); - d && (Ze(d), a.preventDefault()); - } - } - function gi(a) { - Me() && t.loop === !1 ? (X(0, 0), Se()) : z ? Se() : Ee(); + function oi(n) { + Me() && t.loop === !1 ? (Y(0, 0), Se()) : z ? Se() : Ee(); } - const Ct = { - VERSION: Vt, - initialize: Ut, + const St = { + VERSION: Nt, + initialize: Dt, configure: Ke, - destroy: Qt, - sync: lt, - syncSlide: ri, - syncFragments: L.sync.bind(L), + destroy: _t, + sync: at, + syncSlide: Zt, + syncFragments: C.sync.bind(C), // Navigation methods - slide: X, + slide: Y, left: Ae, right: Re, - up: Fe, - down: Ve, - prev: wt, + up: ze, + down: Fe, + prev: vt, next: Oe, // Navigation aliases navigateLeft: Ae, navigateRight: Re, - navigateUp: Fe, - navigateDown: Ve, - navigatePrev: wt, + navigateUp: ze, + navigateDown: Fe, + navigatePrev: vt, navigateNext: Oe, // Fragment methods - navigateFragment: L.goto.bind(L), - prevFragment: L.prev.bind(L), - nextFragment: L.next.bind(L), + navigateFragment: C.goto.bind(C), + prevFragment: C.prev.bind(C), + nextFragment: C.next.bind(C), // Event binding - on: Xe, - off: Ye, + on: $e, + off: Xe, // Legacy event binding methods left in for backwards compatibility - addEventListener: Xe, - removeEventListener: Ye, + addEventListener: $e, + removeEventListener: Xe, // Forces an update in slide layout layout: le, // Randomizes the order of slides - shuffle: He, + shuffle: Be, // Returns an object with the available routes as booleans (left/right/top/bottom) availableRoutes: J, // Returns an object with the available fragments as booleans (prev/next) - availableFragments: L.availableRoutes.bind(L), + availableFragments: C.availableRoutes.bind(C), // Toggles a help overlay with keyboard shortcuts - toggleHelp: Zt, + toggleHelp: F.toggleHelp.bind(F), // Toggles the overview mode on/off toggleOverview: u.toggle.bind(u), // Toggles the scroll view on/off toggleScrollView: R.toggle.bind(R), // Toggles the "black screen" mode on/off - togglePause: ot, + togglePause: st, // Toggles the auto slide mode on/off - toggleAutoSlide: si, + toggleAutoSlide: Gt, // Toggles visibility of the jump-to-slide UI - toggleJumpToSlide: ii, + toggleJumpToSlide: Yt, // Slide navigation checks - isFirstSlide: nt, + isFirstSlide: tt, isLastSlide: Me, - isLastVerticalSlide: at, + isLastVerticalSlide: et, isVerticalSlide: ge, - isVerticalStack: ti, + isVerticalStack: Xt, // State checks isPaused: ve, - isAutoSliding: ai, - isSpeakerNotes: K.isSpeakerNotesWindow.bind(K), + isAutoSliding: Jt, + isSpeakerNotes: $.isSpeakerNotesWindow.bind($), isOverview: u.isActive.bind(u), isFocused: ae.isFocused.bind(ae), + isOverlayOpen: F.isOpen.bind(F), isScrollView: R.isActive.bind(R), isPrintView: D.isActive.bind(D), // Checks if reveal.js has been loaded and is ready for use - isReady: () => l, + isReady: () => r, // Slide preloading loadSlide: k.load.bind(k), unloadSlide: k.unload.bind(k), @@ -3199,49 +3276,52 @@ function Ot(h, e) { startEmbeddedContent: () => k.startEmbeddedContent(f), stopEmbeddedContent: () => k.stopEmbeddedContent(f, { unloadIframes: !1 }), // Preview management - showPreview: Ze, - hidePreview: G, + showIframePreview: F.showIframePreview.bind(F), + showMediaPreview: F.showMediaPreview.bind(F), + showPreview: F.showIframePreview.bind(F), + // deprecated in favor of showIframePreview + hidePreview: F.close.bind(F), // Adds or removes all internal event listeners - addEventListeners: $e, + addEventListeners: _e, removeEventListeners: ye, dispatchEvent: _, // Facility for persisting and restoring the presentation state - getState: bt, - setState: ui, + getState: pt, + setState: ni, // Presentation progress on range of 0-1 - getProgress: li, + getProgress: ti, // Returns the indices of the current, or specified, slide - getIndices: ft, + getIndices: dt, // Returns an Array of key:value maps of the attributes of each // slide in the deck - getSlidesAttributes: ci, + getSlidesAttributes: si, // Returns the number of slides that we have passed - getSlidePastCount: ut, + getSlidePastCount: lt, // Returns the total number of slides - getTotalSlides: mt, + getTotalSlides: ft, // Returns the slide element at the specified index - getSlide: yt, + getSlide: gt, // Returns the previous slide element, may be null getPreviousSlide: () => c, // Returns the current slide element getCurrentSlide: () => f, // Returns the slide background element at the specified index - getSlideBackground: hi, + getSlideBackground: ai, // Returns the speaker notes string for a slide, or null - getSlideNotes: K.getSlideNotes.bind(K), + getSlideNotes: $.getSlideNotes.bind($), // Returns an Array of all slides - getSlides: ze, + getSlides: De, // Returns an array with all horizontal/vertical slides in the deck getHorizontalSlides: ee, - getVerticalSlides: gt, + getVerticalSlides: ct, // Checks if the presentation contains two or more horizontal // and vertical slides - hasHorizontalSlides: pt, - hasVerticalSlides: vt, + hasHorizontalSlides: ht, + hasVerticalSlides: ut, // Checks if the deck has navigated on either axis at least once hasNavigatedHorizontally: () => g.hasNavigatedHorizontally, hasNavigatedVertically: () => g.hasNavigatedVertically, - shouldAutoAnimateBetween: Be, + shouldAutoAnimateBetween: Ne, // Adds/removes a custom key binding addKeyBinding: S.addKeyBinding.bind(S), removeKeyBinding: S.removeKeyBinding.bind(S), @@ -3250,19 +3330,19 @@ function Ot(h, e) { // Registers a new shortcut to include in the help overlay registerKeyboardShortcut: S.registerKeyboardShortcut.bind(S), getComputedSlideSize: be, - setCurrentScrollPage: ni, + setCurrentScrollPage: Qt, // Returns the current scale of the presentation content getScale: () => y, // Returns the current configuration object getConfig: () => t, // Helper method, retrieves query string as a key:value map - getQueryHash: xt, + getQueryHash: Rt, // Returns the path to the current slide as represented in the URL getSlidePath: x.getHash.bind(x), // Returns reveal.js DOM elements getRevealElement: () => h, - getSlidesElement: () => r.slides, - getViewportElement: () => r.viewport, + getSlidesElement: () => l.slides, + getViewportElement: () => l.viewport, getBackgroundsElement: () => P.element, // API for registering and retrieving plugins registerPlugin: H.registerPlugin.bind(H), @@ -3271,41 +3351,42 @@ function Ot(h, e) { getPlugins: H.getRegisteredPlugins.bind(H) }; return ue(i, { - ...Ct, + ...St, // Methods for announcing content to screen readers announceStatus: Te, getStatusText: me, // Controllers focus: ae, scroll: R, - progress: j, - controls: $, + progress: K, + controls: X, location: x, overview: u, - fragments: L, + keyboard: S, + fragments: C, backgrounds: P, slideContent: k, - slideNumber: N, - onUserInput: fi, - closeOverlay: G, - updateSlidesVisibility: De, - layoutSlideContents: tt, + slideNumber: M, + onUserInput: ri, + closeOverlay: F.close.bind(F), + updateSlidesVisibility: He, + layoutSlideContents: Je, transformSlides: Ie, cueAutoSlide: de, cancelAutoSlide: we - }), Ct; + }), St; } -let oe = Ot, qt = []; -oe.initialize = (h) => (Object.assign(oe, new Ot(document.querySelector(".reveal"), h)), qt.map((e) => e(oe)), oe.initialize()); +let oe = Bt, Ht = []; +oe.initialize = (h) => (Object.assign(oe, new Bt(document.querySelector(".reveal"), h)), Ht.map((e) => e(oe)), oe.initialize()); ["configure", "on", "off", "addEventListener", "removeEventListener", "registerPlugin"].forEach( (h) => { oe[h] = (...e) => { - qt.push((i) => i[h].call(null, ...e)); + Ht.push((i) => i[h].call(null, ...e)); }; } ); oe.isReady = () => !1; -oe.VERSION = Vt; +oe.VERSION = Nt; export { oe as default }; diff --git a/package-lock.json b/package-lock.json index 1555335d816..aaff584911d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1934,9 +1934,9 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, "dependencies": { "path-key": "^3.1.0", @@ -2755,9 +2755,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz", + "integrity": "sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==", "dev": true, "funding": [ { @@ -3629,9 +3629,9 @@ "dev": true }, "node_modules/vite": { - "version": "5.4.10", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", - "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", + "version": "5.4.14", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.14.tgz", + "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==", "dev": true, "dependencies": { "esbuild": "^0.21.3",