@ekolabs/eko-gallery-react 4.0.14-devops-1190049.0 → 4.0.14-devops-1196031.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js
CHANGED
|
@@ -11,4 +11,4 @@ import e,{useRef as n,useState as i,createRef as r,useCallback as o,useEffect as
|
|
|
11
11
|
object-assign
|
|
12
12
|
(c) Sindre Sorhus
|
|
13
13
|
@license MIT
|
|
14
|
-
*/var bt=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var i=Object.getOwnPropertyNames(e).map((function(t){return e[t]}));if("0123456789"!==i.join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,i,r=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),o=1;o<arguments.length;o++){for(var s in n=Object(arguments[o]))gt.call(n,s)&&(r[s]=n[s]);if(vt){i=vt(n);for(var a=0;a<i.length;a++)yt.call(n,i[a])&&(r[i[a]]=n[i[a]])}}return r},kt="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",wt=Function.call.bind(Object.prototype.hasOwnProperty),xt=function(){};if("production"!==process.env.NODE_ENV){var _t=kt,Tt={},It=wt;xt=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}}}function Et(t,e,n,i,r){if("production"!==process.env.NODE_ENV)for(var o in t)if(It(t,o)){var s;try{if("function"!=typeof t[o]){var a=Error((i||"React class")+": "+n+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof t[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw a.name="Invariant Violation",a}s=t[o](e,o,i,n,null,_t)}catch(t){s=t}if(!s||s instanceof Error||xt((i||"React class")+": type specification of "+n+" `"+o+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof s+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),s instanceof Error&&!(s.message in Tt)){Tt[s.message]=!0;var l=r?r():"";xt("Failed "+n+" type: "+s.message+(null!=l?l:""))}}}Et.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&(Tt={})};var St=Et,At=function(){};function Nt(){return null}"production"!==process.env.NODE_ENV&&(At=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}});var Mt=function(t,e){var n="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";var r="<<anonymous>>",o={array:c("array"),bigint:c("bigint"),bool:c("boolean"),func:c("function"),number:c("number"),object:c("object"),string:c("string"),symbol:c("symbol"),any:l(Nt),arrayOf:function(t){return l((function(e,n,i,r,o){if("function"!=typeof t)return new a("Property `"+o+"` of component `"+i+"` has invalid PropType notation inside arrayOf.");var s=e[n];if(!Array.isArray(s))return new a("Invalid "+r+" `"+o+"` of type `"+h(s)+"` supplied to `"+i+"`, expected an array.");for(var l=0;l<s.length;l++){var c=t(s,l,i,r,o+"["+l+"]",kt);if(c instanceof Error)return c}return null}))},element:l((function(e,n,i,r,o){var s=e[n];return t(s)?null:new a("Invalid "+r+" `"+o+"` of type `"+h(s)+"` supplied to `"+i+"`, expected a single ReactElement.")})),elementType:l((function(t,e,n,i,r){var o=t[e];return mt.isValidElementType(o)?null:new a("Invalid "+i+" `"+r+"` of type `"+h(o)+"` supplied to `"+n+"`, expected a single ReactElement type.")})),instanceOf:function(t){return l((function(e,n,i,o,s){if(!(e[n]instanceof t)){var l=t.name||r;return new a("Invalid "+o+" `"+s+"` of type `"+(((c=e[n]).constructor&&c.constructor.name?c.constructor.name:r)+"` supplied to `")+i+"`, expected instance of `"+l+"`.")}var c;return null}))},node:l((function(t,e,n,i,r){return d(t[e])?null:new a("Invalid "+i+" `"+r+"` supplied to `"+n+"`, expected a ReactNode.")})),objectOf:function(t){return l((function(e,n,i,r,o){if("function"!=typeof t)return new a("Property `"+o+"` of component `"+i+"` has invalid PropType notation inside objectOf.");var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected an object.");for(var c in s)if(wt(s,c)){var u=t(s,c,i,r,o+"."+c,kt);if(u instanceof Error)return u}return null}))},oneOf:function(t){if(!Array.isArray(t))return"production"!==process.env.NODE_ENV&&At(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),Nt;return l((function(e,n,i,r,o){for(var l=e[n],c=0;c<t.length;c++)if(s(l,t[c]))return null;var u=JSON.stringify(t,(function(t,e){return"symbol"===f(e)?String(e):e}));return new a("Invalid "+r+" `"+o+"` of value `"+String(l)+"` supplied to `"+i+"`, expected one of "+u+".")}))},oneOfType:function(t){if(!Array.isArray(t))return"production"!==process.env.NODE_ENV&&At("Invalid argument supplied to oneOfType, expected an instance of array."),Nt;for(var e=0;e<t.length;e++){var n=t[e];if("function"!=typeof n)return At("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+p(n)+" at index "+e+"."),Nt}return l((function(e,n,i,r,o){for(var s=[],l=0;l<t.length;l++){var c=(0,t[l])(e,n,i,r,o,kt);if(null==c)return null;c.data&&wt(c.data,"expectedType")&&s.push(c.data.expectedType)}return new a("Invalid "+r+" `"+o+"` supplied to `"+i+"`"+(s.length>0?", expected one of type ["+s.join(", ")+"]":"")+".")}))},shape:function(t){return l((function(e,n,i,r,o){var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected `object`.");for(var c in t){var d=t[c];if("function"!=typeof d)return u(i,r,o,c,f(d));var p=d(s,c,i,r,o+"."+c,kt);if(p)return p}return null}))},exact:function(t){return l((function(e,n,i,r,o){var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected `object`.");var c=bt({},e[n],t);for(var d in c){var p=t[d];if(wt(t,d)&&"function"!=typeof p)return u(i,r,o,d,f(p));if(!p)return new a("Invalid "+r+" `"+o+"` key `"+d+"` supplied to `"+i+"`.\nBad object: "+JSON.stringify(e[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(t),null," "));var m=p(s,d,i,r,o+"."+d,kt);if(m)return m}return null}))}};function s(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function a(t,e){this.message=t,this.data=e&&"object"==typeof e?e:{},this.stack=""}function l(t){if("production"!==process.env.NODE_ENV)var n={},i=0;function o(o,s,l,c,u,d,h){if(c=c||r,d=d||l,h!==kt){if(e){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}if("production"!==process.env.NODE_ENV&&"undefined"!=typeof console){var p=c+":"+l;!n[p]&&i<3&&(At("You are manually calling a React.PropTypes validation function for the `"+d+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),n[p]=!0,i++)}}return null==s[l]?o?null===s[l]?new a("The "+u+" `"+d+"` is marked as required in `"+c+"`, but its value is `null`."):new a("The "+u+" `"+d+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:t(s,l,c,u,d)}var s=o.bind(null,!1);return s.isRequired=o.bind(null,!0),s}function c(t){return l((function(e,n,i,r,o,s){var l=e[n];return h(l)!==t?new a("Invalid "+r+" `"+o+"` of type `"+f(l)+"` supplied to `"+i+"`, expected `"+t+"`.",{expectedType:t}):null}))}function u(t,e,n,i,r){return new a((t||"React class")+": "+e+" type `"+n+"."+i+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+r+"`.")}function d(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(d);if(null===e||t(e))return!0;var r=function(t){var e=t&&(n&&t[n]||t[i]);if("function"==typeof e)return e}(e);if(!r)return!1;var o,s=r.call(e);if(r!==e.entries){for(;!(o=s.next()).done;)if(!d(o.value))return!1}else for(;!(o=s.next()).done;){var a=o.value;if(a&&!d(a[1]))return!1}return!0;default:return!1}}function h(t){var e=typeof t;return Array.isArray(t)?"array":t instanceof RegExp?"object":function(t,e){return"symbol"===t||!!e&&("Symbol"===e["@@toStringTag"]||"function"==typeof Symbol&&e instanceof Symbol)}(e,t)?"symbol":e}function f(t){if(null==t)return""+t;var e=h(t);if("object"===e){if(t instanceof Date)return"date";if(t instanceof RegExp)return"regexp"}return e}function p(t){var e=f(t);switch(e){case"array":case"object":return"an "+e;case"boolean":case"date":case"regexp":return"a "+e;default:return e}}return a.prototype=Error.prototype,o.checkPropTypes=St,o.resetWarningCache=St.resetWarningCache,o.PropTypes=o,o};function Ft(){}function Ot(){}Ot.resetWarningCache=Ft;var Ct=V((function(t){if("production"!==process.env.NODE_ENV){var e=mt;t.exports=Mt(e.isElement,!0)}else t.exports=function(){function t(t,e,n,i,r,o){if(o!==kt){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function e(){return t}t.isRequired=t;var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:Ot,resetWarningCache:Ft};return n.PropTypes=n,n}()}));const Pt=/https?:\/\/(.*?\.)?eko.com/,Dt={"eko.project.interaction":"interaction","eko.project.swipe":"swipe"};let Rt=null,Lt=null,Bt=[];function zt(t){return e=>{var n;if(!Pt.test(e.origin)||"eko.embedapi"!==(null===(n=e.data)||void 0===n?void 0:n.source))return;const i=e.data,r=Dt[i.type];r&&(t?t(r,i.data):Bt.push({type:r,data:i.data}))}}"undefined"!=typeof window&&(Lt=zt(null),window.addEventListener("message",Lt));var Wt={subscribe:function(t){"function"==typeof t?Rt?console.warn("[eko-gallery-react] Ignoring events subscribe since already subscribed"):(Rt=t,Lt=zt(t),window.addEventListener("message",Lt),function(t){Bt.forEach((e=>{t(e.type,e.data)})),Bt=[]}(t)):console.warn("[eko-gallery-react] Ignoring events subscribe since a callback function was not provided as argument")},unsubscribe:function(){Lt?(window.removeEventListener("message",Lt),Lt=null,Rt=null,Bt=[]):console.warn("[eko-gallery-react] Ignoring events unsubscribe since not subscribed")},send:function(t,e){Rt?Rt(t,e):Bt.push({type:t,data:e})}};const jt=({index:t,activeIndex:n,setActiveIndex:i,item:r,src:o,navItemRefs:s,itemIcon:a})=>{var l,c;const u=null==r||null===(l=r.media)||void 0===l?void 0:l.srcset,d=null==r||null===(c=r.media)||void 0===c?void 0:c.sizes,h=!o&&(null==r?void 0:r.label),f=u?o:function(t,e=200){if(!t)return null;try{let n=t;t.includes("assets.eko.com")&&t.includes("/raw/")&&(n=t.replace("/raw/","/image/"));const i=new URL(n);return i.searchParams.set("width",e),i.href}catch(e){return t}}(o,150);let p=["addons-container",h?"full-thumb-label":""].join(" ").trim();return e.createElement("li",{className:"eko-nav-item","aria-current":n===t,onClick:function(){i(t),function(t){R.track("gallery.interaction",{elementid:`thumbnail-${t}`,interactiontype:"click"}),Wt.send("interaction",{elementid:`thumbnail-${t}`,interactiontype:"click"})}(t)},ref:s.current[t]},e.createElement("button",{type:"button","aria-label":`Go to item ${t}`},!h&&e.createElement("img",{src:f,srcSet:u,sizes:d,alt:null==r?void 0:r.name,loading:"eager",fetchPriority:"high"}),e.createElement("div",{className:p},(null==r?void 0:r.stepsIndication)&&e.createElement("div",{className:"step-indicator"},e.createElement("span",null),e.createElement("span",null),e.createElement("span",null)),(null==r?void 0:r.label)&&e.createElement("div",{className:"thumb-label"},null==r?void 0:r.label)),a&&e.createElement("div",{className:"item-icon"},e.createElement("span",{style:{backgroundImage:`url(${a})`}}))))};jt.propTypes={index:Ct.number,activeIndex:Ct.number,setActiveIndex:Ct.func.isRequired,item:Ct.object.isRequired,src:Ct.string,navItemRefs:Ct.object.isRequired,itemIcon:Ct.string};const Ut=({layout:t,nav:i,isVerticalNav:r,showPrevArrow:o,showNextArrow:s})=>{var a,l,c,u,d;const h=n(null),f=n(null),p="arrows"===(null==t||null===(a=t.mobile)||void 0===a||null===(a=a.config)||void 0===a||null===(a=a.navPagination)||void 0===a?void 0:a.type)?"eko-mobile-arrows":"",m="arrows"===(null!==(l=null==t||null===(c=t.desktop)||void 0===c||null===(c=c.config)||void 0===c||null===(c=c.navPagination)||void 0===c?void 0:c.type)&&void 0!==l?l:"arrows")?"eko-desktop-arrows":"",v=p||m,g=r?null==i||null===(u=i.current)||void 0===u?void 0:u.scrollHeight:null==i||null===(d=i.current)||void 0===d?void 0:d.scrollWidth;function y(t){const e=r?i.current.clientHeight:i.current.clientWidth,n=function(t,e){const n=r?e.scrollTop:e.scrollLeft;return Math.max(-n,Math.min(g-t-n,t))}("next"===t?e:-e,i.current);return{top:r?n:0,left:r?0:n,behavior:"smooth"}}function b(t){var e,n,r;const o=y(t),s="next"===t?null==f||null===(e=f.current)||void 0===e?void 0:e.id:null==h||null===(n=h.current)||void 0===n?void 0:n.id;var a,l;window.EkoAnalytics("track","gallery.interaction",{elementid:s,interactiontype:"click"}),null==i||null===(r=i.current)||void 0===r||r.scrollBy(o),a=s,l="click",R.track("gallery.interaction",{elementId:a,interactiontype:l}),Wt.send("interaction",{elementId:a,interactiontype:l})}return e.createElement(e.Fragment,null,v&&e.createElement(e.Fragment,null,e.createElement("button",q({type:"button","aria-label":"Go to previous item","aria-hidden":o?"false":"true",onClick:()=>b("prev"),ref:h,id:"eko-nav-prev-arrow",className:`eko-nav-arrow eko-prev-nav-button ${p} ${m} ${o?"":"eko-hidden-nav-button"}`},o?{}:{tabIndex:"-1"}),e.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M5.56127 9.52817C5.28966 9.22635 5.28966 8.77361 5.56127 8.502L10.39 3.67331C10.6918 3.37157 11.1445 3.37157 11.4161 3.67331C11.7179 3.94492 11.7179 4.39766 11.4161 4.66927L7.10044 8.98487L11.4161 13.3307C11.7179 13.6023 11.7179 14.055 11.4161 14.3266C11.1445 14.6285 10.6918 14.6285 10.4202 14.3266L5.56127 9.52817Z",fill:"black"}))),e.createElement("button",q({type:"button","aria-label":"Go to next item","aria-hidden":s?"false":"true",onClick:()=>b("next"),ref:f,className:`eko-nav-arrow eko-next-nav-button ${p} ${m} ${s?"":"eko-hidden-nav-button"}`,id:"eko-nav-next-arrow"},s?{}:{tabIndex:"-1"}),e.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M12.4387 8.47185C12.7103 8.77367 12.7103 9.22641 12.4387 9.49802L7.61003 14.3267C7.30821 14.6284 6.85547 14.6284 6.58386 14.3267C6.28212 14.0551 6.28212 13.6024 6.58386 13.3308L10.8996 9.01515L6.58386 4.66933C6.28212 4.39772 6.28212 3.94499 6.58386 3.67338C6.85547 3.37155 7.30821 3.37155 7.57982 3.67338L12.4387 8.47185Z",fill:"black"})))))};function $t(t,e,n){let i;return function(){const n=this,r=arguments;clearTimeout(i),i=setTimeout((function(){i=null,t.apply(n,r)}),e)}}Ut.propTypes={layout:Ct.object.isRequired,nav:Ct.object.isRequired,isVerticalNav:Ct.bool.isRequired,showPrevArrow:Ct.bool.isRequired,showNextArrow:Ct.bool.isRequired};const qt=({items:t,setActiveIndex:a,activeIndex:l,layout:c,carouselMounted:u,forceMobile:d})=>{const h=n(null),f=n(null),p=n([]),m=3,[g,y]=i(null),[b,k]=i(!1),[w,x]=i(0),[_,T]=i(!1),[I,E]=i(!1);function S(){var t;const e=d||window.innerWidth<768?"mobile":"desktop",n=(null==c||null===(t=c[e])||void 0===t||null===(t=t.config)||void 0===t?void 0:t.orientation)||("desktop"===e?"left":"bottom");k("left"===n||"right"===n);const i=f.current.parentNode,r=u?".eko-smart-gallery-container iframe":".eko-carousel",o=i.querySelector(r);setTimeout((()=>{x(o.clientHeight)}),0)}function A(){var t,e;const n=d||v()?"mobile":"desktop",i=null!==(t=null==c||null===(e=c[n])||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.navPagination)||void 0===e?void 0:e.scrollThreshold)&&void 0!==t?t:m;!function(t=m){var e,n;const i=h.current;if(!i)return;const r="none"!==(null==c||null===(e=c.desktop)||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.navPagination)||void 0===e?void 0:e.type),o=(s=null==c||null===(n=c.mobile)||void 0===n||null===(n=n.config)||void 0===n||null===(n=n.navPagination)||void 0===n?void 0:n.type,"mask"===s||"arrows"===s);var s;if((d||v())&&!o)return void i.style.setProperty("-webkit-mask","none");if(!v()&&!r)return void i.style.setProperty("-webkit-mask","none");const a=i.scrollHeight-i.clientHeight,l=i.scrollTop>t?"85%":"100%",u=i.scrollTop<=a-t?"15%":"0%",f=i.scrollWidth-i.clientWidth,p=i.scrollLeft>t?"15%":"0%",g=i.scrollLeft<=f-t?"85%":"100%";b?i.style.setProperty("-webkit-mask",`linear-gradient(0deg,#0000,#000 ${u} ${l},#0000)`):i.style.setProperty("-webkit-mask",`linear-gradient(90deg,#0000,#000 ${p} ${g},#0000)`)}(i),function(t=m){var e,n,i,r,o,s;const a=b?null==h||null===(e=h.current)||void 0===e?void 0:e.scrollTop:null==h||null===(n=h.current)||void 0===n?void 0:n.scrollLeft,l=b?null==h||null===(i=h.current)||void 0===i?void 0:i.clientHeight:null==h||null===(r=h.current)||void 0===r?void 0:r.clientWidth,c=b?null==h||null===(o=h.current)||void 0===o?void 0:o.scrollHeight:null==h||null===(s=h.current)||void 0===s?void 0:s.scrollWidth;c-t<l?(T(!1),E(!1)):a<=t?(T(!1),E(!0)):a+l>c-t?(T(!0),E(!1)):a+t>0&&a<c-t&&(T(!0),E(!0))}(i)}p.current=null==t?void 0:t.map(((t,e)=>{var n,i;return null!==(n=null==p||null===(i=p.current)||void 0===i?void 0:i[e])&&void 0!==n?n:r()}));const N=$t((t=>{var e;e=t,R.track("gallery.interaction",{elementid:"nav",interactiontype:e}),Wt.send("interaction",{elementid:"nav",interactiontype:e})}),200);const M=o((t=>{a({index:t,step:0,source:"nav"})}),[]);return s((()=>{var t;y(null===(t=p.current)||void 0===t?void 0:t[l])}),[l]),s((()=>{if(null!=g&&g.current&&null!=h&&h.current){const t=g.current,e=h.current.clientWidth/2,n=t.clientWidth/2,i=h.current.clientHeight/2,r=t.clientHeight/2;h.current.scrollTo({left:t.offsetLeft-e+n,top:t.offsetTop-i+r,behavior:"smooth"})}}),[g]),s((()=>{S()}),[]),s((()=>(window.addEventListener("resize",S),()=>{window.removeEventListener("resize",S)})),[f,u,d]),s((()=>{x(0),S()}),[t,f,u,d]),s((()=>{A();const t=new ResizeObserver(A);return t.observe(h.current),()=>{t.disconnect()}}),[t,d,b]),e.createElement("div",{className:"eko-nav-container",ref:f,style:{opacity:w>0?1:0,height:""+(w&&b?w+"px":"auto")}},e.createElement(Ut,{layout:c,nav:h,isVerticalNav:b,showPrevArrow:_,showNextArrow:I}),e.createElement("ul",{className:`eko-nav eko-mobile-nav-selected-${null!==(F=null==c||null===(O=c.mobile)||void 0===O||null===(O=O.config)||void 0===O?void 0:O.navItemsSelectedType)&&void 0!==F?F:"underline"} eko-desktop-nav-selected-${null!==(C=null==c||null===(P=c.desktop)||void 0===P||null===(P=P.config)||void 0===P?void 0:P.navItemsSelectedType)&&void 0!==C?C:"underline"}`,ref:h,onScroll:function(){A()},onWheel:function(){N("wheel")},onTouchMove:function(){N("swipe")}},null==t?void 0:t.map(((t,n)=>{var i;const r=(null==t||null===(i=t.media)||void 0===i?void 0:i.url)||(null==t?void 0:t.media)||"";return e.createElement(jt,{key:r+n,index:n,activeIndex:l,setActiveIndex:M,item:t,src:r,navItemRefs:p,itemIcon:null==t?void 0:t.icon})}))));var F,O,C,P};qt.propTypes={items:Ct.array.isRequired,activeIndex:Ct.number,setActiveIndex:Ct.func.isRequired,layout:Ct.object,carouselMounted:Ct.bool,forceMobile:Ct.bool};function Vt(){R.track("gallery.cover.displayed"),Wt.send("gallerycoverdisplayed")}function Gt(t){if(!t)return t;try{const e=new URL(t);return e.host.includes("assets.eko.com")&&e.pathname.startsWith("/image")&&!e.searchParams.has("width")?(e.pathname.endsWith(".png")&&(e.pathname=e.pathname.replace(/\.png$/,".webp")),e.searchParams.set("width",1920),e.toString()):t}catch(e){return t}}const Ht=({item:t,src:i,srcset:r,sizes:o,isCoverElement:a})=>{const l=n(null);return s((()=>{var t;if(a){if(null===(t=l.current)||void 0===t||!t.complete)return l.current.addEventListener("load",Vt,{once:!0}),()=>{var t;null===(t=l.current)||void 0===t||t.removeEventListener("load",Vt,{once:!0})};Vt()}}),[]),e.createElement("img",{ref:l,src:Gt(i),srcSet:r,sizes:o,alt:t.name,fetchPriority:a?"high":"auto",loading:a?"eager":"lazy",style:{width:"100%",height:"100%"}})};Ht.propTypes={item:Ct.object.isRequired,src:Ct.string,srcset:Ct.string,sizes:Ct.string,isCoverElement:Ct.bool};const Kt=$t((t=>{var e;e=t,R.track("gallery.interaction",{elementid:"carousel",interactiontype:e}),Wt.send("interaction",{elementid:"carousel",interactiontype:e})}),200);function Xt(){Kt("wheel")}const Yt=a((({items:t,setActiveIndex:o,activeIndex:a,showSmartLoaders:c},u)=>{const d=n(null),h=n([]);h.current=null==t?void 0:t.map(((t,e)=>{var n,i;return null!==(n=null==h||null===(i=h.current)||void 0===i?void 0:i[e])&&void 0!==n?n:r()}));const[f,p]=i(),[m,v]=i(),g=n(a),y=n(!1);function b(){const e=function(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}(d.current)*(null==t?void 0:t.length)/100,n=Math.min(Math.trunc(e),(null==t?void 0:t.length)-1),i=g.current;"nav"!==i.source&&"external-nav"!==i.source?(y.current&&n!==i.index&&(y.current=!1),y.current||(n>(null==t?void 0:t.length)-1?o({index:(null==t?void 0:t.length)-1,source:"carousel"}):o({index:n,source:"carousel"}))):n===i.index?y.current=!0:y.current&&n!==i.index&&(y.current=!1,o({index:n,source:"carousel"}))}return l(u,(()=>({prev:()=>{o({index:Math.max(0,g.current.index-1),source:"carousel"})},next:()=>{o({index:Math.min((null==t?void 0:t.length)-1,g.current.index+1),source:"carousel"})}}))),s((()=>{const t=d.current;if(t)return t.addEventListener("scroll",b),()=>{t.removeEventListener("scroll",b)}}),[t]),s((()=>{var t;let e=null===(t=h.current)||void 0===t?void 0:t[a.index];if(e&&("nav"===a.source||"external-nav"===a.source)){const t=e.current,n=d.current.clientWidth/2,i=(null==t?void 0:t.clientWidth)/2,r=(null==t?void 0:t.offsetLeft)-n+i;d.current.scrollTo({left:r,behavior:"smooth"})}}),[a]),s((()=>{g.current=a,"nav"!==a.source&&"external-nav"!==a.source||(y.current=!1)}),[a]),e.createElement("ul",{className:"eko-carousel",ref:d,onScroll:b,onWheel:Xt,onTouchMove:function(t){v(t.targetTouches[0].clientX)},onTouchStart:function(t){p(t.targetTouches[0].clientX),v(null)},onTouchEnd:function(){m&&f&&(f-m>75||f-m<-75)&&Kt("swipe")}},null==t?void 0:t.map(((t,n)=>{const i=(null==t?void 0:t.cover)||(null==t?void 0:t.media),r=(null==i?void 0:i.url)||i;return e.createElement("li",{className:"eko-carousel-item",key:r+n,ref:h.current[n]},e.createElement(Ht,{item:t,src:r,srcset:null==i?void 0:i.srcset,sizes:null==i?void 0:i.sizes,isCoverElement:0===n}),c&&"image"!==t.type&&e.createElement("div",{className:"eko-smart-loading"},e.createElement("div",null),e.createElement("p",null,"Loading video experience")))})))}));function Qt(t){var e;return function(t){var e;return"eko.block.event"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)}(t)&&"GalleryBlock"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.blockType)}Yt.propTypes={items:Ct.array.isRequired,setActiveIndex:Ct.func.isRequired,activeIndex:Ct.object,showSmartLoaders:Ct.bool},Yt.displayName="CarouselLoop";const Jt="eko.project.invoke",Zt="eko.block.invoke";function te(t,e,n){var i;null!=t&&t.contentWindow&&(null==t||null===(i=t.contentWindow)||void 0===i||i.postMessage({target:"eko.embedapi",type:e,data:n},"*"))}function ee(t){return`#variantId=${encodeURIComponent(t)}`}const ne=a((({config:t,instanceId:r,setActiveItem:o,activeItem:a,variantId:c,smartGalleryLoaded:u,onLoad:d,forceMobile:h},f)=>{var p,m,g;const y=null!==(p=null===(m=t.options)||void 0===m?void 0:m.galleryEnv)&&void 0!==p?p:"",b=null===(g=t.__autoGenerated)||void 0===g||null===(g=g.publishItem)||void 0===g?void 0:g.id,k=function(t={}){let e="";return Object.entries(t).forEach((([t,n])=>{e+=`&${t}=${n}`})),e}(null==t?void 0:t.qp),w=function(t,e,n){return`https://${t}play.eko.com/embed?${n?`id=${n}`:`piid=${e}`}&nocover=true&galleryBlockMode=gallery&eko_pixel=true`}(y,b,r),x=n(null),_=n(null),T=n(!1),[I,E]=i(ee(c||"ekonovar")),[S,A]=i(w+k+I);let N;function M(){R.track("gallery.project.display"),d(),Wt.send("galleryloaded")}return l(f,(()=>({prev:()=>{te(null==_?void 0:_.current,Zt,{action:"onPrevModule"})},next:()=>{te(null==_?void 0:_.current,Zt,{action:"onNextModule"})}}))),s((()=>{T.current?te(null==_?void 0:_.current,Jt,{action:"updateVariant",args:{id:c}}):E(ee(c))}),[c]),s((()=>{te(null==_?void 0:_.current,Zt,{action:"updateActiveModule",args:{activeItemIndex:null==a?void 0:a.index,activeModuleIndex:null==a?void 0:a.step}})}),[a]),s((()=>{function t(t){if((function(t){var e;return"eko.project.blockstart"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)}(t)||function(t){var e,n;return"eko.project.started"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)&&(null==t||null===(n=t.data)||void 0===n||null===(n=n.data)||void 0===n?void 0:n.started)}(t))&&!T.current)return e=t.data.data.blockType,T.current=!0,void("GalleryBlock"===e?te(null==_?void 0:_.current,Zt,{action:"updateActiveModule",args:{activeItemIndex:null==a?void 0:a.index,activeModuleIndex:null==a?void 0:a.step}}):M());var e;if(T.current){if(function(t){var e;return Qt(t)&&"activeModuleChanged"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.name)}(t))return void function(t){const e=t.data.data.data.activeItemIndex,n=t.data.data.data.activeModuleIndex;e===(null==a?void 0:a.index)&&n===(null==a?void 0:a.step)||o({index:e,step:n,source:"carousel"})}(t);(function(t){var e;return Qt(t)&&"activeModuleChangeDone"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.name)})(t)&&!u&&M()}}return N=h||v()?"mobile":"desktop",function(t,e={}){window.addEventListener("message",t,e)}(t),()=>{!function(t,e={}){window.removeEventListener("message",t,e)}(t)}}),[a]),s((()=>{T.current||te(null==_?void 0:_.current,Jt,{action:"queryProjectStarted"})}),[a,u]),s((()=>{T.current=!1}),[t]),s((()=>{A(w+k+I)}),[I]),e.createElement("div",{className:"eko-smart-gallery-container "+(u?"":"eko-project-not-ready"),ref:x,"data-type":"smart-gallery","data-qp":k,"data-variant":c,"data-device":N},e.createElement("iframe",{allow:"autoplay; fullscreen",title:"eko gallery",src:S,style:{border:0},ref:_}))}));ne.propTypes={config:Ct.object.isRequired,instanceId:Ct.string,setActiveItem:Ct.func.isRequired,activeItem:Ct.object.isRequired,variantId:Ct.string,smartGalleryLoaded:Ct.bool,onLoad:Ct.func,forceMobile:Ct.bool},ne.displayName="SmartGallery";const ie=()=>e.createElement("style",{suppressHydrationWarning:!0},'.eko-gallery {\n --accentColorEko: #000;\n --primaryColorEko: #000;\n --backgroundColorEko: #25D7A2;\n --navItemsBackgroundColorEko: transparent;\n --navItemsBannerBackgroundColorEko: #EEEEEE;\n --carouselItemsBackgroundColorEko: transparent;\n --carouselInteractiveCoverBackgroundColorEko: transparent;\n --galleryGapEkoMobile: 12px;\n --galleryGapEkoDesktop: 12px;\n --galleryPaddingEkoMobile: 0;\n --galleryPaddingEkoDesktop: 0;\n --galleryMaxWidthEkoMobile: 100%;\n --galleryMaxWidthEkoDesktop: 900px;\n --galleryTransition: .8s cubic-bezier(.35, 0, 0, 1) 1.5s;\n --navBarPaddingEkoMobile: 0 0 0 20px;\n --navBarPaddingEkoDesktop: 0;\n --navItemsWidthEkoMobile: 80px;\n --navItemsWidthEkoDesktop: 80px;\n --navItemsHeightEkoMobile: 80px;\n --navItemsHeightEkoDesktop: 80px;\n --navItemsGapEkoMobile: 14px;\n --navItemsGapEkoDesktop: 14px;\n --navItemsRadiusEkoMobile: 8px;\n --navItemsRadiusEkoDesktop: 8px;\n --navItemsSelectedMarginEkoMobile: 3px;\n --navItemsSelectedMarginEkoDesktop: 3px;\n --navItemsSelectedThicknessEkoMobile: 3px;\n --navItemsSelectedThicknessEkoDesktop: 3px;\n --navItemsSelectedUnderlineRadiusEkoMobile: 100px;\n --navItemsSelectedUnderlineRadiusEkoDesktop: 100px;\n --navItemsObjectFitEkoMobile: cover;\n --navItemsObjectFitEkoDesktop: cover;\n --navMediaBadgeSizeEkoMobile: 22px;\n --navMediaBadgeSizeEkoDesktop: 22px;\n --navMediaBadgeMarginTopEkoMobile: 4px;\n --navMediaBadgeMarginTopEkoDesktop: 4px;\n --navMediaBadgeMarginRightEkoMobile: 4px;\n --navMediaBadgeMarginRightEkoDesktop: 4px;\n --carouselItemsAspectRatioEkoMobile: 1 / 1;\n --carouselItemsAspectRatioEkoDesktop: 1 / 1;\n --carouselItemsRadiusEkoMobile: 0px;\n --carouselItemsRadiusEkoDesktop: 12px;\n --carouselItemsObjectFitEkoMobile: cover;\n --carouselItemsObjectFitEkoDesktop: cover;\n --navBannerFontSizeEkoMobile: 12px;\n --navBannerFontSizeEkoDesktop: 12px;\n --navBannerFontLineHeightEkoMobile: 120%;\n --navBannerFontLineHeightEkoDesktop: 120%;\n --navBannerFontFamilyEkoMobile: inherit;\n --navBannerFontFamilyEkoDesktop: inherit;\n --navBannerFontWeightEkoMobile: 400;\n --navBannerFontWeightEkoDesktop: 400;\n --outerWidth: 0\n}\n\n.eko-gallery * {\n box-sizing: border-box\n}\n\n.eko-gallery ul,\n.eko-gallery li {\n padding: 0;\n text-indent: 0;\n list-style-type: none;\n font-size: 0;\n margin: 0\n}\n\n.eko-gallery button {\n border: none;\n padding: 0\n}\n\n.eko-gallery .eko-hidden {\n display: none !important\n}\n\n.eko-gallery .eko-not-visible {\n visibility: hidden !important\n}\n\n.eko-hidden-variant {\n display: none !important\n}\n\n.eko-sr-only {\n width: 1px;\n height: 1px;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden\n}\n\n.eko-sticky-top {\n position: sticky;\n top: 0\n}\n\n.eko-gallery .eko-nav {\n height: 100%;\n display: flex;\n align-items: start;\n align-self: start;\n flex-shrink: 0;\n scrollbar-width: none;\n -ms-overflow-style: none\n}\n\n.eko-gallery .eko-nav li {\n font-size: 0;\n position: relative;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n -webkit-box-pack: center;\n cursor: pointer\n}\n\n.eko-gallery .eko-nav li button {\n position: relative;\n background-color: transparent;\n border-radius: 0;\n line-height: 0;\n overflow: hidden;\n cursor: pointer\n}\n\n.eko-gallery .eko-nav li button img {\n background-color: var(--navItemsBackgroundColorEko);\n pointer-events: none\n}\n\n.eko-gallery .eko-nav li button .item-icon {\n position: absolute;\n top: 0;\n right: 0;\n width: 32px;\n height: 32px;\n transform: scale(.25);\n transform-origin: top right\n}\n\n.eko-gallery .eko-nav li button .item-icon span {\n display: block;\n width: 400%;\n height: 400%;\n position: absolute;\n top: 0;\n right: 0;\n background-position: top right;\n background-repeat: no-repeat;\n background-size: contain\n}\n\n.eko-gallery .eko-nav li .addons-container {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n font-size: 10px;\n line-height: 100%\n}\n\n.eko-gallery .eko-nav li .addons-container .thumb-label {\n width: 100%;\n background: var(--navItemsBannerBackgroundColorEko);\n padding: 4px;\n text-align: center;\n text-wrap: balance;\n color: var(--primaryColorEko)\n}\n\n.eko-gallery .eko-nav li .addons-container .step-indicator {\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 5px;\n padding: 6px\n}\n\n.eko-gallery .eko-nav li .addons-container .step-indicator span {\n width: 5px;\n height: 5px;\n border-radius: 100px;\n background: #fff;\n box-shadow: 0 0 3px #00000094\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label {\n position: relative\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .step-indicator {\n position: absolute;\n bottom: 0\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n align-content: center\n}\n\n.eko-gallery .eko-nav::-webkit-scrollbar {\n display: none\n}\n\n.eko-nav-container {\n display: flex\n}\n\n.eko-nav-container:has(.eko-nav.eko-not-visible) .eko-nav-arrow {\n display: none\n}\n\n.eko-nav-container {\n position: relative;\n opacity: 0;\n transition: opacity .15s ease-in\n}\n\n.eko-nav-container .eko-nav-arrow {\n width: 28px;\n height: 28px;\n position: absolute;\n display: none;\n justify-content: center;\n align-items: center;\n border-radius: 28px;\n background-color: #fff;\n box-shadow: 0 0 6px #0000001f;\n z-index: 1;\n bottom: 50%;\n opacity: 1;\n transition: opacity .15s ease-in;\n transform: translateY(50%);\n cursor: pointer\n}\n\n.eko-nav-container .eko-nav-arrow.eko-prev-nav-button svg,\n.eko-nav-container .eko-nav-arrow.eko-next-nav-button svg {\n padding: 1px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-prev-nav-button {\n left: 8px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-next-nav-button {\n right: 8px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-hidden-nav-button {\n opacity: 0;\n pointer-events: none\n}\n\n.eko-gallery .eko-nav {\n gap: var(--navItemsGapEkoMobile);\n padding: var(--navBarPaddingEkoMobile)\n}\n\n.eko-gallery .eko-nav li button img {\n width: var(--navItemsWidthEkoMobile);\n height: var(--navItemsHeightEkoMobile);\n object-fit: var(--navItemsObjectFitEkoMobile)\n}\n\n.eko-gallery .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoMobile);\n font-size: var(--navBannerFontSizeEkoMobile);\n line-height: var(--navBannerFontLineHeightEkoMobile);\n font-weight: var(--navBannerFontWeightEkoMobile)\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoMobile);\n height: var(--navItemsHeightEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li {\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile))\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoMobile);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoMobile);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoMobile) + var(--navItemsSelectedMarginEkoMobile));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoMobile) var(--accentColorEko)\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-nav {\n gap: var(--navItemsGapEkoDesktop);\n padding: var(--navBarPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li button img {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop);\n object-fit: var(--navItemsObjectFitEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoDesktop);\n font-size: var(--navBannerFontSizeEkoDesktop);\n line-height: var(--navBannerFontLineHeightEkoDesktop);\n font-weight: var(--navBannerFontWeightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li {\n border-radius: 0;\n padding: 0;\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop))\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true] {\n box-shadow: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoDesktop);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoDesktop);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoDesktop) var(--accentColorEko)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true]:after {\n content: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container .eko-nav-arrow {\n width: 30px;\n height: 30px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container .eko-nav-arrow.eko-desktop-arrows {\n display: flex\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container:has(.eko-desktop-nav-selected-underline) .eko-nav-arrow.eko-desktop-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop)) / 2))\n }\n}\n\n@media screen and (max-width: 767px) {\n .eko-gallery.eko-liquid-gallery .eko-nav-arrow.eko-mobile-arrows {\n display: flex\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container:has(.eko-mobile-nav-selected-underline) .eko-nav-arrow.eko-mobile-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile)) / 2))\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav {\n gap: var(--navItemsGapEkoDesktop);\n padding: var(--navBarPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li button img {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop);\n object-fit: var(--navItemsObjectFitEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoDesktop);\n font-size: var(--navBannerFontSizeEkoDesktop);\n line-height: var(--navBannerFontLineHeightEkoDesktop);\n font-weight: var(--navBannerFontWeightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li {\n border-radius: 0;\n padding: 0;\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop))\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true] {\n box-shadow: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoDesktop);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoDesktop);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoDesktop) var(--accentColorEko)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true]:after {\n content: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container .eko-nav-arrow {\n width: 30px;\n height: 30px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container .eko-nav-arrow.eko-desktop-arrows {\n display: flex\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container:has(.eko-desktop-nav-selected-underline) .eko-nav-arrow.eko-desktop-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop)) / 2))\n }\n}\n\n@media screen and (max-width: 767px) {\n .eko-gallery.eko-react-gallery.eko-mobile .eko-nav-arrow.eko-mobile-arrows {\n display: flex\n }\n\n .eko-gallery.eko-react-gallery.eko-mobile .eko-nav-container:has(.eko-mobile-nav-selected-underline) .eko-nav-arrow.eko-mobile-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile)) / 2))\n }\n}\n\n.eko-media-badge {\n display: none;\n width: var(--navMediaBadgeSizeEkoMobile);\n height: var(--navMediaBadgeSizeEkoMobile);\n background: #fff;\n align-items: center;\n justify-content: center;\n border-radius: 100%;\n box-shadow: 0 0 4px #00000014;\n place-content: center;\n position: absolute;\n top: var(--navMediaBadgeMarginTopEkoMobile);\n right: var(--navMediaBadgeMarginRightEkoMobile)\n}\n\n.eko-media-badge svg {\n width: 100%;\n height: 100%\n}\n\n.eko-media-badge svg path {\n fill: #000\n}\n\n.eko-nav li .eko-media-badge-mobile {\n display: flex\n}\n\nsvg.interactiveThumb {\n position: absolute;\n top: 3px;\n right: -2.5px;\n width: 100%;\n height: 100%\n}\n\nsvg.interactiveThumb.hand {\n animation: handAnim 2.5s linear infinite\n}\n\nsvg.interactiveThumb.beam {\n animation: beamAnim 2.5s linear infinite;\n transform-origin: 26% 40%;\n top: 0\n}\n\n@keyframes handAnim {\n 0% {\n transform: translateY(0)\n }\n\n 3% {\n transform: translateY(-4px)\n }\n\n 15% {\n transform: translateY(0)\n }\n\n to {\n transform: translateY(0)\n }\n}\n\n@keyframes beamAnim {\n 0% {\n transform: scale(1);\n opacity: 0\n }\n\n 5% {\n transform: scale(1.1);\n opacity: 1\n }\n\n 30% {\n transform: scale(1.4);\n opacity: 0\n }\n\n to {\n transform: scale(1.4);\n opacity: 0\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-media-badge {\n width: var(--navMediaBadgeSizeEkoDesktop);\n height: var(--navMediaBadgeSizeEkoDesktop);\n top: var(--navMediaBadgeMarginTopEkoDesktop);\n right: var(--navMediaBadgeMarginRightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .eko-media-badge-mobile {\n display: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .eko-media-badge-desktop {\n display: flex\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-media-badge {\n width: var(--navMediaBadgeSizeEkoDesktop);\n height: var(--navMediaBadgeSizeEkoDesktop);\n top: var(--navMediaBadgeMarginTopEkoDesktop);\n right: var(--navMediaBadgeMarginRightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .eko-media-badge-mobile {\n display: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .eko-media-badge-desktop {\n display: flex\n }\n}\n\n.eko-loading-animation {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n pointer-events: none\n}\n\n.eko-loading-animation.eko-show-loading-animation .eko-animated-bar {\n opacity: .6\n}\n\n.eko-loading-animation.eko-show-loading-animation .eko-animated-bar .eko-animated-bar-inner {\n animation: eko-loading-bar-inner-animation 2s infinite\n}\n\n.eko-loading-animation.eko-show-loading-text .eko-loading-text {\n opacity: 1\n}\n\n.eko-loading-animation .eko-animated-bar {\n width: 100%;\n height: 4px;\n background-color: #e8e8e8b2;\n opacity: 0;\n transition: opacity .5s;\n position: relative\n}\n\n.eko-loading-animation .eko-animated-bar .eko-animated-bar-inner {\n width: 150px;\n height: 100%;\n transform: translate(-150px);\n background-color: var(--accentColorEko, #4d484b);\n display: block;\n position: absolute\n}\n\n.eko-loading-animation .eko-loading-text {\n position: absolute;\n top: 10px;\n left: 50%;\n transform: translate(-50%);\n color: #656565;\n font-size: 12px;\n font-family: Bogle-Medium, sans-serif;\n font-weight: 500;\n opacity: 0;\n align-items: center;\n display: flex;\n gap: 2px;\n transition: opacity .5s\n}\n\n.eko-loading-animation .eko-loading-text-icon {\n opacity: 60%\n}\n\n.eko-loading-animation .eko-loading-text-icon svg {\n transform: translate(2px, 2px)\n}\n\n.eko-loading-animation .eko-loading-text-icon path {\n fill: var(--accentColorEko, #4d484b)\n}\n\n.eko-loading-animation.eko-hide-icon .eko-loading-text-icon {\n display: none\n}\n\n@keyframes eko-loading-bar-inner-animation {\n 0% {\n left: -350px\n }\n\n to {\n left: calc(100% + 350px)\n }\n}\n\n.eko-smart-loading {\n position: absolute;\n top: 8px;\n left: 50%;\n transform: translate(-50%);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px\n}\n\n.eko-smart-loading div {\n position: relative;\n width: 158px;\n height: 3px;\n background-color: #dcdcdc;\n overflow: hidden;\n opacity: 0;\n animation: eko-smart-loading-show-animation .2s linear forwards 1s\n}\n\n.eko-smart-loading div:after {\n content: "";\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: #878787;\n animation: eko-smart-loading-animation 2.5s ease-in-out infinite\n}\n\n.eko-smart-loading p {\n font-size: 11px;\n line-height: 120%;\n font-weight: 500;\n color: #6b6b6b;\n text-shadow: 0 0 2px white;\n opacity: 0;\n animation: eko-smart-loading-show-animation .2s linear forwards 3s\n}\n\n@keyframes eko-smart-loading-animation {\n 0% {\n transform: translate(-100%)\n }\n\n to {\n transform: translate(100%)\n }\n}\n\n@keyframes eko-smart-loading-show-animation {\n 0% {\n opacity: 0\n }\n\n to {\n opacity: 100%\n }\n}\n\n@media screen and (min-width: 450px) {\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-animated-bar {\n height: 6px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-loading-text {\n font-size: 16px;\n top: 12px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-loading-text-icon {\n transform: rotate(180deg)\n }\n}\n\n@media screen and (min-width: 450px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-animated-bar {\n height: 6px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-loading-text {\n font-size: 16px;\n top: 12px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-loading-text-icon {\n transform: rotate(180deg)\n }\n}\n\n.eko-carousel {\n width: 100%;\n white-space: nowrap;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-snap-type: x mandatory;\n overscroll-behavior-x: contain;\n align-self: start;\n align-items: start;\n display: flex;\n gap: 10px;\n scrollbar-width: none;\n -ms-overflow-style: none\n}\n\n.eko-carousel li {\n width: 100%;\n display: inline-block;\n position: relative;\n align-items: start;\n overflow: hidden;\n scroll-snap-align: center;\n scroll-snap-stop: always;\n flex-shrink: 0\n}\n\n.eko-carousel li img.eko-cover-image {\n position: relative;\n pointer-events: none;\n transition: opacity .5s;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: var(--carouselInteractiveCoverBackgroundColorEko)\n}\n\n.eko-carousel li iframe {\n position: absolute;\n border: none;\n top: 0;\n left: 0\n}\n\n.eko-carousel li img,\n.eko-carousel li video {\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n min-width: 0;\n background-color: var(--carouselItemsBackgroundColorEko)\n}\n\n.eko-carousel li[data-type=videoembed],\n.eko-carousel li[data-type=video] {\n cursor: pointer\n}\n\n.eko-carousel::-webkit-scrollbar {\n display: none\n}\n\n.eko-carousel:has(.zoomed) {\n overflow: hidden\n}\n\n.eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoMobile)\n}\n\n.eko-carousel li img.eko-desktop-cover-image {\n display: none\n}\n\n.eko-carousel li img.eko-mobile-cover-image {\n display: inline\n}\n\n.eko-carousel li img,\n.eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoMobile);\n object-fit: var(--carouselItemsObjectFitEkoMobile)\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-carousel li img,\n .eko-gallery.eko-liquid-gallery .eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop);\n object-fit: var(--carouselItemsObjectFitEkoDesktop)\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li img,\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop);\n object-fit: var(--carouselItemsObjectFitEkoDesktop)\n }\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-nav-container {\n display: none\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-carousel {\n overflow-x: hidden\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-mobile-carousel-scroll {\n overflow-x: auto\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-nav-container {\n display: none\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-carousel {\n overflow-x: hidden\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-carousel.eko-desktop-carousel-scroll {\n overflow-x: auto\n }\n\n .eko-gallery.eko-liquid-gallery.eko-mobile-embed-layout.eko-desktop-nav-layout .eko-nav-container {\n display: flex\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-nav-container {\n display: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-carousel {\n overflow-x: hidden\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-carousel.eko-desktop-carousel-scroll {\n overflow-x: auto\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-mobile-embed-layout.eko-desktop-nav-layout .eko-nav-container {\n display: flex\n }\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-bottom .eko-nav,\n.eko-gallery.eko-desktop-nav-layout.eko-desktop-nav-bottom .eko-nav,\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-top .eko-nav,\n.eko-gallery.eko-desktop-nav-layout.eko-desktop-nav-top .eko-nav {\n flex-direction: row;\n overflow-x: auto;\n overflow-y: hidden;\n max-width: 100%;\n margin: auto\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-bottom {\n flex-direction: column-reverse\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-top {\n flex-direction: column\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-bottom {\n flex-direction: column-reverse\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-top {\n flex-direction: column\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-bottom {\n flex-direction: column-reverse\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-top {\n flex-direction: column\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right {\n flex-direction: row-reverse\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left {\n flex-direction: row\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav {\n display: flex;\n flex-direction: column;\n justify-content: start;\n overflow-x: hidden;\n overflow-y: auto;\n gap: var(--navItemsGapEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container {\n display: flex;\n flex-shrink: 0\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button {\n top: 4px;\n left: auto\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n bottom: 4px\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n right: 50%;\n transform: translate(50%)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg {\n transform: rotate(90deg)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout .eko-carousel {\n align-self: start\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right {\n flex-direction: row-reverse\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left {\n flex-direction: row\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav {\n display: flex;\n flex-direction: column;\n justify-content: start;\n overflow-x: hidden;\n overflow-y: auto;\n gap: var(--navItemsGapEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container {\n display: flex;\n flex-shrink: 0\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button {\n top: 4px;\n left: auto\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n bottom: 4px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n right: 50%;\n transform: translate(50%)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg {\n transform: rotate(90deg)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout .eko-carousel {\n align-self: start\n }\n}\n\n.eko-gallery .eko-introButton {\n cursor: pointer;\n white-space: nowrap;\n pointer-events: auto;\n position: absolute;\n bottom: 100px;\n left: 50%;\n transform: translate(-50%);\n padding: 15px 20px\n}\n\n.eko-gallery .eko-introButton .eko-handContainer {\n display: none\n}\n\n.eko-gallery {\n position: relative;\n overflow: hidden;\n display: flex;\n flex-direction: row;\n justify-content: start;\n margin-inline-start: calc(-1 * var(--outerWidth));\n margin-inline-end: calc(-1 * var(--outerWidth));\n padding: var(--galleryPaddingEkoMobile);\n margin: auto;\n max-width: var(--galleryMaxWidthEkoMobile);\n transition: height var(--galleryTransition, .8s cubic-bezier(.35, 0, 0, 1) 1.5s), padding 0s;\n gap: var(--galleryGapEkoMobile)\n}\n\n.eko-gallery .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoMobile);\n overflow: hidden;\n flex: 1;\n display: flex;\n height: fit-content\n}\n\n.eko-gallery .eko-smart-gallery-container iframe {\n width: 100%;\n aspect-ratio: var(--carouselItemsAspectRatioEkoMobile)\n}\n\n.eko-gallery .eko-smart-gallery-container.eko-project-not-ready {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n opacity: 0;\n pointer-events: none;\n touch-action: none\n}\n\n.eko-gallery .eko-smart-gallery-container.eko-project-not-ready iframe {\n pointer-events: none;\n touch-action: none\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery {\n max-width: var(--galleryMaxWidthEkoDesktop);\n gap: var(--galleryGapEkoDesktop);\n padding: var(--galleryPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-smart-gallery-container iframe {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop)\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop {\n max-width: var(--galleryMaxWidthEkoDesktop);\n gap: var(--galleryGapEkoDesktop);\n padding: var(--galleryPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-smart-gallery-container iframe {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop)\n }\n}'),re=({layout:t,style:n})=>{let i={};return function(t={}){Object.keys(t).forEach((e=>{i[`--${e}Eko`]=t[e]}))}(n),function(t){var e,n;const r=(null==t||null===(e=t.desktop)||void 0===e?void 0:e.config)||{},o=(null==t||null===(n=t.mobile)||void 0===n?void 0:n.config)||{};Object.keys(r).forEach((t=>{"string"==typeof r[t]&&(i[`--${t}EkoDesktop`]=r[t])})),Object.keys(o).forEach((t=>{"string"==typeof o[t]&&(i[`--${t}EkoMobile`]=o[t])}))}(t),e.createElement("style",{key:{layout:t,style:n}},`.eko-gallery {${Object.keys(i).map((t=>`${t}: ${i[t]};`)).join("\n")}}`)};re.propTypes={layout:Ct.object,style:Ct.object},b("experiment");const oe=({activeVariantId:t,activeElementId:e,hasInteractive:i,experiments:r,publishItem:o})=>{const a="gallery",l=n(t),c=n(e),u=n(i),d=n(r),h=n(o);s((()=>{l.current=t,c.current=e,u.current=i,d.current=r,h.current=o}),[t,e,i,r,o]);const f={publishItemPacker:{tag:a,schema:"iglu:com.helloeko/publishitem/jsonschema/1-0-0",match:/.*/,getData:function(){const t=h.current;if(t){const e={};return null!=t&&t.id&&(e.id=t.id),null!=t&&t.productId&&(e.productid=t.productId),t.salesChannelId&&(e.saleschannelid=t.salesChannelId),null!=t&&t.salesChannelName&&(e.saleschannelname=t.salesChannelName),t.salesChannelType&&(e.saleschanneltype=t.salesChannelType),e.id?e:void 0}}},galleryInteractionPacker:{tag:a,schema:"iglu:com.helloeko/gallery_interaction/jsonschema/1-0-0",match:"gallery.interaction",getData:function({elementid:t,interactiontype:e}){return{elementid:String(t),interactiontype:e}}},galleryPacker:{tag:a,schema:"iglu:com.helloeko/gallery/jsonschema/1-0-2",match:/^gallery.*/,getData:function(){var t;return{activeitemid:c.current.toString(),activevariantid:l.current,hasinteractive:u.current,version:(null===(t=window.eko)||void 0===t||null===(t=t.gallery)||void 0===t?void 0:t.version)||""}}},activeVariantIdPacker:{tag:a,schema:"iglu:com.helloeko/variant/jsonschema/1-0-1",match:/.*/,getData:function(){if(l.current)return{id:l.current}}},experimentPacker:{tag:a,schema:"iglu:com.helloeko/experiment/jsonschema/1-0-3",match:/.*/,getData:function(){var t;let e=function(t){let e=null;if(t){const n=Math.floor(Date.now()/1e3);for(const i of t){if("deliverable"!==i.type)return;const t=Math.floor(new Date(i.startDate).getTime()/1e3),r=Math.floor(new Date(i.endDate).getTime()/1e3);!0===i.active&&n>t&&n<r&&(e=i)}}return e}(d.current);if(!e)return;let n={experimentid:e.id||"",experimentvariant:e.chosen||"pending decision",experimenttype:e.type||""},i=null===(t=e.targetDevice)||void 0===t?void 0:t.toLowerCase();return"mobile"!==i&&"notmobile"!==i||(n.experimenttargeting={device:i}),n}}};return s((()=>(Object.values(f).forEach((t=>{window.EkoAnalytics("registerContextPacker",t)})),()=>{window.EkoAnalytics("reset",a)})),[]),null};oe.propTypes={activeVariantId:Ct.string,activeElementId:Ct.number,hasInteractive:Ct.bool,experiments:Ct.array,publishItem:Ct.object};const se=({variantId:t,activeItem:i,hasInteractive:r,activeIndex:o,experiments:a,publishItem:l})=>{const c=n(!0);return s((()=>{c.current||t&&R.track("gallery.variant.change")}),[t]),s((()=>{c.current||R.track("gallery.element.change",{activeIndex:o})}),[o]),s((()=>{c.current||i&&null!=l&&l.id&&R.track("gallery.asset.view",{publishitemid:l.id,type:i.type,name:i.name})}),[i]),s((()=>{c.current=!1}),[]),e.createElement(oe,{activeVariantId:t||"ekonovar",activeElementId:o,hasInteractive:r,experiments:a,publishItem:l})};se.propTypes={variantId:Ct.string,activeItem:Ct.object,hasInteractive:Ct.bool,activeIndex:Ct.number,experiments:Ct.array,publishItem:Ct.object};const ae="eko-gallery-react";function le(t,e){var n,i,r;const o=(null==t||null===(n=t.variantMap)||void 0===n?void 0:n[e])||"ekonovar";return(null==t||null===(i=t.items)||void 0===i?void 0:i.find((t=>(null==t?void 0:t.variantId)===o)))||(null==t||null===(r=t.items)||void 0===r?void 0:r[0])}"undefined"!=typeof window&&(window.EkoAnalytics||(console.log("EkoAnalytics is not defined, initializing a no-op function..."),window.EkoAnalytics=()=>{}));const ce=a((({className:t,config:r,instanceId:o,variantId:a,activeItem:l={index:0,step:0},onEvent:c,forceMobile:u},d)=>{var h,f,p,m,v,g;const y=null!==(h=null===(f=r.options)||void 0===f?void 0:f.loadingTimeout)&&void 0!==h?h:12,b=null===(p=null===(m=r.options)||void 0===m?void 0:m.showCoverLoadAnimation)||void 0===p||p,[k,w]=i(le(r,a)),[x,_]=i({index:l.index,step:l.step,source:"external-nav"}),[T,I]=i(!1),[E,S]=i(!1),[A,N]=i("eko-desktop"),M=n(!1),F=n(!1),O=n(l),C=n(null),P=n(a);function D(){const t=u||window.innerWidth<768?"eko-mobile":"eko-desktop";N(t)}return F.current||(Wt.send("galleryinit"),F.current=!0),s((()=>{const t=P.current!==a;P.current=a,w(le(r,a)),t&&!M.current&&_({index:0,step:0,source:"external-nav"})}),[r,a]),s((()=>{if(c)return Wt.subscribe(c),()=>{Wt.unsubscribe()}}),[c]),s((()=>{M.current=E}),[E]),s((()=>{I(!1),S(!1);const t=setTimeout((()=>{M.current||(I(!0),R.track("gallery.load.timeout"))}),1e3*y);return()=>{clearTimeout(t)}}),[r]),s((()=>{D()}),[u]),s((()=>(window.addEventListener("resize",D),D(),()=>{window.removeEventListener("resize",D)})),[u]),s((()=>(window.EkoAnalytics("trackElementVisibility",C.current,ae),()=>{window.EkoAnalytics("stopTrackingElementVisibility",ae)})),[]),s((()=>{!("carousel"===(null==x?void 0:x.source)||"nav"===(null==x?void 0:x.source))||(null==x?void 0:x.index)===l.index&&(null==x?void 0:x.step)===l.step||Wt.send("activeitemchanged",{index:null==x?void 0:x.index,step:null==x?void 0:x.step})}),[x,l]),s((()=>{O.current.index===l.index&&O.current.step===l.step||(O.current=l,_({index:l.index,step:l.step,source:"external-nav"}))}),[l]),e.createElement(e.Fragment,null,e.createElement(ie,null),e.createElement(re,{layout:r.layout,style:r.style,forceMobile:u}),e.createElement(se,{variantId:a,activeItem:null==k||null===(v=k.items)||void 0===v?void 0:v[x.index],activeIndex:x.index,hasInteractive:E,experiments:r.experiments,publishItem:null==r||null===(g=r.__autoGenerated)||void 0===g?void 0:g.publishItem}),e.createElement("section",{className:`${`eko-gallery eko-react-gallery ${function(t){let e="";return["mobile","desktop"].forEach((n=>{var i,r;const o=null!==(i=null==t||null===(r=t[n])||void 0===r?void 0:r.type)&&void 0!==i?i:"nav";if(e+=`eko-${n}-${o}-layout `,"nav"===o){var s;const i="desktop"===n,r=(null==t||null===(s=t[n])||void 0===s||null===(s=s.config)||void 0===s?void 0:s.orientation)||(i?"left":"bottom");e+=`eko-${n}-nav-${r} `}})),e}(r.layout)} ${null!=t?t:""}`.trim()} ${A}`,"aria-controls":"main-content",ref:C},e.createElement(qt,{items:(null==k?void 0:k.items)||[],setActiveIndex:_,activeIndex:x.index,layout:r.layout,carouselMounted:E,forceMobile:u}),!E&&e.createElement(Yt,{ref:d,items:(null==k?void 0:k.items)||[],setActiveIndex:_,activeIndex:{index:x.index,source:null==x?void 0:x.source},showSmartLoaders:!T&&b}),!T&&e.createElement(ne,{ref:d,config:r,instanceId:o,activeItem:x,setActiveItem:_,variantId:null==k?void 0:k.variantId,smartGalleryLoaded:E,forceMobile:u,onLoad:function(){S(!0)}})))}));ce.propTypes={className:Ct.string,config:Ct.object.isRequired,instanceId:Ct.string,variantId:Ct.string,activeItem:Ct.object,onEvent:Ct.func,forceMobile:Ct.bool,onPrev:Ct.func,onNext:Ct.func},ce.displayName="EkoGallery";var ue=c(ce);const de=b("gallery-react");const he=a(((t,n)=>{var i;s((()=>(de.setDataStorage("gallery-react",{config:t.config}),window.eko=window.eko||{},window.eko.config=t.config,window.eko.gallery={version:"devops/4.0.13"},()=>{window.eko.config=void 0})),[t.config]);const{children:r,...o}=t;return void 0!==t.config?e.createElement(ue,q({ref:n},o,{key:null===(i=t.config.__autoGenerated)||void 0===i||null===(i=i.publishItem)||void 0===i?void 0:i.id})):r}));he.propTypes={className:Ct.string,config:Ct.object,variantId:Ct.string,onEvent:Ct.func,instanceId:Ct.string,children:Ct.node},he.displayName="EkoGalleryWrapper";var fe,pe,me,ve,ge,ye,be,ke,we,xe,_e,Te,Ie,Ee,Se,Ae,Ne,Me,Fe,Oe,Ce,Pe,De,Re,Le,Be,ze,We,je,Ue,$e,qe,Ve,Ge,He,Ke,Xe,Ye,Qe,Je,Ze,tn,en,nn,rn,on,sn,an,ln,cn,un,dn=c(he);const hn=1,fn=2,pn=4,mn=8,vn=16,gn=1,yn=4,bn=8,kn=16,wn="[",xn="[!",_n="]",Tn={},In=Symbol(),En=Symbol("filename"),Sn="http://www.w3.org/1999/xhtml",An="@attach",Nn=!0;var Mn=Array.isArray,Fn=Array.prototype.indexOf,On=Array.from,Cn=Object.defineProperty,Pn=Object.getOwnPropertyDescriptor,Dn=Object.getOwnPropertyDescriptors,Rn=Object.prototype,Ln=Array.prototype,Bn=Object.getPrototypeOf,zn=Object.isExtensible;function Wn(){var t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}}const jn=2,Un=4,$n=8,qn=1<<24,Vn=16,Gn=32,Hn=64,Kn=128,Xn=512,Yn=1024,Qn=2048,Jn=4096,Zn=8192,ti=16384,ei=32768,ni=65536,ii=1<<17,ri=1<<18,oi=1<<19,si=1<<20,ai=1<<25,li=32768,ci=1<<21,ui=1<<22,di=1<<23,hi=Symbol("$state"),fi=Symbol("legacy props"),pi=Symbol(""),mi=Symbol("proxy path"),vi=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},gi=3,yi=8;function bi(t){{const e=new Error(`lifecycle_outside_component\n\`${t}(...)\` can only be used during component initialisation\nhttps://svelte.dev/e/lifecycle_outside_component`);throw e.name="Svelte error",e}}var ki="font-weight: bold",wi="font-weight: normal";function xi(t){console.warn("%c[svelte] hydration_mismatch\n%cHydration failed because the initial UI does not match what was rendered on the server\nhttps://svelte.dev/e/hydration_mismatch",ki,wi)}function _i(t){console.warn(`%c[svelte] state_proxy_equality_mismatch\n%cReactive \`$state(...)\` proxies and the values they proxy have different identities. Because of this, comparisons with \`${t}\` will produce unexpected results\nhttps://svelte.dev/e/state_proxy_equality_mismatch`,ki,wi)}let Ti,Ii=!1;function Ei(t){Ii=t}function Si(t){if(null===t)throw xi(),Tn;return Ti=t}function Ai(){return Si($o(Ti))}function Ni(t){if(Ii){if(null!==$o(Ti))throw xi(),Tn;Ti=t}}function Mi(t=!0){for(var e=0,n=Ti;;){if(n.nodeType===yi){var i=n.data;if(i===_n){if(0===e)return n;e-=1}else i!==wn&&i!==xn||(e+=1)}var r=$o(n);t&&n.remove(),n=r}}function Fi(t){if(!t||t.nodeType!==yi)throw xi(),Tn;return t.data}function Oi(t){return t===this.v}function Ci(t){return e=t,n=this.v,!(e!=e?n==n:e!==n||null!==e&&"object"==typeof e||"function"==typeof e);var e,n}let Pi=!1;function Di(t,e){return t.label=e,Ri(t.v,e),t}function Ri(t,e){var n;return null==t||null===(n=t[mi])||void 0===n||n.call(t,e),t}function Li(t){const e=new Error,n=function(){const t=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const e=(new Error).stack;if(Error.stackTraceLimit=t,!e)return[];const n=e.split("\n"),i=[];for(let t=0;t<n.length;t++){const e=n[t],r=e.replaceAll("\\","/");if("Error"!==e.trim()){if(e.includes("validate_each_keys"))return[];r.includes("svelte/src/internal")||r.includes("node_modules/.vite")||i.push(e)}}return i}();return 0===n.length?null:(n.unshift("\n"),Cn(e,"stack",{value:n.join("\n")}),Cn(e,"name",{value:t}),e)}let Bi=null;function zi(t){Bi=t}let Wi=null;function ji(t){Wi=t}let Ui=null;function $i(t){Ui=t}function qi(t){return Hi("getContext").get(t)}function Vi(t,e=!1,n){Bi={p:Bi,i:!1,c:null,e:null,s:t,x:null,l:null},Bi.function=n,Ui=n}function Gi(t){var e,n,i=Bi,r=i.e;if(null!==r)for(var o of(i.e=null,r))ns(o);return i.i=!0,Bi=i.p,Ui=null!==(e=null===(n=Bi)||void 0===n?void 0:n.function)&&void 0!==e?e:null,{}}function Hi(t){var e,n;return null===Bi&&bi(t),null!==(n=(e=Bi).c)&&void 0!==n?n:e.c=new Map(function(t){let e=t.p;for(;null!==e;){const t=e.c;if(null!==t)return t;e=e.p}return null}(Bi)||void 0)}let Ki=[];function Xi(){var t=Ki;Ki=[],function(t){for(var e=0;e<t.length;e++)t[e]()}(t)}function Yi(t){if(0===Ki.length&&!fr){var e=Ki;queueMicrotask((()=>{e===Ki&&Xi()}))}Ki.push(t)}function Qi(){for(;Ki.length>0;)Xi()}const Ji=new WeakMap;function Zi(t){var e=Is;if(null===e)return xs.f|=di,t;if(t instanceof Error&&!Ji.has(t)&&Ji.set(t,function(t,e){var n,i;const r=Pn(t,"message");if(r&&!r.configurable)return;var o=Lo?" ":"\t",s=`\n${o}in ${(null===(n=e.fn)||void 0===n?void 0:n.name)||"<unknown>"}`,a=e.ctx;for(;null!==a;){var l;s+=`\n${o}in ${null===(l=a.function)||void 0===l?void 0:l[En].split("/").pop()}`,a=a.p}return{message:t.message+`\n${s}\n`,stack:null===(i=t.stack)||void 0===i?void 0:i.split("\n").filter((t=>!t.includes("svelte/src/internal"))).join("\n")}}(t,e)),e.f&ei)tr(t,e);else{if(!(e.f&Kn))throw!e.parent&&t instanceof Error&&er(t),t;e.b.error(t)}}function tr(t,e){for(;null!==e;){if(e.f&Kn)try{return void e.b.error(t)}catch(e){t=e}e=e.parent}throw t instanceof Error&&er(t),t}function er(t){const e=Ji.get(t);e&&(Cn(t,"message",{value:e.message}),Cn(t,"stack",{value:e.stack}))}const nr=-7169;function ir(t,e){t.f=t.f&nr|e}function rr(t){t.f&Xn||null===t.deps?ir(t,Yn):ir(t,Jn)}function or(t){if(null!==t)for(const e of t)e.f&jn&&e.f&li&&(e.f^=li,or(e.deps))}function sr(t,e,n){t.f&Qn?e.add(t):t.f&Jn&&n.add(t),or(t.deps),ir(t,Yn)}const ar=new Set;let lr=null,cr=null,ur=[],dr=null,hr=!1,fr=!1;var pr=new WeakMap,mr=new WeakMap,vr=new WeakMap,gr=new WeakMap,yr=new WeakMap,br=new WeakMap,kr=new WeakMap,wr=new WeakSet;class xr{constructor(){U(this,wr),$(this,"committed",!1),$(this,"current",new Map),$(this,"previous",new Map),W(this,pr,new Set),W(this,mr,new Set),W(this,vr,0),W(this,gr,0),W(this,yr,null),W(this,br,new Set),W(this,kr,new Set),$(this,"skipped_effects",new Set),$(this,"is_fork",!1)}is_deferred(){return this.is_fork||z(gr,this)>0}process(t){ur=[],this.apply();var e,n=[],i=[];for(const e of t)L(wr,this,_r).call(this,e,n,i);(this.is_fork||L(wr,this,Ir).call(this),this.is_deferred())?(L(wr,this,Tr).call(this,i),L(wr,this,Tr).call(this,n)):(lr=null,Mr(i),Mr(n),null===(e=z(yr,this))||void 0===e||e.resolve());cr=null}capture(t,e){var n;(e===In||this.previous.has(t)||this.previous.set(t,e),t.f&di)||(this.current.set(t,t.v),null===(n=cr)||void 0===n||n.set(t,t.v))}activate(){lr=this,this.apply()}deactivate(){lr===this&&(lr=null,cr=null)}flush(){if(this.activate(),ur.length>0){if(Sr(),null!==lr&&lr!==this)return}else 0===z(vr,this)&&this.process([]);this.deactivate()}discard(){for(const t of z(mr,this))t(this);z(mr,this).clear()}increment(t){j(vr,this,z(vr,this)+1),t&&j(gr,this,z(gr,this)+1)}decrement(t){j(vr,this,z(vr,this)-1),t&&j(gr,this,z(gr,this)-1),this.revive()}revive(){for(const t of z(br,this))z(kr,this).delete(t),ir(t,Qn),Cr(t);for(const t of z(kr,this))ir(t,Jn),Cr(t);this.flush()}oncommit(t){z(pr,this).add(t)}ondiscard(t){z(mr,this).add(t)}settled(){var t;return(null!==(t=z(yr,this))&&void 0!==t?t:j(yr,this,Wn())).promise}static ensure(){if(null===lr){const t=lr=new xr;ar.add(lr),fr||xr.enqueue((()=>{lr===t&&t.flush()}))}return lr}static enqueue(t){Yi(t)}apply(){}}function _r(t,e,n){t.f^=Yn;for(var i=t.first,r=null;null!==i;){var o=i.f,s=!!(o&(Gn|Hn));if(!(s&&!!(o&Yn)||!!(o&Zn)||this.skipped_effects.has(i))&&null!==i.fn){s?i.f^=Yn:null!==r&&o&(Un|$n|qn)?r.b.defer_effect(i):o&Un?e.push(i):Ls(i)&&(o&Vn&&z(br,this).add(i),Us(i));var a=i.first;if(null!==a){i=a;continue}}var l=i.parent;for(i=i.next;null===i&&null!==l;)l===r&&(r=null),i=l.next,l=l.parent}}function Tr(t){for(var e=0;e<t.length;e+=1)sr(t[e],z(br,this),z(kr,this))}function Ir(){if(0===z(gr,this)){for(const t of z(pr,this))t();z(pr,this).clear()}0===z(vr,this)&&L(wr,this,Er).call(this)}function Er(){if(ar.size>1){this.previous.clear();var t=cr,e=!0;for(const t of ar){if(t===this){e=!1;continue}const i=[];for(const[n,r]of this.current){if(t.current.has(n)){if(!e||r===t.current.get(n))continue;t.current.set(n,r)}i.push(n)}if(0===i.length)continue;const r=[...t.current.keys()].filter((t=>!this.current.has(t)));if(r.length>0){var n=ur;ur=[];const e=new Set,o=new Map;for(const t of i)Fr(t,r,e,o);if(ur.length>0){lr=t,t.apply();for(const e of ur)L(wr,t,_r).call(t,e,[],[]);t.deactivate()}ur=n}}lr=null,cr=t}this.committed=!0,ar.delete(this)}function Sr(){var t=ys;hr=!0;var e=new Set;try{var n=0;for(bs(!0);ur.length>0;){var i=xr.ensure();if(n++>1e3){if(Nn){var r=new Map;for(const t of i.current.keys())for(const[e,n]of null!==(o=t.updated)&&void 0!==o?o:[]){var o,s=r.get(e);s||(s={error:n.error,count:0},r.set(e,s)),s.count+=n.count}for(const t of r.values())t.error&&console.error(t.error)}Ar()}if(i.process(ur),bo.clear(),Nn)for(const t of i.current.keys())e.add(t)}}finally{hr=!1,bs(t),dr=null;for(const t of e)t.updated=null}}function Ar(){try{!function(){{const t=new Error("effect_update_depth_exceeded\nMaximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state\nhttps://svelte.dev/e/effect_update_depth_exceeded");throw t.name="Svelte error",t}}()}catch(t){Cn(t,"stack",{value:""}),tr(t,dr)}}let Nr=null;function Mr(t){var e=t.length;if(0!==e){for(var n=0;n<e;){var i,r=t[n++];if(!(r.f&(ti|Zn))&&Ls(r))if(Nr=new Set,Us(r),null===r.deps&&null===r.first&&null===r.nodes&&(null===r.teardown&&null===r.ac?hs(r):r.fn=null),(null===(i=Nr)||void 0===i?void 0:i.size)>0){bo.clear();for(const t of Nr){if(t.f&(ti|Zn))continue;const e=[t];let n=t.parent;for(;null!==n;)Nr.has(n)&&(Nr.delete(n),e.push(n)),n=n.parent;for(let t=e.length-1;t>=0;t--){const n=e[t];n.f&(ti|Zn)||Us(n)}}Nr.clear()}}Nr=null}}function Fr(t,e,n,i){if(!n.has(t)&&(n.add(t),null!==t.reactions))for(const r of t.reactions){const t=r.f;t&jn?Fr(r,e,n,i):t&(ui|Vn)&&!(t&Qn)&&Or(r,e,i)&&(ir(r,Qn),Cr(r))}}function Or(t,e,n){const i=n.get(t);if(void 0!==i)return i;if(null!==t.deps)for(const i of t.deps){if(e.includes(i))return!0;if(i.f&jn&&Or(i,e,n))return n.set(i,!0),!0}return n.set(t,!1),!1}function Cr(t){for(var e=dr=t;null!==e.parent;){var n=(e=e.parent).f;if(hr&&e===Is&&n&Vn&&!(n&ri))return;if(n&(Hn|Gn)){if(!(n&Yn))return;e.f^=Yn}}ur.push(e)}var Pr=ni|oi|Kn;var Dr=new WeakMap,Rr=new WeakMap,Lr=new WeakMap,Br=new WeakMap,zr=new WeakMap,Wr=new WeakMap,jr=new WeakMap,Ur=new WeakMap,$r=new WeakMap,qr=new WeakMap,Vr=new WeakMap,Gr=new WeakMap,Hr=new WeakMap,Kr=new WeakMap,Xr=new WeakMap,Yr=new WeakMap,Qr=new WeakMap,Jr=new WeakSet;class Zr{constructor(t,e,n){U(this,Jr),$(this,"parent",void 0),$(this,"is_pending",!1),W(this,Dr,void 0),W(this,Rr,Ii?Ti:null),W(this,Lr,void 0),W(this,Br,void 0),W(this,zr,void 0),W(this,Wr,null),W(this,jr,null),W(this,Ur,null),W(this,$r,null),W(this,qr,null),W(this,Vr,0),W(this,Gr,0),W(this,Hr,!1),W(this,Kr,new Set),W(this,Xr,new Set),W(this,Yr,null),W(this,Qr,function(t){let e,n=0,i=xo(0);return Di(i,"createSubscriber version"),()=>{Zo()&&(qs(i),rs((()=>(0===n&&(e=Hs((()=>t((()=>Ao(i)))))),n+=1,()=>{Yi((()=>{var t;n-=1,0===n&&(null===(t=e)||void 0===t||t(),e=void 0,Ao(i))}))}))))}}((()=>(j(Yr,this,xo(z(Vr,this))),Di(z(Yr,this),"$effect.pending()"),()=>{j(Yr,this,null)})))),j(Dr,this,t),j(Lr,this,e),j(Br,this,n),this.parent=Is.b,this.is_pending=!!z(Lr,this).pending,j(zr,this,ss((()=>{if(Is.b=this,Ii){const t=z(Rr,this);Ai();t.nodeType===yi&&t.data===xn?L(Jr,this,eo).call(this):(L(Jr,this,to).call(this),0===z(Gr,this)&&(this.is_pending=!1))}else{var t=L(Jr,this,no).call(this);try{j(Wr,this,ls((()=>n(t))))}catch(t){this.error(t)}z(Gr,this)>0?L(Jr,this,ro).call(this):this.is_pending=!1}return()=>{var t;null===(t=z(qr,this))||void 0===t||t.remove()}}),Pr)),Ii&&j(Dr,this,Ti)}defer_effect(t){sr(t,z(Kr,this),z(Xr,this))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!z(Lr,this).pending}update_pending_count(t){L(Jr,this,oo).call(this,t),j(Vr,this,z(Vr,this)+t),z(Yr,this)&&Eo(z(Yr,this),z(Vr,this))}get_effect_pending(){return z(Qr,this).call(this),qs(z(Yr,this))}error(t){var e=z(Lr,this).onerror;let n=z(Lr,this).failed;if(z(Hr,this)||!e&&!n)throw t;z(Wr,this)&&(ds(z(Wr,this)),j(Wr,this,null)),z(jr,this)&&(ds(z(jr,this)),j(jr,this,null)),z(Ur,this)&&(ds(z(Ur,this)),j(Ur,this,null)),Ii&&(Si(z(Rr,this)),function(t=1){if(Ii){for(var e=t,n=Ti;e--;)n=$o(n);Ti=n}}(),Si(Mi()));var i=!1,r=!1;const o=()=>{i?console.warn("%c[svelte] svelte_boundary_reset_noop\n%cA `<svelte:boundary>` `reset` function only resets the boundary the first time it is called\nhttps://svelte.dev/e/svelte_boundary_reset_noop",ki,wi):(i=!0,r&&function(){{const t=new Error("svelte_boundary_reset_onerror\nA `<svelte:boundary>` `reset` function cannot be called while an error is still being handled\nhttps://svelte.dev/e/svelte_boundary_reset_onerror");throw t.name="Svelte error",t}}(),xr.ensure(),j(Vr,this,0),null!==z(Ur,this)&&fs(z(Ur,this),(()=>{j(Ur,this,null)})),this.is_pending=this.has_pending_snippet(),j(Wr,this,L(Jr,this,io).call(this,(()=>(j(Hr,this,!1),ls((()=>z(Br,this).call(this,z(Dr,this)))))))),z(Gr,this)>0?L(Jr,this,ro).call(this):this.is_pending=!1)};var s=xs;try{Ts(null),r=!0,null==e||e(t,o),r=!1}catch(t){tr(t,z(zr,this)&&z(zr,this).parent)}finally{Ts(s)}n&&Yi((()=>{j(Ur,this,L(Jr,this,io).call(this,(()=>{xr.ensure(),j(Hr,this,!0);try{return ls((()=>{n(z(Dr,this),(()=>t),(()=>o))}))}catch(t){return tr(t,z(zr,this).parent),null}finally{j(Hr,this,!1)}})))}))}}function to(){try{j(Wr,this,ls((()=>z(Br,this).call(this,z(Dr,this)))))}catch(t){this.error(t)}}function eo(){const t=z(Lr,this).pending;t&&(j(jr,this,ls((()=>t(z(Dr,this))))),xr.enqueue((()=>{var t=L(Jr,this,no).call(this);j(Wr,this,L(Jr,this,io).call(this,(()=>(xr.ensure(),ls((()=>z(Br,this).call(this,t))))))),z(Gr,this)>0?L(Jr,this,ro).call(this):(fs(z(jr,this),(()=>{j(jr,this,null)})),this.is_pending=!1)})))}function no(){var t=z(Dr,this);return this.is_pending&&(j(qr,this,jo()),z(Dr,this).before(z(qr,this)),t=z(qr,this)),t}function io(t){var e=Is,n=xs,i=Bi;Es(z(zr,this)),Ts(z(zr,this)),zi(z(zr,this).ctx);try{return t()}catch(t){return Zi(t),null}finally{Es(e),Ts(n),zi(i)}}function ro(){const t=z(Lr,this).pending;null!==z(Wr,this)&&(j($r,this,document.createDocumentFragment()),z($r,this).append(z(qr,this)),gs(z(Wr,this),z($r,this))),null===z(jr,this)&&j(jr,this,ls((()=>t(z(Dr,this)))))}function oo(t){var e;if(this.has_pending_snippet()){if(j(Gr,this,z(Gr,this)+t),0===z(Gr,this)){this.is_pending=!1;for(const t of z(Kr,this))ir(t,Qn),Cr(t);for(const t of z(Xr,this))ir(t,Jn),Cr(t);z(Kr,this).clear(),z(Xr,this).clear(),z(jr,this)&&fs(z(jr,this),(()=>{j(jr,this,null)})),z($r,this)&&(z(Dr,this).before(z($r,this)),j($r,this,null))}}else this.parent&&L(Jr,e=this.parent,oo).call(e,t)}function so(t,e,n,i){const r=co;if(0!==n.length||0!==t.length){var o,s,a,l,c,u=lr,d=Is,h=(o=Is,s=xs,a=Bi,l=lr,c=Wi,function(t=!0){Es(o),Ts(s),zi(a),t&&(null==l||l.activate()),ji(c)});t.length>0?Promise.all(t).then((()=>{h();try{return f()}finally{null==u||u.deactivate(),ao()}})):f()}else i(e.map(r));function f(){Promise.all(n.map((t=>uo(t)))).then((t=>{h();try{i([...e.map(r),...t])}catch(t){d.f&ti||tr(t,d)}null==u||u.deactivate(),ao()})).catch((t=>{tr(t,d)}))}}function ao(){Es(null),Ts(null),zi(null),ji(null)}const lo=new Set;function co(t){var e=jn|Qn,n=null!==xs&&xs.f&jn?xs:null;null!==Is&&(Is.f|=oi);return{ctx:Bi,deps:null,effects:null,equals:Oi,f:e,fn:t,reactions:null,rv:0,v:In,wv:0,parent:null!=n?n:Is,ac:null}}function uo(t,e,n){let i=Is;null===i&&function(){{const t=new Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throw t.name="Svelte error",t}}();var r=i.b,o=void 0,s=xo(In);s.label=e;var a=!xs,l=new Map;return function(t){Jo(ui|oi,t,!0)}((()=>{var e=Wn();o=e.promise;try{Promise.resolve(t()).then(e.resolve,e.reject).then((()=>{n===lr&&n.committed&&n.deactivate(),ao()}))}catch(t){e.reject(t),ao()}var n=lr;if(a){var i,c=r.is_rendered();r.update_pending_count(1),n.increment(c),null===(i=l.get(n))||void 0===i||i.reject(vi),l.delete(n),l.set(n,e)}const u=(t,e=void 0)=>{if(n.activate(),e)e!==vi&&(s.f|=di,Eo(s,e));else{s.f&di&&(s.f^=di),Eo(s,t);for(const[t,e]of l){if(l.delete(t),t===n)break;e.reject(vi)}}a&&(r.update_pending_count(-1),n.decrement(c))};e.promise.then(u,(t=>u(null,t||"unknown")))})),ts((()=>{for(const t of l.values())t.reject(vi)})),s.f|=ui,new Promise((t=>{!function e(n){function i(){n===o?t(s):e(o)}n.then(i,i)}(o)}))}function ho(t){const e=co(t);return As(e),e}function fo(t){const e=co(t);return e.equals=Ci,e}function po(t){var e=t.effects;if(null!==e){t.effects=null;for(var n=0;n<e.length;n+=1)ds(e[n])}}let mo=[];function vo(t){var e,n=Is;Es(function(t){for(var e=t.parent;null!==e;){if(!(e.f&jn))return e.f&ti?null:e;e=e.parent}return null}(t));{let i=yo;ko(new Set);try{mo.includes(t)&&function(){{const t=new Error("derived_references_self\nA derived value cannot reference itself recursively\nhttps://svelte.dev/e/derived_references_self");throw t.name="Svelte error",t}}(),mo.push(t),t.f&=~li,po(t),e=zs(t)}finally{Es(n),ko(i),mo.pop()}}return e}function go(t){var e,n,i=vo(t);if(!t.equals(i)&&(t.wv=Rs(),(null===(e=lr)||void 0===e||!e.is_fork||null===t.deps)&&(t.v=i,null===t.deps)))return void ir(t,Yn);ks||(null!==cr?(Zo()||null!==(n=lr)&&void 0!==n&&n.is_fork)&&cr.set(t,i):rr(t))}let yo=new Set;const bo=new Map;function ko(t){yo=t}let wo=!1;function xo(t,e){return{f:0,v:t,reactions:null,equals:Oi,rv:0,wv:0}}function _o(t,e){const n=xo(t);return As(n),n}function To(t,e=!1,n=!0){const i=xo(t);return e||(i.equals=Ci),i}function Io(t,e,n=!1){var i;null!==xs&&(!_s||xs.f&ii)&&xs.f&(jn|Vn|ui|ii)&&(null===(i=Ss)||void 0===i||!i.includes(t))&&function(){{const t=new Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw t.name="Svelte error",t}}();let r=n?Fo(e):e;return Ri(r,t.label),Eo(t,r)}function Eo(t,e){if(!t.equals(e)){var n=t.v;ks?bo.set(t,e):bo.set(t,n),t.v=e;var i=xr.ensure();if(i.capture(t,n),null!==Is){var r,o,s;null!==(r=t.updated)&&void 0!==r||(t.updated=new Map);const e=(null!==(o=null===(s=t.updated.get(""))||void 0===s?void 0:s.count)&&void 0!==o?o:0)+1;if(t.updated.set("",{error:null,count:e}),e>5){const e=Li("updated at");if(null!==e){let n=t.updated.get(e.stack);n||(n={error:e,count:0},t.updated.set(e.stack,n)),n.count++}}}if(null!==Is&&(t.set_during_effect=!0),t.f&jn){const e=t;t.f&Qn&&vo(e),rr(e)}t.wv=Rs(),No(t,Qn),null!==Is&&Is.f&Yn&&!(Is.f&(Gn|Hn))&&(null===Fs?function(t){Fs=t}([t]):Fs.push(t)),!i.is_fork&&yo.size>0&&!wo&&So()}return e}function So(){wo=!1;var t=ys;bs(!0);const e=Array.from(yo);try{for(const t of e)t.f&Yn&&ir(t,Jn),Ls(t)&&Us(t)}finally{bs(t)}yo.clear()}function Ao(t){Io(t,t.v+1)}function No(t,e){var n=t.reactions;if(null!==n)for(var i=n.length,r=0;r<i;r++){var o=n[r],s=o.f;if(s&ii)yo.add(o);else{var a=!(s&Qn);if(a&&ir(o,e),s&jn){var l,c=o;null===(l=cr)||void 0===l||l.delete(c),s&li||(s&Xn&&(o.f|=li),No(c,Jn))}else a&&(s&Vn&&null!==Nr&&Nr.add(o),Cr(o))}}}const Mo=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function Fo(t){if("object"!=typeof t||null===t||hi in t)return t;const e=Bn(t);if(e!==Rn&&e!==Ln)return t;var n=new Map,i=Mn(t),r=_o(0),o=Ps,s=t=>{if(Ps===o)return t();var e=xs,n=Ps;Ts(null),Ds(o);var i=t();return Ts(e),Ds(n),i};i&&(n.set("length",_o(t.length)),t=new Proxy(t,{get(t,e,n){var i=Reflect.get(t,e,n);return Po.has(e)?function(...t){wo=!0;var e=i.apply(this,t);return So(),e}:i}}));var a="";let l=!1;function c(t){if(!l){l=!0,Di(r,`${a=t} version`);for(const[t,e]of n)Di(e,Oo(a,t));l=!1}}return new Proxy(t,{defineProperty(t,e,i){"value"in i&&!1!==i.configurable&&!1!==i.enumerable&&!1!==i.writable||function(){{const t=new Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw t.name="Svelte error",t}}();var r=n.get(e);return void 0===r?r=s((()=>{var t=_o(i.value);return n.set(e,t),"string"==typeof e&&Di(t,Oo(a,e)),t})):Io(r,i.value,!0),!0},deleteProperty(t,e){var i=n.get(e);if(void 0===i){if(e in t){const t=s((()=>_o(In)));n.set(e,t),Ao(r),Di(t,Oo(a,e))}}else Io(i,In),Ao(r);return!0},get(e,i,r){var o;if(i===hi)return t;if(i===mi)return c;var l=n.get(i),u=i in e;if(void 0===l&&(!u||null!==(o=Pn(e,i))&&void 0!==o&&o.writable)&&(l=s((()=>{var t=_o(Fo(u?e[i]:In));return Di(t,Oo(a,i)),t})),n.set(i,l)),void 0!==l){var d=qs(l);return d===In?void 0:d}return Reflect.get(e,i,r)},getOwnPropertyDescriptor(t,e){var i=Reflect.getOwnPropertyDescriptor(t,e);if(i&&"value"in i){var r=n.get(e);r&&(i.value=qs(r))}else if(void 0===i){var o=n.get(e),s=null==o?void 0:o.v;if(void 0!==o&&s!==In)return{enumerable:!0,configurable:!0,value:s,writable:!0}}return i},has(t,e){var i;if(e===hi)return!0;var r=n.get(e),o=void 0!==r&&r.v!==In||Reflect.has(t,e);if((void 0!==r||null!==Is&&(!o||null!==(i=Pn(t,e))&&void 0!==i&&i.writable))&&(void 0===r&&(r=s((()=>{var n=_o(o?Fo(t[e]):In);return Di(n,Oo(a,e)),n})),n.set(e,r)),qs(r)===In))return!1;return o},set(t,e,o,l){var c,u=n.get(e),d=e in t;if(i&&"length"===e)for(var h=o;h<u.v;h+=1){var f=n.get(h+"");void 0!==f?Io(f,In):h in t&&(f=s((()=>_o(In))),n.set(h+"",f),Di(f,Oo(a,h)))}void 0===u?(!d||null!==(c=Pn(t,e))&&void 0!==c&&c.writable)&&(Di(u=s((()=>_o(void 0))),Oo(a,e)),Io(u,Fo(o)),n.set(e,u)):(d=u.v!==In,Io(u,s((()=>Fo(o)))));var p=Reflect.getOwnPropertyDescriptor(t,e);if(null!=p&&p.set&&p.set.call(l,o),!d){if(i&&"string"==typeof e){var m=n.get("length"),v=Number(e);Number.isInteger(v)&&v>=m.v&&Io(m,v+1)}Ao(r)}return!0},ownKeys(t){qs(r);var e=Reflect.ownKeys(t).filter((t=>{var e=n.get(t);return void 0===e||e.v!==In}));for(var[i,o]of n)o.v===In||i in t||e.push(i);return e},setPrototypeOf(){!function(){{const t=new Error("state_prototype_fixed\nCannot set prototype of `$state` object\nhttps://svelte.dev/e/state_prototype_fixed");throw t.name="Svelte error",t}}()}})}function Oo(t,e){var n;return"symbol"==typeof e?`${t}[Symbol(${null!==(n=e.description)&&void 0!==n?n:""})]`:Mo.test(e)?`${t}.${e}`:/^\d+$/.test(e)?`${t}[${e}]`:`${t}['${e}']`}function Co(t){try{if(null!==t&&"object"==typeof t&&hi in t)return t[hi]}catch{}return t}const Po=new Set(["copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift"]);function Do(t,e,n=!0){try{t===e!=(Co(t)===Co(e))&&_i(n?"===":"!==")}catch{}return t===e===n}var Ro,Lo,Bo,zo;function Wo(){if(void 0===Ro){Ro=window,Lo=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,n=Text.prototype;Bo=Pn(e,"firstChild").get,zo=Pn(e,"nextSibling").get,zn(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),zn(n)&&(n.__t=void 0),t.__svelte_meta=null,function(){const t=Array.prototype,e=Array.__svelte_cleanup;e&&e();const{indexOf:n,lastIndexOf:i,includes:r}=t;t.indexOf=function(t,e){const i=n.call(this,t,e);if(-1===i)for(let n=null!=e?e:0;n<this.length;n+=1)if(Co(this[n])===t){_i("array.indexOf(...)");break}return i},t.lastIndexOf=function(t,e){const n=i.call(this,t,null!=e?e:this.length-1);if(-1===n)for(let n=0;n<=(null!=e?e:this.length-1);n+=1)if(Co(this[n])===t){_i("array.lastIndexOf(...)");break}return n},t.includes=function(t,e){const n=r.call(this,t,e);if(!n)for(let e=0;e<this.length;e+=1)if(Co(this[e])===t){_i("array.includes(...)");break}return n},Array.__svelte_cleanup=()=>{t.indexOf=n,t.lastIndexOf=i,t.includes=r}}()}}function jo(t=""){return document.createTextNode(t)}function Uo(t){return Bo.call(t)}function $o(t){return zo.call(t)}function qo(t,e){if(!Ii)return Uo(t);var n=Uo(Ti);if(null===n)n=Ti.appendChild(jo());else if(e&&n.nodeType!==gi){var i,r=jo();return null===(i=n)||void 0===i||i.before(r),Si(r),r}return Si(n),n}function Vo(t,e=!1){var n;if(!Ii){var i=Uo(t);return i instanceof Comment&&""===i.data?$o(i):i}if(e&&(null===(n=Ti)||void 0===n?void 0:n.nodeType)!==gi){var r,o=jo();return null===(r=Ti)||void 0===r||r.before(o),Si(o),o}return Ti}function Go(t,e=1,n=!1){var i;let r=Ii?Ti:t;for(var o;e--;)o=r,r=$o(r);if(!Ii)return r;if(n&&(null===(i=r)||void 0===i?void 0:i.nodeType)!==gi){var s,a=jo();if(null===r)null===(s=o)||void 0===s||s.after(a);else r.before(a);return Si(a),a}return Si(r),r}function Ho(t){t.textContent=""}function Ko(t,e){if(e){const e=document.body;t.autofocus=!0,Yi((()=>{document.activeElement===e&&t.focus()}))}}let Xo=!1;function Yo(t){var e=xs,n=Is;Ts(null),Es(null);try{return t()}finally{Ts(e),Es(n)}}function Qo(t){null===Is&&(null===xs&&function(t){{const e=new Error(`effect_orphan\n\`${t}\` can only be used inside an effect (e.g. during component initialisation)\nhttps://svelte.dev/e/effect_orphan`);throw e.name="Svelte error",e}}(t),function(){{const t=new Error("effect_in_unowned_derived\nEffect cannot be created inside a `$derived` value that was not itself created inside an effect\nhttps://svelte.dev/e/effect_in_unowned_derived");throw t.name="Svelte error",t}}()),ks&&function(t){{const e=new Error(`effect_in_teardown\n\`${t}\` cannot be used inside an effect cleanup function\nhttps://svelte.dev/e/effect_in_teardown`);throw e.name="Svelte error",e}}(t)}function Jo(t,e,n){for(var i=Is;null!==i&&i.fⅈ)i=i.parent;null!==i&&i.f&Zn&&(t|=Zn);var r={ctx:Bi,deps:null,nodes:null,f:t|Qn|Xn,first:null,fn:e,last:null,next:null,parent:i,b:i&&i.b,prev:null,teardown:null,wv:0,ac:null};if(r.component_function=Ui,n)try{Us(r),r.f|=ei}catch(t){throw ds(r),t}else null!==e&&Cr(r);var o=r;if(!n||null!==o.deps||null!==o.teardown||null!==o.nodes||o.first!==o.last||o.f&oi||(o=o.first,t&Vn&&t&ni&&null!==o&&(o.f|=ni)),null!==o&&(o.parent=i,null!==i&&function(t,e){var n=e.last;null===n?e.last=e.first=t:(n.next=t,t.prev=n,e.last=t)}(o,i),null!==xs&&xs.f&jn&&!(t&Hn))){var s,a=xs;(null!==(s=a.effects)&&void 0!==s?s:a.effects=[]).push(o)}return r}function Zo(){return null!==xs&&!_s}function ts(t){const e=Jo($n,null,!1);return ir(e,Yn),e.teardown=t,e}function es(t){Qo("$effect"),Cn(t,"name",{value:"$effect"});var e=Is.f;if(!!(xs||!(e&Gn)||e&ei))return ns(t);var n,i=Bi;(null!==(n=i.e)&&void 0!==n?n:i.e=[]).push(t)}function ns(t){return Jo(Un|si,t,!1)}function is(t){return Jo(Un,t,!1)}function rs(t,e=0){return Jo($n|e,t,!0)}function os(t,e=[],n=[],i=[]){so(i,e,n,(e=>{Jo($n,(()=>t(...e.map(qs))),!0)}))}function ss(t,e=0){var n=Jo(Vn|e,t,!0);return n.dev_stack=Wi,n}function as(t,e=0){var n=Jo(qn|e,t,!0);return n.dev_stack=Wi,n}function ls(t){return Jo(Gn|oi,t,!0)}function cs(t){var e=t.teardown;if(null!==e){const t=ks,n=xs;ws(!0),Ts(null);try{e.call(null)}finally{ws(t),Ts(n)}}}function us(t,e=!1){var n=t.first;for(t.first=t.last=null;null!==n;){const t=n.ac;null!==t&&Yo((()=>{t.abort(vi)}));var i=n.next;n.f&Hn?n.parent=null:ds(n,e),n=i}}function ds(t,e=!0){var n=!1;(e||t.f&ri)&&null!==t.nodes&&null!==t.nodes.end&&(!function(t,e){for(;null!==t;){var n=t===e?null:$o(t);t.remove(),t=n}}(t.nodes.start,t.nodes.end),n=!0),us(t,e&&!n),js(t,0),ir(t,ti);var i=t.nodes&&t.nodes.t;if(null!==i)for(const t of i)t.stop();cs(t);var r=t.parent;null!==r&&null!==r.first&&hs(t),t.component_function=null,t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=null}function hs(t){var e=t.parent,n=t.prev,i=t.next;null!==n&&(n.next=i),null!==i&&(i.prev=n),null!==e&&(e.first===t&&(e.first=i),e.last===t&&(e.last=n))}function fs(t,e,n=!0){var i=[];ps(t,i,!0);var r=()=>{n&&ds(t),e&&e()},o=i.length;if(o>0){var s=()=>--o||r();for(var a of i)a.out(s)}else r()}function ps(t,e,n){if(!(t.f&Zn)){t.f^=Zn;var i=t.nodes&&t.nodes.t;if(null!==i)for(const t of i)(t.is_global||n)&&e.push(t);for(var r=t.first;null!==r;){var o=r.next;ps(r,e,!!(!!(r.f&ni)||!!(r.f&Gn)&&!!(t.f&Vn))&&n),r=o}}}function ms(t){vs(t,!0)}function vs(t,e){if(t.f&Zn){t.f^=Zn,t.f&Yn||(ir(t,Qn),Cr(t));for(var n=t.first;null!==n;){var i=n.next;vs(n,!!(!!(n.f&ni)||!!(n.f&Gn))&&e),n=i}var r=t.nodes&&t.nodes.t;if(null!==r)for(const t of r)(t.is_global||e)&&t.in()}}function gs(t,e){if(t.nodes)for(var n=t.nodes.start,i=t.nodes.end;null!==n;){var r=n===i?null:$o(n);e.append(n),n=r}}let ys=!1;function bs(t){ys=t}let ks=!1;function ws(t){ks=t}let xs=null,_s=!1;function Ts(t){xs=t}let Is=null;function Es(t){Is=t}let Ss=null;function As(t){null!==xs&&(null===Ss?Ss=[t]:Ss.push(t))}let Ns=null,Ms=0,Fs=null;let Os=1,Cs=0,Ps=Cs;function Ds(t){Ps=t}function Rs(){return++Os}function Ls(t){var e=t.f;if(e&Qn)return!0;if(e&jn&&(t.f&=~li),e&Jn){for(var n=t.deps,i=n.length,r=0;r<i;r++){var o=n[r];if(Ls(o)&&go(o),o.wv>t.wv)return!0}e&Xn&&null===cr&&ir(t,Yn)}return!1}function Bs(t,e,n=!0){var i,r=t.reactions;if(null!==r&&(null===(i=Ss)||void 0===i||!i.includes(t)))for(var o=0;o<r.length;o++){var s=r[o];s.f&jn?Bs(s,e,!1):e===s&&(n?ir(s,Qn):s.f&Yn&&ir(s,Jn),Cr(s))}}function zs(t){var e=Ns,n=Ms,i=Fs,r=xs,o=Ss,s=Bi,a=_s,l=Ps,c=t.f;Ns=null,Ms=0,Fs=null,xs=c&(Gn|Hn)?null:t,Ss=null,zi(t.ctx),_s=!1,Ps=++Cs,null!==t.ac&&(Yo((()=>{t.ac.abort(vi)})),t.ac=null);try{t.f|=ci;var u=(0,t.fn)(),d=t.deps;if(null!==Ns){var h;if(js(t,Ms),null!==d&&Ms>0)for(d.length=Ms+Ns.length,h=0;h<Ns.length;h++)d[Ms+h]=Ns[h];else t.deps=d=Ns;if(Zo()&&t.f&Xn)for(h=Ms;h<d.length;h++){var f,p;(null!==(p=(f=d[h]).reactions)&&void 0!==p?p:f.reactions=[]).push(t)}}else null!==d&&Ms<d.length&&(js(t,Ms),d.length=Ms);if(!(null===Fs||_s||null===d||t.f&(jn|Jn|Qn)))for(h=0;h<Fs.length;h++)Bs(Fs[h],t);return null!==r&&r!==t&&(Cs++,null!==Fs&&(null===i?i=Fs:i.push(...Fs))),t.f&di&&(t.f^=di),u}catch(t){return Zi(t)}finally{t.f^=ci,Ns=e,Ms=n,Fs=i,xs=r,Ss=o,zi(s),_s=a,Ps=l}}function Ws(t,e){let n=e.reactions;if(null!==n){var i=Fn.call(n,t);if(-1!==i){var r=n.length-1;0===r?n=e.reactions=null:(n[i]=n[r],n.pop())}}if(null===n&&e.f&jn&&(null===Ns||!Ns.includes(e))){var o=e;o.f&Xn&&(o.f^=Xn,o.f&=~li),rr(o),po(o),js(o,0)}}function js(t,e){var n=t.deps;if(null!==n)for(var i=e;i<n.length;i++)Ws(t,n[i])}function Us(t){var e=t.f;if(!(e&ti)){ir(t,Yn);var n=Is,i=ys;Is=t,ys=!0;var r,o=Ui;$i(t.component_function);var s=Wi;ji(null!==(r=t.dev_stack)&&void 0!==r?r:Wi);try{e&(Vn|qn)?function(t){for(var e=t.first;null!==e;){var n=e.next;e.f&Gn||ds(e),e=n}}(t):us(t),cs(t);var a=zs(t);t.teardown="function"==typeof a?a:null,t.wv=Os,Nn&&Pi&&t.f&Qn&&t.deps}finally{ys=i,Is=n,$i(o),ji(s)}}}async function $s(){await Promise.resolve(),function(){var t=fr;fr=!0;try{for(;;){var e;if(Qi(),0===ur.length&&(null===(e=lr)||void 0===e||e.flush(),0===ur.length))return void(dr=null);Sr()}}finally{fr=t}}()}function qs(t){var e,n,i=!!(t.f&jn);if(null!==xs&&!_s&&!(null!==Is&&!!(Is.f&ti)||null!==(n=Ss)&&void 0!==n&&n.includes(t))){var r=xs.deps;if(xs.f&ci)t.rv<Cs&&(t.rv=Cs,null===Ns&&null!==r&&r[Ms]===t?Ms++:null===Ns?Ns=[t]:Ns.includes(t)||Ns.push(t));else{var o,s;(null!==(s=(o=xs).deps)&&void 0!==s?s:o.deps=[]).push(t);var a=t.reactions;null===a?t.reactions=[xs]:a.includes(xs)||a.push(xs)}}if(lo.delete(t),ks&&bo.has(t))return bo.get(t);if(i){var l=t;if(ks){var c=l.v;return(l.f&Yn||null===l.reactions)&&!Gs(l)||(c=vo(l)),bo.set(l,c),c}var u=!(l.f&Xn)&&!_s&&null!==xs&&(ys||!!(xs.f&Xn)),d=null===l.deps;Ls(l)&&(u&&(l.f|=Xn),go(l)),u&&!d&&Vs(l)}if(null!==(e=cr)&&void 0!==e&&e.has(t))return cr.get(t);if(t.f&di)throw t.v;return t.v}function Vs(t){if(null!==t.deps){t.f|=Xn;for(const n of t.deps){var e;(null!==(e=n.reactions)&&void 0!==e?e:n.reactions=[]).push(t),n.f&jn&&!(n.f&Xn)&&Vs(n)}}}function Gs(t){if(t.v===In)return!0;if(null===t.deps)return!1;for(const e of t.deps){if(bo.has(e))return!0;if(e.f&jn&&Gs(e))return!0}return!1}function Hs(t){var e=_s;try{return _s=!0,t()}finally{_s=e}}const Ks=new Set,Xs=new Set;function Ys(t,e,n,i={}){function r(t){if(i.capture||ta.call(e,t),!t.cancelBubble)return Yo((()=>null==n?void 0:n.call(this,t)))}return t.startsWith("pointer")||t.startsWith("touch")||"wheel"===t?Yi((()=>{e.addEventListener(t,r,i)})):e.addEventListener(t,r,i),r}function Qs(t,e,n,i,r){var o={capture:i,passive:r},s=Ys(t,e,n,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&ts((()=>{e.removeEventListener(t,s,o)}))}function Js(t){for(var e=0;e<t.length;e++)Ks.add(t[e]);for(var n of Xs)n(t)}let Zs=null;function ta(t){var e,n=this,i=n.ownerDocument,r=t.type,o=(null===(e=t.composedPath)||void 0===e?void 0:e.call(t))||[],s=o[0]||t.target;Zs=t;var a=0,l=Zs===t&&t.__root;if(l){var c=o.indexOf(l);if(-1!==c&&(n===document||n===window))return void(t.__root=n);var u=o.indexOf(n);if(-1===u)return;c<=u&&(a=c)}if((s=o[a]||t.target)!==n){Cn(t,"currentTarget",{configurable:!0,get:()=>s||i});var d=xs,h=Is;Ts(null),Es(null);try{for(var f,p=[];null!==s;){var m=s.assignedSlot||s.parentNode||s.host||null;try{var v=s["__"+r];null==v||s.disabled&&t.target!==s||v.call(s,t)}catch(t){f?p.push(t):f=t}if(t.cancelBubble||m===n||null===m)break;s=m}if(f){for(let t of p)queueMicrotask((()=>{throw t}));throw f}}finally{t.__root=n,delete t.currentTarget,Ts(d),Es(h)}}}function ea(t,e){var n=Is;null===n.nodes&&(n.nodes={start:t,end:e,a:null,t:null})}function na(t,e){var n,i=!!(1&e),r=!!(2&e),o=!t.startsWith("<!>");return()=>{if(Ii)return ea(Ti,null),Ti;var e,s;void 0===n&&(e=o?t:"<!>"+t,(s=document.createElement("template")).innerHTML=e.replaceAll("<!>","\x3c!----\x3e"),n=s.content,i||(n=Uo(n)));var a=r||Lo?document.importNode(n,!0):n.cloneNode(!0);i?ea(Uo(a),a.lastChild):ea(a,a);return a}}function ia(){if(Ii)return ea(Ti,null),Ti;var t=document.createDocumentFragment(),e=document.createComment(""),n=jo();return t.append(e,n),ea(e,n),t}function ra(t,e){if(Ii){var n=Is;return n.f&ei&&null!==n.nodes.end||(n.nodes.end=Ti),void Ai()}null!==t&&t.before(e)}function oa(t){return t.endsWith("capture")&&"gotpointercapture"!==t&&"lostpointercapture"!==t}const sa=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function aa(t){return sa.includes(t)}const la={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function ca(t){var e;return t=t.toLowerCase(),null!==(e=la[t])&&void 0!==e?e:t}const ua=["touchstart","touchmove"];function da(t,e){var n,i=null==e?"":"object"==typeof e?e+"":e;i!==(null!==(n=t.__t)&&void 0!==n?n:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function ha(t,e){return ma(t,e)}function fa(t,e){var n;Wo(),e.intro=null!==(n=e.intro)&&void 0!==n&&n;const i=e.target,r=Ii,o=Ti;try{for(var s=Uo(i);s&&(s.nodeType!==yi||s.data!==wn);)s=$o(s);if(!s)throw Tn;Ei(!0),Si(s);const n=ma(t,{...e,anchor:s});return Ei(!1),n}catch(n){if(n instanceof Error&&n.message.split("\n").some((t=>t.startsWith("https://svelte.dev/e/"))))throw n;return n!==Tn&&console.warn("Failed to hydrate: ",n),!1===e.recover&&function(){{const t=new Error("hydration_failed\nFailed to hydrate the application\nhttps://svelte.dev/e/hydration_failed");throw t.name="Svelte error",t}}(),Wo(),Ho(i),Ei(!1),ha(t,e)}finally{Ei(r),Si(o)}}const pa=new Map;function ma(t,{target:e,anchor:n,props:i={},events:r,context:o,intro:s=!0}){Wo();var a=new Set,l=t=>{for(var n=0;n<t.length;n++){var i=t[n];if(!a.has(i)){a.add(i);var r=(s=i,ua.includes(s));e.addEventListener(i,ta,{passive:r});var o=pa.get(i);void 0===o?(document.addEventListener(i,ta,{passive:r}),pa.set(i,1)):pa.set(i,o+1)}}var s};l(On(Ks)),Xs.add(l);var c=void 0,u=function(t){xr.ensure();const e=Jo(Hn|oi,t,!0);return(t={})=>new Promise((n=>{t.outro?fs(e,(()=>{ds(e),n(void 0)})):(ds(e),n(void 0))}))}((()=>{var s=null!=n?n:e.appendChild(jo());return function(t,e,n){new Zr(t,e,n)}(s,{pending:()=>{}},(e=>{o&&(Vi({}),Bi.c=o);if(r&&(i.$$events=r),Ii&&ea(e,null),c=t(e,i)||{},Ii&&(Is.nodes.end=Ti,null===Ti||Ti.nodeType!==yi||Ti.data!==_n))throw xi(),Tn;o&&Gi()})),()=>{for(var t of a){e.removeEventListener(t,ta);var i=pa.get(t);0==--i?(document.removeEventListener(t,ta),pa.delete(t)):pa.set(t,i)}var r;(Xs.delete(l),s!==n)&&(null===(r=s.parentNode)||void 0===r||r.removeChild(s))}}));return va.set(c,u),c}let va=new WeakMap;function ga(t,e){const n=va.get(t);return n?(va.delete(t),n(e)):(hi in t?console.warn("%c[svelte] state_proxy_unmount\n%cTried to unmount a state proxy, rather than a component\nhttps://svelte.dev/e/state_proxy_unmount",ki,wi):console.warn("%c[svelte] lifecycle_double_unmount\n%cTried to unmount a component that was not mounted\nhttps://svelte.dev/e/lifecycle_double_unmount",ki,wi),Promise.resolve())}class ya{anchor;#t=new Map;#e=new Map;#n=new Map;#i=new Set;#r=!0;constructor(t,e=!0){this.anchor=t,this.#r=e}#o=()=>{var t=lr;if(this.#t.has(t)){var e=this.#t.get(t),n=this.#e.get(e);if(n)ms(n),this.#i.delete(e);else{var i=this.#n.get(e);i&&(this.#e.set(e,i.effect),this.#n.delete(e),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),n=i.effect)}for(const[e,n]of this.#t){if(this.#t.delete(e),e===t)break;const i=this.#n.get(n);i&&(ds(i.effect),this.#n.delete(n))}for(const[t,i]of this.#e){if(t===e||this.#i.has(t))continue;const r=()=>{if(Array.from(this.#t.values()).includes(t)){var e=document.createDocumentFragment();gs(i,e),e.append(jo()),this.#n.set(t,{effect:i,fragment:e})}else ds(i);this.#i.delete(t),this.#e.delete(t)};this.#r||!n?(this.#i.add(t),fs(i,r,!1)):r()}}};#s=t=>{this.#t.delete(t);const e=Array.from(this.#t.values());for(const[t,n]of this.#n)e.includes(t)||(ds(n.effect),this.#n.delete(t))};ensure(t,e){var n=lr;!e||this.#e.has(t)||this.#n.has(t)||this.#e.set(t,ls((()=>e(this.anchor)))),this.#t.set(n,t),Ii&&(this.anchor=Ti),this.#o()}}{let t=function(t){if(!(t in globalThis)){let e;Object.defineProperty(globalThis,t,{configurable:!0,get:()=>{if(void 0!==e)return e;!function(t){{const e=new Error(`rune_outside_svelte\nThe \`${t}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files\nhttps://svelte.dev/e/rune_outside_svelte`);throw e.name="Svelte error",e}}(t)},set:t=>{e=t}})}};t("$state"),t("$effect"),t("$derived"),t("$inspect"),t("$props"),t("$bindable")}var ba,ka=new Map;function wa(t,e,n=!1){Ii&&Ai();var i=new ya(t);function r(e,n){if(Ii){if(e===(Fi(t)===xn)){var r=Mi();return Si(r),i.anchor=r,Ei(!1),i.ensure(e,n),void Ei(!0)}}i.ensure(e,n)}ss((()=>{var t=!1;e(((e,n=!0)=>{t=!0,r(n,e)})),t||r(!1,null)}),n?ni:0)}function xa(t,e){return e}function _a(t,e=!0){for(var n=0;n<t.length;n++)ds(t[n],e)}function Ta(t,e,n,i,r,o=null){var s=t,a=new Map;if(!!(e&pn)){var l=t;s=Ii?Si(Uo(l)):l.appendChild(jo())}Ii&&Ai();var c,u=null,d=fo((()=>{var t=n();return Mn(t)?t:null==t?[]:On(t)})),h=!0;function f(){m.fallback=u,function(t,e,n,i,r){var o,s,a,l,c,u=!!(i&mn),d=e.length,h=t.items,f=t.effect.first,p=null,m=[],v=[];if(u)for(c=0;c<d;c+=1){var g,y;if(a=r(e[c],c),!((l=h.get(a).e).f&ai))null===(g=l.nodes)||void 0===g||null===(g=g.a)||void 0===g||g.measure(),(null!==(y=s)&&void 0!==y?y:s=new Set).add(l)}for(c=0;c<d;c+=1){if(a=r(e[c],c),l=h.get(a).e,null!==t.outrogroups)for(const e of t.outrogroups)e.pending.delete(l),e.done.delete(l);if(l.f&ai){if(l.f^=ai,l!==f){var b=p?p.next:f;l===t.effect.last&&(t.effect.last=l.prev),l.prev&&(l.prev.next=l.next),l.next&&(l.next.prev=l.prev),Sa(t,p,l),Sa(t,l,b),Ea(l,b,n),m=[],v=[],f=(p=l).next;continue}Ea(l,null,n)}var k,w;if(l.f&Zn)if(ms(l),u)null===(k=l.nodes)||void 0===k||null===(k=k.a)||void 0===k||k.unfix(),(null!==(w=s)&&void 0!==w?w:s=new Set).delete(l);if(l!==f){if(void 0!==o&&o.has(l)){if(m.length<v.length){var x,_=v[0];p=_.prev;var T=m[0],I=m[m.length-1];for(x=0;x<m.length;x+=1)Ea(m[x],_,n);for(x=0;x<v.length;x+=1)o.delete(v[x]);Sa(t,T.prev,I.next),Sa(t,p,T),Sa(t,I,_),f=_,p=I,c-=1,m=[],v=[]}else o.delete(l),Ea(l,f,n),Sa(t,l.prev,l.next),Sa(t,l,null===p?t.effect.first:p.next),Sa(t,p,l),p=l;continue}for(m=[],v=[];null!==f&&f!==l;){var E;(null!==(E=o)&&void 0!==E?E:o=new Set).add(f),v.push(f),f=f.next}if(null===f)continue}l.f&ai||m.push(l),p=l,f=l.next}if(null!==t.outrogroups){for(const e of t.outrogroups){var S;if(0===e.pending.size)_a(On(e.done)),null===(S=t.outrogroups)||void 0===S||S.delete(e)}0===t.outrogroups.size&&(t.outrogroups=null)}if(null!==f||void 0!==o){var A=[];if(void 0!==o)for(l of o)l.f&Zn||A.push(l);for(;null!==f;)f.f&Zn||f===t.fallback||A.push(f),f=f.next;var N=A.length;if(N>0){var M=i&pn&&0===d?n:null;if(u){for(c=0;c<N;c+=1){var F;null===(F=A[c].nodes)||void 0===F||null===(F=F.a)||void 0===F||F.measure()}for(c=0;c<N;c+=1){var O;null===(O=A[c].nodes)||void 0===O||null===(O=O.a)||void 0===O||O.fix()}}!function(t,e,n){for(var i,r=e.length,o=e.length,s=0;s<r;s++){let n=e[s];fs(n,(()=>{if(i){if(i.pending.delete(n),i.done.add(n),0===i.pending.size){var e=t.outrogroups;_a(On(i.done)),e.delete(i),0===e.size&&(t.outrogroups=null)}}else o-=1}),!1)}if(0===o){var a=null!==n;if(a){var l=n,c=l.parentNode;Ho(c),c.append(l),t.items.clear()}_a(e,!a)}else{var u;i={pending:new Set(e),done:new Set},(null!==(u=t.outrogroups)&&void 0!==u?u:t.outrogroups=new Set).add(i)}}(t,A,M)}}u&&Yi((()=>{if(void 0!==s)for(l of s){var t;null===(t=l.nodes)||void 0===t||null===(t=t.a)||void 0===t||t.apply()}}))}(m,c,s,e,i),null!==u&&(0===c.length?u.f&ai?(u.f^=ai,Ea(u,null,s)):ms(u):fs(u,(()=>{u=null})))}var p=ss((()=>{var t=(c=qs(d)).length;let l=!1;Ii&&(Fi(s)===xn!==(0===t)&&(Si(s=Mi()),Ei(!1),l=!0));for(var p=new Set,m=0;m<t;m+=1){Ii&&Ti.nodeType===yi&&Ti.data===_n&&(s=Ti,l=!0,Ei(!1));var v,g=c[m],y=i(g,m),b=h?null:a.get(y);if(b)b.v&&Eo(b.v,g),b.i&&Eo(b.i,m);else b=Ia(a,h?s:null!==(v=ba)&&void 0!==v?v:ba=jo(),g,y,m,r,e,n),h||(b.e.f|=ai),a.set(y,b);p.add(y)}0===t&&o&&!u&&(h?u=ls((()=>o(s))):(u=ls((()=>{var t;return o(null!==(t=ba)&&void 0!==t?t:ba=jo())}))).f|=ai),Ii&&t>0&&Si(Mi()),h||f(),l&&Ei(!0),qs(d)})),m={effect:p,items:a,outrogroups:null,fallback:u};h=!1,Ii&&(s=Ti)}function Ia(t,e,n,i,r,o,s,a){var l=s&hn?s&vn?xo(n):To(n,!1,!1):null,c=s&fn?xo(r):null;return l&&(l.trace=()=>{var t;a()[null!==(t=null==c?void 0:c.v)&&void 0!==t?t:r]}),{v:l,i:c,e:ls((()=>(o(e,null!=l?l:n,null!=c?c:r,a),()=>{t.delete(i)})))}}function Ea(t,e,n){if(t.nodes)for(var i=t.nodes.start,r=t.nodes.end,o=!e||e.f&ai?n:e.nodes.start;null!==i;){var s=$o(i);if(o.before(i),i===r)return;i=s}}function Sa(t,e,n){null===e?t.effect.first=n:e.next=n,null===n?t.effect.last=e:n.prev=e}function Aa(t,e){is((()=>{var n,i=t.getRootNode(),r=i.host?i:null!==(n=i.head)&&void 0!==n?n:i.ownerDocument.head;if(!r.querySelector("#"+e.hash)){const t=document.createElement("style");t.id=e.hash,t.textContent=e.code,r.appendChild(t),function(t,e){var n=ka.get(t);n||(n=new Set,ka.set(t,n)),n.add(e)}(e.hash,t)}}))}function Na(t,e){var n,i=void 0;as((()=>{i!==(i=e())&&(n&&(ds(n),n=null),i&&(n=ls((()=>{is((()=>i(t)))}))))}))}function Ma(t){var e,n,i="";if("string"==typeof t||"number"==typeof t)i+=t;else if("object"==typeof t)if(Array.isArray(t)){var r=t.length;for(e=0;e<r;e++)t[e]&&(n=Ma(t[e]))&&(i&&(i+=" "),i+=n)}else for(n in t)t[n]&&(i&&(i+=" "),i+=n);return i}function Fa(t){return"object"==typeof t?function(){for(var t,e,n=0,i="",r=arguments.length;n<r;n++)(t=arguments[n])&&(e=Ma(t))&&(i&&(i+=" "),i+=e);return i}(t):null!=t?t:""}const Oa=[..." \t\n\r\f \v\ufeff"];function Ca(t,e=!1){var n=e?" !important;":";",i="";for(var r in t){var o=t[r];null!=o&&""!==o&&(i+=" "+r+": "+o+n)}return i}function Pa(t){return"-"!==t[0]||"-"!==t[1]?t.toLowerCase():t}function Da(t,e,n,i,r,o){var s=t.__className;if(Ii||s!==n||void 0===s){var a=function(t,e,n){var i=null==t?"":""+t;if(e&&(i=i?i+" "+e:e),n)for(var r in n)if(n[r])i=i?i+" "+r:r;else if(i.length)for(var o=r.length,s=0;(s=i.indexOf(r,s))>=0;){var a=s+o;0!==s&&!Oa.includes(i[s-1])||a!==i.length&&!Oa.includes(i[a])?s=a:i=(0===s?"":i.substring(0,s))+i.substring(a+1)}return""===i?null:i}(n,i,o);Ii&&a===t.getAttribute("class")||(null==a?t.removeAttribute("class"):e?t.className=a:t.setAttribute("class",a)),t.__className=n}else if(o&&r!==o)for(var l in o){var c=!!o[l];null!=r&&c===!!r[l]||t.classList.toggle(l,c)}return o}function Ra(t,e={},n,i){for(var r in n){var o=n[r];e[r]!==o&&(null==n[r]?t.style.removeProperty(r):t.style.setProperty(r,o,i))}}function La(t,e,n,i){var r=t.__style;if(Ii||r!==e){var o=function(t,e){if(e){var n,i,r="";if(Array.isArray(e)?(n=e[0],i=e[1]):n=e,t){t=String(t).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var o=!1,s=0,a=!1,l=[];n&&l.push(...Object.keys(n).map(Pa)),i&&l.push(...Object.keys(i).map(Pa));var c=0,u=-1;const e=t.length;for(var d=0;d<e;d++){var h=t[d];if(a?"/"===h&&"*"===t[d-1]&&(a=!1):o?o===h&&(o=!1):"/"===h&&"*"===t[d+1]?a=!0:'"'===h||"'"===h?o=h:"("===h?s++:")"===h&&s--,!a&&!1===o&&0===s)if(":"===h&&-1===u)u=d;else if(";"===h||d===e-1){if(-1!==u){var f=Pa(t.substring(c,u).trim());l.includes(f)||(";"!==h&&d++,r+=" "+t.substring(c,d).trim()+";")}c=d+1,u=-1}}}return n&&(r+=Ca(n)),i&&(r+=Ca(i,!0)),""===(r=r.trim())?null:r}return null==t?null:String(t)}(e,i);Ii&&o===t.getAttribute("style")||(null==o?t.removeAttribute("style"):t.style.cssText=o),t.__style=e}else i&&(Array.isArray(i)?(Ra(t,null==n?void 0:n[0],i[0]),Ra(t,null==n?void 0:n[1],i[1],"important")):Ra(t,n,i));return i}function Ba(t,e,n=!1){if(t.multiple){if(null==e)return;if(!Mn(e))return void console.warn("%c[svelte] select_multiple_invalid_value\n%cThe `value` property of a `<select multiple>` element should be an array, but it received a non-array value. The selection will be kept as is.\nhttps://svelte.dev/e/select_multiple_invalid_value",ki,wi);for(var i of t.options)i.selected=e.includes(za(i))}else{for(i of t.options){var r=za(i);if(o=r,s=e,Object.is(Co(o),Co(s)))return void(i.selected=!0)}var o,s;n&&void 0===e||(t.selectedIndex=-1)}}function za(t){return"__value"in t?t.__value:t.value}const Wa=Symbol("class"),ja=Symbol("style"),Ua=Symbol("is custom element"),$a=Symbol("is html");function qa(t){if(Ii){var e=!1,n=()=>{if(!e){if(e=!0,t.hasAttribute("value")){var n=t.value;Ga(t,"value",null),t.value=n}if(t.hasAttribute("checked")){var i=t.checked;Ga(t,"checked",null),t.checked=i}}};t.__on_r=n,Yi(n),Xo||(Xo=!0,document.addEventListener("reset",(t=>{Promise.resolve().then((()=>{if(!t.defaultPrevented)for(const n of t.target.elements){var e;null===(e=n.__on_r)||void 0===e||e.call(n)}}))}),{capture:!0}))}}function Va(t,e){e?t.hasAttribute("selected")||t.setAttribute("selected",""):t.removeAttribute("selected")}function Ga(t,e,n,i){var r=Ka(t);Ii&&(r[e]=t.getAttribute(e),"src"===e||"srcset"===e||"href"===e&&"LINK"===t.nodeName)?i||function(t,e,n){var i;if("srcset"===e&&function(t,e){var n=Ja(t.srcset),i=Ja(e);return i.length===n.length&&i.every((([t,e],i)=>e===n[i][1]&&(Qa(n[i][0],t)||Qa(t,n[i][0]))))}(t,n))return;if(Qa(null!==(i=t.getAttribute(e))&&void 0!==i?i:"",n))return;!function(t,e,n){console.warn(`%c[svelte] hydration_attribute_changed\n%cThe \`${t}\` attribute on \`${e}\` changed its value between server and client renders. The client value, \`${n}\`, will be ignored in favour of the server value\nhttps://svelte.dev/e/hydration_attribute_changed`,ki,wi)}(e,t.outerHTML.replace(t.innerHTML,t.innerHTML&&"..."),String(n))}(t,e,null!=n?n:""):r[e]!==(r[e]=n)&&("loading"===e&&(t[pi]=n),null==n?t.removeAttribute(e):"string"!=typeof n&&Ya(t).includes(e)?t[e]=n:t.setAttribute(e,n))}function Ha(t,e,n=[],i=[],r=[],o,s=!1,a=!1){so(r,n,i,(n=>{var i=void 0,r={},l="SELECT"===t.nodeName,c=!1;if(as((()=>{var u=e(...n.map(qs)),d=function(t,e,n,i,r=!1,o=!1){if(Ii&&r&&"INPUT"===t.tagName){var s=t;("checkbox"===s.type?"defaultChecked":"defaultValue")in n||qa(s)}var a=Ka(t),l=a[Ua],c=!a[$a];let u=Ii&&l;u&&Ei(!1);var d,h=e||{},f="OPTION"===t.tagName;for(var p in e)p in n||(n[p]=null);n.class?n.class=Fa(n.class):n.class=null,n[ja]&&(null!==(d=n.style)&&void 0!==d||(n.style=null));var m=Ya(t);for(const r in n){let s=n[r];if(f&&"value"===r&&null==s)t.value=t.__value="",h[r]=s;else if("class"!==r)if("style"!==r){var v=h[r];if(s!==v||void 0===s&&t.hasAttribute(r)){h[r]=s;var g=r[0]+r[1];if("$$"!==g)if("on"===g){const e={},n="$$"+r;let i=r.slice(2);var y=aa(i);if(oa(i)&&(i=i.slice(0,-7),e.capture=!0),!y&&v){if(null!=s)continue;t.removeEventListener(i,h[n],e),h[n]=null}if(null!=s)if(y)t[`__${i}`]=s,Js([i]);else{let o=function(t){h[r].call(this,t)};h[n]=Ys(i,t,o,e)}else y&&(t[`__${i}`]=void 0)}else if("style"===r)Ga(t,r,s);else if("autofocus"===r)Ko(t,Boolean(s));else if(l||"__value"!==r&&("value"!==r||null==s))if("selected"===r&&f)Va(t,s);else{var b=r;c||(b=ca(b));var k="defaultValue"===b||"defaultChecked"===b;if(null!=s||l||k)k||m.includes(b)&&(l||"string"!=typeof s)?(t[b]=s,b in a&&(a[b]=In)):"function"!=typeof s&&Ga(t,b,s,o);else if(a[r]=null,"value"===b||"checked"===b){let n=t;const i=void 0===e;if("value"===b){let t=n.defaultValue;n.removeAttribute(b),n.defaultValue=t,n.value=n.__value=i?t:null}else{let t=n.defaultChecked;n.removeAttribute(b),n.defaultChecked=t,n.checked=!!i&&t}}else t.removeAttribute(r)}else t.value=t.__value=s}}else La(t,s,null==e?void 0:e[ja],n[ja]),h[r]=s,h[ja]=n[ja];else Da(t,"http://www.w3.org/1999/xhtml"===t.namespaceURI,s,i,null==e?void 0:e[Wa],n[Wa]),h[r]=s,h[Wa]=n[Wa]}return u&&Ei(!0),h}(t,i,u,o,s,a);c&&l&&"value"in u&&Ba(t,u.value);for(let t of Object.getOwnPropertySymbols(r))u[t]||ds(r[t]);for(let e of Object.getOwnPropertySymbols(u)){var h=u[e];e.description!==An||i&&h===i[e]||(r[e]&&ds(r[e]),r[e]=ls((()=>Na(t,(()=>h))))),d[e]=h}i=d})),l){var u=t;is((()=>{Ba(u,i.value,!0),function(t){var e=new MutationObserver((()=>{Ba(t,t.__value)}));e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),ts((()=>{e.disconnect()}))}(u)}))}c=!0}))}function Ka(t){var e;return null!==(e=t.__attributes)&&void 0!==e?e:t.__attributes={[Ua]:t.nodeName.includes("-"),[$a]:t.namespaceURI===Sn}}var Xa=new Map;function Ya(t){var e,n=t.getAttribute("is")||t.nodeName,i=Xa.get(n);if(i)return i;Xa.set(n,i=[]);for(var r=t,o=Element.prototype;o!==r;){for(var s in e=Dn(r))e[s].set&&i.push(s);r=Bn(r)}return i}function Qa(t,e){return t===e||new URL(t,document.baseURI).href===new URL(e,document.baseURI).href}function Ja(t){return t.split(",").map((t=>t.trim().split(" ").filter(Boolean)))}function Za(t,e){return t===e||(null==t?void 0:t[hi])===e}function tl(t={},e,n,i){return is((()=>{var i,r;return rs((()=>{i=r,r=[],Hs((()=>{t!==n(...r)&&(e(t,...r),i&&Za(n(...i),t)&&e(null,...i))}))})),()=>{Yi((()=>{r&&Za(n(...r),t)&&e(null,...r)}))}})),t}let el=!1;function nl(t,e,n,i){var r,o,s=!!(n&bn),a=!!(n&kn),l=i,c=!0,u=()=>(c&&(c=!1,l=a?Hs(i):i),l);if(s){var d,h,f=hi in t||fi in t;r=null!==(d=null===(h=Pn(t,e))||void 0===h?void 0:h.set)&&void 0!==d?d:f&&e in t?n=>t[e]=n:void 0}var p,m=!1;if(s?[o,m]=function(t){var e=el;try{return el=!1,[t(),el]}finally{el=e}}((()=>t[e])):o=t[e],void 0===o&&void 0!==i&&(o=u(),r&&(!function(t){{const e=new Error(`props_invalid_value\nCannot do \`bind:${t}={undefined}\` when \`${t}\` has a fallback value\nhttps://svelte.dev/e/props_invalid_value`);throw e.name="Svelte error",e}}(e),r(o))),p=()=>{var n=t[e];return void 0===n?u():(c=!0,n)},!(n&yn))return p;if(r){var v=t.$$legacy;return function(t,e){return arguments.length>0?((!e||v||m)&&r(e?p():t),t):p()}}var g=!1,y=(n&gn?co:fo)((()=>(g=!1,p())));y.label=e,s&&qs(y);var b=Is;return function(t,e){if(arguments.length>0){const n=e?qs(y):s?Fo(t):t;return Io(y,n),g=!0,void 0!==l&&(l=n),t}return ks&&g||b.f&ti?y.v:qs(y)}}var il,rl,ol,sl;"undefined"!=typeof window&&(null!==(rl=(il=null!==(sl=(ol=window).__svelte)&&void 0!==sl?sl:ol.__svelte={}).v)&&void 0!==rl?rl:il.v=new Set).add("5");function al(t,{include:e,exclude:n}={}){const i=t=>{const i=e=>"string"==typeof e?t===e:e.test(t);return e?e.some(i):!n||!n.some(i)};for(const[e,n]of(t=>{const e=new Set;do{for(const n of Reflect.ownKeys(t))e.add([t,n])}while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e})(t.constructor.prototype)){if("constructor"===n||!i(n))continue;const r=Reflect.getOwnPropertyDescriptor(e,n);r&&"function"==typeof r.value&&(t[n]=t[n].bind(t))}return t}function ll(t,e){t.getNodesAtTime(0)[0].once("nodestart",e)}class cl{constructor({position:t,gallery:e,config:n}){this.config=n,this.position=t,this.gallery=e,this.name=n.name;const{variantId:i,itemIndex:r,moduleIndex:o}=t;this.id=`${n.itemType}_${i}_${r}_${o}`,al(this)}#a=Di(_o(Fo({})),"BaseModule.#state");#l=Di(_o(null),"BaseModule.#cover");#c=Di(_o(!1),"BaseModule.#showCover");#u=Di(_o(null),"BaseModule.#Component");id;player;position;config;timeline;moduleEndListener;hasDuration=!1;coverAssets=[];get state(){return qs(this.#a)}set state(t){Io(this.#a,t,!0)}get cover(){return qs(this.#l)}set cover(t){Io(this.#l,t)}get showCover(){return qs(this.#c)}set showCover(t){Io(this.#c,t,!0)}get Component(){return qs(this.#u)}set Component(t){Io(this.#u,t)}emitModuleEnd(){var t;null===(t=this.moduleEndListener)||void 0===t||t.call(this)}start(t){this.player=t}setPosition(){this.gallery.state.playingModulePosition=this.position}play(){this.gallery.track("moduleview"),ll(this.timeline,(()=>{this.setPosition()})),this.player.switchTimeline(this.timeline)}get duration(){return this.hasDuration?this.timeline.placements.reduce(((t,e)=>t+this.player.getNode(e.nodeId).duration),0):0}}const ul="cmaf:";function dl(t,e,n){var i,r,o;const s=(null==e||null===(i=e.entity)||void 0===i?void 0:i.entityId)||(null==e?void 0:e.assetId),a=null!==(r=null==e||null===(o=e.entity)||void 0===o?void 0:o.entityRevision)&&void 0!==r?r:null==e?void 0:e.assetRevision,l=function(t){return t&&t.find((t=>t.startsWith(ul)))?t.filter((t=>t.startsWith(ul))):t}(null==e?void 0:e.availableEncodeProfiles);return n.addNode({id:t,manifestRef:{type:"assets-delivery-service",assetId:s,assetRevision:a,availableEncodeProfiles:l}})}var hl=na('<h3 class="text-box-title svelte-wejicf"> </h3>'),fl=na('<span class="text-box-title svelte-wejicf"> </span>'),pl=na('<span class="text-box-description minimized-description svelte-wejicf"> </span>'),ml=na('<span class="read-more-cta svelte-wejicf" aria-hidden="true">Read more</span>'),vl=na('<button class="expand-description-button svelte-wejicf" aria-expanded="false" aria-controls="expanded-text-content" aria-label="Expand feature description"><!> <!></button>'),gl=na('<button aria-expanded="true" aria-label="Collapse feature description" data-elementid="textbox-expand" data-elementtype="textbox" data-elementname="Read less" data-interactiontype="module-ui" class="svelte-wejicf">Read less</button>'),yl=na('<section aria-label="Feature description" aria-live="polite"><div class="text-wrapper svelte-wejicf"><div class="expanded-text-content svelte-wejicf"><!> <p class="text-box-description svelte-wejicf"> </p></div> <!></div> <!></section>');const bl={hash:"svelte-wejicf",code:".step-description-container.svelte-wejicf {width:100%;position:absolute;bottom:0;display:flex;justify-content:space-between;gap:8px;box-sizing:border-box;font-size:12px;font-weight:400;font-style:normal;line-height:16px;letter-spacing:0px;overflow:hidden;pointer-events:none;background:linear-gradient(\n rgba(255, 255, 255, 0) 0%,\n rgba(255, 255, 255, 0.9) 27.79%,\n rgba(255, 255, 255, 0.95) 100%\n );&.expanded {flex-direction:column;justify-content:flex-start;}&:not(.expanded) {button:where(.svelte-wejicf) {line-height:16px;}}}.expanded-text-content.svelte-wejicf:not([hidden]) {display:flex;flex-direction:column;gap:8px;}button.svelte-wejicf {background:none;border:none;padding:0;cursor:pointer;line-height:18px;gap:8px;letter-spacing:0%;color:#014FD3;font-size:12px;font-weight:500;flex-shrink:0;text-align:left;font-family:inherit;pointer-events:auto;}h3.svelte-wejicf, p.svelte-wejicf, span.svelte-wejicf {color:#030303;}.text-wrapper.svelte-wejicf {width:100%;}.text-box-title.svelte-wejicf {margin:0;font-weight:500;font-size:12px;}.text-box-description.svelte-wejicf {margin:0;text-align:left;font-weight:400;}.minimized-description.svelte-wejicf {overflow:hidden;line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;font-weight:400;}.expand-description-button.svelte-wejicf {width:100%;display:flex;justify-content:space-between;gap:6px;flex-wrap:nowrap;.read-more-cta:where(.svelte-wejicf) {color:#014FD3;flex-shrink:0;}}"};function kl(t,e){Vi(e,!0),Aa(t,bl);let n=nl(e,"textBox",3,null),i=nl(e,"isMobile",3,!1),r=_o(!1),o=_o(null),s=_o(!1),a=ho((()=>{var t;return(null===(t=n())||void 0===t?void 0:t.title)||""})),l=ho((()=>{var t;return(null===(t=n())||void 0===t?void 0:t.description)||""})),c=ho((()=>i()?16:18)),u=ho((()=>i()?12:16));function d(){qs(o)&&Io(s,qs(o).scrollWidth>qs(o).clientWidth||qs(o).scrollHeight>qs(o).clientHeight,!0)}es((()=>{qs(o)&&d()}));var h=ia();Qs("resize",Ro,d);var f=Vo(h),p=t=>{var n=yl(),d=qo(n),h=qo(d),f=qo(h),p=t=>{var e=hl(),n=qo(e,!0);Ni(e),os((()=>da(n,qs(a)))),ra(t,e)};wa(f,(t=>{i()&&t(p)}));var m=Go(f,2),v=qo(m,!0);Ni(m),Ni(h);var g=Go(h,2),y=t=>{var n=vl(),u=ho((()=>e.gallery.interaction((()=>Io(r,!0)),{elementid:"textbox-expand",elementtype:"textbox",elementname:"Read more",interactiontype:"module-ui"})));n.__click=function(...t){var e;null===(e=qs(u))||void 0===e||e.apply(this,t)};var d=qo(n),h=t=>{var e=fl(),n=qo(e,!0);Ni(e),os((()=>da(n,qs(a)))),ra(t,e)},f=t=>{var e=pl(),n=qo(e,!0);Ni(e),tl(e,(t=>Io(o,t)),(()=>qs(o))),os((()=>da(n,qs(l)))),ra(t,e)};wa(d,(t=>{i()&&qs(a)?t(h):t(f,!1)}));var p=Go(d,2),m=t=>{ra(t,ml())};wa(p,(t=>{(i()||!i()&&qs(s))&&t(m)})),Ni(n),os((()=>La(n,`line-height: ${qs(c)}px;`))),ra(t,n)};wa(g,(t=>{qs(r)||t(y)})),Ni(d);var b=Go(d,2),k=t=>{var n=gl(),o=ho((()=>e.gallery.interaction((()=>Io(r,!1)))));n.__click=function(...t){var e;null===(e=qs(o))||void 0===e||e.apply(this,t)},os((()=>La(n,`margin-bottom: ${!i()&&qs(r)?"8px":"0px"};\n line-height: ${qs(u)}px;`))),ra(t,n)};wa(b,(t=>{qs(r)&&t(k)})),Ni(n),os((()=>{Da(n,1,"step-description-container "+(qs(r)?"expanded":""),"svelte-wejicf"),La(n,`padding: ${i()?"8px 16px":"16px 16px 64px 16px"};`),La(h,`line-height: ${qs(c)}px;`),Ga(h,"hidden",!qs(r)),da(v,qs(l))})),ra(t,n)};wa(f,(t=>{(qs(a)||qs(l))&&t(p)})),ra(t,h),Gi()}function wl(t,e){const n=ho((()=>e.state.textBox));kl(t,{get textBox(){return qs(n)},get isMobile(){return e.isMobile},get gallery(){return e.gallery}})}Js(["click"]);var xl=na('<div class="toggle-option-container svelte-16pmvvn"><button data-elementtype="toggle" data-interactiontype="module-ui"> </button></div>'),_l=na('<div class="toggle-container svelte-16pmvvn"><div></div></div> <!>',1);const Tl={hash:"svelte-16pmvvn",code:".eko-gallery-app {--toggleModule_gap: 8px;--toggleModule_padding: 10px 58px 0 0;--toggleModule_options_padding: 0;--toggleModule_options_height: auto;--toggleModule_options_width: 100%;--toggleModule_options_gap: 8px;--toggleModule_button_backgroundColor: #FFFFFF;--toggleModule_button_padding: 8px 12px;--toggleModule_button_boxShadow: 0px 2px 8px 2px rgba(0, 0, 0, 0.07);--toggleModule_button_text_fontFamily: var(--fontName);--toggleModule_button_text_fontSize: 12px;--toggleModule_button_text_fontWeight: 400;--toggleModule_button_text_fontStyle: normal;--toggleModule_button_text_lineHeight: 16px;--toggleModule_button_text_letterSpacing: -0.2px;--toggleModule_button_text_color: #000;--toggleModule_button_border_radius: 100px;--toggleModule_title_fontFamily: var(--fontName);--toggleModule_title_fontSize: 13px;--toggleModule_title_fontWeight: 400;--toggleModule_title_fontStyle: normal;--toggleModule_title_lineHeight: 120%;--toggleModule_title_letterSpacing: 0;--toggleModule_title_color: #666;--toggleModule_title_textAlignment: center;--toggleModule_note_fontFamily: var(--fontName);--toggleModule_note_fontSize: 12px;--toggleModule_note_fontWeight: 400;--toggleModule_note_fontStyle: normal;--toggleModule_note_lineHeight: 120%;--toggleModule_note_letterSpacing: 0;--toggleModule_note_color: #888;--toggleModule_note_topMargin: 4px;}.toggle-container.svelte-16pmvvn {position:absolute;top:0;padding:var(--toggleModule_padding);width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--toggleModule_gap);pointer-events:auto;box-sizing:border-box;}.toggle-options.svelte-16pmvvn {width:var(--toggleModule_options_width);height:var(--toggleModule_options_height);padding:var(--toggleModule_options_padding);gap:var(--toggleModule_options_gap);display:flex;justify-content:end;margin:0;}.toggle-option-container.svelte-16pmvvn {position:relative;min-width:0;}.toggle-option-button.svelte-16pmvvn {border-radius:var(--toggleModule_button_borderRadius);font-family:var(--toggleModule_button_text_fontFamily);font-size:var(--toggleModule_button_text_fontSize);font-weight:var(--toggleModule_button_text_fontWeight);font-style:var(--toggleModule_button_text_fontStyle);line-height:var(--toggleModule_button_text_lineHeight);letter-spacing:var(--toggleModule_button_text_letterSpacing);color:var(--toggleModule_button_text_color);padding:var(--toggleModule_button_padding);border:#E4E5E8 solid 1px;background:#FBFBFB;display:flex;width:100%;height:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;cursor:pointer;position:relative;transition:all 0.3s ease-in-out;animation-duration:0.5s;animation-timing-function:cubic-bezier(0.36, 0, 0, 1);animation-fill-mode:both;animation-delay:calc(var(--button-index) * 90ms);\n animation-name: svelte-16pmvvn-button-back-appear-anim;transform-origin:bottom center;border-radius:var(--toggleModule_button_border_radius);}.toggle-option-button.selected.svelte-16pmvvn {box-shadow:none;color:#FFFFFF;background:#014FD3;border-color:#014FD3;}.toggle-option-button.svelte-16pmvvn:hover:not(.selected) {background:#F3F4F6;}.toggle-option-button.svelte-16pmvvn:active:not(.selected) {background:#E4E5E8;}.toggle-option-button.svelte-16pmvvn:focus {outline-offset:4px;outline-width:2px;}\n\n@keyframes svelte-16pmvvn-button-back-appear-anim {\n from {\n transform: scale(0);\n }\n to {\n transform: scale(1);\n }\n}\n@keyframes svelte-16pmvvn-optionNoteIn {\n 0% {\n opacity: 0;\n translate: -50% -5px;\n }\n 100% {\n opacity: 1;\n translate: -50% var(--toggleModule_note_topMargin);\n }\n}"};function Il(t,e){Vi(e,!0),Aa(t,Tl);const n=ho((()=>e.state.options)),i=ho((()=>e.state.currentOptionIndex)),r=ho((()=>e.state.onOptionClicked)),o=ho((()=>e.state.textBox));var s=_l(),a=Vo(s),l=qo(a);Ta(l,21,(()=>qs(n)),xa,((t,n,o)=>{var s=xl();La(s,`--button-index: ${o};`);var a=qo(s);let l;var c=ho((()=>e.gallery.interaction((()=>qs(r)(o)))));a.__click=function(...t){var e;null===(e=qs(c))||void 0===e||e.apply(this,t)},Ga(a,"data-elementid",`${o+1}`);var u=qo(a,!0);Ni(a),Ni(s),os((()=>{l=Da(a,1,"toggle-option-button svelte-16pmvvn",null,l,{selected:qs(i)===o}),Ga(a,"data-elementname",qs(n).label),da(u,qs(n).label)})),ra(t,s)})),Ni(l),Ni(a);var c=Go(a,2),u=t=>{kl(t,{get textBox(){return qs(o)},get isMobile(){return e.isMobile},get gallery(){return e.gallery}})};wa(c,(t=>{qs(o)&&t(u)})),os((()=>{var t;return Da(l,1,`toggle-options selected-${null!==(t=qs(i))&&void 0!==t?t:""}`,"svelte-16pmvvn")})),ra(t,s),Gi()}Js(["click"]);var El=new WeakSet;function Sl(t){var e,n;t!==this.state.currentOptionIndex&&(this.state.currentOptionIndex=t,this.state.textBox=this.config.options[t].textBox,this.cover=this.coverAssets[t],this.synced?this.switchTo(t):(this.timeline=null===(e=this.timelines)||void 0===e?void 0:e[t],this.showCover=!0,ll(this.timeline,(()=>{this.showCover=!1})),null===(n=this.player)||void 0===n||n.switchTimeline(this.timeline)))}const Al=(t,e,n)=>n>e?e:n<t?t:n;function Nl(t,e){return e?`${t}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${e}`:t}let Ml=()=>{},Fl=()=>{};function Ol(t){let e;return()=>(void 0===e&&(e=t()),e)}"undefined"!=typeof process&&"production"!==(null===(fe=process.env)||void 0===fe?void 0:fe.NODE_ENV)&&(Ml=(t,e,n)=>{t||"undefined"==typeof console||console.warn(Nl(e,n))},Fl=(t,e,n)=>{if(!t)throw new Error(Nl(e,n))});const Cl=t=>t,Pl=t=>1e3*t,Dl=t=>t/1e3;const Rl=t=>Array.isArray(t)&&"number"==typeof t[0],Ll=(t,e,n=10)=>{let i="";const r=Math.max(Math.round(e/n),2);for(let e=0;e<r;e++)i+=Math.round(1e4*t(e/(r-1)))/1e4+", ";return`linear(${i.substring(0,i.length-2)})`},Bl=2e4;function zl(t){let e=0;let n=t.next(e);for(;!n.done&&e<Bl;)e+=50,n=t.next(e);return e>=Bl?1/0:e}const Wl=5;const jl={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},Ul=.001;function $l({duration:t=jl.duration,bounce:e=jl.bounce,velocity:n=jl.velocity,mass:i=jl.mass}){let r,o;Ml(t<=Pl(jl.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let s=1-e;s=Al(jl.minDamping,jl.maxDamping,s),t=Al(jl.minDuration,jl.maxDuration,Dl(t)),s<1?(r=e=>{const i=e*s,r=i*t,o=i-n,a=Vl(e,s),l=Math.exp(-r);return Ul-o/a*l},o=e=>{const i=e*s*t,o=i*n+n,a=Math.pow(s,2)*Math.pow(e,2)*t,l=Math.exp(-i),c=Vl(Math.pow(e,2),s);return(-r(e)+Ul>0?-1:1)*((o-a)*l)/c}):(r=e=>Math.exp(-e*t)*((e-n)*t+1)-Ul,o=e=>Math.exp(-e*t)*(t*t*(n-e)));const a=function(t,e,n){let i=n;for(let n=1;n<ql;n++)i-=t(i)/e(i);return i}(r,o,5/t);if(t=Pl(t),isNaN(a))return{stiffness:jl.stiffness,damping:jl.damping,duration:t};{const e=Math.pow(a,2)*i;return{stiffness:e,damping:2*s*Math.sqrt(i*e),duration:t}}}const ql=12;function Vl(t,e){return t*Math.sqrt(1-e*e)}const Gl=["duration","bounce"],Hl=["stiffness","damping","mass"];function Kl(t,e){return e.some((e=>void 0!==t[e]))}function Xl(t=jl.visualDuration,e=jl.bounce){const n="object"!=typeof t?{visualDuration:t,keyframes:[0,1],bounce:e}:t;let{restSpeed:i,restDelta:r}=n;const o=n.keyframes[0],s=n.keyframes[n.keyframes.length-1],a={done:!1,value:o},{stiffness:l,damping:c,mass:u,duration:d,velocity:h,isResolvedFromDuration:f}=function(t){let e={velocity:jl.velocity,stiffness:jl.stiffness,damping:jl.damping,mass:jl.mass,isResolvedFromDuration:!1,...t};if(!Kl(t,Hl)&&Kl(t,Gl))if(t.visualDuration){const n=t.visualDuration,i=2*Math.PI/(1.2*n),r=i*i,o=2*Al(.05,1,1-(t.bounce||0))*Math.sqrt(r);e={...e,mass:jl.mass,stiffness:r,damping:o}}else{const n=$l(t);e={...e,...n,mass:jl.mass},e.isResolvedFromDuration=!0}return e}({...n,velocity:-Dl(n.velocity||0)}),p=h||0,m=c/(2*Math.sqrt(l*u)),v=s-o,g=Dl(Math.sqrt(l/u)),y=Math.abs(v)<5;let b;if(i||(i=y?jl.restSpeed.granular:jl.restSpeed.default),r||(r=y?jl.restDelta.granular:jl.restDelta.default),m<1){const t=Vl(g,m);b=e=>{const n=Math.exp(-m*g*e);return s-n*((p+m*g*v)/t*Math.sin(t*e)+v*Math.cos(t*e))}}else if(1===m)b=t=>s-Math.exp(-g*t)*(v+(p+g*v)*t);else{const t=g*Math.sqrt(m*m-1);b=e=>{const n=Math.exp(-m*g*e),i=Math.min(t*e,300);return s-n*((p+m*g*v)*Math.sinh(i)+t*v*Math.cosh(i))/t}}const k={calculatedDuration:f&&d||null,next:t=>{const e=b(t);if(f)a.done=t>=d;else{let n=0===t?p:0;m<1&&(n=0===t?Pl(p):function(t,e,n){const i=Math.max(e-Wl,0);return r=n-t(i),(o=e-i)?r*(1e3/o):0;var r,o}(b,t,e));const o=Math.abs(n)<=i,l=Math.abs(s-e)<=r;a.done=o&&l}return a.value=a.done?s:e,a},toString:()=>{const t=Math.min(zl(k),Bl),e=Ll((e=>k.next(t*e).value),t,30);return t+"ms "+e},toTransition:()=>{}};return k}Xl.applyToOptions=t=>{const e=function(t,e=100,n){const i=n({...t,keyframes:[0,e]}),r=Math.min(zl(i),Bl);return{type:"keyframes",ease:t=>i.next(r*t).value/e,duration:Dl(r)}}(t,100,Xl);return t.ease=e.ease,t.duration=Pl(e.duration),t.type="keyframes",t};const Yl=t=>null!==t;class Ql{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise((t=>{this.resolve=t}))}notifyFinished(){this.resolve()}then(t,e){return this.finished.then(t,e)}}function Jl(t){for(let n=1;n<t.length;n++){var e;null!==(e=t[n])&&void 0!==e||(t[n]=t[n-1])}}const Zl=t=>t.startsWith("--");const tc=Ol((()=>void 0!==window.ScrollTimeline)),ec={};function nc(t,e){const n=Ol(t);return()=>{var t;return null!==(t=ec[e])&&void 0!==t?t:n()}}const ic=nc((()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0}),"linearEasing"),rc=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`,oc={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:rc([0,.65,.55,1]),circOut:rc([.55,0,1,.45]),backIn:rc([.31,.01,.66,-.59]),backOut:rc([.33,1.53,.69,.99])};function sc(t,e){return t?"function"==typeof t?ic()?Ll(t,e):"ease-out":Rl(t)?rc(t):Array.isArray(t)?t.map((t=>sc(t,e)||oc.easeOut)):oc[t]:void 0}function ac(t,e,n,{delay:i=0,duration:r=300,repeat:o=0,repeatType:s="loop",ease:a="easeOut",times:l}={},c=void 0){const u={[e]:n};l&&(u.offset=l);const d=sc(a,r);Array.isArray(d)&&(u.easing=d);const h={delay:i,duration:r,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:o+1,direction:"reverse"===s?"alternate":"normal"};c&&(h.pseudoElement=c);return t.animate(u,h)}class lc extends Ql{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:e,name:n,keyframes:i,pseudoElement:r,allowFlatten:o=!1,finalKeyframe:s,onComplete:a}=t;this.isPseudoElement=Boolean(r),this.allowFlatten=o,this.options=t,Fl("string"!=typeof t.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");const l=function({type:t,...e}){return function(t){return"function"==typeof t&&"applyToOptions"in t}(t)&&ic()?t.applyToOptions(e):(null!==(n=e.duration)&&void 0!==n||(e.duration=300),null!==(i=e.ease)&&void 0!==i||(e.ease="easeOut"),e);var n,i}(t);this.animation=ac(e,n,i,l,r),!1===l.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!r){const t=function(t,{repeat:e,repeatType:n="loop"},i,r=1){const o=t.filter(Yl),s=r<0||e&&"loop"!==n&&e%2==1?0:o.length-1;return s&&void 0!==i?i:o[s]}(i,this.options,s,this.speed);this.updateMotionValue?this.updateMotionValue(t):function(t,e,n){Zl(e)?t.style.setProperty(e,n):t.style[e]=n}(e,n,t),this.animation.cancel()}null==a||a(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){var t,e;null===(t=(e=this.animation).finish)||void 0===t||t.call(e)}cancel(){try{this.animation.cancel()}catch(t){}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;"idle"!==t&&"finished"!==t&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var t,e;this.isPseudoElement||(null===(t=(e=this.animation).commitStyles)||void 0===t||t.call(e))}get duration(){var t,e;const n=(null===(t=this.animation.effect)||void 0===t||null===(e=t.getComputedTiming)||void 0===e?void 0:e.call(t).duration)||0;return Dl(Number(n))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Dl(t)}get time(){return Dl(Number(this.animation.currentTime)||0)}set time(t){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Pl(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){var t;return null!==(t=this.manualStartTime)&&void 0!==t?t:Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,observe:e}){var n;this.allowFlatten&&(null===(n=this.animation.effect)||void 0===n||n.updateTiming({easing:"linear"}));return this.animation.onfinish=null,t&&tc()?(this.animation.timeline=t,Cl):e(this)}}class cc{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map((t=>t.finished)))}getAll(t){return this.animations[0][t]}setAll(t,e){for(let n=0;n<this.animations.length;n++)this.animations[n][t]=e}attachTimeline(t){const e=this.animations.map((e=>e.attachTimeline(t)));return()=>{e.forEach(((t,e)=>{t&&t(),this.animations[e].stop()}))}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get state(){return this.getAll("state")}get startTime(){return this.getAll("startTime")}get duration(){return uc(this.animations,"duration")}get iterationDuration(){return uc(this.animations,"iterationDuration")}runAll(t){this.animations.forEach((e=>e[t]()))}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}function uc(t,e){let n=0;for(let i=0;i<t.length;i++){const r=t[i][e];null!==r&&r>n&&(n=r)}return n}class dc extends cc{then(t,e){return this.finished.finally(t).then((()=>{}))}}const hc=new WeakMap,fc=(t,e="")=>`${t}:${e}`;function pc(t){const e=hc.get(t)||new Map;return hc.set(t,e),e}function mc(t,e){var n,i;return null!==(n=null!==(i=null==t?void 0:t[e])&&void 0!==i?i:null==t?void 0:t.default)&&void 0!==n?n:t}const vc=new Set(["borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","width","maxWidth","height","maxHeight","top","right","bottom","left","inset","insetBlock","insetBlockStart","insetBlockEnd","insetInline","insetInlineStart","insetInlineEnd","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingBlock","paddingBlockStart","paddingBlockEnd","paddingInline","paddingInlineStart","paddingInlineEnd","margin","marginTop","marginRight","marginBottom","marginLeft","marginBlock","marginBlockStart","marginBlockEnd","marginInline","marginInlineStart","marginInlineEnd","fontSize","backgroundPositionX","backgroundPositionY"]);function gc(t,e){for(let n=0;n<t.length;n++)"number"==typeof t[n]&&vc.has(e)&&(t[n]=t[n]+"px")}function yc(t,e){const n=window.getComputedStyle(t);return Zl(e)?n.getPropertyValue(e):n[e]}function bc(t,e,n,i){if(null==t)return[];const r=function(t){if(null==t)return[];if(t instanceof EventTarget)return[t];if("string"==typeof t){const e=document.querySelectorAll(t);return e?Array.from(e):[]}return Array.from(t).filter((t=>null!=t))}(t),o=r.length;Fl(Boolean(o),"No valid elements provided.","no-valid-elements");const s=[];for(let t=0;t<o;t++){const i=r[t],a={...n};"function"==typeof a.delay&&(a.delay=a.delay(t,o));for(const t in e){let n=e[t];Array.isArray(n)||(n=[n]);const r={...mc(a,t)};r.duration&&(r.duration=Pl(r.duration)),r.delay&&(r.delay=Pl(r.delay));const o=pc(i),l=fc(t,r.pseudoElement||""),c=o.get(l);c&&c.stop(),s.push({map:o,key:l,unresolvedKeyframes:n,options:{...r,element:i,name:t,allowFlatten:!a.type&&!a.ease}})}}for(let t=0;t<s.length;t++){const{unresolvedKeyframes:e,options:n}=s[t],{element:i,name:r,pseudoElement:o}=n;o||null!==e[0]||(e[0]=yc(i,r)),Jl(e),gc(e,r),!o&&e.length<2&&e.unshift(yc(i,r)),n.keyframes=e}const a=[];for(let t=0;t<s.length;t++){const{map:e,key:n,options:i}=s[t],r=new lc(i);e.set(n,r),r.finished.finally((()=>e.delete(n))),a.push(r)}return a}const kc=(()=>function(t,e,n){return new dc(bc(t,e,n))})();var wc=na('<button class="svelte-16kucsb"><div class="svelte-16kucsb"> </div></button>'),xc=na('<div class="tryIt-container svelte-16kucsb"><!></div>');const _c={hash:"svelte-16kucsb",code:".eko-gallery-app {--tryItModule_justifyContent: center;--tryItModule_alignItems: flex-end;--tryItModule_padding: 16px 20px 48px 20px;--tryItModule_button_padding: 16px 32px;--tryItModule_button_textAlign: center;--tryItModule_button_borderRadius: 100px;--tryItModule_button_border: 0;--tryItModule_button_boxShadow: 0 4px 24px 2px rgba(0, 0, 0, 0.12);--tryItModule_button_background: #FFFFFF;--tryItModule_button_text_fontFamily: var(--fontName);--tryItModule_button_text_fontSize: 18px;--tryItModule_button_text_color: #222;--tryItModule_button_text_weight: 500;--tryItModule_button_text_lineHeight: 120%;--tryItModule_button_text_letterSpacing: -0.1px;}.tryIt-container.svelte-16kucsb {position:relative;padding:var(--tryItModule_padding);width:100%;height:100%;box-sizing:border-box;display:flex;justify-content:var(--tryItModule_justifyContent);align-items:var(--tryItModule_alignItems);}.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) {padding:var(--tryItModule_button_padding);text-align:var(--tryItModule_button_textAlign);border-radius:var(--tryItModule_button_borderRadius);border:var(--tryItModule_button_border);background:var(--tryItModule_button_background);box-shadow:var(--tryItModule_button_boxShadow);font-family:var(--tryItModule_button_text_fontFamily);font-size:var(--tryItModule_button_text_fontSize);color:var(--tryItModule_button_text_color);font-weight:var(--tryItModule_button_text_weight);line-height:var(--tryItModule_button_text_lineHeight);letter-spacing:var(--tryItModule_button_text_letterSpacing);cursor:pointer;opacity:0;overflow:hidden;}.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) div:where(.svelte-16kucsb) {opacity:0;}"};function Tc(t,e){Vi(e,!0),Aa(t,_c);const n=ho((()=>e.state.ctaText)),i=ho((()=>e.state.animationConfig)),r=ho((()=>e.state.showCta)),o=ho((()=>e.state.onCtaClick));let s=null,a=null,l=_o(!1),c=!1;function u(){c&&kc(s,{transform:"scale(1.05)"},{type:Xl,mass:1.5,stiffness:400,damping:30})}function d(){c&&kc(s,{transform:"scale(1)"},{type:Xl,mass:1.5,stiffness:400,damping:30})}function h(){c&&kc(s,{transform:"scale(0.95)"},{type:Xl,mass:1,stiffness:600,damping:30})}es((()=>{const{mass:t,stiffness:e,damping:n,delay:o}=qs(i);let u;return qs(r)&&(u=setTimeout((async()=>{Io(l,!0),u=null,kc(s,{transform:["translateY(40px) scale(0, 0.2)","translateY(0) scale(1, 1)"],opacity:1},{type:Xl,mass:t,stiffness:e,damping:n}),await kc(a,{transform:["translateY(20px) scale(0.8)","translateY(0) scale(1)"],opacity:1},{type:Xl,mass:t,stiffness:e,damping:n,delay:.15}),c=!0}),o)),()=>{u&&clearTimeout(u)}}));var f=xc(),p=qo(f),m=t=>{var e=wc();e.__mousedown=h,e.__touchstart=h,e.__click=function(...t){var e;null===(e=qs(o))||void 0===e||e.apply(this,t)};var i=qo(e),r=qo(i,!0);Ni(i),tl(i,(t=>a=t),(()=>a)),Ni(e),tl(e,(t=>s=t),(()=>s)),os((()=>{La(e,"pointer-events: "+(qs(l)?"auto":"none")),da(r,qs(n))})),Qs("mouseenter",e,u),Qs("mouseleave",e,d),ra(t,e)};wa(p,(t=>{qs(r)&&t(m)})),Ni(f),ra(t,f),Gi()}Js(["mousedown","touchstart","click"]);var Ic=new WeakSet;function Ec(){this.mainTimeline?this.player.switchTimeline(this.mainTimeline):this.emitModuleEnd(),this.state.showCta=!1}const Sc={videoModule:class extends cl{constructor({config:t,...e}){var n;super({...e,config:t}),this.Component=wl,this.hasDuration=!t.loop,al(this),this.coverAssets.push(null!==(n=t.intro)&&void 0!==n?n:t.video),this.cover=this.coverAssets[0],this.state={textBox:t.textBox}}start(t){super.start(t),this.timeline=t.createTimeline();const e=this.config;e.intro&&this.timeline.placeOnTimeline(dl(`${this.id}_intro`,e.intro,t),"end");const n=dl(this.id,e.video,t);this.timeline.placeOnTimeline(n,"end",{loop:e.loop}),e.loop||n.on("nodeend",this.emitModuleEnd)}},toggleModule:class extends cl{constructor({config:t,...e}){super({...e,config:t}),U(this,El),this.Component=Il,this.synced=t.sync,this.switchTo=()=>{},al(this),this.coverAssets=t.options.map((t=>{var e;return null!==(e=t.intro)&&void 0!==e?e:t.video})),this.cover=this.coverAssets[0],this.state={options:t.options.map((t=>({label:t.label,note:t.note}))),currentOptionIndex:0,onOptionClicked:L(El,this,Sl).bind(this),textBox:t.options[0].textBox}}start(t){super.start(t),this.synced?(this.timeline=t.createTimeline(),this.config.options.forEach(((e,n)=>{this.timeline.placeOnTimeline(dl(`${this.id}_option_${n}`,e.video,t),0,{loop:!0})})),this.timeline.placeRenderNodeOnTimeline("switch",0,1/0,{params:{switchCrossfadeSeconds:.25,initSwitching:({switchTo:t})=>{this.switchTo=t,t(this.state.currentOptionIndex,{crossfadeSeconds:0})}}})):(this.timelines=this.config.options.map(((e,n)=>{const i=t.createTimeline();return e.intro&&i.placeOnTimeline(dl(`${this.id}_option_${n}_intro`,e.intro,t),"end"),i.placeOnTimeline(dl(`${this.id}_option_${n}`,e.video,t),"end",{loop:!0}),i})),this.timeline=this.timelines[this.state.currentOptionIndex])}},tryItModule:class extends cl{constructor({config:t,...e}){var n;super({...e,config:t}),U(this,Ic),al(this);const{introVideo:i}=t;this.coverAssets.push(null!==(n=i.intro)&&void 0!==n?n:i.loop),this.cover=this.coverAssets[0],this.state={ctaText:t.ctaText,animationConfig:t.animationConfig,showCta:!0,onCtaClick:L(Ic,this,Ec).bind(this)}}start(t){super.start(t),this.Component=Tc,this.timeline=t.createTimeline();const{introVideo:e,mainVideo:n}=this.config;if(e.intro&&this.timeline.placeOnTimeline(dl(`${this.id}_intro_intro`,e.intro,t)),this.timeline.placeOnTimeline(dl(`${this.id}_intro_loop`,e.loop,t),"end",{loop:!0}),n){this.mainTimeline=t.createTimeline(),n.intro&&this.mainTimeline.placeOnTimeline(dl(`${this.id}_main_intro`,n.intro,t));const e=dl(`${this.id}_main_loop`,n.loop,t);this.mainTimeline.placeOnTimeline(e,"end",{loop:!0})}}play(){this.state.showCta=!0,super.play()}}};class Ac{#d=Di(_o({}),"GalleryState.#variants");#h=Di(_o("ekonovar"),"GalleryState.#activeVariant");#f=Di(_o(0),"GalleryState.#activeItemIndex");#p=Di(_o(0),"GalleryState.#activeModuleIndex");#m=Di(_o(Fo({itemIndex:0,moduleIndex:0})),"GalleryState.#playingModulePosition");#v=Di(ho((()=>{var t;return null===(t=qs(this.#d))||void 0===t?void 0:t[qs(this.#h)]})),"GalleryState.#currentItemsList");#g=Di(ho((()=>{var t;return null===(t=qs(this.#v))||void 0===t?void 0:t[qs(this.#f)]})),"GalleryState.#currentItem");#y=Di(ho((()=>{var t,e;return qs(this.#b)?null===(e=qs(this.#v))||void 0===e?void 0:e[qs(this.#m).itemIndex].modules[qs(this.#m).moduleIndex]:null===(t=qs(this.#g))||void 0===t?void 0:t.modules[qs(this.#p)]})),"GalleryState.#currentModule");#k=Di(ho((()=>{var t;return(null===(t=qs(this.#v))||void 0===t?void 0:t.flatMap((t=>t.modules)))||[]})),"GalleryState.#currentModulesList");#w=Di(_o(!1),"GalleryState.#playerLoaded");#x=Di(_o(!1),"GalleryState.#paused");#b=Di(_o(!1),"GalleryState.#startedPlaying");#_=Di(ho((()=>!(Do(qs(this.#m).itemIndex,this.activeItemIndex)&&Do(qs(this.#m).moduleIndex,this.activeModuleIndex)))),"GalleryState.#seeking");set variants(t){Io(this.#d,t)}set activeVariant(t){Io(this.#h,t,!0)}set activeItemIndex(t){Io(this.#f,t,!0)}set activeModuleIndex(t){Io(this.#p,t,!0)}set playingModulePosition(t){Io(this.#m,t,!0)}set playerLoaded(t){Io(this.#w,t,!0)}set paused(t){Io(this.#x,t,!0)}set startedPlaying(t){Io(this.#b,t,!0)}get variants(){return qs(this.#d)}get activeVariant(){return qs(this.#h)}get activeItemIndex(){return qs(this.#f)}get activeModuleIndex(){return qs(this.#p)}get playingModulePosition(){return qs(this.#m)}get currentItemsList(){return qs(this.#v)}get currentItem(){return qs(this.#g)}get currentModule(){return qs(this.#y)}get playerLoaded(){return qs(this.#w)}get paused(){return qs(this.#x)}get startedPlaying(){return qs(this.#b)}get seeking(){return qs(this.#_)}get currentModulesList(){return qs(this.#k)}}const Nc={assetsDeliveryBase:"https://{{env}}assets.eko.com"};const Mc=2,Fc=5,Oc=["activeItemIndex","activeModuleIndex","paused","startedPlaying"],Cc=["version","selectItem","selectItemAndStep","next","prev","subscribe"];var Pc=new WeakMap,Dc=new WeakMap,Rc=new WeakMap,Lc=new WeakMap,Bc=new WeakMap,zc=new WeakMap,Wc=new WeakSet;class jc{constructor(t){var e,n,i,r,o;U(this,Wc),W(this,Pc,void 0),W(this,Dc,void 0),W(this,Rc,void 0),W(this,Lc,void 0),W(this,Bc,void 0),W(this,zc,void 0),$(this,"public",void 0),$(this,"version","0.0.16"),al(this),j(Pc,this,(null===(e=crypto)||void 0===e||null===(n=e.randomUUID)||void 0===n?void 0:n.call(e))||`eko-gallery-${Date.now()}`),j(Lc,this,t),j(zc,this,(null==t?void 0:t.onEvent)||(()=>{})),j(Dc,this,new Ac(null==t||null===(i=t.options)||void 0===i?void 0:i.galleryEnv)),j(Bc,this,((t="")=>(Do(t,"production")&&(t=""),Object.fromEntries(Object.entries(Nc).map((([e,n])=>[e,n.replaceAll("{{env}}",t)])))))(null==t||null===(r=t.options)||void 0===r?void 0:r.galleryEnv)),j(Rc,this,[]);const s=null==t||null===(o=t.instance)||void 0===o||null===(o=o.data)||void 0===o||null===(o=o.blocks)||void 0===o||null===(o=o.blocksArr)||void 0===o||null===(o=o.find((t=>Do(t.blockType,"GalleryBlock"))))||void 0===o?void 0:o.config;var a;s?(L(Wc,this,Uc).call(this,s.items),L(Wc,this,$c).call(this,s.items),function(t,e){function n(e){window.EkoAnalytics("registerContextPacker",{tag:t,...e})}function i(e){return function(...n){return n.pop()!==t?null:e(...n)}}"undefined"!=typeof window&&window.EkoAnalytics&&(n({schema:"iglu:com.helloeko/gallery-app/jsonschema/1-0-0",match:/.*/,getData:i((()=>{var t,n,i,r,o;const s=null===(t=e.currentItem)||void 0===t?void 0:t.modules[e.activeModuleIndex];return{itemid:(null===(n=e.currentItem)||void 0===n?void 0:n.id)||"",itemindex:e.activeItemIndex,totalitems:(null===(i=e.currentItemsList)||void 0===i?void 0:i.length)||0,itemname:(null===(r=e.currentItem)||void 0===r?void 0:r.name)||"",moduleid:(null==s?void 0:s.id)||"",modulename:(null==s?void 0:s.name)||"",moduletype:(null==s?void 0:s.config.itemType)||"",moduleindex:e.activeModuleIndex,totalmodules:(null===(o=e.currentItem)||void 0===o?void 0:o.modules.length)||0,version:"0.0.16"}}))}),n({schema:"iglu:com.helloeko/implementation_interactions/jsonschema/1-0-6",match:"interaction",getData:i((t=>t))}))}(z(Pc,this),z(Dc,this))):console.warn("[eko-gallery-app] Gallery initiated without an instance, results will be empty"),this.public=(a=this,Cc.reduce(((t,e)=>{if(!(e in a))throw new Error(`[eko-gallery-app] Public API member "${e}" does not exist on GalleryLogic`);const n=a[e];return t[e]=Do(typeof n,"function")?n.bind(a):n,t}),{}))}dispose(){var t,e;Do(typeof window,"undefined",!1)&&(null===(t=(e=window).EkoAnalytics)||void 0===t||t.call(e,"reset",z(Pc,this)))}start(t){z(Dc,this).playerLoaded=!0,z(Rc,this).forEach((e=>{e.start(t)})),j(Rc,this,null),L(Wc,this,qc).call(this,t),z(Dc,this).currentModule.play()}selectItem(t){const e=z(Dc,this);Do(t,e.activeItemIndex)||(e.activeItemIndex=t,e.activeModuleIndex=0)}selectItemAndStep(t,e){const n=z(Dc,this);Do(t,n.activeItemIndex)&&Do(e,n.activeModuleIndex)||(n.activeItemIndex=t,n.activeModuleIndex=e)}next(){L(Wc,this,Gc).call(this)}prev(){const t=z(Dc,this);if(t.activeModuleIndex=t.activeModuleIndex-1,!t.currentItem.modules[t.activeModuleIndex])if(t.currentItemsList[t.activeItemIndex-1]){t.activeItemIndex=t.activeItemIndex-1;const e=t.currentItemsList[t.activeItemIndex];t.activeModuleIndex=e.modules.length-1}else t.activeModuleIndex=t.activeModuleIndex+1}subscribe(t){const e=z(Dc,this);return function(t){xr.ensure();const e=Jo(Hn|oi,t,!0);return()=>{ds(e)}}((()=>{es((()=>{const n=Oc.reduce(((t,n)=>(t[n]=e[n],t)),{});t(n)}))}))}getCoverUrl(t,e){var n,i,r,o;const s=(null==t||null===(n=t.entity)||void 0===n?void 0:n.entityId)||(null==t?void 0:t.assetId),a=null!==(i=null==t||null===(r=t.entity)||void 0===r?void 0:r.entityRevision)&&void 0!==i?i:null==t?void 0:t.assetRevision;if(!s)throw new Error(`[getCoverUrl] No assetId found in assetConfig: ${JSON.stringify(t||{},null,2)}`);if(!a&&Do(a,0,!1))throw new Error(`[getCoverUrl] No assetRevision found for asset ${s}.`);let l;return null!==(o=z(Lc,this))&&void 0!==o&&null!==(o=o.coverAssetsMap)&&void 0!==o&&o[s]?(l=new URL(z(Lc,this).coverAssetsMap[s]),/^[a-z0-9]*assets.eko.com$/.test(l.host)&&e&&(l.pathname=l.pathname.replace(".png",".webp"))):(l=new URL(`${z(Bc,this).assetsDeliveryBase}/image/${s}/${a}?startOffset=0`),l.pathname+=e?".webp":".png"),e&&l.searchParams.set("width",e),l.href}track(t,...e){var n,i;Do(typeof window,"undefined",!1)&&(null===(n=(i=window).EkoAnalytics)||void 0===n||n.call(i,"track",t,...e,z(Pc,this)))}interaction(t,e){const n=z(Pc,this);return i=>{if(Do(typeof window,"undefined",!1)){var r,o,s,a;const t=null==i||null===(r=i.target)||void 0===r?void 0:r.dataset;let l;null!=i&&null!==(o=i.detail)&&void 0!==o&&o.direction&&(Do(i.detail.direction,"left")?l="swipe_next":Do(i.detail.direction,"right")&&(l="swipe_prev"));const c={elementid:(null==t?void 0:t.elementid)||(null==e?void 0:e.elementid)||"",elementtype:(null==t?void 0:t.elementtype)||(null==e?void 0:e.elementtype)||"",elementname:(null==t?void 0:t.elementname)||(null==e?void 0:e.elementname)||"",interactiontype:l||(null==t?void 0:t.interactiontype)||(null==e?void 0:e.interactiontype)||""};null===(s=(a=window).EkoAnalytics)||void 0===s||s.call(a,"track","interaction",c,n),z(zc,this).call(this,"interaction",c)}t(i)}}get uuid(){return z(Pc,this)}get state(){return z(Dc,this)}get urls(){return z(Bc,this)}}function Uc(t){const e={};for(let n of t)for(let t of Object.keys(n.variants||{}))e[t]=[];e.ekonovar=[],z(Dc,this).variants=e}function $c(t){const e=(t=[],e)=>{const n=[];for(let[i,r]of t.entries()){if(!Sc[r.itemType])throw new Error(`Unknown module type ${r.itemType}`);const t=new Sc[r.itemType]({position:{...e,moduleIndex:i},config:r,gallery:this});t.moduleEndListener=L(Wc,this,Vc).bind(this),n.push(t)}return n};for(const[i,r]of t.entries())if(Do(r.itemType,"galleryItemV2")){const{modules:t,...o}=r;for(const[s,a]of Object.entries(z(Dc,this).variants)){var n;if(null===(n=r.variants)||void 0===n?void 0:n[s])console.log("NO IMPLEMENTED");else{const n={...o};n.modules=e(t,{variantId:s,itemIndex:i}),j(Rc,this,[...z(Rc,this),...n.modules]),a.push(n)}}}}function qc(t){for(const[,e]of Object.entries(z(Dc,this).variants))for(const[n,i]of e.entries()){const r=i.modules,o=e.filter((t=>Do(t,i,!1))).map((t=>t.modules[0]));for(const[i,s]of r.entries()){let a=r[i+1];a||(a=e[(n+1)%e.length].modules[0]);const l=a.timeline.getNodesAtTime(0)[0],c=o.filter((t=>Do(t,a,!1))).map((t=>t.timeline.getNodesAtTime(0)[0])),u=[{nodeId:l.id,weight:Mc},...c.map((t=>({nodeId:t.id,weight:Fc})))];for(const e of s.timeline.placements){t.getNode(e.nodeId).setChildren(u)}}}}function Vc(){const t=z(Dc,this),e=t.currentItem.modules;e.length>1&&Do(t.activeModuleIndex,e.length-1)?t.activeModuleIndex=0:L(Wc,this,Gc).call(this)}function Gc(){const t=z(Dc,this);t.activeModuleIndex=t.activeModuleIndex+1,t.currentItem.modules[t.activeModuleIndex]||(t.currentItemsList[t.activeItemIndex+1]?(t.activeItemIndex=t.activeItemIndex+1,t.activeModuleIndex=0):t.activeModuleIndex=t.activeModuleIndex-1)}var Hc=na('<button><span class="svelte-er27y2"> </span></button>'),Kc=na('<div class="nav-buttons-container svelte-er27y2"><div class="nav-buttons svelte-er27y2"></div></div>');const Xc={hash:"svelte-er27y2",code:".eko-gallery-app {--nav_gap: 10px;--nav_padding: 12px 16px;--nav_bgColor: #FFFFFF;--nav_justifyContent: center;--nav_button_width: fit-content;--nav_button_bgColor: #FFFFFF;--nav_button_borderRadius: 100px;--nav_button_paddingTop: 8px;--nav_button_paddingBottom: var(--nav_button_paddingTop);--nav_button_paddingLeft: 12px;--nav_button_paddingRight: var(--nav_button_paddingLeft);--nav_button_boxShadow: 0 0 0 1px #E7E7E7;--nav_button_gap: 2px;--nav_button_selected_boxShadow: 0 0 0 1px #000000;--nav_button_selected_bgColor: var(--nav_button_bgColor);--nav_button_text_color: #000000;--nav_button_text_fontSize: 14px;--nav_button_text_fontWeight: 500;--nav_button_text_fontFamily: var(--fontName);--nav_button_text_lineHeight: 120%;--nav_button_text_letterSpacing: 0px;--nav_button_text_align: center;--nav_button_selected_text_color: var(--nav_button_text_color);--nav_button_selected_text_fontWeight: var(--nav_button_text_fontWeight);--nav_button_image_borderRadius: calc(var(--nav_button_borderRadius) - var(--nav_button_paddingTop));--nav_arrow_color: var(--secondaryColor);--nav_arrow_bgColor: var(--primaryColor);--nav_arrow_padding: 9px;--nav_arrow_size: 28px;--nav_arrow_boxShadow: 0 0 8px 0 rgba(0, 0, 0, 0.3);}.nav-buttons-container.svelte-er27y2 {width:100%;background-color:var(--nav_bgColor);height:var(--buttonsContainerHeight);display:flex;box-sizing:border-box;text-align:center;justify-content:var(--nav_justifyContent);align-items:center;position:relative;flex-shrink:0;}.nav-buttons-container.svelte-er27y2 :where(.svelte-er27y2) {touch-action:auto;}.nav-buttons.svelte-er27y2 {display:flex;margin:0;gap:var(--nav_gap);height:100%;align-items:center;padding:var(--nav_padding);box-sizing:border-box;overflow-x:auto;scrollbar-width:none;max-width:100%;width:fit-content;overflow-y:hidden;overscroll-behavior-y:none;}.nav-button.svelte-er27y2 {display:flex;outline:none;flex-shrink:0;height:100%;width:var(--nav_button_width);border:none;cursor:pointer;align-items:center;gap:var(--nav_button_gap);background-color:var(--nav_button_bgColor);border-radius:var(--nav_button_borderRadius);\n /* eslint-disable-next-line max-len */padding:var(--nav_button_paddingTop) var(--nav_button_paddingRight) var(--nav_button_paddingBottom) var(--nav_button_paddingLeft);box-shadow:var(--nav_button_boxShadow);}.nav-button.svelte-er27y2 span:where(.svelte-er27y2) {flex:1 0 0;transition:color 0.2s ease-in-out;color:var(--nav_button_text_color);font-weight:var(--nav_button_text_fontWeight);font-size:var(--nav_button_text_fontSize);font-family:var(--nav_button_text_fontFamily);line-height:var(--nav_button_text_lineHeight);letter-spacing:var(--nav_button_text_letterSpacing);text-align:var(--nav_button_text_align);}.nav-button.selected.svelte-er27y2 {background-color:var(--nav_button_selected_bgColor);box-shadow:var(--nav_button_selected_boxShadow);}.nav-button.selected.svelte-er27y2 span:where(.svelte-er27y2) {color:var(--nav_button_selected_text_color);font-weight:var(--nav_button_selected_text_fontWeight);}"};Js(["click"]);const Yc="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20320%20512'%3e%3cpath%20d='M310.6%20233.4c12.5%2012.5%2012.5%2032.8%200%2045.3l-192%20192c-12.5%2012.5-32.8%2012.5-45.3%200s-12.5-32.8%200-45.3L242.7%20256%2073.4%2086.6c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200l192%20192z'/%3e%3c/svg%3e";var Qc=na('<button><img class="svelte-1al44kl"/></button>');const Jc={hash:"svelte-1al44kl",code:'.nav-button.svelte-1al44kl {height:30px;width:30px;border-radius:100%;background-color:transparent;padding:9px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;pointer-events:auto;border:0;opacity:100%;cursor:pointer;transition-property:background-color, box-shadow, opacity;position:relative;}.nav-button.prev.svelte-1al44kl {transform:rotate(180deg);}.nav-button.hidden.svelte-1al44kl {opacity:0;pointer-events:none;}.nav-button.svelte-1al44kl::before {content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;}.nav-button.svelte-1al44kl img:where(.svelte-1al44kl) {height:100%;}'};function Zc(t,e){Aa(t,Jc);const n=nl(e,"hidden",3,!1);var i=Qc();let r;i.__click=function(...t){var n;null===(n=e.onClick)||void 0===n||n.apply(this,t)};var o=qo(i);Ni(i),os((()=>{var t;r=Da(i,1,`nav-button ${null!==(t=e.type)&&void 0!==t?t:""}`,"svelte-1al44kl",r,{hidden:n()}),Ga(i,"aria-label",e.type),Ga(o,"src",Yc),Ga(o,"alt",e.type)})),ra(t,i)}Js(["click"]);var tu=na('<button data-elementtype="step-indicator" data-interactiontype="navigation"><span class="svelte-1mxltt0"> </span></button>'),eu=na('<div class="steps-indicator-container svelte-1mxltt0"><button aria-label="Scroll to previous steps"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="svelte-1mxltt0"><path d="M12.8333 16.6668C12.68 16.6668 12.5266 16.5935 12.4266 16.4601L9.42663 12.2935C9.36482 12.2081 9.33154 12.1055 9.33154 12.0001C9.33154 11.8948 9.36482 11.7921 9.42663 11.7068L12.4266 7.54012C12.4651 7.48671 12.5138 7.44142 12.5698 7.40682C12.6259 7.37222 12.6882 7.349 12.7532 7.33848C12.8182 7.32795 12.8846 7.33033 12.9487 7.34549C13.0128 7.36064 13.0732 7.38826 13.1266 7.42678C13.18 7.46531 13.2253 7.51397 13.2599 7.56999C13.2945 7.62602 13.3177 7.68831 13.3283 7.75331C13.3388 7.81831 13.3364 7.88475 13.3213 7.94883C13.3061 8.01291 13.2785 8.07338 13.24 8.12678L10.4466 12.0001L13.2333 15.8735C13.2864 15.9479 13.3181 16.0355 13.3251 16.1267C13.332 16.2179 13.314 16.3092 13.2728 16.3909C13.2316 16.4725 13.1689 16.5414 13.0915 16.59C13.014 16.6386 12.9247 16.6652 12.8333 16.6668Z" fill="#030303" class="svelte-1mxltt0"></path></svg></button> <div role="group" aria-roledescription="Sequence navigation buttons"></div> <button aria-label="Scroll to next steps"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="svelte-1mxltt0"><path d="M11.1668 16.6666C11.0668 16.6666 10.9601 16.6333 10.8734 16.5733C10.8199 16.5348 10.7746 16.4862 10.7399 16.4302C10.7053 16.3741 10.682 16.3118 10.6715 16.2468C10.6609 16.1818 10.6634 16.1153 10.6786 16.0512C10.6938 15.9871 10.7215 15.9266 10.7601 15.8733L13.5534 11.9999L10.7601 8.12661C10.6001 7.89994 10.6468 7.59328 10.8734 7.42661C11.1001 7.26661 11.4068 7.31994 11.5734 7.53994L14.5734 11.7066C14.7001 11.8799 14.7001 12.1133 14.5734 12.2933L11.5734 16.4599C11.4734 16.5933 11.3201 16.6666 11.1668 16.6666Z" fill="#030303" class="svelte-1mxltt0"></path></svg></button></div>');const nu={hash:"svelte-1mxltt0",code:'.steps-indicator-container.svelte-1mxltt0 {width:calc(100% - 16px);position:absolute;bottom:12px;left:8px;animation-duration:0.75s;animation-timing-function:cubic-bezier(0.36, 0, 0, 1);animation-fill-mode:both;animation-delay:0.15s;\n animation-name: svelte-1mxltt0-gallery-steps-appear-anim;}.steps-indicator.svelte-1mxltt0 {--stepSize: 6px;--stepPadding: 7px;padding:4px 4px;margin:0 16px;display:flex;gap:8px;align-items:center;overflow-x:auto;pointer-events:all;scrollbar-width:none;}.steps-indicator.fade-right.svelte-1mxltt0 {mask-image:linear-gradient(to right, black calc(100% - 20px), transparent);}.steps-indicator.fade-left.svelte-1mxltt0 {mask-image:linear-gradient(to left, black calc(100% - 20px), transparent);}.steps-indicator.fade-left.fade-right.svelte-1mxltt0 {mask-image:linear-gradient(to right, transparent, black 20px, black calc(100% - 20px), transparent);}.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0) {position:relative;overflow:hidden;}.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0):after {transition:0.3s ease-in-out;transition-property:opacity, width;}.step-button.svelte-1mxltt0 {padding:8px 12px;border:#E4E5E8 solid 1px;background-color:#FBFBFB;cursor:pointer;pointer-events:all;flex-shrink:0;border-radius:100px;font-size:12px;font-weight:500;line-height:16px;color:#030303;transition:all 0.3s ease-in-out;outline-color:#3191fc;}.step-button.active.svelte-1mxltt0 {background-color:#014FD3;color:#FFFFFF;box-shadow:none;border-color:#014FD3;}.step-button.active.svelte-1mxltt0:after {opacity:100%;\n animation: svelte-1mxltt0-stepDurationAnimation var(--stepDuration) linear forwards;animation-play-state:running;}.step-button.svelte-1mxltt0:hover:not(.active) {background:#F3F4F6;}.step-button.svelte-1mxltt0:active:not(.active) {background:#E4E5E8;}.step-button.svelte-1mxltt0:focus {outline-offset:4px;outline-width:2px;}.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0) {display:block;box-sizing:border-box;pointer-events:none;white-space:nowrap;}.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0):after {content:"";background-color:rgba(0, 0, 0, 0.6);position:absolute;border-radius:var(--stepSize);width:0;height:100%;top:0;left:-100%;opacity:0;transform:translateX(0);animation-play-state:paused;}.step-arrow.svelte-1mxltt0 {width:34px;height:34px;position:absolute;z-index:10;bottom:4px;border:1px solid #C4C8CF;border-radius:50%;background-color:#FFFFFF;box-shadow:0 2px 3px 0 rgba(0, 0, 0, 0.05);box-sizing:border-box;display:flex;align-items:center;justify-content:center;pointer-events:none;cursor:pointer;opacity:0;}.step-arrow.svelte-1mxltt0:hover {background:#F6F6F7;}.step-arrow.svelte-1mxltt0:active {background:#E4E5E8;}.step-arrow-prev.svelte-1mxltt0 {left:3px;transform:translateX(-100%);\n animation: svelte-1mxltt0-arrow-left-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-prev.visible.svelte-1mxltt0 {pointer-events:auto;\n animation: svelte-1mxltt0-arrow-left-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-next.svelte-1mxltt0 {right:3px;transform:translateX(100%);\n animation: svelte-1mxltt0-arrow-right-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-next.visible.svelte-1mxltt0 {pointer-events:auto;\n animation: svelte-1mxltt0-arrow-right-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}\n\n@keyframes svelte-1mxltt0-gallery-steps-appear-anim {\n from {\n opacity: 0;\n transform: translate(0, 10px);\n }\n to {\n opacity: 1;\n transform: translate(0, 0);\n }\n}\n@keyframes svelte-1mxltt0-gallery-steps-disappear-anim {\n from {\n opacity: 1;\n transform: translate(0, 0);\n }\n to {\n opacity: 0;\n transform: translate(0, 10px);\n }\n}\n@keyframes svelte-1mxltt0-arrow-left-appear {\n from {\n opacity: 0;\n transform: translateX(-100%);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes svelte-1mxltt0-arrow-left-disappear {\n from {\n opacity: 1;\n transform: translateX(0);\n }\n to {\n opacity: 0;\n transform: translateX(-100%);\n }\n}\n@keyframes svelte-1mxltt0-arrow-right-appear {\n from {\n opacity: 0;\n transform: translateX(100%);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes svelte-1mxltt0-arrow-right-disappear {\n from {\n opacity: 1;\n transform: translateX(0);\n }\n to {\n opacity: 0;\n transform: translateX(100%);\n }\n}\n@keyframes svelte-1mxltt0-stepDurationAnimation {\n 0% {\n transform: translateX(0);\n }\n 100% {\n transform: translateX(100%);\n }\n}'};function iu(t,e){Vi(e,!0),Aa(t,nu);const n=16,i=32;let r=nl(e,"gallery",7),o=_o(null),s=_o(null),a=_o(!1),l=_o(!1);const c=ho((()=>{let t=[];return t=r().state.currentItem.modules.map(((t,e)=>({index:e,type:e===r().state.activeModuleIndex?"active":"",name:t.name}))),t}));function u(){qs(o)&&(Io(a,qs(o).scrollLeft>0),Io(l,qs(o).scrollLeft+qs(o).clientWidth<qs(o).scrollWidth-0))}function d(t){qs(o).scrollBy({left:t,behavior:"smooth"})}function h(t,e){const r=t.getBoundingClientRect(),o=e.getBoundingClientRect(),s=n+i;o.left<r.left+i?d(o.left-r.left-s):o.right>r.right-i&&d(o.right-r.right+s)}function f(){const t=Array.from(qs(o).querySelectorAll(".step-button")).find((t=>{const e=t.getBoundingClientRect(),n=qs(o).getBoundingClientRect();return e.left>n.left+i}));if(t){const e=t.previousElementSibling;e&&h(qs(o),e)}}function p(){const t=Array.from(qs(o).querySelectorAll(".step-button")).reverse().find((t=>{const e=t.getBoundingClientRect(),n=qs(o).getBoundingClientRect();return e.right<n.right-i}));if(t){const e=t.nextElementSibling;e&&h(qs(o),e)}}es((()=>{if(qs(o)){u();const t=qs(o).querySelector(".step-button.active");t&&Io(s,t,!0);const e=new MutationObserver((()=>{const t=qs(o).querySelector(".step-button.active");t&&Io(s,t,!0)}));e.observe(qs(o),{attributes:!0,attributeFilter:["class"],subtree:!0});const n=new ResizeObserver((()=>{u()}));return n.observe(qs(o)),()=>{e.disconnect(),n.disconnect()}}})),es((()=>{qs(c),qs(o)&&$s().then(u)})),es((()=>{qs(s)&&qs(o)&&h(qs(o),qs(s))}));var m=ia();Qs("resize",Ro,u),function(t,e,n){Ii&&Ai();var i=new ya(t);ss((()=>{var t=e();i.ensure(t,n)}))}(Vo(m),(()=>r().state.activeItemIndex),(t=>{var e=eu(),n=qo(e);let i;n.__click=f;var s=Go(n,2);let d;Ta(s,21,(()=>qs(c)),xa,((t,e)=>{var n=tu();let i;var s=ho((()=>r().interaction((t=>{return n=t.currentTarget,i=qs(e).index,r().state.activeModuleIndex=i,void h(qs(o),n);var n,i}))));n.__click=function(...t){var e;null===(e=qs(s))||void 0===e||e.apply(this,t)};var a=qo(n),l=qo(a,!0);Ni(a),Ni(n),os((()=>{i=Da(n,1,"step-button svelte-1mxltt0",null,i,{active:"active"===qs(e).type}),Ga(n,"aria-label",`Go to step $${qs(e).index+1}`),Ga(n,"data-elementid",`${qs(e).index+1}`),Ga(n,"data-elementname",qs(e).name),da(l,qs(e).name)})),ra(t,n)})),Ni(s),tl(s,(t=>Io(o,t)),(()=>qs(o)));var m=Go(s,2);let v;m.__click=p,Ni(e),os((()=>{var t;i=Da(n,1,"step-arrow step-arrow-prev svelte-1mxltt0",null,i,{visible:qs(a)}),d=Da(s,1,"steps-indicator svelte-1mxltt0",null,d,{"with-duration":r().state.currentModule.hasDuration,paused:r().state.paused,"fade-left":qs(a),"fade-right":qs(l)}),La(s,`--stepDuration: ${null!==(t=r().state.currentModule.duration)&&void 0!==t?t:""}s`),v=Da(m,1,"step-arrow step-arrow-next svelte-1mxltt0",null,v,{visible:qs(l)})})),Qs("scroll",s,u),ra(t,e)})),ra(t,m),Gi()}Js(["click"]);const ru="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.01318%203.42005C3.01318%202.06672%204.50652%201.26672%205.66652%201.90672C6.82652%202.54672%2014.0732%206.48672%2014.0732%206.48672C15.2865%207.15339%2015.2865%208.86005%2014.0732%209.52005L5.66652%2014.1001C4.50652%2014.7334%203.01318%2013.9401%203.01318%2012.5801V3.42005ZM3.98652%2012.5801C3.98652%2013.1334%204.63318%2013.5467%205.19985%2013.2401L13.6065%208.66005C14.1399%208.36672%2014.1465%207.63339%2013.6065%207.34005C13.0665%207.04672%205.19985%202.76005%205.19985%202.76005C4.63985%202.44672%203.98652%202.86005%203.98652%203.42005V12.5801Z'%20fill='%23030303'/%3e%3c/svg%3e",ou="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M10.8332%2014C10.5598%2014%2010.3332%2013.7733%2010.3332%2013.5V2.5C10.3332%202.22667%2010.5598%202%2010.8332%202C11.1065%202%2011.3332%202.22667%2011.3332%202.5V13.5C11.3332%2013.7733%2011.1065%2014%2010.8332%2014ZM5.1665%2014C4.89317%2014%204.6665%2013.7733%204.6665%2013.5V2.5C4.6665%202.22667%204.89317%202%205.1665%202C5.43984%202%205.6665%202.22667%205.6665%202.5V13.5C5.6665%2013.7733%205.43984%2014%205.1665%2014Z'%20fill='%23030303'/%3e%3c/svg%3e";var su=na('<img alt="Play" class="svelte-a3r6re"/>'),au=na('<img alt="Pause" class="svelte-a3r6re"/>'),lu=na('<button class="pause-button svelte-a3r6re" data-elementid="play_pause" data-elementtype="button"><!></button>');const cu={hash:"svelte-a3r6re",code:".pause-button.svelte-a3r6re {position:absolute;top:10px;right:10px;background:#FFFFFF;border-radius:100%;border:1px #C4C8CF solid;padding:0;width:32px;height:32px;display:flex;justify-content:center;align-items:center;pointer-events:auto;transition:background 0.2s ease-in-out;cursor:pointer;outline-color:#3191fc;}.pause-button.svelte-a3r6re:hover {background:#F6F6F7;}.pause-button.svelte-a3r6re:active {background:#E4E5E8;}.pause-button.svelte-a3r6re:focus {outline-offset:8px;outline-width:2px;}.pause-button.svelte-a3r6re img:where(.svelte-a3r6re) {width:16px;height:16px;pointer-events:none;}"};Js(["click"]);const uu=300,du=60,hu="none";function fu(t,e,n){return t.addEventListener(e,n),()=>t.removeEventListener(e,n)}function pu(t,e,n){const{x:i,y:r}=function(t,e){const n=t.getBoundingClientRect();return{x:Math.round(e.clientX-n.left),y:Math.round(e.clientY-n.top)}}(t,e);return{event:e,pointersCount:n.length,target:e.target,x:i,y:r,attachmentNode:t}}function mu(t,e,n,i,r){const o=pu(t,n,i);return t.dispatchEvent(new CustomEvent(`${e}${r}`,{detail:o})),o}function vu(){let t=[],e=()=>{},n=[];return{setPointerControls:(i,r,o,s,a,l=hu,c=[])=>{var u;if(r.style.touchAction=(u=l,Array.isArray(u)?u:[u]).join(" "),n=c,n.forEach((e=>{var n;null===(n=e.onInit)||void 0===n||n.call(e,t)})),!t.length){let l=function(e){t.push(e);const l=mu(r,i,e,t,"down");function c(e){const o=t.length;t=function(t,e){return e.filter((e=>Do(t.pointerId,e.pointerId,!1)))}(e,t);if(o>t.length){t.length||(u(),d(),h(),f());const o=mu(r,i,e,t,"up");null==a||a(t,e),setTimeout((()=>{n.forEach((e=>{var n;null===(n=e.onUp)||void 0===n||n.call(e,o,t)}))}))}}null==s||s(t,e),setTimeout((()=>{n.forEach((e=>{var n;null===(n=e.onDown)||void 0===n||n.call(e,l,t)}))}));const u=fu(r,"pointermove",(e=>{t=t.map((t=>Do(e.pointerId,t.pointerId)?e:t));const s=mu(r,i,e,t,"move");null==o||o(t,e),n.forEach((e=>{var n;null===(n=e.onMove)||void 0===n||n.call(e,s,t)}))})),d=fu(r,"lostpointercapture",(t=>{c(t)})),h=fu(r,"pointerup",(t=>{c(t)})),f=fu(r,"pointerleave",(t=>{c(t)}))};e=fu(r,"pointerdown",l)}return{destroy:()=>{t.length||(e(),n.forEach((t=>{var e;null===(e=t.onDestroy)||void 0===e||e.call(t)})))}}}}}const gu="@attach";function yu(){return Symbol(gu)}const bu="swipe";function ku(t,e,n,i=!1){const{setPointerControls:r}=vu(),o=i?bu:yu();return{...n,[`on${bu}`]:t,[o]:t=>{const{onDown:n,onUp:i,parameters:o}=function(t,e){const n={timeframe:uu,minSwipeDistance:du,touchAction:hu,composed:!1,...e};let i,r,o,s;function a(t,e){r=e.clientX,o=e.clientY,i=Date.now(),Do(t.length,1)&&(s=e.target)}function l(e,a){if(Do(a.type,"pointerup")&&Do(e.length,0)&&Date.now()-i<n.timeframe){const e=a.clientX-r,i=a.clientY-o,l=Math.abs(e),c=Math.abs(i);let u=null;l>=2*c&&l>n.minSwipeDistance?u=e>0?"right":"left":c>=2*l&&c>n.minSwipeDistance&&(u=i>0?"bottom":"top"),u&&t.dispatchEvent(new CustomEvent(bu,{detail:{direction:u,target:s,pointerType:a.pointerType}}))}}return{onDown:a,onUp:l,parameters:n}}(t,null==e?void 0:e());return r(bu,t,null,n,i,o.touchAction,o.plugins).destroy}}}const wu="tap";function xu(t,e,n,i=!1){const{setPointerControls:r}=vu(),o=i?wu:yu();return{...n,[`on${wu}`]:t,[o]:t=>{const{onDown:n,onUp:i,parameters:o}=function(t,e){const n={timeframe:uu,composed:!1,touchAction:"auto",...e};let i,r,o;function s(e,s){if(Math.abs(s.clientX-r)<4&&Math.abs(s.clientY-o)<4&&Date.now()-i<n.timeframe){const e=t.getBoundingClientRect(),n=Math.round(s.clientX-e.left),i=Math.round(s.clientY-e.top);t.dispatchEvent(new CustomEvent(wu,{detail:{x:n,y:i,target:s.target,pointerType:s.pointerType}}))}}function a(t,e){r=e.clientX,o=e.clientY,i=Date.now()}return{onDown:a,onUp:s,parameters:n}}(t,null==e?void 0:e());return r(wu,t,null,n,i,o.touchAction,o.plugins).destroy}}}const _u=t=>{const e="#00ff00",n=1e6,i=4;let r,o,s,a=null,l=!1,c=Date.now();const u={x:void 0,y:void 0};function d(){const e=t.fadeTime,n=Date.now(),i=n-c;i>e/20&&(a&&o&&s&&r&&(s.drawImage(r,0,0),a.clearRect(0,0,r.width,r.height),a.globalAlpha=1-3*i/e,a.drawImage(o,0,0),a.globalAlpha=1,s.clearRect(0,0,r.width,r.height)),c=n),l&&requestAnimationFrame(d)}function h(t){u.x=t.x,u.y=t.y}function f(){a&&o&&r&&(a.canvas.width=window.innerWidth,a.canvas.height=window.innerHeight,o.width=r.width,o.height=r.height)}function p(e){var i;m(),r=window.document.createElement("canvas"),r.id="svelte-gestures-highlight-plugin",a=r.getContext("2d"),r.style.cssText=`\ndisplay: block; \nwidth: 100dvw;\nheight: 100dvh;\ntop: 0;\nleft: 0;\nposition: fixed;\npointer-events: none;\nz-index: ${null!==(i=t.zIndex)&&void 0!==i?i:n};\n`,window.document.body.appendChild(r),window.addEventListener("resize",f),e&&h(e.event),o=document.createElement("canvas"),f(),s=o.getContext("2d"),l=!0,d()}function m(){var t;l=!1,null===(t=window.document.getElementById("svelte-gestures-highlight-plugin"))||void 0===t||t.remove(),window.removeEventListener("resize",f)}return{onMove:n=>{var r,o,s;r=n.event,a&&(a.beginPath(),a.lineWidth=null!==(o=t.lineWidth)&&void 0!==o?o:i,a.lineCap="round",a.strokeStyle=null!==(s=t.color)&&void 0!==s?s:e,Do(u.x,void 0,!1)&&Do(u.y,void 0,!1)?(a.moveTo(u.x,u.y),h(r),a.lineTo(u.x,u.y)):h(r),a.stroke())},onDown:t=>{p(t)},onUp:(t,e)=>{Do(e.length,0)&&m()},onDestroy:m,onInit:t=>{t.length&&(u.x=void 0,u.y=void 0,p())}}};var Tu=na("<div></div>"),Iu=na("<div></div>");const Eu={hash:"svelte-1fv6njc",code:".swiper.svelte-1fv6njc {position:absolute;top:0;left:0;pointer-events:auto;width:100%;height:100%;}"};var Su=na("<img/>"),Au=na('<div class="ui-container svelte-1rvgxfc"><!></div>'),Nu=na('<div class="cover-container svelte-1rvgxfc"><!> <!> <!></div>'),Mu=na('<div class="covers-container svelte-1rvgxfc" style="scroll-behavior: auto;"></div>');const Fu={hash:"svelte-1rvgxfc",code:".covers-container.svelte-1rvgxfc {position:absolute;top:0;left:0;bottom:0;right:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;display:flex;gap:0.5px;}.covers-container.svelte-1rvgxfc::-webkit-scrollbar {display:none;}.cover-container.svelte-1rvgxfc {position:relative;display:flex;width:100%;height:100%;flex-shrink:0;scroll-snap-align:center;user-select:none;justify-content:center;align-items:center;}.cover-image.svelte-1rvgxfc {width:var(--videoWidth);height:var(--videoHeight);aspect-ratio:var(--videoAspect);object-fit:cover;pointer-events:none;background:#ffffff;}.cover-image.hidden.svelte-1rvgxfc {opacity:0;}.cover-image.hidden.force-show.svelte-1rvgxfc {opacity:1;background:transparent;}.ui-container.svelte-1rvgxfc {position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none;}"};function Ou(t,e){Vi(e,!0),Aa(t,Fu);const n=[375,768,1024,1400,1920];let i,r=nl(e,"scrollOffset",15),o=nl(e,"isMobile",3,!1),s=nl(e,"gallery",7),a=ho((()=>s().state.playingModulePosition)),l=null,c=null,u=ho((()=>s().state.startedPlaying)),d=ho((()=>s().state.currentModulesList)),h=ho((()=>qs(d).findIndex((t=>p(s().state.playingModulePosition,t.position))))),f=!1;function p(t,e){return t.itemIndex===e.itemIndex&&t.moduleIndex===e.moduleIndex}function m(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}function v(t){var e;o()&&t.preventDefault();const{target:n}=t,u=m(n),f=(null===(e=qs(d))||void 0===e?void 0:e.length)||1,v=100/(f-1||1),g=Math.round(u/v);let y=Math.min(g,f-1);const b=qs(d)[y],k={itemIndex:s().state.activeItemIndex,moduleIndex:s().state.activeModuleIndex};if(!l){const t=i.children[qs(h)],e=i.getBoundingClientRect(),n=t.getBoundingClientRect();r(n.x-e.x)}c&&clearTimeout(c),c=setTimeout((()=>{const t=m(n);Math.abs(t-g*v)<.25&&async function(){s().state.seeking&&(s().state.playerLoaded?s().state.currentItemsList[s().state.activeItemIndex].modules[s().state.activeModuleIndex].play():s().state.playingModulePosition=qs(a),r(0))}()}),l?0:150),null!==l||p(b.position,k)?null!==l&&p(b.position,l)&&(l=null):(s().state.activeItemIndex=b.position.itemIndex,s().state.activeModuleIndex=b.position.moduleIndex),Io(a,b.position)}function g(){f||(s().track("coverdisplay"),f=!0)}es((()=>{const{activeItemIndex:t,activeModuleIndex:e}=s().state;t===qs(a).itemIndex&&e===qs(a).moduleIndex||Hs((()=>{var n,r;const o=qs(d).findIndex((n=>{const{itemIndex:i,moduleIndex:r}=n.position;return t===i&&e===r}));l=(null===(n=qs(d)[o])||void 0===n?void 0:n.position)||null;const s=null===(r=i)||void 0===r||null===(r=r.children)||void 0===r?void 0:r[o];if(!i||!s)return;const a=i.getBoundingClientRect(),c=s.getBoundingClientRect();let u=i.scrollLeft+(c.left-a.left);const h=Math.max(0,i.scrollWidth-i.clientWidth);u=Math.max(0,Math.min(h,u)),i.scrollTo({left:u,behavior:"auto"})}))})),es((()=>{qs(u)&&Hs((()=>{s().track("projectstartedplaying")}))}));var y=ia(),b=Vo(y),k=t=>{var r=Mu();Ta(r,23,(()=>qs(d)),(t=>t.id),((t,i,r)=>{var a=Nu(),l=qo(a),c=t=>{var e=Su();let o;os((t=>{o=Da(e,1,"cover-image svelte-1rvgxfc",null,o,{hidden:qs(u)&&qs(r)===qs(h),"force-show":qs(i).showCover}),Ga(e,"src",t),Ga(e,"alt",qs(i).name),Ga(e,"fetchpriority",0===qs(r)?"high":"auto")}),[()=>s().getCoverUrl(qs(i).cover,n[n.length-1])]),Qs("load",e,(function(...t){var e;null===(e=0===qs(r)?g:()=>{})||void 0===e||e.apply(this,t)})),function(t){if(!Ii)return;t.removeAttribute("onload"),t.removeAttribute("onerror");const e=t.__e;void 0!==e&&(t.__e=void 0,queueMicrotask((()=>{t.isConnected&&t.dispatchEvent(e)})))}(e),ra(t,e)};wa(l,(t=>{t(c)}));var d=Go(l,2);!function(t,e){Vi(e,!0),Aa(t,Eu);const n={color:"#e3e3e3",fadeTime:300,lineWidth:8},i=ku(e.gallery.interaction((t=>{const{direction:n}=t.detail;var i;if("left"===n)null===(i=e.gallery)||void 0===i||i.next(),e.onEvent("swipe",[-1,0]);else if("right"===n){var r;null===(r=e.gallery)||void 0===r||r.prev(),e.onEvent("swipe",[1,0])}}),{elementid:"swiper"}),(()=>({touchAction:"pan-y",plugins:e.debug?[_u(n)]:[]}))),r=xu((function(t){const{x:n,y:i}=t.detail;e.onEvent("click",{x:n,y:i})}),(()=>({touchAction:"pan-y"})));var o=ia(),s=Vo(o),a=t=>{var e=Tu();Ha(e,(()=>({...i,...r,class:"swiper"})),void 0,void 0,void 0,"svelte-1fv6njc"),ra(t,e)},l=t=>{var e=Iu();Ha(e,(()=>({...r,class:"swiper"})),void 0,void 0,void 0,"svelte-1fv6njc"),ra(t,e)};wa(s,(t=>{e.isMobile?t(a):t(l,!1)})),ra(t,o),Gi()}(d,{get gallery(){return s()},get debug(){return e.debug},get isMobile(){return o()},get onEvent(){return e.onEvent}});var f=Go(d,2),p=t=>{var e=Au();!function(t,e,n){Ii&&Ai();var i=new ya(t);ss((()=>{var t,r=null!==(t=e())&&void 0!==t?t:null;i.ensure(r,r&&(t=>n(t,r)))}),ni)}(qo(e),(()=>qs(i).Component),((t,e)=>{e(t,{get state(){return qs(i).state},get gallery(){return s()},get isMobile(){return o()}})})),Ni(e),ra(t,e)};wa(f,(t=>{var e;null!==(e=qs(i))&&void 0!==e&&e.Component&&t(p)})),Ni(a),ra(t,a)})),Ni(r),tl(r,(t=>i=t),(()=>i)),Qs("scroll",r,v),ra(t,r)};wa(b,(t=>{qs(d)&&t(k)})),ra(t,y),Gi()}const Cu="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};let Pu;function Du(){const t=Cu&&Cu.navigator&&(Cu.navigator.userAgent||Cu.navigator.platform||Cu.navigator.vendor)||"";if(Pu&&Pu.ua===t)return Pu;const e=t.toLowerCase(),n=e.includes("android"),i=e.includes("iphone")||e.includes("ipad")||e.includes("ipod")||e.includes("ios"),r=n||i||e.includes("mobile");return Pu={ua:t,isMobile:r},Pu}var Ru,Lu;"undefined"!=typeof window&&(window.addEventListener("pageshow",(function(t){t.persisted&&setTimeout((function(){window.location.reload()}),10)}),!1),null===(Ru=(Lu=window).EkoAnalytics)||void 0===Ru||Ru.call(Lu,"track","init"));var Bu=na('<div class="paging-buttons svelte-1n46o8q"><!> <!></div>'),zu=na('<div style="position: absolute; top: 0; left: 0; width: 100%;"></div>'),Wu=na("<!> <!>",1),ju=na('<div class="player-container svelte-1n46o8q"><div class="player-div swipable svelte-1n46o8q"></div> <!> <!> <!> <!></div> <!>',1),Uu=na('<div class="eko-gallery-app svelte-1n46o8q"><!></div>');const $u={hash:"svelte-1n46o8q",code:'.eko-gallery-app.svelte-1n46o8q {position:relative;width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}.eko-gallery-app.svelte-1n46o8q:hover .paging-buttons:where(.svelte-1n46o8q) .nav-button {background-color:#FFFFFF;box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.12);}.eko-gallery-app.svelte-1n46o8q * {box-sizing:border-box;touch-action:pan-y;font-family:"Human BBY Digital", sans-serif;}.player-container.svelte-1n46o8q {position:relative;flex:1;width:100%;pointer-events:none;overflow:hidden;border-radius:16px;display:flex;align-items:center;justify-content:center;}.player-div.svelte-1n46o8q {position:absolute;width:var(--videoWidth);height:var(--videoHeight);aspect-ratio:var(--videoAspect);}.swipable.svelte-1n46o8q {will-change:transform;transform:translate3d(var(--uiTranformX, 0), 0, 0);}.paging-buttons.svelte-1n46o8q {position:absolute;top:0;left:0;bottom:0;right:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none;padding:0 12px;}.paging-buttons.svelte-1n46o8q .nav-button {transition:0.2s ease-in-out;box-shadow:none;}.paging-buttons.svelte-1n46o8q .nav-button img {opacity:0.6;}'};function qu(t,e){Vi(e,!0),Aa(t,$u);const n=nl(e,"config",19,(()=>({}))),i=nl(e,"forceMobile",3,!1),r=nl(e,"videoAspectRatio",3,"unset"),o=nl(e,"onGalleryReady",3,(()=>{})),s=nl(e,"onEvent",3,(()=>{}));let a,l=!1,c=_o(new jc({...n(),onEvent:s()})),u=_o(null),d=ho((()=>i()||Du().isMobile)),h=_o(0),f=_o(void 0),p=_o(!0),m=_o(Fo({width:"100%",height:"100%"}));var v,g,y;function b(){const t={AssetsDeliveryService:{assetsDeliveryServiceUrl:qs(c).urls.assetsDeliveryBase},Tracker:{tag:qs(c).uuid}};Io(u,new e.EkoPlayer(a,function(t,...e){function n(t){return"[object Object]"===Object.prototype.toString.call(t)}function i(t,e){if(Array.isArray(e)){Array.isArray(t)||(t=Array.isArray(t)?t.slice():[]);const r=Math.max(t.length,e.length);for(let o=0;o<r;o++){const r=t[o],s=e[o];null!=s&&(n(r)&&n(s)?t[o]=i({...r},s):Array.isArray(r)&&Array.isArray(s)?t[o]=i(r.slice(),s):n(s)?t[o]=i({},s):Array.isArray(s)?t[o]=i([],s):t[o]=s)}return t}if(n(e)){n(t)||(t={});for(const r of Object.keys(e)){const o=t[r],s=e[r];n(o)&&n(s)?t[r]=i({...o},s):Array.isArray(o)&&Array.isArray(s)?t[r]=i(o.slice(),s):n(s)?t[r]=i({},s):Array.isArray(s)?t[r]=i([],s):void 0!==s&&(t[r]=s)}return t}return e}for(const n of e)null!==n&&i(t,n);return t}({},e.playerOptions,t))),qs(u).on("playing",(()=>{qs(c).state.paused=!1})),qs(u).on("pause",(()=>{qs(c).state.paused=!0})),qs(u).once("playing",(()=>{qs(c).state.startedPlaying=!0,s()("galleryloaded")}))}function k(t){var e;null===(e=qs(c))||void 0===e||e.selectItem(t)}function w(){var t;null===(t=qs(c))||void 0===t||t.next()}function x(){var t;null===(t=qs(c))||void 0===t||t.prev()}function _(){qs(u).paused?qs(u).play():qs(u).pause()}function T(){return`--uiTranformX: ${qs(h)}px;--videoAspect: ${r()};--videoWidth: ${qs(m).width};--videoHeight: ${qs(m).height};`}v="state",g=()=>qs(c).state,Hi("setContext").set(v,g),y=()=>(o()(qs(c).public),n()&&e.EkoPlayer&&(b(),qs(c).start(qs(u))),()=>{var t;null===(t=qs(u))||void 0===t||t.dispose(),qs(c).dispose()}),null===Bi&&bi("onMount"),es((()=>{const t=Hs(y);if("function"==typeof t)return t})),es((()=>{n()&&e.EkoPlayer&&(l?Hs((()=>{var t;qs(c).dispose(),Io(c,new jc({...n(),onEvent:s()})),null===(t=qs(u))||void 0===t||t.dispose(),Io(p,!1),$s().then((()=>(Io(p,!0),$s()))).then((()=>{o()(qs(c).public),b(),qs(c).start(qs(u))}))})):l=!0)})),es((()=>{qs(f)&&qs(u)&&qs(u).loadDebugOverlay({containerElement:qs(f)})})),es((()=>{if("unset"!==r()&&r().includes("/")){const[t,e]=r().split("/").map((t=>Number(t)));isNaN(t)||isNaN(e)||Io(m,t>e?{width:"100%",height:"auto"}:{width:"auto",height:"100%"},!0)}else Io(m,{width:"100%",height:"100%"},!0)}));var I=Uu(),E=qo(I),S=t=>{var n=ju(),i=Vo(n),r=qo(i);tl(r,(t=>a=t),(()=>a));var o=Go(r,2);Ou(o,{get isMobile(){return qs(d)},get gallery(){return qs(c)},get debug(){return e.debug},get onEvent(){return s()},get scrollOffset(){return qs(h)},set scrollOffset(t){Io(h,t,!0)}});var l=Go(o,2),u=t=>{var e=Bu(),n=qo(e);Zc(n,{type:"prev",onClick:x}),Zc(Go(n,2),{type:"next",onClick:w}),Ni(e),ra(t,e)};wa(l,(t=>{qs(d)||e.hideNav||t(u)}));var p=Go(l,2),m=t=>{iu(t,{get gallery(){return qs(c)}})};wa(p,(t=>{var e;!qs(d)&&(null===(e=qs(c).state.currentItem)||void 0===e?void 0:e.modules.length)>1&&t(m)}));var v=Go(p,2),g=t=>{var n=Wu(),i=Vo(n);!function(t,e){Vi(e,!0),Aa(t,cu);const n=qi("state");let i=ho((()=>n().paused));var r=lu(),o=ho((()=>e.gallery.interaction(e.onPauseClick)));r.__click=function(...t){var e;null===(e=qs(o))||void 0===e||e.apply(this,t)};var s=qo(r),a=t=>{var e=su();os((()=>Ga(e,"src",ru))),ra(t,e)},l=t=>{var e=au();os((()=>Ga(e,"src",ou))),ra(t,e)};wa(s,(t=>{n().paused?t(a):t(l,!1)})),Ni(r),os((()=>{Ga(r,"aria-label",qs(i)?"Play":"Pause"),Ga(r,"data-interactiontype",qs(i)?"play":"pause")})),ra(t,r),Gi()}(i,{onPauseClick:_,get gallery(){return qs(c)}});var r=Go(i,2),o=t=>{var e=zu();tl(e,(t=>Io(f,t)),(()=>qs(f))),ra(t,e)};wa(r,(t=>{e.debug&&t(o)})),ra(t,n)};wa(v,(t=>{qs(c).state.startedPlaying&&t(g)})),Ni(i);var y=Go(i,2),b=t=>{!function(t,e){Vi(e,!0),Aa(t,Xc);let n=nl(e,"onNavItemClick",3,(()=>{}));const i=qi("state");var r=Kc(),o=qo(r);Ta(o,23,(()=>i().currentItemsList),(t=>t.id),((t,e,r)=>{var o=Hc();let s;o.__click=()=>n()(qs(r));var a=qo(o),l=qo(a,!0);Ni(a),Ni(o),os((t=>{s=Da(o,1,"nav-button svelte-er27y2",null,s,t),da(l,qs(e).name)}),[()=>({selected:qs(r)===i().activeItemIndex})]),ra(t,o)})),Ni(o),Ni(r),ra(t,r),Gi()}(t,{onNavItemClick:k})};wa(y,(t=>{e.hideNav||t(b)})),os((t=>La(i,t)),[T]),ra(t,n)};wa(E,(t=>{n()&&qs(p)&&t(S)})),Ni(I),ra(t,I),Gi()}function Vu(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Gu,Hu,Ku,Xu,Yu={exports:{}},Qu=Vu((Gu||(Gu=1,Ku=Yu.exports,Xu=function(){var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],r={},o=null;function s(t,e){var n=t[e];if("function"==typeof n.bind)return n.bind(t);try{return Function.prototype.bind.call(n,t)}catch(e){return function(){return Function.prototype.apply.apply(n,[t,arguments])}}}function a(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function l(){for(var n=this.getLevel(),r=0;r<i.length;r++){var o=i[r];this[o]=r<n?t:this.methodFactory(o,n,this.name)}if(this.log=this.debug,typeof console===e&&n<this.levels.SILENT)return"No console available for logging"}function c(t){return function(){typeof console!==e&&(l.call(this),this[t].apply(this,arguments))}}function u(i,r,o){return"debug"===(l=i)&&(l="log"),typeof console!==e&&("trace"===l&&n?a:void 0!==console[l]?s(console,l):void 0!==console.log?s(console,"log"):t)||c.apply(this,arguments);var l}function d(t,n){var s,a,c,d=this,h="loglevel";function f(){var t;if(typeof window!==e&&h){try{t=window.localStorage[h]}catch(t){}if(typeof t===e)try{var n=window.document.cookie,i=encodeURIComponent(h),r=n.indexOf(i+"=");-1!==r&&(t=/^([^;]+)/.exec(n.slice(r+i.length+1))[1])}catch(t){}return void 0===d.levels[t]&&(t=void 0),t}}function p(t){var e=t;if("string"==typeof e&&void 0!==d.levels[e.toUpperCase()]&&(e=d.levels[e.toUpperCase()]),"number"==typeof e&&e>=0&&e<=d.levels.SILENT)return e;throw new TypeError("log.setLevel() called with invalid level: "+t)}"string"==typeof t?h+=":"+t:"symbol"==typeof t&&(h=void 0),d.name=t,d.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},d.methodFactory=n||u,d.getLevel=function(){return null!=c?c:null!=a?a:s},d.setLevel=function(t,n){return c=p(t),!1!==n&&function(t){var n=(i[t]||"silent").toUpperCase();if(typeof window!==e&&h){try{return void(window.localStorage[h]=n)}catch(t){}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch(t){}}}(c),l.call(d)},d.setDefaultLevel=function(t){a=p(t),f()||d.setLevel(t,!1)},d.resetLevel=function(){c=null,function(){if(typeof window!==e&&h){try{window.localStorage.removeItem(h)}catch(t){}try{window.document.cookie=encodeURIComponent(h)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(t){}}}(),l.call(d)},d.enableAll=function(t){d.setLevel(d.levels.TRACE,t)},d.disableAll=function(t){d.setLevel(d.levels.SILENT,t)},d.rebuild=function(){if(o!==d&&(s=p(o.getLevel())),l.call(d),o===d)for(var t in r)r[t].rebuild()},s=p(o?o.getLevel():"WARN");var m=f();null!=m&&(c=p(m)),l.call(d)}(o=new d).getLogger=function(t){if("symbol"!=typeof t&&"string"!=typeof t||""===t)throw new TypeError("You must supply a name when creating a logger.");var e=r[t];return e||(e=r[t]=new d(t,o.methodFactory)),e};var h=typeof window!==e?window.log:void 0;return o.noConflict=function(){return typeof window!==e&&window.log===o&&(window.log=h),o},o.getLoggers=function(){return r},o.default=o,o},(Hu=Yu).exports?Hu.exports=Xu():Ku.log=Xu()),Yu.exports));const Ju=()=>{},Zu=["trace","log","debug","info","warn","error","getLevel","setLevel"],td=["trace","debug","info","warn","error","silent"],ed={TRACE:"color: white; background-color: magenta;",DEBUG:"color: black; background-color: turquoise;",INFO:"color: white; background-color: green;",WARN:"color: black; background-color: yellow;",ERROR:"color: white; background-color: red;"},nd="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global;let id={level:"trace",appName:""},rd=[];const od="object"==typeof nd&&nd.performance&&"function"==typeof nd.performance.now?nd.performance.now.bind(nd.performance):Date.now.bind(Date),sd=t=>t&&"string"==typeof t?t.toLowerCase().trim():"",ad=(()=>{try{const t=new URLSearchParams(document.location.search),e=[].concat(t.getAll("log")).concat(t.getAll("ekolog")).concat(t.getAll("ekologger")).join(",").split(",");if(0===e.length)return{};let n={};return e.forEach((t=>{const[e,i]=t.split(":");n[sd(e)]=sd(i)||"trace"})),n}catch(t){return{}}})(),ld=(t,e="")=>{const n=sd(t),i=Qu.getLogger(n);if(i.__ekologger)return i.__ekologger;e||ad[n]||ad["*"]||(i.__noExplicitLevel=!0);const r=i.methodFactory;i.methodFactory=(e,n,i)=>{const o=r(e,n,i),s=e.toUpperCase();return(...e)=>{o(`[${((t,e=3)=>(od()/1e3).toFixed(e))()}] %c[${s}] ${id.appName?`[${id.appName}] `:""}[${t}]`,ed[s],...e)}},e=ad[n]||ad["*"]||e||id.level,i.setLevel(e,!1);const o=(...t)=>i.log(...t);return Zu.forEach((t=>{o[t]=(...e)=>(rd.forEach((n=>{n[t](...e)})),i[t](...e))})),i.__ekologger=o,o};ld.setDefaults=({appName:t="",level:e})=>{t&&"string"==typeof t&&(id.appName=t),(e=sd(e))&&td.includes(e)&&(id.level=e,Object.values(Qu.getLoggers()).filter((t=>t.__noExplicitLevel)).forEach((t=>t.setLevel(id.level,!1))))},ld.installDriver=t=>{const e={...Zu.reduce(((e,n)=>(e[n]="function"==typeof(null==t?void 0:t[n])?t[n]:Ju,e)),{})};rd.push(e)};let cd=class{#T=new Map;on(t,e){if("function"!=typeof e)return this;const n=this.#T.get(t)||new Set;return n.add(e),this.#T.set(t,n),this}once(t,e){if("function"!=typeof e)return this;const n=(...i)=>(this.off(t,n),e(...i));return this.on(t,n)}off(t,e){if(!t)return this.#T.clear(),this;const n=this.#T.get(t);return n?e?(n.delete(e),0===n.size&&this.#T.delete(t),this):(this.#T.delete(t),this):this}trigger(t,...e){const n=this.#T.get(t);return n?(n.forEach((t=>t(...e))),this):this}};function ud(t){return"[object Object]"===Object.prototype.toString.call(t)}function dd(t,...e){const n=ud(t)?{...t}:{};return e.forEach((t=>{ud(t)&&Object.keys(t).forEach((e=>{const i=t[e],r=n[e];ud(i)&&ud(r)?n[e]=dd(r,i):Array.isArray(i)?n[e]=i.slice():n[e]=i}))})),n}function hd(t){if("string"==typeof t)return`'${t}'`;if(Array.isArray(t))return`[${t.map((t=>hd(t))).join(", ")}]`;if(ud(t))try{return JSON.stringify(t)}catch(t){return"[object Object]"}return null===t?"null":void 0===t?"undefined":String(t)}function fd(t){return Array.from(t).map((t=>hd(t))).join(", ")}var pd=new WeakSet;class md extends cd{constructor(...t){super(),U(this,pd);const e=t.length?t[t.length-1]:void 0,n=this.name;if(!n||"string"!=typeof n)throw new Error("Extending classes must implement get name() returning a string.");this.log=ld(n,this.loglevel);const i=ud(this.defaults)?this.defaults:{},r=ud(e)&&ud(e[n])?e[n]:{};this.settings=dd({},i,r),L(pd,this,vd).call(this),L(pd,this,gd).call(this)}get name(){throw new Error("BaseModuleClass requires a name getter.")}get loglevel(){return"warn"}get defaults(){return{}}get methodsExcludedFromAutoLog(){return new Set(["constructor","on","off","once","trigger","#wrapMethodsForLogging"])}dispose(){this._disposed||(this._disposed=!0,"function"==typeof this._lifecycleCleanup&&(this._lifecycleCleanup(),this._lifecycleCleanup=null),"function"==typeof this.onDispose&&this.onDispose())}onDispose(){}}function vd(){const t=new Set,e=this.methodsExcludedFromAutoLog;let n=Object.getPrototypeOf(this);for(;n&&n!==Object.prototype;){const i=Object.getOwnPropertyNames(n);for(let r=0;r<i.length;r+=1){const o=i[r];if("constructor"===o||o.startsWith("#"))continue;if(t.has(o))continue;const s=Object.getOwnPropertyDescriptor(n,o);if(!s||"function"!=typeof s.value)continue;const a=s.value.bind(this),l=!e.has(o);this[o]=l?(...t)=>(this.log&&"function"==typeof this.log.debug&&this.log.debug(`${this.name}.${o}(${fd(t)})`),a(...t)):a,t.add(o)}n=Object.getPrototypeOf(n)}}function gd(){if("undefined"==typeof window||"function"!=typeof window.addEventListener)return;const t=()=>{try{"function"==typeof this.dispose&&this.dispose()}catch(t){this.log&&"function"==typeof this.log.error&&this.log.error("dispose failed",t)}};window.addEventListener("pagehide",t),window.addEventListener("beforeunload",t),this._lifecycleCleanup=()=>{window.removeEventListener("pagehide",t),window.removeEventListener("beforeunload",t)}}const yd="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};function bd(t){return Boolean(t)&&"object"==typeof t&&1===t.nodeType&&"function"==typeof t.appendChild}const kd=Object.freeze({NODE_ADD:"node:add",NODE_CHILDREN_CHANGED:"node:childrenchanged",NODE_LOADED:"node:loaded",NODE_LOAD_ERROR:"node:loaderror",PLACEMENT_ADDED:"placement:added",RENDER_PLACEMENT_ADDED:"renderplacement:added",TIMELINE_TIME_UPDATE:"timeline:timeupdate",TIMELINE_STATE_CHANGE:"statechange",TIMELINE_SEEKING:"seeking",TIMELINE_SEEKED:"seeked",TIMELINE_RESET:"timeline:reset",TIMELINE_PLAYER_STATE:"player:state",TIMELINE_CUEPOINT:"cuepoint",VISUAL_FRAMES_AVAILABLE:"visualframesavailable",TRACK_BUFFER_UPDATE:"track:bufferupdate",TRACK_READY:"track:ready",TRACK_UNDERFLOW:"track:underflow",CLOCK_TICK:"tick",DECODE_READY:"decode:ready",DECODE_ERROR:"decode:error",DECODER_AUDIO:"decoder:audio",DECODER_FRAME:"decoder:frame",DECODER_INIT:"decoder:init",DECODER_ERROR:"decoder:error",QOE_SCORE:"qoescore",QOE_STATUS:"qoestatus",CONTAINER_RESIZE:"containerresize",CANVAS_WEBGL_CONTEXT_LOST:"canvas.webglcontextlost",CANVAS_WEBGL_CONTEXT_RESTORED:"canvas.webglcontextrestored"});function wd(t,e){const n={};return Number.isFinite(t)&&(n.time=t),"string"==typeof e&&(n.source=e),n}function xd({placementId:t,nodeId:e,trackId:n,segmentId:i,trackType:r,pts:o,duration:s,frame:a,audioBuffer:l}={}){const c={};return t&&(c.placementId=t),e&&(c.nodeId=e),n&&(c.trackId=n),i&&(c.segmentId=i),r&&(c.trackType=r),Number.isFinite(o)&&(c.pts=o),Number.isFinite(s)&&(c.duration=s),a&&(c.frame=a),l&&(c.audioBuffer=l),c}function _d({placementId:t,nodeId:e,trackId:n,segmentId:i,trackType:r,error:o}={}){const s={};return t&&(s.placementId=t),e&&(s.nodeId=e),n&&(s.trackId=n),i&&(s.segmentId=i),r&&(s.trackType=r),o&&(s.error=o),s}var Td=new WeakMap,Id=new WeakMap,Ed=new WeakMap,Sd=new WeakMap,Ad=new WeakMap,Nd=new WeakMap,Md=new WeakMap,Fd=new WeakSet;class Od extends md{get defaults(){return{style:{width:"100%",height:"100%"},contextAttributes:{alpha:!1,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!1,powerPreference:"low-power"}}}constructor(...t){var e,n;super(...t),U(this,Fd),W(this,Td,void 0),W(this,Id,void 0),W(this,Ed,void 0),W(this,Sd,void 0),W(this,Ad,void 0),W(this,Nd,void 0),W(this,Md,void 0);const[i,r=null]=t;j(Nd,this,r);const o=function(t,e=(null==yd?void 0:yd.document)){if(bd(t))return t;const n="string"==typeof t?t:null;if(!n||!e||"function"!=typeof e.querySelector)return null;const i=e.querySelector(n);return bd(i)?i:null}(i);if(!o)throw new Error("Canvas requires a valid mount target (HTMLElement or selector string).");j(Td,this,o);const s=null==yd?void 0:yd.document;if(!s||"function"!=typeof s.createElement)throw new Error("Canvas requires document.createElement.");var a,l;j(Id,this,s.createElement("canvas")),a=z(Id,this),l=null===(e=this.settings)||void 0===e?void 0:e.style,a&&l&&"object"==typeof l&&!Array.isArray(l)&&Object.keys(l).forEach((t=>{const e=l[t];null!=e&&(a.style[t]=String(e))})),z(Td,this).appendChild(z(Id,this));const c=null===(n=this.settings)||void 0===n?void 0:n.contextAttributes,u=c&&"object"==typeof c&&!Array.isArray(c)?c:void 0;if(j(Md,this,u),j(Ed,this,z(Id,this).getContext("webgl2",u)),!z(Ed,this))throw new Error("Canvas WebGL2 context is not available.");L(Fd,this,Pd).call(this)}get name(){return"Canvas"}get element(){return z(Id,this)}get gl(){return z(Ed,this)}onDispose(){L(Fd,this,Dd).call(this),z(Id,this)&&z(Id,this).parentNode&&z(Id,this).parentNode.removeChild(z(Id,this)),j(Ed,this,null),j(Id,this,null),j(Td,this,null),j(Nd,this,null),j(Md,this,null),j(Sd,this,null),j(Ad,this,null)}}function Cd(t,e){var n,i;this.trigger(t,e),null===(n=z(Nd,this))||void 0===n||null===(i=n.trigger)||void 0===i||i.call(n,t,e)}function Pd(){z(Id,this)&&(j(Sd,this,(t=>{"function"==typeof(null==t?void 0:t.preventDefault)&&t.preventDefault(),this.log.error("WebGL context lost",t),L(Fd,this,Cd).call(this,kd.CANVAS_WEBGL_CONTEXT_LOST,t)})),j(Ad,this,(t=>{var e;j(Ed,this,(null===(e=z(Id,this))||void 0===e?void 0:e.getContext("webgl2",z(Md,this)))||null),z(Ed,this)?L(Fd,this,Cd).call(this,kd.CANVAS_WEBGL_CONTEXT_RESTORED,t):this.log.error("WebGL context restored event fired but WebGL2 context is still unavailable.",t)})),z(Id,this).addEventListener("webglcontextlost",z(Sd,this)),z(Id,this).addEventListener("webglcontextrestored",z(Ad,this)))}function Dd(){z(Id,this)&&(z(Id,this).removeEventListener("webglcontextlost",z(Sd,this)),z(Id,this).removeEventListener("webglcontextrestored",z(Ad,this)))}var Rd=new WeakMap,Ld=new WeakMap,Bd=new WeakMap,zd=new WeakMap,Wd=new WeakMap,jd=new WeakMap,Ud=new WeakSet;class $d extends md{get name(){return"ContainerSize"}get containerWidth(){return z(Ld,this)}get containerHeight(){return z(Bd,this)}get width(){return z(Ld,this)}get height(){return z(Bd,this)}constructor(...t){super(...t),U(this,Ud),W(this,Rd,void 0),W(this,Ld,0),W(this,Bd,0),W(this,zd,null),W(this,Wd,null),W(this,jd,null);const[e]=t;var n;j(Rd,this,(n=e)&&n.element&&bd(n.element)?n.element:bd(n)?n:null),z(Rd,this)&&(L(Ud,this,Vd).call(this,!0),L(Ud,this,qd).call(this))}onDispose(){z(zd,this)&&"function"==typeof z(zd,this).disconnect&&z(zd,this).disconnect(),j(zd,this,null),z(jd,this)&&"function"==typeof(null==yd?void 0:yd.removeEventListener)&&yd.removeEventListener("resize",z(jd,this)),j(jd,this,null),z(Wd,this)&&((null==yd?void 0:yd.clearInterval)||clearInterval)(z(Wd,this)),j(Wd,this,null),j(Rd,this,null)}}function qd(){if(!z(Rd,this))return;const t=null==yd?void 0:yd.ResizeObserver;if("function"==typeof t)return j(zd,this,new t((()=>L(Ud,this,Vd).call(this)))),void z(zd,this).observe(z(Rd,this));j(jd,this,(()=>L(Ud,this,Vd).call(this))),"function"==typeof(null==yd?void 0:yd.addEventListener)&&yd.addEventListener("resize",z(jd,this));const e=(null==yd?void 0:yd.setInterval)||setInterval;j(Wd,this,e((()=>L(Ud,this,Vd).call(this)),250))}function Vd(t=!1){if(!z(Rd,this))return;const{width:e,height:n}=function(t){const e=Number(null==t?void 0:t.clientWidth),n=Number(null==t?void 0:t.clientHeight);return{width:Number.isFinite(e)&&e>0?Math.round(e):0,height:Number.isFinite(n)&&n>0?Math.round(n):0}}(z(Rd,this));(t||e!==z(Ld,this)||n!==z(Bd,this))&&(j(Ld,this,e),j(Bd,this,n),this.trigger("containerresize",{width:e,height:n}))}var Gd={VIDEO_SOURCE_PREFIX:"__SRC_VID:",TEXTURE_SOURCE_PREFIX:"__SRC_TEXTURE:",PREVIOUS_OUTPUT_PREFIX:"__PREVIOUS:",SAVED_FRAME_PREFIX:"__SAVED_FRAME:",SYSTEM_NODES:{FILTERS:{RENDER_TO_CANVAS:"__default"},TAGS:{ATOM:"atom",FILTER:"filter",COMPOSITE_FILTER:"composite",TRANSITION_FILTER:"transition"}},MESSAGES:{UPDATE_OPTIONS:"update_options"}};class Hd{constructor(t,e){this.canvasSource=t,this.startRendering=e,this.gl=null,this.glOptions=null}init(t,e,n){this.glOptions=n||{};const i=this.initCanvas(this.canvasSource,t,e);return this.initWebgl(i,this.glOptions)}initCanvas(){throw new Error("implement on concrete class")}getContextConfig(t={}){if(!t||"object"!=typeof t)return{contextType:"webgl",contextAttributes:void 0};const{contextType:e,contextAttributes:n,__shaderGraph:i,...r}=t,o=Object.prototype.hasOwnProperty.call(t,"contextAttributes");let s=o?n:r;return o||!s||"object"!=typeof s||Array.isArray(s)||0!==Object.keys(s).length||(s=void 0),{contextType:e||"webgl",contextAttributes:s}}initWebgl(t,e={}){const{contextType:n,contextAttributes:i}=this.getContextConfig(e),r=t.getContext(n,i);if(!r)throw new Error(`Browser doesn't support ${n}`);return r.enable(r.BLEND),r.disable(r.DEPTH_TEST),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),r}isStartRendering(){return this.startRendering}}var Kd,Xd={exports:{}},Yd=(Kd||(Kd=1,function(t){var e=Object.prototype.hasOwnProperty,n="~";function i(){}function r(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,i,o,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");var a=new r(i,o||t,s),l=n?n+e:e;return t._events[l]?t._events[l].fn?t._events[l]=[t._events[l],a]:t._events[l].push(a):(t._events[l]=a,t._eventsCount++),t}function s(t,e){0==--t._eventsCount?t._events=new i:delete t._events[e]}function a(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),(new i).__proto__||(n=!1)),a.prototype.eventNames=function(){var t,i,r=[];if(0===this._eventsCount)return r;for(i in t=this._events)e.call(t,i)&&r.push(n?i.slice(1):i);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(t)):r},a.prototype.listeners=function(t){var e=n?n+t:t,i=this._events[e];if(!i)return[];if(i.fn)return[i.fn];for(var r=0,o=i.length,s=new Array(o);r<o;r++)s[r]=i[r].fn;return s},a.prototype.listenerCount=function(t){var e=n?n+t:t,i=this._events[e];return i?i.fn?1:i.length:0},a.prototype.emit=function(t,e,i,r,o,s){var a=n?n+t:t;if(!this._events[a])return!1;var l,c,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(t,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,i),!0;case 4:return u.fn.call(u.context,e,i,r),!0;case 5:return u.fn.call(u.context,e,i,r,o),!0;case 6:return u.fn.call(u.context,e,i,r,o,s),!0}for(c=1,l=new Array(d-1);c<d;c++)l[c-1]=arguments[c];u.fn.apply(u.context,l)}else{var h,f=u.length;for(c=0;c<f;c++)switch(u[c].once&&this.removeListener(t,u[c].fn,void 0,!0),d){case 1:u[c].fn.call(u[c].context);break;case 2:u[c].fn.call(u[c].context,e);break;case 3:u[c].fn.call(u[c].context,e,i);break;case 4:u[c].fn.call(u[c].context,e,i,r);break;default:if(!l)for(h=1,l=new Array(d-1);h<d;h++)l[h-1]=arguments[h];u[c].fn.apply(u[c].context,l)}}return!0},a.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},a.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},a.prototype.removeListener=function(t,e,i,r){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return s(this,o),this;var a=this._events[o];if(a.fn)a.fn!==e||r&&!a.once||i&&a.context!==i||s(this,o);else{for(var l=0,c=[],u=a.length;l<u;l++)(a[l].fn!==e||r&&!a[l].once||i&&a[l].context!==i)&&c.push(a[l]);c.length?this._events[o]=1===c.length?c[0]:c:s(this,o)}return this},a.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&s(this,e)):(this._events=new i,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,t.exports=a}(Xd)),Xd.exports),Qd=Vu(Yd);class Jd extends Hd{constructor(t){super(t,!0),this.setSrcVidTracksFn=null,this.shouldUpdateTexture=!0,this.onPlayerSeeking=this.onPlayerSeeking.bind(this),this.onPlayerSeeked=this.onPlayerSeeked.bind(this),this.onPlayerNodeStart=this.onPlayerNodeStart.bind(this),this.oncePlayerPlaying=this.oncePlayerPlaying.bind(this);const e=new Qd;this.on=e.on.bind(e),this.off=e.off.bind(e),this.once=e.once.bind(e),this.trigger=e.emit.bind(e)}onPlayerSeeking(){this.shouldUpdateTexture=!1}onPlayerSeeked(){this.shouldUpdateTexture=!0}onPlayerNodeStart(){this.shouldUpdateTexture=!0,"function"==typeof this.player.canvas.drawFrame&&this.player.canvas.drawFrame(),this.trigger("forcerender")}oncePlayerPlaying(){this.onPlayerNodeStart()}addPlayerListeners(){this.player&&(this.player.on("seeking",this.onPlayerSeeking),this.player.on("seeked",this.onPlayerSeeked),this.player.on("nodestart",this.onPlayerNodeStart),this.player.once("playing",this.oncePlayerPlaying))}removePlayerListeners(){this.player&&(this.player.off("seeking",this.onPlayerSeeking),this.player.off("seeked",this.onPlayerSeeked),this.player.off("nodestart",this.onPlayerNodeStart),this.player.off("playing",this.oncePlayerPlaying))}initCanvas(t,e,n){var i;this.player=t,this.setSrcVidTracksFn=e;const{contextType:r,contextAttributes:o}=this.getContextConfig(this.glOptions),s=!1!==(null===(i=this.glOptions)||void 0===i||null===(i=i.__shaderGraph)||void 0===i?void 0:i.forwardContextAttributes)&&null!=(a=o)&&"object"==typeof a&&!Array.isArray(a)&&Object.keys(a).length>0;var a;const l={contextType:r};s&&(l.contextAttributes=o),t.initPlugin("canvas",l);const c={drawFrame:this.canvasDrawFrameFn.bind(this),resize:n,contextType:r,offscreenVideoCanvasEnabled:!1,viewportModeEnabled:!0,fps:0};return s&&(c.contextAttributes=o),t.canvas.init(c),t.paused&&0===t.currentTime&&(this.shouldUpdateTexture=!1),this.addPlayerListeners(),t.canvas.canvas}canvasDrawFrameFn(t,e,n){var i;this.setSrcVidTracksFn&&this.shouldUpdateTexture&&t&&e&&n&&(n.videoWidth||n.displayWidth)&&(n.videoHeight||n.displayHeight)&&(!(i=n)||"boolean"!=typeof i.isDataLoaded||i&&i.isDataLoaded&&(void 0===i.isFrameTextureReady||i.isFrameTextureReady))&&this.setSrcVidTracksFn(n)}async recover(){if(this.player&&this.player.paused)return new Promise((t=>{this.player.once("seeked",(()=>{this.shouldUpdateTexture=!0,t()})),this.player.currentTime=this.player.currentTime}))}dispose(){this.player&&(this.player.canvas&&"function"==typeof this.player.canvas.dispose&&this.player.canvas.dispose(),this.removePlayerListeners(),this.player=null)}}class Zd extends Hd{constructor(t){super(t,!1)}initCanvas(t,e){const n=function(){const t=document.querySelector("video");t&&t.videoHeight&&e(t),requestAnimationFrame(n)};return requestAnimationFrame(n),document.getElementById(t)}}class th extends Hd{constructor(t){super(t,!1)}initCanvas({src:t,dest:e},n,i){const r="string"==typeof e?document.querySelector(e):e,o="undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement,s=()=>{this.isDisposed||(t&&t.videoHeight&&n(t),requestAnimationFrame(s))};return o?requestAnimationFrame(s):"function"==typeof t?t(n,i):n(t),r}dispose(){this.isDisposed=!0}}var eh=function(t){let e;return e="string"==typeof t?new Zd(t):t&&t.src&&t.dest?new th(t):new Jd(t),e};function nh(t){return Array.isArray(t)||(t=[t]),t}class ih{constructor(t){this.store=t?{...t.get()}:{}}reset(){this.store={}}get(t){if(!t)return this.store;const e=(t=nh(t)).reduce(((t,e)=>{const n=this.store[e];return t.push(n),t}),[]);return 1===e.length?e[0]:e}set(t,e){if(t=nh(t),e=nh(e),t.length!==e.length)throw new Error(`cant set values ${e} to keys ${t}, length did not match`);t.forEach(((t,n)=>{this.store[t]=e[n]}))}}class rh{constructor(t,e,n,i){this.gl=i.gl,this.unit=t,this.bindPoint=e,this.height=1080,this.width=1920,this.textureObject=n.object,this.textureObjectInfo=n,this.isStatic=!1,n.needRefresh&&this.setParameters()}getUnit(){return this.unit}getObject(){return this.textureObject}bind(){this.gl.bindTexture(this.bindPoint,this.textureObject)}fill(){throw new Error("impl in concrete class")}setParameters(){this.bind(),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR)}active(){this.gl.activeTexture(this.gl.TEXTURE0+this.getUnit())}beforeUse(){this.active(),this.bind()}dispose(){this.gl.deleteTexture(this.textureObject)}setHeight(t){this.height=t}setWidth(t){this.width=t}getHeight(){if(!this.height)throw new Error(`texture ${this.unit} no height init `);return this.height}getWidth(){if(!this.width)throw new Error(`texture ${this.unit} no width init `);return this.width}}const oh=ld("frame","warn");let sh=!1;if("undefined"!=typeof window&&window.InterludePlayer){let t=window.InterludePlayer.environment,e=t.isAffectedBySafari17SeekBug,n=t.ua.includes("WMT1H")&&t.ua.includes("iOS/17");sh=e||n}function ah(t,e){const n=t.gl;var i;n.texImage2D(t.bindPoint,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),t.__hasAllocated=!0,i=t,Number.isFinite(i.width)&&Number.isFinite(i.height)&&(i.actualWidth=i.width,i.actualHeight=i.height,i.textureObjectInfo&&(i.textureObjectInfo.allocatedWidth=i.width,i.textureObjectInfo.allocatedHeight=i.height))}class lh extends rh{fill(t){if(sh&&(t.paused||"undefined"!=typeof document&&"hidden"===document.visibilityState))return;if(t.__closed)return;this.bind();const e=function(t,e){let n=!t.__hasAllocated;return e?(e.width===t.width&&e.height===t.height||(n=!0),t.width=e.width,t.height=e.height,n):n}(this,function(t){if(!t)return;const e=[[t.displayWidth,t.displayHeight],[t.codedWidth,t.codedHeight],[t.videoWidth,t.videoHeight],[t.naturalWidth,t.naturalHeight],[t.width,t.height]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}(t)),n=performance.now();!function(t,e,n){const i=t.gl,r=function(t){if("undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement)return!0;const e="object"==typeof window?window:"object"==typeof self?self:null,n=e&&e.VideoFrame;return"function"==typeof n&&t instanceof n}(e);r&&(t.__useSubImage=!1),n||!1===t.__useSubImage||r?ah(t,e):(i.texSubImage2D(t.bindPoint,0,0,0,i.RGBA,i.UNSIGNED_BYTE,e),void 0===t.__useSubImage&&(i.getError()!==i.NO_ERROR?(t.__useSubImage=!1,ah(t,e)):t.__useSubImage=!0))}(this,t,e);const i=(performance.now()-n)/1e3;i>=.1&&oh.warn(`[fill] texImage2D() took ${i.toFixed(3)} seconds to execute.`),"function"==typeof t.close&&!0!==t.__keepOpen&&(t.close(),t.__closed=!0)}}class ch extends rh{constructor(t,e,n){super(...arguments),n.needRefresh&&(this.fill(null),n.needRefresh=!1)}fill(t){if(this.bind(),t&&t.tagName&&"IMG"===t.tagName){const e=Number(t.naturalWidth||t.width),n=Number(t.naturalHeight||t.height);this.gl.texImage2D(this.bindPoint,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),Number.isFinite(e)&&Number.isFinite(n)&&(this.actualWidth=e,this.actualHeight=n,this.textureObjectInfo&&(this.textureObjectInfo.allocatedWidth=e,this.textureObjectInfo.allocatedHeight=n))}else{const e=this.gl.canvas.width,n=this.gl.canvas.height;this.gl.texImage2D(this.bindPoint,0,this.gl.RGBA,e,n,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),Number.isFinite(e)&&Number.isFinite(n)&&(this.actualWidth=e,this.actualHeight=n,this.textureObjectInfo&&(this.textureObjectInfo.allocatedWidth=e,this.textureObjectInfo.allocatedHeight=n))}}}var uh=function(t,e,n,i,r){let o;switch(t){case"frame":o=new lh(e,n,i,r);break;case"pixel":o=new ch(e,n,i,r);break;default:throw new Error(`cant recognize type ${t}`)}return o};class dh{constructor(t){this.gl=t.gl;const e=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS)||20;return this.maxTextures=Math.min(20,e),this.textureObjectPool=[],this.textureUnitsPool=new Set(Array(this.maxTextures).keys()),this.activeTextures=t.activeTextures instanceof Set?t.activeTextures:new Set,{createTexture:this.createTexture.bind(this),releaseTexture:this.releaseTexture.bind(this),refreshTextureObjects:this.refreshTextureObjects.bind(this),refreshActiveTextures:this.refreshActiveTextures.bind(this)}}getTextureObject(){return this.textureObjectPool.pop()||{object:this.gl.createTexture(),needRefresh:!0}}getTextureUnit(){const t=this.textureUnitsPool.values(),e=Math.min.apply(null,[...t]);return this.textureUnitsPool.delete(e),e}createTexture(t){const e=t&&t.type||{},n=this.gl.TEXTURE_2D,i=this.getTextureUnit(),r=this.getTextureObject(),o=uh(e,i,n,r,{gl:this.gl});return this.activeTextures.add(o),o}releaseTexture(t){this.textureUnitsPool.has(t.getUnit())||(this.textureObjectPool.push({object:t.getObject(),needRefresh:!1}),this.textureUnitsPool.add(t.getUnit())),this.activeTextures.delete(t)}refreshTextureObjects(){this.textureObjectPool.forEach((t=>{t.needRefresh=!0}))}refreshActiveTextures(){const t=new Set;this.activeTextures.forEach((e=>{if(!e||"function"!=typeof e.getUnit)return;t.add(e.getUnit());const n={object:this.gl.createTexture(),needRefresh:!0};e.gl=this.gl,e.textureObjectInfo=n,e.textureObject=n.object,e.__hasAllocated=!1,e.__useSubImage=void 0,e.actualWidth=null,e.actualHeight=null,"function"==typeof e.setParameters&&e.setParameters()})),this.textureObjectPool=[],this.textureUnitsPool=new Set(Array(this.maxTextures).keys()),t.forEach((t=>{this.textureUnitsPool.delete(t)}))}}const hh=Gd.VIDEO_SOURCE_PREFIX,fh=Gd.TEXTURE_SOURCE_PREFIX,ph=Gd.PREVIOUS_OUTPUT_PREFIX,mh=Gd.SAVED_FRAME_PREFIX;function vh(t,e,n){t.set(`${hh}${n}`,e)}function gh(t,e,n){t.set(`${ph}${n}`,e)}function yh(t,e,n){t.set(`${mh}${n}`,e)}class bh{constructor(t){return this.gl=t.gl,this.glSource=t.glSource,this.textureManager=t.textureManager,this.capturedFramesManager=t.capturedFramesManager,{setVideoSources:this.setVideoSources.bind(this),setTextureSource:this.setTextureSource.bind(this),getInput:this.getInput.bind(this),getPrevOutput:this.getPrevOutput.bind(this),setOutputs:this.setOutputs.bind(this),disposeTextures:this.disposeTextures.bind(this),disposeAllStore:this.disposeAllStore.bind(this)}}setVideoSources(t){for(const[e,n]of Object.entries(this.capturedFramesManager.getCurrentFrames()))vh(t,n,e),gh(t,n,e);for(const[e,n]of Object.entries(this.capturedFramesManager.getSavedFrames()))yh(t,n,e)}setTextureSource(t,e,n){t.set(`${fh}${n}`,e)}getInput(t,e){return t.get(e)}getPrevOutput(t,e){return e=Number.isInteger(e)?e:0,t.get(`${ph}${e}`)}setOutputs(t,e=[],n=[]){if(Array.isArray(n)||(n=[n]),e.length>n.length)throw new Error(`output ids ${e.length} is bigger then supplied outputs ${n.length}`);n.forEach(((e,n)=>{gh(t,e,n)})),e.forEach(((e,i)=>{t.set(e,n[i])}))}disposeTextures(t,e){const n=e.getUnit();t.forEach((t=>{const e=t.getUnit();this.capturedFramesManager.isReservedUnit(e)||n===e||this.textureManager.releaseTexture(t)}))}disposeAllStore(t){const e=new Set;Object.values(t.get()).forEach((t=>{const n=t.getUnit();this.capturedFramesManager.isReservedUnit(n)||e.has(n)||t.isStatic||(this.textureManager.releaseTexture(t),e.add(n))}))}}class kh{constructor(t){this.context=t}bind(){throw new Error("impl in concrete")}}let wh=100,xh=100;function _h(t,e){wh=t,xh=e}let Th=class extends kh{bind(t){var e,n;this.context.gl.bindFramebuffer(this.context.gl.FRAMEBUFFER,null);const i=null===(e=this.context.gl)||void 0===e||null===(e=e.canvas)||void 0===e?void 0:e.width,r=null===(n=this.context.gl)||void 0===n||null===(n=n.canvas)||void 0===n?void 0:n.height;return Number.isFinite(i)&&Number.isFinite(r)&&i>0&&r>0&&(this.context.gl.viewport(0,0,i,r),_h(i,r)),t}},Ih=class extends kh{bind(t){Array.isArray(t)||(t=[t]),this.context.gl.bindFramebuffer(this.context.gl.FRAMEBUFFER,this.context.frameBufferObject);const e=this.context.textureManager.createTexture({type:"pixel"}),n=this.context.gl.COLOR_ATTACHMENT0;if(this.context.gl.framebufferTexture2D(this.context.gl.FRAMEBUFFER,n,this.context.gl.TEXTURE_2D,e.textureObject,0),this.context.gl.clear(this.context.gl.COLOR_BUFFER_BIT),!0===this.context.useCanvasSizedFilterTargets){var i,r;const t=null===(i=this.context.gl)||void 0===i||null===(i=i.canvas)||void 0===i?void 0:i.width,n=null===(r=this.context.gl)||void 0===r||null===(r=r.canvas)||void 0===r?void 0:r.height;Number.isFinite(t)&&t>0&&e.setWidth(t),Number.isFinite(n)&&n>0&&e.setHeight(n);const o=e.textureObjectInfo,s=null==o?void 0:o.allocatedWidth,a=null==o?void 0:o.allocatedHeight;Number.isFinite(t)&&Number.isFinite(n)&&(s!==t||a!==n)&&"function"==typeof e.fill&&e.fill(null)}else t[0]&&(e.setHeight(t[0].getHeight()),e.setWidth(t[0].getWidth()));return e}};class Eh{constructor(t){this.gl=t.gl,this.textureManager=t.textureManager,this.useCanvasSizedFilterTargets=t.useCanvasSizedFilterTargets,this.bufferIndex=0,this.frameBufferObjectsPool=[this.gl.createFramebuffer(),this.gl.createFramebuffer(),this.gl.createFramebuffer()]}getFrameBufferObject(){const t=this.frameBufferObjectsPool[this.bufferIndex];return this.bufferIndex=this.bufferIndex++%this.frameBufferObjectsPool.length,t}create(t){let e;return e=t===Gd.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS?new Th({gl:this.gl}):new Ih({gl:this.gl,textureManager:this.textureManager,frameBufferObject:this.getFrameBufferObject(),useCanvasSizedFilterTargets:this.useCanvasSizedFilterTargets}),e}}function Sh(t,e,n){const i=e===t.VERTEX_SHADER?"vertex":"fragment";var r;r=t,Boolean(r)&&("undefined"!=typeof WebGL2RenderingContext&&r instanceof WebGL2RenderingContext||"function"==typeof r.createVertexArray)&&(n=function(t="",e){if("string"!=typeof t||!t||function(t=""){return"string"==typeof t&&t.includes("#version 300 es")}(t))return t;let n=t;if("vertex"===e&&(n=n.replace(/\battribute\b/g,"in"),n=n.replace(/\bvarying\b/g,"out")),"fragment"===e&&(n=n.replace(/\bvarying\b/g,"in"),n=n.replace(/\bgl_FragColor\b/g,"fragColor")),n=n.replace(/\btexture2D\b/g,"texture"),n=`#version 300 es\n${n}`,"fragment"===e&&n.includes("fragColor")&&!/\bout\s+vec4\s+fragColor\s*;/.test(n)){const t=n.split("\n");let e=1;for(let n=1;n<t.length;n+=1)if(t[n].trim().startsWith("precision ")){e=n+1;break}t.splice(e,0,"out vec4 fragColor;"),n=t.join("\n")}return n}(n,i));const o=t.createShader(e);if(!o)throw new Error(`Failed to create ${i} shader`);if(t.shaderSource(o,n),t.compileShader(o),t.getShaderParameter(o,t.COMPILE_STATUS))return o;const s=t.getShaderInfoLog(o);throw t.deleteShader(o),new Error(s)}var Ah=function(t,e){return Sh(t,t.VERTEX_SHADER,e)},Nh=function(t,e){return Sh(t,t.FRAGMENT_SHADER,e)};const Mh={position_3d:0,texture_coordinate_2d:1};var Fh=function(t,e,n){const i=t.createProgram();if(t.attachShader(i,e),t.attachShader(i,n),Object.entries(Mh).forEach((([e,n])=>{t.bindAttribLocation(i,n,e)})),t.linkProgram(i),t.getProgramParameter(i,t.LINK_STATUS))return i;const r=t.getProgramInfoLog(i);throw t.deleteProgram(i),new Error(r)},Oh=[-1,-1,1,1,-1,1,-1,1,1,1,1,1],Ch=[0,1,2,2,1,3],Ph=[0,0,1,0,0,1,1,1];const Dh=96,Rh=[new Float32Array(new ArrayBuffer(Dh)),new Float32Array(new ArrayBuffer(Dh)),new Float32Array(new ArrayBuffer(Dh)),new Float32Array(new ArrayBuffer(Dh)),new Float32Array(new ArrayBuffer(Dh)),new Float32Array(new ArrayBuffer(Dh))],Lh=[new Int16Array(6),new Int16Array(6),new Int16Array(6)];class Bh{constructor(t,e,n){return this.gl=n.gl,this.program=n.program,this.bindPoint=e,this.location=this.gl.getAttribLocation(this.program,t),this.buffer=this.gl.createBuffer(),this.floatBufferCounter=0,this.unit16BufferCounter=0,{fillBuffer:this.fillBuffer.bind(this),bindBuffer:this.bindBuffer.bind(this),setPointer:this.setPointer.bind(this),dispose:this.dispose.bind(this)}}enable(){this.gl.enableVertexAttribArray(this.location)}bindBuffer(){this.gl.bindBuffer(this.bindPoint,this.buffer)}getBuffer(){let t;switch(this.bindPoint){case this.gl.ARRAY_BUFFER:t=Rh[this.floatBufferCounter],this.floatBufferCounter=this.floatBufferCounter++%Rh.length;break;case this.gl.ELEMENT_ARRAY_BUFFER:t=Lh[this.unit16BufferCounter],this.unit16BufferCounter=this.unit16BufferCounter++%Lh.length;break;default:throw new Error("cant get buffer for this bind point: ",this.bindPoint)}return t}fillBuffer(t){this.bindBuffer();const e=this.getBuffer();e.set(t,0),this.gl.bufferData(this.bindPoint,e,this.gl.STATIC_DRAW)}getPointerData(){throw new Error("you should impl this function")}setPointer(){this.bindBuffer(),this.enable();const t=this.getPointerData();this.gl.vertexAttribPointer(this.location,t.size,t.type,t.normalize,t.stride,t.offset)}dispose(){this.gl.deleteBuffer(this.buffer)}}const zh={position_3d:class extends Bh{getPointerData(){return{size:3,type:this.gl.FLOAT,normalize:!1,stride:0,offset:0}}},position_indexes:class extends Bh{setPointer(){}getPointerData(){}enable(){}},texture_coordinate_2d:class extends Bh{getPointerData(){return{size:2,type:this.gl.FLOAT,normalize:!0,stride:0,offset:0}}}};var Wh=function(t,e,n){const i=zh[t];if(!i)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(zh)}`);return new i(t,e,n)};class jh{constructor(t,e){this.gl=e.gl,this.program=e.program,this.location=this.gl.getUniformLocation(this.program,t)}compute(){return this}set(){return this}}class Uh extends jh{set(t){this.gl.uniform1fv(this.location,t)}}class $h extends jh{set(t){t&&(t.beforeUse(),this.gl.uniform1i(this.location,t.getUnit()))}}const qh="first_texture_dimensions",Vh="viewport_dimensions",Gh="time",Hh={RUNTIME_OPTIONS:"runtimeOptions[0]",STATIC_OPTIONS:"staticOptions[0]",FIRST_TEXTURE:"first_texture",SECOND_TEXTURE:"second_texture",FIRST_MATRIX:"first_mat4"},Kh={[Hh.FIRST_TEXTURE]:$h,[Hh.SECOND_TEXTURE]:$h,[Hh.FIRST_MATRIX]:class extends jh{set(t){this.gl.uniformMatrix4fv(this.location,!1,t)}},[Hh.STATIC_OPTIONS]:Uh,[Hh.RUNTIME_OPTIONS]:Uh};var Xh=function(t,e){const n=Kh[t];if(!n)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(Kh)}`);return new n(t,e)},Yh=function(t,e){let n=(Date.now()-t||0)/(e||1);return n=Number.parseFloat(n).toFixed(7),n=Math.min(1,n),n};const Qh="position_3d",Jh="position_indexes",Zh="texture_coordinate_2d";class tf{constructor(t,e,n,i){this.type=t,this.gl=i.gl,this.frameBuffer=i.frameBufferFactory.create(t),this.rebindAttributesOnProgramSwitch=!1!==i.rebindAttributesOnProgramSwitch,this.vertexShader=Ah(this.gl,e.vertex),this.fragmentShader=Nh(this.gl,e.fragment),this.program=Fh(this.gl,this.vertexShader,this.fragmentShader);const r={gl:this.gl,program:this.program};this.attributes=function(t,e){const n={};return t=t||[],(t=[{id:Qh,bindPoint:e.gl.ARRAY_BUFFER},{id:Jh,bindPoint:e.gl.ELEMENT_ARRAY_BUFFER},{id:Zh,bindPoint:e.gl.ARRAY_BUFFER}].concat(t)).forEach((t=>{const i=t.id;n[i]=Wh(i,t.bindPoint,e)})),n}(n.attributes,r),this.uniforms=function(t,e){const n={};return(t=t||[]).forEach((t=>{const i=t.id;n[i]=Xh(i,e)})),n}(n.uniforms,r),this.gl.useProgram(this.program),i.__handleAttributesInitedOnce||(this.handleAttributes(),i.__handleAttributesInitedOnce=!0),this.handleStaticUniforms(i.options)}static getFilterType(){throw new Error("impl in concrete class")}static getInputsCount(){throw new Error(`impl in concrete class ${this.getFilterType()}`)}static getInitialOptions(){throw new Error(`impl in concrete class ${this.getFilterType()}`)}static getUniformInfo(t){let e=[{id:Hh.RUNTIME_OPTIONS},{id:Hh.STATIC_OPTIONS}];return(t.getUniformList||tf.getUniformList)().forEach((t=>{Object.values(Hh).includes(t)&&e.push({id:t})})),e}handleRuntimeUniforms(t,e){const{inputTextures:n,viewportDimensions:i}=t;let r=Array.isArray(n)?n:[n],o=[];(this.constructor.getUniformList||tf.getUniformList)().forEach((t=>{switch(t){case Hh.FIRST_TEXTURE:this.uniforms[Hh.FIRST_TEXTURE].set(r[0]);break;case Hh.SECOND_TEXTURE:this.uniforms[Hh.SECOND_TEXTURE].set(r[1]);break;case qh:o=[...o,r[0].getWidth(),r[0].getHeight()];break;case Vh:o=[...o,i.width,i.height];break;case Gh:{const t=Yh(e.startTime,e.duration);o=[...o,t];break}}})),o.length>0&&this.uniforms[Hh.RUNTIME_OPTIONS].set(o)}static getUniformList(){return[Hh.FIRST_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(){}handleAttributes(){this.attributes[Qh].fillBuffer(Oh),this.attributes[Qh].setPointer(),this.attributes[Jh].fillBuffer(Ch),this.attributes[Zh].fillBuffer(Ph),this.attributes[Zh].setPointer()}disposeAttributes(){Object.values(this.attributes).forEach((t=>{t.dispose()}))}render(t,e){const n=this.frameBuffer.bind(t);let i={width:wh,height:xh};return this.gl.useProgram(this.program),this.rebindAttributesOnProgramSwitch&&this.gl.__shaderGraphLastProgram!==this.program&&(this.handleAttributes(),this.gl.__shaderGraphLastProgram=this.program),this.handleRuntimeUniforms({inputTextures:t,viewportDimensions:i},e),this.draw(),n}draw(){const t=this.gl.TRIANGLES,e=this.gl.UNSIGNED_SHORT;this.gl.drawElements(t,6,e,0)}updateStaticUniforms(t){this.gl.useProgram(this.program),this.handleStaticUniforms(t)}dispose(){this.gl.detachShader(this.program,this.vertexShader),this.gl.deleteShader(this.vertexShader),this.gl.detachShader(this.program,this.fragmentShader),this.gl.deleteShader(this.fragmentShader),this.gl.deleteProgram(this.program)}}class ef extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(ef)};super(ef.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n // we need to flip y poisiton bacause webgl display the canvas\n // with 0,0 being the bottom left corner \n // insted of the traditional top left\n float flip_y_position = position_3d.y * (-1.0);\n vec4 normalize_poistion = vec4(position_3d.x, flip_y_position, position_3d.z, 1);\n \n gl_Position = normalize_poistion;\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n}"},e,t)}static getFilterType(){return"__default"}static getInputsCount(){return 1}static getInitialOptions(){return{}}}var nf,rf="undefined"!=typeof Float32Array?Float32Array:Array;function of(){var t=new rf(3);return rf!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function sf(t,e,n){var i=new rf(3);return i[0]=t,i[1]=e,i[2]=n,i}function af(){var t=new rf(4);return rf!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}of(),function(){var t;t=new rf(4),rf!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}(),of(),sf(1,0,0),sf(0,1,0),af(),af(),nf=new rf(9),rf!=Float32Array&&(nf[1]=0,nf[2]=0,nf[3]=0,nf[5]=0,nf[6]=0,nf[7]=0),nf[0]=1,nf[4]=1,nf[8]=1;class lf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(lf)};super(lf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform mat4 first_mat4;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xy, 1, 1);\n\n gl_Position = first_mat4 * normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n // gl_FragColor = vec4(256,0,0,1);\n}"},e,t)}static getFilterType(){return"transform"}static getInputsCount(){return 1}static getInitialOptions(){return{translate:{x:0,y:0},scale:{x:1,y:1},rotate:0}}getOptionsDisplay(){return[{properties:["translate","x"],type:"slider",minValue:-2,maxValue:2,step:.001,initialValue:lf.getInitialOptions().translate.x},{properties:["translate","y"],type:"slider",minValue:-2,maxValue:2,step:.001,initialValue:lf.getInitialOptions().translate.y},{properties:["scale","x"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:lf.getInitialOptions().scale.x},{properties:["scale","y"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:lf.getInitialOptions().scale.y},{properties:["rotate"],type:"slider",minValue:-360,maxValue:360,step:1,initialValue:lf.getInitialOptions().rotate}]}static getUniformList(){return[Hh.FIRST_TEXTURE,Hh.FIRST_MATRIX]}handleStaticUniforms(t){if(!t||!t.translate||!t.scale)throw new Error(`bad options object for Transform filter, check ${t}`);const e=Number.parseFloat(t.translate.x).toFixed(7),n=-1*Number.parseFloat(t.translate.y).toFixed(7),i=Number.parseFloat(t.scale.x).toFixed(7),r=Number.parseFloat(t.scale.y).toFixed(7),o=t.rotate||0;var s;this.transformMatrix=function(t,e,n,i){var r=e[0],o=e[1],s=e[2],a=e[3],l=r+r,c=o+o,u=s+s,d=r*l,h=r*c,f=r*u,p=o*c,m=o*u,v=s*u,g=a*l,y=a*c,b=a*u,k=i[0],w=i[1],x=i[2];return t[0]=(1-(p+v))*k,t[1]=(h+b)*k,t[2]=(f-y)*k,t[3]=0,t[4]=(h-b)*w,t[5]=(1-(d+v))*w,t[6]=(m+g)*w,t[7]=0,t[8]=(f+y)*x,t[9]=(m-g)*x,t[10]=(1-(d+p))*x,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}((s=new rf(16),rf!=Float32Array&&(s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[11]=0,s[12]=0,s[13]=0,s[14]=0),s[0]=1,s[5]=1,s[10]=1,s[15]=1,s),function(t,e,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"zyx",o=Math.PI/360;e*=o,i*=o,n*=o;var s=Math.sin(e),a=Math.cos(e),l=Math.sin(n),c=Math.cos(n),u=Math.sin(i),d=Math.cos(i);switch(r){case"xyz":t[0]=s*c*d+a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d-s*l*u;break;case"xzy":t[0]=s*c*d-a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d+s*l*u;break;case"yxz":t[0]=s*c*d+a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d+s*l*u;break;case"yzx":t[0]=s*c*d+a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d-s*l*u;break;case"zxy":t[0]=s*c*d-a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d-s*l*u;break;case"zyx":t[0]=s*c*d-a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d+s*l*u;break;default:throw new Error("Unknown angle order "+r)}return t}(af(),0,0,o),sf(e,n,0),sf(i,r,1)),this.uniforms[Hh.FIRST_MATRIX].set(this.transformMatrix)}}class cf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(cf)};super(cf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[2];\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\n\nvoid main() {\n vec2 normalize_poistion = vec2(position_3d.xy);\n gl_Position = vec4(normalize_poistion, 1, 1);\n\n float texture_width = runtimeOptions[0];\n float pixel_width = 1.0 / texture_width;\n\n \n for(int i=-5; i<5; ++i){\n float current_i = float(i);\n blur_texture_coordinate_2d[i+5] = texture_coordinate_2d + vec2(pixel_width * current_i, 0.0); \n }\n}\n",fragment:"\nprecision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\nvoid main() {\n vec4 out_colour = vec4(0.0);\n\tout_colour += texture2D(first_texture, blur_texture_coordinate_2d[0]) * 0.0093;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[1]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[2]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[3]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[4]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[5]) * 0.198596;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[6]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[7]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[8]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[9]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[10]) * 0.0093;\n \n \n gl_FragColor = out_colour;\n}"},e,t)}static getFilterType(){return"horizontalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,qh]}}class uf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(uf)};super(uf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[2];\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\n\nvoid main() {\n vec2 normalize_poistion = vec2(position_3d.xy);\n gl_Position = vec4(normalize_poistion, 1, 1);\n\n float texture_width = runtimeOptions[1];\n float pixel_height = 1.0 / texture_width;\n\n for(int i=-5; i<5; ++i){\n float current_i = float(i);\n blur_texture_coordinate_2d[i+5] = texture_coordinate_2d + vec2( 0.0, pixel_height * current_i);\n }\n}\n",fragment:"\nprecision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\nvoid main() {\n vec4 out_colour = vec4(0.0);\n\tout_colour += texture2D(first_texture, blur_texture_coordinate_2d[0]) * 0.0093;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[1]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[2]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[3]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[4]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[5]) * 0.198596;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[6]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[7]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[8]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[9]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[10]) * 0.0093;\n \n \n gl_FragColor = out_colour;\n}"},e,t)}static getFilterType(){return"verticalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,qh]}}class df extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(df)};super(df.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[3];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nconst float Depth = 3.;\nconst float Samples = 8.;\nfloat OffsetDist = staticOptions[0];\n\nvec2 srcDims = vec2(runtimeOptions[0], runtimeOptions[1]);\nvec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\nvec2 iResolution = vpDims;\n\n\n#define TAU 6.28318530718\n\nvec4 RadialBlur(vec2 fragCoord, float radius) {\n if (radius <= 0.) {\n return texture2D(first_texture, fragCoord/iResolution.xy);\n }\n\n vec2 offset;\n float angle = 0.;\n vec4 color = vec4(0.);\n\n for(float angle = 0.; angle < TAU; angle += (TAU/Samples)) {\n offset = vec2(cos(angle), sin(angle)) * radius;\n color += texture2D(first_texture, (fragCoord + offset)/iResolution.xy);\n }\n\n return color/Samples;\n\n}\n\nvec4 FastBlur(vec2 fragCoord) {\n\n vec4 color;\n vec2 offset;\n float fib = 2.;\n float fibTotal = 0.;\n\n for(float i = 1.; i <= Depth; ++i) {\n fib += i;\n color += RadialBlur(fragCoord, i * OffsetDist)/ fib;\n fibTotal += 1./fib;\n }\n\n return color/fibTotal;\n\n}\n\n// based on https://www.shadertoy.com/view/3ljBDd\nvoid main() {\n// vec2 fragCoords = (vec2(current_texture_coordinate_2d) + 1.0) / 2.0 * vpDims;\n vec2 fragCoords = vec2(current_texture_coordinate_2d) * vpDims;\n gl_FragColor = FastBlur(fragCoords);\n}"},e,t)}static getFilterType(){return"fastBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,qh,Vh]}handleStaticUniforms(t){var e;const n=(null!==(e=Number.parseFloat(t.offsetDist))&&void 0!==e?e:4).toFixed(3);this.uniforms[Hh.STATIC_OPTIONS].set([n])}}class hf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(hf)};super(hf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[2];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\n\n// A simple directional blur that doesn't brighten the image, based on https://www.shadertoy.com/view/WdSXWD\n// and https://www.shadertoy.com/view/NltSD4\n\nvec4 dirBlur() {\n float angle = staticOptions[0];\n float strength = staticOptions[1];\n if (strength == 0.0){\n return texture2D(first_texture, current_texture_coordinate_2d);\n }\n\n vec2 uv = current_texture_coordinate_2d;\n\n float r = radians(angle);\n vec2 direction = vec2(sin(r), cos(r));\n\n vec2 strengthDirection = strength * direction;\n vec3 acc = vec3(0);\n for(float i = -1.0; i <= 1.0; i += (2.0 / 50.0)) {\n acc += texture2D(first_texture, uv - vec2(strengthDirection.x * i, strengthDirection.y * i)).rgb * (2.0 / 50.0) * .5;\n }\n\n return vec4(acc, 1.0);\n\n}\n\nvoid main() {\n gl_FragColor = dirBlur();\n}"},e,t)}static getFilterType(){return"directionalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,qh,Vh]}handleStaticUniforms(t){var e,n;const i=(null!==(e=Number.parseFloat(t.angle))&&void 0!==e?e:90).toFixed(3),r=(null!==(n=Number.parseFloat(t.strength))&&void 0!==n?n:.1).toFixed(3);this.uniforms[Hh.STATIC_OPTIONS].set([i,r])}}class ff extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(ff)};super(ff.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[1];\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n float opacity = texture.w - (1.0 - staticOptions[0]);\n gl_FragColor = vec4((texture.xyz) , opacity);\n}"},e,t)}static getFilterType(){return"opacity"}static getInputsCount(){return 1}static getInitialOptions(){return{power:1}}getOptionsDisplay(){return[{properties:["power"],type:"slider",minValue:0,maxValue:1,step:.001}]}handleStaticUniforms(t){const e=Number.parseFloat(t.power).toFixed(7);this.uniforms[Hh.STATIC_OPTIONS].set([e])}}class pf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(pf)};super(pf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nuniform float staticOptions[7];\nuniform float runtimeOptions[2];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nfloat roundedBoxSDF(vec2 point, vec2 center, vec2 area, float radius) {\n return length(max(abs(point - center) - area + radius, 0.0)) - radius;\n}\n\nfloat boxSDF(vec2 point, vec2 center, vec2 area){\n vec2 d = abs(point - center) - area;\n return length(max(d,vec2(0)));\n}\n\n\nvoid main() {\n float type = staticOptions[0];\n vec2 aspectRatio = vec2(runtimeOptions[0]/runtimeOptions[1], 1.0);\n\n\n vec2 center = vec2(staticOptions[1], staticOptions[2]) * aspectRatio;\n vec2 area = max(vec2(staticOptions[3], staticOptions[4]) * aspectRatio, 0.0); \n float radius = staticOptions[5];\n\n vec2 SDF_PositionCoordinate2d = vec2(\n current_position_coordinate_2d.x,\n current_position_coordinate_2d.y * -1.0\n ) * aspectRatio;\n\n vec4 color1 = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 color2 = texture2D(second_texture, current_texture_coordinate_2d);\n\n float dist;\n vec4 color;\n if(type == 0.0){\n dist = boxSDF(SDF_PositionCoordinate2d, center, area);\n color = (dist > 0.0) ? color2: color1;\n } else {\n dist = roundedBoxSDF(SDF_PositionCoordinate2d, center, area, radius);\n color = (dist > 0.0) ? color2: color1;\n color = mix( color, color2, 1.0-smoothstep(0.0,0.0025,abs(dist)));\n }\n \n gl_FragColor = color;\n}"},e,t)}static getFilterType(){return"shapeCompositeMask"}static getInputsCount(){return 2}static getInitialOptions(){return{type:"box",center:{x:0,y:0},area:{width:0,height:0},radius:.01,edgeSoftness:0}}getOptionsDisplay(){return[{properties:["center","x"],type:"slider",minValue:-1,maxValue:1,step:.001},{properties:["center","y"],type:"slider",minValue:-1,maxValue:1,step:.001},{properties:["area","width"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["area","height"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["radius"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["edgeSoftness"],type:"slider",minValue:-2,maxValue:2,step:.001}]}static getUniformList(){return[Hh.FIRST_TEXTURE,qh,Hh.SECOND_TEXTURE]}handleStaticUniforms(t){let e;switch(t.type){case"box":e=0;break;case"rounded":e=1;break;default:throw new Error("cant recognize shape composite mask type")}const n=Number.parseFloat(t.center.x).toFixed(7);let i=Number.parseFloat(t.center.y).toFixed(7);i+=0;const r=Number.parseFloat(t.area.width).toFixed(7),o=Number.parseFloat(t.area.height).toFixed(7),s=Number.parseFloat(t.radius).toFixed(7),a=Number.parseFloat(t.edgeSoftness).toFixed(7);this.uniforms[Hh.STATIC_OPTIONS].set([e,n,i,r,o,s,a])}}class mf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(mf)};super(mf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 fgColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 bgColor = texture2D(second_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(\n mix(bgColor.xyz, fgColor.xyz, fgColor.w),\n 1.0\n );\n // vec4 fgColor = texture2D(textures[1], current_texture_coordinate_2d);\n // if(fgColor.w > 0.0){\n // gl_FragColor = vec4(1.0,0,0,1);\n // }else{\n // gl_FragColor = vec4(1.0,1.0,0,1);\n // }\n \n \n}"},e,t)}static getFilterType(){return"shapeComposite"}static getInputsCount(){return 2}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,Hh.SECOND_TEXTURE]}}class vf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(vf)};super(vf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n // Look it up in the LUT\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n\n mediump float blueColor = textureColor.b * 63.0;\n\n mediump vec2 quad1;\n quad1.y = floor(floor(blueColor) / 8.0);\n quad1.x = floor(blueColor) - (quad1.y * 8.0);\n\n mediump vec2 quad2;\n quad2.y = floor(ceil(blueColor) / 8.0);\n quad2.x = ceil(blueColor) - (quad2.y * 8.0);\n\n highp vec2 texPos1;\n texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\n texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);\n\n\n highp vec2 texPos2;\n texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\n texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);\n\n lowp vec4 newColor1 = texture2D(second_texture, texPos1);\n lowp vec4 newColor2 = texture2D(second_texture, texPos2);\n\n lowp vec4 color = mix(newColor1, newColor2, fract(blueColor));\n\n gl_FragColor = color;\n\n // debug\n// if (current_texture_coordinate_2d.x < 0.5) {\n// // Left half: show original\n// gl_FragColor = textureColor;\n// } else {\n// gl_FragColor = color;\n// }\n}\n"},e,t)}static getFilterType(){return"lut"}static getInputsCount(){return 2}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,Hh.SECOND_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(t){const e=Number.parseFloat(t.lutSize).toFixed(1);this.uniforms[Hh.STATIC_OPTIONS].set([e])}}var gf="attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",yf='precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n// a 256 * 4 length array with values for the master, r, g and b curve respectively\n// Temporarily changed length to 256 to avoid the following error on some machines:\n// "Implementation limit of 4096 (e.g., number of built-in plus user defined active uniforms components) exceeded, fragment shader uses 4100 total uniforms."\nuniform float staticOptions[256];\n\n\n// implementation of round (doesn\'t exist in webgl)\nint round(float val){\n return int(floor(val + 0.5));\n}\n\n// no dynamic array indexes in webgl\n// see https://stackoverflow.com/questions/30585265/what-can-i-use-as-an-array-index-in-glsl-in-webgl\nfloat getCurveValue(float pixelValue){\n float v;\n for (int k = 0; k < 256; k++) {\n if (k == round(pixelValue * 255.0)){\n v = float(staticOptions[k]) / 255.0;\n }\n }\n return v;\n}\n\nvec3 masterCurve(vec4 color){\n float r = getCurveValue(color.r);\n float g = getCurveValue(color.g);\n float b = getCurveValue(color.b);\n// for (int k = 0; k < 256; ++k) {\n// if (k == int(color.g) * 256){\n// g = float(staticOptions[k]) / 256.0;\n// }\n// }\n// for (int k = 0; k < 256; ++k) {\n// if (k == int(color.b) * 256){\n// b = float(staticOptions[k]) / 256.0;\n// }\n// }\n return vec3(r,g,b);\n}\n\n//vec3 redCurve(vec3 color){\n// int offset = 256;\n// return vec3(staticOptions[int(int(color.r) + offset)], color.g, color.b);\n//}\n//\n//vec3 greenCurve(vec3 color){\n// int offset = 256 * 2;\n// return vec3(color.r, staticOptions[int(int(color.g) + offset)], color.b);\n//}\n//\n//vec3 blueCurve(vec3 color){\n// int offset = 256 * 3;\n// return vec3(color.r, color.g, staticOptions[int(int(color.b) + offset)]);\n//}\n\nvoid main() {\n// vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n// vec3 afterMaster = masterCurve(textureColor);\n// vec3 afterRed = redCurve(afterMaster);\n// vec3 afterGreen = greenCurve(afterRed);\n// vec3 afterBlue = blueCurve(afterGreen);\n// vec4 finalColor = vec4(afterBlue, textureColor.a);\n\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec3 afterMaster = masterCurve(textureColor);\n vec4 finalColor = vec4(afterMaster, textureColor.a);\n\n gl_FragColor = finalColor;\n}\n';const{abs:bf,cos:kf,sin:wf,acos:xf,atan2:_f,sqrt:Tf,pow:If}=Math;function Ef(t){return t<0?-If(-t,1/3):If(t,1/3)}const Sf=Math.PI,Af=2*Sf,Nf=Sf/2,Mf=Number.MAX_SAFE_INTEGER||9007199254740991,Ff=Number.MIN_SAFE_INTEGER||-9007199254740991,Of={x:0,y:0,z:0},Cf={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(t,e){const n=e(t);let i=n.x*n.x+n.y*n.y;return void 0!==n.z&&(i+=n.z*n.z),Tf(i)},compute:function(t,e,n){if(0===t)return e[0].t=0,e[0];const i=e.length-1;if(1===t)return e[i].t=1,e[i];const r=1-t;let o=e;if(0===i)return e[0].t=t,e[0];if(1===i){const e={x:r*o[0].x+t*o[1].x,y:r*o[0].y+t*o[1].y,t:t};return n&&(e.z=r*o[0].z+t*o[1].z),e}if(i<4){let e,s,a,l=r*r,c=t*t,u=0;2===i?(o=[o[0],o[1],o[2],Of],e=l,s=r*t*2,a=c):3===i&&(e=l*r,s=l*t*3,a=r*c*3,u=t*c);const d={x:e*o[0].x+s*o[1].x+a*o[2].x+u*o[3].x,y:e*o[0].y+s*o[1].y+a*o[2].y+u*o[3].y,t:t};return n&&(d.z=e*o[0].z+s*o[1].z+a*o[2].z+u*o[3].z),d}const s=JSON.parse(JSON.stringify(e));for(;s.length>1;){for(let e=0;e<s.length-1;e++)s[e]={x:s[e].x+(s[e+1].x-s[e].x)*t,y:s[e].y+(s[e+1].y-s[e].y)*t},void 0!==s[e].z&&(s[e].z=s[e].z+(s[e+1].z-s[e].z)*t);s.splice(s.length-1,1)}return s[0].t=t,s[0]},computeWithRatios:function(t,e,n,i){const r=1-t,o=n,s=e;let a,l=o[0],c=o[1],u=o[2],d=o[3];return l*=r,c*=t,2===s.length?(a=l+c,{x:(l*s[0].x+c*s[1].x)/a,y:(l*s[0].y+c*s[1].y)/a,z:!!i&&(l*s[0].z+c*s[1].z)/a,t:t}):(l*=r,c*=2*r,u*=t*t,3===s.length?(a=l+c+u,{x:(l*s[0].x+c*s[1].x+u*s[2].x)/a,y:(l*s[0].y+c*s[1].y+u*s[2].y)/a,z:!!i&&(l*s[0].z+c*s[1].z+u*s[2].z)/a,t:t}):(l*=r,c*=1.5*r,u*=3*r,d*=t*t*t,4===s.length?(a=l+c+u+d,{x:(l*s[0].x+c*s[1].x+u*s[2].x+d*s[3].x)/a,y:(l*s[0].y+c*s[1].y+u*s[2].y+d*s[3].y)/a,z:!!i&&(l*s[0].z+c*s[1].z+u*s[2].z+d*s[3].z)/a,t:t}):void 0))},derive:function(t,e){const n=[];for(let i=t,r=i.length,o=r-1;r>1;r--,o--){const t=[];for(let n,r=0;r<o;r++)n={x:o*(i[r+1].x-i[r].x),y:o*(i[r+1].y-i[r].y)},e&&(n.z=o*(i[r+1].z-i[r].z)),t.push(n);n.push(t),i=t}return n},between:function(t,e,n){return e<=t&&t<=n||Cf.approximately(t,e)||Cf.approximately(t,n)},approximately:function(t,e,n){return bf(t-e)<=(n||1e-6)},length:function(t){const e=Cf.Tvalues.length;let n=0;for(let i,r=0;r<e;r++)i=.5*Cf.Tvalues[r]+.5,n+=Cf.Cvalues[r]*Cf.arcfn(i,t);return.5*n},map:function(t,e,n,i,r){return i+(t-e)/(n-e)*(r-i)},lerp:function(t,e,n){const i={x:e.x+t*(n.x-e.x),y:e.y+t*(n.y-e.y)};return void 0!==e.z&&void 0!==n.z&&(i.z=e.z+t*(n.z-e.z)),i},pointToString:function(t){let e=t.x+"/"+t.y;return void 0!==t.z&&(e+="/"+t.z),e},pointsToString:function(t){return"["+t.map(Cf.pointToString).join(", ")+"]"},copy:function(t){return JSON.parse(JSON.stringify(t))},angle:function(t,e,n){const i=e.x-t.x,r=e.y-t.y,o=n.x-t.x,s=n.y-t.y;return _f(i*s-r*o,i*o+r*s)},round:function(t,e){const n=""+t,i=n.indexOf(".");return parseFloat(n.substring(0,i+1+e))},dist:function(t,e){const n=t.x-e.x,i=t.y-e.y;return Tf(n*n+i*i)},closest:function(t,e){let n,i,r=If(2,63);return t.forEach((function(t,o){i=Cf.dist(e,t),i<r&&(r=i,n=o)})),{mdist:r,mpos:n}},abcratio:function(t,e){if(2!==e&&3!==e)return!1;if(void 0===t)t=.5;else if(0===t||1===t)return t;const n=If(t,e)+If(1-t,e);return bf((n-1)/n)},projectionratio:function(t,e){if(2!==e&&3!==e)return!1;if(void 0===t)t=.5;else if(0===t||1===t)return t;const n=If(1-t,e);return n/(If(t,e)+n)},lli8:function(t,e,n,i,r,o,s,a){const l=(t-n)*(o-a)-(e-i)*(r-s);return 0!=l&&{x:((t*i-e*n)*(r-s)-(t-n)*(r*a-o*s))/l,y:((t*i-e*n)*(o-a)-(e-i)*(r*a-o*s))/l}},lli4:function(t,e,n,i){const r=t.x,o=t.y,s=e.x,a=e.y,l=n.x,c=n.y,u=i.x,d=i.y;return Cf.lli8(r,o,s,a,l,c,u,d)},lli:function(t,e){return Cf.lli4(t,t.c,e,e.c)},makeline:function(t,e){return new $f(t.x,t.y,(t.x+e.x)/2,(t.y+e.y)/2,e.x,e.y)},findbbox:function(t){let e=Mf,n=Mf,i=Ff,r=Ff;return t.forEach((function(t){const o=t.bbox();e>o.x.min&&(e=o.x.min),n>o.y.min&&(n=o.y.min),i<o.x.max&&(i=o.x.max),r<o.y.max&&(r=o.y.max)})),{x:{min:e,mid:(e+i)/2,max:i,size:i-e},y:{min:n,mid:(n+r)/2,max:r,size:r-n}}},shapeintersections:function(t,e,n,i,r){if(!Cf.bboxoverlap(e,i))return[];const o=[],s=[t.startcap,t.forward,t.back,t.endcap],a=[n.startcap,n.forward,n.back,n.endcap];return s.forEach((function(e){e.virtual||a.forEach((function(i){if(i.virtual)return;const s=e.intersects(i,r);s.length>0&&(s.c1=e,s.c2=i,s.s1=t,s.s2=n,o.push(s))}))})),o},makeshape:function(t,e,n){const i=e.points.length,r=t.points.length,o=Cf.makeline(e.points[i-1],t.points[0]),s=Cf.makeline(t.points[r-1],e.points[0]),a={startcap:o,forward:t,back:e,endcap:s,bbox:Cf.findbbox([o,t,e,s]),intersections:function(t){return Cf.shapeintersections(a,a.bbox,t,t.bbox,n)}};return a},getminmax:function(t,e,n){if(!n)return{min:0,max:0};let i,r,o=Mf,s=Ff;-1===n.indexOf(0)&&(n=[0].concat(n)),-1===n.indexOf(1)&&n.push(1);for(let a=0,l=n.length;a<l;a++)i=n[a],r=t.get(i),r[e]<o&&(o=r[e]),r[e]>s&&(s=r[e]);return{min:o,mid:(o+s)/2,max:s,size:s-o}},align:function(t,e){const n=e.p1.x,i=e.p1.y,r=-_f(e.p2.y-i,e.p2.x-n);return t.map((function(t){return{x:(t.x-n)*kf(r)-(t.y-i)*wf(r),y:(t.x-n)*wf(r)+(t.y-i)*kf(r)}}))},roots:function(t,e){e=e||{p1:{x:0,y:0},p2:{x:1,y:0}};const n=t.length-1,i=Cf.align(t,e),r=function(t){return 0<=t&&t<=1};if(2===n){const t=i[0].y,e=i[1].y,n=i[2].y,o=t-2*e+n;if(0!==o){const i=-Tf(e*e-t*n),s=-t+e;return[-(i+s)/o,-(-i+s)/o].filter(r)}return e!==n&&0===o?[(2*e-n)/(2*e-2*n)].filter(r):[]}const o=i[0].y,s=i[1].y,a=i[2].y;let l=3*s-o-3*a+i[3].y,c=3*o-6*s+3*a,u=-3*o+3*s,d=o;if(Cf.approximately(l,0)){if(Cf.approximately(c,0))return Cf.approximately(u,0)?[]:[-d/u].filter(r);const t=Tf(u*u-4*c*d),e=2*c;return[(t-u)/e,(-u-t)/e].filter(r)}c/=l,u/=l,d/=l;const h=(3*u-c*c)/3,f=h/3,p=(2*c*c*c-9*c*u+27*d)/27,m=p/2,v=m*m+f*f*f;let g,y,b,k,w;if(v<0){const t=-h/3,e=Tf(t*t*t),n=-p/(2*e),i=xf(n<-1?-1:n>1?1:n),o=2*Ef(e);return b=o*kf(i/3)-c/3,k=o*kf((i+Af)/3)-c/3,w=o*kf((i+2*Af)/3)-c/3,[b,k,w].filter(r)}if(0===v)return g=m<0?Ef(-m):-Ef(m),b=2*g-c/3,k=-g-c/3,[b,k].filter(r);{const t=Tf(v);return g=Ef(-m+t),y=Ef(m+t),[g-y-c/3].filter(r)}},droots:function(t){if(3===t.length){const e=t[0],n=t[1],i=t[2],r=e-2*n+i;if(0!==r){const t=-Tf(n*n-e*i),o=-e+n;return[-(t+o)/r,-(-t+o)/r]}return n!==i&&0===r?[(2*n-i)/(2*(n-i))]:[]}if(2===t.length){const e=t[0],n=t[1];return e!==n?[e/(e-n)]:[]}return[]},curvature:function(t,e,n,i,r){let o,s,a,l,c=0,u=0;const d=Cf.compute(t,e),h=Cf.compute(t,n),f=d.x*d.x+d.y*d.y;if(i?(o=Tf(If(d.y*h.z-h.y*d.z,2)+If(d.z*h.x-h.z*d.x,2)+If(d.x*h.y-h.x*d.y,2)),s=If(f+d.z*d.z,1.5)):(o=d.x*h.y-d.y*h.x,s=If(f,1.5)),0===o||0===s)return{k:0,r:0};if(c=o/s,u=s/o,!r){const r=Cf.curvature(t-.001,e,n,i,!0).k,o=Cf.curvature(t+.001,e,n,i,!0).k;l=(o-c+(c-r))/2,a=(bf(o-c)+bf(c-r))/2}return{k:c,r:u,dk:l,adk:a}},inflections:function(t){if(t.length<4)return[];const e=Cf.align(t,{p1:t[0],p2:t.slice(-1)[0]}),n=e[2].x*e[1].y,i=e[3].x*e[1].y,r=e[1].x*e[2].y,o=18*(-3*n+2*i+3*r-e[3].x*e[2].y),s=18*(3*n-i-3*r),a=18*(r-n);if(Cf.approximately(o,0)){if(!Cf.approximately(s,0)){let t=-a/s;if(0<=t&&t<=1)return[t]}return[]}const l=2*o;if(Cf.approximately(l,0))return[];const c=s*s-4*o*a;if(c<0)return[];const u=Math.sqrt(c);return[(u-s)/l,-(s+u)/l].filter((function(t){return 0<=t&&t<=1}))},bboxoverlap:function(t,e){const n=["x","y"],i=n.length;for(let r,o,s,a,l=0;l<i;l++)if(r=n[l],o=t[r].mid,s=e[r].mid,a=(t[r].size+e[r].size)/2,bf(o-s)>=a)return!1;return!0},expandbox:function(t,e){e.x.min<t.x.min&&(t.x.min=e.x.min),e.y.min<t.y.min&&(t.y.min=e.y.min),e.z&&e.z.min<t.z.min&&(t.z.min=e.z.min),e.x.max>t.x.max&&(t.x.max=e.x.max),e.y.max>t.y.max&&(t.y.max=e.y.max),e.z&&e.z.max>t.z.max&&(t.z.max=e.z.max),t.x.mid=(t.x.min+t.x.max)/2,t.y.mid=(t.y.min+t.y.max)/2,t.z&&(t.z.mid=(t.z.min+t.z.max)/2),t.x.size=t.x.max-t.x.min,t.y.size=t.y.max-t.y.min,t.z&&(t.z.size=t.z.max-t.z.min)},pairiteration:function(t,e,n){const i=t.bbox(),r=e.bbox(),o=1e5,s=n||.5;if(i.x.size+i.y.size<s&&r.x.size+r.y.size<s)return[(o*(t._t1+t._t2)/2|0)/o+"/"+(o*(e._t1+e._t2)/2|0)/o];let a=t.split(.5),l=e.split(.5),c=[{left:a.left,right:l.left},{left:a.left,right:l.right},{left:a.right,right:l.right},{left:a.right,right:l.left}];c=c.filter((function(t){return Cf.bboxoverlap(t.left.bbox(),t.right.bbox())}));let u=[];return 0===c.length||(c.forEach((function(t){u=u.concat(Cf.pairiteration(t.left,t.right,s))})),u=u.filter((function(t,e){return u.indexOf(t)===e}))),u},getccenter:function(t,e,n){const i=e.x-t.x,r=e.y-t.y,o=n.x-e.x,s=n.y-e.y,a=i*kf(Nf)-r*wf(Nf),l=i*wf(Nf)+r*kf(Nf),c=o*kf(Nf)-s*wf(Nf),u=o*wf(Nf)+s*kf(Nf),d=(t.x+e.x)/2,h=(t.y+e.y)/2,f=(e.x+n.x)/2,p=(e.y+n.y)/2,m=d+a,v=h+l,g=f+c,y=p+u,b=Cf.lli8(d,h,m,v,f,p,g,y),k=Cf.dist(b,t);let w,x=_f(t.y-b.y,t.x-b.x),_=_f(e.y-b.y,e.x-b.x),T=_f(n.y-b.y,n.x-b.x);return x<T?((x>_||_>T)&&(x+=Af),x>T&&(w=T,T=x,x=w)):T<_&&_<x?(w=T,T=x,x=w):T+=Af,b.s=x,b.e=T,b.r=k,b},numberSort:function(t,e){return t-e}};class Pf{constructor(t){this.curves=[],this._3d=!1,t&&(this.curves=t,this._3d=this.curves[0]._3d)}valueOf(){return this.toString()}toString(){return"["+this.curves.map((function(t){return Cf.pointsToString(t.points)})).join(", ")+"]"}addCurve(t){this.curves.push(t),this._3d=this._3d||t._3d}length(){return this.curves.map((function(t){return t.length()})).reduce((function(t,e){return t+e}))}curve(t){return this.curves[t]}bbox(){const t=this.curves;for(var e=t[0].bbox(),n=1;n<t.length;n++)Cf.expandbox(e,t[n].bbox());return e}offset(t){const e=[];return this.curves.forEach((function(n){e.push(...n.offset(t))})),new Pf(e)}}const{abs:Df,min:Rf,max:Lf,cos:Bf,sin:zf,acos:Wf,sqrt:jf}=Math,Uf=Math.PI;let $f=class e{constructor(t){let e=t&&t.forEach?t:Array.from(arguments).slice(),n=!1;if("object"==typeof e[0]){n=e.length;const t=[];e.forEach((function(e){["x","y","z"].forEach((function(n){void 0!==e[n]&&t.push(e[n])}))})),e=t}let i=!1;const r=e.length;if(n){if(n>4){if(1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");i=!0}}else if(6!==r&&8!==r&&9!==r&&12!==r&&1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const o=this._3d=!i&&(9===r||12===r)||t&&t[0]&&void 0!==t[0].z,s=this.points=[];for(let t=0,n=o?3:2;t<r;t+=n){var a={x:e[t],y:e[t+1]};o&&(a.z=e[t+2]),s.push(a)}const l=this.order=s.length-1,c=this.dims=["x","y"];o&&c.push("z"),this.dimlen=c.length;const u=Cf.align(s,{p1:s[0],p2:s[l]}),d=Cf.dist(s[0],s[l]);this._linear=u.reduce(((t,e)=>t+Df(e.y)),0)<d/50,this._lut=[],this._t1=0,this._t2=1,this.update()}static quadraticFromPoints(t,n,i,r){if(void 0===r&&(r=.5),0===r)return new e(n,n,i);if(1===r)return new e(t,n,n);const o=e.getABC(2,t,n,i,r);return new e(t,o.A,i)}static cubicFromPoints(t,n,i,r,o){void 0===r&&(r=.5);const s=e.getABC(3,t,n,i,r);void 0===o&&(o=Cf.dist(n,s.C));const a=o*(1-r)/r,l=Cf.dist(t,i),c=(i.x-t.x)/l,u=(i.y-t.y)/l,d=o*c,h=o*u,f=a*c,p=a*u,m=n.x-d,v=n.y-h,g=n.x+f,y=n.y+p,b=s.A,k=b.x+(m-b.x)/(1-r),w=b.y+(v-b.y)/(1-r),x=b.x+(g-b.x)/r,_=b.y+(y-b.y)/r,T={x:t.x+(k-t.x)/r,y:t.y+(w-t.y)/r},I={x:i.x+(x-i.x)/(1-r),y:i.y+(_-i.y)/(1-r)};return new e(t,T,I,i)}static getUtils(){return Cf}getUtils(){return e.getUtils()}static get PolyBezier(){return Pf}valueOf(){return this.toString()}toString(){return Cf.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const t=this.points,e=["M",t[0].x,t[0].y,2===this.order?"Q":"C"];for(let n=1,i=t.length;n<i;n++)e.push(t[n].x),e.push(t[n].y);return e.join(" ")}setRatios(t){if(t.length!==this.points.length)throw new Error("incorrect number of ratio values");this.ratios=t,this._lut=[]}verify(){const t=this.coordDigest();t!==this._print&&(this._print=t,this.update())}coordDigest(){return this.points.map((function(t,e){return""+e+t.x+t.y+(t.z?t.z:0)})).join("")}update(){this._lut=[],this.dpoints=Cf.derive(this.points,this._3d),this.computedirection()}computedirection(){const t=this.points,e=Cf.angle(t[0],t[this.order],t[1]);this.clockwise=e>0}length(){return Cf.length(this.derivative.bind(this))}static getABC(t=2,e,n,i,r=.5){const o=Cf.projectionratio(r,t),s=1-o,a={x:o*e.x+s*i.x,y:o*e.y+s*i.y},l=Cf.abcratio(r,t);return{A:{x:n.x+(n.x-a.x)/l,y:n.y+(n.y-a.y)/l},B:n,C:a,S:e,E:i}}getABC(t,n){n=n||this.get(t);let i=this.points[0],r=this.points[this.order];return e.getABC(this.order,i,n,r,t)}getLUT(t){if(this.verify(),t=t||100,this._lut.length===t+1)return this._lut;this._lut=[],t++,this._lut=[];for(let e,n,i=0;i<t;i++)n=i/(t-1),e=this.compute(n),e.t=n,this._lut.push(e);return this._lut}on(e,n){n=n||5;const i=this.getLUT(),r=[];for(let t,o=0,s=0;o<i.length;o++)t=i[o],Cf.dist(t,e)<n&&(r.push(t),s+=o/i.length);return!!r.length&&(t/=r.length)}project(t){const e=this.getLUT(),n=e.length-1,i=Cf.closest(e,t),r=i.mpos,o=(r-1)/n,s=(r+1)/n,a=.1/n;let l,c=i.mdist,u=o,d=u;c+=1;for(let e;u<s+a;u+=a)l=this.compute(u),e=Cf.dist(t,l),e<c&&(c=e,d=u);return d=d<0?0:d>1?1:d,l=this.compute(d),l.t=d,l.d=c,l}get(t){return this.compute(t)}point(t){return this.points[t]}compute(t){return this.ratios?Cf.computeWithRatios(t,this.points,this.ratios,this._3d):Cf.compute(t,this.points,this._3d,this.ratios)}raise(){const t=this.points,n=[t[0]],i=t.length;for(let e,r,o=1;o<i;o++)e=t[o],r=t[o-1],n[o]={x:(i-o)/i*e.x+o/i*r.x,y:(i-o)/i*e.y+o/i*r.y};return n[i]=t[i-1],new e(n)}derivative(t){return Cf.compute(t,this.dpoints[0],this._3d)}dderivative(t){return Cf.compute(t,this.dpoints[1],this._3d)}align(){let t=this.points;return new e(Cf.align(t,{p1:t[0],p2:t[t.length-1]}))}curvature(t){return Cf.curvature(t,this.dpoints[0],this.dpoints[1],this._3d)}inflections(){return Cf.inflections(this.points)}normal(t){return this._3d?this.__normal3(t):this.__normal2(t)}__normal2(t){const e=this.derivative(t),n=jf(e.x*e.x+e.y*e.y);return{t:t,x:-e.y/n,y:e.x/n}}__normal3(t){const e=this.derivative(t),n=this.derivative(t+.01),i=jf(e.x*e.x+e.y*e.y+e.z*e.z),r=jf(n.x*n.x+n.y*n.y+n.z*n.z);e.x/=i,e.y/=i,e.z/=i,n.x/=r,n.y/=r,n.z/=r;const o={x:n.y*e.z-n.z*e.y,y:n.z*e.x-n.x*e.z,z:n.x*e.y-n.y*e.x},s=jf(o.x*o.x+o.y*o.y+o.z*o.z);o.x/=s,o.y/=s,o.z/=s;const a=[o.x*o.x,o.x*o.y-o.z,o.x*o.z+o.y,o.x*o.y+o.z,o.y*o.y,o.y*o.z-o.x,o.x*o.z-o.y,o.y*o.z+o.x,o.z*o.z];return{t:t,x:a[0]*e.x+a[1]*e.y+a[2]*e.z,y:a[3]*e.x+a[4]*e.y+a[5]*e.z,z:a[6]*e.x+a[7]*e.y+a[8]*e.z}}hull(t){let e=this.points,n=[],i=[],r=0;for(i[r++]=e[0],i[r++]=e[1],i[r++]=e[2],3===this.order&&(i[r++]=e[3]);e.length>1;){n=[];for(let o,s=0,a=e.length-1;s<a;s++)o=Cf.lerp(t,e[s],e[s+1]),i[r++]=o,n.push(o);e=n}return i}split(t,n){if(0===t&&n)return this.split(n).left;if(1===n)return this.split(t).right;const i=this.hull(t),r={left:2===this.order?new e([i[0],i[3],i[5]]):new e([i[0],i[4],i[7],i[9]]),right:2===this.order?new e([i[5],i[4],i[2]]):new e([i[9],i[8],i[6],i[3]]),span:i};return r.left._t1=Cf.map(0,0,1,this._t1,this._t2),r.left._t2=Cf.map(t,0,1,this._t1,this._t2),r.right._t1=Cf.map(t,0,1,this._t1,this._t2),r.right._t2=Cf.map(1,0,1,this._t1,this._t2),n?(n=Cf.map(n,t,1,0,1),r.right.split(n).left):r}extrema(){const t={};let e=[];return this.dims.forEach(function(n){let i=function(t){return t[n]},r=this.dpoints[0].map(i);t[n]=Cf.droots(r),3===this.order&&(r=this.dpoints[1].map(i),t[n]=t[n].concat(Cf.droots(r))),t[n]=t[n].filter((function(t){return t>=0&&t<=1})),e=e.concat(t[n].sort(Cf.numberSort))}.bind(this)),t.values=e.sort(Cf.numberSort).filter((function(t,n){return e.indexOf(t)===n})),t}bbox(){const t=this.extrema(),e={};return this.dims.forEach(function(n){e[n]=Cf.getminmax(this,n,t[n])}.bind(this)),e}overlaps(t){const e=this.bbox(),n=t.bbox();return Cf.bboxoverlap(e,n)}offset(t,n){if(void 0!==n){const e=this.get(t),i=this.normal(t),r={c:e,n:i,x:e.x+i.x*n,y:e.y+i.y*n};return this._3d&&(r.z=e.z+i.z*n),r}if(this._linear){const n=this.normal(0),i=this.points.map((function(e){const i={x:e.x+t*n.x,y:e.y+t*n.y};return e.z&&n.z&&(i.z=e.z+t*n.z),i}));return[new e(i)]}return this.reduce().map((function(e){return e._linear?e.offset(t)[0]:e.scale(t)}))}simple(){if(3===this.order){const t=Cf.angle(this.points[0],this.points[3],this.points[1]),e=Cf.angle(this.points[0],this.points[3],this.points[2]);if(t>0&&e<0||t<0&&e>0)return!1}const t=this.normal(0),e=this.normal(1);let n=t.x*e.x+t.y*e.y;return this._3d&&(n+=t.z*e.z),Df(Wf(n))<Uf/3}reduce(){let t,e,n=0,i=0,r=.01,o=[],s=[],a=this.extrema().values;for(-1===a.indexOf(0)&&(a=[0].concat(a)),-1===a.indexOf(1)&&a.push(1),n=a[0],t=1;t<a.length;t++)i=a[t],e=this.split(n,i),e._t1=n,e._t2=i,o.push(e),n=i;return o.forEach((function(t){for(n=0,i=0;i<=1;)for(i=n+r;i<=1.01;i+=r)if(e=t.split(n,i),!e.simple()){if(i-=r,Df(n-i)<r)return[];e=t.split(n,i),e._t1=Cf.map(n,0,1,t._t1,t._t2),e._t2=Cf.map(i,0,1,t._t1,t._t2),s.push(e),n=i;break}n<1&&(e=t.split(n,1),e._t1=Cf.map(n,0,1,t._t1,t._t2),e._t2=t._t2,s.push(e))})),s}translate(t,n,i){i="number"==typeof i?i:n;const r=this.order;let o=this.points.map(((t,e)=>(1-e/r)*n+e/r*i));return new e(this.points.map(((e,n)=>({x:e.x+t.x*o[n],y:e.y+t.y*o[n]}))))}scale(t){const n=this.order;let i=!1;if("function"==typeof t&&(i=t),i&&2===n)return this.raise().scale(i);const r=this.clockwise,o=this.points;if(this._linear)return this.translate(this.normal(0),i?i(0):t,i?i(1):t);const s=i?i(0):t,a=i?i(1):t,l=[this.offset(0,10),this.offset(1,10)],c=[],u=Cf.lli4(l[0],l[0].c,l[1],l[1].c);if(!u)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach((function(t){const e=c[t*n]=Cf.copy(o[t*n]);e.x+=(t?a:s)*l[t].n.x,e.y+=(t?a:s)*l[t].n.y})),i?([0,1].forEach((function(e){if(2!==n||!e){var s=o[e+1],a={x:s.x-u.x,y:s.y-u.y},l=i?i((e+1)/n):t;i&&!r&&(l=-l);var d=jf(a.x*a.x+a.y*a.y);a.x/=d,a.y/=d,c[e+1]={x:s.x+l*a.x,y:s.y+l*a.y}}})),new e(c)):([0,1].forEach((t=>{if(2===n&&t)return;const e=c[t*n],i=this.derivative(t),r={x:e.x+i.x,y:e.y+i.y};c[t+1]=Cf.lli4(e,r,u,o[t+1])})),new e(c))}outline(t,n,i,r){if(n=void 0===n?t:n,this._linear){const o=this.normal(0),s=this.points[0],a=this.points[this.points.length-1];let l,c,u;void 0===i&&(i=t,r=n),l={x:s.x+o.x*t,y:s.y+o.y*t},u={x:a.x+o.x*i,y:a.y+o.y*i},c={x:(l.x+u.x)/2,y:(l.y+u.y)/2};const d=[l,c,u];l={x:s.x-o.x*n,y:s.y-o.y*n},u={x:a.x-o.x*r,y:a.y-o.y*r},c={x:(l.x+u.x)/2,y:(l.y+u.y)/2};const h=[u,c,l],f=Cf.makeline(h[2],d[0]),p=Cf.makeline(d[2],h[0]),m=[f,new e(d),p,new e(h)];return new Pf(m)}const o=this.reduce(),s=o.length,a=[];let l,c=[],u=0,d=this.length();const h=void 0!==i&&void 0!==r;function f(t,e,n,i,r){return function(o){const s=i/n,a=(i+r)/n,l=e-t;return Cf.map(o,0,1,t+s*l,t+a*l)}}o.forEach((function(e){const o=e.length();h?(a.push(e.scale(f(t,i,d,u,o))),c.push(e.scale(f(-n,-r,d,u,o)))):(a.push(e.scale(t)),c.push(e.scale(-n))),u+=o})),c=c.map((function(t){return l=t.points,l[3]?t.points=[l[3],l[2],l[1],l[0]]:t.points=[l[2],l[1],l[0]],t})).reverse();const p=a[0].points[0],m=a[s-1].points[a[s-1].points.length-1],v=c[s-1].points[c[s-1].points.length-1],g=c[0].points[0],y=Cf.makeline(v,p),b=Cf.makeline(m,g),k=[y].concat(a).concat([b]).concat(c);return new Pf(k)}outlineshapes(t,e,n){e=e||t;const i=this.outline(t,e).curves,r=[];for(let t=1,e=i.length;t<e/2;t++){const o=Cf.makeshape(i[t],i[e-t],n);o.startcap.virtual=t>1,o.endcap.virtual=t<e/2-1,r.push(o)}return r}intersects(t,n){return t?t.p1&&t.p2?this.lineIntersects(t):(t instanceof e&&(t=t.reduce()),this.curveintersects(this.reduce(),t,n)):this.selfintersects(n)}lineIntersects(t){const e=Rf(t.p1.x,t.p2.x),n=Rf(t.p1.y,t.p2.y),i=Lf(t.p1.x,t.p2.x),r=Lf(t.p1.y,t.p2.y);return Cf.roots(this.points,t).filter((t=>{var o=this.get(t);return Cf.between(o.x,e,i)&&Cf.between(o.y,n,r)}))}selfintersects(t){const e=this.reduce(),n=e.length-2,i=[];for(let r,o,s,a=0;a<n;a++)o=e.slice(a,a+1),s=e.slice(a+2),r=this.curveintersects(o,s,t),i.push(...r);return i}curveintersects(t,e,n){const i=[];t.forEach((function(t){e.forEach((function(e){t.overlaps(e)&&i.push({left:t,right:e})}))}));let r=[];return i.forEach((function(t){const e=Cf.pairiteration(t.left,t.right,n);e.length>0&&(r=r.concat(e))})),r}arcs(t){return t=t||.5,this._iterate(t,[])}_error(t,e,n,i){const r=(i-n)/4,o=this.get(n+r),s=this.get(i-r),a=Cf.dist(t,e),l=Cf.dist(t,o),c=Cf.dist(t,s);return Df(l-a)+Df(c-a)}_iterate(t,e){let n,i=0,r=1;do{n=0,r=1;let o,s,a,l,c,u=this.get(i),d=!1,h=!1,f=r,p=1;do{if(h=d,l=a,f=(i+r)/2,o=this.get(f),s=this.get(r),a=Cf.getccenter(u,o,s),a.interval={start:i,end:r},d=this._error(a,u,i,r)<=t,c=h&&!d,c||(p=r),d){if(r>=1){if(a.interval.end=p=1,l=a,r>1){let t={x:a.x+a.r*Bf(a.e),y:a.y+a.r*zf(a.e)};a.e+=Cf.angle({x:a.x,y:a.y},t,this.get(1))}break}r+=(r-i)/2}else r=f}while(!c&&n++<100);if(n>=100)break;l=l||a,e.push(l),i=p}while(r<1);return e}};var qf={pointsToCurve:function(t,e){let n=1/e;if(0===t.length){let t=[];for(let i=0;i<e;i++){let e=i*n;t.push({x:e,y:.5})}return t}if(1===t.length){let i=t[0].y,r=[{x:0,y:i}];for(let t=0;t<e;t++){let e=t*n+n;r.push({x:e,y:i})}return r}let i=[],r=t[0],o=t[t.length-1],s=new $f({x:o.x-1,y:o.y},{x:o.x-1+(r.x-(o.x-1))/2,y:o.y},{x:r.x-(r.x-(o.x-1))/2,y:r.y},r),a=new $f(o,{x:o.x+(r.x+1-o.x)/2,y:o.y},{x:r.x+1-(r.x+1-o.x)/2,y:r.y},{x:r.x+1,y:r.y});for(let e=0;e<t.length-1;e++){let n=t[e],r=t[e+1],o={x:n.x+(r.x-n.x)/2,y:n.y},s={x:r.x-(r.x-n.x)/2,y:r.y},a=new $f(n,o,s,r);i.push(a)}i.unshift(s),i.push(a);let l=[s.get(s.intersects({p1:{x:0,y:0},p2:{x:0,y:1}})[0])];for(let t=0;t<e;t++){let e,r=t*n+n;i.every((t=>{let n=t.intersects({p1:{x:r,y:0},p2:{x:r,y:1}});return!(n.length>0&&(e=t.get(n[0]),l.push(e),1))}))}return l}};class Vf{constructor(t,e){this.xs=t,this.ys=e,this.ks=this.getNaturalKs(new Float64Array(this.xs.length))}getNaturalKs(t){const e=this.xs.length-1,n=function(t,e){const n=[];for(let i=0;i<t;i++)n.push(new Float64Array(e));return n}(e+1,e+2);for(let t=1;t<e;t++)n[t][t-1]=1/(this.xs[t]-this.xs[t-1]),n[t][t]=2*(1/(this.xs[t]-this.xs[t-1])+1/(this.xs[t+1]-this.xs[t])),n[t][t+1]=1/(this.xs[t+1]-this.xs[t]),n[t][e+1]=3*((this.ys[t]-this.ys[t-1])/((this.xs[t]-this.xs[t-1])*(this.xs[t]-this.xs[t-1]))+(this.ys[t+1]-this.ys[t])/((this.xs[t+1]-this.xs[t])*(this.xs[t+1]-this.xs[t])));return n[0][0]=2/(this.xs[1]-this.xs[0]),n[0][1]=1/(this.xs[1]-this.xs[0]),n[0][e+1]=3*(this.ys[1]-this.ys[0])/((this.xs[1]-this.xs[0])*(this.xs[1]-this.xs[0])),n[e][e-1]=1/(this.xs[e]-this.xs[e-1]),n[e][e]=2/(this.xs[e]-this.xs[e-1]),n[e][e+1]=3*(this.ys[e]-this.ys[e-1])/((this.xs[e]-this.xs[e-1])*(this.xs[e]-this.xs[e-1])),function(t,e){const n=t.length;let i=0,r=0;for(;i<n&&r<=n;){let e=0,o=-1/0;for(let s=i;s<n;s++){const n=Math.abs(t[s][r]);n>o&&(e=s,o=n)}if(0===t[e][r])r++;else{Gf(t,i,e);for(let e=i+1;e<n;e++){const o=t[e][r]/t[i][r];t[e][r]=0;for(let s=r+1;s<=n;s++)t[e][s]-=t[i][s]*o}i++,r++}}for(let i=n-1;i>=0;i--){var o=0;t[i][i]&&(o=t[i][n]/t[i][i]),e[i]=o;for(let e=i-1;e>=0;e--)t[e][n]-=t[e][i]*o,t[e][i]=0}return e}(n,t)}getIndexBefore(t){let e=0,n=this.xs.length,i=0;for(;e<n;)i=Math.floor((e+n)/2),this.xs[i]<t&&i!==e?e=i:n=this.xs[i]>=t&&i!==n?i:e;return e===this.xs.length-1?this.xs.length-1:e+1}at(t){let e=this.getIndexBefore(t);const n=(t-this.xs[e-1])/(this.xs[e]-this.xs[e-1]),i=this.ks[e-1]*(this.xs[e]-this.xs[e-1])-(this.ys[e]-this.ys[e-1]),r=-this.ks[e]*(this.xs[e]-this.xs[e-1])+(this.ys[e]-this.ys[e-1]);return(1-n)*this.ys[e-1]+n*this.ys[e]+n*(1-n)*(i*(1-n)+r*n)}}function Gf(t,e,n){let i=t[e];t[e]=t[n],t[n]=i}function Hf(t,e,n){const i=n[0],r=n[n.length-1];if(t<i.x)return i.y;if(t>r.x)return r.y;const o=e.at(t);return Math.max(0,Math.min(o,1))}var Kf={pointsToCurve:function(t,e){if(!Array.isArray(t)||!t.every((t=>"object"==typeof t&&"number"==typeof t.x&&"number"==typeof t.y&&t.x>=0&&t.x<=1&&t.y>=0&&t.y<=1)))throw new Error("[pointsToCurve] Invalid points. Expected array of objects with x and y in [0, 1] range.");if(!("number"==typeof e&&e>=1))throw new Error(`[pointsToCurve] Invalid resolution: ${e}. Expected integer >= 1.`);const n=t.map((t=>t.x)),i=t.map((t=>t.y)),r=new Vf(n,i);let o=[];for(let n=0;n<e;n++)o.push(Hf(n/(e-1),r,t));return o}};function Xf(t,e=256,n={}){return"bezier"===n.type?qf.pointsToCurve(t,e,n):Kf.pointsToCurve(t,e)}const Yf=[];for(let t=0;t<256;t++)Yf[t]=t;class Qf extends tf{constructor(t){const e={vertex:gf,fragment:yf},n={uniforms:tf.getUniformInfo(Qf)};super(Qf.getFilterType(),e,n,t)}static getFilterType(){return"curves"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=[];var n;e=[...t.master||t.points||t.masterPoints?t.master||(n=t.points||t.masterPoints,Xf(n,256).map((t=>255*t))):Yf],this.uniforms[Hh.STATIC_OPTIONS].set(e)}}function Jf(t,e,n){if("number"!=typeof t||t<0||t>255)throw new Error(`[levels] Invalid black point: ${t}. Expected integer between 0 and 255`);if("number"!=typeof e||e<0||e>255)throw new Error(`[levels] Invalid white point: ${e}. Expected integer between 0 and 255`);if("number"!=typeof n||n<.01||n>9.99)throw new Error(`[levels] Invalid gamma: ${n}. Expected float between 0.01 and 9.99`);if(t>e)throw new Error(`[levels] Invalid black and white points: ${t}, ${e}. Expected black <= white`);let i=[];for(let r=0;r<256;r++){let o;o=r<=t?0:r>=e?255:255*Math.pow((r-t)/(e-t),1/n),i[r]=o}return i}class Zf extends tf{constructor(t){const e={vertex:gf,fragment:yf},n={uniforms:tf.getUniformInfo(Zf)};super(Zf.getFilterType(),e,n,t)}static getFilterType(){return"levels"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=[...Jf(t.black,t.white,t.gamma)];this.uniforms[Hh.STATIC_OPTIONS].set(e)}}const tp=360,ep=[];for(let t=0;t<tp;t++)ep[t]=t;class np extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(np)};super(np.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n// a 360 length array with values for the hue curve\n// this represents a lookup table from a hue value to another hue value\nuniform float staticOptions[360];\n\n// implementation of round (doesn't exist in webgl)\nint round(float val){\n return int(floor(val + 0.5));\n}\n\n// glsl mod doesn't work with negative numbers so\n// this is a safer version that lets us play with negatives > -1.0\nfloat safeMod(float val){\n return mod(val + 1.0, 1.0);\n}\n\n// no dynamic array indexes in webgl\n// see https://stackoverflow.com/questions/30585265/what-can-i-use-as-an-array-index-in-glsl-in-webgl\nfloat getCurveValue(float pixelValue){\n float v;\n for (int k = 0; k < 360; k++) {\n if (k == round(pixelValue * 359.0)){\n v = float(staticOptions[k]) / 359.0;\n }\n }\n return v;\n}\n\n// function source https://www.shadertoy.com/view/4dKcWK\nconst float EPSILON = 1e-10;\n\nvec3 HUEtoRGB(in float hue) {\n // Hue [0..1] to RGB [0..1]\n // See http://www.chilliant.com/rgb2hsv.html\n vec3 rgb = abs(hue * 6. - vec3(3, 2, 4)) * vec3(1, -1, -1) + vec3(-1, 2, 2);\n return clamp(rgb, 0., 1.);\n}\n\nvec3 RGBtoHCV(in vec3 rgb) {\n // RGB [0..1] to Hue-Chroma-Value [0..1]\n // Based on work by Sam Hocevar and Emil Persson\n vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1., 2. / 3.) : vec4(rgb.gb, 0., -1. / 3.);\n vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx);\n float c = q.x - min(q.w, q.y);\n float h = abs((q.w - q.y) / (6. * c + EPSILON) + q.z);\n return vec3(h, c, q.x);\n}\n\nvec3 HSVtoRGB(in vec3 hsv) {\n // Hue-Saturation-Value [0..1] to RGB [0..1]\n vec3 rgb = HUEtoRGB(hsv.x);\n return ((rgb - 1.) * hsv.y + 1.) * hsv.z;\n}\n\nvec3 HSLtoRGB(in vec3 hsl) {\n // Hue-Saturation-Lightness [0..1] to RGB [0..1]\n vec3 rgb = HUEtoRGB(hsl.x);\n float c = (1. - abs(2. * hsl.z - 1.)) * hsl.y;\n return (rgb - 0.5) * c + hsl.z;\n}\n\nvec3 RGBtoHSV(in vec3 rgb) {\n // RGB [0..1] to Hue-Saturation-Value [0..1]\n vec3 hcv = RGBtoHCV(rgb);\n float s = hcv.y / (hcv.z + EPSILON);\n return vec3(hcv.x, s, hcv.z);\n}\n\nvec3 RGBtoHSL(in vec3 rgb) {\n // RGB [0..1] to Hue-Saturation-Lightness [0..1]\n vec3 hcv = RGBtoHCV(rgb);\n float z = hcv.z - hcv.y * 0.5;\n float s = hcv.y / (1. - abs(z * 2. - 1.) + EPSILON);\n return vec3(hcv.x, s, z);\n}\n\nvoid main() {\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec3 inHSL = RGBtoHSL(textureColor.rgb);\n // in the UI hue 0 is cyan and 180 is red\n float shiftedHue = getCurveValue(mod(inHSL.x + 0.5, 1.0));\n vec3 inRGB = HSLtoRGB(vec3(shiftedHue, inHSL.y, inHSL.z));\n\n vec4 finalColor = vec4(inRGB, textureColor.a);\n\n // During the rgb-to-hsl-to-rgb conversion total whites gets clipped on OSX for some reason\n // make sure to retain absolute white (since it has no chroma component)\n if (textureColor.r == 1.0 && textureColor.g == 1.0 && textureColor.b == 1.0){\n finalColor.rgb = vec3(1.0, 1.0, 1.0);\n }\n\n gl_FragColor = finalColor;\n}\n"},e,t)}static getFilterType(){return"hue"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.points&&function(t){return Xf(t,tp,{type:"bezier"}).map((t=>{return e=t,((Math.round(e.x*tp)+180)%tp+(1-e.y-.5)*tp+tp)%tp;var e}))}(t.points)||ep;this.uniforms[Hh.STATIC_OPTIONS].set(e)}}class ip extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(ip)};super(ip.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[2];\n\n//CIE L*a*b* (CIELAB, L* for lightness, a* from green to red, b* from blue to yellow)\n//Source: https://gist.github.com/mattatz/44f081cac87e2f7c8980 (HLSL)\nvec3 rgb2xyz(vec3 c){\n vec3 tmp=vec3(\n (c.r>.04045)?pow((c.r+.055)/1.055,2.4):c.r/12.92,\n (c.g>.04045)?pow((c.g+.055)/1.055,2.4):c.g/12.92,\n (c.b>.04045)?pow((c.b+.055)/1.055,2.4):c.b/12.92\n );\n mat3 mat=mat3(\n .4124,.3576,.1805,\n .2126,.7152,.0722,\n .0193,.1192,.9505\n );\n return 100.*(tmp*mat);\n}\nvec3 xyz2lab(vec3 c){\n vec3 n=c/vec3(95.047,100.,108.883),\n v=vec3(\n (n.x>.008856)?pow(n.x,1./3.):(7.787*n.x)+(16./116.),\n (n.y>.008856)?pow(n.y,1./3.):(7.787*n.y)+(16./116.),\n (n.z>.008856)?pow(n.z,1./3.):(7.787*n.z)+(16./116.)\n );\n return vec3((116.*v.y)-16.,500.*(v.x-v.y),200.*(v.y-v.z));\n}\nvec3 rgb2lab(vec3 c){\n vec3 lab=xyz2lab(rgb2xyz(c));\n return vec3(lab.x/100.,.5+.5*(lab.y/127.),.5+.5*(lab.z/127.));\n}\nvec3 lab2xyz(vec3 c){\n float fy=(c.x+16.)/116.,\n fx=c.y/500.+fy,\n fz=fy-c.z/200.;\n return vec3(\n 95.047*((fx>.206897)?fx*fx*fx:(fx-16./116.)/7.787),\n 100. *((fy>.206897)?fy*fy*fy:(fy-16./116.)/7.787),\n 108.883*((fz>.206897)?fz*fz*fz:(fz-16./116.)/7.787)\n );\n}\nvec3 xyz2rgb(vec3 c){\n mat3 mat=mat3(\n 3.2406,-1.5372,-.4986,\n -.9689, 1.8758, .0415,\n .0557, -.2040,1.0570\n );\n vec3 v=(c/100.0)*mat,\n r=vec3(\n (v.r>.0031308)?((1.055*pow(v.r,(1./2.4)))-.055):12.92*v.r,\n (v.g>.0031308)?((1.055*pow(v.g,(1./2.4)))-.055):12.92*v.g,\n (v.b>.0031308)?((1.055*pow(v.b,(1./2.4)))-.055):12.92*v.b\n );\n return r;\n}\nvec3 lab2rgb(vec3 c){return xyz2rgb(lab2xyz(vec3(100.*c.x,2.*127.*(c.y-.5),2.*127.*(c.z-.5))));}\n\n\nfloat handleMix(float x){\n return pow(x * 2.0 - 1.0, 2.0);\n}\n\nvoid main() {\n vec3 inColor = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n// inColor = vec3(148.0 / 255.0, 99.0 / 255.0, 95.0 / 255.0); // debug\n\n vec3 inLab = rgb2lab(inColor);\n vec3 inRGB ;\n\n// vec2 tempTint = vec2(staticOptions[1], -staticOptions[0]);\n\n// inLab.yz += (tempTint.xy); // * 0.3; // damping of effect\n\n // lab range is 0 to 1, input is -128 to 127\n // lab chromacity zero is 0.5, 0.5 so convert between the ranges\n // y is a, z is b\n inLab.y -= (-staticOptions[1] + 128.0) / 255.0 - 0.5;\n inLab.z -= (staticOptions[0] + 128.0) / 255.0 - 0.5;\n\n inRGB = lab2rgb(inLab);\n\n\n // vec3 mixed = mix(inRGB, inColor, handleMix(inLab.x)); // mid tones\n // vec3 mixed = mix(inRGB, inColor, inLab.x); // only high tones\n vec3 mixed = mix(inRGB, inColor, 0.0); // no mix\n\n gl_FragColor = vec4(mixed,1.0);\n}\n"},e,t)}static getFilterType(){return"whiteBalance"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.temperature?t.temperature:0,n=t.tint?t.tint:0;this.uniforms[Hh.STATIC_OPTIONS].set([e,n])}}class rp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(rp)};super(rp.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[4];\n\n// algorithm from here\n// https://github.com/CeeJayDK/SweetFX/blob/master/Shaders/Vibrance.fx\n\nvoid main() {\n float percentAmount = staticOptions[0];\n float redBalance = staticOptions[1];\n float greenBalance = staticOptions[2];\n float blueBalance = staticOptions[3];\n\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n vec3 coefLuma = vec3(0.212656, 0.715158, 0.072186);\n\n float luma = dot(coefLuma, color);\n\n float max_color = max(color.r, max(color.g, color.b)); // Find the strongest color\n float min_color = min(color.r, min(color.g, color.b)); // Find the weakest color\n\n float color_saturation = max_color - min_color; // The difference between the two is the saturation\n\n // Extrapolate between luma and original by 1 + (1-saturation) - current\n vec3 coeffVibrance = vec3(redBalance, greenBalance, blueBalance) * percentAmount;\n\n color.r = mix(luma, color.r, 1.0 + (coeffVibrance.r * (1.0 - (sign(coeffVibrance.r) * color_saturation))));\n color.g = mix(luma, color.g, 1.0 + (coeffVibrance.g * (1.0 - (sign(coeffVibrance.g) * color_saturation))));\n color.b = mix(luma, color.b, 1.0 + (coeffVibrance.b * (1.0 - (sign(coeffVibrance.b) * color_saturation))));\n\n\n gl_FragColor = vec4(color, 1.0);\n\n}\n"},e,t)}static getFilterType(){return"vibrance"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.amount?t.amount/100*2:0,n=null===t.redBalance?1:t.redBalance,i=null===t.greenBalance?1:t.greenBalance,r=null===t.blueBalance?1:t.blueBalance;this.uniforms[Hh.STATIC_OPTIONS].set([e,n,i,r])}}class op extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(op)};super(op.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[1];\n\n// algorithm from here\n// https://github.com/minus34/cesium1/blob/master/Cesium/Shaders/Builtin/Functions/saturation.glsl\n\n/**\n * Adjusts the saturation of a color.\n *\n * @name czm_saturation\n * @glslFunction\n *\n * @param {vec3} rgb The color.\n * @param {float} adjustment The amount to adjust the saturation of the color.\n *\n * @returns {float} The color with the saturation adjusted.\n *\n * @example\n * vec3 greyScale = czm_saturation(color, 0.0);\n * vec3 doubleSaturation = czm_saturation(color, 2.0);\n */\nvec3 czm_saturation(vec3 rgb, float adjustment)\n{\n // Algorithm from Chapter 16 of OpenGL Shading Language\n const vec3 W = vec3(0.2125, 0.7154, 0.0721);\n vec3 intensity = vec3(dot(rgb, W));\n return mix(intensity, rgb, adjustment);\n}\n\n\nvoid main() {\n float amount = staticOptions[0];\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n gl_FragColor = vec4(czm_saturation(color, amount), 1.0);\n}\n"},e,t)}static getFilterType(){return"saturation"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=null===t.amount?1:t.amount;this.uniforms[Hh.STATIC_OPTIONS].set([e])}}class sp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(sp)};super(sp.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[12];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nfloat roundedBoxSDF(vec2 CenterPosition, vec2 Size, float Radius) {\n return length(max(abs(CenterPosition)-Size+Radius,0.0))-Radius;\n}\n\nvoid main() {\n vec2 srcAR = vec2(runtimeOptions[0]/runtimeOptions[1], 1.0);\n // custom aspect ratio (other than the default 1920/1080)\n // useful for example when doing crop on crop\n if (staticOptions[10] > 0.0) { //\n srcAR.x = staticOptions[10];\n }\n vec2 srcCenter = vec2(staticOptions[0], staticOptions[1]);\n vec2 srcDims = vec2(staticOptions[2], staticOptions[3]);\n vec2 srcTL = vec2(srcCenter.x - srcDims[0] / 2.0, srcCenter.y - srcDims[1] / 2.0); // top left point\n\n vec2 srcDims_AR = srcDims * srcAR;\n vec2 srcTL_AR = srcTL * srcAR;\n\n vec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\n vec2 vpAR = vec2(vpDims[0]/vpDims[1], 1.0);\n\n vec2 tgtCenter = vec2(staticOptions[4], staticOptions[5]);\n vec2 tgtDims = vec2(staticOptions[6], staticOptions[7]);\n vec2 tgtTL = vec2(tgtCenter.x - tgtDims[0] / 2.0, tgtCenter.y - tgtDims[1] / 2.0);\n\n vec2 tgtDims_AR = tgtDims * vpAR;\n vec2 tgtTL_AR = tgtTL * vpAR;\n\n vec2 pos_AR = current_texture_coordinate_2d * vpAR;\n\n float ratioW = tgtDims_AR[0] / srcDims_AR[0];\n float ratioH = tgtDims_AR[1] / srcDims_AR[1];\n\n float ratio;\n\n // the type of crop fit. 0 - contain, 1 - fill, 3 - stretch\n float fitType = staticOptions[8];\n\n if (fitType == 0.0){\n ratio = ratioW > ratioH ? ratioW : ratioH;\n vec2 tgtDims_OLD_AR = tgtDims_AR;\n tgtDims_AR = srcDims_AR * ratio;\n tgtTL_AR = tgtTL_AR - (tgtDims_AR - tgtDims_OLD_AR) / 2.0;\n } else if (fitType == 1.0){\n ratio = ratioW < ratioH ? ratioW : ratioH;\n vec2 tgtDims_OLD_AR = tgtDims_AR;\n tgtDims_AR = srcDims_AR * ratio;\n tgtTL_AR = tgtTL_AR + (tgtDims_OLD_AR - tgtDims_AR) / 2.0;\n }\n\n vec2 final_pos_AR = (pos_AR - tgtTL_AR) / tgtDims_AR * srcDims_AR + srcTL_AR;\n\n // transform coords back from AR into 0 to 1 range\n vec2 pos = final_pos_AR / srcAR;\n\n // How soft the edges should be . Higher values could be used to simulate a drop shadow.\n float edgeSoftness = staticOptions[11];\n\n // The radius of the corners in pixels\n float radius = staticOptions[9];\n\n float tightDistance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) , tgtDims_AR / vpAR / 2.0, 0.0);\n// float distance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) * vpAR, tgtDims * vpAR / 2.0, 0.01);\n float distance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) * vpDims, (tgtDims * vpDims) / 2.0, radius);\n\n // Smooth the result (free antialiasing).\n float smoothedAlpha = 1.0 - smoothstep(0.0, edgeSoftness * 2.0, distance);\n\n // Return the resultant shape.\n vec4 textureColor = texture2D(first_texture, pos);\n vec4 quadColor = vec4(textureColor.xyz, smoothedAlpha);\n\n // Apply a drop shadow effect.\n// float shadowSoftness = 0.0;\n// vec2 shadowOffset = vec2(0.0, 0.0);\n// float shadowDistance = roundedBoxSDF(pos + shadowOffset, tgtDims_AR / 2.0, radius);\n// float shadowAlpha = 1.0 - smoothstep(-shadowSoftness, shadowSoftness, shadowDistance);\n// vec4 shadowColor = vec4(0.4, 0.4, 0.4, 1.0);\n // gl_FragColor = mix(quadColor, shadowColor, shadowAlpha - smoothedAlpha);\n\n\n // pillarboxing\n if (tightDistance > 0.0 && distance <= 0.0){\n gl_FragColor = vec4(0, 0, 0, 1.0);\n } else {\n gl_FragColor = quadColor;\n }\n\n // debug\n // gl_FragColor = texture2D(first_texture, pos);\n\n}"},e,t)}static getFilterType(){return"crop"}static getInputsCount(){return 1}static getInitialOptions(){return{source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:.5,y:.5},width:1,height:1},fitType:"fill",cornerRadius:10,edgeSoftness:0}}getOptionsDisplay(){return[]}static getUniformList(){return[Hh.FIRST_TEXTURE,qh,Vh]}handleStaticUniforms(t){let e={...sp.getInitialOptions(),...t};const n=Number.parseFloat(e.source.center.x).toFixed(5),i=Number.parseFloat(e.source.center.y).toFixed(5),r=Number.parseFloat(e.source.width).toFixed(5),o=Number.parseFloat(e.source.height).toFixed(5),s=Number.parseFloat(e.target.center.x).toFixed(5),a=Number.parseFloat(e.target.center.y).toFixed(5),l=Number.parseFloat(e.target.width).toFixed(5),c=Number.parseFloat(e.target.height).toFixed(5),u=Number.parseFloat(e.edgeSoftness).toFixed(5),d=e.source.aspectRatio?Number.parseFloat(e.source.aspectRatio).toFixed(5):0;let h;h="fill"===e.fitType?0:"contain"===e.fitType?1:2;const f=Number.parseFloat(e.cornerRadius).toFixed(5);this.uniforms[Hh.STATIC_OPTIONS].set([n,i,r,o,s,a,l,c,h,f,d,u])}}class ap extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(ap)};super(ap.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[4];\nuniform float runtimeOptions[2];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nvoid main() {\n // this is the the texture from the prev shader\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 color = vec4(staticOptions[0], staticOptions[1], staticOptions[2], 1.0);\n vec4 blended = mix(texture, color, staticOptions[3]);\n gl_FragColor = blended;\n}"},e,t)}static getFilterType(){return"solid"}static getInputsCount(){return 1}static getInitialOptions(){return{color:{r:.33,g:.66,b:.99,a:1}}}getOptionsDisplay(){return[{properties:["color","r"],type:"slider",minValue:0,maxValue:1,step:.001},{properties:["color","g"],type:"slider",minValue:0,maxValue:1,step:.001},{properties:["color","b"],type:"slider",minValue:0,maxValue:1,step:.001}]}handleStaticUniforms(t){var e;const n=Number.parseFloat(t.color.r).toFixed(5),i=Number.parseFloat(t.color.g).toFixed(5),r=Number.parseFloat(t.color.b).toFixed(5),o=(null!==(e=Number.parseFloat(t.color.a))&&void 0!==e?e:1).toFixed(5);this.uniforms[Hh.STATIC_OPTIONS].set([n,i,r,o])}}class lp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(lp)};super(lp.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float runtimeOptions[1];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nvoid main() {\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(textureColor.rgb, 1.0);\n}\n"},e,t)}static getFilterType(){return"solidImage"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}}class cp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(cp)};super(cp.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_position = vec4(position_3d.xyz, 1);\n gl_Position = normalize_position;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n//CIE L*a*b* (CIELAB, L* for lightness, a* from green to red, b* from blue to yellow)\n//Source: https://gist.github.com/mattatz/44f081cac87e2f7c8980 (HLSL)\nvec3 rgb2xyz(vec3 c){\n vec3 tmp=vec3(\n (c.r>.04045)?pow((c.r+.055)/1.055,2.4):c.r/12.92,\n (c.g>.04045)?pow((c.g+.055)/1.055,2.4):c.g/12.92,\n (c.b>.04045)?pow((c.b+.055)/1.055,2.4):c.b/12.92\n );\n mat3 mat=mat3(\n .4124,.3576,.1805,\n .2126,.7152,.0722,\n .0193,.1192,.9505\n );\n return 100.*(tmp*mat);\n}\nvec3 xyz2lab(vec3 c){\n vec3 n=c/vec3(95.047,100.,108.883),\n v=vec3(\n (n.x>.008856)?pow(n.x,1./3.):(7.787*n.x)+(16./116.),\n (n.y>.008856)?pow(n.y,1./3.):(7.787*n.y)+(16./116.),\n (n.z>.008856)?pow(n.z,1./3.):(7.787*n.z)+(16./116.)\n );\n return vec3((116.*v.y)-16.,500.*(v.x-v.y),200.*(v.y-v.z));\n}\nvec3 rgb2lab(vec3 c){\n vec3 lab=xyz2lab(rgb2xyz(c));\n return vec3(lab.x/100.,.5+.5*(lab.y/127.),.5+.5*(lab.z/127.));\n}\n\nvoid main() {\n vec3 inColor = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n vec3 inLab = rgb2lab(inColor);\n gl_FragColor = vec4(inLab, 1.0);\n}\n"},e,t)}static getFilterType(){return"lab"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.temperature?t.temperature:0,n=t.tint?t.tint:0;this.uniforms[Hh.STATIC_OPTIONS].set([e,n])}}class up extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(up)};super(up.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n} ",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[1];\n\nvoid main() {\n float exposureStops = staticOptions[0];\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n \n // Convert exposure stops to multiplier: pow(2.0, stops)\n float multiplier = pow(2.0, exposureStops);\n \n // Apply exposure adjustment\n vec3 exposedColor = color * multiplier;\n \n gl_FragColor = vec4(exposedColor, 1.0);\n} "},e,t)}static getFilterType(){return"exposure"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=null===t.exposure?0:t.exposure;this.uniforms[Hh.STATIC_OPTIONS].set([e])}}var dp,hp,fp,pp,mp,vp,gp,yp;function bp(){if(pp)return fp;pp=1;const t=hp?dp:(hp=1,dp={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),e={};for(const n of Object.keys(t))e[t[n]]=n;const n={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};fp=n;for(const t of Object.keys(n)){if(!("channels"in n[t]))throw new Error("missing channels property: "+t);if(!("labels"in n[t]))throw new Error("missing channel labels property: "+t);if(n[t].labels.length!==n[t].channels)throw new Error("channel and label counts mismatch: "+t);const{channels:e,labels:i}=n[t];delete n[t].channels,delete n[t].labels,Object.defineProperty(n[t],"channels",{value:e}),Object.defineProperty(n[t],"labels",{value:i})}function i(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}return n.rgb.hsl=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.min(e,n,i),o=Math.max(e,n,i),s=o-r;let a,l;o===r?a=0:e===o?a=(n-i)/s:n===o?a=2+(i-e)/s:i===o&&(a=4+(e-n)/s),a=Math.min(60*a,360),a<0&&(a+=360);const c=(r+o)/2;return l=o===r?0:c<=.5?s/(o+r):s/(2-o-r),[a,100*l,100*c]},n.rgb.hsv=function(t){let e,n,i,r,o;const s=t[0]/255,a=t[1]/255,l=t[2]/255,c=Math.max(s,a,l),u=c-Math.min(s,a,l),d=function(t){return(c-t)/6/u+.5};return 0===u?(r=0,o=0):(o=u/c,e=d(s),n=d(a),i=d(l),s===c?r=i-n:a===c?r=1/3+e-i:l===c&&(r=2/3+n-e),r<0?r+=1:r>1&&(r-=1)),[360*r,100*o,100*c]},n.rgb.hwb=function(t){const e=t[0],i=t[1];let r=t[2];const o=n.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(i,r));return r=1-1/255*Math.max(e,Math.max(i,r)),[o,100*s,100*r]},n.rgb.cmyk=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.min(1-e,1-n,1-i);return[100*((1-e-r)/(1-r)||0),100*((1-n-r)/(1-r)||0),100*((1-i-r)/(1-r)||0),100*r]},n.rgb.keyword=function(n){const r=e[n];if(r)return r;let o,s=1/0;for(const e of Object.keys(t)){const r=i(n,t[e]);r<s&&(s=r,o=e)}return o},n.keyword.rgb=function(e){return t[e]},n.rgb.xyz=function(t){let e=t[0]/255,n=t[1]/255,i=t[2]/255;return e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92,[100*(.4124*e+.3576*n+.1805*i),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]},n.rgb.lab=function(t){const e=n.rgb.xyz(t);let i=e[0],r=e[1],o=e[2];return i/=95.047,r/=100,o/=108.883,i=i>.008856?i**(1/3):7.787*i+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,[116*r-16,500*(i-r),200*(r-o)]},n.hsl.rgb=function(t){const e=t[0]/360,n=t[1]/100,i=t[2]/100;let r,o,s;if(0===n)return s=255*i,[s,s,s];r=i<.5?i*(1+n):i+n-i*n;const a=2*i-r,l=[0,0,0];for(let t=0;t<3;t++)o=e+1/3*-(t-1),o<0&&o++,o>1&&o--,s=6*o<1?a+6*(r-a)*o:2*o<1?r:3*o<2?a+(r-a)*(2/3-o)*6:a,l[t]=255*s;return l},n.hsl.hsv=function(t){const e=t[0];let n=t[1]/100,i=t[2]/100,r=n;const o=Math.max(i,.01);return i*=2,n*=i<=1?i:2-i,r*=o<=1?o:2-o,[e,100*(0===i?2*r/(o+r):2*n/(i+n)),(i+n)/2*100]},n.hsv.rgb=function(t){const e=t[0]/60,n=t[1]/100;let i=t[2]/100;const r=Math.floor(e)%6,o=e-Math.floor(e),s=255*i*(1-n),a=255*i*(1-n*o),l=255*i*(1-n*(1-o));switch(i*=255,r){case 0:return[i,l,s];case 1:return[a,i,s];case 2:return[s,i,l];case 3:return[s,a,i];case 4:return[l,s,i];case 5:return[i,s,a]}},n.hsv.hsl=function(t){const e=t[0],n=t[1]/100,i=t[2]/100,r=Math.max(i,.01);let o,s;s=(2-n)*i;const a=(2-n)*r;return o=n*r,o/=a<=1?a:2-a,o=o||0,s/=2,[e,100*o,100*s]},n.hwb.rgb=function(t){const e=t[0]/360;let n=t[1]/100,i=t[2]/100;const r=n+i;let o;r>1&&(n/=r,i/=r);const s=Math.floor(6*e),a=1-i;o=6*e-s,1&s&&(o=1-o);const l=n+o*(a-n);let c,u,d;switch(s){default:case 6:case 0:c=a,u=l,d=n;break;case 1:c=l,u=a,d=n;break;case 2:c=n,u=a,d=l;break;case 3:c=n,u=l,d=a;break;case 4:c=l,u=n,d=a;break;case 5:c=a,u=n,d=l}return[255*c,255*u,255*d]},n.cmyk.rgb=function(t){const e=t[0]/100,n=t[1]/100,i=t[2]/100,r=t[3]/100;return[255*(1-Math.min(1,e*(1-r)+r)),255*(1-Math.min(1,n*(1-r)+r)),255*(1-Math.min(1,i*(1-r)+r))]},n.xyz.rgb=function(t){const e=t[0]/100,n=t[1]/100,i=t[2]/100;let r,o,s;return r=3.2406*e+-1.5372*n+-.4986*i,o=-.9689*e+1.8758*n+.0415*i,s=.0557*e+-.204*n+1.057*i,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,r=Math.min(Math.max(0,r),1),o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),[255*r,255*o,255*s]},n.xyz.lab=function(t){let e=t[0],n=t[1],i=t[2];return e/=95.047,n/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,[116*n-16,500*(e-n),200*(n-i)]},n.lab.xyz=function(t){let e,n,i;n=(t[0]+16)/116,e=t[1]/500+n,i=n-t[2]/200;const r=n**3,o=e**3,s=i**3;return n=r>.008856?r:(n-16/116)/7.787,e=o>.008856?o:(e-16/116)/7.787,i=s>.008856?s:(i-16/116)/7.787,e*=95.047,n*=100,i*=108.883,[e,n,i]},n.lab.lch=function(t){const e=t[0],n=t[1],i=t[2];let r;return r=360*Math.atan2(i,n)/2/Math.PI,r<0&&(r+=360),[e,Math.sqrt(n*n+i*i),r]},n.lch.lab=function(t){const e=t[0],n=t[1],i=t[2]/360*2*Math.PI;return[e,n*Math.cos(i),n*Math.sin(i)]},n.rgb.ansi16=function(t,e=null){const[i,r,o]=t;let s=null===e?n.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),0===s)return 30;let a=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(i/255));return 2===s&&(a+=60),a},n.hsv.ansi16=function(t){return n.rgb.ansi16(n.hsv.rgb(t),t[2])},n.rgb.ansi256=function(t){const e=t[0],n=t[1],i=t[2];return e===n&&n===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},n.ansi16.rgb=function(t){let e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];const n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},n.ansi256.rgb=function(t){if(t>=232){const e=10*(t-232)+8;return[e,e,e]}let e;return t-=16,[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},n.rgb.hex=function(t){const e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},n.hex.rgb=function(t){const e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let n=e[0];3===e[0].length&&(n=n.split("").map((t=>t+t)).join(""));const i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},n.rgb.hcg=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.max(Math.max(e,n),i),o=Math.min(Math.min(e,n),i),s=r-o;let a,l;return a=s<1?o/(1-s):0,l=s<=0?0:r===e?(n-i)/s%6:r===n?2+(i-e)/s:4+(e-n)/s,l/=6,l%=1,[360*l,100*s,100*a]},n.hsl.hcg=function(t){const e=t[1]/100,n=t[2]/100,i=n<.5?2*e*n:2*e*(1-n);let r=0;return i<1&&(r=(n-.5*i)/(1-i)),[t[0],100*i,100*r]},n.hsv.hcg=function(t){const e=t[1]/100,n=t[2]/100,i=e*n;let r=0;return i<1&&(r=(n-i)/(1-i)),[t[0],100*i,100*r]},n.hcg.rgb=function(t){const e=t[0]/360,n=t[1]/100,i=t[2]/100;if(0===n)return[255*i,255*i,255*i];const r=[0,0,0],o=e%1*6,s=o%1,a=1-s;let l=0;switch(Math.floor(o)){case 0:r[0]=1,r[1]=s,r[2]=0;break;case 1:r[0]=a,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=s;break;case 3:r[0]=0,r[1]=a,r[2]=1;break;case 4:r[0]=s,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=a}return l=(1-n)*i,[255*(n*r[0]+l),255*(n*r[1]+l),255*(n*r[2]+l)]},n.hcg.hsv=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);let i=0;return n>0&&(i=e/n),[t[0],100*i,100*n]},n.hcg.hsl=function(t){const e=t[1]/100,n=t[2]/100*(1-e)+.5*e;let i=0;return n>0&&n<.5?i=e/(2*n):n>=.5&&n<1&&(i=e/(2*(1-n))),[t[0],100*i,100*n]},n.hcg.hwb=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},n.hwb.hcg=function(t){const e=t[1]/100,n=1-t[2]/100,i=n-e;let r=0;return i<1&&(r=(n-i)/(1-i)),[t[0],100*i,100*r]},n.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},n.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},n.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},n.gray.hsl=function(t){return[0,0,t[0]]},n.gray.hsv=n.gray.hsl,n.gray.hwb=function(t){return[0,100,t[0]]},n.gray.cmyk=function(t){return[0,0,0,t[0]]},n.gray.lab=function(t){return[t[0],0,0]},n.gray.hex=function(t){const e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n},n.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]},fp}function kp(){if(vp)return mp;vp=1;const t=bp();function e(t,e){return function(n){return e(t(n))}}function n(n,i){const r=[i[n].parent,n];let o=t[i[n].parent][n],s=i[n].parent;for(;i[s].parent;)r.unshift(i[s].parent),o=e(t[i[s].parent][s],o),s=i[s].parent;return o.conversion=r,o}return mp=function(e){const i=function(e){const n=function(){const e={},n=Object.keys(t);for(let t=n.length,i=0;i<t;i++)e[n[i]]={distance:-1,parent:null};return e}(),i=[e];for(n[e].distance=0;i.length;){const e=i.pop(),r=Object.keys(t[e]);for(let t=r.length,o=0;o<t;o++){const t=r[o],s=n[t];-1===s.distance&&(s.distance=n[e].distance+1,s.parent=e,i.unshift(t))}}return n}(e),r={},o=Object.keys(i);for(let t=o.length,e=0;e<t;e++){const t=o[e];null!==i[t].parent&&(r[t]=n(t,i))}return r}}var wp=function(){if(yp)return gp;yp=1;const t=bp(),e=kp(),n={};return Object.keys(t).forEach((i=>{n[i]={},Object.defineProperty(n[i],"channels",{value:t[i].channels}),Object.defineProperty(n[i],"labels",{value:t[i].labels});const r=e(i);Object.keys(r).forEach((t=>{const e=r[t];n[i][t]=function(t){const e=function(...e){const n=e[0];if(null==n)return n;n.length>1&&(e=n);const i=t(e);if("object"==typeof i)for(let t=i.length,e=0;e<t;e++)i[e]=Math.round(i[e]);return i};return"conversion"in t&&(e.conversion=t.conversion),e}(e),n[i][t].raw=function(t){const e=function(...e){const n=e[0];return null==n?n:(n.length>1&&(e=n),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(e)}))})),gp=n}(),xp=Vu(wp);class _p extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(_p)};super(_p.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[3];\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 blend = texture2D(first_texture, current_texture_coordinate_2d);\n \n vec3 blendRGB = blend.rgb;\n vec3 baseRGB = vec3(staticOptions[0], staticOptions[1], staticOptions[2]);\n \n vec3 limit = step(0.5, blendRGB);\n vec3 mixedRGB = mix(2.0 * baseRGB * blendRGB, 1.0 - 2.0 * (1.0 - baseRGB) * (1.0 - blendRGB), limit);\n \n gl_FragColor = vec4((mixedRGB * blend.a) + ((1.0 - blend.a) * baseRGB), 1);\n}"},e,t)}static getFilterType(){return"hardLight"}static getInputsCount(){return 1}static getInitialOptions(){return{color:"4b0082"}}getOptionsDisplay(){return[{properties:["color"],type:"colorPicker"}]}handleStaticUniforms(t){const e=xp.hex.rgb(t.color).map((t=>t/255));this.uniforms[Hh.STATIC_OPTIONS].set([e[0],e[1],e[2]])}}class Tp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(Tp)};super(Tp.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[6];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float exposure_value;\n\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n // transfrom logic // \n // normalized time range from 0 to 1\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2], staticOptions[3]),\n vec2(staticOptions[4], staticOptions[5]),\n current_time\n );\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n exposure_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float exposure_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4((texture.xyz) * (1.0 + exposure_value) , texture.w);\n}\n\n"},e,t)}static getFilterType(){return"exposureTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{properties:{power:{form:0,to:0,ease:[0,0,1,1]}}}}handleStaticUniforms(t){const e=t.properties.power;this.uniforms[Hh.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[Hh.FIRST_TEXTURE,Gh]}}class Ip extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(Ip)};super(Ip.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[6];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float dipToBlack_value;\n\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n // transfrom logic // \n // normalized time range from 0 to 1\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2], staticOptions[3]),\n vec2(staticOptions[4], staticOptions[5]),\n current_time\n );\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n dipToBlack_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float dipToBlack_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(texture.xyz - dipToBlack_value, texture.w);\n}"},e,t)}static getFilterType(){return"dipToBlackTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.power;this.uniforms[Hh.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[Hh.FIRST_TEXTURE,Gh]}}class Ep extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(Ep)};super(Ep.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[16];\n\nvarying vec2 current_texture_coordinate_2d;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n // time range from 0 to 1\n float current_time = runtimeOptions[0];\n\n // scale X\n float current_scale_x_progress = getCurrentBeizerProgress(\n vec2(staticOptions[4],staticOptions[5]),\n vec2(staticOptions[6],staticOptions[7]),\n current_time\n );\n float currnet_scale_x_value = mix(staticOptions[0], staticOptions[1], current_scale_x_progress);\n\n // scale Y\n float current_scale_y_progress = getCurrentBeizerProgress(\n vec2(staticOptions[4],staticOptions[5]),\n vec2(staticOptions[6],staticOptions[7]),\n current_time\n );\n float currnet_scale_y_value = mix(staticOptions[2], staticOptions[3], current_scale_y_progress);\n\n // translate x\n float current_translate_x_progress = getCurrentBeizerProgress(\n vec2(staticOptions[12],staticOptions[13]),\n vec2(staticOptions[14],staticOptions[15]),\n current_time\n );\n \n float currnet_translate_x_value = mix(staticOptions[8], staticOptions[9], current_translate_x_progress); \n\n // translate y\n float current_translate_y_progress = getCurrentBeizerProgress(\n vec2(staticOptions[12],staticOptions[13]),\n vec2(staticOptions[14],staticOptions[15]),\n current_time\n );\n float currnet_translate_y_value = mix(staticOptions[10], staticOptions[11], current_translate_y_progress); \n\n // See Default vertex shader, we normalize y axis to be -y\n // because of webgl texture coordinates\n currnet_translate_y_value = currnet_translate_y_value * -1.0;\n\n // create matries\n mat4 scaleMatrix;\n scaleMatrix[0] = vec4(currnet_scale_x_value, 0, 0, 0); \n scaleMatrix[1] = vec4(0, currnet_scale_y_value, 0, 0); \n scaleMatrix[2] = vec4(0, 0, 1, 0); \n scaleMatrix[3] = vec4(0, 0, 0, 1); \n\n mat4 translateMatrix;\n translateMatrix[0] = vec4(1, 0, 0, 0); \n translateMatrix[1] = vec4(0, 1, 0, 0); \n translateMatrix[2] = vec4(0, 0, 1, 0); \n translateMatrix[3] = vec4(currnet_translate_x_value, currnet_translate_y_value, 0, 1); \n\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = translateMatrix * scaleMatrix * normalize_poistion;\n // gl_Position = translateMatrix * scaleMatrix * normalize_poistion;\n \n \n current_texture_coordinate_2d = texture_coordinate_2d;\n \n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n}"},e,t)}static getFilterType(){return"transformTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.scale||{},n=t.properties.translate||{};e.ease=e.ease||[0,0,1,1],n.ease=n.ease||[0,0,1,1],this.uniforms[Hh.STATIC_OPTIONS].set([e.from&&e.from.x||1,e.to&&e.to.x||1,e.from&&e.from.y||1,e.to&&e.to.y||1,...e.ease,n.from&&n.from.x||0,n.to&&n.to.x||0,n.from&&n.from.y||0,n.to&&n.to.y||0,...n.ease])}static getUniformList(){return[Hh.FIRST_TEXTURE,Gh]}}class Sp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(Sp)};super(Sp.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float staticOptions[8];\nuniform float runtimeOptions[3];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2],staticOptions[3]),\n vec2(staticOptions[4],staticOptions[5]),\n current_time\n );\n \n // varing\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_power_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[8];\nuniform float runtimeOptions[3];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nconst int samples = 12; //multiple of 2\n\nvoid main() {\n vec2 pixel = vec2(1.0/runtimeOptions[1], 1.0/runtimeOptions[2]);\n vec2 direction = vec2(staticOptions[6], staticOptions[7]);\n \n vec4 color = vec4(0.0); \n\n for (int i=1; i<=samples/2; i++) {\n vec2 motion = float(i) * current_power_value / float(samples / 2) * direction * pixel;\n \n color += texture2D(\n first_texture,\n current_texture_coordinate_2d + motion);\n\n color += texture2D(\n first_texture,\n current_texture_coordinate_2d - motion);\n }\n\t\n color = color/float(samples);\n\n \n gl_FragColor = color;\n // gl_FragColor = vec4(0,1,0,1);\n \n}"},e,t)}static getFilterType(){return"motionBlurTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.power||{from:0,to:0},n=t.properties.direction||{x:0,y:0};e.ease=e.ease||[0,0,1,1],this.uniforms[Hh.STATIC_OPTIONS].set([e.from,e.to,...e.ease,n.x,n.y])}static getUniformList(){return[Hh.FIRST_TEXTURE,Gh,qh]}}class Ap extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(Ap)};super(Ap.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[9];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2],staticOptions[3]),\n vec2(staticOptions[4],staticOptions[5]),\n current_time\n );\n \n // varing\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_power_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[9];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 fadeColor = vec4(staticOptions[6], staticOptions[7], staticOptions[8], 1.0) ;\n gl_FragColor = mix(texture,fadeColor, current_power_value);\n}"},e,t)}static getFilterType(){return"fadeToColorTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{properties:{power:{form:0,to:0,ease:[0,0,1,1]},color:"#FFFFFF"}}}handleStaticUniforms(t){const e=t.properties.power||{from:0,to:0};e.ease=e.ease||[0,0,1,1];const n=t.properties.color,i=xp.hex.rgb(n).map((t=>t/255));this.uniforms[Hh.STATIC_OPTIONS].set([e.from,e.to,...e.ease,i[0],i[1],i[2]])}static getUniformList(){return[Hh.FIRST_TEXTURE,Gh]}}var Np=Object.freeze({__proto__:null,Crop:sp,Curves:Qf,Default:ef,DipToBlackTransition:Ip,DirectionalBlur:hf,Exposure:up,ExposureTransition:Tp,FadeToColorTransition:Ap,FastBlur:df,HardLight:_p,HorizontalBlur:cf,Hue:np,Lab:cp,Levels:Zf,Lut:vf,MotionBlurTransition:Sp,Opacity:ff,Saturation:op,ShapeComposite:mf,ShapeCompositeMask:pf,Solid:ap,SolidImage:lp,Transform:lf,TransformTransition:Ep,VerticalBlur:uf,Vibrance:rp,WhiteBalance:ip});const Mp=Object.values(Np).reduce(((t,e)=>(t[e.getFilterType()]=e,t)),{});class Fp{constructor(t){this.context=t}static getFilterClass(t){return Mp[t]}getFilterIds(){return Object.keys(this.filterTypeToInstanceMap)}create(t,e){this.context={...this.context,options:e.options};const n=new Mp[t](this.context);if(!n)throw new Error(`${t} is not a atom filter, atomFilter list: `,this.getFilterIds());return n}}const Op=Gd.PREVIOUS_OUTPUT_PREFIX,Cp=Object.values(Np).reduce(((t,e)=>(t[e.getFilterType()]={type:e.getFilterType(),options:e.getInitialOptions(),inputs:[...Array(e.getInputsCount())].map(((t,e)=>`${Op}${e}`)),outputs:[]},t)),{});var Pp,Dp,Rp=function(){if(Dp)return Pp;Dp=1;var t=function(t){return function(t){return!!t&&"object"==typeof t}(t)&&(n=t,!("[object RegExp]"===(i=Object.prototype.toString.call(n))||"[object Date]"===i||n.$$typeof===e));var n,i},e="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(t,e){return!1!==e.clone&&e.isMergeableObject(t)?s((n=t,Array.isArray(n)?[]:{}),t,e):t;var n}function i(t,e,i){return t.concat(e).map((function(t){return n(t,i)}))}function r(t){return Object.keys(t).concat((e=t,Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]));var e}function o(t,e){try{return e in t}catch(t){return!1}}function s(e,a,l){(l=l||{}).arrayMerge=l.arrayMerge||i,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=n;var c=Array.isArray(a);return c===Array.isArray(e)?c?l.arrayMerge(e,a,l):function(t,e,i){var a={};return i.isMergeableObject(t)&&r(t).forEach((function(e){a[e]=n(t[e],i)})),r(e).forEach((function(r){var l,c;o(l=t,c=r)&&(!Object.hasOwnProperty.call(l,c)||!Object.propertyIsEnumerable.call(l,c))||(o(t,r)&&i.isMergeableObject(e[r])?a[r]=function(t,e){if(!e.customMerge)return s;var n=e.customMerge(t);return"function"==typeof n?n:s}(r,i)(t[r],e[r],i):a[r]=n(e[r],i))})),a}(e,a,l):n(a,l)}return s.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce((function(t,n){return s(t,n,e)}),{})},Pp=s}(),Lp=Vu(Rp),Bp=function(t,e){return Lp(t,e,{arrayMerge:(t,e)=>e})};const zp=Gd.MESSAGES.UPDATE_OPTIONS;let Wp=class{constructor(t,e){this.eventEmitter=new Qd,this.type=t,this.inputs=e.inputs,this.outputs=e.outputs,this.options=e.options}render(){throw new Error("concrete class should implement")}_updateOptions(){throw new Error("concrete class should implement")}updateOptions(t){this._updateOptions(t),this.eventEmitter.emit(zp,this.options)}updateInputs(t){t&&(this.inputs.length===t.length&&this.inputs.every(((e,n)=>e===t[n]))||(this.inputs=[...t]))}getEventEmitter(){return this.eventEmitter}getType(){return this.type}getInputs(){return this.inputs}getOutputs(){return this.outputs}getOptions(){return this.options}getInfo(){return{inputs:this.inputs,outputs:this.outputs,options:this.options}}getOptionsDisplay(){return this.filter.getOptionsDisplay()}dispose(){throw new Error("concrete class should implement")}};class jp extends Wp{constructor(t,e,n){super(...arguments),this.filter=n.filterFactory.create(this.type,{options:this.options})}render(t){const e=t.ioStore,n=t.graphIOManager,i=this.getInputs(),r=this.getOutputs(),o=e.get(i),s=this.filter.render(o,this.options);return n.setOutputs(e,r,s),s}_updateOptions(t){this.options=Bp(this.options,t),this.filter.updateStaticUniforms(this.options)}dispose(){this.filter.dispose()}}const Up=Gd.MESSAGES.UPDATE_OPTIONS;class $p extends jp{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}baseNodeUpdateOptions(t){this.options=Bp(this.options,t),this.filter.updateStaticUniforms(this.options)}registerListeners(){this.baseNode.getEventEmitter().on(Up,this.baseNodeUpdateOptions,this)}dispose(){this.filter.dispose(),this.baseNode.getEventEmitter().off(Up,this.baseNodeUpdateOptions,this)}}function qp(t){return null!==t&&"object"==typeof t}function Vp(t){if(!qp(t)||(e=t,Array.isArray(e)))return t;var e;const n=Object.keys(t).sort(),i={};return n.forEach((e=>{i[e]=Vp(t[e])})),i}function Gp(t,e){return null!=t&&t.id&&null!=e&&e.id?t.type===e.type&&t.id===e.id:t.type===e.type}function Hp(t,e){const n=[];t.forEach(((t,i)=>{const r=(o=t,e.findIndex((t=>function(t,e){const n=JSON.parse(JSON.stringify(t));return r=JSON.parse(JSON.stringify(e)),qp(i=n)&&qp(r)?JSON.stringify(Vp(i))===JSON.stringify(Vp(r)):!(!Number.isNaN(i)||!Number.isNaN(r))||i===r;var i,r}(o,t))));var o;if(-1!==r)return void n.push({type:"take",index:r});const s=(a=t,l=i,(c=e)&&c[l]&&Gp(a,c[l])?l:c.findIndex((t=>Gp(a,t))));var a,l,c;-1===s?n.push({type:"create",newGraphIndex:i}):n.push({type:"update",currentGraphIndex:s,newGraphIndex:i})}));const i=n.reduce(((t,e)=>("take"===e.type?t.push(e.index):"update"===e.type&&t.push(e.currentGraphIndex),t)),[]);return e.reduce(((t,e,n)=>(i.includes(n)||t.push(n),t)),[]).forEach((t=>{n.push({type:"dispose",currentGraphIndex:t})})),n}function Kp(t,e,n,i){const r=[];return t.forEach((t=>{switch(t.type){case"take":r.push(n[t.index]);break;case"update":const o=e[t.newGraphIndex].options,s=n[t.currentGraphIndex];s.updateInputs(e[t.newGraphIndex].inputs),s.updateOptions(o),r.push(s);break;case"create":const a=sm.create(e[t.newGraphIndex],i);r.push(a);break;case"dispose":n[t.currentGraphIndex].dispose();break;default:throw new Error("cant apply action type: ",t.type)}})),r}var Xp=function(t,e,n,i){const r=t.graph,o=e.graph;if(!(o&&r&&Array.isArray(o)&&Array.isArray(r)))throw new Error("cant apply new composite options",t);return Kp(Hp(r,o),r,n,i)};class Yp extends Wp{constructor(t,e,n){super(...arguments),this.context=n,this.nodes=this.createNodes(this.options)}createNodes(t){if(!t||!t.graph)throw new Error("cant create composite node, please supply info.options.graph");return t.graph.map((t=>sm.create(t,this.context)))}render(t){const e=t.ioStore,n=t.graphIOManager;let i=n.getPrevOutput(e);const r=this.outputs;if(this.nodes.length){const t=new ih(e),r="__PREVIOUS:0",o=[],s=new Set;this.nodes.forEach(((e,a)=>{const l={ioStore:t,graphIOManager:n},c=e.getOutputs?e.getOutputs():void 0,u=Array.isArray(c)?c:[],d={};u.forEach((e=>{d[e]=t.get(e)}));const h=t.get(r);i=e.render(l),a!==this.nodes.length-1&&o.push(i);const f=new Set;if(h&&h!==i&&f.add(h),u.forEach((t=>{const e=d[t];e&&e!==i&&f.add(e)})),f.size){const e=new Set(Object.values(t.get()));f.forEach((t=>{e.has(t)||(n.disposeTextures([t],i),s.add(t))}))}}));const a=o.filter((t=>!s.has(t)));n.disposeTextures(a,i)}return n.setOutputs(e,r,i),i}getOptionsDisplay(){return[]}_updateOptions(t){this.nodes=Xp(t,this.options,this.nodes,this.context),this.options=t}dispose(){this.nodes.forEach((t=>{t.dispose()}))}}const Qp=Gd.MESSAGES.UPDATE_OPTIONS;class Jp extends Yp{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}registerListeners(){this.baseNode.getEventEmitter().on(Qp,this.updateOptions,this)}dispose(){this.nodes.forEach((t=>{t.dispose()})),this.baseNode.getEventEmitter().off(Qp,this.updateOptions,this)}}const Zp=Gd.SYSTEM_NODES.TAGS.ATOM,tm=Gd.SYSTEM_NODES.TAGS.FILTER,em=Gd.SYSTEM_NODES.TAGS.COMPOSITE_FILTER,nm=Gd.SYSTEM_NODES.TAGS.TRANSITION_FILTER,im=Gd.PREVIOUS_OUTPUT_PREFIX,rm=Object.keys(Cp);function om(t,e){const n=(i=t.type,Cp[i]);var i;return t=Bp(n,t),new jp(t.type,t,e)}var sm={create:function(t,e){let n;switch(function(t){let e;return n=t,e=rm.includes(n)?Zp:t===em?em:t===nm?nm:tm,e;var n}((t=JSON.parse(JSON.stringify(t))).type)){case Zp:n=om(t,e);break;case tm:n=function(t,e){const n=function(t,e){const n=e.get(t);if(!n)throw new Error(`no base node, cant resolve type: ${t}`);return n}(t.type,e.nodeStore),i=n.getType(),r=n.getInfo();let o;return t=Bp(r,t),e={...e,baseNode:n},o=i===em?new Jp(i,t,e):new $p(i,t,e),o}(t,e);break;case em:n=function(t,e){const n=t.type;return t=Bp({inputs:[`${im}0`]},t),new Yp(n,t,e)}(t,e);break;case nm:n=function(t,e){const n=t.options.filter;if(!n)throw new Error(`transition filter should supply base filter ${n}`);return t.type=`${n}Transition`,om(t,e)}(t,e);break;default:throw new Error("cant create node",t.type)}return n}};const am=Gd.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS;var lm=function(t){const e={[am]:Cp[am]};for(const[n,i]of Object.entries(e)){const e=sm.create(i,t);t.nodeStore.set(n,e)}},cm=function(t,e){for(const[n,i]of Object.entries(t)){const t=sm.create(i,e);e.nodeStore.set(n,t)}};const um=Gd.CAPTURED_FRAME_PREFIX;class dm{constructor(t){return this.textureManager=t.textureManager,this.currentFrameTextures={0:this.textureManager.createTexture({type:"frame"})},this.saveInNextFrameTextures=[],this.savedFramesTextures={},this.reservedUnits=new Set([this.currentFrameTextures[0].getUnit()]),{capture:this.capture.bind(this),createCaptureId:this.createCaptureId.bind(this),releaseCaptureId:this.releaseCaptureId.bind(this),getCurrentFrames:this.getCurrentFrames.bind(this),getSavedFrames:this.getSavedFrames.bind(this),isReservedUnit:this.isReservedUnit.bind(this)}}updateCurrentFrame(t,e){e=e||0,this.currentFrameTextures[e].fill(t)}saveFrame(t){0!==this.saveInNextFrameTextures.length&&(this.saveInNextFrameTextures.forEach((e=>{e.fill(t)})),this.saveInNextFrameTextures=[])}capture(t,e){(t.videoHeight>150||t.displayHeight>150)&&(this.updateCurrentFrame(t,e),this.saveFrame(t))}createCaptureId(){const t=this.textureManager.createTexture({type:"frame"});this.saveInNextFrameTextures.push(t);const e=t.getUnit(),n=`${um}${e}`;return this.savedFramesTextures[n]=t,this.reservedUnits.add(e),n}releaseCaptureId(t){if("string"!=typeof t)throw new Error("capture id should be string");delete this.saveInNextFrameTextures[t];const e=t.split(":")[1];this.reservedUnits.delete(parseInt(e,10))}getCurrentFrames(){return this.currentFrameTextures}getSavedFrames(){return this.savedFramesTextures}isReservedUnit(t){return this.reservedUnits.has(t)}}const hm=ld("ShaderGraphApplication","warn"),fm=Gd.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS,pm=Object.freeze({useCanvasSizedFilterTargets:!1,rebindAttributesOnProgramSwitch:!0,forwardContextAttributes:!0});function mm(t={}){const e=null==t?void 0:t.performanceToggles;return e&&"object"==typeof e?{...pm,...e}:{...pm}}class vm{constructor(t,e={}){return this.glSource=t,this.config=e,this.performanceToggles=mm(e),this.isContextLost=!1,this.isRecovering=!1,this.isDisposed=!1,this.pendingNodeOptionUpdates=new Map,this.doInit(t,e)}doInit(t,e){this.source=eh(t),this.performanceToggles=mm(e),this.isDisposed=!1,this.resetViewportSyncState(),this.render=this.render.bind(this),this.resizeCanvasSize=this.resizeCanvasSize.bind(this),this.setSrcVidTracks=this.setSrcVidTracks.bind(this),this.onWebGLContextLost=this.onWebGLContextLost.bind(this),this.onForceRender=this.onForceRender.bind(this),this.resizeCanvasSize._shouldPreventDefault=!0;const n=function(t={},e=pm){const n=null!=t&&t.glOptions&&"object"==typeof t.glOptions?{...t.glOptions}:{},i=n.__shaderGraph&&"object"==typeof n.__shaderGraph?n.__shaderGraph:{};return{...n,__shaderGraph:{...i,forwardContextAttributes:!1!==e.forwardContextAttributes}}}(e,this.performanceToggles);return this.gl=this.source.init(this.setSrcVidTracks,this.resizeCanvasSize,n),this.addCanvasListeners(),this.addSourceListeners(),this.exposeDebugGlobalIfBrowser(),this.selectedRenderNode=null,this.setupRenderInfrastructure(t,e),e.userWillCallRender||(this.rafId=requestAnimationFrame(this.render)),this.dirtyCanvasSize=!0,{getNodes:this.getNodes.bind(this),addNodes:this.addClientNodes.bind(this),selectNode:this.selectNode.bind(this),addTexture:this.addTexture.bind(this),releaseTexture:this.releaseTexture.bind(this),captureTexture:this.captureTexture.bind(this),disposeTexture:this.disposeTexture.bind(this),updateOptions:this.updateOptions.bind(this),render:this.render,dispose:this.dispose.bind(this)}}exposeDebugGlobalIfBrowser(){"undefined"!=typeof window&&(window.ekoShaderGraph=this)}setupRenderInfrastructure(t,e){this.activeTextures=this.activeTextures||new Set,this.textureManager=new dh({gl:this.gl,activeTextures:this.activeTextures}),this.capturedFramesManager=new dm({textureManager:this.textureManager}),this.graphIOManager=new bh({glSource:t,gl:this.gl,textureManager:this.textureManager,capturedFramesManager:this.capturedFramesManager}),this.frameBufferFactory=new Eh({gl:this.gl,textureManager:this.textureManager,useCanvasSizedFilterTargets:this.performanceToggles.useCanvasSizedFilterTargets}),this.filterFactory=new Fp({gl:this.gl,frameBufferFactory:this.frameBufferFactory,rebindAttributesOnProgramSwitch:this.performanceToggles.rebindAttributesOnProgramSwitch}),this.nodeStore=new ih,this.ioStore=new ih,lm({nodeStore:this.nodeStore,filterFactory:this.filterFactory}),this.addClientNodes(e.nodes,this.isRecovering)}getNodes(){return hm.debug("[getNodes]"),this.nodeStore.get()}addClientNodes(t,e=!1){if(hm.debug("[addClientNodes]",t),t&&!e&&(this.addClientNodeInvocations=this.addClientNodeInvocations||[],this.addClientNodeInvocations.push(t)),!e&&this.isContextUnavailable())return;t=t||{};const n=JSON.parse(JSON.stringify(t));cm(n,{nodeStore:this.nodeStore,filterFactory:this.filterFactory})}addTexture(t,e,n){if(hm.debug("[addTexture]",t,e,n),this.isContextUnavailable())return null;let i=this.textureManager.createTexture({type:e});return i.isStatic=!0,t&&i.fill(t),this.graphIOManager.setTextureSource(this.ioStore,i,n),i}releaseTexture(t){hm.debug("[releaseTexture]",t),this.isContextUnavailable()||this.textureManager.releaseTexture(t)}selectNode(t){if(hm.debug("[selectNode]",t),!this.isContextUnavailable())return this.nodeStore.get(t)||hm.warn("Missing render node",t),void(this.selectedRenderNodeId=t);this.selectedRenderNodeId=t}captureTexture(){return hm.debug("[captureTexture]"),this.isContextUnavailable()?null:this.capturedFramesManager.createCaptureId()}disposeTexture(t){return hm.debug("[disposeTexture]",t),this.isContextUnavailable()||"string"!=typeof t?null:this.capturedFramesManager.releaseCaptureId(t)}setSrcVidTracks(t){this.isContextUnavailable()||this.capturedFramesManager&&this.capturedFramesManager.capture(t)}resizeCanvasSize(t,e,n,i){this.dirtyCanvasSize={width:n,height:i}}resetViewportSyncState(){this._lastSyncedViewportCanvasWidth=null,this._lastSyncedViewportCanvasHeight=null}syncViewportToCanvasBackingStoreIfChanged(){var t,e;const n=null===(t=this.gl)||void 0===t||null===(t=t.canvas)||void 0===t?void 0:t.width,i=null===(e=this.gl)||void 0===e||null===(e=e.canvas)||void 0===e?void 0:e.height;!Number.isFinite(n)||!Number.isFinite(i)||n<=0||i<=0||n===this._lastSyncedViewportCanvasWidth&&i===this._lastSyncedViewportCanvasHeight||(_h(n,i),this.gl.viewport(0,0,n,i),this._lastSyncedViewportCanvasWidth=n,this._lastSyncedViewportCanvasHeight=i)}isContextUnavailable(){return!!this.isDisposed||!(!this.isRecovering&&!this.isContextLost)||!(!this.gl||"function"!=typeof this.gl.isContextLost)&&this.gl.isContextLost()}queueNodeOptionUpdate(t,e){t&&e&&"object"==typeof e&&(this.pendingNodeOptionUpdates||(this.pendingNodeOptionUpdates=new Map),this.pendingNodeOptionUpdates.set(t,e))}applyPendingNodeOptionUpdates(t=!1){if(!this.pendingNodeOptionUpdates||!this.pendingNodeOptionUpdates.size)return;const e=Array.from(this.pendingNodeOptionUpdates.entries());this.pendingNodeOptionUpdates.clear(),e.forEach((([e,n])=>{try{if(t){const t=this.nodeStore.get(e);if(!t||"function"!=typeof t.updateOptions)return void this.queueNodeOptionUpdate(e,n);try{t.updateOptions(n)}catch(t){hm.error("Failed to apply pending node options",e,t),this.queueNodeOptionUpdate(e,n)}return}this.updateOptions(e,n)}catch(t){hm.error("Failed to apply pending node options",e,t)}}))}render(t={}){const{noRaf:e=!1}=t;if(this.isContextUnavailable())return;if(this.dirtyCanvasSize){let{width:t=this.gl.canvas.width,height:e=this.gl.canvas.height}=this.dirtyCanvasSize;_h(t,e),this.gl.canvas.width=t,this.gl.canvas.height=e,this.textureManager.refreshTextureObjects(),this.gl.viewport(0,0,t,e),this.dirtyCanvasSize=!1,this._lastSyncedViewportCanvasWidth=t,this._lastSyncedViewportCanvasHeight=e}this.syncViewportToCanvasBackingStoreIfChanged(),this.graphIOManager.setVideoSources(this.ioStore);let n={ioStore:this.ioStore,graphIOManager:this.graphIOManager};this.renderSelectedNode(n),this.config.onPreRenderToScreen&&this.config.onPreRenderToScreen(),this.renderToCanvas(n),this.config.onPostRenderToScreen&&this.config.onPostRenderToScreen(),this.graphIOManager.disposeAllStore(this.ioStore),n=null,!e&&!this.config.userWillCallRender&&(this.rafId=requestAnimationFrame(this.render))}renderSelectedNode(t){if(!this.selectedRenderNodeId)return;const e=this.nodeStore.get(this.selectedRenderNodeId);e&&"function"==typeof e.render?e.render(t):(hm.warn("Missing selected render node",this.selectedRenderNodeId),this.selectedRenderNodeId=null)}renderToCanvas(t){const e=this.nodeStore.get(fm);e&&"function"==typeof e.render?e.render(t):hm.warn("Missing render-to-canvas node")}updateOptions(t,e){if(hm.debug("[updateOptions]",t,e),this.isContextUnavailable())return void this.queueNodeOptionUpdate(t,e);const n=this.nodeStore.get(t);if(n&&"function"==typeof n.updateOptions)try{n.updateOptions(e)}catch(n){hm.error("Failed to update node options",t,n),this.queueNodeOptionUpdate(t,e)}else this.queueNodeOptionUpdate(t,e)}addSourceListeners(){var t;"function"==typeof(null===(t=this.source)||void 0===t?void 0:t.on)&&this.source.on("forcerender",this.onForceRender)}removeSourceListeners(){var t;"function"==typeof(null===(t=this.source)||void 0===t?void 0:t.off)&&this.source.off("forcerender",this.onForceRender)}addCanvasListeners(){var t;(null==this||null===(t=this.gl)||void 0===t?void 0:t.canvas)&&(this.config.noWebGLContextLostRecovery||this.gl.canvas.addEventListener("webglcontextlost",this.onWebGLContextLost))}removeCanvasListeners(){var t;(null==this||null===(t=this.gl)||void 0===t?void 0:t.canvas)&&this.gl.canvas.removeEventListener("webglcontextlost",this.onWebGLContextLost)}getNodesOptions(){const t=this.getNodes();let e={};return Object.keys(t).filter((t=>"__default"!==t)).forEach((n=>{e[n]=t[n].options})),e}getDocumentVisibilityPromise(){return new Promise((t=>{"visible"===document.visibilityState&&t();const e=()=>{"visible"===document.visibilityState&&(document.removeEventListener("visibilitychange",e),t())};document.addEventListener("visibilitychange",e)}))}onForceRender(){hm.info("[onForceRender]"),this.render({noRaf:!0})}async onWebGLContextLost(t){if(t&&"function"==typeof t.preventDefault&&t.preventDefault(),this.isDisposed||this.isRecovering)return;this.isContextLost=!0,this.isRecovering=!0;const e=this.getNodesOptions(),n=this.addClientNodeInvocations,i=this.selectedRenderNodeId;cancelAnimationFrame(this.rafId),hm.warn("WebGL context lost - attempting to recover");const r=async()=>{if(this.isDisposed)this.isRecovering=!1;else try{var t;if(await this.getDocumentVisibilityPromise(),this.isDisposed)return void(this.isRecovering=!1);if(this.gl&&"function"==typeof this.gl.isContextLost&&this.gl.isContextLost())return void setTimeout(r,200);this.dispose(!1),this.doInit(this.glSource,this.config),this.textureManager&&"function"==typeof this.textureManager.refreshActiveTextures&&this.textureManager.refreshActiveTextures(),n&&n.length&&n.forEach((t=>{hm.debug("Re-adding client nodes",t),this.addClientNodes(t,!0)})),Object.entries(e).forEach((([t,e])=>{hm.debug("Re-applying node options",t,e);const n=this.nodeStore.get(t);n&&"function"==typeof n.updateOptions&&n.updateOptions(e)})),i&&(this.selectedRenderNodeId=i),this.applyPendingNodeOptionUpdates(!0);const o="function"==typeof(null===(t=this.source)||void 0===t?void 0:t.recover);o&&(hm.debug("Recovering glSource (i.e. seeking/resetting player)"),await this.source.recover()),this.isContextLost=!1,this.isRecovering=!1,o&&this.render()}catch(t){hm.error("Failed to recover WebGL context, retrying",t),setTimeout(r,200)}};await r()}dispose(t=!0){if(this.selectedRenderNode=null,t&&(this.isDisposed=!0,this.isRecovering=!1,this.isContextLost=!1),this.source&&(this.removeSourceListeners(),"function"==typeof this.source.dispose&&this.source.dispose()),this.gl){this.removeCanvasListeners();const e=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS);for(let t=0;t<e;++t)this.gl.activeTexture(this.gl.TEXTURE0+t),this.gl.bindTexture(this.gl.TEXTURE_2D,null),this.gl.bindTexture(this.gl.TEXTURE_CUBE_MAP,null);if(this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,null),this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,null),this.gl.bindTexture(this.gl.TEXTURE_2D,null),this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,null),t)try{this.gl.getExtension("WEBGL_lose_context").loseContext()}catch(t){console.error(t)}}this.selectedRenderNodeId=null,t&&delete this.addClientNodeInvocations}}class gm{constructor(t={}){this.options=t}get type(){return"stage"}getSignature(){return this.type}build({inputs:t=[]}={}){return{graph:[],outputs:t,signature:this.getSignature()}}}function ym(t={}){const e={source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:.5,y:.5},width:1,height:1},fitType:"fill",cornerRadius:0,edgeSoftness:0},n={...e.source,...t.source||{}},i={...e.target,...t.target||{}};return{...e,...t,source:n,target:i}}class bm extends gm{get type(){return"retarget"}getSignature(){var t;const e=Array.isArray(null===(t=this.options)||void 0===t?void 0:t.frames)?this.options.frames:[];return`${this.type}:${e.length}`}build({inputs:t=[],stageIndex:e=0}={}){var n;const i=Array.isArray(null===(n=this.options)||void 0===n?void 0:n.frames)?this.options.frames:[];if(!i.length)return{graph:[],outputs:t,signature:this.getSignature()};const r=[],o=[];for(let n=0;n<t.length;n+=1){const s=t[n],a=i[n];if(!a){o.push(s);continue}const l=`retarget-${e}-${n}`;r.push({id:l,type:"crop",inputs:[s],outputs:[l],options:ym(a)}),o.push(l)}return{graph:r,outputs:o,signature:this.getSignature()}}}class km{#I=new Map;constructor(){this.register("retarget",bm)}register(t,e){t&&"function"==typeof e&&this.#I.set(t,e)}create(t={}){const e="string"==typeof(null==t?void 0:t.type)?t.type:null;if(!e)return null;const n=this.#I.get(e);return n?new n((null==t?void 0:t.options)||{}):null}}class wm{constructor(t={}){this.params=t}static get panAndScanTarget(){return"pre"}static buildDefaultLayoutGraph(t=[]){const e=t[0]||"__SRC_TEXTURE:0";return{type:"default",signature:`default:${t.length}`,isDynamic:!1,graph:[{type:"opacity",inputs:[e],options:{power:1}}]}}static prepareRenderFrames({frames:t}={}){return Array.isArray(t)?t:[]}static getRenderTiming({timing:t}={}){return t&&"object"==typeof t?t:{}}static resetRenderState(t){}render(t){}}class xm extends wm{#E=null;#S=null;static get type(){return"default"}static get aliases(){return["DefaultRenderNode","default"]}static get requiresFrameCadence(){return!1}static buildLayoutGraph({inputs:t=[]}={}){return super.buildDefaultLayoutGraph(t)}static prepareRenderFrames({frames:t}={}){const e=Array.isArray(t)?t:[];if(e.length<=1)return e;const n=e[e.length-1];return n?[n]:e}render(t){var e;const n=(null==t||null===(e=t.visualFramesAvailable)||void 0===e?void 0:e.frames)||[];if(!n.length)return;const i=null==t?void 0:t.shaderGraph,r=null==t?void 0:t.shaderGraphNodeIds;if(!i||"function"!=typeof i.updateOptions||"function"!=typeof i.selectNode)return;const o=null==r?void 0:r.default;if(o)try{const t=n.map(((t,e)=>t?`__SRC_TEXTURE:${e}`:null)).filter(Boolean),e=xm.buildLayoutGraph({inputs:t}),r=e.signature;this.#E!==r&&(i.updateOptions(o,{graph:e.graph}),this.#E=r),this.#S!==o&&(i.selectNode(o),this.#S=o),i.render({noRaf:!0})}catch(t){}}}function _m(t){const e=Number(t);return Number.isFinite(e)?e<=0?0:e>=1?1:e:0}class Tm extends wm{#E=null;#S=null;#A=null;static get type(){return"cross-fade"}static get aliases(){return["CrossFadeRenderNode","cross-fade","crossfade"]}static get requiresFrameCadence(){return!0}static get panAndScanTarget(){return"pre"}static buildLayoutGraph({inputs:t=[],normalizedTime:e}={}){if(t.length<2)return super.buildDefaultLayoutGraph(t);const n=_m(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:Tm.type,signature:`${Tm.type}:${t.length}`,isDynamic:!0,graph:i}}static prepareRenderFrames({frames:t,timelineTime:e,active:n}={}){let i=(Array.isArray(t)?t:[]).slice(0,2);if(i.length<2)return i;const r=Number.isFinite(null==n?void 0:n.duration)&&n.duration>0?n.duration:void 0,o=Number.isFinite(null==n?void 0:n.offset)?n.offset:void 0;if(!Number.isFinite(e)||!Number.isFinite(r)||!Number.isFinite(o))return i;const s=_m((e-o)/r);return s<=0?[i[0]]:s>=1?[i[1]]:i}render(t){var e;const n=(null==t||null===(e=t.visualFramesAvailable)||void 0===e?void 0:e.frames)||[];if(!n.length)return;const i=null==t?void 0:t.shaderGraph,r=null==t?void 0:t.shaderGraphNodeIds;if(!i||"function"!=typeof i.updateOptions||"function"!=typeof i.selectNode)return;if(n.length<2){const t=null==r?void 0:r.default;if(!t)return;try{const e="default";if(this.#E!==e){const n=Tm.buildLayoutGraph({inputs:["__SRC_TEXTURE:0"]});i.updateOptions(t,{graph:n.graph}),this.#E=e}this.#S!==t&&(i.selectNode(t),this.#S=t),i.render({noRaf:!0})}catch(t){}return}const o=null==r?void 0:r.crossFade;if(o)try{const e=["__SRC_TEXTURE:0","__SRC_TEXTURE:1"],n=Tm.buildLayoutGraph({inputs:e,normalizedTime:null==t?void 0:t.renderNodeNormalizedTime}),r=n.signature,s=Number(null==t?void 0:t.renderNodeNormalizedTime),a=Number.isFinite(s)?s:0;this.#E===r&&this.#A===a||(i.updateOptions(o,{graph:n.graph}),this.#E=r,this.#A=a),this.#S!==o&&(i.selectNode(o),this.#S=o),i.render({noRaf:!0})}catch(t){}}}function Im(t,e,n={}){if("number"==typeof(null==t?void 0:t.nodeDurationOverride)&&Number.isFinite(t.nodeDurationOverride))return t.nodeDurationOverride;const i="function"==typeof(null==n?void 0:n.getNode)?n.getNode:e&&"function"==typeof e.get?t=>e.get(t):null;if(!i)return;const r=i(null==t?void 0:t.nodeId);if(!r)return;const o=r.duration;if("number"!=typeof o||Number.isNaN(o)||!Number.isFinite(o))return;const s="string"!=typeof r.state||"ready"===r.state;if(!0!==(null==n?void 0:n.allowUnready)&&!s)return;if(!(!0!==(null==n?void 0:n.allowUnready)||s||o>0))return;let a=0;"number"==typeof t.nodeOffsetOverride&&Number.isFinite(t.nodeOffsetOverride)&&(a=t.nodeOffsetOverride);const l=o-a;return l>0?l:0}function Em(t){return!(!t||!0===t.offsetPending)&&Number.isFinite(t.offset)}function Sm(t){return Em(t)?t.offset:void 0}function Am(t,e,n,i={}){if(!t)return!1;const r=Sm(t);if(!Number.isFinite(r))return!1;const o=Im(t,n,i);return Number.isFinite(o)?e>=r&&e<r+o:e>=r}function Nm(t=[]){if(!Array.isArray(t))return t;const e=[],n=[];return t.forEach((t=>{Em(t)?e.push(t):n.push(t)})),e.sort(((t,e)=>t.offset-e.offset)),t.splice(0,t.length,...e,...n),t}function Mm(t=[],e={}){if(!Array.isArray(t)||!t.length)return{updated:!1,resolvedPlacements:[]};const n="function"==typeof e.getPlacementDuration?e.getPlacementDuration:()=>{},i="function"==typeof e.snapPlacementOffset?e.snapPlacementOffset:t=>t,r="function"==typeof e.onResolvedPlacement?e.onResolvedPlacement:null,o=new Map,s=[];if(t.forEach((t=>{null!=t&&t.placementId&&o.set(t.placementId,t),!0===(null==t?void 0:t.offsetPending)&&s.push(t)})),!s.length)return{updated:!1,resolvedPlacements:[]};let a=!1;const l=[];let c=s,u=!0;for(;c.length&&u;){u=!1;const t=[];for(let e=0;e<c.length;e+=1){const s=c[e],d=null==s?void 0:s.offsetAnchorPlacementId;if(!d){t.push(s);continue}const h=o.get(d);if(!h||!0===h.offsetPending){t.push(s);continue}const f=Sm(h);if(!Number.isFinite(f)){t.push(s);continue}let p;if("start"===s.offsetAnchorEdge)p=i(f,s);else{const e=n(h);if(!(e>0)){t.push(s);continue}const r=f+e-(Number.isFinite(s.offsetEndSeconds)?s.offsetEndSeconds:0);if(!Number.isFinite(r)){t.push(s);continue}const o=i(r,s);p=!0===s.offsetAnchorIsReference?Math.max(o,r):o}Number.isFinite(p)?(s.offset=p,s.offsetPending=!1,s.offsetAnchorPlacementId=void 0,s.offsetAnchorEdge=void 0,s.offsetAnchorIsReference=void 0,r&&r(s,h,p),l.push(s),a=!0,u=!0):t.push(s)}c=t}return a&&!1!==e.sortPlacements&&Nm(t),{updated:a,resolvedPlacements:l}}function Fm(t){const e=Number(t);return Number.isFinite(e)?e:0}function Om(t,e={}){const n=function(t){const e=Number(t);return Number.isFinite(e)&&e<0?Math.abs(e):0}(t),i=Number.isFinite(null==e?void 0:e.offsetEndSeconds)?e.offsetEndSeconds:n;var r;return{wantsEndOffset:"end"===(r=t)||null==r||n>0||!0===(null==e?void 0:e.offsetPending),endOffsetSeconds:i,endOffsetFromAtSeconds:n}}function Cm(t){if("string"!=typeof t)return null;const e=t.trim();if(!e||"end"===e)return null;const n=Number(e);if(Number.isFinite(n))return null;const i=e.split("@"),r=i[0]?i[0].trim():"";if(!r)return null;if(1===i.length)return{placementId:r,anchor:"start"};if(2!==i.length)return null;const o=i[1]?i[1].trim().toLowerCase():"";return"start"!==o&&"end"!==o?null:{placementId:r,anchor:o}}function Pm(t=[],e,n,i){if(Array.isArray(t))for(let r=0;r<t.length;r+=1){const o=t[r],s="number"==typeof(null==o?void 0:o.offset)?o.offset:0;if(e<s+("number"==typeof(null==o?void 0:o.duration)&&Number.isFinite(o.duration)?o.duration:Number.POSITIVE_INFINITY)&&s<n)throw new Error(i)}}function Dm(t){const e=Number(t);return Number.isFinite(e)&&e>0?e:0}function Rm(t){return(null==t?void 0:t.id)||(null==t?void 0:t.nodeId)||null}function Lm(t,e){return Array.isArray(t)&&e?t.findIndex((t=>Rm(t)===e)):-1}function Bm(t,e,n){const i=function(t,e,n){if(!Array.isArray(e)||0===e.length)return null;const i=e.length;if(null==t||"next"===t){const t=Lm(e,n);return t>=0?(t+1)%i:0}if("prev"===t){const t=Lm(e,n);return t>=0?(t-1+i)%i:i-1}const r=Number(t);return Number.isInteger(r)&&r>=0&&r<i?r:null}(t,e,n);return Number.isInteger(i)?Rm(e[i]):null}function zm(t,e,n,i){const r=function(t,e){if(!Array.isArray(t)||t.length<=1)return t||[];const n=function(t){const e=[],n=new Set;return Array.isArray(t)?(t.forEach((t=>{const i=null==t?void 0:t.placementId;i&&!n.has(i)&&(n.add(i),e.push(i))})),e):e}(e);if(!n.length)return t;const i=new Map;t.forEach((t=>{const e=null==t?void 0:t.placementId;e&&!i.has(e)&&i.set(e,t)}));const r=[],o=new Set;return n.forEach((t=>{const e=i.get(t);e&&!o.has(t)&&(o.add(t),r.push(e))})),t.forEach((t=>{const e=null==t?void 0:t.placementId;e&&!o.has(e)&&(o.add(e),r.push(t))})),r}(function(t,e){const n=function(t){const e=Number(null==t?void 0:t.offset),n=Number(null==t?void 0:t.duration),i=n===Number.POSITIVE_INFINITY,r=Number.isFinite(n)&&n>0||i;return Number.isFinite(e)&&r?{start:e,end:i?Number.POSITIVE_INFINITY:e+n}:null}(e);if(!n||!t||!Array.isArray(t.placements))return[];const i=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return!Number.isFinite(n)||n<=0?0:.5/n}(t),r=t.placements.filter((e=>{const r=function(t,e){const n=Sm(t);if(!Number.isFinite(n))return null;const i="function"==typeof(null==e?void 0:e.getPlacementDuration)?e.getPlacementDuration(t):void 0;return{start:n,end:Number.isFinite(i)&&i>=0?n+i:Number.POSITIVE_INFINITY}}(e,t);return!!r&&r.start<n.end&&r.end>n.start+i}));return r.sort(((t,e)=>Sm(t)-Sm(e))),r}(e,n),i),o=function(t,e){const n=[],i=new Set;return Array.isArray(t)?(t.forEach((t=>{const r=null==t?void 0:t.nodeId;if(!r||i.has(r))return;const o="function"==typeof(null==e?void 0:e.getNode)?e.getNode(r):null;if(o){const t="object"==typeof o&&null!==o?o.id||o.nodeId?o:{...o,id:r}:{id:r};n.push(t),i.add(r)}})),n):n}(r,e),s=function(t){const e=new Map;return t.forEach((t=>{const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;n&&i&&(e.has(i)||e.set(i,[]),e.get(i).push(n))})),e}(r),a=Array.isArray(t.nodes)?t.nodes:[];return a.splice(0,a.length,...o),t.nodes=a,t.placements=r,t.nodePlacementMap=s,{nodes:a,placements:r,nodePlacementMap:s}}function Wm(t,e,n){if(!Array.isArray(t))return null;if(e){const n=t.find((t=>(null==t?void 0:t.placementId)===e));if(n)return n}return n&&t.find((t=>(null==t?void 0:t.nodeId)===n))||null}function jm(t,e){if(!e||!Array.isArray(t))return null;const n=t.find((t=>(null==t?void 0:t.placementId)===e));return(null==n?void 0:n.nodeId)||null}function Um(t,e,n){if(!t||!e)return null;const i=e.get(t);if(!Array.isArray(i)||!i.length)return null;for(let e=0;e<i.length;e+=1){const r=i[e];if(Wm(n,r,t))return r}return null}function $m(t){t.initialized=!1,t.activeRenderPlacementId=null,t.nodes=[],t.placements=[],t.nodePlacementMap=null,t.selectedPlacementId=null,t.previousPlacementId=null,t.pendingSwitch=null,t.switchStartTime=null,t.switchDuration=0,t.switchNormalizedTime=void 0,t.switchTo=null,t.countOfConcurrentChannels=null}class qm extends wm{static get type(){return"switching"}static get aliases(){return["SwitchingRenderNode","switching","switch"]}static get requiresFrameCadence(){return!0}static get panAndScanTarget(){return"pre"}static buildLayoutGraph({inputs:t=[],normalizedTime:e}={}){if(t.length<2)return super.buildDefaultLayoutGraph(t);const n=_m(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:qm.type,signature:`${qm.type}:${t.length}`,isDynamic:!0,graph:i}}static getRenderTiming({timing:t,state:e}={}){const n=t&&"object"==typeof t?t:{},i=Number(null==e?void 0:e.switchNormalizedTime);return Number.isFinite(i)?{...n,normalizedTime:_m(i)}:n}static prepareRenderFrames({frames:t,timelineTime:e,timeline:n,active:i,renderNodeParams:r,state:o}={}){const s=Array.isArray(t)?t:[],a=o&&"object"==typeof o?o:{},l=null==i?void 0:i.renderPlacementId;l&&a.activeRenderPlacementId!==l&&($m(a),a.activeRenderPlacementId=l);const c=null==r?void 0:r.initSwitching,u=zm(a,n,i,s),d=(f=s,Array.isArray(f)?f.length:0),h=a.countOfConcurrentChannels;var f;if(a.countOfConcurrentChannels=d,"function"==typeof c&&(a.switchTo||(a.switchTo=(t,e)=>{const n=jm(a.placements,a.selectedPlacementId),i=Bm(t,a.nodes,n);if(!i)return;const r={nodeId:i};e&&Object.prototype.hasOwnProperty.call(e,"crossfadeSeconds")&&void 0!==e.crossfadeSeconds&&(r.crossfadeSeconds=e.crossfadeSeconds),a.pendingSwitch=r}),!a.initialized||h!==d)){a.initialized=!0,a.countOfConcurrentChannels=d;try{c({nodes:u.nodes,countOfConcurrentChannels:d,switchTo:a.switchTo})}catch(f){}}if(!a.selectedPlacementId){const t=Number(null==r?void 0:r.initialChannelIndex),e=Bm(Number.isInteger(t)&&t>=0?t:0,a.nodes,null);let n=null;if(e&&(n=Um(e,a.nodePlacementMap,s),!n&&a.nodePlacementMap)){const t=a.nodePlacementMap.get(e);Array.isArray(t)&&t.length&&(n=t[0])}a.selectedPlacementId=n||function(t,e){if(Array.isArray(e))for(let i=0;i<e.length;i+=1){var n;const r=null===(n=e[i])||void 0===n?void 0:n.placementId;if(r&&Wm(t,r))return r}const i=Array.isArray(t)?t.find((t=>null==t?void 0:t.placementId)):null;return i?i.placementId:null}(s,a.placements)}if(a.pendingSwitch&&Number.isFinite(e)){const t=Um(a.pendingSwitch.nodeId,a.nodePlacementMap,s);if(t){const n=a.selectedPlacementId;a.previousPlacementId=n&&n!==t?n:null,a.selectedPlacementId=t;const i=Object.prototype.hasOwnProperty.call(a.pendingSwitch,"crossfadeSeconds"),o=Dm(a.pendingSwitch.crossfadeSeconds),s=Dm(null==r?void 0:r.switchCrossfadeSeconds),l=i?o:s;a.switchDuration=l,l>0?a.switchStartTime=e:(a.switchStartTime=null,a.previousPlacementId=null)}a.pendingSwitch=null}let p;if(Number.isFinite(a.switchStartTime)&&a.switchDuration>0&&Number.isFinite(e)){const t=e-a.switchStartTime;t>=a.switchDuration?(a.switchStartTime=null,a.switchDuration=0,a.previousPlacementId=null):t>=0&&(p=_m(t/a.switchDuration))}a.switchNormalizedTime=Number.isFinite(p)?p:void 0;const m=jm(a.placements,a.selectedPlacementId),v=Wm(s,a.selectedPlacementId,m)||s[0];let g=null;if(Number.isFinite(a.switchNormalizedTime)&&a.previousPlacementId){const t=jm(a.placements,a.previousPlacementId),e=jm(a.placements,a.selectedPlacementId),n=Wm(s,a.previousPlacementId,t),i=Wm(s,a.selectedPlacementId,e);n&&i&&(g=[n,i])}return g||(g=v?[v]:s),g}static resetRenderState(t){t&&"object"==typeof t&&$m(t)}}const Vm=.5,Gm="auto";function Hm(t){return"vertical"===t?"vertical":"horizontal"}function Km(t){return void 0===t||t===Gm?Gm:"manual"}function Xm(t){const e=Number(t);return Number.isFinite(e)&&e>=0?e:.004}function Ym(t,e){const n=Number(null==t?void 0:t.width),i=Number(null==t?void 0:t.height);return Number.isFinite(n)&&Number.isFinite(i)&&n>0&&i>0?i>n?"vertical":"horizontal":Hm(e)}function Qm(t,e){const n=e&&"object"==typeof e&&e.runtimeParams&&"object"==typeof e.runtimeParams?e.runtimeParams:{},i=Object.prototype.hasOwnProperty.call(n,"orientationMode")?n.orientationMode:null==t?void 0:t.orientationMode,r=Object.prototype.hasOwnProperty.call(n,"orientation")?n.orientation:null==t?void 0:t.orientation,o=Object.prototype.hasOwnProperty.call(n,"gap")?n.gap:null==t?void 0:t.gap,s=Km(i);return{orientationMode:s,orientation:s===Gm?Ym(null==e?void 0:e.viewportSize,r):Hm(r),gap:Xm(o)}}function Jm(t){t&&"object"==typeof t&&(t.activeRenderPlacementId=null,t.frames=null,t.gridInitialized=!1,t.runtimeParams=null,t.setGridParams=null)}class Zm extends wm{static get type(){return"grid"}static get aliases(){return["GridRenderNode","grid","SideBySideRenderNode","side-by-side","sidebyside"]}static get requiresFrameCadence(){return!1}static get panAndScanTarget(){return"skip"}static resolvePanAndScanTarget({frameCount:t}={}){return t<2?"pre":Zm.panAndScanTarget}static buildLayoutGraph({inputs:t=[],renderNodeParams:e,state:n}={}){const i=Array.isArray(t)?t.slice(0,12):[],r=i.length;if(r<2)return super.buildDefaultLayoutGraph(i);const{orientation:o,gap:s}=Qm(e,n),{rows:a,cols:l}=(p=o,(f=r)<=3?"vertical"===p?{rows:f,cols:1}:{rows:1,cols:f}:4===f?{rows:2,cols:2}:f<=6?"vertical"===p?{rows:3,cols:2}:{rows:2,cols:3}:f<=8?"vertical"===p?{rows:4,cols:2}:{rows:2,cols:4}:9===f?{rows:3,cols:3}:"vertical"===p?{rows:4,cols:3}:{rows:3,cols:4}),c=1/a,u=Math.max(0,c-s),d=[],h="grid-slice";var f,p;function m(t){const e=Math.floor(t/l),n=function(t,e,n,i){const r=(e-1)*n;return t===e-1&&i>r?i-r:n}(e,a,l,r),i=n<l?t-e*l:t%l,o=1/n;return{row:e,cellWidth:o,cropWidth:Math.max(0,o-s),targetCenterX:(i+Vm)*o,targetCenterY:(e+Vm)*c}}function v(t,e,n){const i=m(t);return{id:`grid-crop-${t}`,type:"crop",inputs:[e],outputs:[n],options:{source:{center:{x:Vm,y:Vm},width:1,height:1},target:{center:{x:i.targetCenterX,y:i.targetCenterY},width:i.cropWidth,height:u},fitType:"fill",cornerRadius:0,edgeSoftness:0}}}function g(t){const e=m(t);return{id:`grid-mask-${t}`,type:"shapeCompositeMask",inputs:[h,"accum"],outputs:["accum"],options:{type:"box",center:{x:2*e.targetCenterX-1,y:1-2*e.targetCenterY},area:{width:e.cellWidth,height:c},radius:0,edgeSoftness:0}}}d.push(v(0,i[0],"accum"));for(let t=1;t<r;t+=1)d.push(v(t,i[t],h)),d.push(g(t));return{type:Zm.type,signature:`${Zm.type}:${r}:${a}x${l}:${o}:${s}`,isDynamic:!1,graph:d}}static prepareRenderFrames({frames:t,renderNodeParams:e,active:n,state:i}={}){const r=Array.isArray(t)?t.slice(0,12):[],o=i&&"object"==typeof i?i:{},s=null==n?void 0:n.renderPlacementId;s&&o.activeRenderPlacementId!==s&&(Jm(o),o.activeRenderPlacementId=s);const a=Array.isArray(o.frames)?o.frames:[],l=null==e?void 0:e.initGrid;if("function"==typeof l&&(o.setGridParams||(o.setGridParams=t=>{!function(t,e){if(!t||"object"!=typeof t||!e||"object"!=typeof e)return;const n=t.runtimeParams&&"object"==typeof t.runtimeParams?{...t.runtimeParams}:{};Object.prototype.hasOwnProperty.call(e,"orientationMode")&&(n.orientationMode=Km(e.orientationMode)),Object.prototype.hasOwnProperty.call(e,"orientation")&&(n.orientation=Hm(e.orientation)),Object.prototype.hasOwnProperty.call(e,"gap")&&(n.gap=Xm(e.gap)),t.runtimeParams=n}(o,t),"function"==typeof o.requestRender&&o.requestRender()}),!o.gridInitialized)){o.gridInitialized=!0;const t=Qm(e,o);try{l({orientationMode:t.orientationMode,orientation:t.orientation,gap:t.gap,setGridParams:o.setGridParams})}catch(t){}}if(r.length<2){const t=function(t,e){if(!Array.isArray(e)||e.length<2)return t.length?[t[t.length-1]]:[];const n=Math.min(12,Math.max(t.length,e.length,2)),i=t[0]||e[0];return Array.from({length:n},((n,r)=>t[r]||e[r]||i))}(r,a);return o.frames=t,t}return o.frames=r,r}static resetRenderState(t){Jm(t)}}const tv=[xm,Tm,qm,Zm],ev=new Map;function nv(t){if("string"!=typeof t)return null;const e=t.trim();return e?e.toLowerCase():null}function iv(t){const e=nv(t);return e&&ev.get(e)||null}function rv(t){return iv(t)||xm}tv.forEach((t=>function(t){(function(t){const e=Array.isArray(t.aliases)?t.aliases:[],n=t.type;return(n?[n,...e]:e.slice()).filter((t=>"string"==typeof t&&t.trim().length))})(t).forEach((e=>{const n=nv(e);n&&ev.set(n,t)}))}(t)));class ov{static get defaultType(){return xm.type||"default"}static getRenderNodeClass(t){return iv(t)}static normalizeType(t){const e=iv(t);return e?e.type:null}static doesRenderNodeTypeRequireFrameCadence(t){const e=iv(t);return!!e&&!0===e.requiresFrameCadence}static buildLayoutGraph({type:t,inputs:e=[],normalizedTime:n,renderNodeParams:i,state:r}={}){const o=rv(t);return o&&"function"==typeof o.buildLayoutGraph?o.buildLayoutGraph({inputs:e,normalizedTime:n,renderNodeParams:i,state:r}):xm.buildLayoutGraph({inputs:e,normalizedTime:n,renderNodeParams:i,state:r})}static getPanAndScanTarget(t,e={}){const n=rv(t);return"post"===(i=n&&"function"==typeof n.resolvePanAndScanTarget?n.resolvePanAndScanTarget(e):null==n?void 0:n.panAndScanTarget)||"skip"===i?i:"pre";var i}static prepareRenderFrames({type:t,frames:e,timelineTime:n,timeline:i,active:r,renderNodeParams:o,state:s}={}){const a=rv(t);if(a&&"function"==typeof a.prepareRenderFrames){const t=a.prepareRenderFrames({frames:e,timelineTime:n,timeline:i,active:r,renderNodeParams:o,state:s});if(Array.isArray(t))return t}return Array.isArray(e)?e:[]}static getRenderTiming({type:t,timing:e,timelineTime:n,active:i,renderNodeParams:r,state:o}={}){const s=rv(t),a=e&&"object"==typeof e?e:{};if(s&&"function"==typeof s.getRenderTiming){const t=s.getRenderTiming({timing:a,timelineTime:n,active:i,renderNodeParams:r,state:o});if(t&&"object"==typeof t)return{...a,...t}}return a}static resetRenderState(t,e){const n=rv(t);n&&"function"==typeof n.resetRenderState&&n.resetRenderState(e)}static resetAllRenderStates(t){t&&"function"==typeof t.forEach&&t.forEach(((t,e)=>{ov.resetRenderState(e,t)}))}create(t,e){return t&&"function"==typeof t.render?t:new(rv(t))(e)}}function sv(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function av(t,e){return t&&"function"==typeof t.getSignature?t.getSignature():(null==e?void 0:e.type)||"stage"}class lv{#N;constructor(t){this.#N=t||new km}build(t={}){const e=(Array.isArray(null==t?void 0:t.frames)?t.frames:[]).length,n=Array.from({length:e},((t,e)=>`__SRC_TEXTURE:${e}`)),i=ov.normalizeType(null==t?void 0:t.layoutType)||ov.defaultType,r=null==t?void 0:t.normalizedTime,o=sv(null==t?void 0:t.preStages),s=sv(null==t?void 0:t.postStages),a=[],l=[`layout:${i}`,`inputs:${e}`];let c=n;o.forEach(((e,n)=>{const i=this.#N.create(e);if(!i)return;const r=i.build({inputs:c,stageIndex:n,context:t});Array.isArray(null==r?void 0:r.graph)&&r.graph.length&&a.push(...r.graph),Array.isArray(null==r?void 0:r.outputs)&&r.outputs.length&&(c=r.outputs),l.push(av(i,e))}));const u=ov.buildLayoutGraph({type:i,inputs:c,normalizedTime:r,renderNodeParams:null==t?void 0:t.renderNodeParams,state:null==t?void 0:t.renderNodeState}),d=!(null==u||!u.isDynamic);Array.isArray(null==u?void 0:u.graph)&&u.graph.length&&a.push(...u.graph),l.push((null==u?void 0:u.signature)||`${i}:${c.length}`);let h="__PREVIOUS:0";return s.forEach(((e,n)=>{const i=this.#N.create(e);if(!i)return;const r=i.build({inputs:[h],stageIndex:n,context:t});Array.isArray(null==r?void 0:r.graph)&&r.graph.length&&a.push(...r.graph),h=Array.isArray(null==r?void 0:r.outputs)&&r.outputs.length?r.outputs[0]:"__PREVIOUS:0",l.push(av(i,e))})),{graph:a,signature:l.join("|"),isDynamic:d}}}const cv=[0,0,1,1],uv="zoomInExposure",dv=["transform","exposure","fadeToColor","dipToBlack"],hv={zoomInExposure:{filters:{fadeToColor:{duration:150,ease:[1,0,1,0],power:{from:0,to:1},color:"#ffffff"},exposure:!1,transform:{duration:150,ease:[0,.5,.5,1],scale:{from:{x:1,y:1},to:{x:1.1,y:1.1}},translate:{from:{x:0,y:0},to:{x:0,y:0}}}},reverseFilters:{fadeToColor:{duration:700,ease:[0,1,0,1]},exposure:!1,transform:{duration:700,ease:[0,1,0,1]}}},dipToBlack:{filters:{transform:{duration:250,ease:[0,.5,.5,1],scale:{from:{x:1,y:1},to:{x:1.05,y:1.05}},translate:{from:{x:0,y:0},to:{x:0,y:0}}},dipToBlack:{duration:250,ease:[0,.5,.5,1],power:{from:0,to:1}}},reverseFilters:{dipToBlack:{duration:800,ease:[0,1,0,1]}}}};function fv(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function pv(t,e=cv){return Array.isArray(t)&&t.length>=4?t:e}function mv(t){return"string"==typeof t&&t.trim()?t.trim():"#ffffff"}function vv(t,e){const n=null==t?void 0:t[e];return!1===n||null==n?null:ud(n)?n:{}}function gv(t={}){let e=0;return dv.forEach((n=>{const i=vv(t,n);if(!i)return;const r=fv(null==i?void 0:i.duration);r>e&&(e=r)})),e}function yv(t,e,n,i,r){const o=[];return dv.forEach((s=>{const a=vv(t,s);if(!a)return;const l=function(t,e,n){const i=fv(null==t?void 0:t.duration);return Number.isFinite(n)&&n>0?i>0&&e>0?i*e:n:i}(a,n,i),c=function(t,e,n,i,r){const o={type:"transition",inputs:["__PREVIOUS:0"],options:{filter:t,startTime:n,duration:i,properties:{}}};if("transform"===t){var s,a,l,c;const t=pv(null==e?void 0:e.ease),n=(null==e||null===(s=e.scale)||void 0===s?void 0:s.from)||{x:1,y:1},i=(null==e||null===(a=e.scale)||void 0===a?void 0:a.to)||{x:1,y:1},r=(null==e||null===(l=e.translate)||void 0===l?void 0:l.from)||{x:0,y:0},u=(null==e||null===(c=e.translate)||void 0===c?void 0:c.to)||{x:0,y:0};return o.options.properties.scale={from:n,to:i,ease:t},o.options.properties.translate={from:r,to:u,ease:t},o}if("fadeToColor"===t){const t=pv(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:fv(null==n?void 0:n.from,0),to:fv(null==n?void 0:n.to,1),ease:t},o.options.properties.color=mv((null==e?void 0:e.color)||r),o}if("exposure"===t||"dipToBlack"===t){const t=pv(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:fv(null==n?void 0:n.from,0),to:fv(null==n?void 0:n.to,1),ease:t},o}return null}(s,a,e,l,r);c&&o.push(c)})),o}function bv(t=[]){const e=t.map((t=>{const e=JSON.parse(JSON.stringify(t));return null!=e&&e.options&&(e.options.startTime=0),e}));return JSON.stringify(e)}class kv{#M=null;start(t={}){const e=null==t?void 0:t.shaderGraph;if(!e||"function"!=typeof e.captureTexture)return null;const{baseFilters:n,reverseFilters:i}=function(t={}){const e=function(t={}){if(ud(null==t?void 0:t.transition))return t.transition;if("string"==typeof(null==t?void 0:t.transition))return hv[t.transition]||hv[uv];if(ud(null==t?void 0:t.filters)||ud(null==t?void 0:t.reverseFilters))return{filters:t.filters||{},reverseFilters:t.reverseFilters||{}};if("string"==typeof(null==t?void 0:t.filter)){const e=fv(t.duration)>0?1e3*t.duration:500;return{filters:{[t.filter]:{duration:e,power:{from:0,to:1}}},reverseFilters:{}}}return hv[uv]}(t),n=dd({},(null==e?void 0:e.filters)||{},ud(null==t?void 0:t.filters)?t.filters:{}),i=function(t={}){const e={};return Object.keys(t).forEach((n=>{const i=t[n];if(!1===i)return void(e[n]=!1);const r=JSON.parse(JSON.stringify(ud(i)?i:{}));Object.values(r).forEach((t=>function(t){if(t&&"object"==typeof t&&"from"in t&&"to"in t){const e=t.from;t.from=t.to,t.to=e}}(t))),e[n]=r})),e}(n),r=dd({},(null==e?void 0:e.reverseFilters)||{},ud(null==t?void 0:t.reverseFilters)?t.reverseFilters:{});return{baseFilters:n,reverseFilters:dd({},i,r)}}(t),r=fv(null==t?void 0:t.duration),o=r>0?1e3*r:null,s=gv(n),a=gv(i),l=o&&s>0?o/s:1,c=o&&a>0?o/a:1,u=o||s||500,d=o||a||u,h=mv(null==t?void 0:t.color),f=e.captureTexture(),p=Date.now(),m=yv(n,p,l,o,h);return this.#M={phase:"out",startTime:p,outDurationMs:u,inDurationMs:d,color:h,captureId:f,baseFilters:n,reverseFilters:i,outScale:l,inScale:c,durationOverrideMs:o,outGraph:m,outSignature:bv(m),inGraph:null,inSignature:null},{captureId:f,outDurationMs:u,inDurationMs:d}}beginIncoming(){if(!this.#M)return;const t=Date.now(),e=yv(this.#M.reverseFilters,t,this.#M.inScale,this.#M.durationOverrideMs,this.#M.color);this.#M={...this.#M,phase:"in",startTime:t,inGraph:e,inSignature:bv(e)}}reset(t){var e;t&&"function"==typeof t.disposeTexture&&null!==(e=this.#M)&&void 0!==e&&e.captureId&&t.disposeTexture(this.#M.captureId),this.#M=null}getState(){return this.#M}buildOutgoingGraph(){const t=this.#M;return t&&"out"===t.phase&&Array.isArray(t.outGraph)&&t.outGraph.length?{signature:`transition:out:${t.outSignature||""}`,forceUpdate:!1,graph:t.outGraph}:null}buildIncomingGraph(){const t=this.#M;return t&&"in"===t.phase&&Array.isArray(t.inGraph)&&t.inGraph.length?{signature:`transition:in:${t.inSignature||""}`,forceUpdate:!1,graph:t.inGraph}:null}}let wv;const xv=[/firefox\/(\d+)/,/edg\/(\d+)/,/opr\/(\d+)/,/chrome\/(\d+)/];function _v(){const t=yd&&yd.navigator&&(yd.navigator.userAgent||yd.navigator.platform||yd.navigator.vendor)||"";if(wv&&wv.ua===t)return wv;const e=t.toLowerCase(),n=e.includes("android"),i=e.includes("iphone")||e.includes("ipad")||e.includes("ipod")||e.includes("ios"),r=n||i||e.includes("mobile"),o=!!t&&!r,s=e.includes("firefox/"),a=function(t=""){for(let e=0;e<xv.length;e+=1){const n=xv[e],i=t.match(n);if(!i)continue;const r=Number(i[1]);return Number.isFinite(r)?r:null}if(t.includes("safari/")&&t.includes("version/")){const e=t.match(/version\/(\d+)/);if(!e)return null;const n=Number(e[1]);return Number.isFinite(n)?n:null}return null}(e);return wv={ua:t,lowerUA:e,isAndroid:n,isiOS:i,isMobile:r,isDesktop:o,isFirefox:s,browserMajorVersion:a},wv}function Tv(){return _v().ua}function Iv(){return _v().isAndroid}function Ev(){return _v().isiOS}function Sv(){return _v().isMobile}function Av(){return _v().isDesktop}function Nv(){return _v().isFirefox}function Mv(){return _v().browserMajorVersion}var Fv={getUserAgent:Tv,isAndroid:Iv,isiOS:Ev,isMobile:Sv,isDesktop:Av,isFirefox:Nv,getBrowserMajorVersion:Mv},Ov=Object.freeze({__proto__:null,default:Fv,getBrowserMajorVersion:Mv,getUserAgent:Tv,isAndroid:Iv,isDesktop:Av,isFirefox:Nv,isMobile:Sv,isiOS:Ev});const Cv="Idle",Pv="Playing",Dv="FirstFramePending",Rv="Waiting",Lv="Paused",Bv="Seeking",zv="Resetting";function Wv(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function jv(t,e){return!!Array.isArray(t)&&t.some((t=>(null==t?void 0:t.type)===e))}function Uv(t){const e=Number(t);return!Number.isFinite(e)||e<=0?null:{type:"retarget",options:{frames:Array.from({length:e},(()=>({fitType:"fill"})))},meta:{source:"panAndScan"}}}function $v(t){return Array.isArray(t)?t.filter((t=>{return!("panAndScan"===(null==(e=t)||null===(n=e.meta)||void 0===n?void 0:n.source));var e,n})):[]}const qv=2073600;function Vv(t,e){const n=Number(t);return Number.isFinite(n)&&n>0?n:e}function Gv(t,e){if(null==t)return e;const n=Number(t);return Number.isFinite(n)?n:e}var Hv=new WeakMap,Kv=new WeakMap,Xv=new WeakMap,Yv=new WeakMap,Qv=new WeakMap,Jv=new WeakMap,Zv=new WeakMap,tg=new WeakMap,eg=new WeakMap,ng=new WeakMap,ig=new WeakMap,rg=new WeakMap,og=new WeakMap,sg=new WeakMap,ag=new WeakMap,lg=new WeakMap,cg=new WeakMap,ug=new WeakMap,dg=new WeakMap,hg=new WeakMap,fg=new WeakMap,pg=new WeakMap,mg=new WeakMap,vg=new WeakMap,gg=new WeakMap,yg=new WeakMap,bg=new WeakMap,kg=new WeakMap,wg=new WeakMap,xg=new WeakMap,_g=new WeakMap,Tg=new WeakMap,Ig=new WeakMap,Eg=new WeakMap,Sg=new WeakSet;class Ag extends md{static get pipelineNodeId(){return"ekoplayer-render-pipeline"}get defaults(){return{defaultRenderParams:void 0,resourceLimits:{enabled:!0,maxCanvasPixels:qv,maxDevicePixelRatio:0,renderScale:1,transitionMinFrameIntervalMs:33}}}constructor(...t){super(...t),U(this,Sg),W(this,Hv,void 0),W(this,Kv,void 0),W(this,Xv,void 0),W(this,Yv,void 0),W(this,Qv,void 0),W(this,Jv,void 0),W(this,Zv,void 0),W(this,tg,void 0),W(this,eg,void 0),W(this,ng,void 0),W(this,ig,void 0),W(this,rg,void 0),W(this,og,null),W(this,sg,null),W(this,ag,void 0),W(this,lg,void 0),W(this,cg,void 0),W(this,ug,[]),W(this,dg,[]),W(this,hg,null),W(this,fg,null),W(this,pg,null),W(this,mg,null),W(this,vg,null),W(this,gg,null),W(this,yg,new Map),W(this,bg,null),W(this,kg,null),W(this,wg,!1),W(this,xg,!1),W(this,_g,!1),W(this,Tg,!1),W(this,Ig,[]),W(this,Eg,null);const[e,n,i]=t;j(Hv,this,e),j(Kv,this,n),j(Xv,this,i),z(Hv,this)&&"function"==typeof z(Hv,this).enableFirstFrameRenderedGate&&z(Hv,this).enableFirstFrameRenderedGate(),j(rg,this,new lv),j(ag,this,new kv),j(lg,this,null),j(cg,this,null),j(pg,this,null),j(Yv,this,(t=>L(Sg,this,fy).call(this,t))),z(Hv,this)&&"function"==typeof z(Hv,this).on&&(z(Hv,this).on(kd.VISUAL_FRAMES_AVAILABLE,z(Yv,this)),j(Qv,this,(()=>{var t,e,n,i;L(Sg,this,Cg).call(this),L(Sg,this,ly).call(this,0),j(dg,this,[]),j(hg,this,null),j(og,this,null),j(sg,this,null),L(Sg,this,Jg).call(this),j(bg,this,null);(null===(t=z(ag,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t))||null===(n=z(ag,this))||void 0===n||null===(i=n.reset)||void 0===i||i.call(n,z(lg,this))})),z(Hv,this).on(kd.TIMELINE_SEEKING,z(Qv,this)),j(Jv,this,((t={})=>{"switch"===(null==t?void 0:t.reason)||"reset"===(null==t?void 0:t.reason)?L(Sg,this,Mg).call(this):L(Sg,this,Ng).call(this),L(Sg,this,Pg).call(this)})),z(Hv,this).on(kd.TIMELINE_RESET,z(Jv,this)),j(eg,this,(()=>L(Sg,this,ny).call(this))),z(Hv,this).on(kd.TIMELINE_TIME_UPDATE,z(eg,this)),j(Zv,this,(()=>{L(Sg,this,py).call(this)&&z(fg,this)&&L(Sg,this,fy).call(this,z(fg,this))})),z(Hv,this).on(kd.TIMELINE_STATE_CHANGE,z(Zv,this))),z(Kv,this)&&"function"==typeof z(Kv,this).on&&(j(ng,this,(()=>{const t=z(fg,this);j(Tg,this,!0),L(Sg,this,Ng).call(this),j(fg,this,t)})),z(Kv,this).on(kd.CANVAS_WEBGL_CONTEXT_LOST,z(ng,this)),j(ig,this,(()=>{var t;const e=null===(t=z(Kv,this))||void 0===t?void 0:t.gl;if(!e||"function"==typeof e.isContextLost&&e.isContextLost())return void j(Tg,this,!0);const n=z(fg,this);j(Tg,this,!1),L(Sg,this,Ng).call(this),j(fg,this,n),n&&L(Sg,this,py).call(this)&&L(Sg,this,fy).call(this,n)})),z(Kv,this).on(kd.CANVAS_WEBGL_CONTEXT_RESTORED,z(ig,this))),j(tg,this,(()=>{j(hg,this,null),z(fg,this)&&L(Sg,this,py).call(this)&&L(Sg,this,fy).call(this,z(fg,this))})),z(Xv,this)&&"function"==typeof z(Xv,this).on&&z(Xv,this).on(kd.CONTAINER_RESIZE,z(tg,this))}get name(){return"Renderer"}onDispose(){z(Hv,this)&&z(Yv,this)&&"function"==typeof z(Hv,this).off&&z(Hv,this).off(kd.VISUAL_FRAMES_AVAILABLE,z(Yv,this)),z(Hv,this)&&z(Qv,this)&&"function"==typeof z(Hv,this).off&&z(Hv,this).off(kd.TIMELINE_SEEKING,z(Qv,this)),z(Hv,this)&&z(Jv,this)&&"function"==typeof z(Hv,this).off&&z(Hv,this).off(kd.TIMELINE_RESET,z(Jv,this)),z(Hv,this)&&z(eg,this)&&"function"==typeof z(Hv,this).off&&z(Hv,this).off(kd.TIMELINE_TIME_UPDATE,z(eg,this)),z(Hv,this)&&z(Zv,this)&&"function"==typeof z(Hv,this).off&&z(Hv,this).off(kd.TIMELINE_STATE_CHANGE,z(Zv,this)),z(Xv,this)&&z(tg,this)&&"function"==typeof z(Xv,this).off&&z(Xv,this).off(kd.CONTAINER_RESIZE,z(tg,this)),z(Kv,this)&&z(ng,this)&&"function"==typeof z(Kv,this).off&&z(Kv,this).off(kd.CANVAS_WEBGL_CONTEXT_LOST,z(ng,this)),z(Kv,this)&&z(ig,this)&&"function"==typeof z(Kv,this).off&&z(Kv,this).off(kd.CANVAS_WEBGL_CONTEXT_RESTORED,z(ig,this)),L(Sg,this,Ng).call(this),j(Yv,this,null),j(Qv,this,null),j(Jv,this,null),j(eg,this,null),j(Zv,this,null),j(tg,this,null),j(ng,this,null),j(ig,this,null),j(rg,this,null),j(ag,this,null),j(yg,this,null),j(bg,this,null),j(Kv,this,null),j(Xv,this,null),j(Hv,this,null)}startTransition(t={}){var e,n;const i=null===(e=z(Kv,this))||void 0===e?void 0:e.element,r=null===(n=z(Kv,this))||void 0===n?void 0:n.gl;if(!i||!r)return null;if(z(Tg,this)||"function"==typeof r.isContextLost&&r.isContextLost())return j(Tg,this,!0),null;if(L(Sg,this,Rg).call(this,i),!z(lg,this))return null;const o=z(ag,this).start({shaderGraph:z(lg,this),duration:null==t?void 0:t.duration,filter:null==t?void 0:t.filter,color:null==t?void 0:t.color,filters:null==t?void 0:t.filters,reverseFilters:null==t?void 0:t.reverseFilters,transition:null==t?void 0:t.transition});return j(pg,this,z(fg,this)||null),L(Sg,this,uy).call(this),o}beginTransitionIn(t={}){var e,n;null!==(e=z(ag,this))&&void 0!==e&&null!==(n=e.beginIncoming)&&void 0!==n&&n.call(e,t),j(pg,this,null),L(Sg,this,uy).call(this)}resetTransition(){var t,e;null!==(t=z(ag,this))&&void 0!==t&&null!==(e=t.reset)&&void 0!==e&&e.call(t,z(lg,this)),j(pg,this,null),L(Sg,this,dy).call(this)}}function Ng(){if(L(Sg,this,Cg).call(this),z(ag,this)&&"function"==typeof z(ag,this).reset&&z(ag,this).reset(z(lg,this)),L(Sg,this,ly).call(this,0),z(lg,this)&&"function"==typeof z(lg,this).dispose)try{z(lg,this).dispose()}catch(t){}j(lg,this,null),j(cg,this,null),j(ug,this,[]),j(dg,this,[]),j(wg,this,!1),j(hg,this,null),j(og,this,null),j(sg,this,null),j(fg,this,null),j(pg,this,null),L(Sg,this,dy).call(this),L(Sg,this,Jg).call(this),j(bg,this,null)}function Mg(){L(Sg,this,Cg).call(this),z(ag,this)&&"function"==typeof z(ag,this).reset&&z(ag,this).reset(z(lg,this)),L(Sg,this,ly).call(this,0),j(ug,this,[]),j(dg,this,[]),j(hg,this,null),j(og,this,null),j(sg,this,null),j(fg,this,null),j(pg,this,null),L(Sg,this,dy).call(this),L(Sg,this,Jg).call(this),j(bg,this,null),j(kg,this,null)}function Fg(){const t="function"==typeof yd.requestAnimationFrame?yd.requestAnimationFrame.bind(yd):null,e="function"==typeof yd.cancelAnimationFrame?yd.cancelAnimationFrame.bind(yd):null;return t?{schedule:e=>t(e),cancel(t){"number"==typeof t&&e&&e(t)}}:null}function Og(t){j(Ig,this,z(Ig,this).filter((e=>e!==t))),z(Ig,this).length||j(Eg,this,null)}function Cg(){z(Eg,this)&&z(Ig,this).forEach((t=>z(Eg,this).call(this,t))),j(Ig,this,[]),j(Eg,this,null),j(_g,this,!1)}function Pg(){L(Sg,this,Cg).call(this),j(xg,this,!1)}function Dg(){if(z(xg,this)||z(_g,this))return;const t=L(Sg,this,Fg).call(this);if(!t)return;const{schedule:e,cancel:n}=t;let i;j(Eg,this,n),j(_g,this,!0),i=e((()=>{let t;L(Sg,this,Og).call(this,i),t=e((()=>{L(Sg,this,Og).call(this,t),j(_g,this,!1),z(xg,this)||(j(xg,this,!0),z(Hv,this)&&"function"==typeof z(Hv,this).notifyFirstFrameRendered&&z(Hv,this).notifyFirstFrameRendered())})),z(Ig,this).push(t)})),z(Ig,this).push(i)}function Rg(t){if(z(lg,this)||!t)return;const e=this,n={dest:t,src:(t,n)=>{j(cg,e,n)}};j(lg,e,new vm(n,{userWillCallRender:!0,glOptions:{contextType:"webgl2"},performanceToggles:{useCanvasSizedFilterTargets:!0}})),z(lg,e)&&"function"==typeof z(lg,e).addNodes&&z(lg,e).addNodes({[pe.pipelineNodeId]:{type:"composite",options:{graph:[]}}})}function Lg(t){var e;if("null"===(null==t?void 0:t.message))return!0;const n=null===(e=z(Kv,this))||void 0===e?void 0:e.gl;return!(!n||"function"!=typeof n.isContextLost||!n.isContextLost())}function Bg(t,e,n){const i=e||z(fg,this)||null;if(L(Sg,this,Ng).call(this),j(fg,this,i),!n)return this.log.warn("Shader graph render failed; rebuilding graph once.",t),void L(Sg,this,fy).call(this,i,!0);this.log.warn("Shader graph render is still unavailable after rebuild; deferring until the next render pass.",t)}function zg(){var t;const e=null===(t=this.settings)||void 0===t?void 0:t.resourceLimits;return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function Wg(){const t=L(Sg,this,zg).call(this).enabled;return!0===t||!1!==t&&Ev()}function jg(){if(!L(Sg,this,Wg).call(this))return 0;const t=Gv(L(Sg,this,zg).call(this).transitionMinFrameIntervalMs,33);return Number.isFinite(t)&&t>0?t:0}function Ug(t,e,n={}){const i=!0===(null==n?void 0:n.useDevicePixelRatio),r=L(Sg,this,Wg).call(this),o=i?Vv(null==yd?void 0:yd.devicePixelRatio,1):1;let s=o,a=0;if(r){const t=L(Sg,this,zg).call(this);a=Gv(t.maxCanvasPixels,qv);const e=Gv(t.maxDevicePixelRatio,0);s=Vv(t.renderScale,1)*(e>0?Math.min(o,e):o)}let l=Math.max(1,Math.round(t*s)),c=Math.max(1,Math.round(e*s));if(r&&a>0){const t=l*c;if(t>a){const e=Math.sqrt(a/t);l=Math.max(1,Math.floor(l*e)),c=Math.max(1,Math.floor(c*e))}}return{width:l,height:c}}function $g(t=[],e={}){var n;const i=null===(n=z(Kv,this))||void 0===n?void 0:n.element,r=z(cg,this);if(!i||"function"!=typeof r)return!1;let o=0,s=0;const a=!0===(null==e?void 0:e.useViewportSize);if(a){var l,c,u,d,h,f;const t=Number(null!==(l=null===(c=z(Xv,this))||void 0===c?void 0:c.containerWidth)&&void 0!==l?l:null===(u=z(Xv,this))||void 0===u?void 0:u.width),e=Number(null!==(d=null===(h=z(Xv,this))||void 0===h?void 0:h.containerHeight)&&void 0!==d?d:null===(f=z(Xv,this))||void 0===f?void 0:f.height);if(Number.isFinite(t)&&Number.isFinite(e)&&t>0&&e>0)o=Math.round(t),s=Math.round(e);else{const t=Number(i.clientWidth),e=Number(i.clientHeight);Number.isFinite(t)&&Number.isFinite(e)&&t>0&&e>0&&(o=Math.round(t),s=Math.round(e))}}if(!(o>0&&s>0)){if(!Array.isArray(t)||!t.length)return;for(let e=0;e<t.length;e+=1){var p;const n=null===(p=t[e])||void 0===p?void 0:p.frame,i=Number((null==n?void 0:n.displayWidth)||(null==n?void 0:n.codedWidth)||(null==n?void 0:n.videoWidth)||(null==n?void 0:n.naturalWidth)||(null==n?void 0:n.width)),r=Number((null==n?void 0:n.displayHeight)||(null==n?void 0:n.codedHeight)||(null==n?void 0:n.videoHeight)||(null==n?void 0:n.naturalHeight)||(null==n?void 0:n.height));!Number.isFinite(i)||!Number.isFinite(r)||i<=0||r<=0||(i>o&&(o=i),r>s&&(s=r))}}if(!(o>0&&s>0))return!1;const m=L(Sg,this,Ug).call(this,o,s,{useDevicePixelRatio:a}),v=m.width,g=m.height,y=z(hg,this);return!(y&&y.width===v&&y.height===g||(j(hg,this,{width:v,height:g}),r(null,null,v,g),0))}function qg(t){const e=null==t?void 0:t.nodeId,n=null==t?void 0:t.trackId,i=null==t?void 0:t.segmentId,r=null==t?void 0:t.presentationTime;return e&&n&&i&&Number.isFinite(r)?`${e}:${n}:${i}@${r}`:null}function Vg(t,e,n){const i=Number.isFinite(null==t?void 0:t.duration)&&t.duration>0?t.duration:void 0;let r;if(i&&Number.isFinite(null==t?void 0:t.offset)){const n=(e-t.offset)/i;r=n<0?0:n>1?1:n}const o=L(Sg,this,Gg).call(this,t),s=L(Sg,this,Hg).call(this,o);return ov.getRenderTiming({type:o,timing:{duration:i,normalizedTime:r},timelineTime:e,active:t,renderNodeParams:n,state:s})}function Gg(t){return ov.normalizeType(null==t?void 0:t.type)||ov.defaultType}function Hg(t){if(!t||!z(yg,this))return null;let e=z(yg,this).get(t);return e||(e={},z(yg,this).set(t,e)),e}function Kg(){var t,e,n,i,r,o,s,a,l,c,u;const d=Number(null!==(t=null===(e=z(Xv,this))||void 0===e?void 0:e.containerWidth)&&void 0!==t?t:null===(n=z(Xv,this))||void 0===n?void 0:n.width),h=Number(null!==(i=null===(r=z(Xv,this))||void 0===r?void 0:r.containerHeight)&&void 0!==i?i:null===(o=z(Xv,this))||void 0===o?void 0:o.height);if(Number.isFinite(d)&&Number.isFinite(h)&&d>0&&h>0)return{width:Math.round(d),height:Math.round(h)};const f=null===(s=z(Kv,this))||void 0===s?void 0:s.element,p=Number(null==f?void 0:f.clientWidth),m=Number(null==f?void 0:f.clientHeight);if(Number.isFinite(p)&&Number.isFinite(m)&&p>0&&m>0)return{width:Math.round(p),height:Math.round(m)};const v=Number(null!==(a=null==f?void 0:f.width)&&void 0!==a?a:null===(l=z(hg,this))||void 0===l?void 0:l.width),g=Number(null!==(c=null==f?void 0:f.height)&&void 0!==c?c:null===(u=z(hg,this))||void 0===u?void 0:u.height);return Number.isFinite(v)&&Number.isFinite(g)&&v>0&&g>0?{width:Math.round(v),height:Math.round(g)}:null}function Xg(t){const e=L(Sg,this,Hg).call(this,t);return e&&"object"==typeof e&&(e.requestRender=()=>L(Sg,this,Yg).call(this),e.viewportSize=L(Sg,this,Kg).call(this)),e}function Yg(){z(wg,this)||(j(wg,this,!0),Promise.resolve().then((()=>{j(wg,this,!1),z(fg,this)&&L(Sg,this,py).call(this)&&L(Sg,this,fy).call(this,z(fg,this))})))}function Qg(t){if(!t||!z(yg,this))return;const e=z(yg,this).get(t);e&&ov.resetRenderState(t,e),z(yg,this).delete(t)}function Jg(){z(yg,this)&&(ov.resetAllRenderStates(z(yg,this)),z(yg,this).clear())}function Zg(t,e,n,i){const r=L(Sg,this,Gg).call(this,t);z(bg,this)&&z(bg,this)!==r&&L(Sg,this,Qg).call(this,z(bg,this)),j(bg,this,r);const o=L(Sg,this,Xg).call(this,r);return ov.prepareRenderFrames({type:r,frames:e,timelineTime:n,timeline:z(Hv,this),active:t,renderNodeParams:i,state:o})}function ty(t){var e;return null!=t&&t.params&&"object"==typeof t.params?t.params:!t&&null!==(e=this.settings)&&void 0!==e&&e.defaultRenderParams&&"object"==typeof this.settings.defaultRenderParams?this.settings.defaultRenderParams:{}}function ey(t){return t?String(t.renderPlacementId||t.type||"unknown"):"default"}function ny(){if(!z(Hv,this)||!z(fg,this))return;const t=z(Hv,this).currentTime,e=z(Hv,this).getActiveRenderPlacement(t),n=L(Sg,this,ey).call(this,e);n!==z(kg,this)&&(j(kg,this,n),L(Sg,this,fy).call(this,{...z(fg,this),time:t}))}function iy(t){return!t||"object"!=typeof t||!Object.prototype.hasOwnProperty.call(t,"panAndScan")||!1!==t.panAndScan}function ry(t,e){const n=L(Sg,this,ty).call(this,t),i=null==n?void 0:n.stages;let r=Wv(null==i?void 0:i.pre),o=Wv(null==i?void 0:i.post);const s=L(Sg,this,iy).call(this,n),a=L(Sg,this,Gg).call(this,t),l=jv(r,"retarget")||jv(o,"retarget");if(s&&!l){const i=ov.getPanAndScanTarget(a,{frameCount:Array.isArray(e)?e.length:0,active:t,renderNodeParams:n});if("pre"===i){const t=Uv(Array.isArray(e)?e.length:0);t&&(r=[t,...r])}else if("post"===i){const t=Uv(1);t&&(o=[...o,t])}}else s||(r=$v(r),o=$v(o));return{preStages:r,postStages:o,renderNodeParams:n}}function oy(t,e,n,i,r){const o=r||L(Sg,this,Vg).call(this,t,n,i),s=L(Sg,this,ry).call(this,t,e),a=L(Sg,this,Gg).call(this,t),l=L(Sg,this,Xg).call(this,a);return z(rg,this).build({layoutType:null==t?void 0:t.type,frames:e,preStages:s.preStages,postStages:s.postStages,normalizedTime:o.normalizedTime,renderNodeDuration:o.duration,renderNodeParams:s.renderNodeParams,renderNodeState:l,timelineTime:n})}function sy(){var t,e;const n=null===(t=z(ag,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t);return"out"===(null==n?void 0:n.phase)?z(ag,this).buildOutgoingGraph():"in"===(null==n?void 0:n.phase)?z(ag,this).buildIncomingGraph():null}function ay(t,e,n,i){const r=n||e!==z(og,this),o=r||i;return r&&z(lg,this)&&"function"==typeof z(lg,this).updateOptions&&(z(lg,this).updateOptions(pe.pipelineNodeId,{graph:t}),j(og,this,e)),z(lg,this)&&"function"==typeof z(lg,this).selectNode&&z(sg,this)!==pe.pipelineNodeId&&(z(lg,this).selectNode(pe.pipelineNodeId),j(sg,this,pe.pipelineNodeId)),!(!o||!z(lg,this)||"function"!=typeof z(lg,this).render||(z(lg,this).render({noRaf:!0}),0))}function ly(t){if(!Array.isArray(z(ug,this))||!z(ug,this).length)return;const e=Number.isFinite(t)?Math.max(0,t):0;if(!(z(ug,this).length<=e)){for(let t=e;t<z(ug,this).length;t+=1){const e=z(ug,this)[t];if(e&&z(lg,this)&&"function"==typeof z(lg,this).releaseTexture)try{z(lg,this).releaseTexture(e)}catch(t){}}z(ug,this).length=e,z(dg,this).length=e}}function cy(t=[]){if(!z(lg,this)||"function"!=typeof z(lg,this).addTexture)return{didUpdate:!1,hasUploadFailure:!1,ready:!1};if("function"==typeof z(lg,this).isContextUnavailable&&z(lg,this).isContextUnavailable())return{didUpdate:!1,hasUploadFailure:!1,ready:!1};if(!Array.isArray(t)||!t.length)return L(Sg,this,ly).call(this,0),{didUpdate:!1,hasUploadFailure:!1,ready:!1};L(Sg,this,ly).call(this,t.length);let e=!1,n=!1,i=!0;for(let o=0;o<t.length;o+=1){var r;z(ug,this)[o]||"function"!=typeof z(lg,this).addTexture||(z(ug,this)[o]=z(lg,this).addTexture(null,"frame",o));const s=L(Sg,this,qg).call(this,t[o]),a=null===(r=t[o])||void 0===r?void 0:r.frame;if(z(ug,this)[o]&&a){if(!s||s!==z(dg,this)[o])try{z(ug,this)[o].fill(a),z(dg,this)[o]=s,e=!0}catch(t){i=!1,n=!0,z(dg,this)[o]=null}}else i=!1}return{didUpdate:e,hasUploadFailure:n,ready:i}}function uy(){if(z(mg,this))return;const t="function"==typeof yd.requestAnimationFrame?t=>yd.requestAnimationFrame(t):t=>setTimeout(t,16),e="function"==typeof yd.cancelAnimationFrame?t=>yd.cancelAnimationFrame(t):clearTimeout;j(vg,this,e);const n=()=>{var e,i;if(null!==(e=z(ag,this))&&void 0!==e&&null!==(i=e.getState)&&void 0!==i&&i.call(e)){if(z(fg,this)){const t=L(Sg,this,jg).call(this),e=Date.now();(!t||!z(gg,this)||e-z(gg,this)>=t)&&(j(gg,this,e),L(Sg,this,fy).call(this,z(fg,this)))}j(mg,this,t(n))}else j(mg,this,null)};j(mg,this,t(n))}function dy(){z(mg,this)&&z(vg,this)&&z(vg,this).call(this,z(mg,this)),j(mg,this,null),j(vg,this,null),j(gg,this,null)}function hy(t){var e,n;const i=null===(e=z(ag,this))||void 0===e||null===(n=e.getState)||void 0===n?void 0:n.call(e);return"out"===(null==i?void 0:i.phase)&&z(pg,this)?z(pg,this):t}function fy(t={},e=!1){try{var n,i;t&&j(fg,this,t);const e=null===(n=z(Kv,this))||void 0===n?void 0:n.element,r=null===(i=z(Kv,this))||void 0===i?void 0:i.gl;if(!e||!r)return;if(z(Tg,this)||"function"==typeof r.isContextLost&&r.isContextLost())return void j(Tg,this,!0);if(!L(Sg,this,py).call(this))return;const o=L(Sg,this,hy).call(this,t),s=Number.isFinite(null==o?void 0:o.time)?o.time:void 0;if(!Number.isFinite(s))return;if(L(Sg,this,Rg).call(this,e),!z(lg,this))return;const a=z(Hv,this)&&"function"==typeof z(Hv,this).getActiveRenderPlacement?z(Hv,this).getActiveRenderPlacement(s):void 0,l=L(Sg,this,ey).call(this,a);l!==z(kg,this)&&j(kg,this,l);const c=Array.isArray(null==o?void 0:o.frames)?o.frames:[],u=L(Sg,this,ty).call(this,a),d=L(Sg,this,iy).call(this,u),h=L(Sg,this,Zg).call(this,a,c,s,u),f=L(Sg,this,Vg).call(this,a,s,u),p=L(Sg,this,$g).call(this,h,{useViewportSize:d}),m=L(Sg,this,cy).call(this,h),v=m.didUpdate;if(h.length>0&&!m.ready)return void(m.hasUploadFailure&&this.log.warn("Skipping render because one or more input textures could not be uploaded."));const g=L(Sg,this,oy).call(this,a,h,s,u,f),y=L(Sg,this,sy).call(this);let b=g.graph,k=g.signature,w=!!g.isDynamic;y&&Array.isArray(y.graph)&&y.graph.length&&(b=b.concat(y.graph),k=`${k}|${y.signature||"transition"}`,w=w||!!y.forceUpdate);const x=p||v||w||y&&Array.isArray(y.graph)&&y.graph.length;L(Sg,this,ay).call(this,b,k,w,x)&&h.length>0&&L(Sg,this,Dg).call(this)}catch(n){if(L(Sg,this,Lg).call(this,n))return void L(Sg,this,Bg).call(this,n,t,e);throw n}}function py(){var t;const e=null===(t=z(Hv,this))||void 0===t?void 0:t.state;return e===Cv||e===Dv||e===Pv||e===Lv}function my(t){return"number"==typeof t&&Number.isFinite(t)&&t>0}function vy(t){return t&&"resource"===t.entryType&&t.transferSize>0&&t.duration>0&&t.responseEnd>=t.requestStart}function gy(t){return Array.isArray(t)&&0!==t.length?t.reduce(((t,e)=>t+e),0)/t.length:NaN}pe=Ag;var yy=new WeakMap,by=new WeakMap,ky=new WeakMap,wy=new WeakMap,xy=new WeakSet;class _y extends md{get name(){return"DownloadSpeedGuesstimator"}get defaults(){return{persistentStorage:{key:"ekoDownloadSpeedKbps",ttl:-1},priorities:[["resourceTiming","downlink","persistentValue"],["resourceTiming","downlink"],["resourceTiming","persistentValue","ua"],["resourceTiming","ua","defaultKbps"],["downlink","persistentValue"],["downlink"],["persistentValue"],["connectionType"],["ua"],["defaultKbps"]],defaultKbps:2500,connectionType:{"slow-2g":50,"2g":70,"3g":700,"4g":3500,bluetooth:750,cellular:750,ethernet:3500,wifi:2500,wimax:2500,none:0},ua:{desktop:2500,ios:2500,android:2500}}}constructor(...t){super(...t),U(this,xy),W(this,yy,void 0),W(this,by,void 0),W(this,ky,void 0),W(this,wy,void 0),j(yy,this,!!(yd&&yd.navigator&&yd.navigator.connection)),j(by,this,!(!yd||!yd.performance||"function"!=typeof yd.performance.getEntriesByType)),j(ky,this,L(xy,this,Iy).call(this)),j(wy,this,L(xy,this,My).call(this))}guesstimate(){const t=L(xy,this,Oy).call(this);this.log.debug("[guesstimate] Data:",t);const e=L(xy,this,Fy).call(this,t),n=my(e)?e:t.defaultKbps;return L(xy,this,Ey).call(this,n),this.log.info(`[guesstimate] Result: ${n} kbps`),n}update(t){my(t)&&L(xy,this,Ey).call(this,t)}onDispose(){j(ky,this,void 0),j(wy,this,void 0)}}function Ty(){return Math.round(Date.now()/1e3)}function Iy(){try{if(!yd||!yd.localStorage||"function"!=typeof yd.localStorage.getItem)return}catch(t){return}const t=this.settings.persistentStorage.key,e=yd.localStorage.getItem(t);if(e)try{const t=JSON.parse(e),n=this.settings.persistentStorage.ttl,i=L(xy,this,Ty).call(this)-t.timestamp;if("number"==typeof n&&n>=0&&i>n)return null;if(!my(t.value))return;return t.value}catch(t){return}}function Ey(t){if(!my(t))return;try{if(!yd||!yd.localStorage||"function"!=typeof yd.localStorage.setItem)return}catch(t){return}const e=this.settings.persistentStorage.key,n=JSON.stringify({value:t,timestamp:L(xy,this,Ty).call(this)});try{yd.localStorage.setItem(e,n),j(ky,this,t)}catch(t){}}function Sy(){return yd&&yd.performance&&"function"==typeof yd.performance.getEntriesByType?gy(yd.performance.getEntriesByType("resource").filter(vy).map((t=>8*t.transferSize/t.duration))):NaN}function Ay(){if(!yd||!yd.navigator||!yd.navigator.connection)return NaN;const t=yd.navigator.connection.downlink;return my(t)?1e3*t:NaN}function Ny(){if(!z(yy,this))return NaN;const t=yd.navigator.connection,e=t.effectiveType||t.type,n=this.settings.connectionType||{};return e&&Object.prototype.hasOwnProperty.call(n,e)?n[e]:NaN}function My(){const t=this.settings.ua||{};return Iv()?t.android:Ev()?t.ios:t.desktop}function Fy(t){const e=Array.isArray(this.settings.priorities)?this.settings.priorities:[];for(let n=0;n<e.length;n+=1){const i=e[n];if(!Array.isArray(i)||0===i.length)continue;const r=i.map((e=>t[e])).filter((t=>my(t)));if(r.length===i.length)return this.log.debug("[#selectFromPriorities] Selected from priorities:",i,"with values:",r),gy(r)}return NaN}function Oy(){const t=this.settings.testOverrides||{},e=my(t.resourceTiming)?t.resourceTiming:L(xy,this,Sy).call(this),n=my(t.downlink)?t.downlink:L(xy,this,Ay).call(this),i=my(t.persistentValue)?t.persistentValue:z(ky,this),r=my(t.connectionType)?t.connectionType:L(xy,this,Ny).call(this),o=my(t.ua)?t.ua:z(wy,this);return{defaultKbps:this.settings.defaultKbps,resourceTiming:e,downlink:n,connectionType:r,persistentValue:i,ua:o}}const Cy=new cd;function Py(t){return"string"!=typeof t||0===t.length?[]:t.split(".").filter((t=>t.length>0))}function Dy(t){if("string"!=typeof t)return!1;if(0===t.length)return!1;const e=Number(t);return Number.isInteger(e)&&String(e)===t}function Ry(t){return null!==t&&"object"==typeof t}function Ly(t,e,n){const i=Py(e);if(0===i.length)return void 0===t?n:t;let r=t;for(let t=0;t<i.length;t+=1){if(null==r)return n;if(r=r[i[t]],void 0===r)return n}return void 0===r?n:r}function By(t,e,n){if(!Ry(t))return t;const i=Py(e);if(0===i.length)return t;let r=t;for(let t=0;t<i.length;t+=1){const e=i[t];if(t===i.length-1){r[e]=n;break}Ry(r[e])||(r[e]=Dy(i[t+1])?[]:{}),r=r[e]}return t}const zy={get:(t,e)=>yd&&yd.eko?Ly(yd.eko,t,e):e,set(t,e){if(yd)return yd.eko&&"object"==typeof yd.eko||(yd.eko={}),By(yd.eko,t,e),yd.eko}},Wy=yd&&yd.performance,jy=Wy&&"function"==typeof Wy.now?()=>Wy.now():()=>Date.now();function Uy(){return"undefined"==typeof AbortController?null:new AbortController}function $y(){const t=new Error("The operation was aborted");return t.name="AbortError",t.code="ABORT_ERR",t}function qy(t,e){return!(!e||!e.aborted)||!!t&&("AbortError"===t.name||"ABORT_ERR"===t.code||20===t.code)}const Vy=2,Gy=100,Hy=2,Ky="runtime.downloadSpeedSamples",Xy=ld("download","warn");function Yy(t){return new Promise((e=>{setTimeout(e,t)}))}function Qy(t){return t>=500}function Jy(t){if(!t||!t.headers||"function"!=typeof t.headers.get)return 0;const e=t.headers.get("content-length");if(!e)return 0;const n=Number(e);return Number.isNaN(n)||n<0?0:n}function Zy(t,e,n,i,r,o){const s={bytes:t,durationMs:e,kbps:e>0?8*t/e:0,startTime:n,endTime:i,url:o};try{let t=zy.get(r);t||(t=[],zy.set(r,t)),t.push(s)}catch(t){}return s}async function tb(t,e={}){const{method:n="GET",headers:i,body:r,retries:o=Vy,retryDelay:s=Gy,backoffFactor:a=Hy,samplesTargetPath:l=Ky,fetch:c,loglevel:u="warn",cache:d,signal:h,onProgress:f,returnType:p="default"}=e;Xy.setLevel(u);const m=function(t){if(t)return t;if(yd&&"function"==typeof yd.fetch)return yd.fetch.bind(yd);throw new Error("fetch is not available in this environment")}(c);let v=0,g=s;for(;;){if(h&&h.aborted)throw $y();const e=jy();try{const s=await m(t,{method:n,headers:i,body:r,cache:d,mode:"cors",signal:h});if(h&&h.aborted)throw $y();if(!s.ok){if(v<o&&Qy(s.status)){v+=1,Xy.warn(`[${t}] Download attempt #${v} failed with status ${s.status}, retrying in ${g}ms...`),await Yy(g),g*=a;continue}Xy.error(`[${t}] Download attempt #${v} failed with status ${s.status}, no more retries.`);const e=new Error(`Download failed with status ${s.status}`);throw e.status=s.status,e}let c=jy();const u=Jy(s),y="arrayBuffer"===p||"bytes"===p,b=y&&"function"==typeof f;let k,w,x,_,T,I=0;if(y&&s.body&&"function"==typeof s.body.getReader&&b){const t=s.body.getReader(),e=[];for(;;){if(h&&h.aborted)throw $y();const{done:n,value:i}=await t.read();if(n)break;if(i&&i.length){const t=jy();Number.isFinite(_)||(_=t),T=t,e.push(i),I+=i.length,f({loaded:I,total:u||void 0,chunk:i})}}k=new Uint8Array(I);let n=0;e.forEach((t=>{k.set(t,n),n+=t.length})),c=jy()}else if(y){const t=await s.arrayBuffer();k=new Uint8Array(t),I=k.length,c=jy()}else"text"===p?(w=await s.text(),c=jy()):"json"===p&&(x=await s.json(),c=jy());if(h&&h.aborted)throw $y();const E=y?k?k.length:I:("text"===p&&"string"==typeof w?w.length:0)||("json"===p&&x?JSON.stringify(x).length:0),S=u||E||0;let A=e,N=c;Number.isFinite(_)&&(A=_,Number.isFinite(T)&&(N=Math.max(T,c))),(!Number.isFinite(A)||!Number.isFinite(N)||N<A)&&(A=e,N=c);const M=Math.max(0,N-A),F=Zy(S,M,A,N,l,t);try{Cy.trigger("download:sample",F)}catch(t){}const O={response:s,bytes:S,durationMs:M,kbps:F.kbps,startTime:F.startTime,endTime:F.endTime};if("default"===p)return O;if("arrayBuffer"===p||"bytes"===p){const t=k||new Uint8Array(await s.arrayBuffer());return"arrayBuffer"===p?t.buffer:t}return"text"===p?w:"json"===p?x:O}catch(e){if(qy(e,h))throw"AbortError"===e.name?e:$y();if(!(v<o)||e.status&&!Qy(e.status))throw Xy.error(`[${t}] Download attempt #${v} failed with error ${e}, no more retries.`),e;v+=1,Xy.warn(`[${t}] Download attempt #${v} failed with error ${e}, retrying in ${g}ms...`),await Yy(g),g*=a}}}const eb={disabledTracks:{default:["audio"],targetPaths:["NodeRepository.disabledTracks"]},muted:{default:!1,targetPaths:["AudioPlaybackManager.muted"]},volume:{default:1,targetPaths:["AudioPlaybackManager.volume"]},encodeProfile:{default:null,targetPaths:["AssetsDeliveryService.profile"]},forceVideoCodec:{default:void 0,targetPaths:["NodeRepository.forceVideoCodec"]},forceImageFallback:{default:!1,targetPaths:["NodeRepository.forceImageFallback"]},mediaHostRewriteMap:{default:{"storageeko.s3.amazonaws.com":"https://storage.eko.com","studioz-post.s3.amazonaws.com":"https://studioz-post.eko.com"},targetPaths:["NodeRepository.mediaHostRewriteMap"]},playbackRate:{default:1,targetPaths:["PlaybackClock.playbackRate"]},initialKbps:{default:"auto",targetPaths:["DownloadSpeed.initialKbps"]},defaultRenderParams:{default:void 0,targetPaths:["Renderer.defaultRenderParams"]},maxBufferedVideoFrames:{default:24,targetPaths:["Timeline.maxBufferedVideoFrames"]},waitingBufferAheadSeconds:{default:3,targetPaths:["Timeline.waitingBufferAheadSeconds"]},abrStrategy:{default:"auto",targetPaths:["ABRSelector.abrStrategy"]},segmentEvictionEnabled:{default:!0,targetPaths:["SegmentEvictionCoordinator.enabled"]},segmentEvictionBufferBehindSeconds:{default:30,targetPaths:["SegmentEvictionCoordinator.bufferBehindSeconds"]},segmentEvictionBufferAheadSeconds:{default:30,targetPaths:["SegmentEvictionCoordinator.bufferAheadSeconds"]},segmentEvictionMaxRetainedBytes:{default:52428800,targetPaths:["SegmentEvictionCoordinator.maxRetainedBytes"]},autoplay:{default:!0,targetPaths:["Idle.autoplay"]},autoPauseOnVisibilityChange:{default:!0,targetPaths:["DocumentVisibility.autoPauseOnVisibilityChange"]},autoResumeOnVisibilityChange:{default:!0,targetPaths:["DocumentVisibility.autoResumeOnVisibilityChange"]},trackingEnabled:{default:!0,targetPaths:["Tracker.trackingEnabled"]}},nb=Object.freeze(Object.entries(eb).reduce(((t,[e,n])=>(Object.prototype.hasOwnProperty.call(n,"default")&&(t[e]=n.default),t)),{})),ib=ld("config","warn");function rb(t){return nb[t]}var ob=new WeakMap,sb=new WeakMap,ab=new WeakMap,lb=new WeakMap,cb=new WeakMap,ub=new WeakSet;class db extends md{get name(){return"DownloadSpeed"}get defaults(){return{alpha:.3,maxSamples:30,minBytesPerSample:1024,minDurationMs:5,maxSampleKbpsCap:void 0,ignoreCacheHits:!0,samplesPath:"runtime.downloadSpeedSamples",initialKbps:rb("initialKbps"),probeUrl:void 0,defaultKbps:2500}}constructor(...t){super(...t),U(this,ub),W(this,ob,void 0),W(this,sb,void 0),W(this,ab,void 0),W(this,lb,void 0),W(this,cb,void 0),j(ab,this,[]),j(sb,this,0),j(ob,this,L(ub,this,pb).call(this)),j(cb,this,Uy()),j(lb,this,(t=>{L(ub,this,kb).call(this,t,"event")})),L(ub,this,mb).call(this),Cy.on("download:sample",z(lb,this)),L(ub,this,vb).call(this),this.log.debug(`[#constructor] Initial estimate: ${z(ob,this)} kbps`)}getKbps(){return z(ob,this)}addSample(t){L(ub,this,kb).call(this,t,"manual")}reset(){j(ab,this,[]),j(sb,this,0),j(ob,this,L(ub,this,pb).call(this))}onDispose(){z(cb,this)&&z(cb,this).abort(),j(cb,this,null),Cy.off("download:sample",z(lb,this)),j(ab,this,[]),j(sb,this,0),j(ob,this,void 0),j(lb,this,null)}}function hb(t,e){return!!(this.settings.ignoreCacheHits&&(0===e||t&&"boolean"==typeof t.cached&&t.cached||t&&"number"==typeof t.transferSize&&"number"==typeof t.encodedBodySize&&t.transferSize<=t.encodedBodySize))}function fb(t){if(!t||"object"!=typeof t)return null;const e=Number(t.bytes),n=Number(t.durationMs);let i=my(t.kbps)?Number(t.kbps):NaN;return!my(i)&&n>0&&my(e)&&(i=8*e/n),my(i)?e<=this.settings.minBytesPerSample||n<=this.settings.minDurationMs||L(ub,this,hb).call(this,t,e)?null:(my(this.settings.maxSampleKbpsCap)&&i>this.settings.maxSampleKbpsCap&&(i=this.settings.maxSampleKbpsCap),{...t,bytes:e,durationMs:n,kbps:i}):null}function pb(){const t=this.settings.initialKbps;if(my(t))return t;if("auto"===t)try{const t=(new _y).guesstimate();if(my(t))return t}catch(t){}return this.settings.defaultKbps}function mb(){const t=zy.get(this.settings.samplesPath,[]);if(!Array.isArray(t)||0===t.length)return;const e=t.slice(-this.settings.maxSamples);for(let t=0;t<e.length;t+=1)L(ub,this,kb).call(this,e[t],"replay",{emit:!1})}async function vb(){if(!this.settings.probeUrl||z(sb,this)>0)return;const t=z(cb,this)?z(cb,this).signal:void 0;if(!t||!t.aborted)try{await tb(this.settings.probeUrl,{cache:"no-store",samplesTargetPath:this.settings.samplesPath,signal:t})}catch(t){}}function gb(t){return"number"==typeof t.startTime&&"number"==typeof t.endTime&&Number.isFinite(t.startTime)&&Number.isFinite(t.endTime)&&t.startTime>=0&&t.endTime>t.startTime}function yb(t,e){if(!L(ub,this,gb).call(this,t)||!L(ub,this,gb).call(this,e))return 0;const n=Math.max(t.startTime,e.startTime);return Math.min(t.endTime,e.endTime)-n}function bb(t){if(!L(ub,this,gb).call(this,t))return t;const e=[];for(let n=0;n<z(ab,this).length;n+=1){const i=z(ab,this)[n];L(ub,this,gb).call(this,i)&&(L(ub,this,yb).call(this,t,i)>0&&e.push(i))}if(0===e.length)return t;j(ab,this,z(ab,this).filter((t=>!e.includes(t))));const n=[t,...e],i=n.reduce(((t,e)=>t+(e.bytes||0)),0),r=Math.min(...n.map((t=>t.startTime))),o=Math.max(...n.map((t=>t.endTime))),s=o-r;if(!my(i)||s<=0)return t;const a={bytes:i,durationMs:s,kbps:8*i/s,startTime:r,endTime:o,url:t.url||e[e.length-1].url};return L(ub,this,fb).call(this,a)}function kb(t,e,{emit:n=!0}={}){const i=L(ub,this,fb).call(this,t);if(!i)return;const r=L(ub,this,bb).call(this,i);if(!r)return;j(sb,this,z(sb,this)+1),z(ab,this).push(r),z(ab,this).length>this.settings.maxSamples&&z(ab,this).shift();const o=this.defaults.alpha,s="number"==typeof this.settings.alpha?this.settings.alpha:o,a=my(z(ob,this)),l=a?z(ob,this):r.kbps,c=a||1!==z(sb,this)?s*r.kbps+(1-s)*l:r.kbps;j(ob,this,c),this.log.debug(`[#ingestSample] Next estimate: ${c} kbps`),n&&this.trigger("download:speed",{kbps:z(ob,this),sample:r,source:e,samplesCount:z(sb,this)})}class wb{constructor(t={}){const{id:e,url:n,uri:i,mime:r,codecs:o,bandwidth:s,timescale:a,sizeBytes:l,...c}=t;if(!e)throw new Error("Representation requires id");const u=n||i;if(!u)throw new Error("Representation requires url or uri");this.id=e,this.url=u,this.mime=r,this.codecs=o,this.baseCodec=function(t=""){if(!t||"string"!=typeof t)return;const e=t.split(",")[0].trim();if(!e)return;const n=e.match(/^[a-z0-9]+/i);return n?n[0].toLowerCase():void 0}(o),my(s)&&(this.bandwidth=s),my(a)&&(this.timescale=a),my(l)&&(this.sizeBytes=l),Object.assign(this,c)}}class xb{#F=new Map;#O;#C;#P=0;#D;constructor(t={}){const{id:e,offset:n=0,duration:i=0,isInit:r=!1,representations:o=[]}=t;if(!e)throw new Error("Segment requires id");o.forEach((t=>{if(!t||!t.url&&!t.uri)throw new Error("Segment representation must include uri or url")})),this.id=e,this.offset=n,this.duration=i,this.isInit=!!r,this.originalRepresentations=o.map((t=>t instanceof wb?t:new wb(t))),this.representations=this.originalRepresentations.map((t=>t)),this.appliedFilters=[],this.loadAttempts=0,this.loadError=void 0}setRepresentationBuffer(t,e){t&&e&&this.#F.set(t,e)}setDownloadProgress(t,e){const n=Number(t);Number.isFinite(n)&&n>=0&&(this.#P=Math.max(this.#P,n));const i=Number(e);Number.isFinite(i)&&i>0&&(this.#D=i)}setChosenRepresentation(t){this.#O=t;const e=null==t?void 0:t.id;if(!(this.isInit||!e||this.#F.size<=1))for(const t of this.#F.keys())t!==e&&this.#F.delete(t)}setABRDecisionSnapshot(t){if(!t||"object"!=typeof t)return void(this.#C=void 0);const e={...t};Array.isArray(t.availableRepresentations)&&(e.availableRepresentations=t.availableRepresentations.map((t=>({...t})))),this.#C=e}markLoadAttempt(){const t=Number(this.loadAttempts);this.loadAttempts=Number.isFinite(t)&&t>0?t+1:1,this.loadError=void 0}setLoadError(t){this.loadError=t||new Error("Segment load failed")}getRepresentationBuffer(t){return this.#F.get(t)}get chosenRepresentation(){return this.#O}get abrDecision(){return this.#C}get arrayBuffer(){return this.#O?this.#F.get(this.#O.id):void 0}get retainedByteLength(){let t=0;for(const e of this.#F.values())e&&"number"==typeof e.byteLength&&(t+=e.byteLength);return t}get bufferedRatio(){var t;const e=my(this.#D)?this.#D:null===(t=this.#O)||void 0===t?void 0:t.sizeBytes;return my(e)?Math.min(1,Math.max(0,this.#P/e)):this.retainedByteLength>0?1:0}get isLoaded(){return this.retainedByteLength>0}evict(){this.#O=void 0,this.#C=void 0,this.#F.clear(),this.#P=0,this.#D=void 0}}class _b{constructor(t={}){const{timestamp:e,name:n,data:i,isSticky:r=!1}=t;this.timestamp="number"==typeof e?e:0,this.name="string"==typeof n?n:"",this.data=i,this.isSticky="boolean"==typeof r&&r}}function Tb(t,e){const n=Number(null==t?void 0:t.offset),i=Number(null==t?void 0:t.duration);if(!e)return{offset:n,duration:i};const r=(null==t?void 0:t.chosenRepresentation)||(Array.isArray(null==t?void 0:t.representations)?t.representations[0]:void 0),o=Number(null==r?void 0:r.segStart),s=Number(null==r?void 0:r.segDuration);return Number.isFinite(o)&&Number.isFinite(s)&&s>0?{offset:o,duration:s}:{offset:n,duration:i}}function Ib(t,e,n={}){if(!Array.isArray(t)||!t.length)return;const i=Number(e);if(!Number.isFinite(i))return;const r=!!n.preferRepresentationTime;let o,s,a=-1/0;for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||n.isInit)continue;o||(o=n);const l=Tb(n,r);if(!Number.isFinite(l.offset))continue;const c=Number(l.duration);if(Number.isFinite(c)&&c>0&&i>=l.offset&&i<l.offset+c)return n;l.offset<=i&&l.offset>a&&(a=l.offset,s=n)}return s||o}const Eb=new Set(["video","audio","image","cue","data","bbox"]);class Sb{constructor(t={}){const{id:e,type:n,offset:i=0,duration:r,source:o,segments:s=[],cues:a=[]}=t;if(!e)throw new Error("Track requires id");if(!Eb.has(n))throw new Error(`Track type must be one of ${Array.from(Eb).join("|")}`);this.id=e,this.type=n,this.offset=i,this.duration=my(r)?r:void 0,this.source=o,"cue"===n?(this._cues=a.map((t=>t instanceof _b?t:new _b(t))),this._segments=[]):(this._segments=s.map((t=>t instanceof xb?t:new xb(t))),this._cues=void 0)}get segments(){return this._segments.slice()}get cues(){if("cue"===this.type)return this._cues.slice()}get endTime(){if(my(this.duration))return this.offset+this.duration;if(!this._segments.length)return;const t=this._segments.reduce(((t,e)=>{const n=my(e.duration)?e.duration:0;return Math.max(t,e.offset+n)}),this.offset);return t}get buffered(){const t=this._segments.map((t=>({duration:my(null==t?void 0:t.duration)?t.duration:0,offset:my(null==t?void 0:t.offset)?t.offset:0,ratio:t&&!t.isInit&&"number"==typeof t.bufferedRatio?t.bufferedRatio:0}))).filter((t=>t.duration>0&&t.ratio>0));if(!t.length)return;const e=t.reduce(((t,e)=>Math.min(t,e.offset)),1/0),n=t.reduce(((t,e)=>{const n=e.offset+e.duration*Math.min(1,e.ratio);return Math.max(t,n)}),0);return!Number.isFinite(e)||!Number.isFinite(n)||n<=e?void 0:{start:e,end:n}}getMediaSegmentAtTime(t,e={}){return Ib(this._segments,t,e)}setSegments(t=[]){if("cue"===this.type)return;const e=Array.isArray(t)?t:[];this._segments=e.map((t=>t instanceof xb?t:new xb(t)))}}function Ab(t){return"string"==typeof t?t:t&&"object"==typeof t?t.nodeId||t.nodeIdOrRef||t.id:void 0}function Nb(t){const e=Ab(t);let n=1;if(t&&"object"==typeof t&&my(t.weight)&&(n=t.weight),!e)throw new Error("Child entry requires a nodeId");return{nodeId:e,weight:n}}function Mb(t){return(Array.isArray(t)?t:[]).map((t=>Nb(t)))}function Fb(t,e=void 0){if("string"==typeof t){const e=t.match(/\d+\.?\d*/);if(e){const t=Number(e[0]);if(Number.isFinite(t))return t}}else if("number"==typeof t&&Number.isFinite(t))return t;return e}function Ob(t,e){if(t){if(t.includes("$Number%")){const n=t.match(/\$Number%0(\d+)d\$/);if(n){const i=Number(n[1]),r=String(e).padStart(i,"0");return t.replace(/\$Number%0\d+d\$/,r)}}return t.replace(/\$Number\$/g,String(e))}}function Cb(t,e){if(e)try{var n;return new URL(e,t||(null==yd||null===(n=yd.location)||void 0===n?void 0:n.href)||void 0).toString()}catch(t){return e}}const Pb=new Map;class Db{static register(t,e){if(!t||"function"!=typeof e)throw new Error("ManifestFactory.register requires type and parser function");Pb.set(t,e)}static inferType(t={}){const{typeHint:e,url:n,mimeType:i,body:r}=t;return e||function(t=""){const e=function(t=""){return t&&"string"==typeof t?t.split("#")[0].split("?")[0].toLowerCase():""}(t);return e.endsWith(".mpd")?"dash":e.endsWith(".ivd")?"ivd":e.endsWith(".jpg")||e.endsWith(".jpeg")||e.endsWith(".png")||e.endsWith(".webp")||e.endsWith(".gif")||e.endsWith(".avif")?"image":void 0}(n||"")||function(t=""){const e=t.toLowerCase();return e.includes("dash")||e.includes("mpd")||e.includes("xml")?"dash":e.includes("ivd")||e.includes("json")?"ivd":e.includes("image/")?"image":void 0}(i||"")||function(t=""){const e="string"==typeof t?t.trim():"";if(e.startsWith("<")&&e.includes("<MPD"))return"dash";if(e.startsWith("{"))try{const t=JSON.parse(e);if(t&&"object"==typeof t)return"ivd"}catch(t){return}}(r||"")}static parse(t={}){const e=Db.inferType(t);if(!e||!Pb.has(e))throw new Error("Unsupported manifest type");return Pb.get(e)(t)}}Db.register("dash",(function(t={}){const{body:e,url:n}=t,i=function(){if(yd&&"function"==typeof yd.DOMParser)return new yd.DOMParser;throw new Error("DOMParser is not available in this environment")}().parseFromString(e||"","application/xml"),r=i.getElementsByTagName("MPD")[0];if(!r)throw new Error("Invalid MPD");const o=i.getElementsByTagName("Period")[0],s=o?Array.from(o.getElementsByTagName("AdaptationSet")):[],a=[];let l=Fb(r.getAttribute("mediaPresentationDuration"));l=Number.isFinite(l)?l:void 0,s.forEach(((t,e)=>{const i=t.getAttribute("mimeType")||"",r=function(t=""){const e=t.toLowerCase();return e.includes("video")?"video":e.includes("audio")?"audio":e.includes("image")?"image":"data"}(i),o=t.getAttribute("id")||`${r}-${e+1}`,s=t.getElementsByTagName("SegmentTemplate")[0],c=Array.from(t.getElementsByTagName("Representation")).map((t=>function(t,e,n){const i=t.getAttribute("id")||t.getAttribute("representationId")||"",r=Fb(t.getAttribute("bandwidth")),o=t.getAttribute("codecs"),s=t.getAttribute("mimeType")||e&&e.getAttribute("mimeType")||n,a=t.getElementsByTagName("SegmentTemplate")[0]||e;return{repId:i,bandwidth:r,codecs:o,mime:s,media:a?a.getAttribute("media"):void 0,initialization:a?a.getAttribute("initialization"):void 0,timescale:Fb(a&&a.getAttribute("timescale"))||Fb(e&&e.getAttribute("timescale"),1)||1,startNumber:Fb(a&&a.getAttribute("startNumber"))||Fb(e&&e.getAttribute("startNumber"),1)||1,timeline:function(t){const e=[],n=t.getElementsByTagName("SegmentTimeline")[0];if(!n)return e;const i=Array.from(n.getElementsByTagName("S"));let r=0;for(let t=0;t<i.length;t+=1){const n=i[t],o=Fb(n.getAttribute("t")),s=Fb(n.getAttribute("d")),a=Fb(n.getAttribute("r"),0);if(!my(s))continue;my(o)&&(r=o);const l=a>=0?a:0;for(let t=0;t<=l;t+=1)e.push({start:r,duration:s}),r+=s}return e}(a)}}(t,s,i))),u=c.map((t=>({id:t.repId,url:Cb(n,Ob(t.initialization,t.startNumber)),bandwidth:t.bandwidth,mime:t.mime,codecs:t.codecs,timescale:t.timescale}))).filter((t=>t.url)),d=c.reduce(((t,e)=>{const n=Array.isArray(null==t?void 0:t.timeline)?t.timeline.length:0;return(Array.isArray(null==e?void 0:e.timeline)?e.timeline.length:0)>n?e:t}),c[0]),h=Array.isArray(null==d?void 0:d.timeline)?d.timeline:[],f=h.length,p=[],m=(null==d?void 0:d.timescale)||1;u.length>0&&p.push({id:`init-${o}`,offset:0,duration:0,isInit:!0,representations:u});for(let t=0;t<f;t+=1){const e=h[t];if(!e)continue;const i=c.map((e=>{const i=e.startNumber+t,r=e.timescale||m,o=Array.isArray(e.timeline)?e.timeline[t]:void 0;if(!o)return null;const s=o.start,a=o.duration;return{id:e.repId,url:Cb(n,Ob(e.media,i)),bandwidth:e.bandwidth,mime:e.mime,codecs:e.codecs,timescale:e.timescale,segIndex:t,segStart:s/r,segDuration:a/r}})).filter(Boolean);i.length&&p.push({id:`${o}-seg-${t+1}`,offset:e.start/m,duration:e.duration/m,isInit:!1,representations:i})}a.push({id:o,type:r,offset:0,duration:l,segments:p})}));const c=a[0]?a[0].id:void 0;return{id:n||r.getAttribute("id")||"mpd",mainTrackId:c,tracks:a,duration:l}})),Db.register("ivd",(function(t={}){var e;const{body:n,url:i}=t;let r;try{r="string"==typeof n?JSON.parse(n):n}catch(t){throw new Error("Invalid IVD manifest")}if(!r||"object"!=typeof r)throw new Error("Invalid IVD manifest");const o=Array.isArray(r.representations)?r.representations:[],s=new Map;o.forEach(((t,e)=>{const n=function(t){const e=(t.mimeType||"").toLowerCase();return e.includes("video")?"video":e.includes("audio")?"audio":"data"}(t),i=Number.isInteger(t.altIndex)?t.altIndex:0,r=`${n}-${i}`,o=(l=e,{id:`${(a=t).format||"unknownformat"}-${a.altIndex||0}-${a.label||l+1}`,url:a.url,mime:a.mimeType,codecs:a.codecs,bandwidth:a.bandwidth||a.audioBandwidth||a.videoBandwidth,sizeBytes:a.contentLength,duration:my(a.duration)?a.duration:void 0,segIndex:Number.isInteger(a.segIndex)&&a.segIndex>=0?a.segIndex:0});var a,l;s.has(r)||s.set(r,{type:n,altIndex:i,reps:[]}),s.get(r).reps.push(o)}));const a=Array.from(s.values()).map(((t,e)=>{const n=new Map;t.reps.forEach((t=>{const e=Number.isInteger(t.segIndex)?t.segIndex:0;n.has(e)||n.set(e,[]),n.get(e).push(t)}));const i=Array.from(n.keys()).sort(((t,e)=>t-e));let o=0;const s=i.map((i=>{var r;const s=n.get(i)||[],a=(null===(r=s.find((t=>my(t.duration))))||void 0===r?void 0:r.duration)||0,l={id:`${t.type}-${t.altIndex}-${e+1}-seg-${i+1}`,offset:o,duration:a,isInit:!1,representations:s.map((t=>{const{duration:e,segIndex:n,...i}=t;return i}))};return o+=a,l})),a=s.reduce(((t,e)=>t+(my(e.duration)?e.duration:0)),0),l=my(r.duration)?r.duration:a||void 0;return{id:`${t.type}-${t.altIndex}-${e+1}`,type:t.type,offset:0,duration:l,segments:s}})),l=r.mainTrackId||(null===(e=a.find((t=>"video"===t.type)))||void 0===e?void 0:e.id)||a[0]&&a[0].id,c=a.find((t=>t.id===l)),u=(null==c?void 0:c.duration)||void 0;return{id:r.id||i||"ivd",metadata:r.metadata||{},mainTrackId:l,tracks:a,duration:u}})),Db.register("image",(function(t={}){const e=null==t?void 0:t.url;if(!e||"string"!=typeof e)throw new Error("ImageParser requires url");const n=my(null==t?void 0:t.duration)?t.duration:30,i=my(null==t?void 0:t.width)?t.width:void 0,r=my(null==t?void 0:t.height)?t.height:void 0,o={id:"image-1",url:e,mime:"string"==typeof(null==t?void 0:t.mimeType)?t.mimeType:void 0};my(i)&&my(r)&&(o.width=i,o.height=r);const s="image-1";return{id:e,metadata:{},mainTrackId:s,tracks:[{id:s,type:"image",offset:0,duration:n,segments:[{id:"image-1-seg-1",offset:0,duration:n,isInit:!1,representations:[o]}]}],duration:n}}));const Rb=["video/mp4"];function Lb(t){return Rb.includes(t.mime)}var Bb={name:"containers",fn:function(t=[]){return t.filter(Lb)},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}};const zb=new(me=new WeakMap,ve=new WeakSet,class extends md{get name(){return"MediaCapabilities"}get defaults(){return{enabled:!0,smoothWeight:10,powerWeight:10,ignoreSmooth:!1,ignorePower:!0,codecBonus:{av01:.2,hvc1:.15,hev1:.15,vp09:.1,avc1:0}}}constructor(...t){super(...t),U(this,ve),W(this,me,void 0),j(me,this,new Map)}onDispose(){z(me,this)&&z(me,this).clear()}async sortRepsCodecs(t=[]){if(!Array.isArray(t)||0===t.length)return[];const e=[],n=new Set;let i=0;t.forEach((t=>{const r=null==t?void 0:t.baseCodec;r&&!n.has(r)&&(n.add(r),e.push({codec:r,rep:t,index:i}),i+=1)}));const r=(await Promise.all(e.map((async t=>{const{score:e}=await L(ve,this,qb).call(this,t.rep);return{...t,score:e}})))).sort(((t,e)=>{const n=e.score-t.score;return 0!==n?n:t.index-e.index}));return this.log.info("[sortRepsCodecs] Sorted entries:",r),r.map((t=>t.codec))}});function Wb(){return!!(yd&&yd.navigator&&yd.navigator.mediaCapabilities&&"function"==typeof yd.navigator.mediaCapabilities.decodingInfo)}function jb(t){if(!t||"object"!=typeof t)return void this.log.debug("[#buildConfig] Invalid representation:",t);const e=t.mime||t.mimeType||"",n=function(t="",e=""){const n=t||"",i=e||"";return i?`${n}; codecs="${i}"`:n}(e,t.codecs||"");return function(t=""){return t.toLowerCase().includes("video")}(e)?(this.log.debug("[#buildConfig] Building video config for:",t),{type:"file",video:{contentType:n,width:t.width||1920,height:t.height||1080,bitrate:t.videoBandwidth||t.bandwidth||0,framerate:t.framerate||t.frameRate||24}}):function(t=""){return t.toLowerCase().includes("audio")}(e)?(this.log.debug("[#buildConfig] Building audio config for:",t),{type:"file",audio:{contentType:n,channels:t.channels||2,bitrate:t.audioBandwidth||t.bandwidth||0,samplerate:t.audioSamplingRate||48e3}}):void this.log.debug("[#buildConfig] Unknown mime type:",e)}function Ub(t){return t?JSON.stringify(t):"invalid"}async function $b(t){if(!this.settings.enabled||!L(ve,this,Wb).call(this)||!t)return this.log.debug("[#queryCapabilities] Not supported, returning false",t),{supported:!1,smooth:!1,powerEfficient:!1};const e=L(ve,this,Ub).call(this,t),n=z(me,this).get(e);if(n)return n;let i;try{i=await yd.navigator.mediaCapabilities.decodingInfo(t)}catch(t){i={supported:!1,smooth:!1,powerEfficient:!1}}return this.log.debug("[#queryCapabilities] Config:",t,"\nDecoding info result:",i),z(me,this).set(e,i),i}async function qb(t){if(L(ve,this,Gb).call(this,t))return this.log.debug("[#scoreRepresentation] Blocking HEVC on Firefox versions below support threshold",null==t?void 0:t.codecs),{score:-1e3,capability:{supported:!1,smooth:!1,powerEfficient:!1}};const e=L(ve,this,jb).call(this,t),n=await L(ve,this,$b).call(this,e),i=function(t="",e={}){const n=(t||"").toLowerCase();return Object.keys(e).reduce(((t,i)=>n.includes(i.toLowerCase())?e[i]:t),0)}(t.codecs||"",this.settings.codecBonus);let r=0;return n.supported&&(r+=1),!this.settings.ignoreSmooth&&n.smooth&&(r+=this.settings.smoothWeight),!this.settings.ignorePower&&n.powerEfficient&&(r+=this.settings.powerWeight),r+=i,{score:r,capability:n}}function Vb(){if(!Nv())return!1;const t=Mv();return!Number.isFinite(t)||t<150}function Gb(t){if(!L(ve,this,Vb).call(this))return!1;const e=function(t=""){const e=String(t||"").toLowerCase(),[n]=e.split(".");return n||""}((null==t?void 0:t.baseCodec)||(null==t?void 0:t.codecs)||"");return"hvc1"===e||"hev1"===e}const Hb=[],Kb=()=>!0;[Bb,{name:"force-video-codec",fn:function(t=[],{node:e}={}){const n=function(t){if("string"!=typeof t)return;const e=t.split(",")[0].trim();if(!e)return;const n=e.match(/^[a-z0-9]+/i);return n?n[0].toLowerCase():void 0}(null==e?void 0:e.forceVideoCodec);if(!n)return t;const i=t.filter((t=>(null==t?void 0:t.baseCodec)===n));return i.length?i:t},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}},{name:"media-capabilities",fn:async function(t=[],{track:e}){if(null==e||!e.preferredCodec){const n=await zb.sortRepsCodecs(t);if(!Array.isArray(n)||0===n.length)return t;e.preferredCodec=n[0]}return t.filter((t=>(null==t?void 0:t.baseCodec)===e.preferredCodec))},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}}].forEach((({name:t,fn:e,isRelevantForTrack:n})=>{!function(t,e,{isRelevantForTrack:n}={}){if(!t||"function"!=typeof e)throw new Error("registerRepresentationFilter requires a name and function");const i="function"==typeof n?n:Kb;Hb.push({name:t,fn:e,isRelevantForTrack:i})}(t,e,{isRelevantForTrack:n})}));const Xb=ld("Node","warn"),Yb={start:0,end:0},Qb=.001;function Jb(t){if(!Array.isArray(t)||!t.length)return;const e=t.map((t=>{const e=Number(null==t?void 0:t.segStart),n=Number(null==t?void 0:t.segDuration);return!Number.isFinite(e)||!Number.isFinite(n)||n<=0?null:{start:e,duration:n}}));if(e.some((t=>!t)))return;const n=e[0];return e.every((t=>Math.abs(t.start-n.start)<=Qb&&Math.abs(t.duration-n.duration)<=Qb))?{offset:n.start,duration:n.duration}:void 0}var Zb=new WeakMap,tk=new WeakMap,ek=new WeakMap,nk=new WeakMap,ik=new WeakMap,rk=new WeakMap,ok=new WeakMap,sk=new WeakMap,ak=new WeakMap,lk=new WeakMap,ck=new WeakSet;class uk extends cd{constructor(t={},e={}){super(),U(this,ck),W(this,Zb,void 0),W(this,tk,void 0),W(this,ek,void 0),W(this,nk,void 0),W(this,ik,void 0),W(this,rk,void 0),W(this,ok,void 0),W(this,sk,void 0),W(this,ak,void 0),W(this,lk,[]);const{id:n,manifestRef:i,duration:r,width:o,height:s,metadata:a={},children:l=[]}=t;if(!n)throw new Error("Node requires id");if(!i)throw new Error("Node requires manifestRef");this.id=n,this.manifestRef=i,this.metadata=a,this.state="pending",this.error=void 0,this.tracks=[],this.mainTrackId=void 0,this.imageFallbackActive=!1,this.disabledTracks=[],this.disabledTrackTypes=Array.isArray(e.disabledTracks)?e.disabledTracks.filter((t=>"string"==typeof t)):[],this.enabledRepFilters=Array.isArray(e.enabledRepFilters)?e.enabledRepFilters:void 0,this.forceVideoCodec="string"==typeof e.forceVideoCodec&&e.forceVideoCodec.trim()?e.forceVideoCodec.trim():void 0,j(ok,this,!0===e.forceImageFallback),j(Zb,this,e.abrSelector),j(tk,this,e.assetsDeliveryService),j(nk,this,my(r)?r:void 0),j(ik,this,my(o)?o:void 0),j(rk,this,my(s)?s:void 0),j(sk,this,e&&"object"==typeof e.mediaHostRewriteMap?e.mediaHostRewriteMap:void 0),j(ak,this,my(e.maxManifestLoadAttempts)?e.maxManifestLoadAttempts:1/0),this.manifestLoadAttempts=0,this.manifestLoadError=void 0,j(lk,this,Mb(l))}setChildren(t){const e=Mb(t);return L(ck,this,Ak).call(this,e,{emit:!0})}addChild(t){const e=Nb(t),n=z(lk,this).slice(),i=n.findIndex((t=>(null==t?void 0:t.nodeId)===e.nodeId));if(i>=0){var r;if((null===(r=n[i])||void 0===r?void 0:r.weight)===e.weight)return this.children;n[i]=e}else n.push(e);return L(ck,this,Ak).call(this,n,{emit:!0})}removeChild(t){const e=Ab(t);if(!e)return this.children;const n=z(lk,this).filter((t=>(null==t?void 0:t.nodeId)!==e));return n.length===z(lk,this).length?this.children:L(ck,this,Ak).call(this,n,{emit:!0})}async load(t={}){const{loadingMode:e="full",signal:n}=t;Xb.info(`[load] [${this.id}] Loading node in '${e}' mode`);try{if(n&&n.aborted)throw $y();"ready"!==this.state&&await this.resolve({signal:n});const t="partial"===e,i=[];this.tracks.forEach((e=>{const n=e.segments||[];if(t){const t=n.find((t=>t.isInit)),r=n.find((t=>!t.isInit));t&&Array.isArray(t.representations)&&!t.isLoaded&&i.push({track:e,segment:t}),r&&Array.isArray(r.representations)&&!r.isLoaded&&i.push({track:e,segment:r})}else n.forEach((t=>{Array.isArray(t.representations)&&!t.isLoaded&&i.push({track:e,segment:t})}))}));const r=i.filter((({segment:t})=>t.isInit)),o=i.filter((({segment:t})=>!t.isInit)),s=o.length?o[0]:void 0,a=r.map((({track:t,segment:e})=>L(ck,this,Tk).call(this,t,e,n))),l=s?L(ck,this,Ik).call(this,s.segment,s.track,n):Promise.resolve();await Promise.all([...a,l]);const c=s?o.slice(1):o;for(const t of c)await L(ck,this,Ik).call(this,t.segment,t.track,n);if(n&&n.aborted)throw $y();return this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:e}),this}catch(t){if(qy(t,n))throw t;throw this.trigger("node:loaderror",{nodeId:this.id,node:this,error:t,loadingMode:e}),t}}async loadMediaSegmentsAtOffset(t,e={}){const n=Number(t);if(Xb.info(`[loadMediaSegmentsAtOffset] [${this.id}] Loading media segments at offset ${n}`),!Number.isFinite(n))return;const{signal:i}=e;if(i&&i.aborted)throw $y();if("ready"!==this.state&&await this.resolve({signal:i}),"ready"!==this.state)return;const r=[],o=[];if(this.tracks.forEach((t=>{const e=(null==t?void 0:t.segments)||[];if(!Array.isArray(e)||!e.length)return;const s=e.find((t=>(null==t?void 0:t.isInit)&&Array.isArray(null==t?void 0:t.representations)));s&&!s.isLoaded&&r.push(L(ck,this,Tk).call(this,t,s,i)),e.forEach((e=>{if(!e||e.isInit||!Array.isArray(e.representations))return;const i=Number(e.offset);Number.isFinite(i)&&Math.abs(i-n)<=Qb&&!e.isLoaded&&o.push({segment:e,track:t})}))})),r.length||o.length){if(await Promise.all(r),o.length&&await Promise.all(o.map((({segment:t,track:e})=>L(ck,this,Ik).call(this,t,e,i)))),i&&i.aborted)throw $y();this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:"segment-offset",offsetSeconds:n})}}async resolve(t={}){const{signal:e,manifestOverride:n}=t;let i=!0;for(;i;){if(i=!1,"ready"===this.state)return this;if("resolving"===this.state)try{return await z(ek,this)}catch(t){if(!qy(t)||e&&e.aborted)throw t;i=!0;continue}if(e&&e.aborted)throw $y();if(this.hasExceededManifestLoadAttempts()){const t=this.manifestLoadError||new Error("Manifest load retry limit reached");throw this.state="failed",this.error=t,t}const t=L(ck,this,gk).call(this);return this.state="resolving",this.error=void 0,j(ek,this,(async()=>{try{const t=await L(ck,this,Ek).call(this,{signal:e,manifestOverride:n});if(e&&e.aborted)throw $y();let i=Db.parse(t);return i=L(ck,this,vk).call(this,i),this.tracks=(i.tracks||[]).map((t=>t instanceof Sb?t:new Sb(t))),this.mainTrackId=i.mainTrackId||this.mainTrackId,this.metadata=i.metadata||this.metadata,L(ck,this,Mk).call(this),L(ck,this,Nk).call(this),await L(ck,this,Sk).call(this),this.state="ready",this}catch(n){if(qy(n,e))throw L(ck,this,yk).call(this,t),n;throw this.state="failed",this.error=n,n}})()),z(ek,this)}return z(ek,this)}evict(){this.tracks.forEach((t=>{(t.segments||[]).forEach((t=>{t.evict()}))}))}get children(){return z(lk,this).slice()}set children(t){this.setChildren(t)}get duration(){if(!this.mainTrackId)return 0;const t=this.tracks.find((t=>t.id===this.mainTrackId));return t?my(t.duration)?t.duration:t.endTime:0}get retainedByteLength(){let t=0;return this.tracks.forEach((e=>{(Array.isArray(e.segments)?e.segments:[]).forEach((e=>{t+=my(e.retainedByteLength)?e.retainedByteLength:0}))})),t}get buffered(){if("ready"!==this.state)return Yb;const t=Array.isArray(this.tracks)?this.tracks.find((t=>(null==t?void 0:t.id)===this.mainTrackId)):void 0,e=this.duration;if(!t||!my(e))return Yb;const n=Array.isArray(this.tracks)?this.tracks.map((t=>{if(!t||void 0===t.buffered)return;const e=t.buffered;return e&&Number.isFinite(e.start)&&Number.isFinite(e.end)?{track:t,range:e}:void 0})).filter(Boolean):[];if(!n.length)return Yb;if(n.length===this.tracks.length&&n.every((({track:t,range:e})=>{const n=t.endTime,i=my(t.offset)?t.offset:0;return Number.isFinite(n)&&e.start<=i&&e.end>=n})))return{start:0,end:e};const i=n.reduce(((t,{range:e})=>Math.min(t,e.end)),1/0);if(!Number.isFinite(i))return Yb;const r=Math.min(i,e);return r>0?{start:0,end:r}:Yb}get isLoaded(){return"ready"===this.state&&(Array.isArray(this.tracks)?this.tracks:[]).flatMap((t=>Array.isArray(null==t?void 0:t.segments)?t.segments:[])).every((t=>t.isLoaded))}hasExceededManifestLoadAttempts(){if(!Number.isFinite(z(ak,this))||z(ak,this)<=0)return!1;if(!this.manifestLoadError)return!1;const t=Number(this.manifestLoadAttempts);return Number.isFinite(t)&&t>=z(ak,this)}}function dk(t){return function(t,e){if(!t||"string"!=typeof t)return t;if(!e||"object"!=typeof e)return t;const n=yd&&"function"==typeof yd.URL?yd.URL:"function"==typeof URL?URL:null;if(!n)return t;let i;try{i=new n(t)}catch(e){return t}const r=function(t,e){const n=null==t?void 0:t.hostname,i=null==t?void 0:t.pathname;if("string"!=typeof n||"string"!=typeof i)return t;if(!/^s3(?:[.-][a-z0-9-]+)?\.amazonaws\.com$/i.test(n))return t;const r=i.split("/").filter(Boolean);if(r.length<2)return t;const o=r[0],s=new e(t.toString());return s.hostname=`${o}.${n}`,s.pathname=`/${r.slice(1).join("/")}`,s}(i,n),o=e[r.hostname]?r:i,s=e[o.hostname];if(!s||"string"!=typeof s)return t;let a;try{a=new n(s)}catch(e){return t}return a.protocol&&a.host?(o.protocol=a.protocol,o.host=a.host,o.toString()):t}(t,z(sk,this))}function hk(){return z(ok,this)||void 0===yd.VideoDecoder}function fk(){return this.manifestRef&&"object"==typeof this.manifestRef&&"assets-delivery-service"===this.manifestRef.type}function pk(t){if(!L(ck,this,fk).call(this))return!1;if(!L(ck,this,hk).call(this))return!1;const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],n=e.find((e=>(null==e?void 0:e.id)===(null==t?void 0:t.mainTrackId)))||e[0];return"image"!==(null==n?void 0:n.type)}function mk(t){const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],n=function(t){const e=Number(null==t?void 0:t.duration);if(Number.isFinite(e)&&e>0)return e;const n=Array.isArray(null==t?void 0:t.segments)?t.segments:[];let i=0;return n.forEach((t=>{if(null!=t&&t.isInit)return;const e=Number(null==t?void 0:t.offset),n=Number(null==t?void 0:t.duration);!Number.isFinite(e)||!Number.isFinite(n)||n<=0||(i=Math.max(i,e+n))})),i>0?i:void 0}(e.find((e=>(null==e?void 0:e.id)===(null==t?void 0:t.mainTrackId)))||e[0]);return my(n)?n:my(z(nk,this))?z(nk,this):void 0}function vk(t){if(this.imageFallbackActive=!1,!L(ck,this,pk).call(this,t))return t;if(!z(tk,this)||"function"!=typeof z(tk,this).resolveImageOne)return t;const e=z(tk,this).resolveImageOne(this.manifestRef),n=L(ck,this,dk).call(this,null==e?void 0:e.url);if(!n)return t;const i={typeHint:"image",url:n,duration:L(ck,this,mk).call(this,t),width:z(ik,this),height:z(rk,this)},r=Db.parse(i);return t&&"object"==typeof t.metadata&&!Array.isArray(t.metadata)&&(r.metadata=t.metadata),this.imageFallbackActive=!0,r}function gk(){return{state:this.state,error:this.error,tracks:this.tracks,mainTrackId:this.mainTrackId,metadata:this.metadata,imageFallbackActive:this.imageFallbackActive,disabledTracks:this.disabledTracks,manifestRef:this.manifestRef,manifestLoadAttempts:this.manifestLoadAttempts,manifestLoadError:this.manifestLoadError}}function yk(t){t&&(this.state=t.state,this.error=t.error,this.tracks=t.tracks,this.mainTrackId=t.mainTrackId,this.metadata=t.metadata,this.imageFallbackActive=t.imageFallbackActive,this.disabledTracks=t.disabledTracks,this.manifestRef=t.manifestRef,this.manifestLoadAttempts=t.manifestLoadAttempts,this.manifestLoadError=t.manifestLoadError)}function bk(){const t=Number(this.manifestLoadAttempts);this.manifestLoadAttempts=Number.isFinite(t)&&t>0?t+1:1,this.manifestLoadError=void 0}function kk(t){this.manifestLoadError=t||new Error("Manifest load failed")}function wk(t){if(!t)return null;const e={loadAttempts:Number(t.loadAttempts),loadError:t.loadError};if("function"==typeof t.markLoadAttempt)return t.markLoadAttempt(),e;const n=Number(t.loadAttempts);return t.loadAttempts=Number.isFinite(n)&&n>0?n+1:1,t.loadError=void 0,e}function xk(t,e){if(!t||!e)return;const n=Number(e.loadAttempts);t.loadAttempts=Number.isFinite(n)&&n>=0?n:0,t.loadError=e.loadError}function _k(t,e){t&&("function"!=typeof t.setLoadError?t.loadError=e||new Error("Segment load failed"):t.setLoadError(e))}async function Tk(t,e,n){const i=L(ck,this,wk).call(this,e);try{const i=e.representations.map((async i=>{const r=L(ck,this,dk).call(this,i.url),o=await tb(r,{returnType:"arrayBuffer",signal:n,onProgress:({loaded:n,total:i,chunk:r})=>{e&&"function"==typeof e.setDownloadProgress&&e.setDownloadProgress(n,i),this.trigger("segment:chunk",{nodeId:this.id,trackId:null==t?void 0:t.id,trackType:null==t?void 0:t.type,segmentId:e.id,isInit:!0,loaded:n,total:i,chunk:r})}}),s=o instanceof ArrayBuffer?o:null==o?void 0:o.arrayBuffer;s&&e.setRepresentationBuffer(i.id,s)}));await Promise.all(i)}catch(t){if(qy(t,n))throw L(ck,this,xk).call(this,e,i),t;throw L(ck,this,_k).call(this,e,t),t}}async function Ik(t,e,n){const i=z(Zb,this),r={representations:t.representations,nodeId:this.id,trackId:null==e?void 0:e.id,segmentId:t.id},o=i&&"function"==typeof i.select?i.select(r):void 0,s=t.representations.find((t=>t.id===o))||t.representations[0];if(!s)return;t&&"function"==typeof t.setABRDecisionSnapshot&&t.setABRDecisionSnapshot(r.abrDecision),t.setChosenRepresentation(s);const a=L(ck,this,wk).call(this,t);try{const i=L(ck,this,dk).call(this,s.url),r=await tb(i,{returnType:"arrayBuffer",signal:n,onProgress:({loaded:n,total:i,chunk:r})=>{t&&"function"==typeof t.setDownloadProgress&&t.setDownloadProgress(n,i),this.trigger("segment:chunk",{nodeId:this.id,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:t.id,isInit:!1,loaded:n,total:i,chunk:r})}}),o=r instanceof ArrayBuffer?r:null==r?void 0:r.arrayBuffer;o&&(t.setRepresentationBuffer(s.id,o),t.setChosenRepresentation(s))}catch(e){if(qy(e,n))throw L(ck,this,xk).call(this,t,a),e;throw L(ck,this,_k).call(this,t,e),e}}async function Ek(t={}){const{signal:e,manifestOverride:n}=t;if(e&&e.aborted)throw $y();L(ck,this,bk).call(this);try{let t=this.manifestRef;if(n&&"object"==typeof n){if(L(ck,this,fk).call(this)&&"string"==typeof n.encodeProfile&&n.encodeProfile&&(this.manifestRef={...this.manifestRef,encodeProfile:n.encodeProfile},t=this.manifestRef),n.ivd)return{typeHint:"ivd",body:n.ivd};if(n.body){const t=L(ck,this,dk).call(this,n.url);return{typeHint:n.typeHint,url:t,mimeType:n.mimeType,body:n.body,duration:z(nk,this),width:z(ik,this),height:z(rk,this)}}"string"==typeof n.url&&n.url&&(t=n)}if(t&&"object"==typeof t&&"assets-delivery-service"===t.type){if(!z(tk,this)||"function"!=typeof z(tk,this).resolveOne)throw new Error("AssetsDeliveryService is required for assets-delivery-service manifestRef");const n=await z(tk,this).resolveOne(t,{signal:e});if(!n)throw new Error("AssetsDeliveryService returned empty result");if("string"==typeof n.encodeProfile&&n.encodeProfile&&(this.manifestRef={...t,encodeProfile:n.encodeProfile}),n.ivd)return{typeHint:"ivd",body:n.ivd};const i=n.typeHint,r=L(ck,this,dk).call(this,n.url),o=n.mimeType,s=n.body;if(r||s||o)return{typeHint:i,url:r,mimeType:o,body:s,duration:z(nk,this),width:z(ik,this),height:z(rk,this)};throw new Error("AssetsDeliveryService returned unsupported manifest shape")}if(t&&"object"==typeof t){const e=L(ck,this,dk).call(this,t.url),n=t.mimeType;if(t.body)return{url:e,mimeType:n,body:"string"==typeof t.body?t.body:JSON.stringify(t.body)}}if("string"==typeof t||t&&"string"==typeof t.url){const n="string"==typeof t?t:t.url,i=L(ck,this,dk).call(this,n),r="object"==typeof t?t.typeHint:void 0,o="object"==typeof t?t.mimeType:void 0;if("image"===Db.inferType({typeHint:r,url:i,mimeType:o})){const e="object"==typeof t&&my(t.duration)?t.duration:z(nk,this);return{typeHint:"image",url:i,mimeType:o,duration:e,width:"object"==typeof t&&my(t.width)?t.width:z(ik,this),height:"object"==typeof t&&my(t.height)?t.height:z(rk,this)}}const s=await tb(i,{returnType:"default",signal:e});return{url:i,body:s&&s.response&&"function"==typeof s.response.text?await s.response.text():void 0,mimeType:(s&&s.response&&s.response.headers&&"function"==typeof s.response.headers.get&&s.response.headers.get("content-type")?s.response.headers.get("content-type"):void 0)||o}}throw new Error("Node manifestRef is invalid or missing")}catch(t){if(qy(t,e))throw t;throw L(ck,this,kk).call(this,t),t}}async function Sk(){const t=Hb.slice().filter((t=>!this.enabledRepFilters||this.enabledRepFilters.includes(t.name)));if(t.length)for(let e=0;e<this.tracks.length;e+=1){const n=this.tracks[e],i=Array.isArray(n.segments)?n.segments:[],r=[];for(let e=0;e<i.length;e+=1){const o=i[e];if(!Array.isArray(o.representations)){r.push(o);continue}o.appliedFilters=o.appliedFilters||[];let s=o.representations;for(let e=0;e<t.length;e+=1){const{name:i,fn:r,isRelevantForTrack:a}=t[e];if(!a(n))continue;const l=await r(s,{segment:o,track:n,node:this});Array.isArray(l)&&(s=l),o.appliedFilters.push(i)}if(o.representations=s,o.representations.length){if(!o.isInit){const t=Jb(o.representations);t&&(o.offset=t.offset,o.duration=t.duration)}r.push(o)}}r.length!==i.length&&n&&"function"==typeof n.setSegments&&n.setSegments(r)}}function Ak(t,{emit:e=!1}={}){return function(t=[],e=[]){if(!Array.isArray(t)||!Array.isArray(e)||t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],r=e[n];if((null==i?void 0:i.nodeId)!==(null==r?void 0:r.nodeId)||(null==i?void 0:i.weight)!==(null==r?void 0:r.weight))return!1}return!0}(z(lk,this),t)||(j(lk,this,t),e&&(n=this)&&"function"==typeof n.trigger&&n.trigger("node:childrenchanged",{nodeId:n.id,node:n,children:Array.isArray(n.children)?n.children:[]})),this.children;var n}function Nk(){var t;const e=Array.isArray(this.disabledTrackTypes)?this.disabledTrackTypes:[];if(!e.length||!Array.isArray(this.tracks)||!this.tracks.length)return void(this.disabledTracks=[]);const n=new Set(e),i=[],r=[];this.tracks.forEach((t=>{t&&n.has(t.type)?r.push(t):t&&i.push(t)})),this.tracks=i,this.disabledTracks=r,this.mainTrackId&&!i.some((t=>t.id===this.mainTrackId))&&(this.mainTrackId=null===(t=i[0])||void 0===t?void 0:t.id)}function Mk(){if(!Array.isArray(this.tracks)||!this.tracks.length)return;const t=this.duration;if(!my(t))return;const e=[new _b({name:"nodestart",timestamp:0,data:{id:this.id},isSticky:!0}),new _b({name:"nodeend",timestamp:t,data:{id:this.id}})],n=new Sb({id:`${this.id}-auto-cue`,type:"cue",cues:e,offset:0,duration:t});this.tracks.push(n)}var Fk=new WeakMap,Ok=new WeakMap,Ck=new WeakMap,Pk=new WeakMap,Dk=new WeakSet;class Rk extends md{constructor(...t){super(...t),U(this,Dk),W(this,Fk,new Map),W(this,Ok,new Map),W(this,Ck,void 0),W(this,Pk,void 0);const[e,n]=t;j(Ck,this,e),j(Pk,this,n)}get name(){return"NodeRepository"}get defaults(){return{enabledRepFilters:["containers","force-video-codec","media-capabilities"],disabledTracks:rb("disabledTracks"),forceVideoCodec:rb("forceVideoCodec"),forceImageFallback:rb("forceImageFallback"),mediaHostRewriteMap:rb("mediaHostRewriteMap"),maxManifestLoadAttempts:3}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"get","list"])}onDispose(){z(Fk,this).forEach(((t,e)=>{const n=z(Ok,this).get(e);n&&t&&"function"==typeof t.off&&t.off(kd.NODE_CHILDREN_CHANGED,n)})),z(Ok,this).clear(),z(Fk,this).clear()}add(t){const e=t instanceof uk?t:new uk(t,{enabledRepFilters:this.settings.enabledRepFilters,disabledTracks:this.settings.disabledTracks,forceVideoCodec:this.settings.forceVideoCodec,forceImageFallback:this.settings.forceImageFallback,mediaHostRewriteMap:this.settings.mediaHostRewriteMap,maxManifestLoadAttempts:this.settings.maxManifestLoadAttempts,abrSelector:z(Ck,this),assetsDeliveryService:z(Pk,this)});if(!e.id)throw new Error("NodeRepository.add requires node with id");if(z(Fk,this).has(e.id))throw new Error(`NodeRepository.add: node with id ${e.id} already exists`);return z(Fk,this).set(e.id,e),L(Dk,this,Lk).call(this,e),this.trigger(kd.NODE_ADD,{node:e}),e}get(t){const e=(null==t?void 0:t.id)||t;if(!e)throw new Error("NodeRepository.get requires node or id");return z(Fk,this).get(e)}list(){return Array.from(z(Fk,this).values())}}function Lk(t){if(!t||"function"!=typeof t.on||!t.id)return;const e=t=>{this.trigger(kd.NODE_CHILDREN_CHANGED,t)};t.on(kd.NODE_CHILDREN_CHANGED,e),z(Ok,this).set(t.id,e)}var Bk=new WeakMap,zk=new WeakMap,Wk=new WeakSet;class jk extends md{constructor(...t){super(...t),U(this,Wk),W(this,Bk,void 0),W(this,zk,new Map);const[e]=t;j(Bk,this,e)}get name(){return"ABRSelector"}get defaults(){return{safetyMargin:.35,minBufferForUpgrade:5,minBufferCritical:1,hysteresisRatio:1.1,abrStrategy:rb("abrStrategy")}}select(t={}){var e;const{representations:n=[],bufferSeconds:i}=t;if(!Array.isArray(n)||0===n.length)return;const r=z(Bk,this)&&"function"==typeof z(Bk,this).getKbps?z(Bk,this).getKbps():void 0,o=L(Wk,this,Uk).call(this,n[0]),s=z(zk,this).get(o),a=this.settings.abrStrategy||"auto";this.log.debug(`[select] strategy=${a}, bw=${r}, buffer=${i}, prev=${s}`);const l=n.slice().sort(((t,e)=>L(Wk,this,$k).call(this,t.bandwidth)-L(Wk,this,$k).call(this,e.bandwidth)));if("bottom"===a){const e=l[0];return L(Wk,this,Gk).call(this,e,t,{decisionReason:"strategy:bottom",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}if("top"===a){const e=l[l.length-1];return L(Wk,this,Gk).call(this,e,t,{decisionReason:"strategy:top",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}if("random"===a){const e=l[Math.floor(Math.random()*l.length)];return L(Wk,this,Gk).call(this,e,t,{decisionReason:"strategy:random",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}const c=Number.isFinite(i)?i:void 0,u=my(r)?r*this.settings.safetyMargin:void 0;let d="auto:highest-available";if(s&&void 0!==c&&c<this.settings.minBufferCritical){const e=l[0];return this.log.debug("[select] critical buffer -> lowest",t),L(Wk,this,Gk).call(this,e,t,{decisionReason:"auto:critical-buffer",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:u,bufferSeconds:c}),null==e?void 0:e.id}let h=l[l.length-1];if(void 0!==u){const e=l.filter((t=>L(Wk,this,$k).call(this,t.bandwidth)<=u));e.length>0?(h=e[e.length-1],d="auto:highest-under-safe-bandwidth",this.log.debug("[select] under safe bandwidth ->",h.id,t)):(this.log.debug("[select] no rep under safe bandwidth, fallback lowest",t),h=l[0],d="auto:no-rep-under-safe-bandwidth")}if(s&&void 0!==c&&c<this.settings.minBufferForUpgrade){const e=n.find((t=>t.id===s));e&&my(e.bandwidth)&&my(h.bandwidth)&&h.bandwidth/e.bandwidth>this.settings.hysteresisRatio&&(h=n.filter((t=>t.bandwidth&&t.bandwidth<=e.bandwidth*this.settings.hysteresisRatio)).sort(((t,e)=>t.bandwidth-e.bandwidth)).pop()||e,d="auto:hysteresis-hold",this.log.debug("[select] hysteresis prevents upgrade; hold",h.id,t))}return L(Wk,this,Gk).call(this,h,t,{decisionReason:d,trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:u,bufferSeconds:c}),null===(e=h)||void 0===e?void 0:e.id}onDispose(){z(zk,this).clear(),j(Bk,this,null)}}function Uk(t){var e,n;return(null===(e=t.mime)||void 0===e||null===(n=e.split)||void 0===n||null===(n=n.call(e,"/"))||void 0===n?void 0:n[0])||"unknown"}function $k(t){return my(t)?t/1e3:0}function qk(t){return my(t)?t/1e3:void 0}function Vk(t,e,n={}){const i=Array.isArray(null==e?void 0:e.representations)?e.representations.map((t=>({id:null==t?void 0:t.id,bandwidthKbps:L(Wk,this,qk).call(this,null==t?void 0:t.bandwidth)}))):[];return{timeMs:Date.now(),strategy:this.settings.abrStrategy||"auto",decisionReason:n.decisionReason,nodeId:null==e?void 0:e.nodeId,trackId:null==e?void 0:e.trackId,segmentId:null==e?void 0:e.segmentId,trackType:n.trackType,measuredDownloadSpeedKbps:Number.isFinite(n.measuredDownloadSpeedKbps)?n.measuredDownloadSpeedKbps:void 0,safeBandwidthKbps:Number.isFinite(n.safeBandwidthKbps)?n.safeBandwidthKbps:void 0,bufferSeconds:Number.isFinite(n.bufferSeconds)?n.bufferSeconds:void 0,previousRepresentationId:n.previousRepresentationId,selectedRepresentationId:null==t?void 0:t.id,selectedRepresentationBandwidthKbps:L(Wk,this,qk).call(this,null==t?void 0:t.bandwidth),safetyMargin:Number(this.settings.safetyMargin),minBufferForUpgrade:Number(this.settings.minBufferForUpgrade),minBufferCritical:Number(this.settings.minBufferCritical),hysteresisRatio:Number(this.settings.hysteresisRatio),availableRepresentations:i}}function Gk(t,e,n={}){if(!t)return;const i=L(Wk,this,Vk).call(this,t,e,n);e&&"object"==typeof e&&(e.abrDecision=i),this.log.info("[select] Chosen representation:",t,"context:",e,"decision:",i),this.trigger("abr:selection",{representation:t,context:e,strategy:this.settings.abrStrategy,decision:i});const r=L(Wk,this,Uk).call(this,t);z(zk,this).set(r,t.id)}var Hk=new WeakMap,Kk=new WeakSet;class Xk extends md{constructor(...t){super(...t),U(this,Kk),W(this,Hk,void 0);const[e]=t;if(j(Hk,this,e),!z(Hk,this)||"function"!=typeof z(Hk,this).list)throw new Error("NodePrioritizer requires a NodeRepository instance")}get name(){return"NodePrioritizer"}get defaults(){return{levelMultiplier:1,priorityMultiplier:.3}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"sortNodes"])}onDispose(){j(Hk,this,null)}getPrioritizationSnapshot(t){const e=z(Hk,this).list();if(!e.length)return{orderedIds:[],reachableIds:[]};const{levels:n,weights:i}=L(Kk,this,Yk).call(this,e,t);return{orderedIds:L(Kk,this,Qk).call(this,e,n,i),reachableIds:Array.from(n.keys())}}sortNodes(t){const{orderedIds:e}=this.getPrioritizationSnapshot(t);return e.length?(this.log.info(`[sortNodes(${t})] Sorted nodes: [${e.join(", ")}]`),e):[]}getReachableNodeIds(t){const{reachableIds:e}=this.getPrioritizationSnapshot(t);return e}}function Yk(t,e){const n=new Map;t.forEach((t=>{t&&t.id&&n.set(t.id,t)}));const i=new Map,r=new Map;if(!e||!n.has(e))return{levels:i,weights:r};const o=[{id:e,level:0,priority:1}];for(i.set(e,0),r.set(e,1);o.length;){const{id:t,level:e,priority:s}=o.shift(),a=n.get(t),l=Array.isArray(null==a?void 0:a.children)?a.children:[];for(let t=0;t<l.length;t+=1){const a=l[t],c=(null==a?void 0:a.nodeId)||(null==a?void 0:a.id);if(!c||!n.has(c)||i.has(c))continue;const u=my(null==a?void 0:a.weight)?a.weight:1,d=Math.max(u,s);i.set(c,e+1),r.set(c,d),o.push({id:c,level:e+1,priority:d})}}return{levels:i,weights:r}}function Qk(t,e,n){const i=e.size>0,{levelMultiplier:r,priorityMultiplier:o}=this.settings,s=t.map((t=>{var s;const a=e.has(t.id)?e.get(t.id):i?Number.MAX_SAFE_INTEGER:0,l=Number.isFinite(a)?a:Number.MAX_SAFE_INTEGER,c=null!==(s=n.get(t.id))&&void 0!==s?s:1,u=(Number.isFinite(l)?r*l:Number.MAX_SAFE_INTEGER)+o*c;return{id:t.id,score:u,level:l,priorityWeight:c}}));return s.sort(((t,e)=>t.score!==e.score?t.score-e.score:t.level!==e.level?t.level-e.level:t.priorityWeight!==e.priorityWeight?t.priorityWeight-e.priorityWeight:t.id.localeCompare(e.id))),s.map((t=>t.id))}function Jk(t,e){return function(t,e){const n=Array.isArray(t)?t:[];return n.length?e&&n.includes(e)?e:n[0]:e||void 0}(null==t?void 0:t.availableEncodeProfiles,e)}function Zk(t,e){const n=t&&"object"==typeof t?{...t}:t;return n&&"object"==typeof n?("string"==typeof e&&e?n.encodeProfile=e:delete n.encodeProfile,n):n}function tw(t){return"string"==typeof t&&t.startsWith("cmaf:")}function ew(t){return"image"===(null==t?void 0:t.assetType)?"image":"ivd"}function nw(t){if(!t||"object"!=typeof t)return t;if(Object.prototype.hasOwnProperty.call(t,"mpd")){const e="string"==typeof t.mpdUrl&&t.mpdUrl||"string"==typeof t.url&&t.url||void 0;return{typeHint:"dash",body:t.mpd,url:e}}return t.ivd||t.url||t.body||t.mimeType||t.typeHint?t:(e=t)&&"object"==typeof e&&Array.isArray(e.representations)?{ivd:t}:t;var e}var iw=new WeakMap,rw=new WeakMap,ow=new WeakSet;class sw extends md{constructor(...t){super(...t),U(this,ow),W(this,iw,void 0),W(this,rw,void 0);const[,e={}]=t;j(iw,this,"function"==typeof e.fetchFn?e.fetchFn:void 0),j(rw,this,Uy())}get name(){return"AssetsDeliveryService"}get defaults(){return{assetsDeliveryServiceUrl:"https://assets.eko.com",profile:rb("encodeProfile"),maxBatchSize:5,imageQueryParams:{startOffset:0,width:1024}}}async resolveOne(t,e={}){var n;const i=await this.resolve([t],e);if(!i.length)return;const r=i[0],o=null==r?void 0:r.manifest,s=null==r||null===(n=r.manifestRef)||void 0===n?void 0:n.encodeProfile;return o&&"object"==typeof o&&"string"==typeof s&&s?{...o,encodeProfile:s}:o}resolveImageOne(t){if(!L(ow,this,lw).call(this,t))return;const e=Jk(t,this.settings.profile),n=function(t,e,n){const i=function(t,e,n){const i=(t||"").replace(/\/$/,""),r=null==n?void 0:n.assetId,o=null==n?void 0:n.assetRevision;if(i&&e&&"string"==typeof r&&"number"==typeof o)return`${i}/${e}/${encodeURIComponent(r)}/${o}`}(t,"image",e);if(!i)return;const r=function(t){if(!t||"object"!=typeof t||Array.isArray(t))return"";const e=new URLSearchParams;return Object.keys(t).forEach((n=>{if("string"!=typeof n||!n)return;const i=t[n];null!=i&&("number"!=typeof i||Number.isFinite(i))&&("string"!=typeof i&&"number"!=typeof i&&"boolean"!=typeof i||e.set(n,String(i)))})),e.toString()}(n);return r?`${i}?${r}`:i}(this.settings.assetsDeliveryServiceUrl||"",t,this.settings.imageQueryParams);if(!n)return;const i={typeHint:"image",url:n};return"string"==typeof e&&e&&(i.encodeProfile=e),i}async resolve(t=[],e={}){const n=(Array.isArray(t)?t:[t]).filter((t=>L(ow,this,lw).call(this,t)));if(!n.length)return[];const i=L(ow,this,aw).call(this,e);if(i&&i.aborted)return[];const r=[],o=this.settings.profile;n.forEach((t=>{if("image"!==ew(t))return;const e=this.resolveImageOne(t);e&&e.url&&r.push({manifestRef:Zk(t,e.encodeProfile),manifest:{typeHint:"image",url:e.url}})}));const s=n.filter((t=>"image"!==ew(t))).map((t=>function(t,e){const n=Jk(t,e);return{ref:t,profile:n,route:tw(n)?"dash":"ivd"}}(t,o))),a=L(ow,this,uw).call(this,s);for(const{refs:t,route:e}of a){if(i&&i.aborted)return r;const{url:n}=L(ow,this,dw).call(this,t,e),o=await L(ow,this,hw).call(this,n,{method:"GET",signal:i});o&&"object"==typeof o&&t.forEach((({ref:t,profile:e})=>{const n=`${t.assetId}:${t.assetRevision}`,i=o[n]||o[t.assetId]||o[t.assetId||n];i&&r.push({manifestRef:Zk(t,e),manifest:nw(i)})}))}return r}onDispose(){z(rw,this)&&z(rw,this).abort(),j(rw,this,null),j(iw,this,null)}}function aw(t){return t&&t.signal?t.signal:z(rw,this)?z(rw,this).signal:void 0}function lw(t){const e="number"==typeof(null==t?void 0:t.assetRevision)&&Number.isFinite(t.assetRevision)&&t.assetRevision>=0;return t&&"assets-delivery-service"===t.type&&"string"==typeof t.assetId&&e}function cw(t,e){const n=Number.isFinite(e)&&e>0?e:t.length,i=[];for(let e=0;e<t.length;e+=n)i.push(t.slice(e,e+n));return i}function uw(t){if(!Array.isArray(t)||!t.length)return[];const e=[];t.forEach((t=>{const n=e[e.length-1];n&&n.route===t.route?n.refs.push(t):e.push({route:t.route,refs:[t]})}));const n=[];return e.forEach((t=>{L(ow,this,cw).call(this,t.refs,this.settings.maxBatchSize).forEach((e=>{n.push({route:t.route,refs:e})}))})),n}function dw(t,e="ivd"){const n=t.map((({ref:t,profile:e})=>function(t,e){const n=`${t.assetId}:${t.assetRevision}`;return e?`${n}:${e}`:n}(t,e))),i=new URLSearchParams({assets:n.join(","),type:"data"});return{url:`${(this.settings.assetsDeliveryServiceUrl||"").replace(/\/$/,"")}/${"dash"===e?"dash":"ivd"}?${i.toString()}`}}async function hw(t,e){return z(iw,this)?z(iw,this).call(this,t,e):await tb(t,{returnType:"json",method:(null==e?void 0:e.method)||"GET",signal:null==e?void 0:e.signal})}function fw({prioritizer:t,repository:e,startNodeId:n,prioritizedIds:i,pendingIds:r,allowedIds:o,filter:s,fallbackToRepository:a=!0}={}){const l=Array.isArray(i)?i:t&&"function"==typeof t.sortNodes?t.sortNodes(n):[],c=a?(f=e)&&"function"==typeof f.list?f.list().map((t=>null==t?void 0:t.id)).filter(Boolean):[]:[],u=l.length?l:c,d=r?new Set(r):null,h=o?new Set(o):null;var f;return u.filter((t=>{if(!t)return!1;if(d&&d.has(t))return!1;if(h&&!h.has(t))return!1;const n=function(t,e){if(t&&"function"==typeof t.get)return t.get(e)}(e,t);return!(!n||"function"==typeof s&&!s(n,t))}))}const pw=(yd.requestAnimationFrame||yd.mozRequestAnimationFrame||yd.webkitRequestAnimationFrame||yd.msRequestAnimationFrame||(t=>yd.setTimeout(t,1e3/60))).bind(yd),mw=(yd.cancelAnimationFrame||yd.mozCancelAnimationFrame||yd.webkitCancelAnimationFrame||yd.msCancelAnimationFrame||(t=>yd.clearTimeout(t))).bind(yd),vw=ld("ticker","warn");let gw,yw=[],bw=null,kw=jy();function ww(){kw=jy();const t=[];let e,n;for(n=yw.length-1;n>=0;--n)e=yw[n],kw>=e.lastTick+e.interval&&t.push(e);for(n=t.length-1;n>=0;--n)if(e=t[n],!e.stopped){e.lastTick=kw;try{e.callback()}catch(t){console&&"function"==typeof console.error?console.error(t):vw.error(t)}}gw=pw(ww)}function xw(){jy()-kw>=200&&(mw(gw),ww())}function _w(t){let e=-1;for(let n=0;n<yw.length;n+=1)if(yw[n].callback===t){e=n;break}return e}function Tw(t,e=0){if(!t||"function"!=typeof t||"number"!=typeof e||e<0)return void vw.error("[start] Invalid arguments given to start method.",arguments);const n=_w(t);return-1!==n?(vw.debug("[start] Callback already exists, overriding interval.",arguments),yw[n].interval=e,t):(yw.push({callback:t,interval:e,lastTick:jy()}),1===yw.length&&(gw=pw(ww),bw||(bw=yd.setInterval(xw,1e3))),t)}function Iw(t){const e=_w(t);-1!==e?(yw[e].stopped=!0,yw.splice(e,1),yw.length||(mw(gw),yd.clearInterval(bw),bw=null)):vw.debug("[stop] Callback not found, doing nothing.",arguments)}function Ew(t){return-1!==_w(t)}function Sw(t,e,n){const i="number"==typeof n?n:(null==n?void 0:n.maxQueueSize)||Number.POSITIVE_INFINITY,r=null!=n&&n.immediatelyFlushFirst?"boolean"==typeof n.immediatelyFlushFirst?n.immediatelyFlushFirst?1:0:Number(n.immediatelyFlushFirst):0;let o=0;if("function"!=typeof t)return void vw.error("[createThrottler] Bad argument given to createThrottler, first argument must be a function.",arguments);vw.debug("[createThrottler] Creating a new throttler instance.",arguments);const s=[];function a(){vw.debug("[onThrottlerTick] Calling callback with "+s.length+" queued items.");const e=s.slice(0);s.length=0,Iw(a),t(e)}const l={push:function(t){vw.debug("[push] Queuing argument:",t),0===s.length&&Tw(a,e),s.push(t),o+=1,(o<=r||s.length>=i)&&a()},flush:function(){vw.debug("[flush] Flushing queue."),0!==s.length&&a()},dispose:function(){vw.debug("[dispose] Disposing of throttler.");const t=s.slice(0);return s.length=0,Iw(a),t}};return Object.defineProperty(l,"interval",{enumerable:!0,get:function(){return e},set:function(t){"number"==typeof t&&(e=t)}}),l}function Aw(t,e){if(t&&"function"==typeof t)return t.__tickerThrottler||(t.__tickerThrottler=Sw((function(){t()}),e)),"number"==typeof e&&(t.__tickerThrottler.interval=e),t.__tickerThrottler.push(),t.__tickerThrottler;vw.error("[scheduleExecution] Bad argument given to scheduleExecution, first argument must be a function.",arguments)}var Nw=new WeakMap,Mw=new WeakMap,Fw=new WeakMap,Ow=new WeakMap,Cw=new WeakMap,Pw=new WeakMap,Dw=new WeakMap,Rw=new WeakMap,Lw=new WeakMap,Bw=new WeakMap,zw=new WeakMap,Ww=new WeakMap,jw=new WeakMap,Uw=new WeakMap,$w=new WeakMap,qw=new WeakMap,Vw=new WeakSet;class Gw extends md{constructor(...t){super(...t),U(this,Vw),W(this,Nw,void 0),W(this,Mw,void 0),W(this,Fw,void 0),W(this,Ow,void 0),W(this,Cw,[]),W(this,Pw,[]),W(this,Dw,new Set),W(this,Rw,new Set),W(this,Lw,!1),W(this,Bw,void 0),W(this,zw,void 0),W(this,Ww,void 0),W(this,jw,void 0),W(this,Uw,void 0),W(this,$w,void 0),W(this,qw,void 0);const[e,n,i,r]=t;j(Nw,this,e),j(Mw,this,n),j(Fw,this,i),j(Ow,this,r),j(Bw,this,Uy());const o=t.length?t[t.length-1]:void 0,s=o&&"object"==typeof o&&Number.isFinite(o.maxConcurrent)?o.maxConcurrent:void 0;Number.isFinite(s)&&(this.settings.maxConcurrent=s),j(qw,this,(()=>L(Vw,this,ix).call(this))),L(Vw,this,Yw).call(this),L(Vw,this,Xw).call(this)}get name(){return"NodeResolver"}get defaults(){return{maxConcurrent:5}}onDispose(){var t;z(Bw,this)&&z(Bw,this).abort(),j(Bw,this,null),z(Ow,this)&&"function"==typeof z(Ow,this).off&&z(Ww,this)&&z(Ow,this).off(kd.PLACEMENT_ADDED,z(Ww,this)),z(Ow,this)&&"function"==typeof z(Ow,this).off&&z($w,this)&&z(Ow,this).off(kd.TIMELINE_RESET,z($w,this)),z(Nw,this)&&"function"==typeof z(Nw,this).off&&z(jw,this)&&z(Nw,this).off(kd.NODE_ADD,z(jw,this)),z(Nw,this)&&"function"==typeof z(Nw,this).off&&z(Uw,this)&&z(Nw,this).off(kd.NODE_CHILDREN_CHANGED,z(Uw,this)),j(Ww,this,null),j(jw,this,null),j(Uw,this,null),j($w,this,null),j(Cw,this,[]),j(Pw,this,[]),z(Dw,this).clear(),z(Rw,this).clear(),j(Lw,this,!1),j(zw,this,void 0),null!==(t=z(qw,this))&&void 0!==t&&t.__tickerThrottler&&z(qw,this).__tickerThrottler.dispose(),j(qw,this,null)}}function Hw(){return z(Bw,this)?z(Bw,this).signal:void 0}function Kw(){return this._disposed||z(Bw,this)&&z(Bw,this).signal.aborted}function Xw(){z(Ow,this)&&"function"==typeof z(Ow,this).on&&(j(Ww,this,(t=>{L(Vw,this,Jw).call(this,null==t?void 0:t.nodeId)})),z(Ow,this).on(kd.PLACEMENT_ADDED,z(Ww,this)),j($w,this,(()=>L(Vw,this,Qw).call(this))),z(Ow,this).on(kd.TIMELINE_RESET,z($w,this))),z(Nw,this)&&"function"==typeof z(Nw,this).on&&(j(jw,this,(({node:t})=>{(null==t?void 0:t.id)&&L(Vw,this,Jw).call(this,t.id,{fromRepoAdd:!0})})),z(Nw,this).on(kd.NODE_ADD,z(jw,this)),j(Uw,this,(()=>{Aw(z(qw,this),100)})),z(Nw,this).on(kd.NODE_CHILDREN_CHANGED,z(Uw,this)))}function Yw(){const t=z(Ow,this)&&Array.isArray(z(Ow,this).placements)?z(Ow,this).placements:[];t.forEach((t=>L(Vw,this,Jw).call(this,t.nodeId)));const e=t.length?t[t.length-1]:void 0;e&&e.nodeId&&j(zw,this,e.nodeId)}function Qw(){z(Bw,this)&&z(Bw,this).abort(),j(Bw,this,Uy()),j(Cw,this,[]),j(Pw,this,[]),z(Dw,this).clear(),j(Lw,this,!1),j(zw,this,void 0)}function Jw(t,{fromRepoAdd:e=!1}={}){L(Vw,this,Kw).call(this)||t&&(z(Rw,this).has(t)||z(Dw,this).has(t)||(z(Cw,this).push(t),z(zw,this)||e||j(zw,this,t),!z(Lw,this)&&e||L(Vw,this,Zw).call(this)))}function Zw(){if(z(Lw,this))return void L(Vw,this,tx).call(this);if(0===z(Cw,this).length)return;j(Lw,this,!0);const t=z(Cw,this).shift();L(Vw,this,rx).call(this,t).finally((()=>{L(Vw,this,tx).call(this)}))}async function tx(){if(!L(Vw,this,Kw).call(this))for(z(Cw,this).length||z(Pw,this).length||j(Pw,this,L(Vw,this,ex).call(this));z(Dw,this).size<this.settings.maxConcurrent;){const t=this.settings.maxConcurrent-z(Dw,this).size;if(t<=0)break;const e=[];for(;e.length<t&&(z(Cw,this).length||z(Pw,this).length);){let t=z(Cw,this).shift();t||(t=z(Pw,this).shift()),t&&e.push(t)}if(!e.length)break;const n=L(Vw,this,ox).call(this,e);n.length&&z(Fw,this)&&"function"==typeof z(Fw,this).resolve&&L(Vw,this,sx).call(this,n).finally((()=>L(Vw,this,tx).call(this))),e.filter((t=>!n.find((e=>e.nodeId===t)))).forEach((t=>{L(Vw,this,rx).call(this,t).finally((()=>L(Vw,this,tx).call(this)))}))}}function ex(){const t=new Set([...z(Rw,this),...z(Dw,this),...z(Cw,this)]);return L(Vw,this,nx).call(this,t)}function nx(t){const e=z(Ow,this)&&Array.isArray(z(Ow,this).placements)?z(Ow,this).placements:[],n=(e.length?e[e.length-1].nodeId:void 0)||z(zw,this);return fw({prioritizer:z(Mw,this),repository:z(Nw,this),startNodeId:n,pendingIds:t,fallbackToRepository:!1})}function ix(){L(Vw,this,Kw).call(this)||(z(Lw,this)||0!==z(Cw,this).length)&&(j(Pw,this,L(Vw,this,ex).call(this)),z(Lw,this)&&L(Vw,this,tx).call(this))}async function rx(t,e){if(!t||z(Rw,this).has(t)||z(Dw,this).has(t))return;const n=L(Vw,this,Hw).call(this);if(n&&n.aborted)return;const i=z(Nw,this)&&"function"==typeof z(Nw,this).get?z(Nw,this).get(t):void 0;if(i&&"function"==typeof i.resolve)if("function"==typeof i.hasExceededManifestLoadAttempts&&i.hasExceededManifestLoadAttempts())z(Rw,this).add(t);else{z(Dw,this).add(t);try{const r={signal:n};e&&(r.manifestOverride=e),await i.resolve(r),z(Rw,this).add(t)}catch(e){if(qy(e,n))return;this.log.warn(`NodeResolver failed to resolve node ${t}: ${(null==e?void 0:e.message)||e}`),"function"==typeof i.hasExceededManifestLoadAttempts&&i.hasExceededManifestLoadAttempts()&&z(Rw,this).add(t)}finally{z(Dw,this).delete(t)}}}function ox(t){const e=[];return t.forEach((t=>{const n=z(Nw,this)&&"function"==typeof z(Nw,this).get?z(Nw,this).get(t):void 0;n&&n.manifestRef&&"assets-delivery-service"===n.manifestRef.type&&e.push({nodeId:t,ref:n.manifestRef})})),e}async function sx(t){const e=L(Vw,this,Hw).call(this);if(!e||!e.aborted){t.forEach((({nodeId:t})=>z(Dw,this).add(t)));try{const n=t.map((t=>t.ref)),i=await z(Fw,this).resolve(n,{signal:e});t.forEach((({nodeId:t,ref:e})=>{var n;const r=z(Nw,this)&&"function"==typeof z(Nw,this).get?z(Nw,this).get(t):void 0;if(z(Dw,this).delete(t),!r||"function"!=typeof r.resolve)return;const o=Array.isArray(i)?i.find((t=>{const n=null==t?void 0:t.manifestRef;return n&&n.assetId===e.assetId&&n.assetRevision===e.assetRevision})):void 0,s="string"==typeof(null==o||null===(n=o.manifestRef)||void 0===n?void 0:n.encodeProfile)&&o.manifestRef.encodeProfile?o.manifestRef.encodeProfile:void 0,a=o?L(Vw,this,ax).call(this,o.manifest,s):void 0;L(Vw,this,rx).call(this,t,a)}))}catch(n){qy(n,e)||this.log.warn(`NodeResolver ADS batch failed: ${(null==n?void 0:n.message)||n}`),t.forEach((({nodeId:t})=>z(Dw,this).delete(t)))}}}function ax(t,e){if(!t)return;const n="string"==typeof e&&e?e:void 0,i=t=>n&&t&&"object"==typeof t?{...t,encodeProfile:n}:t;return t.ivd?i({typeHint:"ivd",body:t.ivd}):t.url||t.body||t.mimeType?i({typeHint:t.typeHint,url:t.url,mimeType:t.mimeType,body:t.body}):i(t)}const lx=.001,cx="priority";function ux(t){const e=Number(t);return Number.isFinite(e)?e:0}var dx=new WeakMap,hx=new WeakMap,fx=new WeakMap,px=new WeakMap,mx=new WeakMap,vx=new WeakMap,gx=new WeakMap,yx=new WeakMap,bx=new WeakMap,kx=new WeakMap,wx=new WeakMap,xx=new WeakMap,_x=new WeakMap,Tx=new WeakMap,Ix=new WeakMap,Ex=new WeakMap,Sx=new WeakMap,Ax=new WeakMap,Nx=new WeakMap,Mx=new WeakMap,Fx=new WeakSet;class Ox extends md{constructor(...t){super(...t),U(this,Fx),W(this,dx,void 0),W(this,hx,void 0),W(this,fx,void 0),W(this,px,new Map),W(this,mx,new Map),W(this,vx,[]),W(this,gx,new Set),W(this,yx,new Map),W(this,bx,!1),W(this,kx,void 0),W(this,wx,void 0),W(this,xx,void 0),W(this,_x,void 0),W(this,Tx,void 0),W(this,Ix,void 0),W(this,Ex,void 0),W(this,Sx,void 0),W(this,Ax,!1),W(this,Nx,[]),W(this,Mx,void 0);const[e,n,i]=t;j(dx,this,e),j(hx,this,n),j(fx,this,i),j(wx,this,Uy()),j(Mx,this,(()=>L(Fx,this,p_).call(this))),L(Fx,this,Hx).call(this)}get name(){return"SegmentLoadCoordinator"}get defaults(){return{maxConcurrentLoads:3,maxSegmentLoadAttempts:3}}onDispose(){var t;z(wx,this)&&z(wx,this).abort(),j(wx,this,null),z(yx,this).size&&z(yx,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),z(yx,this).clear(),z(fx,this)&&"function"==typeof z(fx,this).off&&(z(xx,this)&&z(fx,this).off(kd.PLACEMENT_ADDED,z(xx,this)),z(Tx,this)&&z(fx,this).off(kd.TIMELINE_SEEKING,z(Tx,this)),z(Ix,this)&&z(fx,this).off(kd.TIMELINE_SEEKED,z(Ix,this)),z(Ex,this)&&z(fx,this).off(kd.TIMELINE_RESET,z(Ex,this))),z(dx,this)&&"function"==typeof z(dx,this).off&&z(_x,this)&&z(dx,this).off(kd.NODE_CHILDREN_CHANGED,z(_x,this)),z(Sx,this)&&"function"==typeof yd.removeEventListener&&yd.removeEventListener("online",z(Sx,this)),j(xx,this,null),j(_x,this,null),j(Tx,this,null),j(Ix,this,null),j(Ex,this,null),j(Sx,this,null),z(px,this).clear(),z(mx,this).clear(),j(vx,this,[]),z(gx,this).clear(),z(yx,this).clear(),j(bx,this,!1),j(kx,this,void 0),j(Ax,this,!1),j(Nx,this,[]),null!==(t=z(Mx,this))&&void 0!==t&&t.__tickerThrottler&&z(Mx,this).__tickerThrottler.dispose(),j(Mx,this,null)}}function Cx(){return z(wx,this)?z(wx,this).signal:void 0}function Px(){return this._disposed||z(wx,this)&&z(wx,this).signal.aborted}function Dx(){const t=Number(this.settings.maxSegmentLoadAttempts);return Number.isFinite(t)&&t>0?t:1/0}function Rx(t){const e=L(Fx,this,Dx).call(this);if(!Number.isFinite(e)||e===1/0)return!1;if(null==t||!t.loadError)return!1;const n=Number(t.loadAttempts);return Number.isFinite(n)&&n>=e}function Lx(t){return!!t&&(!!L(Fx,this,Rx).call(this,t)||L(Fx,this,Bx).call(this,t))}function Bx(t){if(!t)return!1;if("boolean"==typeof t.isLoaded)return t.isLoaded;const e=Number(t.retainedByteLength);return Number.isFinite(e)&&e>0}function zx(t){if(!t||L(Fx,this,Bx).call(this,t))return;const e=Number(t.loadAttempts);(Number.isFinite(e)&&e>0||t.loadError)&&("function"==typeof t.evict&&t.evict(),t.loadAttempts=0,t.loadError=void 0)}function Wx(t){t&&(t.manifestLoadError&&(t.manifestLoadAttempts=0,t.manifestLoadError=void 0,"failed"===t.state&&(t.state="pending",t.error=void 0)),(Array.isArray(t.tracks)?t.tracks:[]).forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{L(Fx,this,zx).call(this,t)}))})))}function jx(){(z(dx,this)&&"function"==typeof z(dx,this).list?z(dx,this).list():[]).forEach((t=>{L(Fx,this,Wx).call(this,t)}))}function Ux(t,{allowSeekKeep:e=!1,segmentOffset:n}={}){const i=Uy(),r=i?i.signal:L(Fx,this,Cx).call(this);return t&&z(yx,this).set(t,{controller:i,allowSeekKeep:!!e,segmentOffset:n}),{signal:r,controller:i}}function $x(t,e,n={}){const i=z(yx,this).get(t);i&&i.controller===e&&(Object.prototype.hasOwnProperty.call(n,"allowSeekKeep")&&(i.allowSeekKeep=!!n.allowSeekKeep),Object.prototype.hasOwnProperty.call(n,"segmentOffset")&&(i.segmentOffset=n.segmentOffset))}function qx(t,e){const n=z(yx,this).get(t);n&&(e&&n.controller!==e||z(yx,this).delete(t))}function Vx(t,e){const n=new Set;return(Array.isArray(t)?t:[]).forEach((t=>{const i=null==t?void 0:t.nodeId;if(!i)return;const r=z(dx,this)&&"function"==typeof z(dx,this).get?z(dx,this).get(i):void 0;if(!r)return;const o=L(Fx,this,r_).call(this,r,t,e);Number.isFinite(o)&&n.add(`${i}:${o}`)})),n}function Gx(t){z(yx,this).size&&z(yx,this).forEach(((e,n)=>{const i=null==e?void 0:e.segmentOffset,r=Number.isFinite(i)?`${n}:${i}`:"";!(null!=e&&e.allowSeekKeep&&r&&t&&t.has(r))&&(null==e?void 0:e.controller)&&e.controller.abort()}))}function Hx(){z(fx,this)&&"function"==typeof z(fx,this).on&&(j(xx,this,(t=>{L(Fx,this,Zx).call(this,t)})),z(fx,this).on(kd.PLACEMENT_ADDED,z(xx,this)),j(Tx,this,(t=>L(Fx,this,Kx).call(this,t))),z(fx,this).on(kd.TIMELINE_SEEKING,z(Tx,this)),j(Ix,this,(t=>L(Fx,this,Xx).call(this,t))),z(fx,this).on(kd.TIMELINE_SEEKED,z(Ix,this)),j(Ex,this,(()=>L(Fx,this,Jx).call(this))),z(fx,this).on(kd.TIMELINE_RESET,z(Ex,this))),z(dx,this)&&"function"==typeof z(dx,this).on&&(j(_x,this,(()=>{Aw(z(Mx,this),100)})),z(dx,this).on(kd.NODE_CHILDREN_CHANGED,z(_x,this))),"function"==typeof yd.addEventListener&&(j(Sx,this,(()=>L(Fx,this,Qx).call(this))),yd.addEventListener("online",z(Sx,this)))}function Kx(t={}){if(L(Fx,this,Px).call(this))return;const e=Number(null==t?void 0:t.targetTime);if(!Number.isFinite(e))return;const n=Array.isArray(null==t?void 0:t.placements)?t.placements:[],i=L(Fx,this,Vx).call(this,n,e);L(Fx,this,Gx).call(this,i),j(Ax,this,!0),j(Nx,this,n.map((t=>{const n=null==t?void 0:t.nodeId;if(n)return{nodeId:n,placement:t,targetTime:e}})).filter(Boolean)),setTimeout((()=>L(Fx,this,e_).call(this)),0)}function Xx(t={}){var e;if(L(Fx,this,Px).call(this))return;j(Ax,this,!1),j(Nx,this,[]);const n=Number.isFinite(null==t?void 0:t.targetTime)?Number(t.targetTime):Number(null===(e=z(fx,this))||void 0===e?void 0:e.currentTime);L(Fx,this,Yx).call(this,n),setTimeout((()=>L(Fx,this,e_).call(this)),0)}function Yx(t){var e;(Array.isArray(null===(e=z(fx,this))||void 0===e?void 0:e.placements)?z(fx,this).placements:[]).forEach((e=>{if(!e)return;const n=Sm(e);if(Number.isFinite(n)){if(Number.isFinite(t)){if(n>=t)return void L(Fx,this,Zx).call(this,e);const i=Im(e,z(dx,this));return Number.isFinite(i)?void(n+i>t&&L(Fx,this,Zx).call(this,e)):void(n<=t&&L(Fx,this,Zx).call(this,e))}L(Fx,this,Zx).call(this,e)}}))}function Qx(){var t;L(Fx,this,Px).call(this)||(L(Fx,this,jx).call(this),j(Ax,this,!1),j(Nx,this,[]),L(Fx,this,Yx).call(this,Number(null===(t=z(fx,this))||void 0===t?void 0:t.currentTime)),j(vx,this,L(Fx,this,h_).call(this)),setTimeout((()=>L(Fx,this,e_).call(this)),0))}function Jx(){z(wx,this)&&z(wx,this).abort(),j(wx,this,Uy()),z(yx,this).size&&z(yx,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),z(yx,this).clear(),z(px,this).clear(),z(mx,this).clear(),j(vx,this,[]),z(gx,this).clear(),j(bx,this,!1),j(kx,this,void 0),j(Ax,this,!1),j(Nx,this,[])}function Zx(t){if(L(Fx,this,Px).call(this))return;const e=null==t?void 0:t.nodeId;if(!e)return;const n=z(px,this).get(e);if(n){const i=Sm(n),r=Sm(t);Number.isFinite(i)?Number.isFinite(r)&&r<i&&z(px,this).set(e,t):Number.isFinite(r)&&z(px,this).set(e,t)}else z(px,this).set(e,t);const i=z(kx,this);j(kx,this,e),i&&i!==e&&j(vx,this,[]),z(bx,this)?setTimeout((()=>L(Fx,this,e_).call(this)),0):L(Fx,this,t_).call(this)}function t_(){z(bx,this)||z(px,this).size&&(j(bx,this,!0),L(Fx,this,e_).call(this))}async function e_(){if(L(Fx,this,Px).call(this))return;if(z(gx,this).size>=this.settings.maxConcurrentLoads)return;if(z(Ax,this))return void(z(Nx,this).length&&L(Fx,this,n_).call(this));const t=L(Fx,this,a_).call(this);if(t.hasPending)L(Fx,this,l_).call(this,t);else for(z(vx,this).length||j(vx,this,L(Fx,this,h_).call(this));z(gx,this).size<this.settings.maxConcurrentLoads&&z(vx,this).length;){const t=z(vx,this).shift();L(Fx,this,m_).call(this,t,"partial").finally((()=>{setTimeout((()=>L(Fx,this,e_).call(this)),0)}))}}function n_(){if(L(Fx,this,Px).call(this))return;const t=Math.max(0,this.settings.maxConcurrentLoads-z(gx,this).size);if(!t||!z(Nx,this).length)return;const e=[],n=[];for(let i=0;i<z(Nx,this).length;i+=1){const r=z(Nx,this)[i];(null==r?void 0:r.nodeId)&&(e.length<t&&!z(gx,this).has(r.nodeId)?e.push(r):n.push(r))}j(Nx,this,n),e.forEach((t=>{L(Fx,this,i_).call(this,t).finally((()=>{setTimeout((()=>L(Fx,this,e_).call(this)),0)}))}))}async function i_(t={}){const e=null==t?void 0:t.nodeId,n=null==t?void 0:t.placement,i=Number(null==t?void 0:t.targetTime);if(!e||!n||!Number.isFinite(i))return;if(z(gx,this).has(e))return;const{signal:r,controller:o}=L(Fx,this,Ux).call(this,e);if(r&&r.aborted)L(Fx,this,qx).call(this,e,o);else{z(gx,this).add(e);try{const t=z(dx,this)&&"function"==typeof z(dx,this).get?z(dx,this).get(e):void 0;if(!t)return;if("ready"!==t.state&&"function"==typeof t.resolve)try{await t.resolve({signal:r})}catch(t){return}if("ready"!==t.state)return;const s=L(Fx,this,r_).call(this,t,n,i);if(!Number.isFinite(s)){const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks.map((t=>null==t?void 0:t.type)).filter(Boolean):[];return void this.log.debug(`[#loadSeekWork] No seek segment offset for node [${e}] targetTime=${i} mainTrackId=${(null==t?void 0:t.mainTrackId)||"n/a"} trackTypes=[${n.join(",")}]`)}"function"==typeof t.loadMediaSegmentsAtOffset?(this.log.debug(`[#loadSeekWork] Loading seek segment for node [${e}] at offset=${s}`),L(Fx,this,$x).call(this,e,o,{allowSeekKeep:!0,segmentOffset:s}),await t.loadMediaSegmentsAtOffset(s,{signal:r})):"function"==typeof t.load&&await t.load({loadingMode:"partial",signal:r})}catch(t){qy(t,r)||this.log.warn(`[#loadSeekWork] SegmentLoadCoordinator failed to seek-load node ${e}: ${(null==t?void 0:t.message)||t}`)}finally{z(gx,this).delete(e),L(Fx,this,qx).call(this,e,o)}}}function r_(t,e,n){var i;const r=Sm(e);if(!Number.isFinite(r))return;const o=ux(null==e?void 0:e.nodeOffsetOverride),s=Math.max(0,n-r+o),a=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let l;if(null!=t&&t.mainTrackId){const e=a.find((e=>(null==e?void 0:e.id)===t.mainTrackId));"video"!==(null==e?void 0:e.type)&&"image"!==(null==e?void 0:e.type)||(l=e)}if(l||(l=a.find((t=>"video"===(null==t?void 0:t.type)))||a.find((t=>"image"===(null==t?void 0:t.type)))),!l||!Array.isArray(l.segments))return;const c=l.segments.filter((t=>t&&!t.isInit&&Array.isArray(t.representations)));if(!c.length)return;const u=ux(null===(i=l)||void 0===i?void 0:i.offset),d=Ib(c,Math.max(0,s-u),{preferRepresentationTime:!0}),h=Number(null==d?void 0:d.offset);return Number.isFinite(h)?h:void 0}function o_(t,e,n=(t=>null===(t=z(fx,this))||void 0===t?void 0:t.currentTime)()){var i;const r=(Array.isArray(null===(i=z(fx,this))||void 0===i?void 0:i.placements)?z(fx,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(Sm(e)))).sort(((t,e)=>Sm(t)-Sm(e)));if(!r.length)return e;const o=Number(n);if(!Number.isFinite(o))return e||r[0];let s,a;for(let t=0;t<r.length;t+=1){const e=r[t],n=Sm(e);if(!Number.isFinite(n))continue;const i=Im(e,z(dx,this)),l=Number.isFinite(i)&&i>=0;(!a&&n>=o-lx&&(a=e),l)?o+lx>=n&&o<n+i-lx&&(s=e):o+lx>=n&&(s=e)}return s||a||r[r.length-1]}function s_(t,e){var n;const i=Number(Sm(e));if(!Number.isFinite(i))return;const r=Im(e,z(dx,this)),o=Number.isFinite(r)&&r>=0?i+r:void 0,s=(Array.isArray(null===(n=z(fx,this))||void 0===n?void 0:n.placements)?z(fx,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(Sm(e)))).sort(((t,e)=>Sm(t)-Sm(e)));for(let t=0;t<s.length;t+=1){const e=s[t],n=Number(Sm(e));if(Number.isFinite(n)&&!(n<=i+lx)){if(Number.isFinite(o)&&n>o+lx)return;return e}}}function a_(){const t=[];let e=!1,n=1/0;if(z(px,this).forEach(((i,r)=>{if(!r||!i)return;const o=z(mx,this).get(r);if(o)return e=!0,void(n=Math.min(n,ux(o.timelineStart)));const s=L(Fx,this,c_).call(this,r,i);s&&(e=!0,n=Math.min(n,ux(s.timelineStart)),t.push(s))})),!e||!Number.isFinite(n))return{hasPending:!1,waveTime:void 0,startable:[]};const i=t.filter((t=>ux(t.timelineStart)===n&&!z(gx,this).has(t.nodeId))).sort(((t,e)=>{const n=Number.isFinite(null==t?void 0:t.timelineStart)?t.timelineStart:Number.POSITIVE_INFINITY,i=Number.isFinite(null==e?void 0:e.timelineStart)?e.timelineStart:Number.POSITIVE_INFINITY;return n!==i?n-i:String(t.nodeId).localeCompare(String(e.nodeId))}));return{hasPending:!0,waveTime:n,startable:i}}function l_({waveTime:t,startable:e}){const n=Math.max(0,this.settings.maxConcurrentLoads-z(gx,this).size);n&&e.length&&e.slice(0,n).forEach((e=>{L(Fx,this,d_).call(this,e,t).finally((()=>{setTimeout((()=>L(Fx,this,e_).call(this)),0)}))}))}function c_(t,e){var n,i;const r=z(dx,this)&&"function"==typeof z(dx,this).get?z(dx,this).get(t):void 0;if(!r)return;if("function"==typeof r.hasExceededManifestLoadAttempts&&r.hasExceededManifestLoadAttempts())return void z(px,this).delete(t);const o=L(Fx,this,o_).call(this,t,e,null===(n=z(fx,this))||void 0===n?void 0:n.currentTime),s=Number(Sm(o)),a=ux(null===(i=z(fx,this))||void 0===i?void 0:i.currentTime),l="function"==typeof r.loadMediaSegmentsAtOffset,c="function"==typeof r.load;if(!l&&!c)return void z(px,this).delete(t);if(r.isLoaded)return void z(px,this).delete(t);if("ready"!==r.state){if(!Number.isFinite(s))return;return{nodeId:t,segmentOffset:0,timelineStart:s}}if(!L(Fx,this,v_).call(this,r))return void z(px,this).delete(t);const u=Array.isArray(r.tracks)?r.tracks:[],d=u.some((t=>{const e=(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).find((t=>(null==t?void 0:t.isInit)&&Array.isArray(null==t?void 0:t.representations)));return!!e&&!L(Fx,this,Lx).call(this,e)})),h=new Set;u.forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{if(!t||t.isInit||!Array.isArray(t.representations))return;const e=Number(t.offset);if(Number.isFinite(e)){const t=Math.round(e/lx)*lx;h.add(t)}}))}));const f=Array.from(h).sort(((t,e)=>t-e)),p=e=>{const n=Number(Sm(e));if(!Number.isFinite(n))return{status:"none"};const i=ux(null==e?void 0:e.nodeOffsetOverride),o=Math.max(0,a-n+i);let s=0;for(let t=0;t<f.length&&f[t]<=o+lx;t+=1)s=t;const l=f.slice(s);if(!l.some((t=>L(Fx,this,u_).call(this,r,t))))return{status:f.slice(0,s).some((t=>L(Fx,this,u_).call(this,r,t)))?"beforeOnly":"none"};const c=l.find((t=>L(Fx,this,u_).call(this,r,t))),u=Math.max(0,ux(c)-i);return{status:"work",work:{nodeId:t,segmentOffset:c,timelineStart:n+u}}},m=p(o);if("work"===m.status)return m.work;if("beforeOnly"!==m.status){if(d&&Number.isFinite(s))return{nodeId:t,segmentOffset:0,timelineStart:s};z(px,this).delete(t)}else{const e=L(Fx,this,s_).call(this,t,o);if(e){const t=p(e);if("work"===t.status)return t.work}}}function u_(t,e){const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],i=ux(e);return n.some((t=>(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).some((t=>{if(!t||t.isInit||!Array.isArray(t.representations))return!1;const e=Number(t.offset);return Number.isFinite(e)&&Math.abs(e-i)<=lx&&!L(Fx,this,Lx).call(this,t)}))))}async function d_(t,e){const n=null==t?void 0:t.nodeId,i=null==t?void 0:t.segmentOffset;if(this.log.debug(`[#loadP0Work] Loading ${cx} node [${n}] at segmentOffset=${i} wave=${e}`),!n)return;const r=z(dx,this)&&"function"==typeof z(dx,this).get?z(dx,this).get(n):void 0;if(!r)return void z(px,this).delete(n);const o="function"==typeof r.loadMediaSegmentsAtOffset&&Number.isFinite(i),{signal:s,controller:a}=L(Fx,this,Ux).call(this,n,{allowSeekKeep:o,segmentOffset:i});if(s&&s.aborted)L(Fx,this,qx).call(this,n,a);else{z(gx,this).add(n),z(mx,this).set(n,{timelineStart:e,segmentOffset:i});try{"function"==typeof r.loadMediaSegmentsAtOffset?await r.loadMediaSegmentsAtOffset(i,{signal:s}):"function"==typeof r.load&&await r.load({loadingMode:"full",signal:s})}catch(t){if(qy(t,s))return;const e=`[#loadP0Work] SegmentLoadCoordinator failed to load ${cx} work for node ${n}: ${(null==t?void 0:t.message)||t}`;this.log.warn(e)}finally{this.log.debug(`[#loadP0Work] Finished ${cx} work for node [${n}]`),z(mx,this).delete(n),z(gx,this).delete(n),L(Fx,this,qx).call(this,n,a)}}}function h_(){const t=new Set([...z(px,this).keys(),...z(gx,this)]),e=L(Fx,this,f_).call(this),n=Array.isArray(null==e?void 0:e.orderedIds)?e.orderedIds:null,i=Array.isArray(null==e?void 0:e.reachableIds)&&e.reachableIds.length?new Set(e.reachableIds):null,r=t=>!("function"==typeof t.hasExceededManifestLoadAttempts&&t.hasExceededManifestLoadAttempts()||t.isLoaded||"ready"===t.state&&L(Fx,this,g_).call(this,t));if(i){const e=fw({prioritizer:z(hx,this),repository:z(dx,this),startNodeId:z(kx,this),prioritizedIds:n,pendingIds:t,allowedIds:i,filter:r});if(e.length)return e}return fw({prioritizer:z(hx,this),repository:z(dx,this),startNodeId:z(kx,this),prioritizedIds:n,pendingIds:t,filter:r})}function f_(){return z(hx,this)&&z(kx,this)?"function"==typeof z(hx,this).getPrioritizationSnapshot?z(hx,this).getPrioritizationSnapshot(z(kx,this)):{orderedIds:"function"==typeof z(hx,this).sortNodes?z(hx,this).sortNodes(z(kx,this)):[],reachableIds:"function"==typeof z(hx,this).getReachableNodeIds?z(hx,this).getReachableNodeIds(z(kx,this)):[]}:null}function p_(){L(Fx,this,Px).call(this)||(z(bx,this)||z(px,this).size)&&(j(vx,this,L(Fx,this,h_).call(this)),z(bx,this)&&!z(Ax,this)&&L(Fx,this,e_).call(this))}async function m_(t,e){if(this.log.debug(`[#loadNode] Loading node [${t}] in '${e}' mode`),!t)return;const n=z(dx,this)&&"function"==typeof z(dx,this).get?z(dx,this).get(t):void 0;if(!n||"function"!=typeof n.load)return;if("function"==typeof n.hasExceededManifestLoadAttempts&&n.hasExceededManifestLoadAttempts())return;if(n.isLoaded)return void this.log.debug(`[#loadNode] Skipping load for ${t}: already loaded`);const{signal:i,controller:r}=L(Fx,this,Ux).call(this,t,{allowSeekKeep:!1});if(i&&i.aborted)L(Fx,this,qx).call(this,t,r);else try{if("ready"!==n.state&&await n.resolve({signal:i}),"ready"!==n.state)return void this.log.debug(`[#loadNode] Skipping load for ${t}: not ready`);if("partial"===e&&L(Fx,this,g_).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: partial already loaded`);if(!L(Fx,this,v_).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: no loadable tracks`);z(gx,this).add(t),await n.load({loadingMode:e,signal:i})}catch(e){if(qy(e,i))return;this.log.warn(`[#loadNode] SegmentLoadCoordinator failed to load node ${t}: ${(null==e?void 0:e.message)||e}`)}finally{this.log.debug(`[#loadNode] Finished loading node [${t}]`),z(gx,this).delete(t),L(Fx,this,qx).call(this,t,r)}}function v_(t){return(Array.isArray(t.tracks)?t.tracks:[]).some((t=>{var e;return null==t||null===(e=t.segments)||void 0===e?void 0:e.length}))}function g_(t){const e=(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>Array.isArray(null==t?void 0:t.segments)&&t.segments.length));return!e.length||e.every((t=>{const e=Array.isArray(null==t?void 0:t.segments)?t.segments:[];if(!e.length)return!0;const n=e.find((t=>null==t?void 0:t.isInit)),i=e.find((t=>t&&!t.isInit));return!(n&&!L(Fx,this,Lx).call(this,n)||i&&!L(Fx,this,Lx).call(this,i))}))}class y_ extends md{constructor(...t){super(...t),this.track=void 0,this.lastSegment=void 0}get name(){return"BaseDecoder"}configure(t){this.track=t}decode(t){this.lastSegment=t}decodeChunk(t,e){}onDispose(){this.track=void 0,this.lastSegment=void 0}}function b_(t){if(!t)throw new Error("Assertion failed.")}const k_=t=>t&&t[t.length-1],w_=t=>{let e=0;for(;0===t.readBits(1)&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+t.readBits(e)},x_=t=>t.constructor===Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),__=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),T_=new TextDecoder,I_=t=>Object.fromEntries(Object.entries(t).map((([t,e])=>[e,t]))),E_={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},S_=I_(E_),A_={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},N_=I_(A_),M_={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},F_=I_(M_),O_=t=>[...t].map((t=>t.toString(16).padStart(2,"0"))).join(""),C_=t=>(t=(t=(t=(t=(t=t>>1&1431655765|(1431655765&t)<<1)>>2&858993459|(858993459&t)<<2)>>4&252645135|(252645135&t)<<4)>>8&16711935|(16711935&t)<<8)>>16&65535|(65535&t)<<16)>>>0,P_=(t,e,n)=>{let i=0,r=t.length-1,o=-1;for(;i<=r;){const s=i+r>>1,a=n(t[s]);a===e?(o=s,r=s-1):a<e?i=s+1:r=s-1}return o},D_=(t,e,n)=>{let i=0,r=t.length-1,o=-1;for(;i<=r;){const s=i+(r-i+1)/2|0;n(t[s])<=e?(o=s,i=s+1):r=s-1}return o},R_=()=>{let t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}},L_=(t,e,n)=>t.getUint8(e)<<16|t.getUint8(e+1)<<8|t.getUint8(e+2),B_=(t,e,n)=>Math.max(e,Math.min(n,t)),z_=/^[a-z]{3}$/,W_=1e6*(1+Number.EPSILON);let j_=null;let U_=null;const $_=()=>{if(null!==U_)return U_;if("undefined"==typeof navigator)return null;const t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?U_=Number(t[1]):null},q_=t=>"number"==typeof t&&!Number.isNaN(t);class V_{constructor(t,e){if(this.data=t,this.mimeType=e,!(t instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if("string"!=typeof e)throw new TypeError("mimeType must be a string.")}}const G_={default:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1};class H_{constructor(t){this.bytes=t,this.pos=0}seekToByte(t){this.pos=8*t}readBit(){var t;const e=Math.floor(this.pos/8),n=null!==(t=this.bytes[e])&&void 0!==t?t:0,i=7-(7&this.pos),r=(n&1<<i)>>i;return this.pos++,r}readBits(t){if(1===t)return this.readBit();let e=0;for(let n=0;n<t;n++)e<<=1,e|=this.readBit();return e}writeBits(t,e){const n=this.pos+t;for(let t=this.pos;t<n;t++){const i=Math.floor(t/8);let r=this.bytes[i];const o=7-(7&t);r&=~(1<<o),r|=(e&1<<n-t-1)>>n-t-1<<o,this.bytes[i]=r}this.pos=n}readAlignedByte(){var t;if(this.pos%8!=0)throw new Error("Bitstream is not byte-aligned.");const e=this.pos/8,n=null!==(t=this.bytes[e])&&void 0!==t?t:0;return this.pos+=8,n}skipBits(t){this.pos+=t}getBitsLeft(){return 8*this.bytes.length-this.pos}clone(){const t=new H_(this.bytes);return t.pos=this.pos,t}}const K_=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],X_=[-1,1,2,3,4,5,6,8],Y_=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");const e=new H_(t);let n=e.readBits(5);31===n&&(n=32+e.readBits(6));const i=e.readBits(4);let r=null;15===i?r=e.readBits(24):i<K_.length&&(r=K_[i]);const o=e.readBits(4);let s=null;return o>=1&&o<=7&&(s=X_[o]),{objectType:n,frequencyIndex:i,sampleRate:r,channelConfiguration:o,numberOfChannels:s}},Q_=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],J_=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],Z_=t=>{const{codec:e,codecDescription:n,colorSpace:i,avcCodecInfo:r,hevcCodecInfo:o,vp9CodecInfo:s,av1CodecInfo:a}=t;if("avc"===e){if(b_(null!==t.avcType),r){const e=new Uint8Array([r.avcProfileIndication,r.profileCompatibility,r.avcLevelIndication]);return`avc${t.avcType}.${O_(e)}`}if(!n||n.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc${t.avcType}.${O_(n.subarray(1,4))}`}if("hevc"===e){let t,e,i,r,s,a;if(o)t=o.generalProfileSpace,e=o.generalProfileIdc,i=C_(o.generalProfileCompatibilityFlags),r=o.generalTierFlag,s=o.generalLevelIdc,a=[...o.generalConstraintIndicatorFlags];else{if(!n||n.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");const o=__(n),l=o.getUint8(1);t=l>>6&3,e=31&l,i=C_(o.getUint32(2)),r=l>>5&1,s=o.getUint8(12),a=[];for(let t=0;t<6;t++)a.push(o.getUint8(6+t))}let l="hev1.";for(l+=["","A","B","C"][t]+e,l+=".",l+=i.toString(16).toUpperCase(),l+=".",l+=0===r?"L":"H",l+=s;a.length>0&&0===a[a.length-1];)a.pop();return a.length>0&&(l+=".",l+=a.map((t=>t.toString(16).toUpperCase())).join(".")),l}if("vp8"===e)return"vp8";if("vp9"===e){if(!s){const e=t.width*t.height;let n=k_(J_).level;for(const t of J_)if(e<=t.maxPictureSize){n=t.level;break}return`vp09.00.${n.toString().padStart(2,"0")}.08`}let e=`vp09.${s.profile.toString().padStart(2,"0")}.${s.level.toString().padStart(2,"0")}.${s.bitDepth.toString().padStart(2,"0")}.${s.chromaSubsampling.toString().padStart(2,"0")}`;return e+=`.${s.colourPrimaries.toString().padStart(2,"0")}.${s.transferCharacteristics.toString().padStart(2,"0")}.${s.matrixCoefficients.toString().padStart(2,"0")}.${s.videoFullRangeFlag.toString().padStart(2,"0")}`,e.endsWith(".01.01.01.01.00")&&(e=e.slice(0,-15)),e}if("av1"===e){if(!a){const e=t.width*t.height;let n=k_(J_).level;for(const t of J_)if(e<=t.maxPictureSize){n=t.level;break}return`av01.0.${n.toString().padStart(2,"0")}M.08`}const e=a.profile,n=a.level.toString().padStart(2,"0"),r=a.tier?"H":"M",o=a.bitDepth.toString().padStart(2,"0"),s=a.monochrome?"1":"0",l=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),c=null!=i&&i.primaries?E_[i.primaries]:1,u=null!=i&&i.transfer?A_[i.transfer]:1,d=null!=i&&i.matrix?M_[i.matrix]:1,h=null!=i&&i.fullRange?1:0;let f=`av01.${e}.${n}${r}.${o}`;return f+=`.${s}.${l.toString().padStart(3,"0")}`,f+=`.${c.toString().padStart(2,"0")}`,f+=`.${u.toString().padStart(2,"0")}`,f+=`.${d.toString().padStart(2,"0")}`,f+=`.${h}`,f.endsWith(".0.110.01.01.01.0")&&(f=f.slice(0,-17)),f}throw new TypeError(`Unhandled codec '${e}'.`)},tT=t=>{const{codec:e,codecDescription:n,aacCodecInfo:i}=t;if("aac"===e){if(!i)throw new TypeError("AAC codec info must be provided.");if(i.isMpeg2)return"mp4a.67";{let t;return t=null!==i.objectType?i.objectType:Y_(n).objectType,`mp4a.40.${t}`}}if("mp3"===e)return"mp3";if("opus"===e)return"opus";if("vorbis"===e)return"vorbis";if("flac"===e)return"flac";if("ac3"===e)return"ac-3";if("eac3"===e)return"ec-3";if(e&&Q_.includes(e))return e;throw new TypeError(`Unhandled codec '${e}'.`)},eT=/^pcm-([usf])(\d+)+(be)?$/,nT=[48e3,44100,32e3],iT=[24e3,22050,16e3];var rT,oT;!function(t){t[t.NON_IDR_SLICE=1]="NON_IDR_SLICE",t[t.SLICE_DPA=2]="SLICE_DPA",t[t.SLICE_DPB=3]="SLICE_DPB",t[t.SLICE_DPC=4]="SLICE_DPC",t[t.IDR=5]="IDR",t[t.SEI=6]="SEI",t[t.SPS=7]="SPS",t[t.PPS=8]="PPS",t[t.AUD=9]="AUD",t[t.SPS_EXT=13]="SPS_EXT"}(rT||(rT={})),function(t){t[t.RASL_N=8]="RASL_N",t[t.RASL_R=9]="RASL_R",t[t.BLA_W_LP=16]="BLA_W_LP",t[t.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",t[t.VPS_NUT=32]="VPS_NUT",t[t.SPS_NUT=33]="SPS_NUT",t[t.PPS_NUT=34]="PPS_NUT",t[t.AUD_NUT=35]="AUD_NUT",t[t.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",t[t.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT"}(oT||(oT={}));const sT=function*(t){let e=0,n=-1;for(;e<t.length-2;){const i=t.indexOf(0,e);if(-1===i||i>=t.length-2)break;e=i;let r=0;e+3<t.length&&0===t[e+1]&&0===t[e+2]&&1===t[e+3]?r=4:0===t[e+1]&&1===t[e+2]&&(r=3),0!==r?(-1!==n&&e>n&&(yield{offset:n,length:e-n}),n=e+r,e=n):e++}-1!==n&&n<t.length&&(yield{offset:n,length:t.length-n})},aT=function*(t,e){let n=0;const i=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;n+e<=t.length;){let t;1===e?t=i.getUint8(n):2===e?t=i.getUint16(n,!1):3===e?t=L_(i,n):(b_(4===e),t=i.getUint32(n,!1)),n+=e,yield{offset:n,length:t},n+=t}},lT=t=>31&t,cT=t=>{const e=[],n=t.length;for(let i=0;i<n;i++)i+2<n&&0===t[i]&&0===t[i+1]&&3===t[i+2]?(e.push(0,0),i+=2):e.push(t[i]);return new Uint8Array(e)},uT=t=>t>>1&63,dT=function*(t){const e=new H_(t),n=()=>{let t=0;for(let n=0;n<8;n++){const i=e.readAlignedByte();if(t|=(127&i)<<7*n,!(128&i))break;if(7===n&&128&i)return null}return t>=2**32-1?null:t};for(;e.getBitsLeft()>=8;){e.skipBits(1);const i=e.readBits(4),r=e.readBits(1),o=e.readBits(1);let s;if(e.skipBits(1),r&&e.skipBits(8),o){const t=n();if(null===t)return;s=t}else s=Math.floor(e.getBitsLeft()/8);b_(e.pos%8==0),yield{type:i,data:t.subarray(e.pos/8,e.pos/8+s)},e.skipBits(8*s)}};var hT;!function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"}(hT||(hT={}));const fT=[2,1,2,3,3,4,4,5];class pT{constructor(t){this.input=t}}const mT=[],vT=[],gT=new Uint8Array(0);class yT{constructor(t,e,n,i,r=-1,o,s){if(this.data=t,this.type=e,this.timestamp=n,this.duration=i,this.sequenceNumber=r,t===gT&&void 0===o)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(void 0===o&&(o=t.byteLength),!(t instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if("key"!==e&&"delta"!==e)throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(n))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(i)||i<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(r))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");if(void 0!==s&&("object"!=typeof s||!s))throw new TypeError("sideData, when provided, must be an object.");if(void 0!==(null==s?void 0:s.alpha)&&!(s.alpha instanceof Uint8Array))throw new TypeError("sideData.alpha, when provided, must be a Uint8Array.");if(void 0!==(null==s?void 0:s.alphaByteLength)&&(!Number.isInteger(s.alphaByteLength)||s.alphaByteLength<0))throw new TypeError("sideData.alphaByteLength, when provided, must be a non-negative integer.");this.byteLength=o,this.sideData=null!=s?s:{},this.sideData.alpha&&void 0===this.sideData.alphaByteLength&&(this.sideData.alphaByteLength=this.sideData.alpha.byteLength)}get isMetadataOnly(){return this.data===gT}get microsecondTimestamp(){return Math.trunc(W_*this.timestamp)}get microsecondDuration(){return Math.trunc(W_*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if("undefined"==typeof EncodedVideoChunk)throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}alphaToEncodedVideoChunk(t=this.type){if(!this.sideData.alpha)throw new TypeError("This packet does not contain alpha side data.");if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if("undefined"==typeof EncodedVideoChunk)throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.sideData.alpha,type:t,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if("undefined"==typeof EncodedAudioChunk)throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(t,e){var n;if(!(t instanceof EncodedVideoChunk||t instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");const i=new Uint8Array(t.byteLength);return t.copyTo(i),new yT(i,t.type,t.timestamp/1e6,(null!==(n=t.duration)&&void 0!==n?n:0)/1e6,void 0,void 0,e)}clone(t){var e,n,i,r,o,s;if(void 0!==t&&("object"!=typeof t||null===t))throw new TypeError("options, when provided, must be an object.");if(void 0!==(null==t?void 0:t.data)&&!(t.data instanceof Uint8Array))throw new TypeError("options.data, when provided, must be a Uint8Array.");if(void 0!==(null==t?void 0:t.type)&&"key"!==t.type&&"delta"!==t.type)throw new TypeError('options.type, when provided, must be either "key" or "delta".');if(void 0!==(null==t?void 0:t.timestamp)&&!Number.isFinite(t.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(void 0!==(null==t?void 0:t.duration)&&!Number.isFinite(t.duration))throw new TypeError("options.duration, when provided, must be a number.");if(void 0!==(null==t?void 0:t.sequenceNumber)&&!Number.isFinite(t.sequenceNumber))throw new TypeError("options.sequenceNumber, when provided, must be a number.");if(void 0!==(null==t?void 0:t.sideData)&&("object"!=typeof t.sideData||null===t.sideData))throw new TypeError("options.sideData, when provided, must be an object.");return new yT(null!==(e=null==t?void 0:t.data)&&void 0!==e?e:this.data,null!==(n=null==t?void 0:t.type)&&void 0!==n?n:this.type,null!==(i=null==t?void 0:t.timestamp)&&void 0!==i?i:this.timestamp,null!==(r=null==t?void 0:t.duration)&&void 0!==r?r:this.duration,null!==(o=null==t?void 0:t.sequenceNumber)&&void 0!==o?o:this.sequenceNumber,this.byteLength,null!==(s=null==t?void 0:t.sideData)&&void 0!==s?s:this.sideData)}}const bT=t=>{if(!t||"object"!=typeof t)throw new TypeError("options must be an object.");if(void 0!==t.metadataOnly&&"boolean"!=typeof t.metadataOnly)throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(void 0!==t.verifyKeyPackets&&"boolean"!=typeof t.verifyKeyPackets)throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(t.verifyKeyPackets&&t.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},kT=t=>{if(!q_(t))throw new TypeError("timestamp must be a number.")},wT=(t,e,n)=>n.verifyKeyPackets?e.then((async e=>{if(!e||"delta"===e.type)return e;const n=await t.determinePacketType(e);return n&&(e.type=n),e})):e;class xT{constructor(t){if(!(t instanceof _T))throw new TypeError("track must be an InputTrack.");this._track=t}getFirstPacket(t={}){if(bT(t),this._track.input._disposed)throw new XT;return wT(this._track,this._track._backing.getFirstPacket(t),t)}async getFirstKeyPacket(t={}){bT(t);const e=await this.getFirstPacket(t);return e?"key"===e.type?e:this.getNextKeyPacket(e,t):null}getPacket(t,e={}){if(kT(t),bT(e),this._track.input._disposed)throw new XT;return wT(this._track,this._track._backing.getPacket(t,e),e)}getNextPacket(t,e={}){if(!(t instanceof yT))throw new TypeError("packet must be an EncodedPacket.");if(bT(e),this._track.input._disposed)throw new XT;return wT(this._track,this._track._backing.getNextPacket(t,e),e)}async getKeyPacket(t,e={}){if(kT(t),bT(e),this._track.input._disposed)throw new XT;if(!e.verifyKeyPackets)return this._track._backing.getKeyPacket(t,e);const n=await this._track._backing.getKeyPacket(t,e);return n?(b_("key"===n.type),"delta"===await this._track.determinePacketType(n)?this.getKeyPacket(n.timestamp-1/this._track.timeResolution,e):n):n}async getNextKeyPacket(t,e={}){if(!(t instanceof yT))throw new TypeError("packet must be an EncodedPacket.");if(bT(e),this._track.input._disposed)throw new XT;if(!e.verifyKeyPackets)return this._track._backing.getNextKeyPacket(t,e);const n=await this._track._backing.getNextKeyPacket(t,e);return n?(b_("key"===n.type),"delta"===await this._track.determinePacketType(n)?this.getNextKeyPacket(n,e):n):n}packets(t,e,n={}){if(void 0!==t&&!(t instanceof yT))throw new TypeError("startPacket must be an EncodedPacket.");if(void 0!==t&&t.isMetadataOnly&&(null==n||!n.metadataOnly))throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(void 0!==e&&!(e instanceof yT))throw new TypeError("endPacket must be an EncodedPacket.");if(bT(n),this._track.input._disposed)throw new XT;const i=[];let{promise:r,resolve:o}=R_(),{promise:s,resolve:a}=R_(),l=!1,c=!1,u=null;const d=[];(async()=>{let u=null!=t?t:await this.getFirstPacket(n);for(;u&&!c&&!this._track.input._disposed&&!(e&&u.sequenceNumber>=(null==e?void 0:e.sequenceNumber));)i.length>Math.max(2,d.length)?(({promise:s,resolve:a}=R_()),await s):(i.push(u),o(),({promise:r,resolve:o}=R_()),u=await this.getNextPacket(u,n));l=!0,o()})().catch((t=>{u||(u=t,o())}));const h=this._track;return{async next(){for(;;){if(h.input._disposed)throw new XT;if(c)return{value:void 0,done:!0};if(u)throw u;if(i.length>0){const t=i.shift(),e=performance.now();for(d.push(e);d.length>0&&e-d[0]>=1e3;)d.shift();return a(),{value:t,done:!1}}if(l)return{value:void 0,done:!0};await r}},return:async()=>(c=!0,a(),o(),{value:void 0,done:!0}),async throw(t){throw t},[Symbol.asyncIterator](){return this}}}}class _T{constructor(t,e){this.input=t,this._backing=e}isVideoTrack(){return this instanceof TT}isAudioTrack(){return this instanceof IT}get id(){return this._backing.getId()}get number(){return this._backing.getNumber()}get internalCodecId(){return this._backing.getInternalCodecId()}get languageCode(){return this._backing.getLanguageCode()}get name(){return this._backing.getName()}get timeResolution(){return this._backing.getTimeResolution()}get disposition(){return this._backing.getDisposition()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(t=1/0){const e=new xT(this);let n=1/0,i=-1/0,r=0,o=0;for await(const s of e.packets(void 0,void 0,{metadataOnly:!0})){if(r>=t&&s.timestamp>=i)break;n=Math.min(n,s.timestamp),i=Math.max(i,s.timestamp+s.duration),r++,o+=s.byteLength}return{packetCount:r,averagePacketRate:r?Number((r/(i-n)).toPrecision(16)):0,averageBitrate:r?Number((8*o/(i-n)).toPrecision(16)):0}}}class TT extends _T{constructor(t,e){super(t,e),this._backing=e,this.pixelAspectRatio=(t=>{b_(0!==t.den);let e=Math.abs(t.num),n=Math.abs(t.den);for(;0!==n;){const t=e%n;e=n,n=t}const i=e||1;return{num:t.num/i,den:t.den/i}})({num:this._backing.getSquarePixelWidth()*this._backing.getCodedHeight(),den:this._backing.getSquarePixelHeight()*this._backing.getCodedWidth()})}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get squarePixelWidth(){return this._backing.getSquarePixelWidth()}get squarePixelHeight(){return this._backing.getSquarePixelHeight()}get displayWidth(){return this._backing.getRotation()%180==0?this.squarePixelWidth:this.squarePixelHeight}get displayHeight(){return this._backing.getRotation()%180==0?this.squarePixelHeight:this.squarePixelWidth}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){const t=await this._backing.getColorSpace();return"bt2020"===t.primaries||"smpte432"===t.primaries||"pg"===t.transfer||"hlg"===t.transfer||"bt2020-ncl"===t.matrix}canBeTransparent(){return this._backing.canBeTransparent()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){var t;const e=await this._backing.getDecoderConfig();return null!==(t=null==e?void 0:e.codec)&&void 0!==t?t:null}async canDecode(){try{const t=await this._backing.getDecoderConfig();if(!t)return!1;const e=this._backing.getCodec();return b_(null!==e),mT.some((n=>n.supports(e,t)))?!0:"undefined"!=typeof VideoDecoder&&!0===(await VideoDecoder.isConfigSupported(t)).supported}catch(t){return console.error("Error during decodability check:",t),!1}}async determinePacketType(t){if(!(t instanceof yT))throw new TypeError("packet must be an EncodedPacket.");if(t.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");if(null===this.codec)return null;const e=await this.getDecoderConfig();return b_(e),((t,e,n)=>{switch(t){case"avc":for(const t of((t,e)=>{if(e.description){const n=3&x_(e.description)[4];return aT(t,n+1)}return sT(t)})(n,e)){const e=n[t.offset],r=lT(e);if(r>=rT.NON_IDR_SLICE&&r<=rT.SLICE_DPC)return"delta";if(r===rT.IDR)return"key";if(r===rT.SEI&&(i=void 0,!(null!==j_?j_:j_=!("undefined"==typeof navigator||(null===(i=navigator.vendor)||void 0===i||!i.includes("Google Inc"))&&!/Chrome/.test(navigator.userAgent)))||$_()>=144)){const e=n.subarray(t.offset,t.offset+t.length),i=cT(e);let r=1;do{let t=0;for(;;){const e=i[r++];if(void 0===e)break;if(t+=e,e<255)break}let e=0;for(;;){const t=i[r++];if(void 0===t)break;if(e+=t,t<255)break}if(6===t){const t=new H_(i);t.pos=8*r;const e=w_(t),n=t.readBits(1);if(0===e&&1===n)return"key"}r+=e}while(r<i.length-1)}}return"delta";case"hevc":for(const t of((t,e)=>{if(e.description){const n=3&x_(e.description)[21];return aT(t,n+1)}return sT(t)})(n,e)){const e=uT(n[t.offset]);if(e<oT.BLA_W_LP)return"delta";if(e<=oT.RSV_IRAP_VCL23)return"key"}return"delta";case"vp8":return 1&n[0]?"delta":"key";case"vp9":{const t=new H_(n);if(2!==t.readBits(2))return null;const e=t.readBits(1);return 3===(t.readBits(1)<<1)+e&&t.skipBits(1),t.readBits(1)?null:0===t.readBits(1)?"key":"delta"}case"av1":{let t=!1;for(const{type:e,data:i}of dT(n))if(1===e){const e=new H_(i);e.skipBits(4),t=!!e.readBits(1)}else if(3===e||6===e||7===e){if(t)return"key";const e=new H_(i);return e.readBits(1)?null:0===e.readBits(2)?"key":"delta"}return null}default:(t=>{throw new Error(`Unexpected value: ${t}`)})(t),b_(!1)}var i})(this.codec,e,t.data)}}class IT extends _T{constructor(t,e){super(t,e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){var t;const e=await this._backing.getDecoderConfig();return null!==(t=null==e?void 0:e.codec)&&void 0!==t?t:null}async canDecode(){try{const t=await this._backing.getDecoderConfig();if(!t)return!1;const e=this._backing.getCodec();return b_(null!==e),vT.some((n=>n.supports(e,t)))?!0:!!t.codec.startsWith("pcm-")||"undefined"!=typeof AudioDecoder&&!0===(await AudioDecoder.isConfigSupported(t)).supported}catch(t){return console.error("Error during decodability check:",t),!1}}async determinePacketType(t){if(!(t instanceof yT))throw new TypeError("packet must be an EncodedPacket.");return null===this.codec?null:"key"}}const ET=t=>{let e=rI(t);const n=cI(t,4);let i=8;1===e&&(e=sI(t),i=16);const r=e-i;return r<0?null:{name:n,totalSize:e,headerSize:i,contentSize:r}},ST=t=>oI(t)/65536,AT=t=>oI(t)/1073741824,NT=t=>{let e=0;for(let n=0;n<4;n++){e<<=7;const n=tI(t);if(e|=127&n,!(128&n))break}return e},MT=t=>{let e=eI(t);return t.skip(2),e=Math.min(e,t.remainingLength),T_.decode(ZT(t,e))},FT=t=>{const e=ET(t);if(!e||"data"!==e.name)return null;if(t.remainingLength<8)return null;const n=rI(t);t.skip(4);const i=ZT(t,e.contentSize-8);switch(n){case 1:return T_.decode(i);case 2:return new TextDecoder("utf-16be").decode(i);case 13:return new V_(i,"image/jpeg");case 14:return new V_(i,"image/png");case 27:return new V_(i,"image/bmp");default:return i}};class OT extends pT{constructor(t){super(t),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.currentFragment=null,this.lastReadFragment=null,this.reader=t._reader}async computeDuration(){const t=await this.getTracks(),e=await Promise.all(t.map((t=>t.computeDuration())));return Math.max(0,...e)}async getTracks(){return await this.readMetadata(),this.tracks.map((t=>t.inputTrack))}async getMimeType(){await this.readMetadata();const t=await Promise.all(this.tracks.map((t=>t.inputTrack.getCodecParameterString())));return(t=>{let e=(t.hasVideo?"video/":t.hasAudio?"audio/":"application/")+(t.isQuickTime?"quicktime":"mp4");return t.codecStrings.length>0&&(e+=`; codecs="${[...new Set(t.codecStrings)].join(", ")}"`),e})({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some((t=>{var e;return"video"===(null===(e=t.info)||void 0===e?void 0:e.type)})),hasAudio:this.tracks.some((t=>{var e;return"audio"===(null===(e=t.info)||void 0===e?void 0:e.type)})),codecStrings:t.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){var t;return null!==(t=this.metadataPromise)&&void 0!==t?t:this.metadataPromise=(async()=>{let t=0;for(;;){let e=this.reader.requestSliceRange(t,8,16);if(e instanceof Promise&&(e=await e),!e)break;const n=t,i=ET(e);if(!i)break;if("ftyp"===i.name){const t=cI(e,4);this.isQuickTime="qt "===t}else if("moov"===i.name){let t=this.reader.requestSlice(e.filePos,i.contentSize);if(t instanceof Promise&&(t=await t),!t)break;this.moovSlice=t,this.readContiguousBoxes(this.moovSlice),this.tracks.sort(((t,e)=>Number(e.disposition.default)-Number(t.disposition.default)));for(const t of this.tracks){const e=t.editListPreviousSegmentDurations/this.movieTimescale;t.editListOffset-=Math.round(e*t.timescale)}break}t=n+i.totalSize}if(this.isFragmented&&null!==this.reader.fileSize){let t=this.reader.requestSlice(this.reader.fileSize-4,4);t instanceof Promise&&(t=await t),b_(t);const e=rI(t),n=this.reader.fileSize-e;if(n>=0&&n<=this.reader.fileSize-16){let t=this.reader.requestSliceRange(n,8,16);if(t instanceof Promise&&(t=await t),t){const e=ET(t);if(e&&"mfra"===e.name){let n=this.reader.requestSlice(t.filePos,e.contentSize);n instanceof Promise&&(n=await n),n&&this.readContiguousBoxes(n)}}}}})()}getSampleTableForTrack(t){var e;if(t.sampleTable)return t.sampleTable;const n={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};t.sampleTable=n,b_(this.moovSlice);const i=this.moovSlice.slice(t.sampleTableByteOffset);if(this.currentTrack=t,this.traverseBox(i),this.currentTrack=null,"audio"===(null===(e=t.info)||void 0===e?void 0:e.type)&&t.info.codec&&Q_.includes(t.info.codec)&&0===n.sampleCompositionTimeOffsets.length){var r;b_("audio"===(null===(r=t.info)||void 0===r?void 0:r.type));const e=(t=>{if(b_(Q_.includes(t)),"ulaw"===t)return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if("alaw"===t)return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};const e=eT.exec(t);let n;return b_(e),n="u"===e[1]?"unsigned":"s"===e[1]?"signed":"float",{dataType:n,sampleSize:Number(e[2])/8,littleEndian:"be"!==e[3],silentValue:"pcm-u8"===t?128:0}})(t.info.codec),i=[],o=[];for(let r=0;r<n.sampleToChunk.length;r++){const s=n.sampleToChunk[r],a=n.sampleToChunk[r+1],l=(a?a.startChunkIndex:n.chunkOffsets.length)-s.startChunkIndex;for(let r=0;r<l;r++){const a=s.startSampleIndex+r*s.samplesPerChunk,l=a+s.samplesPerChunk,c=D_(n.sampleTimingEntries,a,(t=>t.startIndex)),u=n.sampleTimingEntries[c],d=D_(n.sampleTimingEntries,l,(t=>t.startIndex)),h=n.sampleTimingEntries[d],f=u.startDecodeTimestamp+(a-u.startIndex)*u.delta,p=h.startDecodeTimestamp+(l-h.startIndex)*h.delta-f,m=k_(i);m&&m.delta===p?m.count++:i.push({startIndex:s.startChunkIndex+r,startDecodeTimestamp:f,count:1,delta:p});const v=s.samplesPerChunk*e.sampleSize*t.info.numberOfChannels;o.push(v)}s.startSampleIndex=s.startChunkIndex,s.samplesPerChunk=1}n.sampleTimingEntries=i,n.sampleSizes=o}if(n.sampleCompositionTimeOffsets.length>0){n.presentationTimestamps=[];for(const t of n.sampleTimingEntries)for(let e=0;e<t.count;e++)n.presentationTimestamps.push({presentationTimestamp:t.startDecodeTimestamp+e*t.delta,sampleIndex:t.startIndex+e});for(const t of n.sampleCompositionTimeOffsets)for(let e=0;e<t.count;e++){const i=t.startIndex+e,r=n.presentationTimestamps[i];r&&(r.presentationTimestamp+=t.offset)}n.presentationTimestamps.sort(((t,e)=>t.presentationTimestamp-e.presentationTimestamp)),n.presentationTimestampIndexMap=Array(n.presentationTimestamps.length).fill(-1);for(let t=0;t<n.presentationTimestamps.length;t++)n.presentationTimestampIndexMap[n.presentationTimestamps[t].sampleIndex]=t}return n}async readFragment(t){var e;if((null===(e=this.lastReadFragment)||void 0===e?void 0:e.moofOffset)===t)return this.lastReadFragment;let n=this.reader.requestSliceRange(t,8,16);n instanceof Promise&&(n=await n),b_(n);const i=ET(n);b_("moof"===(null==i?void 0:i.name));let r=this.reader.requestSlice(t,i.totalSize);r instanceof Promise&&(r=await r),b_(r),this.traverseBox(r);const o=this.lastReadFragment;b_(o&&o.moofOffset===t);for(const[,t]of o.trackData){const e=t.track,{fragmentPositionCache:n}=e;if(!t.startTimestampIsFinal){const i=e.fragmentLookupTable.find((t=>t.moofOffset===o.moofOffset));if(i)WT(t,i.timestamp);else{const e=D_(n,o.moofOffset-1,(t=>t.moofOffset));if(-1!==e){const i=n[e];WT(t,i.endTimestamp)}}t.startTimestampIsFinal=!0}const i=D_(n,t.startTimestamp,(t=>t.startTimestamp));-1!==i&&n[i].moofOffset===o.moofOffset||n.splice(i+1,0,{moofOffset:o.moofOffset,startTimestamp:t.startTimestamp,endTimestamp:t.endTimestamp})}return o}readContiguousBoxes(t){const e=t.filePos;for(;t.filePos-e<=t.length-8&&this.traverseBox(t););}*iterateContiguousBoxes(t){const e=t.filePos;for(;t.filePos-e<=t.length-8;){const e=t.filePos,n=ET(t);if(!n)break;yield{boxInfo:n,slice:t},t.filePos=e+n.totalSize}}traverseBox(t){var e,n,i,r,o,s,a,l,c,u,d,h,f,p,m,v,g,y,b,k,w,x,_,T,I,E,S,A,N,M,F,O,C,P,D,R;const L=t.filePos,B=ET(t);if(!B)return!1;const z=t.filePos,W=L+B.totalSize;switch(B.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"wave":this.readContiguousBoxes(t.slice(z,B.contentSize));break;case"mvhd":{const e=tI(t);t.skip(3),1===e?(t.skip(16),this.movieTimescale=rI(t),this.movieDurationInTimescale=sI(t)):(t.skip(8),this.movieTimescale=rI(t),this.movieDurationInTimescale=rI(t))}break;case"trak":{const e={id:-1,demuxer:this,inputTrack:null,disposition:{...G_},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:"und",sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=e,this.readContiguousBoxes(t.slice(z,B.contentSize)),-1!==e.id&&-1!==e.timescale&&null!==e.info)if("video"===e.info.type&&-1!==e.info.width){const t=e;e.inputTrack=new TT(this.input,new PT(t)),this.tracks.push(e)}else if("audio"===e.info.type&&-1!==e.info.numberOfChannels){const t=e;e.inputTrack=new IT(this.input,new DT(t)),this.tracks.push(e)}this.currentTrack=null}break;case"tkhd":{const e=this.currentTrack;if(!e)break;const n=tI(t),i=!!(1&nI(t));if(e.disposition.default=i,0===n)t.skip(8),e.id=rI(t),t.skip(4),e.durationInMovieTimescale=rI(t);else{if(1!==n)throw new Error(`Incorrect track header version ${n}.`);t.skip(16),e.id=rI(t),t.skip(4),e.durationInMovieTimescale=sI(t)}t.skip(16);const r=[ST(t),ST(t),AT(t),ST(t),ST(t),AT(t),ST(t),ST(t),AT(t)],o=(t=>{const e=(t%360+360)%360;if(0===e||90===e||180===e||270===e)return e;throw new Error(`Invalid rotation ${t}.`)})((Ot=jT(r),90*Math.round(Ot/90)));b_(0===o||90===o||180===o||270===o),e.rotation=o}break;case"elst":{const e=this.currentTrack;if(!e)break;const n=tI(t);t.skip(3);let i=!1,r=0;const o=rI(t);for(let s=0;s<o;s++){const o=1===n?sI(t):rI(t),s=1===n?aI(t):oI(t),a=ST(t);if(0!==o){if(i){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(-1!==s){if(1!==a){console.warn("Unsupported edit list entry: media rate must be 1.");break}e.editListPreviousSegmentDurations=r,e.editListOffset=s,i=!0}else r+=o}}}break;case"mdhd":{const e=this.currentTrack;if(!e)break;const n=tI(t);t.skip(3),0===n?(t.skip(8),e.timescale=rI(t),e.durationInMediaTimescale=rI(t)):1===n&&(t.skip(16),e.timescale=rI(t),e.durationInMediaTimescale=sI(t));let i=eI(t);if(i>0){e.languageCode="";for(let t=0;t<3;t++)e.languageCode=String.fromCharCode(96+(31&i))+e.languageCode,i>>=5;Ft=e.languageCode,z_.test(Ft)||(e.languageCode="und")}}break;case"hdlr":{const e=this.currentTrack;if(!e)break;t.skip(8);const n=cI(t,4);"vide"===n?e.info={type:"video",width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,codec:null,codecDescription:null,colorSpace:null,avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:"soun"===n&&(e.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{const e=this.currentTrack;if(!e)break;e.sampleTableByteOffset=L,this.readContiguousBoxes(t.slice(z,B.contentSize))}break;case"stsd":{const e=this.currentTrack;if(!e)break;if(null===e.info||e.sampleTable)break;const n=tI(t);t.skip(3);const i=rI(t);for(let r=0;r<i;r++){const i=t.filePos,r=ET(t);if(!r)break;e.internalCodecId=r.name;const o=r.name.toLowerCase();if("video"===e.info.type)"avc1"===o||"avc3"===o?(e.info.codec="avc",e.info.avcType="avc1"===o?1:3):"hvc1"===o||"hev1"===o?e.info.codec="hevc":"vp08"===o?e.info.codec="vp8":"vp09"===o?e.info.codec="vp9":"av01"===o?e.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${r.name}').`),t.skip(24),e.info.width=eI(t),e.info.height=eI(t),e.info.squarePixelWidth=e.info.width,e.info.squarePixelHeight=e.info.height,t.skip(50),this.readContiguousBoxes(t.slice(t.filePos,i+r.totalSize-t.filePos));else{"mp4a"===o||("opus"===o?e.info.codec="opus":"flac"===o?e.info.codec="flac":"twos"===o||"sowt"===o||"raw "===o||"in24"===o||"in32"===o||"fl32"===o||"fl64"===o||"lpcm"===o||"ipcm"===o||"fpcm"===o||("ulaw"===o?e.info.codec="ulaw":"alaw"===o?e.info.codec="alaw":"ac-3"===o?e.info.codec="ac3":"ec-3"===o?e.info.codec="eac3":console.warn(`Unsupported audio codec (sample entry type '${r.name}').`))),t.skip(8);const s=eI(t);t.skip(6);let a=eI(t),l=eI(t);t.skip(4);let c=rI(t)/65536;if(0===n&&s>0)if(1===s)t.skip(4),l=8*rI(t),t.skip(8);else if(2===s){t.skip(4),c=lI(t),a=rI(t),t.skip(4),l=rI(t);const n=rI(t);if(t.skip(8),"lpcm"===o){const t=l+7>>3,i=Boolean(1&n),r=Boolean(2&n),o=4&n?-1:0;l>0&&l<=64&&(i?32===l&&(e.info.codec=r?"pcm-f32be":"pcm-f32"):o&1<<t-1?1===t?e.info.codec="pcm-s8":2===t?e.info.codec=r?"pcm-s16be":"pcm-s16":3===t?e.info.codec=r?"pcm-s24be":"pcm-s24":4===t&&(e.info.codec=r?"pcm-s32be":"pcm-s32"):1===t&&(e.info.codec="pcm-u8")),null===e.info.codec&&console.warn("Unsupported PCM format.")}}"opus"===e.info.codec&&(c=48e3),e.info.numberOfChannels=a,e.info.sampleRate=c,"twos"===o?8===l?e.info.codec="pcm-s8":16===l?e.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${l} for codec 'twos'.`),e.info.codec=null):"sowt"===o?8===l?e.info.codec="pcm-s8":16===l?e.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${l} for codec 'sowt'.`),e.info.codec=null):"raw "===o?e.info.codec="pcm-u8":"in24"===o?e.info.codec="pcm-s24be":"in32"===o?e.info.codec="pcm-s32be":"fl32"===o?e.info.codec="pcm-f32be":"fl64"===o?e.info.codec="pcm-f64be":"ipcm"===o?e.info.codec="pcm-s16be":"fpcm"===o&&(e.info.codec="pcm-f32be"),this.readContiguousBoxes(t.slice(t.filePos,i+r.totalSize-t.filePos))}}}break;case"avcC":{const e=this.currentTrack;if(!e)break;b_(e.info),e.info.codecDescription=ZT(t,B.contentSize)}break;case"hvcC":{const e=this.currentTrack;if(!e)break;b_(e.info),e.info.codecDescription=ZT(t,B.contentSize)}break;case"vpcC":{var j;const e=this.currentTrack;if(!e)break;b_("video"===(null===(j=e.info)||void 0===j?void 0:j.type)),t.skip(4);const n=tI(t),i=tI(t),r=tI(t),o=r>>4,s=r>>1&7,a=1&r,l=tI(t),c=tI(t),u=tI(t);e.info.vp9CodecInfo={profile:n,level:i,bitDepth:o,chromaSubsampling:s,videoFullRangeFlag:a,colourPrimaries:l,transferCharacteristics:c,matrixCoefficients:u}}break;case"av1C":{var U;const e=this.currentTrack;if(!e)break;b_("video"===(null===(U=e.info)||void 0===U?void 0:U.type)),t.skip(1);const n=tI(t),i=n>>5,r=31&n,o=tI(t),s=o>>7,a=o>>6&1,l=o>>4&1,c=o>>3&1,u=o>>2&1,d=3&o,h=2===i&&a?o>>5&1?12:10:a?10:8;e.info.av1CodecInfo={profile:i,level:r,tier:s,bitDepth:h,monochrome:l,chromaSubsamplingX:c,chromaSubsamplingY:u,chromaSamplePosition:d}}break;case"colr":{var $;const e=this.currentTrack;if(!e)break;if(b_("video"===(null===($=e.info)||void 0===$?void 0:$.type)),"nclx"!==cI(t,4))break;const n=eI(t),i=eI(t),r=eI(t),o=Boolean(128&tI(t));e.info.colorSpace={primaries:S_[n],transfer:N_[i],matrix:F_[r],fullRange:o}}break;case"pasp":{var q;const e=this.currentTrack;if(!e)break;b_("video"===(null===(q=e.info)||void 0===q?void 0:q.type));const n=rI(t),i=rI(t);n>i?e.info.squarePixelWidth=Math.round(e.info.width*n/i):e.info.squarePixelHeight=Math.round(e.info.height*i/n)}break;case"esds":{var V;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(V=e.info)||void 0===V?void 0:V.type)),t.skip(4),b_(3===tI(t)),NT(t),t.skip(2);const n=tI(t),i=!!(64&n),r=!!(32&n);if(!!(128&n)&&t.skip(2),i){const e=tI(t);t.skip(e)}r&&t.skip(2),b_(4===tI(t));const o=NT(t),s=t.filePos,a=tI(t);if(64===a||103===a?(e.info.codec="aac",e.info.aacCodecInfo={isMpeg2:103===a,objectType:null}):105===a||107===a?e.info.codec="mp3":221===a?e.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${a}) - discarding track.`),t.skip(12),o>t.filePos-s){b_(5===tI(t));const n=NT(t);if(e.info.codecDescription=ZT(t,n),"aac"===e.info.codec){const t=Y_(e.info.codecDescription);null!==t.numberOfChannels&&(e.info.numberOfChannels=t.numberOfChannels),null!==t.sampleRate&&(e.info.sampleRate=t.sampleRate)}}}break;case"enda":{var G;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(G=e.info)||void 0===G?void 0:G.type)),255&eI(t)&&("pcm-s16be"===e.info.codec?e.info.codec="pcm-s16":"pcm-s24be"===e.info.codec?e.info.codec="pcm-s24":"pcm-s32be"===e.info.codec?e.info.codec="pcm-s32":"pcm-f32be"===e.info.codec?e.info.codec="pcm-f32":"pcm-f64be"===e.info.codec&&(e.info.codec="pcm-f64"))}break;case"pcmC":{var H;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(H=e.info)||void 0===H?void 0:H.type)),t.skip(4);const n=tI(t),i=Boolean(1&n),r=tI(t);"pcm-s16be"===e.info.codec?i?16===r?e.info.codec="pcm-s16":24===r?e.info.codec="pcm-s24":32===r?e.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${r}.`),e.info.codec=null):16===r?e.info.codec="pcm-s16be":24===r?e.info.codec="pcm-s24be":32===r?e.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${r}.`),e.info.codec=null):"pcm-f32be"===e.info.codec&&(i?32===r?e.info.codec="pcm-f32":64===r?e.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${r}.`),e.info.codec=null):32===r?e.info.codec="pcm-f32be":64===r?e.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${r}.`),e.info.codec=null));break}case"dOps":{var K;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(K=e.info)||void 0===K?void 0:K.type)),t.skip(1);const n=tI(t),i=eI(t),r=rI(t),o=iI(t),s=tI(t);let a;a=0!==s?ZT(t,2+n):new Uint8Array(0);const l=new Uint8Array(19+a.byteLength),c=new DataView(l.buffer);c.setUint32(0,1332770163,!1),c.setUint32(4,1214603620,!1),c.setUint8(8,1),c.setUint8(9,n),c.setUint16(10,i,!0),c.setUint32(12,r,!0),c.setInt16(16,o,!0),c.setUint8(18,s),l.set(a,19),e.info.codecDescription=l,e.info.numberOfChannels=n}break;case"dfLa":{var X;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(X=e.info)||void 0===X?void 0:X.type)),t.skip(4);const n=127,i=128,r=t.filePos;for(;t.filePos<W;){const r=tI(t),o=nI(t);if((r&n)===hT.STREAMINFO){t.skip(10);const n=rI(t),i=n>>>12,r=1+(n>>9&7);e.info.sampleRate=i,e.info.numberOfChannels=r,t.skip(20)}else t.skip(o);if(r&i)break}const o=t.filePos;t.filePos=r;const s=ZT(t,o-r),a=new Uint8Array(4+s.byteLength);new DataView(a.buffer).setUint32(0,1716281667,!1),a.set(s,4),e.info.codecDescription=a}break;case"dac3":{var Y;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(Y=e.info)||void 0===Y?void 0:Y.type));const n=ZT(t,3),i=new H_(n),r=i.readBits(2);i.skipBits(8);const o=i.readBits(3),s=i.readBits(1);r<3&&(e.info.sampleRate=nT[r]),e.info.numberOfChannels=fT[o]+s}break;case"dec3":{var Q;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(Q=e.info)||void 0===Q?void 0:Q.type));const n=(t=>{if(t.length<2)return null;const e=new H_(t),n=e.readBits(13),i=e.readBits(3),r=[];for(let n=0;n<=i&&!(Math.ceil(e.pos/8)+3>t.length);n++){const t=e.readBits(2),n=e.readBits(5);e.skipBits(1),e.skipBits(1);const i=e.readBits(3),o=e.readBits(3),s=e.readBits(1);e.skipBits(3);const a=e.readBits(4);let l=0;a>0?l=e.readBits(9):e.skipBits(1),r.push({fscod:t,fscod2:null,bsid:n,bsmod:i,acmod:o,lfeon:s,numDepSub:a,chanLoc:l})}return 0===r.length?null:{dataRate:n,substreams:r}})(ZT(t,B.contentSize));if(!n){console.warn("Invalid dec3 box contents, ignoring.");break}const i=(t=>{const e=t.substreams[0];return b_(e),e.fscod<3?nT[e.fscod]:null!==e.fscod2&&e.fscod2<3?iT[e.fscod2]:null})(n);null!==i&&(e.info.sampleRate=i),e.info.numberOfChannels=(t=>{const e=t.substreams[0];b_(e);let n=fT[e.acmod]+e.lfeon;if(e.numDepSub>0){const t=[2,2,1,1,2,2,2,1,1];for(let i=0;i<9;i++)e.chanLoc&1<<8-i&&(n+=t[i])}return n})(n)}break;case"stts":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t);let i=0,r=0;for(let o=0;o<n;o++){const n=rI(t),o=rI(t);e.sampleTable.sampleTimingEntries.push({startIndex:i,startDecodeTimestamp:r,count:n,delta:o}),i+=n,r+=n*o}}break;case"ctts":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t);let i=0;for(let r=0;r<n;r++){const n=rI(t),r=oI(t);e.sampleTable.sampleCompositionTimeOffsets.push({startIndex:i,count:n,offset:r}),i+=n}}break;case"stsz":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t),i=rI(t);if(0===n)for(let n=0;n<i;n++){const n=rI(t);e.sampleTable.sampleSizes.push(n)}else e.sampleTable.sampleSizes.push(n)}break;case"stz2":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4),t.skip(3);const n=tI(t),i=rI(t),r=ZT(t,Math.ceil(i*n/8)),o=new H_(r);for(let t=0;t<i;t++){const t=o.readBits(n);e.sampleTable.sampleSizes.push(t)}}break;case"stss":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4),e.sampleTable.keySampleIndices=[];const n=rI(t);for(let i=0;i<n;i++){const n=rI(t)-1;e.sampleTable.keySampleIndices.push(n)}0!==e.sampleTable.keySampleIndices[0]&&e.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t);for(let i=0;i<n;i++){const n=rI(t)-1,i=rI(t),r=rI(t);e.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:n,samplesPerChunk:i,sampleDescriptionIndex:r})}let i=0;for(let t=0;t<e.sampleTable.sampleToChunk.length;t++)e.sampleTable.sampleToChunk[t].startSampleIndex=i,t<e.sampleTable.sampleToChunk.length-1&&(i+=(e.sampleTable.sampleToChunk[t+1].startChunkIndex-e.sampleTable.sampleToChunk[t].startChunkIndex)*e.sampleTable.sampleToChunk[t].samplesPerChunk)}break;case"stco":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t);for(let i=0;i<n;i++){const n=rI(t);e.sampleTable.chunkOffsets.push(n)}}break;case"co64":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t);for(let i=0;i<n;i++){const n=sI(t);e.sampleTable.chunkOffsets.push(n)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.slice(z,B.contentSize));break;case"mehd":{const e=tI(t);t.skip(3);const n=1===e?sI(t):rI(t);this.movieDurationInTimescale=n}break;case"trex":{t.skip(4);const e=rI(t),n=rI(t),i=rI(t),r=rI(t),o=rI(t);this.fragmentTrackDefaults.push({trackId:e,defaultSampleDescriptionIndex:n,defaultSampleDuration:i,defaultSampleSize:r,defaultSampleFlags:o})}break;case"tfra":{const e=tI(t);t.skip(3);const n=rI(t),i=this.tracks.find((t=>t.id===n));if(!i)break;const r=rI(t),o=(12&r)>>2,s=3&r,a=[tI,eI,nI,rI],l=a[(48&r)>>4],c=a[o],u=a[s],d=rI(t);for(let n=0;n<d;n++){const n=1===e?sI(t):rI(t),r=1===e?sI(t):rI(t);l(t),c(t),u(t),i.fragmentLookupTable.push({timestamp:n,moofOffset:r})}i.fragmentLookupTable.sort(((t,e)=>t.timestamp-e.timestamp));for(let t=0;t<i.fragmentLookupTable.length-1;t++){const e=i.fragmentLookupTable[t],n=i.fragmentLookupTable[t+1];e.timestamp===n.timestamp&&(i.fragmentLookupTable.splice(t+1,1),t--)}}break;case"moof":this.currentFragment={moofOffset:L,moofSize:B.totalSize,implicitBaseDataOffset:L,trackData:new Map},this.readContiguousBoxes(t.slice(z,B.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if(b_(this.currentFragment),this.readContiguousBoxes(t.slice(z,B.contentSize)),this.currentTrack){const t=this.currentFragment.trackData.get(this.currentTrack.id);if(t){const{currentFragmentState:e}=this.currentTrack;b_(e),null!==e.startTimestamp&&(WT(t,e.startTimestamp),t.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{var J,Z,tt,et;b_(this.currentFragment),t.skip(1);const e=nI(t),n=Boolean(1&e),i=Boolean(2&e),r=Boolean(8&e),o=Boolean(16&e),s=Boolean(32&e),a=Boolean(65536&e),l=Boolean(131072&e),c=rI(t),u=this.tracks.find((t=>t.id===c));if(!u)break;const d=this.fragmentTrackDefaults.find((t=>t.trackId===c));this.currentTrack=u,u.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:null!==(J=null==d?void 0:d.defaultSampleDescriptionIndex)&&void 0!==J?J:null,defaultSampleDuration:null!==(Z=null==d?void 0:d.defaultSampleDuration)&&void 0!==Z?Z:null,defaultSampleSize:null!==(tt=null==d?void 0:d.defaultSampleSize)&&void 0!==tt?tt:null,defaultSampleFlags:null!==(et=null==d?void 0:d.defaultSampleFlags)&&void 0!==et?et:null,startTimestamp:null},n?u.currentFragmentState.baseDataOffset=sI(t):l&&(u.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),i&&(u.currentFragmentState.sampleDescriptionIndex=rI(t)),r&&(u.currentFragmentState.defaultSampleDuration=rI(t)),o&&(u.currentFragmentState.defaultSampleSize=rI(t)),s&&(u.currentFragmentState.defaultSampleFlags=rI(t)),a&&(u.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{const e=this.currentTrack;if(!e)break;b_(e.currentFragmentState);const n=tI(t);t.skip(3);const i=0===n?rI(t):sI(t);e.currentFragmentState.startTimestamp=i}break;case"trun":{const e=this.currentTrack;if(!e)break;if(b_(this.currentFragment),b_(e.currentFragmentState),this.currentFragment.trackData.has(e.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}const n=tI(t),i=nI(t),r=Boolean(1&i),o=Boolean(4&i),s=Boolean(256&i),a=Boolean(512&i),l=Boolean(1024&i),c=Boolean(2048&i),u=rI(t);let d=e.currentFragmentState.baseDataOffset;r&&(d+=oI(t));let h=null;o&&(h=rI(t));let f=d;if(0===u){this.currentFragment.implicitBaseDataOffset=f;break}let p=0;const m={track:e,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(e.id,m);for(let i=0;i<u;i++){let r,o,u;s?r=rI(t):(b_(null!==e.currentFragmentState.defaultSampleDuration),r=e.currentFragmentState.defaultSampleDuration),a?o=rI(t):(b_(null!==e.currentFragmentState.defaultSampleSize),o=e.currentFragmentState.defaultSampleSize),l?u=rI(t):(b_(null!==e.currentFragmentState.defaultSampleFlags),u=e.currentFragmentState.defaultSampleFlags),0===i&&null!==h&&(u=h);let d=0;c&&(d=0===n?rI(t):oI(t));const v=!(65536&u);m.samples.push({presentationTimestamp:p+d,duration:r,byteOffset:f,byteSize:o,isKeyFrame:v}),f+=o,p+=r}m.presentationTimestamps=m.samples.map(((t,e)=>({presentationTimestamp:t.presentationTimestamp,sampleIndex:e}))).sort(((t,e)=>t.presentationTimestamp-e.presentationTimestamp));for(let t=0;t<m.presentationTimestamps.length;t++){const e=m.presentationTimestamps[t],n=m.samples[e.sampleIndex];if(null===m.firstKeyFrameTimestamp&&n.isKeyFrame&&(m.firstKeyFrameTimestamp=n.presentationTimestamp),t<m.presentationTimestamps.length-1){const i=m.presentationTimestamps[t+1];n.duration=i.presentationTimestamp-e.presentationTimestamp}}const v=m.samples[m.presentationTimestamps[0].sampleIndex],g=m.samples[k_(m.presentationTimestamps).sampleIndex];m.startTimestamp=v.presentationTimestamp,m.endTimestamp=g.presentationTimestamp+g.duration,this.currentFragment.implicitBaseDataOffset=f}break;case"udta":{const g=this.iterateContiguousBoxes(t.slice(z,B.contentSize));for(const{boxInfo:t,slice:y}of g){if("meta"!==t.name&&!this.currentTrack){var nt,it,rt,ot,st,at,lt,ct;const e=y.filePos;null!==(it=(nt=this.metadataTags).raw)&&void 0!==it||(nt.raw={}),"©"===t.name[0]?null!==(st=(rt=this.metadataTags.raw)[ot=t.name])&&void 0!==st||(rt[ot]=MT(y)):null!==(ct=(at=this.metadataTags.raw)[lt=t.name])&&void 0!==ct||(at[lt]=ZT(y,t.contentSize)),y.filePos=e}switch(t.name){case"meta":y.skip(-t.headerSize),this.traverseBox(y);break;case"©nam":case"name":this.currentTrack?this.currentTrack.name=T_.decode(ZT(y,t.contentSize)):null!==(n=(e=this.metadataTags).title)&&void 0!==n||(e.title=MT(y));break;case"©des":this.currentTrack||null!==(r=(i=this.metadataTags).description)&&void 0!==r||(i.description=MT(y));break;case"©ART":this.currentTrack||null!==(s=(o=this.metadataTags).artist)&&void 0!==s||(o.artist=MT(y));break;case"©alb":this.currentTrack||null!==(l=(a=this.metadataTags).album)&&void 0!==l||(a.album=MT(y));break;case"albr":this.currentTrack||null!==(u=(c=this.metadataTags).albumArtist)&&void 0!==u||(c.albumArtist=MT(y));break;case"©gen":this.currentTrack||null!==(h=(d=this.metadataTags).genre)&&void 0!==h||(d.genre=MT(y));break;case"©day":if(!this.currentTrack){var ut,dt;const t=new Date(MT(y));Number.isNaN(t.getTime())||null!==(dt=(ut=this.metadataTags).date)&&void 0!==dt||(ut.date=t)}break;case"©cmt":this.currentTrack||null!==(p=(f=this.metadataTags).comment)&&void 0!==p||(f.comment=MT(y));break;case"©lyr":this.currentTrack||null!==(v=(m=this.metadataTags).lyrics)&&void 0!==v||(m.lyrics=MT(y))}}}break;case"meta":{if(this.currentTrack)break;const e=0!==rI(t);this.currentMetadataKeys=new Map,e?this.readContiguousBoxes(t.slice(z,B.contentSize)):this.readContiguousBoxes(t.slice(z+4,B.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;t.skip(4);const e=rI(t);for(let n=0;n<e;n++){const e=rI(t);t.skip(4);const i=T_.decode(ZT(t,e-8));this.currentMetadataKeys.set(n+1,i)}}break;case"ilst":{if(!this.currentMetadataKeys)break;const e=this.iterateContiguousBoxes(t.slice(z,B.contentSize));for(const{boxInfo:t,slice:n}of e){var ht,ft,pt,mt,vt;let e=t.name;const i=(e.charCodeAt(0)<<24)+(e.charCodeAt(1)<<16)+(e.charCodeAt(2)<<8)+e.charCodeAt(3);this.currentMetadataKeys.has(i)&&(e=this.currentMetadataKeys.get(i));const r=FT(n);switch(null!==(ft=(ht=this.metadataTags).raw)&&void 0!==ft||(ht.raw={}),null!==(vt=(pt=this.metadataTags.raw)[mt=e])&&void 0!==vt||(pt[mt]=r),e){case"©nam":case"titl":case"com.apple.quicktime.title":case"title":"string"==typeof r&&(null!==(y=(g=this.metadataTags).title)&&void 0!==y||(g.title=r));break;case"©des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":"string"==typeof r&&(null!==(k=(b=this.metadataTags).description)&&void 0!==k||(b.description=r));break;case"©ART":case"com.apple.quicktime.artist":case"artist":"string"==typeof r&&(null!==(x=(w=this.metadataTags).artist)&&void 0!==x||(w.artist=r));break;case"©alb":case"albm":case"com.apple.quicktime.album":case"album":"string"==typeof r&&(null!==(T=(_=this.metadataTags).album)&&void 0!==T||(_.album=r));break;case"aART":case"album_artist":"string"==typeof r&&(null!==(E=(I=this.metadataTags).albumArtist)&&void 0!==E||(I.albumArtist=r));break;case"©cmt":case"com.apple.quicktime.comment":case"comment":"string"==typeof r&&(null!==(A=(S=this.metadataTags).comment)&&void 0!==A||(S.comment=r));break;case"©gen":case"gnre":case"com.apple.quicktime.genre":case"genre":"string"==typeof r&&(null!==(M=(N=this.metadataTags).genre)&&void 0!==M||(N.genre=r));break;case"©lyr":case"lyrics":"string"==typeof r&&(null!==(O=(F=this.metadataTags).lyrics)&&void 0!==O||(F.lyrics=r));break;case"©day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if("string"==typeof r){var gt,yt;const t=new Date(r);Number.isNaN(t.getTime())||null!==(yt=(gt=this.metadataTags).date)&&void 0!==yt||(gt.date=t)}break;case"covr":case"com.apple.quicktime.artwork":r instanceof V_?(null!==(P=(C=this.metadataTags).images)&&void 0!==P||(C.images=[]),this.metadataTags.images.push({data:r.data,kind:"coverFront",mimeType:r.mimeType})):r instanceof Uint8Array&&(null!==(R=(D=this.metadataTags).images)&&void 0!==R||(D.images=[]),this.metadataTags.images.push({data:r,kind:"coverFront",mimeType:"image/*"}));break;case"track":if("string"==typeof r){var bt,kt,wt,xt;const t=r.split("/"),e=Number.parseInt(t[0],10),n=t[1]&&Number.parseInt(t[1],10);Number.isInteger(e)&&e>0&&(null!==(kt=(bt=this.metadataTags).trackNumber)&&void 0!==kt||(bt.trackNumber=e)),n&&Number.isInteger(n)&&n>0&&(null!==(xt=(wt=this.metadataTags).tracksTotal)&&void 0!==xt||(wt.tracksTotal=n))}break;case"trkn":if(r instanceof Uint8Array&&r.length>=6){var _t,Tt,It,Et;const t=__(r),e=t.getUint16(2,!1),n=t.getUint16(4,!1);e>0&&(null!==(Tt=(_t=this.metadataTags).trackNumber)&&void 0!==Tt||(_t.trackNumber=e)),n>0&&(null!==(Et=(It=this.metadataTags).tracksTotal)&&void 0!==Et||(It.tracksTotal=n))}break;case"disc":case"disk":if(r instanceof Uint8Array&&r.length>=6){var St,At,Nt,Mt;const t=__(r),e=t.getUint16(2,!1),n=t.getUint16(4,!1);e>0&&(null!==(At=(St=this.metadataTags).discNumber)&&void 0!==At||(St.discNumber=e)),n>0&&(null!==(Mt=(Nt=this.metadataTags).discsTotal)&&void 0!==Mt||(Nt.discsTotal=n))}}}}}var Ft,Ot;return t.filePos=W,!0}}class CT{constructor(t){this.internalTrack=t,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getNumber(){const t=this.internalTrack.demuxer,e=this.internalTrack.inputTrack.type;let n=0;for(const i of t.tracks)if(i.inputTrack.type===e&&n++,i===this.internalTrack)break;return n}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}getDisposition(){return this.internalTrack.disposition}async computeDuration(){var t,e;const n=await this.getPacket(1/0,{metadataOnly:!0});return(null!==(t=null==n?void 0:n.timestamp)&&void 0!==t?t:0)+(null!==(e=null==n?void 0:n.duration)&&void 0!==e?e:0)}async getFirstTimestamp(){var t;const e=await this.getFirstPacket({metadataOnly:!0});return null!==(t=null==e?void 0:e.timestamp)&&void 0!==t?t:0}async getFirstPacket(t){const e=await this.fetchPacketForSampleIndex(0,t);return e||!this.internalTrack.demuxer.isFragmented?e:this.performFragmentedLookup(null,(t=>t.trackData.get(this.internalTrack.id)?{sampleIndex:0,correctSampleFound:!0}:{sampleIndex:-1,correctSampleFound:!1}),-1/0,1/0,t)}mapTimestampIntoTimescale(t){return(t=>{const e=Math.round(t);return Math.abs(t/e-1)<10*Number.EPSILON?e:t})(t*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(t,e){const n=this.mapTimestampIntoTimescale(t),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),r=RT(i,n),o=await this.fetchPacketForSampleIndex(r,e);return UT(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,(t=>{const e=t.trackData.get(this.internalTrack.id);if(!e)return{sampleIndex:-1,correctSampleFound:!1};const i=D_(e.presentationTimestamps,n,(t=>t.presentationTimestamp));return{sampleIndex:-1!==i?e.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&n<e.endTimestamp}}),n,n,e):o}async getNextPacket(t,e){const n=this.packetToSampleIndex.get(t);if(void 0!==n)return this.fetchPacketForSampleIndex(n+1,e);const i=this.packetToFragmentLocation.get(t);if(void 0===i)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,(t=>{if(t===i.fragment){const e=t.trackData.get(this.internalTrack.id);if(i.sampleIndex+1<e.samples.length)return{sampleIndex:i.sampleIndex+1,correctSampleFound:!0}}else if(t.trackData.get(this.internalTrack.id))return{sampleIndex:0,correctSampleFound:!0};return{sampleIndex:-1,correctSampleFound:!1}}),-1/0,1/0,e)}async getKeyPacket(t,e){const n=this.mapTimestampIntoTimescale(t),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),r=LT(i,n),o=await this.fetchPacketForSampleIndex(r,e);return UT(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,(t=>{const e=t.trackData.get(this.internalTrack.id);if(!e)return{sampleIndex:-1,correctSampleFound:!1};const i=((t,e)=>{for(let n=t.length-1;n>=0;n--)if(e(t[n]))return n;return-1})(e.presentationTimestamps,(t=>e.samples[t.sampleIndex].isKeyFrame&&t.presentationTimestamp<=n));return{sampleIndex:-1!==i?e.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&n<e.endTimestamp}}),n,n,e):o}async getNextKeyPacket(t,e){const n=this.packetToSampleIndex.get(t);if(void 0!==n){const t=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=zT(t,n);return this.fetchPacketForSampleIndex(i,e)}const i=this.packetToFragmentLocation.get(t);if(void 0===i)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,(t=>{if(t===i.fragment){const e=t.trackData.get(this.internalTrack.id).samples.findIndex(((t,e)=>t.isKeyFrame&&e>i.sampleIndex));if(-1!==e)return{sampleIndex:e,correctSampleFound:!0}}else{const e=t.trackData.get(this.internalTrack.id);if(e&&null!==e.firstKeyFrameTimestamp){const t=e.samples.findIndex((t=>t.isKeyFrame));return b_(-1!==t),{sampleIndex:t,correctSampleFound:!0}}}return{sampleIndex:-1,correctSampleFound:!1}}),-1/0,1/0,e)}async fetchPacketForSampleIndex(t,e){if(-1===t)return null;const n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=BT(n,t);if(!i)return null;let r;if(e.metadataOnly)r=gT;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.sampleOffset,i.sampleSize);t instanceof Promise&&(t=await t),b_(t),r=ZT(t,i.sampleSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new yT(r,i.isKeyFrame?"key":"delta",o,s,t,i.sampleSize);return this.packetToSampleIndex.set(a,t),a}async fetchPacketInFragment(t,e,n){if(-1===e)return null;const i=t.trackData.get(this.internalTrack.id).samples[e];let r;if(b_(i),n.metadataOnly)r=gT;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.byteOffset,i.byteSize);t instanceof Promise&&(t=await t),b_(t),r=ZT(t,i.byteSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new yT(r,i.isKeyFrame?"key":"delta",o,s,t.moofOffset+e,i.byteSize);return this.packetToFragmentLocation.set(a,{fragment:t,sampleIndex:e}),a}async performFragmentedLookup(t,e,n,i,r){var o,s;const a=this.internalTrack.demuxer;let l=null,c=null,u=-1;if(t){const{sampleIndex:n,correctSampleFound:i}=e(t);if(i)return this.fetchPacketInFragment(t,n,r);-1!==n&&(c=t,u=n)}const d=D_(this.internalTrack.fragmentLookupTable,n,(t=>t.timestamp)),h=-1!==d?this.internalTrack.fragmentLookupTable[d]:null,f=D_(this.internalTrack.fragmentPositionCache,n,(t=>t.startTimestamp)),p=-1!==f?this.internalTrack.fragmentPositionCache[f]:null,m=Math.max(null!==(o=null==h?void 0:h.moofOffset)&&void 0!==o?o:0,null!==(s=null==p?void 0:p.moofOffset)&&void 0!==s?s:0)||null;let v;for(t?null===m||t.moofOffset>=m?(v=t.moofOffset+t.moofSize,l=t):v=m:v=null!=m?m:0;;){if(l){const t=l.trackData.get(this.internalTrack.id);if(t&&t.startTimestamp>i)break}let t=a.reader.requestSliceRange(v,8,16);if(t instanceof Promise&&(t=await t),!t)break;const n=v,o=ET(t);if(!o)break;if("moof"===o.name){l=await a.readFragment(n);const{sampleIndex:t,correctSampleFound:i}=e(l);if(i)return this.fetchPacketInFragment(l,t,r);-1!==t&&(c=l,u=t)}v=n+o.totalSize}if(h&&(!c||c.moofOffset<h.moofOffset)){var g;const t=this.internalTrack.fragmentLookupTable[d-1];b_(!t||t.timestamp<h.timestamp);const n=null!==(g=null==t?void 0:t.timestamp)&&void 0!==g?g:-1/0;return this.performFragmentedLookup(null,e,n,i,r)}return c?this.fetchPacketInFragment(c,u,r):null}}class PT extends CT{constructor(t){super(t),this.decoderConfigPromise=null,this.internalTrack=t}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getSquarePixelWidth(){return this.internalTrack.info.squarePixelWidth}getSquarePixelHeight(){return this.internalTrack.info.squarePixelHeight}getRotation(){return this.internalTrack.rotation}async getColorSpace(){var t,e,n,i;return{primaries:null===(t=this.internalTrack.info.colorSpace)||void 0===t?void 0:t.primaries,transfer:null===(e=this.internalTrack.info.colorSpace)||void 0===e?void 0:e.transfer,matrix:null===(n=this.internalTrack.info.colorSpace)||void 0===n?void 0:n.matrix,fullRange:null===(i=this.internalTrack.info.colorSpace)||void 0===i?void 0:i.fullRange}}async canBeTransparent(){return!1}async getDecoderConfig(){var t;return this.internalTrack.info.codec?null!==(t=this.decoderConfigPromise)&&void 0!==t?t:this.decoderConfigPromise=(async(t,e)=>{if("vp9"!==this.internalTrack.info.codec||this.internalTrack.info.vp9CodecInfo){if("av1"===this.internalTrack.info.codec&&!this.internalTrack.info.av1CodecInfo){const t=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=t&&(t=>{for(const{type:e,data:n}of dT(t)){if(1!==e)continue;const t=new H_(n),i=t.readBits(3);t.readBits(1);const r=t.readBits(1);let o=0,s=0,a=0;if(r)o=t.readBits(5);else{if(t.readBits(1)&&(t.skipBits(32),t.skipBits(32),t.readBits(1)))return null;const e=t.readBits(1);e&&(a=t.readBits(5),t.skipBits(32),t.skipBits(5),t.skipBits(5));const n=t.readBits(5);for(let i=0;i<=n;i++){t.skipBits(12);const n=t.readBits(5);if(0===i&&(o=n),n>7){const e=t.readBits(1);0===i&&(s=e)}if(e&&t.readBits(1)){const e=a+1;t.skipBits(e),t.skipBits(e),t.skipBits(1)}t.readBits(1)&&t.skipBits(4)}}const l=t.readBits(4),c=t.readBits(4),u=l+1;t.skipBits(u);const d=c+1;t.skipBits(d);let h=0;if(h=r?0:t.readBits(1),h&&(t.skipBits(4),t.skipBits(3)),t.skipBits(1),t.skipBits(1),t.skipBits(1),!r){t.skipBits(1),t.skipBits(1),t.skipBits(1),t.skipBits(1);const e=t.readBits(1);e&&(t.skipBits(1),t.skipBits(1));let n=0;n=t.readBits(1)?2:t.readBits(1),n>0&&(t.readBits(1)||t.skipBits(1)),e&&t.skipBits(3)}t.skipBits(1),t.skipBits(1),t.skipBits(1);const f=t.readBits(1);let p=8;2===i&&f?p=t.readBits(1)?12:10:i<=2&&(p=f?10:8);let m=0;1!==i&&(m=t.readBits(1));let v=1,g=1,y=0;return m||(0===i?(v=1,g=1):1===i?(v=0,g=0):12===p&&(v=t.readBits(1),v&&(g=t.readBits(1))),v&&g&&(y=t.readBits(2))),{profile:i,level:o,tier:s,bitDepth:p,monochrome:m,chromaSubsamplingX:v,chromaSubsamplingY:g,chromaSamplePosition:y}}return null})(t.data)}}else{const t=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=t&&(t=>{const e=new H_(t);if(2!==e.readBits(2))return null;const n=e.readBits(1),i=(e.readBits(1)<<1)+n;if(3===i&&e.skipBits(1),1===e.readBits(1))return null;if(0!==e.readBits(1))return null;if(e.skipBits(2),4817730!==e.readBits(24))return null;let r=8;i>=2&&(r=e.readBits(1)?12:10);const o=e.readBits(3);let s=0,a=0;if(7!==o)if(a=e.readBits(1),1===i||3===i){const t=e.readBits(1),n=e.readBits(1);s=t||n?t&&!n?2:1:3,e.skipBits(1)}else s=1;else s=3,a=1;const l=(e.readBits(16)+1)*(e.readBits(16)+1);let c=k_(J_).level;for(const t of J_)if(l<=t.maxPictureSize){c=t.level;break}return{profile:i,level:c,bitDepth:r,chromaSubsampling:s,videoFullRangeFlag:a,colourPrimaries:2===o?1:1===o?6:2,transferCharacteristics:2===o?1:1===o?6:2,matrixCoefficients:7===o?0:2===o?1:1===o?6:2}})(t.data)}return{codec:Z_(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,displayAspectWidth:this.internalTrack.info.squarePixelWidth,displayAspectHeight:this.internalTrack.info.squarePixelHeight,description:null!==(t=this.internalTrack.info.codecDescription)&&void 0!==t?t:void 0,colorSpace:null!==(e=this.internalTrack.info.colorSpace)&&void 0!==e?e:void 0}})():null}}class DT extends CT{constructor(t){super(t),this.decoderConfig=null,this.internalTrack=t}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){var t,e;return this.internalTrack.info.codec?null!==(t=this.decoderConfig)&&void 0!==t?t:this.decoderConfig={codec:tT(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:null!==(e=this.internalTrack.info.codecDescription)&&void 0!==e?e:void 0}:null}}const RT=(t,e)=>{if(t.presentationTimestamps){const n=D_(t.presentationTimestamps,e,(t=>t.presentationTimestamp));return-1===n?-1:t.presentationTimestamps[n].sampleIndex}{const n=D_(t.sampleTimingEntries,e,(t=>t.startDecodeTimestamp));if(-1===n)return-1;const i=t.sampleTimingEntries[n];return i.startIndex+Math.min(Math.floor((e-i.startDecodeTimestamp)/i.delta),i.count-1)}},LT=(t,e)=>{if(!t.keySampleIndices)return RT(t,e);if(t.presentationTimestamps){const n=D_(t.presentationTimestamps,e,(t=>t.presentationTimestamp));if(-1===n)return-1;for(let e=n;e>=0;e--){const n=t.presentationTimestamps[e].sampleIndex;if(-1!==P_(t.keySampleIndices,n,(t=>t)))return n}return-1}{var n;const i=RT(t,e),r=D_(t.keySampleIndices,i,(t=>t));return null!==(n=t.keySampleIndices[r])&&void 0!==n?n:-1}},BT=(t,e)=>{const n=D_(t.sampleTimingEntries,e,(t=>t.startIndex)),i=t.sampleTimingEntries[n];if(!i||i.startIndex+i.count<=e)return null;let r=i.startDecodeTimestamp+(e-i.startIndex)*i.delta;const o=D_(t.sampleCompositionTimeOffsets,e,(t=>t.startIndex)),s=t.sampleCompositionTimeOffsets[o];s&&e-s.startIndex<s.count&&(r+=s.offset);const a=t.sampleSizes[Math.min(e,t.sampleSizes.length-1)],l=D_(t.sampleToChunk,e,(t=>t.startSampleIndex)),c=t.sampleToChunk[l];b_(c);const u=c.startChunkIndex+Math.floor((e-c.startSampleIndex)/c.samplesPerChunk),d=t.chunkOffsets[u],h=c.startSampleIndex+(u-c.startChunkIndex)*c.samplesPerChunk;let f=0,p=d;if(1===t.sampleSizes.length)p+=a*(e-h),f+=a*c.samplesPerChunk;else for(let n=h;n<h+c.samplesPerChunk;n++){const i=t.sampleSizes[n];n<e&&(p+=i),f+=i}let m=i.delta;if(t.presentationTimestamps){const n=t.presentationTimestampIndexMap[e];b_(void 0!==n),n<t.presentationTimestamps.length-1&&(m=t.presentationTimestamps[n+1].presentationTimestamp-r)}return{presentationTimestamp:r,duration:m,sampleOffset:p,sampleSize:a,chunkOffset:d,chunkSize:f,isKeyFrame:!t.keySampleIndices||-1!==P_(t.keySampleIndices,e,(t=>t))}},zT=(t,e)=>{var n;if(!t.keySampleIndices)return e+1;const i=D_(t.keySampleIndices,e,(t=>t));return null!==(n=t.keySampleIndices[i+1])&&void 0!==n?n:-1},WT=(t,e)=>{t.startTimestamp+=e,t.endTimestamp+=e;for(const n of t.samples)n.presentationTimestamp+=e;for(const n of t.presentationTimestamps)n.presentationTimestamp+=e},jT=t=>{const[e,,,n]=t,i=Math.hypot(e,n),r=e/i,o=n/i,s=-Math.atan2(o,r)*(180/Math.PI);return Number.isFinite(s)?s:0},UT=t=>0===t.sampleSizes.length;class $T{}class qT extends $T{async _getMajorBrand(t){let e=t._reader.requestSlice(0,12);return e instanceof Promise&&(e=await e),e?(e.skip(4),"ftyp"!==cI(e,4)?null:cI(e,4)):null}_createDemuxer(t){return new OT(t)}}const VT=new class extends qT{async _canReadInput(t){const e=await this._getMajorBrand(t);return!!e&&"qt "!==e}get name(){return"MP4"}get mimeType(){return"video/mp4"}};class GT{constructor(){this._disposed=!1,this._sizePromise=null,this.onread=null}async getSizeOrNull(){var t;if(this._disposed)throw new XT;return null!==(t=this._sizePromise)&&void 0!==t?t:this._sizePromise=Promise.resolve(this._retrieveSize())}async getSize(){if(this._disposed)throw new XT;const t=await this.getSizeOrNull();if(null===t)throw new Error("Cannot determine the size of an unsized source.");return t}}class HT extends GT{constructor(t,e={}){var n;if(!(t instanceof ReadableStream))throw new TypeError("stream must be a ReadableStream.");if(!e||"object"!=typeof e)throw new TypeError("options must be an object.");if(void 0!==e.maxCacheSize&&(!q_(e.maxCacheSize)||e.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative number.");super(),this._reader=null,this._cache=[],this._pendingSlices=[],this._currentIndex=0,this._targetIndex=0,this._maxRequestedIndex=0,this._endIndex=null,this._pulling=!1,this._stream=t,this._maxCacheSize=null!==(n=e.maxCacheSize)&&void 0!==n?n:16777216}_retrieveSize(){return this._endIndex}_read(t,e){if(null!==this._endIndex&&e>this._endIndex)return null;this._maxRequestedIndex=Math.max(this._maxRequestedIndex,e);const n=D_(this._cache,t,(t=>t.start)),i=-1!==n?this._cache[n]:null;if(i&&i.start<=t&&e<=i.end)return{bytes:i.bytes,view:i.view,offset:i.start};let r=t;const o=new Uint8Array(e-t);if(-1!==n)for(let i=n;i<this._cache.length;i++){const n=this._cache[i];if(n.start>=e)break;const s=Math.max(t,n.start);s>r&&this._throwDueToCacheMiss();const a=Math.min(e,n.end);s<a&&(o.set(n.bytes.subarray(s-n.start,a-n.start),s-t),r=a)}if(r===e)return{bytes:o,view:__(o),offset:t};this._currentIndex>r&&this._throwDueToCacheMiss();const{promise:s,resolve:a,reject:l}=R_();return this._pendingSlices.push({start:t,end:e,bytes:o,resolve:a,reject:l}),this._targetIndex=Math.max(this._targetIndex,e),this._pulling||(this._pulling=!0,this._pull().catch((t=>{if(this._pulling=!1,!(this._pendingSlices.length>0))throw t;this._pendingSlices.forEach((e=>e.reject(t))),this._pendingSlices.length=0}))),s}_throwDueToCacheMiss(){throw new Error("Read is before the cached region. With ReadableStreamSource, you must access the data more sequentially or increase the size of its cache.")}async _pull(){for(null!==(t=this._reader)&&void 0!==t||(this._reader=this._stream.getReader());this._currentIndex<this._targetIndex&&!this._disposed;){var t;const{done:e,value:n}=await this._reader.read();if(e){for(const t of this._pendingSlices)t.resolve(null);this._pendingSlices.length=0,this._endIndex=this._currentIndex;break}const i=this._currentIndex,r=this._currentIndex+n.byteLength;for(let t=0;t<this._pendingSlices.length;t++){const e=this._pendingSlices[t],o=Math.max(i,e.start),s=Math.min(r,e.end);o<s&&(e.bytes.set(n.subarray(o-i,s-i),o-e.start),s===e.end&&(e.resolve({bytes:e.bytes,view:__(e.bytes),offset:e.start}),this._pendingSlices.splice(t,1),t--))}for(this._cache.push({start:i,end:r,bytes:n,view:__(n),age:0});this._cache.length>0;){const t=this._cache[0];if(this._maxRequestedIndex-t.end<=this._maxCacheSize)break;this._cache.shift()}this._currentIndex+=n.byteLength}this._pulling=!1}_dispose(){this._pendingSlices.length=0,this._cache.length=0}}null!==(ge=Symbol.dispose)&&void 0!==ge||(Symbol.dispose=Symbol("Symbol.dispose"));class KT{get disposed(){return this._disposed}constructor(t){if(this._demuxerPromise=null,this._format=null,this._disposed=!1,!t||"object"!=typeof t)throw new TypeError("options must be an object.");if(!Array.isArray(t.formats)||t.formats.some((t=>!(t instanceof $T))))throw new TypeError("options.formats must be an array of InputFormat.");if(!(t.source instanceof GT))throw new TypeError("options.source must be a Source.");if(t.source._disposed)throw new Error("options.source must not be disposed.");this._formats=t.formats,this._source=t.source,this._reader=new YT(t.source)}_getDemuxer(){var t;return null!==(t=this._demuxerPromise)&&void 0!==t?t:this._demuxerPromise=(async()=>{this._reader.fileSize=await this._source.getSizeOrNull();for(const t of this._formats)if(await t._canReadInput(this))return this._format=t,t._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),b_(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getFirstTimestamp(){const t=await this.getTracks();if(0===t.length)return 0;const e=await Promise.all(t.map((t=>t.getFirstTimestamp())));return Math.min(...e)}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter((t=>t.isVideoTrack()))}async getAudioTracks(){return(await this.getTracks()).filter((t=>t.isAudioTrack()))}async getPrimaryVideoTrack(){var t;return null!==(t=(await this.getTracks()).find((t=>t.isVideoTrack())))&&void 0!==t?t:null}async getPrimaryAudioTrack(){var t;return null!==(t=(await this.getTracks()).find((t=>t.isAudioTrack())))&&void 0!==t?t:null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}dispose(){this._disposed||(this._disposed=!0,this._source._disposed=!0,this._source._dispose())}[Symbol.dispose](){this.dispose()}}class XT extends Error{constructor(t="Input has been disposed."){super(t),this.name="InputDisposedError"}}class YT{constructor(t){this.source=t}requestSlice(t,e){if(this.source._disposed)throw new XT;if(t<0)return null;if(null!==this.fileSize&&t+e>this.fileSize)return null;const n=t+e,i=this.source._read(t,n);return i instanceof Promise?i.then((e=>e?new QT(e.bytes,e.view,e.offset,t,n):null)):i?new QT(i.bytes,i.view,i.offset,t,n):null}requestSliceRange(t,e,n){if(this.source._disposed)throw new XT;if(t<0)return null;if(null!==this.fileSize)return this.requestSlice(t,B_(this.fileSize-t,e,n));{const i=this.requestSlice(t,n),r=i=>{if(i)return i;const r=i=>(b_(null!==i),this.requestSlice(t,B_(i-t,e,n))),o=this.source._retrieveSize();return o instanceof Promise?o.then(r):r(o)};return i instanceof Promise?i.then(r):r(i)}}}class QT{constructor(t,e,n,i,r){this.bytes=t,this.view=e,this.offset=n,this.start=i,this.end=r,this.bufferPos=i-n}static tempFromBytes(t){return new QT(t,__(t),0,0,t.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(t){this.bufferPos=t-this.offset}get remainingLength(){return Math.max(this.end-this.filePos,0)}skip(t){this.bufferPos+=t}slice(t,e=this.end-t){if(t<this.start||t+e>this.end)throw new RangeError("Slicing outside of original slice.");return new QT(this.bytes,this.view,this.offset,t,t+e)}}const JT=(t,e)=>{if(t.filePos<t.start||t.filePos+e>t.end)throw new RangeError(`Tried reading [${t.filePos}, ${t.filePos+e}), but slice is [${t.start}, ${t.end}). This is likely an internal error, please report it alongside the file that caused it.`)},ZT=(t,e)=>{JT(t,e);const n=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,n},tI=t=>(JT(t,1),t.view.getUint8(t.bufferPos++)),eI=t=>{JT(t,2);const e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},nI=t=>{JT(t,3);const e=L_(t.view,t.bufferPos);return t.bufferPos+=3,e},iI=t=>{JT(t,2);const e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},rI=t=>{JT(t,4);const e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},oI=t=>{JT(t,4);const e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},sI=t=>4294967296*rI(t)+rI(t),aI=t=>4294967296*oI(t)+rI(t),lI=t=>{JT(t,8);const e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},cI=(t,e)=>{JT(t,e);let n="";for(let i=0;i<e;i++)n+=String.fromCharCode(t.bytes[t.bufferPos++]);return n};var uI=new WeakMap,dI=new WeakMap,hI=new WeakMap,fI=new WeakMap,pI=new WeakMap,mI=new WeakMap,vI=new WeakMap,gI=new WeakMap,yI=new WeakMap,bI=new WeakMap,kI=new WeakMap,wI=new WeakMap,xI=new WeakMap,_I=new WeakMap,TI=new WeakMap,II=new WeakSet;class EI extends md{constructor(...t){super(...t),U(this,II),W(this,uI,null),W(this,dI,null),W(this,hI,null),W(this,fI,null),W(this,pI,!1),W(this,mI,!1),W(this,vI,!1),W(this,gI,!1),W(this,yI,void 0),W(this,bI,null),W(this,kI,null),W(this,wI,!1),W(this,xI,!1),W(this,_I,null),W(this,TI,!1)}get name(){return"FMP4Demuxer"}get defaults(){return{}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"pushChunk","endOfStream"])}pushChunk(t,e={}){if(z(vI,this)||z(gI,this))return;const n=t instanceof Uint8Array?t:new Uint8Array(t),i=!!e.isInit;j(bI,this,L(II,this,OI).call(this,n,e,i)),i&&(j(yI,this,n),j(kI,this,null),this.trigger("demux:init",{data:n})),L(II,this,FI).call(this);try{var r;const t=null===(r=z(uI,this))||void 0===r?void 0:r.write(n);t&&"function"==typeof t.catch&&t.catch((t=>{L(II,this,CI).call(this,t)}))}catch(t){if(z(vI,this)||L(II,this,SI).call(this,t))return;return this.log.warn("[FMP4Demuxer] mediabunny demux failed",t),void L(II,this,CI).call(this,t)}const o=L(II,this,RI).call(this);o&&"function"==typeof o.catch&&o.catch((t=>{L(II,this,CI).call(this,t)}))}endOfStream(){if(z(gI,this))return;if(z(wI,this))return;let t;j(wI,this,!0),j(xI,this,!1),j(TI,this,!1);try{var e;t=null===(e=z(uI,this))||void 0===e?void 0:e.close()}catch(e){t=Promise.resolve()}let n=!1;L(II,this,NI).call(this),j(_I,this,setTimeout((()=>{j(_I,this,null),n||z(xI,this)||z(gI,this)||L(II,this,MI).call(this)}),20)),Promise.resolve(t).catch((()=>{})).finally((()=>{n=!0,L(II,this,NI).call(this),L(II,this,MI).call(this)}))}onDispose(){super.onDispose(),j(gI,this,!0);try{var t,e;null===(t=z(hI,this))||void 0===t||null===(e=t.close)||void 0===e||e.call(t)}catch(t){}this.endOfStream();try{var n,i;null===(n=z(dI,this))||void 0===n||null===(i=n.dispose)||void 0===i||i.call(n)}catch(t){}j(hI,this,null),j(dI,this,null),j(vI,this,!1),j(bI,this,null),j(fI,this,null),j(pI,this,!1),j(mI,this,!1),j(wI,this,!1),j(xI,this,!1),j(TI,this,!1),L(II,this,NI).call(this)}}function SI(t){return!!z(gI,this)&&(!t||("InputDisposedError"===(null==t?void 0:t.name)||("string"==typeof(null==t?void 0:t.message)?t.message:"").includes("Input has been disposed")))}function AI(){try{var t,e;const n=null===(t=z(uI,this))||void 0===t||null===(e=t.close)||void 0===e?void 0:e.call(t);n&&"function"==typeof n.catch&&n.catch((()=>{}))}catch(t){}j(uI,this,null)}function NI(){null!==z(_I,this)&&(clearTimeout(z(_I,this)),j(_I,this,null))}function MI(){if(z(xI,this)||z(gI,this)||z(vI,this))return;if(j(xI,this,!0),z(mI,this))return void j(TI,this,!0);j(TI,this,!1);const t=L(II,this,RI).call(this);t&&"function"==typeof t.catch&&t.catch((t=>{L(II,this,CI).call(this,t)}))}function FI(){if(z(dI,this)&&z(uI,this))return;const t=yd.TransformStream;if(void 0===t)throw new Error("TransformStream is not available in this environment");const{readable:e,writable:n}=new t;j(uI,this,n.getWriter()),j(dI,this,new KT({source:new HT(e),formats:[VT]})),j(pI,this,!1)}function OI(t,e,n){const i={isInit:n,byteLength:(null==t?void 0:t.byteLength)||0};return"number"==typeof e.loaded&&(i.loaded=e.loaded),"number"==typeof e.total&&(i.total=e.total),"number"==typeof e.pts&&(i.pts=e.pts),"number"==typeof e.dts&&(i.dts=e.dts),"number"==typeof e.duration&&(i.duration=e.duration),"boolean"==typeof e.isKey&&(i.isKey=e.isKey),i}function CI(t){if(z(vI,this)||L(II,this,SI).call(this,t))return;if(L(II,this,DI).call(this,t))return void j(pI,this,!1);j(vI,this,!0),L(II,this,AI).call(this);try{var e,n;null===(e=z(hI,this))||void 0===e||null===(n=e.close)||void 0===n||n.call(e)}catch(t){}j(hI,this,null);try{var i,r;null===(i=z(dI,this))||void 0===i||null===(r=i.dispose)||void 0===r||r.call(i)}catch(t){}j(dI,this,null);const o={error:t,recoverable:!1,severity:"fatal",streamClosed:z(wI,this),streamFinalized:z(xI,this)};z(bI,this)&&(o.context={...z(bI,this)}),this.trigger("demux:error",o)}function PI(t){if(!t)return!1;const e="string"==typeof(null==t?void 0:t.message)?t.message:"";return!!e&&(e.includes("unsupported or unrecognizable format")||e.includes("No supported tracks found"))}function DI(t){return!!L(II,this,PI).call(this,t)&&(!z(xI,this)||z(TI,this))}async function RI(){if(!(z(gI,this)||z(vI,this)||z(pI,this)||z(mI,this))){j(mI,this,!0);try{L(II,this,FI).call(this);const t=await z(dI,this).getPrimaryVideoTrack(),e=t?null:await z(dI,this).getPrimaryAudioTrack(),n=t||e;if(!n)throw new Error("No supported tracks found in MP4");const i=await n.getDecoderConfig(),r=await n.getCodecParameterString(),o=await z(dI,this).getMimeType();this.trigger("demux:init",{...z(yI,this)?{data:z(yI,this)}:{},decoderConfig:i,codec:r,mimeType:o}),j(hI,this,new xT(n)),j(pI,this,!0),j(fI,this,(async()=>{try{for await(const t of z(hI,this).packets()){if(z(gI,this))break;const e="number"==typeof t.timestamp?t.timestamp:0;null===z(kI,this)&&j(kI,this,e);let n=e-z(kI,this);n<0&&(n=0),this.trigger("demux:sample",{data:t.data,pts:n,dts:n,duration:t.duration,isKey:"key"===t.type})}this.trigger("demux:complete")}catch(t){L(II,this,CI).call(this,t)}})())}catch(t){if(L(II,this,DI).call(this,t))return;throw t}finally{j(mI,this,!1),!z(TI,this)||z(vI,this)||z(gI,this)||L(II,this,MI).call(this)}}}const LI=1e6,BI=24e3/1001,zI={primaries:"bt709",transfer:"bt709",matrix:"bt709",fullRange:!0},WI=new Uint8Array;function jI(t){return t?t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):WI:WI}let UI=null;const $I={video:(ye=new WeakMap,be=new WeakMap,ke=new WeakMap,we=new WeakMap,xe=new WeakMap,_e=new WeakMap,Te=new WeakMap,Ie=new WeakMap,Ee=new WeakMap,Se=new WeakMap,Ae=new WeakMap,Ne=new WeakMap,Me=new WeakMap,Fe=new WeakMap,Oe=new WeakMap,Ce=new WeakMap,Pe=new WeakMap,De=new WeakMap,Re=new WeakMap,Le=new WeakMap,Be=new WeakMap,ze=new WeakMap,We=new WeakMap,je=new WeakMap,Ue=new WeakMap,$e=new WeakMap,qe=new WeakMap,Ve=new WeakMap,Ge=new WeakMap,He=new WeakMap,Ke=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,Qe=new WeakMap,Je=new WeakSet,class extends y_{get name(){return"WebCodecsSegmentDecoder"}get defaults(){return{decodedHorizonSeconds:1,maxDecodedFrames:24,maxDecodeQueueSize:4,av1ColorSpaceOverrideEnabled:!0,convertFramesToBitmapsOnAndroid:!0,androidFixEndOfSegmentDelta:.2}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"decodeChunk"])}constructor(...t){super(...t),U(this,Je),W(this,ye,void 0),W(this,be,[]),W(this,ke,void 0),W(this,we,void 0),W(this,xe,void 0),W(this,_e,void 0),W(this,Te,[]),W(this,Ie,void 0),W(this,Ee,new Map),W(this,Se,!0),W(this,Ae,!1),W(this,Ne,!1),W(this,Me,!1),W(this,Fe,void 0),W(this,Oe,!1),W(this,Ce,!1),W(this,Pe,0),W(this,De,void 0),W(this,Re,void 0),W(this,Le,{}),W(this,Be,void 0),W(this,ze,0),W(this,We,null),W(this,je,!1),W(this,Ue,null),W(this,$e,void 0),W(this,qe,0),W(this,Ve,0),W(this,Ge,0),W(this,He,0),W(this,Ke,!1),W(this,Xe,!1),W(this,Ye,.2),W(this,Qe,Promise.resolve()),j(ke,this,this.settings.decodedHorizonSeconds||1),j(we,this,L(Je,this,PE).call(this,this.settings.maxDecodedFrames)),j(xe,this,L(Je,this,RE).call(this,this.settings.maxDecodeQueueSize)),j(Ke,this,Iv()),j(Xe,this,L(Je,this,EE).call(this,this.settings.convertFramesToBitmapsOnAndroid)),j(Ye,this,L(Je,this,SE).call(this,this.settings.androidFixEndOfSegmentDelta)),j(_e,this,(()=>0)),j(Ie,this,(()=>L(Je,this,vE).call(this)));const e=this.settings.demuxerOptions?{FMP4Demuxer:this.settings.demuxerOptions}:{};j(ye,this,new EI(e)),z(ye,this).on("demux:init",(t=>L(Je,this,sE).call(this,t))),z(ye,this).on("demux:sample",(t=>L(Je,this,aE).call(this,t))),z(ye,this).on("demux:complete",(()=>L(Je,this,lE).call(this))),z(ye,this).on("demux:error",(t=>L(Je,this,XI).call(this,t)))}setCurrentTimeProvider(t){"function"==typeof t&&j(_e,this,t)}setTimeOffsetSeconds(t){const e=Number(t);j(ze,this,Number.isFinite(e)?e:0)}setSeekTargetTimeSeconds(t){const e=Number(t);j(We,this,Number.isFinite(e)?e:null),j(je,this,!1),j(Ue,this,null)}endOfStream(){z(ye,this)&&"function"==typeof z(ye,this).endOfStream&&z(ye,this).endOfStream()}configure(t){super.configure(t),j(Le,this,{codec:L(Je,this,jE).call(this,t),width:(null==t?void 0:t.codedWidth)||(null==t?void 0:t.width),height:(null==t?void 0:t.codedHeight)||(null==t?void 0:t.height)}),j(De,this,z(Le,this).codec)}setSegment(t){this.lastSegment=t,L(Je,this,nE).call(this)}setNodeId(t){j($e,this,t)}decode(t){this.setSegment(t);const e=null==t?void 0:t.arrayBuffer;e&&z(ye,this).pushChunk(e,{isInit:!(null==t||!t.isInit)})}async decodeChunk(t,e={}){await z(ye,this).pushChunk(t,{isInit:!!e.isInit,pts:"number"==typeof e.pts?e.pts:void 0,dts:"number"==typeof e.dts?e.dts:void 0,duration:"number"==typeof e.duration?e.duration:void 0,isKey:!!e.isKey,loaded:"number"==typeof e.loaded?e.loaded:void 0,total:"number"==typeof e.total?e.total:void 0})}get decodedFrames(){return z(be,this).slice()}onDispose(){if(super.onDispose(),L(Je,this,bE).call(this),z(ye,this)&&"function"==typeof z(ye,this).dispose&&z(ye,this).dispose(),j(be,this,[]),j(Te,this,[]),z(Ee,this).clear(),j(Ue,this,null),z(Fe,this)&&"function"==typeof z(Fe,this).close)try{z(Fe,this).close()}catch(t){}j(Fe,this,null),j(Oe,this,!1),j(Re,this,null),j(De,this,null),j($e,this,null),j(Qe,this,Promise.resolve()),L(Je,this,nE).call(this)}}),audio:(Ze=new WeakMap,tn=new WeakMap,en=new WeakMap,nn=new WeakMap,rn=new WeakMap,on=new WeakMap,sn=new WeakMap,an=new WeakSet,class extends y_{constructor(...t){super(...t),U(this,an),W(this,Ze,void 0),W(this,tn,[]),W(this,en,0),W(this,nn,!1),W(this,rn,!1),W(this,on,void 0),W(this,sn,0)}get name(){return"WebAudioDecoder"}setSegment(t){j(on,this,t)}setTimeOffsetSeconds(t){const e=Number(t);j(sn,this,Number.isFinite(e)?e:0)}decode(t){if(this.lastSegment=t,!t)return;if(t.isInit)return void j(Ze,this,jI(t.arrayBuffer));const e=t.arrayBuffer;e&&L(an,this,GI).call(this,jI(e),!0)}decodeChunk(t,e={}){if(!t)return;if(e.isInit)return void j(Ze,this,jI(t));const n=jI(t);if(!n.length)return;z(tn,this).push(n),j(en,this,z(en,this)+n.length);const i=Number(e.loaded),r=Number(e.total);Number.isFinite(i)&&Number.isFinite(r)&&r>0&&i>=r&&L(an,this,qI).call(this)}endOfStream(){L(an,this,qI).call(this)}onDispose(){super.onDispose(),j(Ze,this,void 0),j(tn,this,[]),j(en,this,0),j(nn,this,!1),j(rn,this,!1),j(on,this,void 0)}}),image:class extends y_{#R;#L=0;#B=[];#z=0;#W;get name(){return"ImageDecoder"}setSegment(t){this.#R=t}setTimeOffsetSeconds(t){const e=Number(t);this.#L=Number.isFinite(e)?e:0}decode(t){super.decode(t),t&&(this.#R=t);const e=null==t?void 0:t.arrayBuffer;e instanceof ArrayBuffer&&(this.#B=[new Uint8Array(e)],this.#z=e.byteLength,this.endOfStream())}decodeChunk(t,e={}){if(null!=e&&e.isInit)return;const n=function(t){if(t)return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):ArrayBuffer.isView(t)&&t.buffer?new Uint8Array(t.buffer):void 0}(t);n&&n.length&&(this.#B.push(n),this.#z+=n.length)}async endOfStream(){var t,e,n;if(this.#W)return;if(!(this.#B.length&&this.#z>0))return;const i=new Uint8Array(this.#z);let r=0;for(let t=0;t<this.#B.length;t+=1){const e=this.#B[t];i.set(e,r),r+=e.length}const o=null===(t=this.#R)||void 0===t?void 0:t.chosenRepresentation,s=(null==o?void 0:o.mime)||(null===(e=this.track)||void 0===e?void 0:e.mimeType)||(null===(n=this.track)||void 0===n?void 0:n.mime)||function(t){if(t instanceof Uint8Array&&!(t.byteLength<4))return t.byteLength>=8&&137===t[0]&&80===t[1]&&78===t[2]&&71===t[3]&&13===t[4]&&10===t[5]&&26===t[6]&&10===t[7]?"image/png":255===t[0]&&216===t[1]&&255===t[2]?"image/jpeg":t.byteLength>=6&&71===t[0]&&73===t[1]&&70===t[2]&&56===t[3]?"image/gif":t.byteLength>=12&&82===t[0]&&73===t[1]&&70===t[2]&&70===t[3]&&87===t[8]&&69===t[9]&&66===t[10]&&80===t[11]?"image/webp":void 0}(i);try{var a,l;const t=await async function(t,e){const n=function(t,e){if(!(t&&t.byteLength>0))return;if("function"!=typeof yd.Blob)return;const n="string"==typeof e?e:"";return new yd.Blob([t],n?{type:n}:void 0)}(t,e);if(!n)throw new Error("Image decode requires Blob support");let i;if("function"==typeof yd.Image&&yd.URL&&"function"==typeof yd.URL.createObjectURL&&"function"==typeof yd.URL.revokeObjectURL){const t=yd.URL.createObjectURL(n);try{const e=new yd.Image;return await new Promise(((n,i)=>{e.onload=()=>n(),e.onerror=t=>i(t||new Error("Image decode failed")),e.src=t})),e}catch(t){i=t}finally{yd.URL.revokeObjectURL(t)}}if("function"==typeof yd.createImageBitmap)try{return yd.createImageBitmap(n)}catch(t){i=t}if(i)throw i;throw new Error("No supported image decode mechanism")}(i,s);this.#W=t;const e=function(t){if(!t)return;const e=[[t.naturalWidth,t.naturalHeight],[t.width,t.height],[t.displayWidth,t.displayHeight],[t.videoWidth,t.videoHeight],[t.codedWidth,t.codedHeight]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}(t);e&&o&&(my(o.width)||(o.width=e.width),my(o.height)||(o.height=e.height)),this.trigger("decoder:frame",{pts:this.#L,duration:my(null===(a=this.#R)||void 0===a?void 0:a.duration)?this.#R.duration:null===(l=this.track)||void 0===l?void 0:l.duration,frame:t})}catch(t){this.trigger("decoder:error",{error:t})}}onDispose(){if(super.onDispose(),this.#W&&"function"==typeof this.#W.close)try{this.#W.close()}catch(t){}this.#W=null,this.#B=[],this.#z=0,this.#R=null}}};function qI(){if(z(nn,this)||z(rn,this))return;if(!z(en,this))return;const t=L(an,this,VI).call(this);t.length&&L(an,this,GI).call(this,t,!1)}function VI(){const t=z(Ze,this),e=t?t.length:0,n=e+z(en,this);if(!n)return WI;const i=new Uint8Array(n);let r=0;e&&(i.set(t,r),r+=e);for(let t=0;t<z(tn,this).length;t+=1){const e=z(tn,this)[t];e&&e.length&&(i.set(e,r),r+=e.length)}return i}function GI(t,e){if(z(nn,this)||z(rn,this))return;const n=e?L(an,this,HI).call(this,t):t;if(!n||!n.length)return;const i=function(){if(UI)return UI;const t=yd.AudioContext||yd.webkitAudioContext;return t?(UI=new t,UI):null}();if(!i||"function"!=typeof i.decodeAudioData)return void this.trigger("decoder:error",{error:new Error("AudioContext is not available")});const r=n.buffer.slice(0);j(rn,this,!0),new Promise(((t,e)=>{const n=i.decodeAudioData(r,t,e);n&&"function"==typeof n.then&&n.then(t).catch(e)})).then((t=>{var e;j(nn,this,!0);const n=Number.isFinite(null==t?void 0:t.duration)?t.duration:Number(null===(e=z(on,this))||void 0===e?void 0:e.duration)||void 0;this.trigger("decoder:audio",{audioBuffer:t,pts:z(sn,this),duration:n})})).catch((t=>{this.trigger("decoder:error",{error:t})})).finally((()=>{j(tn,this,[]),j(en,this,0),j(rn,this,!1)}))}function HI(t){const e=z(Ze,this);if(!e||!e.length)return t;const n=e.length+t.length,i=new Uint8Array(n);return i.set(e,0),i.set(t,e.length),i}function KI(t,e){var n,i,r,o,s;const a=null!=t&&t.context&&"object"==typeof t.context?t.context:void 0;return{error:e,errorName:null==e?void 0:e.name,errorMessage:"string"==typeof(null==e?void 0:e.message)?e.message:void 0,nodeId:z($e,this),trackId:null===(n=this.track)||void 0===n?void 0:n.id,trackType:null===(i=this.track)||void 0===i?void 0:i.type,codec:(null===(r=z(Le,this))||void 0===r?void 0:r.codec)||z(De,this),segmentId:null===(o=this.lastSegment)||void 0===o?void 0:o.id,segmentIsInit:!(null===(s=this.lastSegment)||void 0===s||!s.isInit),chunkContext:a}}function XI(t){const e=(null==t?void 0:t.error)||t,n=L(Je,this,KI).call(this,t,e);if(L(Je,this,YI).call(this,t,e))return this.log.warn("[onDemuxError] recoverable demux error",n),void L(Je,this,lE).call(this);const i=L(Je,this,oE).call(this,t),r=L(Je,this,QI).call(this,i);if(i&&0===i.missingFrames)return this.log.warn(`[onDemuxError] ignoring demux error (no missing frames)${r}`,{...n,missingFrameStats:i}),void L(Je,this,lE).call(this);let o=n;i&&(o={...n,missingFrameStats:i}),this.log.warn(`[onDemuxError] demux error${r}`,o),this.trigger("decoder:error",t)}function YI(t,e){if("boolean"==typeof(null==t?void 0:t.recoverable))return t.recoverable;const n="string"==typeof(null==t?void 0:t.severity)?t.severity:"";if(n)return"recoverable"===n||"transient"===n;const i="string"==typeof(null==e?void 0:e.message)?e.message:"";return!!i&&(i.includes("unsupported or unrecognizable format")||i.includes("No supported tracks found"))}function QI(t){return t?` expectedFrames=${L(Je,this,JI).call(this,t.expectedFrames)} demuxedFrames=${L(Je,this,JI).call(this,t.demuxedFrames)} missingFrames=${L(Je,this,JI).call(this,t.missingFrames)}`:""}function JI(t){if(null==t)return"unknown";const e=Number(t);return Number.isFinite(e)?String(e):"unknown"}function ZI(t,e={}){return{expectedFrames:null,demuxedFrames:z(qe,this),missingFrames:null,reason:t,...e}}function tE(t){const e=Number(t);return Number.isFinite(e)?e:null}function eE(t){var e,n;const i=(null==t?void 0:t.context)||{},r=Number(i.loaded),o=Number(i.total);if(!Number.isFinite(o)||o<=0||!Number.isFinite(r)||r<o)return null;if(null!==(e=this.lastSegment)&&void 0!==e&&e.isInit)return null;const s=Number(null===(n=this.lastSegment)||void 0===n?void 0:n.duration);if(!Number.isFinite(s)||s<=0)return L(Je,this,ZI).call(this,"segment_duration_unavailable",{segmentDurationSeconds:L(Je,this,tE).call(this,s),demuxedCoverageSeconds:z(He,this),frameDurationSeconds:null});const a=L(Je,this,rE).call(this);if(!Number.isFinite(a)||a<=0){const t=Math.max(1,Math.round(s*BI));return{expectedFrames:t,demuxedFrames:z(qe,this),missingFrames:Math.max(0,t-z(qe,this)),reason:"fallback_fps",fallbackFps:BI,segmentDurationSeconds:s,demuxedCoverageSeconds:z(He,this),frameDurationSeconds:L(Je,this,tE).call(this,a)}}const l=Math.min(.5*a,.02),c=Math.max(0,s-z(He,this)),u=c<=l?0:c,d=Math.max(1,Math.floor((s+l)/a)),h=Math.max(0,d-z(qe,this)),f=u>0?Math.ceil(u/a):0;return{expectedFrames:d,demuxedFrames:z(qe,this),missingFrames:Math.max(h,f),segmentDurationSeconds:s,demuxedCoverageSeconds:z(He,this),frameDurationSeconds:a}}function nE(){j(qe,this,0),j(Ve,this,0),j(Ge,this,0),j(He,this,0)}function iE(t){j(qe,this,z(qe,this)+1);const e=Number(null==t?void 0:t.pts),n=Number(null==t?void 0:t.duration);if(Number.isFinite(n)&&n>0&&(j(Ve,this,z(Ve,this)+n),j(Ge,this,z(Ge,this)+1)),!Number.isFinite(e))return;const i=Number.isFinite(n)&&n>0?e+n:e;Number.isFinite(i)&&i>z(He,this)&&j(He,this,i)}function rE(){return z(Ge,this)>0?z(Ve,this)/z(Ge,this):z(qe,this)>0&&z(He,this)>0?z(He,this)/z(qe,this):null}function oE(t){return L(Je,this,eE).call(this,t)}function sE(t){(null==t?void 0:t.data)instanceof Uint8Array&&(j(Re,this,t.data.buffer),L(Je,this,wE).call(this)),null!=t&&t.decoderConfig&&(j(Be,this,t.decoderConfig),j(De,this,t.decoderConfig.codec||z(De,this)),L(Je,this,wE).call(this)),this.trigger("decoder:init",t)}function aE(t){L(Je,this,iE).call(this,t),z(Te,this).push(t),L(Je,this,vE).call(this)}function lE(){j(Ae,this,!0),L(Je,this,_E).call(this)}function cE(t){const e="number"==typeof(null==t?void 0:t.pts)?t.pts:void 0;if(Number.isFinite(e))return z(ze,this)+e}function uE(t){return z(Te,this).some((e=>{const n=L(Je,this,cE).call(this,e);return Number.isFinite(n)&&n>=t}))}function dE(t){let e=-1,n=null;for(let i=0;i<z(Te,this).length;i+=1){const r=z(Te,this)[i],o=L(Je,this,cE).call(this,r);Number.isFinite(o)&&(null==r?void 0:r.isKey)&&o<=t&&(e=i,n=o)}return{chosenIndex:e,chosenPtsSeconds:n}}function hE(t){let e=-1,n=null;for(let i=0;i<z(Te,this).length;i+=1){const r=z(Te,this)[i],o=L(Je,this,cE).call(this,r);if(Number.isFinite(o)&&null!=r&&r.isKey&&(e=i,n=o,o>=t))break}return{chosenIndex:e,chosenPtsSeconds:n}}function fE(t){const e=t+z(ke,this),n=z(We,this);if(!Number.isFinite(n))return e;const i=Number.isFinite(z(Ue,this))?z(Ue,this):null;if(Number.isFinite(i))return Math.max(e,i);const{chosenPtsSeconds:r}=L(Je,this,hE).call(this,n);return Number.isFinite(r)?Math.max(e,r):e}function pE(t){const e=z(We,this);Number.isFinite(e)&&Number.isFinite(t)&&t>=e&&(j(We,this,null),j(Ue,this,null))}function mE(){const t=z(We,this);if(!Number.isFinite(t)||z(je,this))return!0;if(!L(Je,this,uE).call(this,t)&&!z(Ae,this))return!1;const e=L(Je,this,dE).call(this,t);let n=e;if(-1===e.chosenIndex&&(n=L(Je,this,hE).call(this,t)),n.chosenIndex>0){const t=`[#maybeAlignToSeekKeyframe] Dropping ${n.chosenIndex} samples before keyframe @ ${n.chosenPtsSeconds}`;this.log.debug(t),z(Te,this).splice(0,n.chosenIndex)}return j(Se,this,!0),Number.isFinite(n.chosenPtsSeconds)&&j(Ue,this,n.chosenPtsSeconds),j(je,this,!0),!0}function vE(){const t=z(_e,this)?z(_e,this).call(this):0,e=L(Je,this,fE).call(this,t);if(L(Je,this,OE).call(this,t),L(Je,this,CE).call(this),!L(Je,this,mE).call(this))return void L(Je,this,yE).call(this);const n=void 0!==yd.VideoDecoder&&void 0!==yd.EncodedVideoChunk;for(n&&!z(Oe,this)&&z(Be,this)&&L(Je,this,wE).call(this);z(Te,this).length&&!L(Je,this,DE).call(this)&&!(n&&z(Fe,this)&&L(Je,this,LE).call(this));){const t=z(Te,this)[0],i="number"==typeof(null==t?void 0:t.pts)?t.pts:0,r=z(ze,this)+i;if(r>e)break;if(null!=t&&t.raw)z(Te,this).shift(),L(Je,this,gE).call(this,t);else{if(n){if(!z(Oe,this)||!z(Fe,this))break;if(z(Se,this)&&!t.isKey){z(Te,this).shift();continue}z(Te,this).shift();const e=Math.max(0,Math.round(r*LI));z(Ee,this).set(e,!!t.isKey);try{const n=new yd.EncodedVideoChunk({type:t.isKey?"key":"delta",timestamp:e,duration:t.duration?Math.round(t.duration*LI):void 0,data:t.data instanceof Uint8Array?t.data:new Uint8Array(t.data)});z(Fe,this).decode(n),t.isKey&&j(Se,this,!1);continue}catch(t){z(Ee,this).delete(e);const n="string"==typeof(null==t?void 0:t.message)?t.message:"";if("DataError"===(null==t?void 0:t.name)&&n.includes("key frame")){j(Se,this,!0);continue}this.log.warn("[#drainDecodeQueue] decode failed, falling back to placeholder",t)}}z(Te,this).shift(),L(Je,this,gE).call(this,t)}}L(Je,this,_E).call(this),L(Je,this,yE).call(this)}function gE(t){const e=z(_e,this)?z(_e,this).call(this):0,n=L(Je,this,fE).call(this,e),i=z(ze,this)+("number"==typeof t.pts?t.pts:0);if(i<e||i>n)return;L(Je,this,OE).call(this,e);const r={pts:i,duration:t.duration,data:t.data,isKey:t.isKey};z(be,this).push(r),L(Je,this,CE).call(this),this.trigger("decoder:frame",r),L(Je,this,pE).call(this,i)}function yE(){if(z(Te,this).length>0&&void 0!==yd.VideoDecoder){if(Ew(z(Ie,this)))return;Tw(z(Ie,this),50)}else L(Je,this,bE).call(this)}function bE(){z(Ie,this)&&Ew(z(Ie,this))&&Iw(z(Ie,this))}function kE(){return null!=yd&&yd.performance&&"function"==typeof yd.performance.now?yd.performance.now():Date.now()}function wE(){if(z(Oe,this))return;if(void 0===yd.VideoDecoder)return;if(!z(Be,this))return;if(z(Ce,this)&&L(Je,this,kE).call(this)<z(Pe,this))return;const t=L(Je,this,xE).call(this);try{j(Fe,this,new yd.VideoDecoder({output:t=>L(Je,this,IE).call(this,t),error:t=>L(Je,this,TE).call(this,t)})),z(Fe,this).configure(t),j(Oe,this,!0),j(Se,this,!0),j(Ce,this,!1),j(Pe,this,0),L(Je,this,vE).call(this)}catch(t){this.log.warn("[#maybeConfigureDecoder] configure failed, falling back to placeholder decode",t),j(Fe,this,null),j(Oe,this,!1),j(Be,this,null)}}function xE(){const t={...z(Be,this)};return L(Je,this,zE).call(this,t)&&z(Le,this).codec?t.codec=z(Le,this).codec:!t.codec&&z(De,this)&&(t.codec=z(De,this)),z(Re,this)&&!t.description&&(t.description=z(Re,this)),z(Le,this).width&&!t.codedWidth&&(t.codedWidth=z(Le,this).width),z(Le,this).height&&!t.codedHeight&&(t.codedHeight=z(Le,this).height),L(Je,this,WE).call(this,t),t}function _E(){void 0!==yd.VideoDecoder&&void 0!==yd.EncodedVideoChunk&&(z(Ce,this)||!z(Ae,this)||z(Me,this)||z(Ne,this)||z(Oe,this)&&z(Fe,this)&&"function"==typeof z(Fe,this).flush&&(z(Te,this).length||(j(Ne,this,!0),Promise.resolve().then((()=>z(Fe,this).flush())).then((()=>{j(Me,this,!0),j(Se,this,!0)})).catch((t=>{"AbortError"!==(null==t?void 0:t.name)&&this.log.warn("[#maybeFlushDecoder] flush failed",t)})).finally((()=>{j(Ne,this,!1)})))))}function TE(t){if(this.log.warn("[#handleDecoderError] decoder error",t),this.trigger("decoder:error",{error:t}),z(Fe,this)&&"function"==typeof z(Fe,this).close)try{z(Fe,this).close()}catch(t){}j(Fe,this,null),j(Oe,this,!1),j(Ne,this,!1),j(Me,this,!1),j(Se,this,!0),z(Ee,this).clear(),j(Ce,this,!0),j(Pe,this,L(Je,this,kE).call(this)+1e3)}function IE(t){j(Qe,this,z(Qe,this).then((()=>{var e;if(!this._disposed)return L(Je,this,FE).call(this,t);null===(e=t.close)||void 0===e||e.call(t)})).catch((e=>{this.log.warn("[#enqueueDecodedFrame] failed processing decoded frame",e);try{var n;null===(n=t.close)||void 0===n||n.call(t)}catch(t){}})))}function EE(t){return"boolean"!=typeof t||t}function SE(t){const e=Number(t);return!Number.isFinite(e)||e<0?.2:e}function AE(){return!!z(Xe,this)&&"function"==typeof yd.createImageBitmap&&z(Ke,this)}function NE(t){var e;const n=Number(null===(e=this.lastSegment)||void 0===e?void 0:e.duration);if(!Number.isFinite(n)||n<=0)return!1;if(!Number.isFinite(t))return!1;const i=Number(z(ze,this));return!!Number.isFinite(i)&&t>=i+n-z(Ye,this)}async function ME(t,e){try{var n;const i=L(Je,this,NE).call(this,e),r=await yd.createImageBitmap(t,{premultiplyAlpha:i?"none":"default"});return null!==(n=t.close)&&void 0!==n&&n.call(t),r}catch(e){return this.log.debug("[#maybeConvertFrameToBitmap] createImageBitmap failed",e),t}}async function FE(t){var e,n;let i=t;if(this._disposed)return void(null===(e=(n=i).close)||void 0===e||e.call(n));const r="number"==typeof t.timestamp?t.timestamp:void 0,o="number"==typeof t.timestamp?t.timestamp/LI:z(_e,this)?z(_e,this).call(this):0,s="number"==typeof t.duration?t.duration/LI:void 0;let a;void 0!==r&&(a=z(Ee,this).get(r),z(Ee,this).delete(r));try{var l,c,u,d;let e=z(_e,this)?z(_e,this).call(this):0,n=L(Je,this,fE).call(this,e);if(o<e||o>n)return void(null===(l=(c=i).close)||void 0===l||l.call(c));if(L(Je,this,AE).call(this)){var h,f,p,m;if(i=await L(Je,this,ME).call(this,t,o),this._disposed)return void(null===(h=(f=i).close)||void 0===h||h.call(f));if(e=z(_e,this)?z(_e,this).call(this):0,n=L(Je,this,fE).call(this,e),o<e||o>n)return void(null===(p=(m=i).close)||void 0===p||p.call(m))}if(L(Je,this,OE).call(this,e),this._disposed)return void(null===(u=(d=i).close)||void 0===u||u.call(d));const r={frame:i,pts:o,duration:s,isKey:void 0!==a&&a};z(be,this).push(r),L(Je,this,CE).call(this),this.trigger("decoder:frame",r),L(Je,this,pE).call(this,o),this.log.debug(`[#handleDecodedFrame] [${z(Le,this).codec}] Decoded frame:`,r)}catch(t){this.log.warn(`[#handleDecodedFrame] [${z(Le,this).codec}] Failed to handle decoded frame`,t);try{var v,g;null===(v=(g=i).close)||void 0===v||v.call(g)}catch(t){}}}function OE(t){const e=L(Je,this,fE).call(this,t),n=[];z(be,this).forEach((i=>{var r;const o=null!==(r=null==i?void 0:i.pts)&&void 0!==r?r:0;o<t||o>e||n.push(i)})),j(be,this,n)}function CE(){const t=z(we,this);if(!Number.isFinite(t)||t<=0)return;if(z(be,this).length<=t)return;const e=z(be,this).length-t;z(be,this).splice(0,e)}function PE(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function DE(){const t=z(we,this);return!(!Number.isFinite(t)||t<=0)&&z(be,this).length>=t}function RE(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function LE(){var t;const e=z(xe,this);if(!Number.isFinite(e)||e<=0)return!1;const n=Number(null===(t=z(Fe,this))||void 0===t?void 0:t.decodeQueueSize);return!!Number.isFinite(n)&&n>=e}function BE(t){return"string"==typeof t&&t.toLowerCase().startsWith("av01")}function zE(t){var e;return!1!==this.settings.av1ColorSpaceOverrideEnabled&&L(Je,this,BE).call(this,(null===(e=z(Le,this))||void 0===e?void 0:e.codec)||(null==t?void 0:t.codec))}function WE(t){L(Je,this,zE).call(this,t)&&(t.colorSpace={...zI})}function jE(t){if(t&&Array.isArray(t.segments))for(let e=0;e<t.segments.length;e+=1){const n=t.segments[e];if(!Array.isArray(null==n?void 0:n.representations))continue;const i=n.chosenRepresentation||n.representations[0];if(null!=i&&i.codecs)return i.codecs;if(null!=i&&i.mime)return i.mime}}class UE extends md{#j;get name(){return"DecoderFactory"}constructor(...t){super(...t);const e=t.length?t[t.length-1]:void 0;this.#j=e&&"object"==typeof e&&!Array.isArray(e)?e:{}}create(t,e=this.#j){if(!t||!t.type)return new y_(e);const n=$I[t.type];return n?(this.log.debug(`[#create] [${t.type}] Creating decoder:`,n),new n(e)):new y_(e)}}class $E{#U;#$;#q;#V;constructor(t={}){this.#U=t.getActiveRenderPlacement,this.#$=t.getPlacementsActiveAtTime,this.#q=t.ensureDecodedForPlacementAtTime;const e=Number(t.lookaheadSeconds);this.#V=Number.isFinite(e)&&e>=0?e:1}handleTimeUpdate(t={}){const e=Number(null==t?void 0:t.time);if(!Number.isFinite(e))return;if("function"!=typeof this.#q)return;const n="function"==typeof this.#$?this.#$:()=>[],i=n(e),r=new Set;i.forEach((t=>{null!=t&&t.placementId&&r.add(t.placementId),this.#q(t,e)}));const o=this.#V;if(!(o>0))return;const s=e+o;n(s).forEach((t=>{const e=null==t?void 0:t.placementId;e&&!r.has(e)&&this.#q(t,s)}))}dispose(){}}class qE{#G;#H;#K;#X;#Y;#Q;constructor(t={}){this.#G=t.getNode,this.#H=t.getPlacementState,this.#K=t.getDecodeTracks,this.#X=t.getSegmentIdForTrackAtTime,this.#Y=t.decodeLoadedMediaSegment,this.#Q=t.decodeLoadedMediaSegmentsAfter}ensureDecodedForPlacementAtTime(t,e){if(!t||!Number.isFinite(e))return;const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;if(!n||!i)return;const r="function"==typeof this.#G?this.#G(i):void 0;if(!r)return;const o="function"==typeof this.#H?this.#H(n):void 0,s=null==o?void 0:o.trackStates;s&&"function"==typeof s.get&&("function"==typeof this.#K?this.#K(r).filter((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)||"audio"===(null==t?void 0:t.type))):[]).forEach((n=>{var i;const r=s.get(n.id);if(!r)return;const o="function"==typeof this.#X?this.#X(n,t,e):null;if(!o)return;const a=null==n||null===(i=n.segments)||void 0===i?void 0:i.find((t=>(null==t?void 0:t.id)===o));a&&!a.isInit&&a.retainedByteLength>0&&a.arrayBuffer&&(r.segmentDecoders&&"function"==typeof r.segmentDecoders.has&&r.segmentDecoders.has(o)||"function"!=typeof this.#Y||this.#Y(t,n,a),"video"===(null==n?void 0:n.type)&&"function"==typeof this.#Q&&this.#Q(t,n,a))}))}dispose(){}}const VE=new Set(["video","audio","image"]);function GE(t){const e=Number(t);return Number.isFinite(e)?e:0}var HE=new WeakMap,KE=new WeakMap,XE=new WeakMap,YE=new WeakMap,QE=new WeakMap,JE=new WeakMap,ZE=new WeakMap,tS=new WeakMap,eS=new WeakMap,nS=new WeakMap,iS=new WeakMap,rS=new WeakMap,oS=new WeakMap,sS=new WeakMap,aS=new WeakMap,lS=new WeakMap,cS=new WeakMap,uS=new WeakMap,dS=new WeakMap,hS=new WeakSet;class fS extends md{constructor(...t){super(...t),U(this,hS),W(this,HE,void 0),W(this,KE,void 0),W(this,XE,void 0),W(this,YE,void 0),W(this,QE,void 0),W(this,JE,void 0),W(this,ZE,void 0),W(this,tS,void 0),W(this,eS,void 0),W(this,nS,void 0),W(this,iS,void 0),W(this,rS,new Map),W(this,oS,new Map),W(this,sS,new Map),W(this,aS,new Map),W(this,lS,new Set),W(this,cS,0),W(this,uS,!1),W(this,dS,null);const[e,n,i]=t;j(HE,this,e),j(KE,this,n),j(XE,this,i||new UE),j(YE,this,new qE({getNode:t=>L(hS,this,BS).call(this,t),getPlacementState:t=>z(rS,this).get(t),getDecodeTracks:t=>L(hS,this,CS).call(this,t),getSegmentIdForTrackAtTime:(t,e,n)=>L(hS,this,wS).call(this,t,e,n),decodeLoadedMediaSegment:(t,e,n)=>{L(hS,this,rA).call(this,t,e,n)},decodeLoadedMediaSegmentsAfter:(t,e,n)=>{L(hS,this,YS).call(this,t,e,n)}})),j(QE,this,new $E({getActiveRenderPlacement:t=>{var e,n;return null===(e=z(KE,this))||void 0===e||null===(n=e.getActiveRenderPlacement)||void 0===n?void 0:n.call(e,t)},getPlacementsActiveAtTime:t=>{var e,n;return(null===(e=z(KE,this))||void 0===e||null===(n=e.getPlacementsActiveAtTime)||void 0===n?void 0:n.call(e,t))||[]},ensureDecodedForPlacementAtTime:(t,e)=>{var n,i;null===(n=z(YE,this))||void 0===n||null===(i=n.ensureDecodedForPlacementAtTime)||void 0===i||i.call(n,t,e)}})),L(hS,this,pS).call(this),L(hS,this,MS).call(this)}get name(){return"DecodeCoordinator"}onDispose(){var t,e;z(KE,this)&&"function"==typeof z(KE,this).off&&z(JE,this)&&z(KE,this).off(kd.PLACEMENT_ADDED,z(JE,this)),z(KE,this)&&"function"==typeof z(KE,this).off&&z(ZE,this)&&z(KE,this).off(kd.TIMELINE_SEEKING,z(ZE,this)),z(KE,this)&&"function"==typeof z(KE,this).off&&z(tS,this)&&z(KE,this).off(kd.TIMELINE_SEEKED,z(tS,this)),z(KE,this)&&"function"==typeof z(KE,this).off&&z(eS,this)&&z(KE,this).off(kd.TIMELINE_TIME_UPDATE,z(eS,this)),z(KE,this)&&"function"==typeof z(KE,this).off&&z(nS,this)&&z(KE,this).off(kd.TIMELINE_RESET,z(nS,this)),L(hS,this,mS).call(this),j(JE,this,null),j(ZE,this,null),j(tS,this,null),j(eS,this,null),j(nS,this,null),null!==(t=z(YE,this))&&void 0!==t&&null!==(e=t.dispose)&&void 0!==e&&e.call(t),j(YE,this,null),z(QE,this)&&"function"==typeof z(QE,this).dispose&&z(QE,this).dispose(),j(QE,this,null),z(oS,this).forEach(((t,e)=>{const n=L(hS,this,BS).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),z(oS,this).clear(),z(sS,this).forEach(((t,e)=>{const n=L(hS,this,BS).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),z(sS,this).clear(),z(aS,this).clear(),z(lS,this).clear(),L(hS,this,ES).call(this),z(rS,this).forEach((({trackStates:t})=>{t&&t.forEach((t=>{L(hS,this,US).call(this,t)}))})),z(rS,this).clear()}}function pS(){z(KE,this)&&"function"==typeof z(KE,this).on&&(j(JE,this,(t=>{L(hS,this,FS).call(this,t)})),z(KE,this).on(kd.PLACEMENT_ADDED,z(JE,this)),j(ZE,this,(t=>L(hS,this,vS).call(this,t))),z(KE,this).on(kd.TIMELINE_SEEKING,z(ZE,this)),j(tS,this,(()=>L(hS,this,gS).call(this))),z(KE,this).on(kd.TIMELINE_SEEKED,z(tS,this)),j(eS,this,(t=>L(hS,this,yS).call(this,t))),z(KE,this).on(kd.TIMELINE_TIME_UPDATE,z(eS,this)),j(nS,this,(()=>L(hS,this,bS).call(this))),z(KE,this).on(kd.TIMELINE_RESET,z(nS,this))),(null==yd?void 0:yd.document)&&"function"==typeof yd.document.addEventListener&&(j(iS,this,(()=>{L(hS,this,SS).call(this)})),yd.document.addEventListener("visibilitychange",z(iS,this)))}function mS(){z(iS,this)&&null!=yd&&yd.document&&"function"==typeof yd.document.removeEventListener&&yd.document.removeEventListener("visibilitychange",z(iS,this)),j(iS,this,null)}function vS(t={}){const e=Number(null==t?void 0:t.targetTime);Number.isFinite(e)&&(z(rS,this).forEach((t=>{const n=null==t?void 0:t.trackStates;n&&n.forEach((n=>{var i;const r=null==n||null===(i=n.track)||void 0===i?void 0:i.type;"video"!==r&&"image"!==r&&"audio"!==r||(L(hS,this,kS).call(this,n,null==t?void 0:t.placement,e),n.seekSegmentId=null)}))})),(Array.isArray(null==t?void 0:t.placements)?t.placements:[]).forEach((t=>{const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;if(!n||!i)return;const r=z(rS,this).get(n);if(!r||!r.trackStates)return;const o=L(hS,this,BS).call(this,i);o&&(r.trackStates.forEach((n=>{const i=null==n?void 0:n.track;!i||"video"!==i.type&&"image"!==i.type&&"audio"!==i.type||L(hS,this,kS).call(this,n,r.placement||t,e)})),L(hS,this,XS).call(this,r.placement||t,o))})))}function gS(){z(rS,this).forEach((t=>{const e=null==t?void 0:t.trackStates;e&&e.forEach((t=>{var e;const n=null==t||null===(e=t.track)||void 0===e?void 0:e.type;"video"!==n&&"image"!==n&&"audio"!==n||(t.seekSegmentId=null)}))}))}function yS(t={}){var e,n;L(hS,this,KS).call(this,null==t?void 0:t.time),null!==(e=z(QE,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,t),L(hS,this,SS).call(this),L(hS,this,$S).call(this,null==t?void 0:t.time)}function bS(){z(oS,this).forEach(((t,e)=>{const n=L(hS,this,BS).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),z(oS,this).clear(),z(sS,this).forEach(((t,e)=>{const n=L(hS,this,BS).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),z(sS,this).clear(),z(aS,this).clear(),z(lS,this).clear(),z(rS,this).forEach((({trackStates:t})=>{t&&t.forEach((t=>{const e=null==t?void 0:t.segmentDecoders;e&&e.forEach((t=>{t&&"function"==typeof t.dispose&&t.dispose()}))}))})),z(rS,this).clear()}function kS(t,e,n){t&&(L(hS,this,US).call(this,t),t.seekSegmentId=L(hS,this,wS).call(this,t.track,e,n))}function wS(t,e,n){if(!t||!e||!Array.isArray(t.segments))return null;const i=Sm(e);if(!Number.isFinite(i))return null;const r=GE(null==e?void 0:e.nodeOffsetOverride),o=Math.max(0,n-i+r),s=GE(null==t?void 0:t.offset),a=Math.max(0,o-s),l="function"==typeof t.getMediaSegmentAtTime?t.getMediaSegmentAtTime(a,{preferRepresentationTime:!0}):Ib(t.segments,a,{preferRepresentationTime:!0});return(null==l?void 0:l.id)||null}function xS(t){if(!t)return!1;const e=null==t?void 0:t.name;if("QuotaExceededError"===e)return!0;if("EncodingError"===e)return!0;const n="string"==typeof(null==t?void 0:t.message)?t.message:"";return!!n.includes("Decoder failure")||!!n.includes("Codec reclaimed due to inactivity")||!("OperationError"!==e||!n.includes("initialize after flush"))}function _S(){const t=null==yd?void 0:yd.document;return!t||"string"!=typeof t.visibilityState||"visible"===t.visibilityState}function TS(){var t;const e=z(KE,this);if(!e||"number"!=typeof e.currentTime)return!1;if(e.state===Bv)return!1;const n=Date.now();if(n<z(cS,this))return!1;const i=e.currentTime;if(!Number.isFinite(i))return!1;const r="function"==typeof e.getPlacementsActiveAtTime?e.getPlacementsActiveAtTime(i):[],o=Number(null==e||null===(t=e.settings)||void 0===t?void 0:t.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;let a;if(Array.isArray(r)&&r.length)a=i+s;else if(a=L(hS,this,IS).call(this,i),!Number.isFinite(a))return!1;return j(cS,this,n+1500),this.log.warn("[DecodeCoordinator] attempting decoder recovery seek"),e.currentTime=a,!0}function IS(t){var e;const n=z(KE,this);if(!n)return null;const i=Array.isArray(n.placements)?n.placements:[];if(!i.length)return null;const r=Number(t);if(!Number.isFinite(r))return null;const o=Number(null==n||null===(e=n.settings)||void 0===e?void 0:e.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;let a=Number.NEGATIVE_INFINITY,l=null,c=Number.NEGATIVE_INFINITY,u=null,d=null;return i.forEach((t=>{const e=Sm(t);if(!Number.isFinite(e))return;(!Number.isFinite(d)||e<d)&&(d=e);const n=Im(t,z(HE,this)),i=Number.isFinite(n),o=i?e+n:e;(o>e||!i)&&((o>a||!Number.isFinite(a)&&Number.isFinite(o))&&(a=o,l=e),o<=r&&o>c&&(c=o,u=i?Math.max(e,o-s):e))})),Number.isFinite(l)&&Number.isFinite(a)&&r>=a-s?l:Number.isFinite(u)?u:Number.isFinite(d)?d:null}function ES(){j(uS,this,!1),j(dS,this,null)}function SS(){z(uS,this)&&L(hS,this,_S).call(this)&&L(hS,this,TS).call(this)}function AS(t){if(!L(hS,this,xS).call(this,t))return;const e=z(KE,this);e&&"number"==typeof e.currentTime&&(j(uS,this,!0),j(dS,this,t),L(hS,this,_S).call(this)&&L(hS,this,TS).call(this))}function NS(t){var e;return!!t&&(Array.isArray(null===(e=z(KE,this))||void 0===e?void 0:e.placements)?z(KE,this).placements:[]).includes(t)}function MS(t){var e;(Array.isArray(null===(e=z(KE,this))||void 0===e?void 0:e.placements)?[...z(KE,this).placements]:[]).filter((e=>"function"!=typeof t||t(e))).sort(((t,e)=>{const n=Sm(t),i=Sm(e);return(Number.isFinite(n)?n:Number.POSITIVE_INFINITY)-(Number.isFinite(i)?i:Number.POSITIVE_INFINITY)})).forEach((t=>{L(hS,this,FS).call(this,t)}))}async function FS(t){if(!t||!t.placementId||z(rS,this).has(t.placementId))return;if(!L(hS,this,NS).call(this,t))return;const e=t.nodeId;if(!e||!z(HE,this)||"function"!=typeof z(HE,this).get)return;const n=L(hS,this,BS).call(this,e);if(n){if(n.state&&"ready"!==n.state){if("function"==typeof n.resolve)try{await n.resolve()}catch(n){if(!L(hS,this,NS).call(this,t))return;return void this.log.warn(`[#processPlacement] Failed to resolve node ${e}`,n)}if(!L(hS,this,NS).call(this,t))return;if("ready"!==n.state)return}if(L(hS,this,HS).call(this,t))return L(hS,this,GS).call(this,t,n),void z(lS,this).add(t.placementId);L(hS,this,VS).call(this,t,n)}}function OS(t){return L(hS,this,CS).call(this,t).every((t=>L(hS,this,qS).call(this,t)))}function CS(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>VE.has(null==t?void 0:t.type)))}function PS(t){if(!t||!t.id||"function"!=typeof t.on)return;if(z(oS,this).has(t.id))return;const e=()=>{L(hS,this,QS).call(this,t.id)};t.on("node:loaded",e),z(oS,this).set(t.id,e)}function DS(t){if(!t||!t.id||"function"!=typeof t.on)return;if(z(sS,this).has(t.id))return;const e=t=>L(hS,this,JS).call(this,t);t.on("segment:chunk",e),z(sS,this).set(t.id,e)}function RS(t,e){if(!t||!e)return;const n=z(aS,this).get(t)||new Set;n.add(e),z(aS,this).set(t,n)}function LS(t){return z(aS,this).get(t)||new Set}function BS(t){if(t&&z(HE,this)&&"function"==typeof z(HE,this).get)return z(HE,this).get(t)}function zS(t){if(!t)return;const e=t.fullBufferRetryTimer;null!=e&&("function"==typeof(null==yd?void 0:yd.clearTimeout)?yd.clearTimeout.bind(yd):clearTimeout)(e),t.fullBufferRetryTimer=null,t.fullBufferDecodeScheduled=!1,t.fullBufferRetryAttempts=0}function WS(t){const e=null==t?void 0:t.segmentStates;e&&"function"==typeof e.forEach&&e.forEach((t=>{L(hS,this,zS).call(this,t)}))}function jS(t,e,n,i){var r,o;if(!(t&&e&&n&&i))return!1;const s=z(rS,this).get(t),a=null==s||null===(r=s.trackStates)||void 0===r?void 0:r.get(e);return(null==a||null===(o=a.segmentStates)||void 0===o?void 0:o.get(n))===i}function US(t){if(!t)return;L(hS,this,WS).call(this,t);const e=t.segmentDecoders;e&&"function"==typeof e.forEach&&(e.forEach((t=>{if(t&&"function"==typeof t.dispose)try{t.dispose()}catch(t){}})),"function"==typeof e.clear&&e.clear()),t.segmentStates&&"function"==typeof t.segmentStates.clear&&t.segmentStates.clear(),t.ready=!1,t.seekSegmentId=null}function $S(t){const e=GE(t);if(!Number.isFinite(e))return;const n=e-2;Number.isFinite(n)&&z(rS,this).forEach((t=>{const e=null==t?void 0:t.placement;if(!e)return;const i=Sm(e),r=Im(e,z(HE,this),{allowUnready:!0});if(!Number.isFinite(i)||!Number.isFinite(r))return;const o=i+r;if(!Number.isFinite(o)||o>n)return;const s=null==t?void 0:t.trackStates;s&&"function"==typeof s.forEach&&s.forEach((t=>{var e;const n=null==t||null===(e=t.track)||void 0===e?void 0:e.type;"video"!==n&&"image"!==n&&"audio"!==n||L(hS,this,US).call(this,t)}))}))}function qS(t){if(!t||!Array.isArray(t.segments))return!1;const e=t.segments.find((t=>null==t?void 0:t.isInit));if(e&&!(e.retainedByteLength>0))return!1;const n=t.segments.find((t=>t&&!t.isInit));return!n||n.retainedByteLength>0}function VS(t,e){if(this.log.debug(`[#startDecode] [${t.placementId}] [${e.id}] Starting decode`),L(hS,this,GS).call(this,t,e)){if(L(hS,this,RS).call(this,e.id,t.placementId),!L(hS,this,OS).call(this,e))return L(hS,this,PS).call(this,e),void L(hS,this,DS).call(this,e);L(hS,this,XS).call(this,t,e),L(hS,this,DS).call(this,e)}}function GS(t,e){if(!t||!t.placementId||!e)return;const n=z(rS,this).get(t.placementId);if(n)return n.placement=t,n;const i=L(hS,this,CS).call(this,e),r=new Map;i.forEach((n=>{try{const t=n.segments.some((t=>null==t?void 0:t.isInit));r.set(n.id,{hasInit:t,track:n,ready:!1,segmentDecoders:new Map,segmentStates:new Map})}catch(i){this.trigger(kd.DECODE_ERROR,_d({placementId:t.placementId,nodeId:e.id,trackId:null==n?void 0:n.id,trackType:null==n?void 0:n.type,error:i}))}}));const o={trackStates:r,nodeId:e.id,placement:t};return z(rS,this).set(t.placementId,o),o}function HS(t){var e;const n=Sm(t),i=GE(null===(e=z(KE,this))||void 0===e?void 0:e.currentTime);return!Number.isFinite(n)||!!Number.isFinite(i)&&n-i>2}function KS(t){if(!z(lS,this).size)return;const e=GE(t);if(!Number.isFinite(e))return;const n=[];z(lS,this).forEach((t=>{const i=z(rS,this).get(t),r=null==i?void 0:i.placement;if(!r)return void n.push(t);const o=Sm(r);Number.isFinite(o)&&o-e<=2&&n.push(t)})),n.forEach((t=>{z(lS,this).delete(t);const e=z(rS,this).get(t),n=null==e?void 0:e.placement;if(!n)return;const i=L(hS,this,BS).call(this,n.nodeId);i&&L(hS,this,VS).call(this,n,i)}))}function XS(t,e){const n=z(rS,this).get(t.placementId);n&&L(hS,this,CS).call(this,e).forEach((i=>{const r=n.trackStates.get(i.id);if(r&&!r.ready)try{let n;if(r.seekSegmentId&&(n=i.segments.find((t=>t&&!t.isInit&&t.id===r.seekSegmentId&&t.retainedByteLength>0)),!n))return;if(n||(n=i.segments.find((t=>t&&!t.isInit&&t.retainedByteLength>0))),!n)return;L(hS,this,rA).call(this,t,i,n),r.seekSegmentId&&"video"===(null==i?void 0:i.type)&&L(hS,this,YS).call(this,t,i,n),r.ready=!0,this.trigger(kd.DECODE_READY,xd({placementId:t.placementId,nodeId:e.id,trackId:i.id,trackType:i.type}))}catch(n){this.trigger(kd.DECODE_ERROR,_d({placementId:t.placementId,nodeId:e.id,trackId:null==i?void 0:i.id,trackType:null==i?void 0:i.type,error:n}))}}))}function YS(t,e,n){var i;if(!(t&&e&&n&&Array.isArray(e.segments)))return;const r=null==t?void 0:t.placementId,o=r?z(rS,this).get(r):void 0,s=null==o||null===(i=o.trackStates)||void 0===i?void 0:i.get(e.id),a=null==s?void 0:s.segmentDecoders;if(!a||"function"!=typeof a.has)return;const l=e.segments,c=l.findIndex((t=>(null==t?void 0:t.id)===n.id));if(c<0)return;let u=0;for(let n=c+1;n<l.length;n+=1){const i=l[n];if(!i||i.isInit)continue;if(a.has(i.id))continue;if(!(i.retainedByteLength>0))break;const r=i.arrayBuffer;if(!r||"number"!=typeof r.byteLength||r.byteLength<=0)break;if(L(hS,this,rA).call(this,t,e,i),u+=1,u>=2)break}}function QS(t){const e=L(hS,this,BS).call(this,t);e&&L(hS,this,OS).call(this,e)&&L(hS,this,LS).call(this,t).forEach((t=>{const n=z(rS,this).get(t);L(hS,this,XS).call(this,(null==n?void 0:n.placement)||{placementId:t},e)}))}function JS(t){t&&t.nodeId&&t.trackId&&t.chunk&&L(hS,this,LS).call(this,t.nodeId).forEach((e=>L(hS,this,ZS).call(this,e,t)))}function ZS(t,e){const n=z(rS,this).get(t);if(!n)return;const i=n.trackStates.get(e.trackId);if(i)try{var r,o;if(e.isInit)return;const s=i.track,a=null==s||null===(r=s.segments)||void 0===r?void 0:r.find((t=>(null==t?void 0:t.id)===e.segmentId));if(!a||a.isInit)return;if("image"===(null==s?void 0:s.type))return void(!i.ready&&a.retainedByteLength>0&&L(hS,this,rA).call(this,n.placement,s,a)&&(i.ready=!0,this.trigger(kd.DECODE_READY,xd({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType}))));if((null===(o=z(KE,this))||void 0===o?void 0:o.state)===Bv&&i.seekSegmentId&&("video"===(null==s?void 0:s.type)||"audio"===(null==s?void 0:s.type))&&a.id!==i.seekSegmentId)return;const l=a.id,c=i.segmentStates.get(l)||{initSent:!1,pendingChunks:[],ended:!1,firstChunkObserved:!1,missedSegmentPrefix:!1,fullBufferDecodeScheduled:!1,fullBufferRetryTimer:null,fullBufferRetryAttempts:0};i.segmentStates.set(l,c);const u=L(hS,this,nA).call(this,n.placement,s,a);if(!u||"function"!=typeof u.decodeChunk)return;if(i.hasInit&&!c.initSent){const t=L(hS,this,iA).call(this,s,a);if(!t)return void c.pendingChunks.push({chunk:e.chunk,loaded:e.loaded,total:e.total});u.decodeChunk(t,{isInit:!0}),c.initSent=!0,c.pendingChunks.length&&(c.pendingChunks.forEach((t=>{u.decodeChunk(t.chunk,{isInit:!1,loaded:t.loaded,total:t.total})})),c.pendingChunks=[])}const d="number"==typeof e.loaded&&"number"==typeof e.total&&e.total>0&&e.loaded>=e.total;L(hS,this,tA).call(this,c,e)?d&&!c.ended&&L(hS,this,eA).call(this,n.placement,s,a,c):(u.decodeChunk(e.chunk,{isInit:!1,loaded:e.loaded,total:e.total}),d&&!c.ended&&"function"==typeof u.endOfStream&&(c.ended=!0,u.endOfStream())),i.ready||(i.ready=!0,this.trigger(kd.DECODE_READY,xd({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType})))}catch(n){this.trigger(kd.DECODE_ERROR,_d({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType,error:n}))}}function tA(t,e){var n;if(!t||t.missedSegmentPrefix)return!(null==t||!t.missedSegmentPrefix);if(t.firstChunkObserved)return!1;t.firstChunkObserved=!0;const i=Number(null==e?void 0:e.loaded),r=Number(null==e||null===(n=e.chunk)||void 0===n?void 0:n.byteLength);return!(!Number.isFinite(i)||!Number.isFinite(r)||r<=0)&&(t.missedSegmentPrefix=i>r,t.missedSegmentPrefix)}function eA(t,e,n,i){if(!t||!e||!n||!i||i.fullBufferDecodeScheduled)return;const r=null==t?void 0:t.placementId,o=null==e?void 0:e.id,s=null==n?void 0:n.id;if(!r||!o||!s)return;const a="function"==typeof(null==yd?void 0:yd.setTimeout)?yd.setTimeout.bind(yd):setTimeout;i.fullBufferDecodeScheduled=!0,i.fullBufferRetryAttempts=0;const l=()=>{if(!L(hS,this,jS).call(this,r,o,s,i)||i.ended)return void L(hS,this,zS).call(this,i);if(L(hS,this,rA).call(this,t,e,n))return void L(hS,this,zS).call(this,i);i.fullBufferRetryAttempts+=1;const c=i.fullBufferRetryAttempts<=8?0:50;i.fullBufferRetryTimer=a((()=>{l()}),c)};i.fullBufferRetryTimer=a((()=>{l()}),0)}function nA(t,e,n){var i,r;const o=null==t?void 0:t.placementId;if(!o||!e||!n)return;const s=z(rS,this).get(o),a=null==s||null===(i=s.trackStates)||void 0===i?void 0:i.get(e.id);if(!a)return;const l=a.segmentDecoders.get(n.id);if(l)return l;const c=z(XE,this).create(e);if(c&&"function"==typeof c.configure&&c.configure(e),c&&"function"==typeof c.setNodeId&&c.setNodeId(null==t?void 0:t.nodeId),c&&"function"==typeof c.setSegment&&c.setSegment(n),c&&"function"==typeof c.setCurrentTimeProvider&&c.setCurrentTimeProvider((()=>{var t;return"number"==typeof(null===(t=z(KE,this))||void 0===t?void 0:t.currentTime)?z(KE,this).currentTime:0})),c&&"function"==typeof c.setTimeOffsetSeconds){var u,d;const i=Sm(t),r=GE(null==e?void 0:e.offset),o=GE(null!==(u=null==n||null===(d=n.chosenRepresentation)||void 0===d?void 0:d.segStart)&&void 0!==u?u:null==n?void 0:n.offset);Number.isFinite(i)&&c.setTimeOffsetSeconds(i+r+o)}return c&&"function"==typeof c.setSeekTargetTimeSeconds&&(null===(r=z(KE,this))||void 0===r?void 0:r.state)===Bv&&"video"===(null==e?void 0:e.type)&&c.setSeekTargetTimeSeconds(z(KE,this).currentTime),c&&"function"==typeof c.on&&(c.on(kd.DECODER_FRAME,(i=>{i&&(!z(uS,this)||"video"!==(null==e?void 0:e.type)&&"image"!==(null==e?void 0:e.type)||(j(uS,this,!1),j(dS,this,null)),z(KE,this)&&"function"==typeof z(KE,this).notifyDecodedFrame&&(i.frame||i.data)&&z(KE,this).notifyDecodedFrame({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,pts:i.pts,duration:i.duration,frame:i.frame,data:i.data}))})),c.on(kd.DECODER_AUDIO,(i=>{i&&i.audioBuffer&&this.trigger(kd.DECODER_AUDIO,xd({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,pts:i.pts,duration:i.duration,audioBuffer:i.audioBuffer}))})),c.on(kd.DECODER_ERROR,(i=>{const r=(null==i?void 0:i.error)||i;this.trigger(kd.DECODER_ERROR,_d({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,error:r})),L(hS,this,AS).call(this,r)}))),a.segmentDecoders.set(n.id,c),c}function iA(t,e){var n,i;if(!t||!e||!Array.isArray(t.segments))return;const r=t.segments.find((t=>null==t?void 0:t.isInit));if(!r||"function"!=typeof r.getRepresentationBuffer)return;const o=(null==e||null===(n=e.chosenRepresentation)||void 0===n?void 0:n.id)||(null==e||null===(i=e.representations)||void 0===i||null===(i=i[0])||void 0===i?void 0:i.id);if(!o)return;const s=r.getRepresentationBuffer(o);return s?s instanceof Uint8Array?s:new Uint8Array(s):void 0}function rA(t,e,n){var i;if(!t||!e||!n)return!1;const r=t.placementId,o=z(rS,this).get(r),s=null==o||null===(i=o.trackStates)||void 0===i?void 0:i.get(e.id);if(!s)return!1;const a=L(hS,this,nA).call(this,t,e,n);if(!a||"function"!=typeof a.decodeChunk)return!1;const l=s.segmentStates.get(n.id)||{initSent:!1,pendingChunks:[],ended:!1,firstChunkObserved:!1,missedSegmentPrefix:!1,fullBufferDecodeScheduled:!1,fullBufferRetryTimer:null,fullBufferRetryAttempts:0};if(s.segmentStates.set(n.id,l),l.ended)return L(hS,this,zS).call(this,l),!0;if(s.hasInit&&!l.initSent){const t=L(hS,this,iA).call(this,e,n);if(!t)return!1;a.decodeChunk(t,{isInit:!0}),l.initSent=!0}const c=n.arrayBuffer;return!(!c||"number"!=typeof c.byteLength||c.byteLength<=0||(a.decodeChunk(new Uint8Array(c),{isInit:!1,loaded:c.byteLength,total:c.byteLength}),l.ended||"function"!=typeof a.endOfStream||(l.ended=!0,a.endOfStream()),L(hS,this,zS).call(this,l),0))}const oA=1e-6;var sA=new WeakMap,aA=new WeakMap,lA=new WeakMap,cA=new WeakMap,uA=new WeakMap,dA=new WeakMap,hA=new WeakMap,fA=new WeakMap,pA=new WeakSet;class mA extends md{get name(){return"TransitionManager"}get defaults(){return{durationSeconds:.5}}constructor(t,e,n){super(n),U(this,pA),W(this,sA,void 0),W(this,aA,void 0),W(this,lA,null),W(this,cA,null),W(this,uA,null),W(this,dA,0),W(this,hA,[]),W(this,fA,null),j(sA,this,t),j(aA,this,e),z(sA,this)&&"function"==typeof z(sA,this).on&&(j(fA,this,(()=>L(pA,this,TA).call(this))),z(sA,this).on(kd.TIMELINE_RESET,z(fA,this)))}transitionTo(t,e={}){const n=Number(t);if(!Number.isFinite(n))throw new Error("TransitionManager.transitionTo requires a numeric time");L(pA,this,TA).call(this);const i=L(pA,this,vA).call(this),r=L(pA,this,kA).call(this,n,e);return r?L(pA,this,wA).call(this,n,e,i,r):Promise.resolve()}onDispose(){z(sA,this)&&"function"==typeof z(sA,this).off&&z(fA,this)&&z(sA,this).off(kd.TIMELINE_RESET,z(fA,this)),j(fA,this,null),L(pA,this,TA).call(this),j(aA,this,null),j(sA,this,null)}}function vA(){return j(dA,this,z(dA,this)+1),z(dA,this)}function gA(t={}){var e;const n=Number(null==t?void 0:t.duration),i=Number(null===(e=this.settings)||void 0===e?void 0:e.durationSeconds);return Number.isFinite(n)?n:i}function yA(t={},e){return{duration:e,filter:null==t?void 0:t.filter,color:null==t?void 0:t.color,filters:null==t?void 0:t.filters,reverseFilters:null==t?void 0:t.reverseFilters,transition:null==t?void 0:t.transition}}function bA(t,e){const n=1e3*t,i=Number.isFinite(Number(null==e?void 0:e.outDurationMs))&&e.outDurationMs>0?e.outDurationMs:n;return{outDurationMs:i,inDurationMs:Number.isFinite(Number(null==e?void 0:e.inDurationMs))&&e.inDurationMs>0?e.inDurationMs:i}}function kA(t,e={}){var n;const i=z(aA,this),r=L(pA,this,gA).call(this,e);if(!i||"function"!=typeof i.startTransition)return z(sA,this).currentTime=t,null;if(!(r>0))return z(sA,this).currentTime=t,null!==(n=i.resetTransition)&&void 0!==n&&n.call(i),null;const o=L(pA,this,yA).call(this,e,r);"function"==typeof(null==e?void 0:e.onTransitionInStart)&&e.onTransitionInStart();const s=i.startTransition(o),{outDurationMs:a,inDurationMs:l}=L(pA,this,bA).call(this,r,s);return{renderer:i,transitionOptions:o,outDurationMs:a,inDurationMs:l,shouldWaitForFrames:!1!==(null==e?void 0:e.waitForVisualFrames)}}function wA(t,e={},n,i){const{renderer:r,transitionOptions:o,outDurationMs:s,inDurationMs:a,shouldWaitForFrames:l}=i,c=L(pA,this,NA).call(this,t,e,n),u=l?L(pA,this,MA).call(this,t,n):Promise.resolve();let d=!1,h=!1,f=!1,p=!l;const m=()=>{var t;L(pA,this,IA).call(this,n)&&!f&&d&&h&&p&&(f=!0,"function"==typeof(null==e?void 0:e.onTransitionInEnd)&&e.onTransitionInEnd(),"function"==typeof(null==e?void 0:e.onTransitionOutStart)&&e.onTransitionOutStart(),null!==(t=r.beginTransitionIn)&&void 0!==t&&t.call(r,o),j(cA,this,setTimeout((()=>{var t;L(pA,this,IA).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),"function"==typeof(null==e?void 0:e.onTransitionOutEnd)&&e.onTransitionOutEnd(),L(pA,this,xA).call(this))}),a)))};return j(lA,this,setTimeout((()=>{d=!0,m()}),s)),c.then((()=>{h=!0,m()})).catch((()=>{var t;L(pA,this,IA).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),L(pA,this,xA).call(this))})),u.then((()=>{p=!0,m()})).catch((()=>{p=!0,m()})),z(sA,this).currentTime=t,new Promise((t=>{j(uA,this,t)}))}function xA(){const t=z(uA,this);j(uA,this,null),L(pA,this,_A).call(this),L(pA,this,AA).call(this),t&&t()}function _A(){z(lA,this)&&clearTimeout(z(lA,this)),z(cA,this)&&clearTimeout(z(cA,this)),j(lA,this,null),j(cA,this,null)}function TA(){var t,e;z(aA,this)&&null!==(t=(e=z(aA,this)).resetTransition)&&void 0!==t&&t.call(e),L(pA,this,_A).call(this),L(pA,this,AA).call(this),z(uA,this)&&(z(uA,this).call(this),j(uA,this,null))}function IA(t){return z(dA,this)===t}function EA(t,e){z(sA,this)&&"function"==typeof z(sA,this).on&&(z(sA,this).on(t,e),z(hA,this).push({eventName:t,handler:e}))}function SA(t,e){z(sA,this)&&"function"==typeof z(sA,this).off&&(z(sA,this).off(t,e),j(hA,this,z(hA,this).filter((n=>n.eventName!==t||n.handler!==e))))}function AA(){z(sA,this)&&"function"==typeof z(sA,this).off?(z(hA,this).forEach((t=>{z(sA,this).off(t.eventName,t.handler)})),j(hA,this,[])):j(hA,this,[])}function NA(t,e,n){const i=null==e?void 0:e.transitionOutPromise;if(i&&"function"==typeof i.then)return i;if("function"==typeof i)try{const t=i();if(t&&"function"==typeof t.then)return t}catch(t){return Promise.resolve()}if(!z(sA,this)||"function"!=typeof z(sA,this).on)return Promise.resolve();const r=L(pA,this,FA).call(this);return new Promise((e=>{let i=!1;const o=r?kd.TIMELINE_SEEKED:"nodestart";let s,a;const l=()=>{L(pA,this,SA).call(this,kd.TIMELINE_SEEKING,s),L(pA,this,SA).call(this,o,a),e()};s=(e={})=>{L(pA,this,IA).call(this,n)?L(pA,this,OA).call(this,e,t)&&(i=!0):l()},a=(e={})=>{L(pA,this,IA).call(this,n)?(o!==kd.TIMELINE_SEEKED||L(pA,this,OA).call(this,e,t))&&(o===kd.TIMELINE_SEEKED||i)&&l():l()},L(pA,this,EA).call(this,kd.TIMELINE_SEEKING,s),L(pA,this,EA).call(this,o,a)}))}function MA(t,e){if(!z(sA,this)||"function"!=typeof z(sA,this).on)return Promise.resolve();const n=Number(t);return new Promise((t=>{const i=(r={})=>{if(!L(pA,this,IA).call(this,e))return L(pA,this,SA).call(this,kd.VISUAL_FRAMES_AVAILABLE,i),void t();const o=Number(null==r?void 0:r.time);Number.isFinite(n)&&Number.isFinite(o)&&o+oA<n||(Array.isArray(null==r?void 0:r.frames)?r.frames:[]).length&&(L(pA,this,SA).call(this,kd.VISUAL_FRAMES_AVAILABLE,i),t())};L(pA,this,EA).call(this,kd.VISUAL_FRAMES_AVAILABLE,i)}))}function FA(){var t,e;const n=null===(t=z(sA,this))||void 0===t?void 0:t.state;if(n===Lv||n===Cv)return!0;const i=null===(e=z(sA,this))||void 0===e?void 0:e.placements;return!Array.isArray(i)||0===i.length}function OA(t,e){const n=Number(null==t?void 0:t.targetTime);return!Number.isFinite(n)||Math.abs(n-e)<oA}function CA(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}var PA=new WeakMap,DA=new WeakMap,RA=new WeakMap,LA=new WeakMap,BA=new WeakMap,zA=new WeakMap,WA=new WeakMap,jA=new WeakMap,UA=new WeakMap,$A=new WeakMap,qA=new WeakMap,VA=new WeakMap,GA=new WeakMap,HA=new WeakMap,KA=new WeakSet;class XA extends md{get name(){return"AudioPlaybackManager"}get defaults(){return{muted:!1,volume:1,lookaheadSeconds:1}}constructor(t,e,n){super(n),U(this,KA),W(this,PA,void 0),W(this,DA,void 0),W(this,RA,null),W(this,LA,null),W(this,BA,[]),W(this,zA,new Set),W(this,WA,new Map),W(this,jA,!1),W(this,UA,1),W(this,$A,!0),W(this,qA,null),W(this,VA,null),W(this,GA,null),W(this,HA,null),j(PA,this,t),j(DA,this,e),j(jA,this,!!this.settings.muted),j(UA,this,_m(this.settings.volume));const i=Array.isArray(null==n?void 0:n.disabledTracks)?n.disabledTracks:[];j($A,this,!i.includes("audio")),L(KA,this,YA).call(this)}get muted(){return z(jA,this)}set muted(t){j(jA,this,!!t),L(KA,this,aN).call(this)}get volume(){return z(UA,this)}set volume(t){j(UA,this,_m(t)),L(KA,this,aN).call(this)}handleDecodedAudio(t={}){if(!z($A,this))return;const e=null==t?void 0:t.audioBuffer,n=null==t?void 0:t.placementId,i=null==t?void 0:t.segmentId,r=CA(null==t?void 0:t.pts,null);if(!(e&&n&&i&&Number.isFinite(r)))return;const o=Number.isFinite(null==t?void 0:t.duration)?t.duration:e.duration,s=`${n}:${i}`;z(zA,this).has(s)||(z(BA,this).push({key:s,placementId:n,pts:r,duration:o,audioBuffer:e}),z(BA,this).sort(((t,e)=>t.pts-e.pts)),L(KA,this,eN).call(this))}onDispose(){L(KA,this,QA).call(this),L(KA,this,oN).call(this,!0),z(RA,this)&&"function"==typeof z(RA,this).close&&z(RA,this).close(),j(RA,this,null),j(LA,this,null),j(PA,this,null),j(DA,this,null)}}function YA(){z(PA,this)&&"function"==typeof z(PA,this).on&&(j(qA,this,(t=>L(KA,this,JA).call(this,t))),z(PA,this).on(kd.TIMELINE_TIME_UPDATE,z(qA,this)),j(VA,this,(t=>L(KA,this,ZA).call(this,t))),z(PA,this).on(kd.TIMELINE_STATE_CHANGE,z(VA,this)),j(HA,this,(()=>L(KA,this,tN).call(this))),z(PA,this).on(kd.TIMELINE_RESET,z(HA,this))),z(DA,this)&&"function"==typeof z(DA,this).on&&(j(GA,this,(t=>this.handleDecodedAudio(t))),z(DA,this).on(kd.DECODER_AUDIO,z(GA,this)))}function QA(){z(PA,this)&&"function"==typeof z(PA,this).off&&(z(qA,this)&&z(PA,this).off(kd.TIMELINE_TIME_UPDATE,z(qA,this)),z(VA,this)&&z(PA,this).off(kd.TIMELINE_STATE_CHANGE,z(VA,this)),z(HA,this)&&z(PA,this).off(kd.TIMELINE_RESET,z(HA,this))),z(DA,this)&&"function"==typeof z(DA,this).off&&z(GA,this)&&z(DA,this).off(kd.DECODER_AUDIO,z(GA,this)),j(qA,this,null),j(VA,this,null),j(GA,this,null),j(HA,this,null)}function JA(){L(KA,this,eN).call(this)}function ZA(t={}){const e=null==t?void 0:t.to;if(e)return e===Pv?(L(KA,this,lN).call(this),void L(KA,this,eN).call(this)):void(e!==Lv&&e!==Rv?e!==Bv&&e!==zv||L(KA,this,tN).call(this):L(KA,this,cN).call(this))}function tN(){L(KA,this,cN).call(this),L(KA,this,oN).call(this,!0),j(BA,this,[])}function eN(){if(!z($A,this)||!z(PA,this))return;if(z(PA,this).state!==Pv)return;const t=L(KA,this,sN).call(this);if(!t)return;const e=CA(z(PA,this).currentTime,0),n=e+Math.max(0,CA(this.settings.lookaheadSeconds,1)),i=[];for(let r=0;r<z(BA,this).length;r+=1){const o=z(BA,this)[r];o&&(o.pts>n?i.push(o):L(KA,this,nN).call(this,o)&&L(KA,this,rN).call(this,o,t,e))}j(BA,this,i)}function nN(t){if(!t||!z(PA,this))return!1;const e=L(KA,this,iN).call(this,t.pts);return!(!e||e!==t.placementId)}function iN(t){if(!z(PA,this)||"function"!=typeof z(PA,this).getPlacementsActiveAtTime)return null;const e=z(PA,this).getPlacementsActiveAtTime(t);if(!Array.isArray(e)||!e.length)return null;const n=e.find((t=>null==t?void 0:t.placementId));return n?n.placementId:null}function rN(t,e,n){const i=t.key;if(z(zA,this).has(i))return;const r=t.audioBuffer;if(!r)return;const o=Number.isFinite(t.duration)?t.duration:r.duration,s=t.pts;if(!Number.isFinite(s))return;const a=n-s;if(Number.isFinite(o)&&o>0&&a>=o)return;const l=e.createBufferSource();l.buffer=r,l.connect(z(LA,this));let c=e.currentTime,u=0;a>0?u=a:a<0&&(c=e.currentTime+Math.abs(a));try{l.start(c,u)}catch(t){return void this.log.warn("[AudioPlaybackManager] Failed to start audio buffer",t)}z(zA,this).add(i),z(WA,this).set(i,l),l.onended=()=>{z(WA,this).delete(i)}}function oN(t){z(WA,this).forEach(((t,e)=>{if(t&&"function"==typeof t.stop)try{t.stop()}catch(t){}z(WA,this).delete(e)})),t&&z(zA,this).clear()}function sN(){if(z(RA,this))return z(RA,this);const t=yd.AudioContext||yd.webkitAudioContext;if(!t)return this.log.warn("[AudioPlaybackManager] AudioContext is not available."),null;try{return j(RA,this,new t),j(LA,this,z(RA,this).createGain()),z(LA,this).connect(z(RA,this).destination),L(KA,this,aN).call(this),z(RA,this)}catch(t){return this.log.warn("[AudioPlaybackManager] Failed to initialize AudioContext",t),j(RA,this,null),j(LA,this,null),null}}function aN(){if(!z(LA,this))return;const t=z(jA,this)?0:z(UA,this);z(LA,this).gain.value=t}function lN(){z(RA,this)&&"function"==typeof z(RA,this).resume&&"suspended"===z(RA,this).state&&z(RA,this).resume().catch((()=>{}))}function cN(){z(RA,this)&&"function"==typeof z(RA,this).suspend&&"running"===z(RA,this).state&&z(RA,this).suspend().catch((()=>{}))}var uN=new WeakMap,dN=new WeakMap,hN=new WeakMap,fN=new WeakMap,pN=new WeakMap,mN=new WeakSet;class vN extends md{constructor(...t){super(...t),U(this,mN),W(this,uN,void 0),W(this,dN,void 0),W(this,hN,void 0),W(this,fN,void 0),W(this,pN,void 0),j(uN,this,L(mN,this,yN).call(this,this.settings.currentTime)),j(dN,this,L(mN,this,bN).call(this,this.settings.playbackRate)),j(hN,this,null),j(fN,this,!1),j(pN,this,L(mN,this,gN).bind(this))}get name(){return"PlaybackClock"}get defaults(){return{currentTime:0,playbackRate:rb("playbackRate")}}get currentTime(){return z(uN,this)}get playbackRate(){return z(dN,this)}set playbackRate(t){j(dN,this,L(mN,this,bN).call(this,t))}play(){z(fN,this)||(j(fN,this,!0),j(hN,this,jy()),Tw(z(pN,this),0))}pause(){z(fN,this)&&(j(fN,this,!1),Iw(z(pN,this)))}seek(t){j(uN,this,L(mN,this,yN).call(this,t)),j(hN,this,jy())}reset(){this.pause(),j(uN,this,0),j(hN,this,null)}onDispose(){this.pause(),j(pN,this,null)}}function gN(){const t=jy();if(null===z(hN,this))return j(hN,this,t),void this.trigger(kd.CLOCK_TICK,{currentTime:z(uN,this)});const e=t-z(hN,this);j(hN,this,t);const n=e/1e3;j(uN,this,z(uN,this)+n*z(dN,this)),this.trigger(kd.CLOCK_TICK,{currentTime:z(uN,this)})}function yN(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<0?0:t}function bN(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<=0?z(dN,this)||1:t}var kN=new WeakMap,wN=new WeakSet;class xN extends md{constructor(...t){super(...t),U(this,wN),W(this,kN,new Map)}get name(){return"TrackBuffers"}get defaults(){return{}}refreshNode(t){if(!t||!Array.isArray(t.tracks))return;const e=t.id,n=z(kN,this).get(e)||new Map;z(kN,this).set(e,n),t.tracks.forEach((t=>{const i=null==t?void 0:t.type;if(!i)return;const r=t.buffered,o=n.get(i),s=!!o&&o.ready,a=(l=r)&&Number.isFinite(l.start)&&Number.isFinite(l.end)&&l.end>l.start;var l,c,u;u=r,!(c=null==o?void 0:o.range)&&!u||c&&u&&c.start===u.start&&c.end===u.end?o&&o.ready!==a&&n.set(i,{range:r,ready:a}):(n.set(i,{range:r,ready:a}),this.trigger(kd.TRACK_BUFFER_UPDATE,{nodeId:e,trackType:i,range:r})),!s&&a?this.trigger(kd.TRACK_READY,{nodeId:e,trackType:i,range:r}):s&&!a&&this.trigger(kd.TRACK_UNDERFLOW,{nodeId:e,trackType:i,range:r})}))}getTrackRange(t,e){const n=z(kN,this).get(t),i=null==n?void 0:n.get(e);return null==i?void 0:i.range}computeBuffered(t=[],e=0,n){if(!n||"function"!=typeof n.get)return;const i=Number.isFinite(e)?e:0;let r,o,s=!1;for(let e=0;e<t.length;e+=1){const a=L(wN,this,TN).call(this,n,t[e],i);if(!a||a.end<=i)continue;if(void 0===r){r=a.start,o=a.end,s=a.full;continue}const l=a.start<=o,c=s&&a.full;if(!l&&!c)break;o=Math.max(o,a.end),s=a.full}return void 0===r||void 0===o?{start:0,end:0}:{start:r,end:o}}get buffered(){return z(kN,this)}reset(){z(kN,this).clear()}onDispose(){z(kN,this).clear(),"function"==typeof this.off&&this.off()}}function _N(t,e=0){const n=Array.isArray(null==t?void 0:t.segments)?t.segments:[],i=[];for(let t=0;t<n.length;t+=1){const e=n[t];if(!e||e.isInit)continue;const r=Number(e.duration),o=Number(e.offset),s=Number(e.bufferedRatio);if(!Number.isFinite(r)||r<=0||!Number.isFinite(o)||s<=0)continue;const a=o+r*Math.min(1,s);!Number.isFinite(a)||a<=o||i.push({start:o,end:a})}if(!i.length)return;i.sort(((t,e)=>t.start-e.start));const r=[i[0]];for(let t=1;t<i.length;t+=1){const e=i[t],n=r[r.length-1];e.start<=n.end+.001?n.end=Math.max(n.end,e.end):r.push({...e})}const o=Number.isFinite(e)?e:0;for(let t=0;t<r.length;t+=1){const e=r[t];if(e.end>o+.001)return e}}function TN(t,e,n=0){var i,r;const o=Sm(e);if(!Number.isFinite(o))return;const s=t.get(e.nodeId);if(!s)return;const a=Array.isArray(s.tracks)?s.tracks:[];if(!a.length){const t=s.buffered;if(!t||!Number.isFinite(t.start)||!Number.isFinite(t.end))return;return L(wN,this,IN).call(this,s,t,o,e)}const l=s.mainTrackId,c=Number.isFinite(e.nodeOffsetOverride)?e.nodeOffsetOverride:0,u=Math.max(0,n-o+c);let d;l&&(d=a.find((t=>(null==t?void 0:t.id)===l))),(null===(i=d)||void 0===i?void 0:i.type)||(d=a.find((t=>null==t?void 0:t.type)));const h=L(wN,this,_N).call(this,d,u)||(null===(r=d)||void 0===r?void 0:r.buffered);return h&&Number.isFinite(h.start)&&Number.isFinite(h.end)?L(wN,this,IN).call(this,s,h,o,e):void 0}function IN(t,e,n,i){const r=Number.isFinite(i.nodeOffsetOverride)?i.nodeOffsetOverride:0;let o=e.start-r+n,s=e.end-r+n;const a=t.duration,l=Number.isFinite(i.nodeDurationOverride)?i.nodeDurationOverride:a;if(Number.isFinite(l)){const t=n+l;s=Math.min(s,t);const e=o<=n&&s>=t;if(o=Math.max(o,n),!(s>o))return;return{start:o,end:s,full:e}}if(o=Math.max(o,n),s>o)return{start:o,end:s,full:!1}}class EN{constructor(t={}){const{placementId:e,nodeId:n,offset:i,offsetPending:r=!1,offsetAnchorPlacementId:o,offsetEndSeconds:s,offsetAnchorEdge:a,offsetAnchorIsReference:l,nodeOffsetOverride:c,nodeDurationOverride:u,loop:d=!1,loopRootPlacementId:h,loopRootOffset:f}=t;if(!e)throw new Error("Placement requires placementId");if(!n)throw new Error("Placement requires nodeId");this.placementId=e,this.nodeId=n;const p=Number.isFinite(i)?i:0;this.offsetPending=!0===r,this.offsetAnchorPlacementId=o,this.offsetAnchorEdge=a,this.offsetAnchorIsReference=l,this.offsetEndSeconds=Number.isFinite(s)?s:void 0,this.offset=this.offsetPending?void 0:p,this.nodeOffsetOverride=c,this.nodeDurationOverride=u,this.loop=!0===d,this.loopRootPlacementId=h,this.loopRootOffset=f}}class SN extends md{constructor(t,e){super(e),this.timeline=t}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"handleDecodedFrame","handleClockTick","handleMainTrackBufferUpdate"])}enter(){}exit(){}play(){this.timeline.transitionTo(Pv)}pause(){this.timeline.transitionTo(Lv)}wait(){this.timeline.transitionTo(Rv)}reset(){this.timeline.transitionTo(zv)}seek(t){this.timeline.transitionTo(Bv,{targetTime:t,returnState:this.timeline.state})}getCurrentTime(){return this.timeline.currentTime}emitPlayerStateEvent(t,e={}){if(!t||!this.timeline||"function"!=typeof this.timeline.trigger)return;const n=Number.isFinite(null==e?void 0:e.time)?e.time:this.getCurrentTime(),i={...e,event:t};Number.isFinite(n)&&(i.time=n),this.timeline.trigger("player:state",i)}get buffered(){return this.timeline.computeBuffered(this.timeline.currentTime)}handleMainTrackUnderflow(t){this.wait()}handleMainTrackReady(t){const e=this.timeline.getLastStableState()||Lv;this.timeline.transitionTo(e)}handleMainTrackBufferUpdate(t){}handleDecodedFrame(t){}handleClockTick(t){}onDispose(){this.timeline=null}}const AN=24e3/1001;function NN(t,e=(null==t?void 0:t.currentTime)){return Number.isFinite(e)?e:Number.isFinite(null==t?void 0:t.currentTime)?t.currentTime:0}function MN(t){var e;const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return Number.isFinite(n)&&n>0?.5/n:.001}function FN(t){var e;const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let i;if(null!=t&&t.mainTrackId){const e=n.find((e=>(null==e?void 0:e.id)===t.mainTrackId));i=null==e?void 0:e.type}if(i||(i=null===(e=n.find((t=>null==t?void 0:t.type)))||void 0===e?void 0:e.type),"video"===i||"audio"===i||"image"===i)return i}function ON(t){const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];if(e.length){if(null!=t&&t.mainTrackId){const n=e.find((e=>(null==e?void 0:e.id)===t.mainTrackId));if("video"===(null==n?void 0:n.type)||"image"===(null==n?void 0:n.type))return n}return e.find((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)))}}function CN(t,e,n,i,r){var o,s;const a="function"==typeof(null==t?void 0:t.getDecodedVisualBuffer)?t.getDecodedVisualBuffer(e,n):void 0;if(!a)return"function"==typeof(null==t?void 0:t.hasDecodedFirstFrame)&&t.hasDecodedFirstFrame(e,i);const l=Array.isArray(a.frames)?a.frames:[];let c,u=Number.isFinite(null===(o=a.current)||void 0===o?void 0:o.presentationTime)?a.current:void 0;for(let t=0;t<l.length;t+=1){const e=l[t],n=Number(null==e?void 0:e.presentationTime);if(Number.isFinite(n)){if(!(n<=r)){c=n;break}u=e}}const d=Number(null===(s=u)||void 0===s?void 0:s.presentationTime);if(!Number.isFinite(d)||d>r)return!1;const h=function(t,e,n,i){const r=Number(null==n?void 0:n.duration);if(Number.isFinite(r)&&r>0)return e+r;const o=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return 2/(Number.isFinite(n)&&n>0?n:AN)}(t),s=Number.isFinite(i)&&i>e?i-e:o;return e+Math.min(s,o)}(t,d,u,c);return!!Number.isFinite(h)&&r<=h+MN(t)}function PN(t,e=(null==t?void 0:t.currentTime)){const n=NN(t,e),i="function"==typeof(null==t?void 0:t.getPlacementsActiveAtTime)?t.getPlacementsActiveAtTime(n):[];if(!i.length)return!1;for(let e=0;e<i.length;e+=1){const n=i[e],r=null==n?void 0:n.placementId;if(!r)return!0;const o="function"==typeof(null==t?void 0:t.getNode)?t.getNode(n.nodeId):void 0;if(!o)return!0;const s=FN(o);if(!s)return!0;if(!t.hasDecodedFirstFrame(r,s))return!0}return!1}function DN(t,e=(null==t?void 0:t.currentTime)){return PN(t,e)||function(t,e=(null==t?void 0:t.currentTime)){const n=NN(t,e),i="function"==typeof(null==t?void 0:t.getPlacementsActiveAtTime)?t.getPlacementsActiveAtTime(n):[];if(!i.length)return!1;for(let e=0;e<i.length;e+=1){const r=i[e],o=null==r?void 0:r.placementId;if(!o)return!0;const s="function"==typeof(null==t?void 0:t.getNode)?t.getNode(r.nodeId):void 0;if(!s)return!0;const a=ON(s);if(null!=a&&a.id&&!CN(t,o,a.id,a.type,n))return!0}return!1}(t,e)}function RN(t,e=(null==t?void 0:t.currentTime)){if("function"!=typeof(null==t?void 0:t.computeBuffered))return!1;const n=NN(t,e),i=t.computeBuffered(n),r=Number(null==i?void 0:i.start),o=Number(null==i?void 0:i.end);if(!Number.isFinite(r)||!Number.isFinite(o)||o<=r)return!1;const s=MN(t);if(!(r<=n+s))return!1;return o-n>=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.waitingBufferAheadSeconds);return!Number.isFinite(n)||n<0?3:n}(t)-s||function(t,e,n,i){const r=function(t){const e=Array.isArray(null==t?void 0:t.placements)?t.placements:[];let n;for(let i=0;i<e.length;i+=1){const r=e[i],o=Sm(r);if(!Number.isFinite(o))continue;const s="function"==typeof(null==t?void 0:t.getPlacementDuration)?t.getPlacementDuration(r):void 0;if(!Number.isFinite(s))continue;const a=o+s;Number.isFinite(a)&&(!Number.isFinite(n)||a>n)&&(n=a)}return n}(t);return!!Number.isFinite(r)&&(e>=r-i||n>=r-i)}(t,n,o,s)}const LN={[Cv]:class extends SN{get name(){return Cv}get defaults(){return{autoplay:rb("autoplay")}}enter(){this.timeline.recordStableState(Lv),this.timeline.stopPlaybackClock()}play(){const t=DN(this.timeline),e=t?Rv:this.timeline.getPlaybackStartState();if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(Pv),void this.timeline.transitionTo(Rv);this.timeline.transitionTo(e)}pause(){}handleDecodedFrame(t){if(!0!==this.settings.autoplay)return;if(!Array.isArray(this.timeline.placements)||!this.timeline.placements.length)return;if(DN(this.timeline))return;const e=this.timeline.getPlaybackStartState();this.log.info("[handleDecodedFrame] Autoplay enabled, starting playback!"),this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),this.timeline.transitionTo(e)}},[Dv]:class extends SN{get name(){return Dv}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(Pv),this.timeline.stopPlaybackClock(),this.emitPlayerStateEvent("canplay",{from:e,to:n})}play(){}handleMainTrackUnderflow(){}pause(){this.timeline.transitionTo(Lv)}},[Pv]:class extends SN{get name(){return Pv}enter(t={}){const{from:e,to:n,fromFirstFramePending:i}=t;this.timeline.recordStableState(Pv),this.timeline.startPlaybackClock(),!0!==i&&this.emitPlayerStateEvent("canplay",{from:e,to:n}),this.emitPlayerStateEvent("playing",{from:e,to:n})}play(){}pause(){this.timeline.transitionTo(Lv)}handleClockTick(t){const e=this.timeline.currentTime;DN(this.timeline,e)&&(this.timeline.recordStableState(Pv),this.timeline.transitionTo(Rv))}},[Rv]:(ln=new WeakMap,cn=new WeakMap,un=new WeakSet,class extends SN{constructor(...t){super(...t),U(this,un),W(this,ln,void 0),W(this,cn,null)}get name(){return Rv}enter(t={}){const{from:e,to:n}=t;this.timeline.stopPlaybackClock(),L(un,this,BN).call(this),L(un,this,WN).call(this),this.emitPlayerStateEvent("waiting",{from:e,to:n}),L(un,this,$N).call(this)}exit(){L(un,this,zN).call(this),L(un,this,jN).call(this)}play(){this.timeline.recordStableState(Pv);const t=L(un,this,UN).call(this),e=t?Rv:this.timeline.getPlaybackStartState();this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t||this.timeline.transitionTo(e)}pause(){this.timeline.transitionTo(Lv)}handleMainTrackReady(t){const e=this.timeline.getLastStableState()||Lv;e!==Pv?this.timeline.transitionTo(e):L(un,this,$N).call(this)}handleDecodedFrame(t){L(un,this,$N).call(this)}handleMainTrackBufferUpdate(t){L(un,this,$N).call(this)}}),[Lv]:class extends SN{get name(){return Lv}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(Lv),this.timeline.stopPlaybackClock(),this.emitPlayerStateEvent("pause",{from:e,to:n})}play(){const t=DN(this.timeline),e=t?Rv:this.timeline.getPlaybackStartState();if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(Pv),void this.timeline.transitionTo(Rv);this.timeline.transitionTo(e)}pause(){}},[Bv]:class extends SN{get name(){return Bv}enter(t={}){const{targetTime:e,returnState:n}=t;if(this.timeline&&"function"==typeof this.timeline.stopPlaybackClock&&this.timeline.stopPlaybackClock(),this.timeline&&"function"==typeof this.timeline.startSeeking)return void this.timeline.startSeeking(e,n);this.timeline.updateTime(e);const i=n===Pv||n===Dv,r=i&&"function"==typeof this.timeline.getPlaybackStartState?this.timeline.getPlaybackStartState(e):i?Pv:Lv;this.timeline.transitionTo(r,{fromSeeking:!0})}play(){var t;if(this.timeline&&"function"==typeof this.timeline.setSeekReturnState)return void this.timeline.setSeekReturnState(Pv);const e="function"==typeof(null===(t=this.timeline)||void 0===t?void 0:t.getPlaybackStartState)?this.timeline.getPlaybackStartState():Pv;this.timeline.transitionTo(e)}pause(){this.timeline&&"function"==typeof this.timeline.setSeekReturnState?this.timeline.setSeekReturnState(Lv):this.timeline.transitionTo(Lv)}handleDecodedFrame(t){this.timeline&&"function"==typeof this.timeline.maybeCompleteSeek&&this.timeline.maybeCompleteSeek(t)}},[zv]:class extends SN{get name(){return zv}enter(){this.timeline.resetClock(),this.timeline.transitionTo(Cv,{fromReset:!0})}play(){}pause(){}get buffered(){return{start:0,end:0}}}};function BN(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;e&&"function"==typeof e.on&&(j(ln,this,(t=>this.handleMainTrackBufferUpdate(t))),e.on(kd.TRACK_BUFFER_UPDATE,z(ln,this)))}function zN(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;z(ln,this)&&e&&"function"==typeof e.off?(e.off(kd.TRACK_BUFFER_UPDATE,z(ln,this)),j(ln,this,null)):j(ln,this,null)}function WN(){if(null!==z(cn,this))return;const t="function"==typeof(null==yd?void 0:yd.setInterval)?yd.setInterval.bind(yd):setInterval;j(cn,this,t((()=>{var t;(null===(t=this.timeline)||void 0===t?void 0:t.state)===Rv&&L(un,this,$N).call(this)}),200))}function jN(){null!==z(cn,this)&&(("function"==typeof(null==yd?void 0:yd.clearInterval)?yd.clearInterval.bind(yd):clearInterval)(z(cn,this)),j(cn,this,null))}function UN(t=(t=>null===(t=this.timeline)||void 0===t?void 0:t.currentTime)()){return function(t,e=(null==t?void 0:t.currentTime),n={}){return!!PN(t,e)||!0===n.skipBufferResume||!RN(t,e)}(this.timeline,t)}function $N(t=(t=>null===(t=this.timeline)||void 0===t?void 0:t.currentTime)()){return(this.timeline.getLastStableState()||Lv)===Pv&&!L(un,this,UN).call(this,t)&&(this.timeline.transitionTo(this.timeline.getPlaybackStartState(t)),!0)}function qN(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function VN(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).some((t=>"video"===(null==t?void 0:t.type)))}function GN(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).some((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)))}function HN(t){return t===Pv||t===Dv}var KN=new WeakMap,XN=new WeakMap,YN=new WeakMap,QN=new WeakMap,JN=new WeakMap,ZN=new WeakMap,tM=new WeakMap,eM=new WeakMap,nM=new WeakMap,iM=new WeakMap,rM=new WeakMap,oM=new WeakMap,sM=new WeakMap,aM=new WeakMap,lM=new WeakSet;class cM{constructor(t={}){U(this,lM),W(this,KN,void 0),W(this,XN,void 0),W(this,YN,void 0),W(this,QN,void 0),W(this,JN,void 0),W(this,ZN,void 0),W(this,tM,void 0),W(this,eM,void 0),W(this,nM,void 0),W(this,iM,null),W(this,rM,Lv),W(this,oM,[]),W(this,sM,new Set),W(this,aM,new Map),j(KN,this,t.getState),j(XN,this,t.getNode),j(YN,this,t.getPlacementsActiveAtTime),j(QN,this,t.getLastStableState),j(JN,this,t.getPlaybackStartState),j(ZN,this,t.clearVisualFrameBuffers),j(tM,this,t.updateTime),j(eM,this,t.transitionTo),j(nM,this,t.trigger)}start(t,e){const n=Number(t);if(!Number.isFinite(n))return;let i=e;i===Bv?i=z(rM,this):i===Rv&&"function"==typeof z(QN,this)&&(i=z(QN,this).call(this)),j(rM,this,HN(i)?Pv:Lv),j(iM,this,n),z(sM,this).clear(),z(aM,this).clear(),j(oM,this,"function"==typeof z(YN,this)?z(YN,this).call(this,n):[]),"function"==typeof z(ZN,this)&&z(ZN,this).call(this),"function"==typeof z(tM,this)&&z(tM,this).call(this,n,{source:"seek"}),"function"==typeof z(nM,this)&&z(nM,this).call(this,kd.TIMELINE_SEEKING,{targetTime:n,placements:z(oM,this).slice()}),this.maybeComplete()}setReturnState(t){j(rM,this,HN(t)?Pv:Lv)}maybeComplete(t){if(("function"==typeof z(KN,this)?z(KN,this).call(this):void 0)!==Bv)return;const e=z(iM,this);if(!Number.isFinite(e))return;const n=null==t?void 0:t.trackType,i=null==t?void 0:t.placementId;if(i&&"video"===n){const n=Number(null==t?void 0:t.pts);if(Number.isFinite(n)&&n>=e){z(sM,this).add(i);const t=z(aM,this).get(i);(!Number.isFinite(t)||n<t)&&z(aM,this).set(i,n)}}else i&&"image"===n&&function(t,e){const n=Number(null==t?void 0:t.pts),i=Number(null==t?void 0:t.duration);return!Number.isFinite(n)||(Number.isFinite(i)&&i>0?e>=n&&e<n+i:e>=n)}(t,e)&&z(sM,this).add(i);const r=Array.isArray(z(oM,this))?z(oM,this):[];if(r.length){if("function"==typeof z(XN,this)){for(let t=0;t<r.length;t+=1){const e=r[t],n=null==e?void 0:e.placementId;if(!n)return;const i=z(XN,this).call(this,e.nodeId);if(!qN(i))return;if(GN(i)&&!z(sM,this).has(n))return}L(lM,this,uM).call(this,e,r)}}else L(lM,this,uM).call(this,e,[])}dispose(){j(oM,this,[]),z(sM,this).clear(),z(aM,this).clear(),j(iM,this,null)}}function uM(t,e){const n=L(lM,this,dM).call(this,t,e);if("function"==typeof z(tM,this)&&z(tM,this).call(this,n,{source:"seek"}),j(iM,this,null),j(oM,this,[]),z(sM,this).clear(),z(aM,this).clear(),"function"==typeof z(nM,this)&&z(nM,this).call(this,kd.TIMELINE_SEEKED,{targetTime:t,placements:Array.isArray(e)?e.slice():[]}),"function"==typeof z(eM,this)){const t=z(rM,this)===Pv&&"function"==typeof z(JN,this)?z(JN,this).call(this,n):z(rM,this);z(eM,this).call(this,t,{fromSeeking:!0})}}function dM(t,e){const n=Number(t);if(!Number.isFinite(n))return t;if(!Array.isArray(e)||!e.length||"function"!=typeof z(XN,this))return n;let i=n;for(let t=0;t<e.length;t+=1){const n=e[t],r=null==n?void 0:n.placementId;if(!r)continue;if(!VN(z(XN,this).call(this,n.nodeId)))continue;const o=z(aM,this).get(r);Number.isFinite(o)&&o>i&&(i=o)}return i}function hM(t){if(t&&"function"==typeof t.close)try{t.close()}catch(t){}}function fM(t){if(!t)return;const e=Array.isArray(null==t?void 0:t.frames)?t.frames:[],n=null==t?void 0:t.current;(n?[n,...e]:e).forEach((t=>hM(null==t?void 0:t.frame)))}function pM(t){return Sm(t)}function mM(t){return Number.isFinite(null==t?void 0:t.loopRootOffset)?t.loopRootOffset:pM(t)}function vM(t,e){return"string"==typeof(null==t?void 0:t.loopRootPlacementId)&&t.loopRootPlacementId?t.loopRootPlacementId:e}function gM(t){if("string"!=typeof t)return Number.NaN;const e=t.match(/(\d+)/);return e?Number(e[1]):Number.NaN}function yM(t){if(!t)return;const e=[[t.displayWidth,t.displayHeight],[t.codedWidth,t.codedHeight],[t.videoWidth,t.videoHeight],[t.naturalWidth,t.naturalHeight],[t.width,t.height]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}const bM=1e-6;function kM(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function wM(t){const e=Number(t);return Number.isFinite(e)?e:0}function xM(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>"cue"===(null==t?void 0:t.type)&&Array.isArray(null==t?void 0:t.cues)))}function _M(t){return t&&"cue"===t.type&&Array.isArray(t.cues)?t.cues:[]}var TM=new WeakMap,IM=new WeakMap,EM=new WeakMap,SM=new WeakMap,AM=new WeakMap,NM=new WeakMap,MM=new WeakMap,FM=new WeakMap,OM=new WeakSet;class CM{constructor(t={}){U(this,OM),W(this,TM,void 0),W(this,IM,void 0),W(this,EM,void 0),W(this,SM,void 0),W(this,AM,void 0),W(this,NM,void 0),W(this,MM,-1e-6),W(this,FM,null),j(TM,this,t.getPlacements),j(IM,this,t.getPlacementsActiveAtTime),j(EM,this,t.getPlacementDuration),j(SM,this,t.getNode),j(AM,this,t.triggerTimeline),j(NM,this,t.triggerNode)}handleSeeking(t,e){const n=wM(t);j(FM,this,n)}handleSeeked(t){const e=wM(t),n=z(FM,this);j(FM,this,null),Number.isFinite(n)?(L(OM,this,DM).call(this,n,e),j(MM,this,e)):j(MM,this,e)}handleTimeUpdate(t,e={}){const n=wM(t),i=z(MM,this);!0===(null==e?void 0:e.isSeeking)?j(MM,this,n):Number.isFinite(i)?n<=i?n<i&&j(MM,this,n-bM):(L(OM,this,PM).call(this,i,n),j(MM,this,n)):j(MM,this,n)}dispose(){j(FM,this,null),j(MM,this,-1e-6)}}function PM(t,e){const n="function"==typeof z(TM,this)?z(TM,this).call(this):[];L(OM,this,RM).call(this,n,t,e,{onlySticky:!1})}function DM(t,e){if("function"!=typeof z(IM,this))return;const n=z(IM,this).call(this,e);L(OM,this,RM).call(this,n,t,e,{onlySticky:!0})}function RM(t,e,n,i={}){if("function"!=typeof z(SM,this)||"function"!=typeof z(AM,this))return;if(!Array.isArray(t)||!t.length)return;const r=!0===i.onlySticky,o=[];for(let i=0;i<t.length;i+=1){const s=t[i],a=null==s?void 0:s.placementId,l=null==s?void 0:s.nodeId;if(!a||!l)continue;const c=z(SM,this).call(this,l);if(!kM(c))continue;const u=xM(c);if(!u.length)continue;const d=Sm(s);if(!Number.isFinite(d))continue;const h=Number.isFinite(null==s?void 0:s.nodeOffsetOverride)?s.nodeOffsetOverride:0,f="function"==typeof z(EM,this)?z(EM,this).call(this,s):void 0,p="number"==typeof f&&Number.isFinite(f)?d+f:Number.POSITIVE_INFINITY,m=r?d-bM:e;for(let t=0;t<u.length;t+=1){const e=_M(u[t]);for(let i=0;i<e.length;i+=1){const s=e[i],c=wM(null==s?void 0:s.timestamp),u=d+Math.max(0,c-h);u<=p&&(r&&!0!==(null==s?void 0:s.isSticky)||u>m&&u<=n&&"string"==typeof(null==s?void 0:s.name)&&s.name&&o.push({time:u,placementOffset:d,placementId:a,nodeId:l,cuepoint:s,trackIndex:t,cueIndex:i}))}}}o.length&&(o.sort(((t,e)=>t.time!==e.time?t.time-e.time:t.placementOffset!==e.placementOffset?t.placementOffset-e.placementOffset:t.placementId!==e.placementId?t.placementId<e.placementId?-1:1:t.trackIndex!==e.trackIndex?t.trackIndex-e.trackIndex:t.cueIndex-e.cueIndex)),o.forEach((t=>{const e=t.cuepoint,n={time:t.time,nodeId:t.nodeId,placementId:t.placementId,cuepoint:e};z(AM,this).call(this,"cuepoint",n),z(AM,this).call(this,e.name,n),"function"==typeof z(NM,this)&&(z(NM,this).call(this,t.nodeId,"cuepoint",n),z(NM,this).call(this,t.nodeId,e.name,n))})))}class LM{#J;#Z=0;#tt=new Set;constructor(t){this.#J="string"==typeof t?t:""}claim(t){if(t)return this.#tt.add(t),t;let e;do{e=`${this.#J}${++this.#Z}`}while(this.#tt.has(e));return this.#tt.add(e),e}reset(){this.#Z=0,this.#tt.clear()}}const BM=24e3/1001;function zM(t){var e;const n=null==t?void 0:t.frame;if(!n||!0===n.__closed||!0===n.closed)return 0;if("function"==typeof n.allocationSize)try{const t=Number(n.allocationSize());if(Number.isFinite(t)&&t>0)return t}catch(t){}const i=Number(null==n?void 0:n.byteLength);if(Number.isFinite(i)&&i>0)return i;const r=Number(null==n||null===(e=n.data)||void 0===e?void 0:e.byteLength);if(Number.isFinite(r)&&r>0)return r;const o=function(t,e){const n=Number(null==t?void 0:t.width),i=Number(null==t?void 0:t.height);return Number.isFinite(n)&&Number.isFinite(i)&&n>0&&i>0?{width:n,height:i}:yM(e)}(t,n),s=Number(null==o?void 0:o.width),a=Number(null==o?void 0:o.height);return Number.isFinite(s)&&Number.isFinite(a)&&s>0&&a>0?s*a*4:0}var WM=new WeakMap,jM=new WeakMap,UM=new WeakMap,$M=new WeakMap,qM=new WeakMap,VM=new WeakMap,GM=new WeakMap,HM=new WeakMap,KM=new WeakMap,XM=new WeakMap,YM=new WeakMap,QM=new WeakMap,JM=new WeakMap,ZM=new WeakMap,tF=new WeakMap,eF=new WeakMap,nF=new WeakMap,iF=new WeakMap,rF=new WeakMap,oF=new WeakMap,sF=new WeakMap,aF=new WeakMap,lF=new WeakMap,cF=new WeakMap,uF=new WeakMap,dF=new WeakMap,hF=new WeakMap,fF=new WeakMap,pF=new WeakMap,mF=new WeakMap,vF=new WeakMap,gF=new WeakMap,yF=new WeakMap,bF=new WeakSet;class kF extends md{constructor(...t){super(...t),U(this,bF),W(this,WM,void 0),W(this,jM,void 0),W(this,UM,void 0),W(this,$M,void 0),W(this,qM,void 0),W(this,VM,!1),W(this,GM,[]),W(this,HM,new LM("placement-")),W(this,KM,[]),W(this,XM,new LM("renderplacement-")),W(this,YM,void 0),W(this,QM,void 0),W(this,JM,void 0),W(this,ZM,!1),W(this,tF,new Set),W(this,eF,new Set),W(this,nF,new Map),W(this,iF,[]),W(this,rF,0),W(this,oF,new Set),W(this,sF,new Set),W(this,aF,Number.NEGATIVE_INFINITY),W(this,lF,[]),W(this,cF,Number.NEGATIVE_INFINITY),W(this,uF,0),W(this,dF,void 0),W(this,hF,void 0),W(this,fF,new Map),W(this,pF,null),W(this,mF,void 0),W(this,vF,void 0),W(this,gF,void 0),W(this,yF,void 0);const[e,n={}]=t;j(WM,this,e),j(dF,this,n),j(qM,this,new vN(n)),j(YM,this,new xN(n)),j($M,this,Lv),L(bF,this,FF).call(this),L(bF,this,OF).call(this),j(mF,this,new cM({getState:()=>this.state,getNode:t=>z(WM,this)&&"function"==typeof z(WM,this).get?z(WM,this).get(t):void 0,getPlacementsActiveAtTime:t=>L(bF,this,dO).call(this,t,{endEpsilonSeconds:L(bF,this,kO).call(this)}),getLastStableState:()=>this.getLastStableState(),getPlaybackStartState:t=>this.getPlaybackStartState(t),clearVisualFrameBuffers:()=>L(bF,this,cO).call(this),updateTime:(t,e)=>this.updateTime(t,e),transitionTo:(t,e)=>this.transitionTo(t,e),trigger:(t,e)=>this.trigger(t,e)})),j(vF,this,new CM({getPlacements:()=>z(GM,this).slice(),getPlacementsActiveAtTime:t=>L(bF,this,dO).call(this,t),getPlacementDuration:t=>L(bF,this,GF).call(this,t),getNode:t=>z(WM,this)&&"function"==typeof z(WM,this).get?z(WM,this).get(t):void 0,triggerTimeline:(t,e)=>this.trigger(t,e),triggerNode:(t,e,n)=>{const i=z(WM,this)&&"function"==typeof z(WM,this).get?z(WM,this).get(t):void 0;i&&"function"==typeof i.trigger&&i.trigger(e,n)}})),j(gF,this,(()=>{var t,e;null===(t=z(vF,this))||void 0===t||null===(e=t.handleSeeked)||void 0===e||e.call(t,this.currentTime)})),this.on(kd.TIMELINE_SEEKED,z(gF,this)),j(yF,this,(t=>L(bF,this,zF).call(this,t))),this.on("nodestart",z(yF,this)),this.transitionTo(Cv)}get name(){return"Timeline"}get defaults(){return{snapToFps:BM,maxBufferedVideoFrames:24}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"computeBuffered","notifyDecodedFrame","getDecodedFrameStats","getActiveRenderPlacement","maybeCompleteSeek","getPlacementsActiveAtTime","hasDecodedFirstFrame","getDecodedVisualBuffer","getPlacementDuration","getNode"])}transitionTo(t,e={}){const n=z(UM,this),i=function(t,e,n={}){const i=LN[t];return i?new i(e,n):null}(t,this,z(dF,this)),r=e&&"object"==typeof e&&!Array.isArray(e)?{...e,from:n,to:t}:{from:n,to:t};i?(z(jM,this)&&"function"==typeof z(jM,this).exit&&z(jM,this).exit(),j(jM,this,i),j(UM,this,t),"function"==typeof i.enter&&i.enter(r),this.trigger(kd.TIMELINE_STATE_CHANGE,{from:n,to:t,options:e})):this.log.warn(`Unknown state "${t}"`)}recordStableState(t){j($M,this,t)}getLastStableState(){return z($M,this)}enableFirstFrameRenderedGate(){j(VM,this,!0)}getPlaybackStartState(t=this.currentTime){return this.shouldWaitForFirstRenderedFrame(t)?Dv:Pv}shouldWaitForFirstRenderedFrame(t=this.currentTime){if(!z(VM,this)||z(ZM,this))return!1;const e=Number.isFinite(t)?t:this.currentTime,n=L(bF,this,dO).call(this,e);return Array.isArray(n)&&n.length>0}notifyFirstFrameRendered(){z(ZM,this)||(j(ZM,this,!0),this.state===Dv&&this.transitionTo(Pv,{fromFirstFramePending:!0}))}get state(){return z(UM,this)}get paused(){return z(UM,this)===Cv||z(UM,this)===Lv}get currentTime(){return z(qM,this).currentTime}set currentTime(t){z(jM,this).seek(t)}get playbackRate(){return z(qM,this).playbackRate}set playbackRate(t){z(qM,this).playbackRate=t}play(){z(jM,this).play()}pause(){z(jM,this).pause()}reset(){z(jM,this).reset()}seekToPlacement(t){if(!t)throw new Error("Timeline.seekToPlacement requires placement id");L(bF,this,UF).call(this);const e=L(bF,this,vO).call(this,t);if(!e)throw new Error("Timeline.seekToPlacement requires placement id");const n=Sm(e);if(!Number.isFinite(n))throw new Error("Timeline.seekToPlacement requires resolved placement offset");return this.currentTime=n,n}updateTime(t,e={}){var n,i;L(bF,this,UF).call(this),L(bF,this,$F).call(this),z(qM,this).seek(t),L(bF,this,uO).call(this,this.currentTime),L(bF,this,hO).call(this);const r="string"==typeof(null==e?void 0:e.source)?e.source:"set";null!==(n=z(vF,this))&&void 0!==n&&null!==(i=n.handleTimeUpdate)&&void 0!==i&&i.call(n,this.currentTime,{isSeeking:this.state===Bv}),L(bF,this,WF).call(this,this.currentTime),L(bF,this,rO).call(this,this.currentTime),this.trigger(kd.TIMELINE_TIME_UPDATE,wd(this.currentTime,r))}startSeeking(t,e){var n,i;null!==(n=z(vF,this))&&void 0!==n&&null!==(i=n.handleSeeking)&&void 0!==i&&i.call(n,this.currentTime,t),z(mF,this)&&"function"==typeof z(mF,this).start&&z(mF,this).start(t,e)}setSeekReturnState(t){z(mF,this)&&"function"==typeof z(mF,this).setReturnState&&z(mF,this).setReturnState(t)}maybeCompleteSeek(t){z(mF,this)&&"function"==typeof z(mF,this).maybeComplete&&z(mF,this).maybeComplete(t)}startPlaybackClock(){z(qM,this).play()}stopPlaybackClock(){z(qM,this).pause()}resetClock(){var t,e;j(ZM,this,!1),z(qM,this).reset(),this.trigger(kd.TIMELINE_RESET,{reason:"reset"}),null===(t=z(vF,this))||void 0===t||null===(e=t.dispose)||void 0===e||e.call(t)}applyTimelineDefinition(t={}){const e=Array.isArray(null==t?void 0:t.placements)?t.placements:[],n=Array.isArray(null==t?void 0:t.renderPlacements)?t.renderPlacements:[];L(bF,this,wF).call(this),L(bF,this,xF).call(this,e),L(bF,this,_F).call(this,n),this.currentTime=0}placeOnTimeline(t,e,n={}){const i=t&&"object"==typeof t?t.id:t;if(!i)throw new Error("Timeline.placeOnTimeline requires node id");const r=z(HM,this).claim(n.placementId),o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=Cm(e);if("string"==typeof e&&e.includes("@")&&!a)throw new Error("Timeline.placeOnTimeline requires valid placement reference");const{wantsEndOffset:l,endOffsetSeconds:c}=a?{wantsEndOffset:!1}:Om(e,n);let u,d,h,f=!1;const p=null!==a;if(L(bF,this,UF).call(this),a){const t=z(GM,this).find((t=>(null==t?void 0:t.placementId)===a.placementId));if(!t)throw new Error("Timeline.placeOnTimeline requires valid placement reference");d=t.placementId,h=a.anchor;const e=Sm(t);if("start"===a.anchor)Number.isFinite(e)?u=L(bF,this,HF).call(this,e,{nodeOffsetOverride:o}):f=!0;else{const n=L(bF,this,GF).call(this,t);if(Number.isFinite(e)&&n>0){const t=e+n,i=L(bF,this,HF).call(this,t,{nodeOffsetOverride:o});u=Math.max(i,t)}else f=!0}}else if(l){const t=n.offsetAnchorPlacementId?z(GM,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):z(GM,this).length?z(GM,this)[z(GM,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=Sm(t),n=L(bF,this,GF).call(this,t);Number.isFinite(e)&&n>0?u=L(bF,this,HF).call(this,e+n-c,{nodeOffsetOverride:o}):(f=!0,h="end")}else u=L(bF,this,HF).call(this,-c,{nodeOffsetOverride:o})}else u=Fm(e),u=L(bF,this,HF).call(this,u,{...n,nodeOffsetOverride:o});const m=!0===n.loop?n.loopRootPlacementId||r:void 0,v=!0===n.loop&&Number.isFinite(n.loopRootOffset)?n.loopRootOffset:!0===n.loop?u:void 0,g=l?c:a&&"end"===a.anchor?0:void 0,y=new EN({placementId:r,nodeId:i,offset:u,offsetPending:f,offsetAnchorPlacementId:f?d:void 0,offsetAnchorEdge:f?h:void 0,offsetAnchorIsReference:f?p:void 0,offsetEndSeconds:g,nodeOffsetOverride:o,nodeDurationOverride:s,loop:!0===n.loop,loopRootPlacementId:m,loopRootOffset:v});if(z(GM,this).push(y),Nm(z(GM,this)),L(bF,this,nO).call(this,y),L(bF,this,tO).call(this),f&&d){const t=z(GM,this).find((t=>(null==t?void 0:t.placementId)===d));L(bF,this,XF).call(this,null==t?void 0:t.nodeId)}return this.trigger(kd.PLACEMENT_ADDED,y),r}placeRenderNodeOnTimeline(t,e,n,i={}){const r="string"==typeof t?t:null==t?void 0:t.type;if(!r||"string"!=typeof r)throw new Error("Timeline.placeRenderNodeOnTimeline requires render node type");const o=L(bF,this,KF).call(this,e,i),s=o.offset,a=!0===o.offsetPending,l=o.offsetAnchorPlacementId,c=o.offsetAnchorEdge,u=o.offsetAnchorIsReference,d=z(XM,this).claim(i.renderPlacementId),h=Number(n),f=h===Number.POSITIVE_INFINITY,p=Number.isFinite(h)&&h>0||f?h:void 0;if(!p)throw new Error("Timeline.placeRenderNodeOnTimeline requires a positive duration (seconds) or Infinity as 3rd argument");const m=i.params&&"object"==typeof i.params?i.params:void 0,v={renderPlacementId:d,type:r,offset:s,offsetPending:a,offsetAnchorPlacementId:l,offsetAnchorEdge:c,offsetAnchorIsReference:u,duration:p,params:m};if(!a){const t=s,e=s+p;Pm(z(KM,this),t,e,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements")}if(z(KM,this).push(v),Nm(z(KM,this)),a&&l){const t=z(GM,this).find((t=>(null==t?void 0:t.placementId)===l));L(bF,this,XF).call(this,null==t?void 0:t.nodeId)}return this.trigger(kd.RENDER_PLACEMENT_ADDED,v),d}get placements(){return z(GM,this).slice()}getPlacementsActiveAtTime(t){return L(bF,this,dO).call(this,t)}getNodesAtTime(t){const e=L(bF,this,gO).call(this,t);if(!Number.isFinite(e))return[];const n=L(bF,this,dO).call(this,e),i=[];return n.forEach((t=>{const e=this.getNode(null==t?void 0:t.nodeId);e&&i.push(e)})),i}getPlacementDuration(t){return L(bF,this,GF).call(this,t)}getNode(t){if(z(WM,this)&&"function"==typeof z(WM,this).get)return z(WM,this).get(t)}get renderPlacements(){return z(KM,this).slice()}get placementsAhead(){const t=this.currentTime;return z(GM,this).filter((e=>{const n=Sm(e);if(!Number.isFinite(n))return!1;const i=L(bF,this,GF).call(this,e);return"number"==typeof i?n+i>t:n>=t}))}get buffered(){return z(jM,this)?z(jM,this).buffered:{start:0,end:0}}get trackBuffers(){return z(YM,this)}onDispose(){L(bF,this,NF).call(this),z(eF,this)&&z(eF,this).clear(),z(vF,this)&&"function"==typeof z(vF,this).dispose&&z(vF,this).dispose(),j(vF,this,null),L(bF,this,AF).call(this),L(bF,this,MF).call(this),z(mF,this)&&"function"==typeof z(mF,this).dispose&&z(mF,this).dispose(),j(mF,this,null),z(qM,this)&&"function"==typeof z(qM,this).dispose&&(z(hF,this)&&"function"==typeof z(qM,this).off&&(z(qM,this).off("tick",z(hF,this)),j(hF,this,null)),z(qM,this).dispose(),j(qM,this,null)),L(bF,this,JF).call(this),j(jM,this,null),j(UM,this,null),j(GM,this,[]),j(KM,this,[]),L(bF,this,ZF).call(this),L(bF,this,tO).call(this),z(fF,this).clear(),j(pF,this,null)}notifyDecodedFrame(t={}){const e=null==t?void 0:t.placementId,n=null==t?void 0:t.trackType;if(!e||!n)return;const i=`${e}:${n}`;z(tF,this).add(i),L(bF,this,lO).call(this,t),L(bF,this,hO).call(this),z(jM,this)&&"function"==typeof z(jM,this).handleDecodedFrame&&z(jM,this).handleDecodedFrame(t)}getDecodedFrameStats(){return function(t){const e={totalBytes:0,frames:0,available:!1};if(!t||"function"!=typeof t.values)return e;for(const n of t.values()){const t=[];null!=n&&n.current&&t.push(n.current),Array.isArray(null==n?void 0:n.frames)&&t.push(...n.frames),t.forEach((t=>{const n=null==t?void 0:t.frame;if(!n||!0===n.__closed||!0===n.closed)return;e.frames+=1;const i=zM(t);Number.isFinite(i)&&i>0&&(e.totalBytes+=i)}))}return e.available=!0,e}(z(fF,this))}hasDecodedFirstFrame(t,e){return!(!t||!e)&&z(tF,this).has(`${t}:${e}`)}getDecodedVisualBuffer(t,e){if(t&&e)return z(fF,this).get(`${t}:${e}`)}computeBuffered(t){const e=z(WM,this);if(e&&"function"==typeof e.get)return z(YM,this).computeBuffered(z(GM,this),t,e)}getActiveRenderPlacement(t=this.currentTime){const e=Number.isFinite(t)?t:this.currentTime,n=Array.isArray(z(KM,this))?z(KM,this):[];if(!n.length)return;let i;for(let t=0;t<n.length;t+=1){const r=n[t];if(!0===(null==r?void 0:r.offsetPending))continue;const o="number"==typeof r.offset?r.offset:void 0;if(!Number.isFinite(o))continue;const s=r.duration;("number"==typeof s&&Number.isFinite(s)&&s>0?e>=o&&e<o+s:e>=o)&&(i=r)}return i}}function wF(){j(ZM,this,!1),this.trigger(kd.TIMELINE_RESET,{reason:"switch"}),L(bF,this,cO).call(this),z(YM,this)&&"function"==typeof z(YM,this).reset&&z(YM,this).reset(),z(eF,this)&&z(eF,this).clear(),j(GM,this,[]),j(KM,this,[]),L(bF,this,ZF).call(this),L(bF,this,tO).call(this),z(HM,this).reset(),z(XM,this).reset()}function xF(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.nodeId)continue;const i=L(bF,this,TF).call(this,n),r=L(bF,this,EF).call(this,n);this.placeOnTimeline(n.nodeId,r,i)}}function _F(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.type)continue;const i=L(bF,this,IF).call(this,n),r=L(bF,this,SF).call(this,n);this.placeRenderNodeOnTimeline(n.type,r,n.duration,i)}}function TF(t){const e={};return t.placementId&&(e.placementId=t.placementId),Number.isFinite(t.nodeOffsetOverride)&&(e.nodeOffsetOverride=t.nodeOffsetOverride),Number.isFinite(t.nodeDurationOverride)&&(e.nodeDurationOverride=t.nodeDurationOverride),!0===t.offsetPending&&(e.offsetPending=!0,t.offsetAnchorPlacementId&&(e.offsetAnchorPlacementId=t.offsetAnchorPlacementId),t.offsetAnchorEdge&&(e.offsetAnchorEdge=t.offsetAnchorEdge)),Number.isFinite(t.offsetEndSeconds)&&(e.offsetEndSeconds=t.offsetEndSeconds),!0===t.loop&&(e.loop=!0),t.loopRootPlacementId&&(e.loopRootPlacementId=t.loopRootPlacementId),Number.isFinite(t.loopRootOffset)&&(e.loopRootOffset=t.loopRootOffset),e}function IF(t){const e={};return t.renderPlacementId&&(e.renderPlacementId=t.renderPlacementId),t.params&&"object"==typeof t.params&&(e.params=t.params),e}function EF(t){if(!0===t.offsetPending&&t.offsetAnchorPlacementId&&t.offsetAnchorEdge){if(!0===t.offsetAnchorIsReference)return`${t.offsetAnchorPlacementId}@${t.offsetAnchorEdge}`;if("end"===t.offsetAnchorEdge)return Number.isFinite(t.offsetEndSeconds)&&t.offsetEndSeconds>0?-t.offsetEndSeconds:"end"}return"string"==typeof t.offset||Number.isFinite(t.offset)?t.offset:0}function SF(t){return!0===t.offsetPending&&t.offsetAnchorPlacementId&&t.offsetAnchorEdge&&!0===t.offsetAnchorIsReference?`${t.offsetAnchorPlacementId}@${t.offsetAnchorEdge}`:"string"==typeof t.offset||Number.isFinite(t.offset)?t.offset:0}function AF(){z(jM,this)&&"function"==typeof z(jM,this).exit&&z(jM,this).exit()}function NF(){z(gF,this)&&"function"==typeof this.off&&(this.off(kd.TIMELINE_SEEKED,z(gF,this)),j(gF,this,null)),z(yF,this)&&"function"==typeof this.off&&(this.off("nodestart",z(yF,this)),j(yF,this,null))}function MF(){z(YM,this)&&(z(QM,this)&&(z(YM,this).off("track:underflow",z(QM,this)),j(QM,this,null)),z(JM,this)&&(z(YM,this).off("track:ready",z(JM,this)),j(JM,this,null)),"function"==typeof z(YM,this).dispose&&z(YM,this).dispose(),j(YM,this,null))}function FF(){z(YM,this)&&"function"==typeof z(YM,this).on&&(j(QM,this,(t=>L(bF,this,PF).call(this,t))),j(JM,this,(t=>L(bF,this,DF).call(this,t))),z(YM,this).on(kd.TRACK_UNDERFLOW,z(QM,this)),z(YM,this).on(kd.TRACK_READY,z(JM,this)))}function OF(){z(qM,this)&&"function"==typeof z(qM,this).on&&(j(hF,this,(t=>L(bF,this,CF).call(this,t))),z(qM,this).on(kd.CLOCK_TICK,z(hF,this)))}function CF(t){var e,n;L(bF,this,UF).call(this),L(bF,this,hO).call(this),null!==(e=z(vF,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,this.currentTime,{isSeeking:!1}),L(bF,this,WF).call(this,this.currentTime),this.trigger(kd.TIMELINE_TIME_UPDATE,wd(this.currentTime,"clock")),z(jM,this)&&"function"==typeof z(jM,this).handleClockTick&&z(jM,this).handleClockTick(t)}function PF(t){L(bF,this,UF).call(this);const e=L(bF,this,RF).call(this);e&&(null==t?void 0:t.trackType)===e.trackType&&(z(jM,this)&&"function"==typeof z(jM,this).handleMainTrackUnderflow?z(jM,this).handleMainTrackUnderflow(t):this.transitionTo(Rv))}function DF(t){if(L(bF,this,UF).call(this),this.state!==Rv)return;const e=L(bF,this,RF).call(this);if(!e)return;if((null==t?void 0:t.trackType)!==e.trackType)return;if(z(jM,this)&&"function"==typeof z(jM,this).handleMainTrackReady)return void z(jM,this).handleMainTrackReady(t);const n=this.getLastStableState()||Lv;this.transitionTo(n)}function RF(t=this.currentTime){const e=L(bF,this,BF).call(this,t);if(!e)return;const n=z(WM,this)&&"function"==typeof z(WM,this).get?z(WM,this).get(e.nodeId):void 0;if(!n)return;const i=L(bF,this,LF).call(this,n);return i?{placement:e,trackType:i}:void 0}function LF(t){var e;const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let i;if(null!=t&&t.mainTrackId){const e=n.find((e=>(null==e?void 0:e.id)===t.mainTrackId));i=null==e?void 0:e.type}if(i||(i=null===(e=n.find((t=>null==t?void 0:t.type)))||void 0===e?void 0:e.type),"video"===i||"audio"===i||"image"===i)return i}function BF(t=this.currentTime){const e=z(GM,this)||[];let n;for(let i=0;i<e.length;i+=1){const r=e[i],o=Sm(r);if(!Number.isFinite(o))continue;const s=L(bF,this,GF).call(this,r);if(Number.isFinite(s)){if(t>=o&&t<o+s)return r}else if(t<=o)return r;!n&&t<o&&(n=r)}return n}function zF(t={}){if(this.state!==Pv)return;const e=null==t?void 0:t.placementId;if(!e)return;const n=L(bF,this,vO).call(this,e);n&&L(bF,this,jF).call(this,n)}function WF(t=this.currentTime){if(this.state!==Pv)return;const e=L(bF,this,dO).call(this,t);Array.isArray(e)&&e.length&&e.forEach((t=>L(bF,this,jF).call(this,t)))}function jF(t){const e=null==t?void 0:t.placementId;if(!e)return;if(z(eF,this).has(e))return;if(!t||!0!==t.loop)return;if(!t.nodeId)return;const n=L(bF,this,GF).call(this,t);if(!Number.isFinite(n)||n<=0)return;const i=Sm(t);if(!Number.isFinite(i))return;const r=i+n;if(!Number.isFinite(r))return;const o=t.loopRootPlacementId||t.placementId,s=Number.isFinite(t.loopRootOffset)?t.loopRootOffset:i;z(eF,this).add(e),this.placeOnTimeline(t.nodeId,r,{nodeOffsetOverride:t.nodeOffsetOverride,nodeDurationOverride:t.nodeDurationOverride,loop:!0,loopRootPlacementId:o,loopRootOffset:s})}function UF(){const t=Mm(z(GM,this),{getPlacementDuration:t=>L(bF,this,GF).call(this,t),snapPlacementOffset:(t,e)=>L(bF,this,HF).call(this,t,{nodeOffsetOverride:null==e?void 0:e.nodeOffsetOverride}),onResolvedPlacement:(t,e)=>{!0!==t.loop||Number.isFinite(t.loopRootOffset)||(t.loopRootOffset=t.offset),L(bF,this,YF).call(this,null==e?void 0:e.nodeId)}});return t.updated&&(L(bF,this,tO).call(this),t.resolvedPlacements.forEach((t=>{L(bF,this,nO).call(this,t),this.trigger(kd.PLACEMENT_ADDED,t)}))),t.updated}function $F(){if(!z(KM,this).length||!z(GM,this).length)return!1;const t=new Map;z(GM,this).forEach((e=>{(null==e?void 0:e.placementId)&&t.set(e.placementId,e)}));const e=z(KM,this).filter((t=>!0===(null==t?void 0:t.offsetPending)));if(!e.length)return!1;let n=!1;const i=[];for(let r=0;r<e.length;r+=1){const o=e[r];L(bF,this,qF).call(this,o,t)&&(n=!0,i.push(o))}return n&&(Nm(z(KM,this)),i.forEach((t=>{this.trigger(kd.RENDER_PLACEMENT_ADDED,t)}))),n}function qF(t,e){const n=null==t?void 0:t.offsetAnchorPlacementId,i=null==t?void 0:t.offsetAnchorEdge;if(!n||!i)return!1;const r=e.get(n);if(!r||!0===r.offsetPending)return!1;const o=L(bF,this,VF).call(this,r,t);if(!Number.isFinite(o))return!1;t.offset=o,t.offsetPending=!1,t.offsetAnchorPlacementId=void 0,t.offsetAnchorEdge=void 0,t.offsetAnchorIsReference=void 0;const s=t.offset,a=t.offset+t.duration;return Pm(z(KM,this).filter((e=>e!==t&&!0!==(null==e?void 0:e.offsetPending))),s,a,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements"),L(bF,this,YF).call(this,null==r?void 0:r.nodeId),!0}function VF(t,e){const n=Sm(t);if(!Number.isFinite(n))return;if("start"===e.offsetAnchorEdge)return L(bF,this,HF).call(this,n);const i=L(bF,this,GF).call(this,t);if(!(i>0))return;const r=n+i;if(!Number.isFinite(r))return;const o=L(bF,this,HF).call(this,r);return!0===e.offsetAnchorIsReference?Math.max(o,r):o}function GF(t){return Im(t,z(WM,this))}function HF(t,e={}){var n;return function(t,e={},n){const i=Number(n);if(!(i>0))return t;const r=Number(t);if(!Number.isFinite(r))return t;const o=Number.isFinite(null==e?void 0:e.nodeOffsetOverride)?e.nodeOffsetOverride:0,s=r-o;return Math.round(s*i)/i+o}(t,e,null===(n=this.settings)||void 0===n?void 0:n.snapToFps)}function KF(t,e={}){const n=Cm(t);if("string"==typeof t&&t.includes("@")&&!n)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");if(!n){const n=Fm(t);return{offset:L(bF,this,HF).call(this,n,e)}}const i=z(GM,this).find((t=>(null==t?void 0:t.placementId)===n.placementId));if(!i)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");const r=Sm(i);if("start"===n.anchor)return Number.isFinite(r)?{offset:L(bF,this,HF).call(this,r,e)}:{offset:void 0,offsetPending:!0,offsetAnchorPlacementId:i.placementId,offsetAnchorEdge:"start",offsetAnchorIsReference:!0};const o=L(bF,this,GF).call(this,i);if(!(Number.isFinite(r)&&o>0))return{offset:void 0,offsetPending:!0,offsetAnchorPlacementId:i.placementId,offsetAnchorEdge:"end",offsetAnchorIsReference:!0};const s=r+o,a=L(bF,this,HF).call(this,s,e);return{offset:Math.max(a,s)}}function XF(t){if(!t||!z(WM,this)||"function"!=typeof z(WM,this).get)return;if(z(nF,this).has(t))return;let e;try{e=z(WM,this).get(t)}catch(t){return}if(!e||"function"!=typeof e.on)return;if("ready"===e.state&&e.duration>0)return void this.updateTime(this.currentTime);const n=()=>{this.updateTime(this.currentTime),L(bF,this,YF).call(this,t)};e.on(kd.NODE_LOADED,n),z(nF,this).set(t,n)}function YF(t){if(!t)return;if(L(bF,this,QF).call(this,t))return;const e=z(nF,this).get(t);if(!e)return;let n;try{n=z(WM,this).get(t)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(kd.NODE_LOADED,e),z(nF,this).delete(t)}function QF(t){if(!t)return!1;const e=new Map;z(GM,this).forEach((t=>{(null==t?void 0:t.placementId)&&e.set(t.placementId,t)}));const n=n=>{if(null==n||!n.offsetPending||null==n||!n.offsetAnchorPlacementId)return!1;const i=e.get(n.offsetAnchorPlacementId);return(null==i?void 0:i.nodeId)===t};return!!z(GM,this).some((t=>n(t)))||!!z(KM,this).some((t=>n(t)))}function JF(){z(nF,this).size&&z(WM,this)?(z(nF,this).forEach(((t,e)=>{let n;try{n=z(WM,this).get(e)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(kd.NODE_LOADED,t)})),z(nF,this).clear()):z(nF,this).clear()}function ZF(){j(iF,this,[]),j(rF,this,0),z(oF,this).clear(),z(sF,this).clear(),j(aF,this,Number.NEGATIVE_INFINITY)}function tO(){j(lF,this,[]),j(uF,this,0),j(cF,this,Number.NEGATIVE_INFINITY)}function eO(t,e){const n=z(iF,this),i={placementId:t,endTime:e};if(!n.length||e>=n[n.length-1].endTime)return void n.push(i);const r=n.findIndex((t=>e<t.endTime)),o=-1===r?n.length:r;n.splice(o,0,i),o<z(rF,this)&&j(rF,this,z(rF,this)+1)}function nO(t){const e=null==t?void 0:t.placementId;if(!e||z(oF,this).has(e))return;const n=Sm(t),i=L(bF,this,GF).call(this,t);if(!Number.isFinite(n)||!Number.isFinite(i)||i<0)return void z(sF,this).add(e);const r=n+i;Number.isFinite(r)&&(z(oF,this).add(e),z(sF,this).delete(e),L(bF,this,eO).call(this,e,r))}function iO(){z(sF,this).size&&Array.from(z(sF,this)).forEach((t=>{const e=L(bF,this,vO).call(this,t);e?L(bF,this,nO).call(this,e):z(sF,this).delete(t)}))}function rO(t){const e=Number(t);if(!Number.isFinite(e))return;if(e<z(aF,this))return void j(aF,this,e);if(j(aF,this,e),L(bF,this,iO).call(this),!z(iF,this).length)return;const n=new Set;let i=z(rF,this);for(;i<z(iF,this).length;){const t=z(iF,this)[i];if(!t||!Number.isFinite(t.endTime)||t.endTime>e)break;t.placementId&&n.add(t.placementId),i+=1}i!==z(rF,this)&&(j(rF,this,i),n.size&&(L(bF,this,aO).call(this,n),L(bF,this,oO).call(this,n)))}function oO(t){if(t&&t.size)for(const e of z(tF,this)){const n=e.split(":")[0];t.has(n)&&z(tF,this).delete(e)}}function sO(t){const e=Array.isArray(null==t?void 0:t.frames)?t.frames:[],n=null==t?void 0:t.current;(n?[n,...e]:e).forEach((t=>{const e=null==t?void 0:t.frame;if(e&&"function"==typeof e.close)try{e.close()}catch(t){}}))}function aO(t){if(t&&t.size)for(const[e,n]of z(fF,this).entries())t.has(null==n?void 0:n.placementId)&&(L(bF,this,sO).call(this,n),z(fF,this).delete(e))}function lO(t={}){var e;const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId,r=null==t?void 0:t.trackId,o=null==t?void 0:t.segmentId,s=null==t?void 0:t.trackType;if(!(n&&i&&r&&o))return;if("video"!==s&&"image"!==s)return;const a=(null==t?void 0:t.frame)||(null==t?void 0:t.data);if(!a)return;"video"===s&&"object"==typeof a&&"function"==typeof a.close&&(a.__keepOpen=!0);const l=yM(a),c=Number.isFinite(null==l?void 0:l.width)?l.width:void 0,u=Number.isFinite(null==l?void 0:l.height)?l.height:void 0,d=Number.isFinite(null==t?void 0:t.pts)?t.pts:void 0;if(!Number.isFinite(d))return;const h=Number.isFinite(null==t?void 0:t.duration)?t.duration:void 0,f=`${n}:${r}`,p=z(fF,this).get(f),m=p||{placementId:n,nodeId:i,trackId:r,trackType:s,frames:[],current:void 0},v={placementId:n,nodeId:i,trackId:r,segmentId:o,frame:a,width:c,height:u,presentationTime:d,duration:h},g=m.frames,y=g.length?g[g.length-1]:void 0;if(!y||y.presentationTime<=v.presentationTime)g.push(v);else{let t=g.findIndex((t=>t.presentationTime>v.presentationTime));-1===t&&(t=g.length),g.splice(t,0,v)}const b=Number(null===(e=this.settings)||void 0===e?void 0:e.maxBufferedVideoFrames);if("video"===s&&Number.isFinite(b)&&b>0&&g.length>b){const t=g.length-b;for(let e=0;e<t;e+=1){const t=g.pop(),e=null==t?void 0:t.frame;if(e&&"function"==typeof e.close)try{e.close()}catch(t){}}}p||z(fF,this).set(f,m)}function cO(){for(const t of z(fF,this).values())L(bF,this,sO).call(this,t);z(fF,this).clear(),j(pF,this,null),z(tF,this).clear()}function uO(t){const e=Number.isFinite(t)?t:this.currentTime;if(!Number.isFinite(e))return;e<z(cF,this)&&(j(lF,this,[]),j(uF,this,0));const n=Array.isArray(z(GM,this))?z(GM,this):[],i=[],r=new Set;z(lF,this).forEach((t=>{L(bF,this,wO).call(this,t,e)&&(i.push(t),(null==t?void 0:t.placementId)&&r.add(t.placementId))}));let o=z(uF,this);for(;o<n.length;){const t=n[o],s=Sm(t);if(!Number.isFinite(s))break;if(s>e)break;if(L(bF,this,wO).call(this,t,e)){const e=null==t?void 0:t.placementId;e&&r.has(e)||(i.push(t),e&&r.add(e))}o+=1}j(lF,this,i),j(uF,this,o),j(cF,this,e)}function dO(t,e={}){const n=Number.isFinite(t)?t:this.currentTime,i=Number.isFinite(null==e?void 0:e.endEpsilonSeconds)?e.endEpsilonSeconds:0;return 0===i&&n===this.currentTime&&n===z(cF,this)?z(lF,this).slice():(Array.isArray(z(GM,this))?z(GM,this):[]).filter((t=>L(bF,this,wO).call(this,t,n,i)))}function hO(){const t=this.currentTime,e=L(bF,this,pO).call(this,t);if(!e.length)return void j(pF,this,null);const n=this.getActiveRenderPlacement(t),i=L(bF,this,mO).call(this,e,n);(i!==z(pF,this)||L(bF,this,fO).call(this,t,n))&&(j(pF,this,i),this.trigger(kd.VISUAL_FRAMES_AVAILABLE,{time:t,frames:e}))}function fO(t,e){const n=e||this.getActiveRenderPlacement(t);if(!n)return!1;if(!ov.doesRenderNodeTypeRequireFrameCadence(null==n?void 0:n.type))return!1;const i=n.duration;return"number"==typeof i&&i>0}function pO(t){return function(t={}){const e=t.buffers,n=t.time,i=t.getPlacementById,r=t.isPlacementActiveAtTime,o=t.getPlacementDuration,s=[];if(!e||"function"!=typeof e.entries)return[];const a=[];for(const[t,c]of e.entries()){const e=null==c?void 0:c.placementId,u="function"==typeof i?i(e):void 0;if(!u){fM(c),a.push(t);continue}if("function"==typeof r&&!r(u,n)){const e=pM(u),i="function"==typeof o?o(u):void 0;Number.isFinite(i)&&Number.isFinite(e)&&n>=e+i&&(fM(c),a.push(t));continue}const d=Array.isArray(null==c?void 0:c.frames)?c.frames:[];for(;d.length&&Number.isFinite(null===(l=d[0])||void 0===l?void 0:l.presentationTime)&&d[0].presentationTime<=n;){var l;const t=c.current,e=d.shift();c.current=e,t&&t!==e&&hM(null==t?void 0:t.frame)}if(!c.current)continue;const h={placementId:e,nodeId:c.current.nodeId,trackId:c.current.trackId,segmentId:c.current.segmentId,frame:c.current.frame,width:c.current.width,height:c.current.height,presentationTime:c.current.presentationTime,duration:c.current.duration};s.push({frame:h,placementId:e,placementOffset:pM(u),placementSortOffset:mM(u),placementSortId:vM(u,e)})}return a.forEach((t=>{e.delete(t)})),s.sort(((t,e)=>{const n=Number.isFinite(null==t?void 0:t.placementSortOffset)?t.placementSortOffset:Number.isFinite(null==t?void 0:t.placementOffset)?t.placementOffset:0,i=Number.isFinite(null==e?void 0:e.placementSortOffset)?e.placementSortOffset:Number.isFinite(null==e?void 0:e.placementOffset)?e.placementOffset:0;if(n!==i)return n-i;const r=(null==t?void 0:t.placementSortId)||(null==t?void 0:t.placementId),o=(null==e?void 0:e.placementSortId)||(null==e?void 0:e.placementId),s=gM(r),a=gM(o);return Number.isFinite(s)&&Number.isFinite(a)&&s!==a?s-a:r&&o&&r!==o?r<o?-1:1:function(t,e){const n=(null==t?void 0:t.frame)||{},i=(null==e?void 0:e.frame)||{};return n.trackId!==i.trackId?n.trackId<i.trackId?-1:1:n.nodeId!==i.nodeId?n.nodeId<i.nodeId?-1:1:n.segmentId!==i.segmentId?n.segmentId<i.segmentId?-1:1:("number"==typeof n.presentationTime?n.presentationTime:0)-("number"==typeof i.presentationTime?i.presentationTime:0)}(t,e)})),s.map((t=>t.frame))}({buffers:z(fF,this),time:t,getPlacementById:t=>L(bF,this,vO).call(this,t),isPlacementActiveAtTime:(t,e)=>L(bF,this,wO).call(this,t,e),getPlacementDuration:t=>L(bF,this,GF).call(this,t)})}function mO(t,e){return`${e?`render:${e.renderPlacementId||e.type||"unknown"}`:"render:default"}|${t.map((t=>`${t.nodeId}:${t.trackId}:${t.segmentId}@${t.presentationTime}`)).join("|")}`}function vO(t){if(t)return(z(GM,this)||[]).find((e=>(null==e?void 0:e.placementId)===t))}function gO(t){if("end"===t){const t=L(bF,this,yO).call(this);if(!Number.isFinite(t))return;const e=L(bF,this,bO).call(this);return Math.max(0,t-Math.min(t,e))}const e=Number(t);return Number.isFinite(e)?e:0}function yO(){let t;return(Array.isArray(z(GM,this))?z(GM,this):[]).forEach((e=>{const n=Sm(e);if(!Number.isFinite(n))return;const i=L(bF,this,GF).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}function bO(){const t=L(bF,this,kO).call(this);return t>0?t:.001}function kO(){var t;const e=Number(null===(t=this.settings)||void 0===t?void 0:t.snapToFps);return!Number.isFinite(e)||e<=0?0:.5/e}function wO(t,e,n=0){if(!Am(t,e,z(WM,this)))return!1;const i=Number(n);if(!Number.isFinite(i)||i<=0)return!0;const r=L(bF,this,GF).call(this,t);if(!Number.isFinite(r))return!0;const o=Sm(t);return!Number.isFinite(o)||e<o+r-i}var xO=new WeakMap,_O=new WeakMap,TO=new WeakMap,IO=new WeakMap,EO=new WeakMap,SO=new WeakMap,AO=new WeakMap,NO=new WeakMap,MO=new WeakMap,FO=new WeakMap,OO=new WeakMap,CO=new WeakMap,PO=new WeakMap,DO=new WeakMap,RO=new WeakMap,LO=new WeakMap,BO=new WeakMap,zO=new WeakSet;class WO extends md{get name(){return"QoE"}get defaults(){return{calcScoreInterval:1,streamQualityWeight:.8,fpsWeight:.2,fpsMathFuncType:"quad",bestFpsMobile:27,bestFpsDesktop:57,waitingMultiplier:1,statusFloors:{excellent:.98,good:.85,fair:.7,poor:0,alert:0},alertStatusCeil:.3,fpsGracePeriod:2,windowSeconds:30}}constructor(...t){super(...t),U(this,zO),W(this,xO,void 0),W(this,_O,void 0),W(this,TO,1),W(this,IO,1),W(this,EO,1),W(this,SO,""),W(this,AO,0),W(this,NO,[]),W(this,MO,null),W(this,FO,void 0),W(this,OO,[]),W(this,CO,null),W(this,PO,null),W(this,DO,0),W(this,RO,0),W(this,LO,0),W(this,BO,void 0);const[e]=t;j(xO,this,e),j(DO,this,jy()),j(BO,this,L(zO,this,jO).call(this)),L(zO,this,UO).call(this),L(zO,this,$O).call(this),L(zO,this,KO).call(this),L(zO,this,GO).call(this)}get publicAPI(){return z(BO,this)}calcScore(){L(zO,this,iC).call(this)}onDispose(){z(xO,this)&&z(_O,this)&&"function"==typeof z(xO,this).off&&z(xO,this).off(kd.TIMELINE_PLAYER_STATE,z(_O,this)),j(_O,this,null),L(zO,this,HO).call(this),L(zO,this,XO).call(this),j(xO,this,null),j(OO,this,[]),j(NO,this,[]),j(BO,this,null)}}function jO(){const t=this;return{get score(){return z(TO,t)},get status(){return z(SO,t)},get streamQualityScore(){return z(IO,t)},get fpsScore(){return z(EO,t)},get browserFps(){return z(AO,t)},get waitingSeconds(){return z(RO,t)/1e3},get playingSeconds(){return z(LO,t)/1e3}}}function UO(){Number(this.settings.streamQualityWeight)+Number(this.settings.fpsWeight)!==1&&(this.log.warn("QoE weights must sum to 1; resetting to legacy defaults."),this.settings.streamQualityWeight=.8,this.settings.fpsWeight=.2)}function $O(){z(xO,this)&&"function"==typeof z(xO,this).on&&(j(_O,this,(t=>L(zO,this,qO).call(this,t))),z(xO,this).on(kd.TIMELINE_PLAYER_STATE,z(_O,this)))}function qO(t={}){const e="string"==typeof(null==t?void 0:t.event)?t.event:"";"playing"!==e?"waiting"!==e?"pause"!==e&&"seeking"!==e&&"seeked"!==e&&"reset"!==e||L(zO,this,VO).call(this,null):L(zO,this,VO).call(this,"waiting"):L(zO,this,VO).call(this,"playing")}function VO(t){if(t===z(CO,this))return;const e=jy();z(CO,this)&&Number.isFinite(z(PO,this))&&z(OO,this).push({state:z(CO,this),startMs:z(PO,this),endMs:e}),j(CO,this,t),j(PO,this,t?e:null),L(zO,this,JO).call(this,e)}function GO(){const t=Number(this.settings.calcScoreInterval);!Number.isFinite(t)||t<=0||(j(FO,this,(()=>L(zO,this,iC).call(this))),Tw(z(FO,this),1e3*t))}function HO(){z(FO,this)&&Iw(z(FO,this)),j(FO,this,null)}function KO(){if("function"!=typeof pw)return;const t=()=>{if(this._disposed)return;const e=jy();j(AO,this,L(zO,this,YO).call(this,z(NO,this),e)),j(MO,this,pw(t))};j(MO,this,pw(t))}function XO(){z(MO,this)&&"function"==typeof mw&&mw(z(MO,this)),j(MO,this,null)}function YO(t,e){const n=L(zO,this,QO).call(this);for(t.push(e);t.length&&e-t[0]>n;)t.shift();if(t.length<2)return 0;const i=t[t.length-1]-t[0];return i<=0?0:1e3*(t.length-1)/i}function QO(){const t=Number(this.settings.windowSeconds);return!Number.isFinite(t)||t<=0?3e4:1e3*t}function JO(t){const e=t-L(zO,this,QO).call(this);for(;z(OO,this).length&&z(OO,this)[0].endMs<=e;)z(OO,this).shift()}function ZO(t){const e=t-L(zO,this,QO).call(this);let n=0,i=0;const r=(r,o,s)=>{const a=Math.max(o,e),l=Math.min(s,t);l<=a||("waiting"===r?n+=l-a:"playing"===r&&(i+=l-a))};return z(OO,this).forEach((t=>{r(t.state,t.startMs,t.endMs)})),z(CO,this)&&Number.isFinite(z(PO,this))&&r(z(CO,this),z(PO,this),t),j(RO,this,n),j(LO,this,i),{waitingMs:n,playingMs:i}}function tC(t,e){if(t<=0)return 1;if(t>e)return 0;const n=e||1;return _m(1-t*this.settings.waitingMultiplier/n)}function eC(){if(jy()-z(DO,this)<=1e3*this.settings.fpsGracePeriod)return 1;const t=Number(z(AO,this)),e=Fv.isDesktop()?this.settings.bestFpsDesktop:this.settings.bestFpsMobile,n=_m(e>0?t/e:0);return"quad"===this.settings.fpsMathFuncType?n*n:n}function nC(t,e){const n=this.settings.statusFloors||{};let i="";return t>=n.excellent?i="excellent":t>=n.good?i="good":t>=n.fair?i="fair":(i="poor",t<=this.settings.alertStatusCeil&&e>0&&(i="alert")),i}function iC(){const t=jy(),{waitingMs:e,playingMs:n}=L(zO,this,ZO).call(this,t),i=L(zO,this,tC).call(this,e,n),r=L(zO,this,eC).call(this),o=_m(i*this.settings.streamQualityWeight+r*this.settings.fpsWeight);o!==z(TO,this)&&(j(TO,this,o),this.trigger(kd.QOE_SCORE,o)),j(IO,this,i),j(EO,this,r);const s=L(zO,this,nC).call(this,o,e);s!==z(SO,this)&&(j(SO,this,s),this.trigger(kd.QOE_STATUS,s))}function rC(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function oC(t){const e=Number(t);return!Number.isFinite(e)||e<0?0:e}var sC=new WeakMap,aC=new WeakMap,lC=new WeakMap,cC=new WeakMap,uC=new WeakSet;class dC extends md{get name(){return"SegmentEvictionCoordinator"}get defaults(){return{enabled:rb("segmentEvictionEnabled"),bufferBehindSeconds:rb("segmentEvictionBufferBehindSeconds"),bufferAheadSeconds:rb("segmentEvictionBufferAheadSeconds"),maxRetainedBytes:rb("segmentEvictionMaxRetainedBytes")}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"evictAtTime"])}constructor(t,e,n={}){super(n),U(this,uC),W(this,sC,void 0),W(this,aC,void 0),W(this,lC,void 0),W(this,cC,void 0),j(sC,this,t),j(aC,this,e),j(lC,this,(t=>L(uC,this,hC).call(this,t))),j(cC,this,(t=>L(uC,this,fC).call(this,t))),z(sC,this)&&"function"==typeof z(sC,this).on&&(z(sC,this).on(kd.TIMELINE_TIME_UPDATE,z(lC,this)),z(sC,this).on(kd.TIMELINE_SEEKED,z(cC,this)))}onDispose(){z(sC,this)&&"function"==typeof z(sC,this).off&&(z(sC,this).off(kd.TIMELINE_TIME_UPDATE,z(lC,this)),z(sC,this).off(kd.TIMELINE_SEEKED,z(cC,this))),j(sC,this,null),j(aC,this,null),j(lC,this,null),j(cC,this,null)}evictAtTime(t){if(!0!==this.settings.enabled)return;const e=Number(t);if(!Number.isFinite(e))return;const n=oC(this.settings.bufferBehindSeconds),i=oC(this.settings.bufferAheadSeconds),r=e-n,o=e+i,s=L(uC,this,pC).call(this);if(!s.length)return;const a=Number(this.settings.maxRetainedBytes);if(Number.isFinite(a)&&a>0&&L(uC,this,mC).call(this,s)<=a)return;const l=new Map;s.forEach((t=>{const e=null==t?void 0:t.nodeId;if(!e)return;const n=Sm(t);if(!Number.isFinite(n))return;const i=l.get(e)||[];i.push(t),l.set(e,i)})),l.size&&l.forEach(((t,e)=>{const n=L(uC,this,vC).call(this,e);if(!n)return;const i=t.filter((t=>L(uC,this,gC).call(this,t,r,o)));i.length?L(uC,this,yC).call(this,n,i,r,o):"function"==typeof n.evict&&n.evict()}))}}function hC(t){var e,n;if(!0!==this.settings.enabled)return;if((null===(e=z(sC,this))||void 0===e?void 0:e.state)===Bv)return;const i=Number(null==t?void 0:t.time),r=Number.isFinite(i)?i:Number(null===(n=z(sC,this))||void 0===n?void 0:n.currentTime);this.evictAtTime(r)}function fC(t){var e;if(!0!==this.settings.enabled)return;const n=Number(null==t?void 0:t.targetTime),i=Number.isFinite(n)?n:Number(null===(e=z(sC,this))||void 0===e?void 0:e.currentTime);this.evictAtTime(i)}function pC(){var t;const e=null===(t=z(sC,this))||void 0===t?void 0:t.placements;return Array.isArray(e)?e:[]}function mC(t){if(!Array.isArray(t)||!t.length)return 0;const e=new Set;let n=0;return t.forEach((t=>{const i=null==t?void 0:t.nodeId;if(!i||e.has(i))return;e.add(i);const r=L(uC,this,vC).call(this,i),o=Number(null==r?void 0:r.retainedByteLength);my(o)?n+=o:(Array.isArray(null==r?void 0:r.tracks)?r.tracks:[]).forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{my(null==t?void 0:t.retainedByteLength)&&(n+=t.retainedByteLength)}))}))})),n}function vC(t){if(z(aC,this)&&"function"==typeof z(aC,this).get)return z(aC,this).get(t)}function gC(t,e,n){const i=Sm(t);if(!Number.isFinite(i))return!1;const r=Im(t,z(aC,this));return(Number.isFinite(r)?i+r:Number.POSITIVE_INFINITY)>e&&i<n}function yC(t,e,n,i){const r=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];r.length&&r.forEach((t=>{const r=Array.isArray(null==t?void 0:t.segments)?t.segments:[],o=rC(null==t?void 0:t.offset,0);r.forEach((t=>{if(!t||!my(null==(r=t)?void 0:r.retainedByteLength))return;var r;if(t.isInit)return;let s=!1;for(let r=0;r<e.length;r+=1){const a=e[r],l=Sm(a);if(!Number.isFinite(l))continue;const c=rC(null==a?void 0:a.nodeOffsetOverride,0),u=rC(null==t?void 0:t.offset,NaN);if(!Number.isFinite(u))continue;const d=rC(null==t?void 0:t.duration,0),h=l+o+u-c,f=h+(d>0?d:0),p=Im(a,z(aC,this)),m=Number.isFinite(p)?l+p:Number.POSITIVE_INFINITY;if(!(f<=l||h>=m||f<=n||h>=i)){s=!0;break}}s||t.evict()}))}))}var bC=new WeakMap,kC=new WeakMap,wC=new WeakMap,xC=new WeakSet;class _C extends md{get name(){return"DocumentVisibility"}get defaults(){return{autoPauseOnVisibilityChange:!0,autoResumeOnVisibilityChange:!0}}constructor(t,e={}){super(e),U(this,xC),W(this,bC,void 0),W(this,kC,null),W(this,wC,!1),j(bC,this,t),L(xC,this,TC).call(this)}onDispose(){L(xC,this,IC).call(this),j(bC,this,null),j(wC,this,!1)}}function TC(){const t=null==yd?void 0:yd.document;t&&"function"==typeof t.addEventListener&&(j(kC,this,(()=>L(xC,this,EC).call(this))),t.addEventListener("visibilitychange",z(kC,this)))}function IC(){const t=null==yd?void 0:yd.document;z(kC,this)&&t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",z(kC,this)),j(kC,this,null)}function EC(){const t=null==yd?void 0:yd.document,e=null==t?void 0:t.visibilityState;"string"==typeof e&&("hidden"!==e?"visible"===e&&L(xC,this,AC).call(this):L(xC,this,SC).call(this))}function SC(){var t;(null===(t=this.settings)||void 0===t?void 0:t.autoPauseOnVisibilityChange)&&z(bC,this)&&"function"==typeof z(bC,this).pause&&(z(bC,this).state===Pv?(this.log.info("[#handleHidden] Pausing timeline due to document visibility change"),z(bC,this).pause(),j(wC,this,!0)):j(wC,this,!1))}function AC(){var t;z(wC,this)&&(null===(t=this.settings)||void 0===t?void 0:t.autoResumeOnVisibilityChange)&&z(bC,this)&&"function"==typeof z(bC,this).play&&(z(bC,this).state!==Pv?(this.log.info("[#handleVisible] Resuming timeline due to document visibility change"),z(bC,this).play(),j(wC,this,!1)):j(wC,this,!1))}const NC=[{event:"canplay",once:!0,trackAs:"canplay"},{event:"playing",once:!0,trackAs:"startedplaying"},"seeked","canvas.webglcontextlost"];function MC(t,e=0){return Number.isFinite(t)?t:e}function FC(t){const e=null==t?void 0:t.exposedPlayerAPI;return e&&"object"==typeof e?e:t}const OC=[function(t){return{schema:"iglu:com.helloeko/player/jsonschema/1-0-7",match:/^.*$/,getData:()=>{var e,n,i;const r=function(t){const e=null==t?void 0:t.exposedPlayerAPI;return e&&"object"==typeof e?e:t}(t);return{playerversion:"string"==typeof(null==r?void 0:r.version)?r.version:"0.0.0",isautoplay:!(null==r||null===(e=r.options)||void 0===e||!e.autoplay),playerqoe:MC(null==r||null===(n=r.qoe)||void 0===n?void 0:n.score),playerqoestatus:"string"==typeof(null==r||null===(i=r.qoe)||void 0===i?void 0:i.status)?r.qoe.status:"",ismuted:!(null==r||!r.muted),playervolume:MC(null==r?void 0:r.volume),playercontainerwidth:MC(null==r?void 0:r.containerWidth),playercontainerheight:MC(null==r?void 0:r.containerHeight)}}}},function(t){return{schema:"iglu:com.helloeko/currentnode/jsonschema/1-0-2",match:/^.*$/,getData:()=>{var e;const n=FC(t),i=function(t){const e=FC(t);if(!e||"function"!=typeof e.getNodesAtTime)return null;const n=Number.isFinite(e.currentTime)?e.currentTime:0,i=e.getNodesAtTime(n);return Array.isArray(i)&&0!==i.length&&i[0]||null}(t);return{currentnodeid:"string"==typeof(null==i?void 0:i.id)?i.id:"",currentnodetime:Number.isFinite(null==n?void 0:n.currentTime)?n.currentTime:0,currentnodeduration:Number.isFinite(null==i?void 0:i.duration)?i.duration:0,currentnodeprofile:"string"==typeof(null==i||null===(e=i.metadata)||void 0===e?void 0:e.profile)?i.metadata.profile:""}}}},function(t){let e=0,n=0;const i=()=>{e||(e=Date.now(),n=0)},r=()=>{e&&!n&&(n=Date.now())};return t&&"function"==typeof t.on&&(t.on("seeking",i),t.on("seeked",r)),{schema:"iglu:com.helloeko/seeked/jsonschema/1-0-0",match:"seeked",getData:()=>{r();const t=e&&n&&n>=e?(n-e)/1e3:0;return e=0,n=0,{seekduration:t}},dispose:()=>{t&&"function"==typeof t.off&&(t.off("seeking",i),t.off("seeked",r))}}},function(){return{schema:"iglu:com.helloeko/environment/jsonschema/1-0-0",match:/^.*$/,getData:()=>{var t;const e=null==yd||null===(t=yd.eko)||void 0===t||null===(t=t.environment)||void 0===t?void 0:t.embeddingApp;return e?{embeddingapp:e}:{}}}}],CC=Object.freeze({once:!1,trackAs:""});var PC=new WeakMap,DC=new WeakMap,RC=new WeakMap,LC=new WeakMap,BC=new WeakMap,zC=new WeakMap,WC=new WeakSet;class jC extends md{get name(){return"Tracker"}get defaults(){return{tag:null,trackingEnabled:rb("trackingEnabled"),defaultForwarders:NC,defaultContextPackers:OC}}constructor(t,e={}){var n,i;super(e),U(this,WC),W(this,PC,void 0),W(this,DC,new Map),W(this,RC,[]),W(this,LC,!1),W(this,BC,void 0),W(this,zC,void 0),j(zC,this,!this.settings.tag),j(BC,this,this.settings.tag||(null===(n=crypto)||void 0===n||null===(i=n.randomUUID)||void 0===i?void 0:i.call(n))||`eko-player-${Date.now()}`),j(PC,this,t),L(WC,this,KC).call(this),L(WC,this,$C).call(this)}track(t,...e){if(!this.settings.trackingEnabled)return;if("string"!=typeof t||!t)return void this.log.warn("[track] Expected event to be a non-empty string.");const n=L(WC,this,YC).call(this);n&&n("track",t,...e,z(BC,this))}registerContextPacker(t){if(!t||"object"!=typeof t)return void this.log.warn("[registerContextPacker] Expected a packer object.");const e={tag:z(BC,this),schema:t.schema,match:t.match,getData:L(WC,this,UC).call(this,t.getData)};if("string"!=typeof e.schema||!e.schema)return void this.log.warn('[registerContextPacker] Expected "schema" to be a non-empty string.');if("function"!=typeof e.getData)return void this.log.warn('[registerContextPacker] Expected "getData" to be a function.');if(!this.settings.trackingEnabled)return;const n=L(WC,this,YC).call(this);n&&n("registerContextPacker",e)}onDispose(){if(L(WC,this,HC).call(this),L(WC,this,XC).call(this),j(PC,this,null),z(zC,this)){const t=L(WC,this,YC).call(this);t&&(t("reset",z(BC,this)),j(BC,this,null))}}}function UC(t){return"function"!=typeof t?null:(...e)=>e.pop()!==z(BC,this)?null:t(...e)}function $C(){(Array.isArray(this.settings.defaultForwarders)?this.settings.defaultForwarders:[]).forEach((t=>L(WC,this,qC).call(this,t)))}function qC(t){const e=L(WC,this,VC).call(this,t);if(!e)return void this.log.warn("[#addEventForwarder] Invalid forwarder input.",t);const n=z(PC,this);if(!n||"function"!=typeof n.on)return;const i=L(WC,this,GC).call(this,e);if(z(DC,this).has(i))return;const r=(...t)=>{e.once&&n&&"function"==typeof n.off&&n.off(e.event,r);const i=e.trackAs||e.event;this.track(i,...t)};n.on(e.event,r),z(DC,this).set(i,{event:e.event,listener:r})}function VC(t){return"string"==typeof t&&t?{event:t,...CC}:t&&"object"==typeof t&&"string"==typeof t.event&&t.event?{event:t.event,once:!!t.once,trackAs:"string"==typeof t.trackAs?t.trackAs:""}:null}function GC({event:t,once:e,trackAs:n}){return`${t}:${e}:${n}`}function HC(){const t=z(PC,this);t&&"function"==typeof t.off&&z(DC,this).forEach((({event:e,listener:n})=>{t.off(e,n)})),z(DC,this).clear()}function KC(){(Array.isArray(this.settings.defaultContextPackers)?this.settings.defaultContextPackers:[]).forEach((t=>{if("function"!=typeof t)return;const e=t(z(PC,this),this);e&&"object"==typeof e&&("function"==typeof e.dispose&&z(RC,this).push(e.dispose),e.disabled||this.registerContextPacker({schema:e.schema,match:e.match,getData:e.getData}))}))}function XC(){z(RC,this).forEach((t=>{try{t()}catch(t){this.log.warn("[#teardownContextPackers] Failed disposing context packer.",t)}})),j(RC,this,[])}function YC(){const t=null==yd?void 0:yd.EkoAnalytics;return"function"==typeof t?t:(L(WC,this,QC).call(this),null)}function QC(){this.settings.trackingEnabled&&!z(LC,this)&&(this.log.warn("EkoAnalytics not found on window."),j(LC,this,!0))}class JC{#et;#nt;#it;#rt;#ot;#st;#at;#lt;#ct;#ut;#dt;#ht;#ft;#pt;#mt;#vt;#gt;#yt;#bt;constructor(t,e={},n=null){this.#et=new Od(t,n,e),this.#nt=new $d(this.#et,e),this.#it=new sw(e),this.#rt=new db(e),this.#ot=new jk(this.#rt,e),this.#st=new Rk(this.#ot,this.#it,e),this.#at=new Xk(this.#st,e),this.#lt=new kF(this.#st,e),this.#ct=new _C(this.#lt,e),this.#yt=new dC(this.#lt,this.#st,e),this.#ut=new Gw(this.#st,this.#at,this.#it,this.#lt,e),this.#dt=new Ox(this.#st,this.#at,this.#lt,e),this.#ht=new UE(e),this.#ft=new fS(this.#st,this.#lt,this.#ht,e),this.#mt=new WO(this.#lt,e),this.#bt=new jC(n,e);const i=e&&"object"==typeof e?e.adapters:null,r=i&&"object"==typeof i&&"function"==typeof i.renderAdapterFactory?i.renderAdapterFactory:null,o=i&&"object"==typeof i&&"function"==typeof i.audioAdapterFactory?i.audioAdapterFactory:null;this.#vt=r?r({timeline:this.#lt,canvas:this.#et,containerSize:this.#nt,options:e}):new Ag(this.#lt,this.#et,this.#nt,e),this.#pt=o?o({timeline:this.#lt,decodeCoordinator:this.#ft,options:e}):new XA(this.#lt,this.#ft,e),this.#gt=new mA(this.#lt,this.#vt,e)}get canvas(){return this.#et}get containerSize(){return this.#nt}get assetsDeliveryService(){return this.#it}get downloadSpeed(){return this.#rt}get abrSelector(){return this.#ot}get nodeRepository(){return this.#st}get nodePrioritizer(){return this.#at}get timeline(){return this.#lt}get documentVisibility(){return this.#ct}get nodeResolver(){return this.#ut}get segmentLoadCoordinator(){return this.#dt}get decoderFactory(){return this.#ht}get parsingManager(){return this.#ft}get audioAdapter(){return this.#pt}get audioPlaybackManager(){return this.#pt}get qoe(){return this.#mt}get renderAdapter(){return this.#vt}get renderer(){return this.#vt}get transitionManager(){return this.#gt}get tracker(){return this.#bt}dispose(){[this.#bt,this.#lt,this.#ct,this.#dt,this.#ut,this.#at,this.#st,this.#it,this.#ot,this.#rt,this.#ft,this.#ht,this.#pt,this.#mt,this.#vt,this.#gt,this.#yt,this.#nt,this.#et].forEach((t=>{t&&"function"==typeof t.dispose&&t.dispose()})),this.#lt=null,this.#ct=null,this.#dt=null,this.#ut=null,this.#at=null,this.#st=null,this.#it=null,this.#ot=null,this.#rt=null,this.#ft=null,this.#ht=null,this.#pt=null,this.#mt=null,this.#vt=null,this.#gt=null,this.#yt=null,this.#et=null,this.#bt=null}}const ZC="devops.1190049";var tP={isPlainObject:ud,deepMerge:dd,get:Ly,set:By,ekoGlobalStore:zy,download:tb,isPositiveNumber:my,clamp01:_m,root:yd,now:jy,getFrameDimensions:yM,useragent:Ov,requestAnimationFrame:pw,cancelAnimationFrame:mw,start:Tw,stop:Iw,isTicking:Ew,predicator:function(t,e){const n=e||{};if("function"!=typeof t)return void vw.error("[predicator] Bad argument given to predicator, first argument must be a function.",arguments);if(t.apply())return vw.debug("[predicator] Invoking onFulfilled immediately."),void("function"==typeof n.onFulfilled&&n.onFulfilled.call(null,0));const i=n.timeout||1e4,r=n.interval,o=jy();let s,a,l,c,u;c=function(){t.apply()&&l()},l=function(){Iw(c),yd.clearTimeout(s),u=jy()-o,vw.debug("[predicator] Invoking onFulfilled after "+u+" ms."),"function"==typeof n.onFulfilled&&n.onFulfilled.call(null,u)},a=function(){Iw(c),u=jy()-o,vw.debug("[predicator] Invoking onTimeout after "+u+" ms."),"function"==typeof n.onTimeout&&n.onTimeout.call(null,u)},s=yd.setTimeout(a,i),Tw(c,r)},createThrottler:Sw,scheduleExecution:Aw},eP=new WeakMap,nP=new WeakMap,iP=new WeakMap,rP=new WeakMap,oP=new WeakMap,sP=new WeakMap,aP=new WeakMap,lP=new WeakSet;class cP{constructor(t){U(this,lP),W(this,eP,[]),W(this,nP,[]),W(this,iP,new LM("placement-")),W(this,rP,new LM("renderplacement-")),W(this,oP,void 0),W(this,sP,new Map),W(this,aP,void 0),j(oP,this,t),j(aP,this,{allowUnready:!0,getNode:t=>L(lP,this,uP).call(this,t)})}get placements(){return z(eP,this).slice()}get renderPlacements(){return z(nP,this).slice()}getNodesAtTime(t){L(lP,this,dP).call(this);const e=L(lP,this,fP).call(this,t);if(!Number.isFinite(e))return[];const n=z(eP,this).filter((t=>Am(t,e,null,z(aP,this)))),i=[];return n.forEach((t=>{const e=L(lP,this,uP).call(this,null==t?void 0:t.nodeId);e&&i.push(e)})),i}placeOnTimeline(t,e,n={}){const i=t&&"object"==typeof t?t:null,r=i?i.id:t;if(!r)throw new Error("TimelineDefinition.placeOnTimeline requires node id");i&&z(sP,this).set(r,i);const o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=Cm(e);if("string"==typeof e&&e.includes("@")&&!a)throw new Error("TimelineDefinition.placeOnTimeline requires valid placement reference");const{wantsEndOffset:l,endOffsetSeconds:c}=a?{wantsEndOffset:!1}:Om(e,n);let u,d,h,f=!1;const p=null!==a;if(a){const t=z(eP,this).find((t=>(null==t?void 0:t.placementId)===a.placementId));if(!t)throw new Error("TimelineDefinition.placeOnTimeline requires valid placement reference");d=t.placementId,h=a.anchor;const e=Sm(t);if("start"===a.anchor)Number.isFinite(e)?u=e:f=!0;else{const n=L(lP,this,hP).call(this,t);Number.isFinite(e)&&n>0?u=e+n:f=!0}}else if(l){const t=n.offsetAnchorPlacementId?z(eP,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):z(eP,this).length?z(eP,this)[z(eP,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=Sm(t),n=L(lP,this,hP).call(this,t);Number.isFinite(e)&&n>0?u=e+n-c:(f=!0,h="end")}else u=-c}else u=Fm(e);const m=z(iP,this).claim(n.placementId),v={placementId:m,nodeId:r,offset:u,offsetPending:f,offsetAnchorPlacementId:f?d:void 0,offsetAnchorEdge:f?h:void 0,offsetAnchorIsReference:f?p:void 0,offsetEndSeconds:l?c:a&&"end"===a.anchor?0:void 0,nodeOffsetOverride:o,nodeDurationOverride:s,loop:!0===n.loop};return z(eP,this).push(v),Nm(z(eP,this)),m}placeRenderNodeOnTimeline(t,e,n,i={}){const r="string"==typeof t?t:null==t?void 0:t.type;if(!r||"string"!=typeof r)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires render node type");let o,s,a,l=!1;const c=Cm(e);if("string"==typeof e&&e.includes("@")&&!c)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires valid placement reference");const u=null!==c;if(c){const t=z(eP,this).find((t=>(null==t?void 0:t.placementId)===c.placementId));if(!t)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires valid placement reference");s=t.placementId,a=c.anchor;const e=Sm(t);if("start"===c.anchor)Number.isFinite(e)?o=e:l=!0;else{const n=L(lP,this,hP).call(this,t);Number.isFinite(e)&&Number.isFinite(n)?o=e+n:l=!0}}else o=Fm(e);const d=z(rP,this).claim(i.renderPlacementId),h=Number(n),f=h===Number.POSITIVE_INFINITY,p=Number.isFinite(h)&&h>0||f?h:void 0;if(!p)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires a positive duration (seconds) or Infinity as 3rd argument");const m={renderPlacementId:d,type:r,offset:o,offsetPending:l,offsetAnchorPlacementId:l?s:void 0,offsetAnchorEdge:l?a:void 0,offsetAnchorIsReference:l?u:void 0,duration:p,params:i.params&&"object"==typeof i.params?i.params:void 0};if(!l){const t=o,e=o+p;Pm(z(nP,this),t,e,"TimelineDefinition.placeRenderNodeOnTimeline does not allow overlapping render nodes")}return z(nP,this).push(m),Nm(z(nP,this)),d}}function uP(t){if(t)return z(oP,this)&&"function"==typeof z(oP,this).get?z(oP,this).get(t):z(sP,this).get(t)}function dP(){return Mm(z(eP,this),{getPlacementDuration:t=>L(lP,this,hP).call(this,t)}).updated}function hP(t){return Im(t,null,z(aP,this))}function fP(t){if("end"===t){const t=L(lP,this,pP).call(this);if(!Number.isFinite(t))return;return Math.max(0,t-Math.min(t,.001))}const e=Number(t);return Number.isFinite(e)?e:0}function pP(){let t;return z(eP,this).forEach((e=>{const n=Sm(e);if(!Number.isFinite(n))return;const i=L(lP,this,hP).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}const mP=new Set(["canplay","play","playing","waiting","pause","seeking","seeked"]);var vP=new WeakMap,gP=new WeakMap,yP=new WeakMap,bP=new WeakMap,kP=new WeakMap,wP=new WeakMap,xP=new WeakMap,_P=new WeakMap,TP=new WeakMap,IP=new WeakMap,EP=new WeakMap,SP=new WeakMap,AP=new WeakMap,NP=new WeakMap,MP=new WeakMap,FP=new WeakMap,OP=new WeakMap,CP=new WeakMap,PP=new WeakMap,DP=new WeakMap,RP=new WeakMap,LP=new WeakMap,BP=new WeakMap,zP=new WeakMap,WP=new WeakMap,jP=new WeakSet;class UP extends md{get name(){return"EkoPlayer"}get exposedPlayerAPI(){return z(bP,this)}constructor(t,e={}){const{options:n,publicOptions:i}=function(t={}){const e=dd({},nb,t);Object.entries(eb).forEach((([t,{targetPaths:n}])=>{void 0!==e[t]&&n.forEach((n=>{void 0===Ly(e,n)&&By(e,n,e[t])}))}));const n=function(t){const e={};return Object.keys(eb).forEach((n=>{Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})),Object.freeze(e)}(e);return ib.info("Processed options:",e),ib.info("Public options:",n),{options:e,publicOptions:n}}(e);return super(n),U(this,jP),W(this,vP,void 0),W(this,gP,void 0),W(this,yP,void 0),W(this,bP,void 0),W(this,kP,void 0),W(this,wP,void 0),W(this,xP,void 0),W(this,_P,void 0),W(this,TP,void 0),W(this,IP,void 0),W(this,EP,void 0),W(this,SP,void 0),W(this,AP,void 0),W(this,NP,void 0),W(this,MP,void 0),W(this,FP,void 0),W(this,OP,void 0),W(this,CP,void 0),W(this,PP,void 0),W(this,DP,void 0),W(this,RP,void 0),W(this,LP,void 0),W(this,BP,void 0),W(this,zP,void 0),W(this,WP,0),j(yP,this,i),this.log.info("Initializing EkoPlayer with options:",i),j(SP,this,new JC(t,n,this)),L(jP,this,JP).call(this,z(SP,this)),j(MP,this,(t=>L(jP,this,$P).call(this,t))),z(gP,this)&&"function"==typeof z(gP,this).on&&z(gP,this).on(kd.TIMELINE_CUEPOINT,z(MP,this)),j(FP,this,null),j(CP,this,(t=>L(jP,this,qP).call(this,t))),j(PP,this,(t=>{const e=t&&"object"==typeof t?t:{};L(jP,this,qP).call(this,{...e,event:"seeking"})})),j(DP,this,(t=>{const e=t&&"object"==typeof t?t:{};L(jP,this,qP).call(this,{...e,event:"seeked"})})),z(gP,this)&&"function"==typeof z(gP,this).on&&(z(gP,this).on(kd.TIMELINE_PLAYER_STATE,z(CP,this)),z(gP,this).on(kd.TIMELINE_SEEKING,z(PP,this)),z(gP,this).on(kd.TIMELINE_SEEKED,z(DP,this))),j(BP,this,(t=>{const e=t&&"object"==typeof t?t:{};this.trigger(kd.CONTAINER_RESIZE,e)})),z(AP,this)&&"function"==typeof z(AP,this).on&&z(AP,this).on(kd.CONTAINER_RESIZE,z(BP,this)),L(jP,this,KP).call(this),L(jP,this,HP).call(this),j(bP,this,L(jP,this,QP).call(this)),z(bP,this)}onDispose(){z(gP,this)&&"function"==typeof z(gP,this).off&&z(MP,this)&&z(gP,this).off(kd.TIMELINE_CUEPOINT,z(MP,this)),j(MP,this,null),z(gP,this)&&"function"==typeof z(gP,this).off&&(z(CP,this)&&z(gP,this).off(kd.TIMELINE_PLAYER_STATE,z(CP,this)),z(PP,this)&&z(gP,this).off(kd.TIMELINE_SEEKING,z(PP,this)),z(DP,this)&&z(gP,this).off(kd.TIMELINE_SEEKED,z(DP,this))),j(CP,this,null),j(PP,this,null),j(DP,this,null),j(FP,this,null),z(AP,this)&&"function"==typeof z(AP,this).off&&z(BP,this)&&z(AP,this).off(kd.CONTAINER_RESIZE,z(BP,this)),j(BP,this,null),z(EP,this)&&"function"==typeof z(EP,this).off&&(z(RP,this)&&z(EP,this).off("qoescore",z(RP,this)),z(LP,this)&&z(EP,this).off("qoestatus",z(LP,this))),j(RP,this,null),j(LP,this,null),z(IP,this)&&"function"==typeof z(IP,this).off&&z(zP,this)&&z(IP,this).off(kd.DECODER_ERROR,z(zP,this)),j(zP,this,null),j(WP,this,0),z(NP,this)&&"function"==typeof z(NP,this).dispose&&z(NP,this).dispose(),j(NP,this,null),z(SP,this)&&"function"==typeof z(SP,this).dispose&&z(SP,this).dispose(),j(gP,this,null),j(vP,this,null),j(wP,this,null),j(xP,this,null),j(_P,this,null),j(TP,this,null),j(IP,this,null),j(EP,this,null),j(AP,this,null),j(kP,this,null),j(bP,this,null),j(SP,this,null)}}function $P(t={}){var e;this.trigger(kd.TIMELINE_CUEPOINT,t);const n="string"==typeof(null==t||null===(e=t.cuepoint)||void 0===e?void 0:e.name)?t.cuepoint.name:"";n&&this.trigger(n,t)}function qP(t={}){const e="string"==typeof(null==t?void 0:t.event)?t.event:"";if(!mP.has(e))return;if("playing"!==e||Number.isFinite(z(OP,this))||(j(OP,this,jy()),this.log.info(`[#handlePlayerStateEvent] Playback started @ ${(z(OP,this)/1e3).toFixed(3)}s (${Date.now()})`)),z(FP,this)===e)return;j(FP,this,e);const n=Number.isFinite(null==t?void 0:t.time)?t.time:z(gP,this)&&Number.isFinite(z(gP,this).currentTime)?z(gP,this).currentTime:0,i={};Number.isFinite(n)&&(i.time=n),"string"==typeof(null==t?void 0:t.from)&&(i.from=t.from),"string"==typeof(null==t?void 0:t.to)&&(i.to=t.to),Number.isFinite(null==t?void 0:t.targetTime)&&(i.targetTime=t.targetTime),Array.isArray(null==t?void 0:t.placements)&&(i.placements=t.placements.slice()),this.trigger(e,i)}function VP(){return new cP(z(vP,this))}function GP(t){if(!t||"object"!=typeof t)throw new Error("EkoPlayer.switchTimeline requires a timeline definition");if(!z(gP,this)||"function"!=typeof z(gP,this).applyTimelineDefinition)throw new Error("EkoPlayer.switchTimeline requires an active timeline");z(gP,this).applyTimelineDefinition(t),"function"==typeof z(gP,this).play&&z(gP,this).play()}function HP(){z(EP,this)&&"function"==typeof z(EP,this).on&&(j(RP,this,(t=>{this.trigger(kd.QOE_SCORE,t)})),j(LP,this,(t=>{this.trigger(kd.QOE_STATUS,t)})),z(EP,this).on(kd.QOE_SCORE,z(RP,this)),z(EP,this).on(kd.QOE_STATUS,z(LP,this)))}function KP(){z(IP,this)&&"function"==typeof z(IP,this).on&&(j(zP,this,(t=>{const e=t&&"object"==typeof t?t:{error:t};this.trigger(kd.DECODER_ERROR,e),L(jP,this,XP).call(this,e)})),z(IP,this).on(kd.DECODER_ERROR,z(zP,this)))}function XP(t={}){var e;const n=z(gP,this);if(!n||"number"!=typeof n.currentTime)return;const i=Date.now();if(i<z(WP,this))return;const r=Number(n.currentTime);if(!Number.isFinite(r))return;const o=Number(null==n||null===(e=n.settings)||void 0===e?void 0:e.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;j(WP,this,i+1500),this.log.warn("[#attemptDecoderRecoverySeek] decoder:error received, attempting seek recovery",null==t?void 0:t.error),n.currentTime=r+s}async function YP(t={}){var e;if(z(NP,this))return z(NP,this);const n=t&&"object"==typeof t&&!Array.isArray(t)?{...t}:{},i=z(kP,this)&&z(kP,this).element?z(kP,this).element:null;if(!i)throw new Error("Debug overlay requires an initialized player canvas and mount element.");const r=function({canvasElement:t,containerElement:e}={}){const n=t&&t.parentNode?t.parentNode:null;if(null==e)return n;const i=function(t,e=(null==yd?void 0:yd.document)){if(bd(t))return t;if("string"!=typeof t)return null;let n=t.trim();if("#"===n.charAt(0)&&(n=n.slice(1)),!n||!e||"function"!=typeof e.getElementById)return null;const i=e.getElementById(n);return bd(i)?i:null}(e,t&&t.ownerDocument?t.ownerDocument:null);if(i)return i;if("string"==typeof e){const t=e.trim(),n="#"===t.charAt(0)?t.slice(1):t;if(!n)throw new Error("Debug overlay containerElement id cannot be empty.");throw new Error(`Debug overlay containerElement id "${n}" was not found.`)}throw new Error("Debug overlay containerElement must be an element id string or DOM element.")}({canvasElement:i,containerElement:n.containerElement});if(!r)throw new Error("Debug overlay requires an initialized player canvas and mount element.");Object.prototype.hasOwnProperty.call(n,"containerElement")&&delete n.containerElement;const o=await import("./debug-overlay-B4njlEwZ.esm.js"),s=(null==o?void 0:o.createDebugOverlay)||(null==o?void 0:o.default);if("function"!=typeof s)throw new Error("Debug overlay bundle does not export createDebugOverlay().");return n.publicOptions=z(yP,this),n.playerVersion=ZC,j(NP,this,s({mountElement:r,canvasElement:i,timeline:z(gP,this),assetsDeliveryServiceUrl:null===(e=z(SP,this))||void 0===e||null===(e=e.assetsDeliveryService)||void 0===e||null===(e=e.settings)||void 0===e?void 0:e.assetsDeliveryServiceUrl,getNode:t=>z(vP,this)&&"function"==typeof z(vP,this).get?z(vP,this).get(t):void 0,listNodes:()=>z(vP,this)&&"function"==typeof z(vP,this).list?z(vP,this).list():[],downloadSpeed:z(SP,this)?z(SP,this).downloadSpeed:void 0,downloadEvents:Cy,qoe:z(EP,this)?z(EP,this).publicAPI:void 0,qoeEvents:this,options:n,playbackStartedAtMs:z(OP,this)})),z(NP,this)}function QP(){const t=this;return{createTimeline:()=>L(jP,t,VP).call(t),switchTimeline:e=>L(jP,t,GP).call(t,e),play:z(gP,this).play,pause:z(gP,this).pause,reset:z(gP,this).reset,placeOnTimeline:z(gP,this).placeOnTimeline,placeRenderNodeOnTimeline:z(gP,this).placeRenderNodeOnTimeline,addNode:z(vP,this).add,getNode:z(vP,this).get,listNodes:z(vP,this).list,getNodesAtTime:e=>z(gP,t).getNodesAtTime(e),dispose:this.dispose,on:t.on,off:t.off,once:t.once,trigger:t.trigger,transitionTo:(e,n)=>z(xP,t).transitionTo(e,n),track:(e,...n)=>{if(z(TP,t)&&"function"==typeof z(TP,t).track)return z(TP,t).track(e,...n)},seekToPlacement:e=>z(gP,t).seekToPlacement(e),get currentTime(){return z(gP,t).currentTime},set currentTime(e){z(gP,t).currentTime=e},get buffered(){return z(gP,t).buffered},get options(){return z(yP,t)},get containerWidth(){return z(AP,t)?z(AP,t).containerWidth:0},get containerHeight(){return z(AP,t)?z(AP,t).containerHeight:0},get playbackRate(){return z(gP,t).playbackRate},set playbackRate(e){z(gP,t).playbackRate=e},get paused(){return!!z(gP,t)&&!0===z(gP,t).paused},get muted(){return!!z(_P,t)&&z(_P,t).muted},set muted(e){z(_P,t)&&(z(_P,t).muted=e)},get volume(){return z(_P,t)?z(_P,t).volume:1},set volume(e){z(_P,t)&&(z(_P,t).volume=e)},get qoe(){return z(EP,t)?z(EP,t).publicAPI:void 0},get utils(){return tP},get version(){return ZC},loadDebugOverlay:(...e)=>L(jP,t,YP).call(t,...e)}}function JP(t){t&&(j(kP,this,t.canvas),j(vP,this,t.nodeRepository),j(gP,this,t.timeline),j(_P,this,t.audioAdapter||t.audioPlaybackManager),j(TP,this,t.tracker),j(IP,this,t.parsingManager),j(EP,this,t.qoe),j(wP,this,t.renderAdapter||t.renderer),j(xP,this,t.transitionManager),j(AP,this,t.containerSize))}class ZP{constructor({target:t,props:e}){if(!t)throw new Error("`options.target` is required");Io(this.#kt,e,!0),this.#kt.v.EkoPlayer=UP;const n=t.hasChildNodes()?fa:ha;this.#wt=n(qu,{target:t,props:this.#kt.v})}#wt;#kt=Di(_o(Fo({})),"EkoGallery.#props");destroy(t){if(this.#wt)return ga(this.#wt,t)}get props(){return qs(this.#kt)}}const tD=b("gallery-react");const eD=a(((t,i)=>{const{config:r,debug:a,ssrHtml:c,activeItem:u={index:0,step:0},forceMobile:d,videoAspectRatio:h,onEvent:f=()=>{}}=t,p=n(null),m=n({}),v=function(t){return void 0!==t}(r),g=n(u),y=n(c);m.current.initEventSent||(f("galleryinit"),m.current.initEventSent=!0);const b=o((t=>{m.current.state=t,t.activeItemIndex===g.current.index&&t.activeModuleIndex===g.current.step||f("activeitemchanged",{index:t.activeItemIndex,step:t.activeModuleIndex})}),[]),k=o((t=>{m.current.API=t,0===g.current.index&&0===g.current.step||t.selectItemAndStep(g.current.index,g.current.step),m.current.unsubscribe&&m.current.unsubscribe(),m.current.unsubscribe=t.subscribe(b)}),[]),w=o(((t,e)=>{f(t,e)}),[f]);return s((()=>(tD.setDataStorage("gallery-react",{config:r}),window.eko=window.eko||{},window.eko.config=r,window.eko.gallery={version:"devops/4.0.13"},()=>{window.eko.config=void 0})),[r]),l(i,(()=>({prev:()=>{var t;null===(t=m.current.API)||void 0===t||t.prev()},next:()=>{var t;null===(t=m.current.API)||void 0===t||t.next()}}))),s((()=>{if(null==p||!p.current)return;const t=p.current;return m.current.app=new ZP({target:t,props:{config:r,forceMobile:d,videoAspectRatio:h,hideNav:!0,onGalleryReady:k,onEvent:w}}),()=>{var t;null===(t=m.current.app)||void 0===t||t.destroy()}}),[]),s((()=>{m.current.app&&(m.current.app.props.config=r)}),[r]),s((()=>{m.current.app&&(m.current.app.props.debug=a,m.current.app.props.forceMobile=d,m.current.app.props.videoAspectRatio=h,m.current.app.props.onEvent=w)}),[a,d,h,w]),s((()=>{g.current=u,m.current.state&&(m.current.state.activeItemIndex===u.index&&m.current.state.activeModuleIndex===u.step||m.current.API.selectItemAndStep(u.index,u.step))}),[u]),v?e.createElement("div",q({style:{position:"relative",width:"100%",height:"100%"},ref:p},y.current?{dangerouslySetInnerHTML:{__html:y.current}}:{})):t.children}));eD.propTypes={className:Ct.string,config:Ct.object,variantId:Ct.string,onEvent:Ct.func,ssrHtml:Ct.string,videoAspectRatio:Ct.string,debug:Ct.bool,activeItem:Ct.shape({index:Ct.number,step:Ct.number}),forceMobile:Ct.bool,instanceId:Ct.string,children:Ct.node},eD.displayName="EkoGallerySvelte";const nD=d("v2"),iD=d("v1");export{dn as E,U as _,W as a,j as b,z as c,L as d,u as e,iD as f,nD as g,eD as h,R as w};
|
|
14
|
+
*/var bt=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var i=Object.getOwnPropertyNames(e).map((function(t){return e[t]}));if("0123456789"!==i.join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,i,r=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),o=1;o<arguments.length;o++){for(var s in n=Object(arguments[o]))gt.call(n,s)&&(r[s]=n[s]);if(vt){i=vt(n);for(var a=0;a<i.length;a++)yt.call(n,i[a])&&(r[i[a]]=n[i[a]])}}return r},kt="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",wt=Function.call.bind(Object.prototype.hasOwnProperty),xt=function(){};if("production"!==process.env.NODE_ENV){var _t=kt,Tt={},It=wt;xt=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}}}function Et(t,e,n,i,r){if("production"!==process.env.NODE_ENV)for(var o in t)if(It(t,o)){var s;try{if("function"!=typeof t[o]){var a=Error((i||"React class")+": "+n+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof t[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw a.name="Invariant Violation",a}s=t[o](e,o,i,n,null,_t)}catch(t){s=t}if(!s||s instanceof Error||xt((i||"React class")+": type specification of "+n+" `"+o+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof s+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),s instanceof Error&&!(s.message in Tt)){Tt[s.message]=!0;var l=r?r():"";xt("Failed "+n+" type: "+s.message+(null!=l?l:""))}}}Et.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&(Tt={})};var St=Et,At=function(){};function Nt(){return null}"production"!==process.env.NODE_ENV&&(At=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}});var Mt=function(t,e){var n="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";var r="<<anonymous>>",o={array:c("array"),bigint:c("bigint"),bool:c("boolean"),func:c("function"),number:c("number"),object:c("object"),string:c("string"),symbol:c("symbol"),any:l(Nt),arrayOf:function(t){return l((function(e,n,i,r,o){if("function"!=typeof t)return new a("Property `"+o+"` of component `"+i+"` has invalid PropType notation inside arrayOf.");var s=e[n];if(!Array.isArray(s))return new a("Invalid "+r+" `"+o+"` of type `"+h(s)+"` supplied to `"+i+"`, expected an array.");for(var l=0;l<s.length;l++){var c=t(s,l,i,r,o+"["+l+"]",kt);if(c instanceof Error)return c}return null}))},element:l((function(e,n,i,r,o){var s=e[n];return t(s)?null:new a("Invalid "+r+" `"+o+"` of type `"+h(s)+"` supplied to `"+i+"`, expected a single ReactElement.")})),elementType:l((function(t,e,n,i,r){var o=t[e];return mt.isValidElementType(o)?null:new a("Invalid "+i+" `"+r+"` of type `"+h(o)+"` supplied to `"+n+"`, expected a single ReactElement type.")})),instanceOf:function(t){return l((function(e,n,i,o,s){if(!(e[n]instanceof t)){var l=t.name||r;return new a("Invalid "+o+" `"+s+"` of type `"+(((c=e[n]).constructor&&c.constructor.name?c.constructor.name:r)+"` supplied to `")+i+"`, expected instance of `"+l+"`.")}var c;return null}))},node:l((function(t,e,n,i,r){return d(t[e])?null:new a("Invalid "+i+" `"+r+"` supplied to `"+n+"`, expected a ReactNode.")})),objectOf:function(t){return l((function(e,n,i,r,o){if("function"!=typeof t)return new a("Property `"+o+"` of component `"+i+"` has invalid PropType notation inside objectOf.");var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected an object.");for(var c in s)if(wt(s,c)){var u=t(s,c,i,r,o+"."+c,kt);if(u instanceof Error)return u}return null}))},oneOf:function(t){if(!Array.isArray(t))return"production"!==process.env.NODE_ENV&&At(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),Nt;return l((function(e,n,i,r,o){for(var l=e[n],c=0;c<t.length;c++)if(s(l,t[c]))return null;var u=JSON.stringify(t,(function(t,e){return"symbol"===f(e)?String(e):e}));return new a("Invalid "+r+" `"+o+"` of value `"+String(l)+"` supplied to `"+i+"`, expected one of "+u+".")}))},oneOfType:function(t){if(!Array.isArray(t))return"production"!==process.env.NODE_ENV&&At("Invalid argument supplied to oneOfType, expected an instance of array."),Nt;for(var e=0;e<t.length;e++){var n=t[e];if("function"!=typeof n)return At("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+p(n)+" at index "+e+"."),Nt}return l((function(e,n,i,r,o){for(var s=[],l=0;l<t.length;l++){var c=(0,t[l])(e,n,i,r,o,kt);if(null==c)return null;c.data&&wt(c.data,"expectedType")&&s.push(c.data.expectedType)}return new a("Invalid "+r+" `"+o+"` supplied to `"+i+"`"+(s.length>0?", expected one of type ["+s.join(", ")+"]":"")+".")}))},shape:function(t){return l((function(e,n,i,r,o){var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected `object`.");for(var c in t){var d=t[c];if("function"!=typeof d)return u(i,r,o,c,f(d));var p=d(s,c,i,r,o+"."+c,kt);if(p)return p}return null}))},exact:function(t){return l((function(e,n,i,r,o){var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected `object`.");var c=bt({},e[n],t);for(var d in c){var p=t[d];if(wt(t,d)&&"function"!=typeof p)return u(i,r,o,d,f(p));if(!p)return new a("Invalid "+r+" `"+o+"` key `"+d+"` supplied to `"+i+"`.\nBad object: "+JSON.stringify(e[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(t),null," "));var m=p(s,d,i,r,o+"."+d,kt);if(m)return m}return null}))}};function s(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function a(t,e){this.message=t,this.data=e&&"object"==typeof e?e:{},this.stack=""}function l(t){if("production"!==process.env.NODE_ENV)var n={},i=0;function o(o,s,l,c,u,d,h){if(c=c||r,d=d||l,h!==kt){if(e){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}if("production"!==process.env.NODE_ENV&&"undefined"!=typeof console){var p=c+":"+l;!n[p]&&i<3&&(At("You are manually calling a React.PropTypes validation function for the `"+d+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),n[p]=!0,i++)}}return null==s[l]?o?null===s[l]?new a("The "+u+" `"+d+"` is marked as required in `"+c+"`, but its value is `null`."):new a("The "+u+" `"+d+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:t(s,l,c,u,d)}var s=o.bind(null,!1);return s.isRequired=o.bind(null,!0),s}function c(t){return l((function(e,n,i,r,o,s){var l=e[n];return h(l)!==t?new a("Invalid "+r+" `"+o+"` of type `"+f(l)+"` supplied to `"+i+"`, expected `"+t+"`.",{expectedType:t}):null}))}function u(t,e,n,i,r){return new a((t||"React class")+": "+e+" type `"+n+"."+i+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+r+"`.")}function d(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(d);if(null===e||t(e))return!0;var r=function(t){var e=t&&(n&&t[n]||t[i]);if("function"==typeof e)return e}(e);if(!r)return!1;var o,s=r.call(e);if(r!==e.entries){for(;!(o=s.next()).done;)if(!d(o.value))return!1}else for(;!(o=s.next()).done;){var a=o.value;if(a&&!d(a[1]))return!1}return!0;default:return!1}}function h(t){var e=typeof t;return Array.isArray(t)?"array":t instanceof RegExp?"object":function(t,e){return"symbol"===t||!!e&&("Symbol"===e["@@toStringTag"]||"function"==typeof Symbol&&e instanceof Symbol)}(e,t)?"symbol":e}function f(t){if(null==t)return""+t;var e=h(t);if("object"===e){if(t instanceof Date)return"date";if(t instanceof RegExp)return"regexp"}return e}function p(t){var e=f(t);switch(e){case"array":case"object":return"an "+e;case"boolean":case"date":case"regexp":return"a "+e;default:return e}}return a.prototype=Error.prototype,o.checkPropTypes=St,o.resetWarningCache=St.resetWarningCache,o.PropTypes=o,o};function Ft(){}function Ot(){}Ot.resetWarningCache=Ft;var Ct=V((function(t){if("production"!==process.env.NODE_ENV){var e=mt;t.exports=Mt(e.isElement,!0)}else t.exports=function(){function t(t,e,n,i,r,o){if(o!==kt){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function e(){return t}t.isRequired=t;var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:Ot,resetWarningCache:Ft};return n.PropTypes=n,n}()}));const Pt=/https?:\/\/(.*?\.)?eko.com/,Dt={"eko.project.interaction":"interaction","eko.project.swipe":"swipe"};let Rt=null,Lt=null,Bt=[];function zt(t){return e=>{var n;if(!Pt.test(e.origin)||"eko.embedapi"!==(null===(n=e.data)||void 0===n?void 0:n.source))return;const i=e.data,r=Dt[i.type];r&&(t?t(r,i.data):Bt.push({type:r,data:i.data}))}}"undefined"!=typeof window&&(Lt=zt(null),window.addEventListener("message",Lt));var Wt={subscribe:function(t){"function"==typeof t?Rt?console.warn("[eko-gallery-react] Ignoring events subscribe since already subscribed"):(Rt=t,Lt=zt(t),window.addEventListener("message",Lt),function(t){Bt.forEach((e=>{t(e.type,e.data)})),Bt=[]}(t)):console.warn("[eko-gallery-react] Ignoring events subscribe since a callback function was not provided as argument")},unsubscribe:function(){Lt?(window.removeEventListener("message",Lt),Lt=null,Rt=null,Bt=[]):console.warn("[eko-gallery-react] Ignoring events unsubscribe since not subscribed")},send:function(t,e){Rt?Rt(t,e):Bt.push({type:t,data:e})}};const jt=({index:t,activeIndex:n,setActiveIndex:i,item:r,src:o,navItemRefs:s,itemIcon:a})=>{var l,c;const u=null==r||null===(l=r.media)||void 0===l?void 0:l.srcset,d=null==r||null===(c=r.media)||void 0===c?void 0:c.sizes,h=!o&&(null==r?void 0:r.label),f=u?o:function(t,e=200){if(!t)return null;try{let n=t;t.includes("assets.eko.com")&&t.includes("/raw/")&&(n=t.replace("/raw/","/image/"));const i=new URL(n);return i.searchParams.set("width",e),i.href}catch(e){return t}}(o,150);let p=["addons-container",h?"full-thumb-label":""].join(" ").trim();return e.createElement("li",{className:"eko-nav-item","aria-current":n===t,onClick:function(){i(t),function(t){R.track("gallery.interaction",{elementid:`thumbnail-${t}`,interactiontype:"click"}),Wt.send("interaction",{elementid:`thumbnail-${t}`,interactiontype:"click"})}(t)},ref:s.current[t]},e.createElement("button",{type:"button","aria-label":`Go to item ${t}`},!h&&e.createElement("img",{src:f,srcSet:u,sizes:d,alt:null==r?void 0:r.name,loading:"eager",fetchPriority:"high"}),e.createElement("div",{className:p},(null==r?void 0:r.stepsIndication)&&e.createElement("div",{className:"step-indicator"},e.createElement("span",null),e.createElement("span",null),e.createElement("span",null)),(null==r?void 0:r.label)&&e.createElement("div",{className:"thumb-label"},null==r?void 0:r.label)),a&&e.createElement("div",{className:"item-icon"},e.createElement("span",{style:{backgroundImage:`url(${a})`}}))))};jt.propTypes={index:Ct.number,activeIndex:Ct.number,setActiveIndex:Ct.func.isRequired,item:Ct.object.isRequired,src:Ct.string,navItemRefs:Ct.object.isRequired,itemIcon:Ct.string};const Ut=({layout:t,nav:i,isVerticalNav:r,showPrevArrow:o,showNextArrow:s})=>{var a,l,c,u,d;const h=n(null),f=n(null),p="arrows"===(null==t||null===(a=t.mobile)||void 0===a||null===(a=a.config)||void 0===a||null===(a=a.navPagination)||void 0===a?void 0:a.type)?"eko-mobile-arrows":"",m="arrows"===(null!==(l=null==t||null===(c=t.desktop)||void 0===c||null===(c=c.config)||void 0===c||null===(c=c.navPagination)||void 0===c?void 0:c.type)&&void 0!==l?l:"arrows")?"eko-desktop-arrows":"",v=p||m,g=r?null==i||null===(u=i.current)||void 0===u?void 0:u.scrollHeight:null==i||null===(d=i.current)||void 0===d?void 0:d.scrollWidth;function y(t){const e=r?i.current.clientHeight:i.current.clientWidth,n=function(t,e){const n=r?e.scrollTop:e.scrollLeft;return Math.max(-n,Math.min(g-t-n,t))}("next"===t?e:-e,i.current);return{top:r?n:0,left:r?0:n,behavior:"smooth"}}function b(t){var e,n,r;const o=y(t),s="next"===t?null==f||null===(e=f.current)||void 0===e?void 0:e.id:null==h||null===(n=h.current)||void 0===n?void 0:n.id;var a,l;window.EkoAnalytics("track","gallery.interaction",{elementid:s,interactiontype:"click"}),null==i||null===(r=i.current)||void 0===r||r.scrollBy(o),a=s,l="click",R.track("gallery.interaction",{elementId:a,interactiontype:l}),Wt.send("interaction",{elementId:a,interactiontype:l})}return e.createElement(e.Fragment,null,v&&e.createElement(e.Fragment,null,e.createElement("button",q({type:"button","aria-label":"Go to previous item","aria-hidden":o?"false":"true",onClick:()=>b("prev"),ref:h,id:"eko-nav-prev-arrow",className:`eko-nav-arrow eko-prev-nav-button ${p} ${m} ${o?"":"eko-hidden-nav-button"}`},o?{}:{tabIndex:"-1"}),e.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M5.56127 9.52817C5.28966 9.22635 5.28966 8.77361 5.56127 8.502L10.39 3.67331C10.6918 3.37157 11.1445 3.37157 11.4161 3.67331C11.7179 3.94492 11.7179 4.39766 11.4161 4.66927L7.10044 8.98487L11.4161 13.3307C11.7179 13.6023 11.7179 14.055 11.4161 14.3266C11.1445 14.6285 10.6918 14.6285 10.4202 14.3266L5.56127 9.52817Z",fill:"black"}))),e.createElement("button",q({type:"button","aria-label":"Go to next item","aria-hidden":s?"false":"true",onClick:()=>b("next"),ref:f,className:`eko-nav-arrow eko-next-nav-button ${p} ${m} ${s?"":"eko-hidden-nav-button"}`,id:"eko-nav-next-arrow"},s?{}:{tabIndex:"-1"}),e.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M12.4387 8.47185C12.7103 8.77367 12.7103 9.22641 12.4387 9.49802L7.61003 14.3267C7.30821 14.6284 6.85547 14.6284 6.58386 14.3267C6.28212 14.0551 6.28212 13.6024 6.58386 13.3308L10.8996 9.01515L6.58386 4.66933C6.28212 4.39772 6.28212 3.94499 6.58386 3.67338C6.85547 3.37155 7.30821 3.37155 7.57982 3.67338L12.4387 8.47185Z",fill:"black"})))))};function $t(t,e,n){let i;return function(){const n=this,r=arguments;clearTimeout(i),i=setTimeout((function(){i=null,t.apply(n,r)}),e)}}Ut.propTypes={layout:Ct.object.isRequired,nav:Ct.object.isRequired,isVerticalNav:Ct.bool.isRequired,showPrevArrow:Ct.bool.isRequired,showNextArrow:Ct.bool.isRequired};const qt=({items:t,setActiveIndex:a,activeIndex:l,layout:c,carouselMounted:u,forceMobile:d})=>{const h=n(null),f=n(null),p=n([]),m=3,[g,y]=i(null),[b,k]=i(!1),[w,x]=i(0),[_,T]=i(!1),[I,E]=i(!1);function S(){var t;const e=d||window.innerWidth<768?"mobile":"desktop",n=(null==c||null===(t=c[e])||void 0===t||null===(t=t.config)||void 0===t?void 0:t.orientation)||("desktop"===e?"left":"bottom");k("left"===n||"right"===n);const i=f.current.parentNode,r=u?".eko-smart-gallery-container iframe":".eko-carousel",o=i.querySelector(r);setTimeout((()=>{x(o.clientHeight)}),0)}function A(){var t,e;const n=d||v()?"mobile":"desktop",i=null!==(t=null==c||null===(e=c[n])||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.navPagination)||void 0===e?void 0:e.scrollThreshold)&&void 0!==t?t:m;!function(t=m){var e,n;const i=h.current;if(!i)return;const r="none"!==(null==c||null===(e=c.desktop)||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.navPagination)||void 0===e?void 0:e.type),o=(s=null==c||null===(n=c.mobile)||void 0===n||null===(n=n.config)||void 0===n||null===(n=n.navPagination)||void 0===n?void 0:n.type,"mask"===s||"arrows"===s);var s;if((d||v())&&!o)return void i.style.setProperty("-webkit-mask","none");if(!v()&&!r)return void i.style.setProperty("-webkit-mask","none");const a=i.scrollHeight-i.clientHeight,l=i.scrollTop>t?"85%":"100%",u=i.scrollTop<=a-t?"15%":"0%",f=i.scrollWidth-i.clientWidth,p=i.scrollLeft>t?"15%":"0%",g=i.scrollLeft<=f-t?"85%":"100%";b?i.style.setProperty("-webkit-mask",`linear-gradient(0deg,#0000,#000 ${u} ${l},#0000)`):i.style.setProperty("-webkit-mask",`linear-gradient(90deg,#0000,#000 ${p} ${g},#0000)`)}(i),function(t=m){var e,n,i,r,o,s;const a=b?null==h||null===(e=h.current)||void 0===e?void 0:e.scrollTop:null==h||null===(n=h.current)||void 0===n?void 0:n.scrollLeft,l=b?null==h||null===(i=h.current)||void 0===i?void 0:i.clientHeight:null==h||null===(r=h.current)||void 0===r?void 0:r.clientWidth,c=b?null==h||null===(o=h.current)||void 0===o?void 0:o.scrollHeight:null==h||null===(s=h.current)||void 0===s?void 0:s.scrollWidth;c-t<l?(T(!1),E(!1)):a<=t?(T(!1),E(!0)):a+l>c-t?(T(!0),E(!1)):a+t>0&&a<c-t&&(T(!0),E(!0))}(i)}p.current=null==t?void 0:t.map(((t,e)=>{var n,i;return null!==(n=null==p||null===(i=p.current)||void 0===i?void 0:i[e])&&void 0!==n?n:r()}));const N=$t((t=>{var e;e=t,R.track("gallery.interaction",{elementid:"nav",interactiontype:e}),Wt.send("interaction",{elementid:"nav",interactiontype:e})}),200);const M=o((t=>{a({index:t,step:0,source:"nav"})}),[]);return s((()=>{var t;y(null===(t=p.current)||void 0===t?void 0:t[l])}),[l]),s((()=>{if(null!=g&&g.current&&null!=h&&h.current){const t=g.current,e=h.current.clientWidth/2,n=t.clientWidth/2,i=h.current.clientHeight/2,r=t.clientHeight/2;h.current.scrollTo({left:t.offsetLeft-e+n,top:t.offsetTop-i+r,behavior:"smooth"})}}),[g]),s((()=>{S()}),[]),s((()=>(window.addEventListener("resize",S),()=>{window.removeEventListener("resize",S)})),[f,u,d]),s((()=>{x(0),S()}),[t,f,u,d]),s((()=>{A();const t=new ResizeObserver(A);return t.observe(h.current),()=>{t.disconnect()}}),[t,d,b]),e.createElement("div",{className:"eko-nav-container",ref:f,style:{opacity:w>0?1:0,height:""+(w&&b?w+"px":"auto")}},e.createElement(Ut,{layout:c,nav:h,isVerticalNav:b,showPrevArrow:_,showNextArrow:I}),e.createElement("ul",{className:`eko-nav eko-mobile-nav-selected-${null!==(F=null==c||null===(O=c.mobile)||void 0===O||null===(O=O.config)||void 0===O?void 0:O.navItemsSelectedType)&&void 0!==F?F:"underline"} eko-desktop-nav-selected-${null!==(C=null==c||null===(P=c.desktop)||void 0===P||null===(P=P.config)||void 0===P?void 0:P.navItemsSelectedType)&&void 0!==C?C:"underline"}`,ref:h,onScroll:function(){A()},onWheel:function(){N("wheel")},onTouchMove:function(){N("swipe")}},null==t?void 0:t.map(((t,n)=>{var i;const r=(null==t||null===(i=t.media)||void 0===i?void 0:i.url)||(null==t?void 0:t.media)||"";return e.createElement(jt,{key:r+n,index:n,activeIndex:l,setActiveIndex:M,item:t,src:r,navItemRefs:p,itemIcon:null==t?void 0:t.icon})}))));var F,O,C,P};qt.propTypes={items:Ct.array.isRequired,activeIndex:Ct.number,setActiveIndex:Ct.func.isRequired,layout:Ct.object,carouselMounted:Ct.bool,forceMobile:Ct.bool};function Vt(){R.track("gallery.cover.displayed"),Wt.send("gallerycoverdisplayed")}function Gt(t){if(!t)return t;try{const e=new URL(t);return e.host.includes("assets.eko.com")&&e.pathname.startsWith("/image")&&!e.searchParams.has("width")?(e.pathname.endsWith(".png")&&(e.pathname=e.pathname.replace(/\.png$/,".webp")),e.searchParams.set("width",1920),e.toString()):t}catch(e){return t}}const Ht=({item:t,src:i,srcset:r,sizes:o,isCoverElement:a})=>{const l=n(null);return s((()=>{var t;if(a){if(null===(t=l.current)||void 0===t||!t.complete)return l.current.addEventListener("load",Vt,{once:!0}),()=>{var t;null===(t=l.current)||void 0===t||t.removeEventListener("load",Vt,{once:!0})};Vt()}}),[]),e.createElement("img",{ref:l,src:Gt(i),srcSet:r,sizes:o,alt:t.name,fetchPriority:a?"high":"auto",loading:a?"eager":"lazy",style:{width:"100%",height:"100%"}})};Ht.propTypes={item:Ct.object.isRequired,src:Ct.string,srcset:Ct.string,sizes:Ct.string,isCoverElement:Ct.bool};const Kt=$t((t=>{var e;e=t,R.track("gallery.interaction",{elementid:"carousel",interactiontype:e}),Wt.send("interaction",{elementid:"carousel",interactiontype:e})}),200);function Xt(){Kt("wheel")}const Yt=a((({items:t,setActiveIndex:o,activeIndex:a,showSmartLoaders:c},u)=>{const d=n(null),h=n([]);h.current=null==t?void 0:t.map(((t,e)=>{var n,i;return null!==(n=null==h||null===(i=h.current)||void 0===i?void 0:i[e])&&void 0!==n?n:r()}));const[f,p]=i(),[m,v]=i(),g=n(a),y=n(!1);function b(){const e=function(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}(d.current)*(null==t?void 0:t.length)/100,n=Math.min(Math.trunc(e),(null==t?void 0:t.length)-1),i=g.current;"nav"!==i.source&&"external-nav"!==i.source?(y.current&&n!==i.index&&(y.current=!1),y.current||(n>(null==t?void 0:t.length)-1?o({index:(null==t?void 0:t.length)-1,source:"carousel"}):o({index:n,source:"carousel"}))):n===i.index?y.current=!0:y.current&&n!==i.index&&(y.current=!1,o({index:n,source:"carousel"}))}return l(u,(()=>({prev:()=>{o({index:Math.max(0,g.current.index-1),source:"carousel"})},next:()=>{o({index:Math.min((null==t?void 0:t.length)-1,g.current.index+1),source:"carousel"})}}))),s((()=>{const t=d.current;if(t)return t.addEventListener("scroll",b),()=>{t.removeEventListener("scroll",b)}}),[t]),s((()=>{var t;let e=null===(t=h.current)||void 0===t?void 0:t[a.index];if(e&&("nav"===a.source||"external-nav"===a.source)){const t=e.current,n=d.current.clientWidth/2,i=(null==t?void 0:t.clientWidth)/2,r=(null==t?void 0:t.offsetLeft)-n+i;d.current.scrollTo({left:r,behavior:"smooth"})}}),[a]),s((()=>{g.current=a,"nav"!==a.source&&"external-nav"!==a.source||(y.current=!1)}),[a]),e.createElement("ul",{className:"eko-carousel",ref:d,onScroll:b,onWheel:Xt,onTouchMove:function(t){v(t.targetTouches[0].clientX)},onTouchStart:function(t){p(t.targetTouches[0].clientX),v(null)},onTouchEnd:function(){m&&f&&(f-m>75||f-m<-75)&&Kt("swipe")}},null==t?void 0:t.map(((t,n)=>{const i=(null==t?void 0:t.cover)||(null==t?void 0:t.media),r=(null==i?void 0:i.url)||i;return e.createElement("li",{className:"eko-carousel-item",key:r+n,ref:h.current[n]},e.createElement(Ht,{item:t,src:r,srcset:null==i?void 0:i.srcset,sizes:null==i?void 0:i.sizes,isCoverElement:0===n}),c&&"image"!==t.type&&e.createElement("div",{className:"eko-smart-loading"},e.createElement("div",null),e.createElement("p",null,"Loading video experience")))})))}));function Qt(t){var e;return function(t){var e;return"eko.block.event"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)}(t)&&"GalleryBlock"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.blockType)}Yt.propTypes={items:Ct.array.isRequired,setActiveIndex:Ct.func.isRequired,activeIndex:Ct.object,showSmartLoaders:Ct.bool},Yt.displayName="CarouselLoop";const Jt="eko.project.invoke",Zt="eko.block.invoke";function te(t,e,n){var i;null!=t&&t.contentWindow&&(null==t||null===(i=t.contentWindow)||void 0===i||i.postMessage({target:"eko.embedapi",type:e,data:n},"*"))}function ee(t){return`#variantId=${encodeURIComponent(t)}`}const ne=a((({config:t,instanceId:r,setActiveItem:o,activeItem:a,variantId:c,smartGalleryLoaded:u,onLoad:d,forceMobile:h},f)=>{var p,m,g;const y=null!==(p=null===(m=t.options)||void 0===m?void 0:m.galleryEnv)&&void 0!==p?p:"",b=null===(g=t.__autoGenerated)||void 0===g||null===(g=g.publishItem)||void 0===g?void 0:g.id,k=function(t={}){let e="";return Object.entries(t).forEach((([t,n])=>{e+=`&${t}=${n}`})),e}(null==t?void 0:t.qp),w=function(t,e,n){return`https://${t}play.eko.com/embed?${n?`id=${n}`:`piid=${e}`}&nocover=true&galleryBlockMode=gallery&eko_pixel=true`}(y,b,r),x=n(null),_=n(null),T=n(!1),[I,E]=i(ee(c||"ekonovar")),[S,A]=i(w+k+I);let N;function M(){R.track("gallery.project.display"),d(),Wt.send("galleryloaded")}return l(f,(()=>({prev:()=>{te(null==_?void 0:_.current,Zt,{action:"onPrevModule"})},next:()=>{te(null==_?void 0:_.current,Zt,{action:"onNextModule"})}}))),s((()=>{T.current?te(null==_?void 0:_.current,Jt,{action:"updateVariant",args:{id:c}}):E(ee(c))}),[c]),s((()=>{te(null==_?void 0:_.current,Zt,{action:"updateActiveModule",args:{activeItemIndex:null==a?void 0:a.index,activeModuleIndex:null==a?void 0:a.step}})}),[a]),s((()=>{function t(t){if((function(t){var e;return"eko.project.blockstart"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)}(t)||function(t){var e,n;return"eko.project.started"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)&&(null==t||null===(n=t.data)||void 0===n||null===(n=n.data)||void 0===n?void 0:n.started)}(t))&&!T.current)return e=t.data.data.blockType,T.current=!0,void("GalleryBlock"===e?te(null==_?void 0:_.current,Zt,{action:"updateActiveModule",args:{activeItemIndex:null==a?void 0:a.index,activeModuleIndex:null==a?void 0:a.step}}):M());var e;if(T.current){if(function(t){var e;return Qt(t)&&"activeModuleChanged"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.name)}(t))return void function(t){const e=t.data.data.data.activeItemIndex,n=t.data.data.data.activeModuleIndex;e===(null==a?void 0:a.index)&&n===(null==a?void 0:a.step)||o({index:e,step:n,source:"carousel"})}(t);(function(t){var e;return Qt(t)&&"activeModuleChangeDone"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.name)})(t)&&!u&&M()}}return N=h||v()?"mobile":"desktop",function(t,e={}){window.addEventListener("message",t,e)}(t),()=>{!function(t,e={}){window.removeEventListener("message",t,e)}(t)}}),[a]),s((()=>{T.current||te(null==_?void 0:_.current,Jt,{action:"queryProjectStarted"})}),[a,u]),s((()=>{T.current=!1}),[t]),s((()=>{A(w+k+I)}),[I]),e.createElement("div",{className:"eko-smart-gallery-container "+(u?"":"eko-project-not-ready"),ref:x,"data-type":"smart-gallery","data-qp":k,"data-variant":c,"data-device":N},e.createElement("iframe",{allow:"autoplay; fullscreen",title:"eko gallery",src:S,style:{border:0},ref:_}))}));ne.propTypes={config:Ct.object.isRequired,instanceId:Ct.string,setActiveItem:Ct.func.isRequired,activeItem:Ct.object.isRequired,variantId:Ct.string,smartGalleryLoaded:Ct.bool,onLoad:Ct.func,forceMobile:Ct.bool},ne.displayName="SmartGallery";const ie=()=>e.createElement("style",{suppressHydrationWarning:!0},'.eko-gallery {\n --accentColorEko: #000;\n --primaryColorEko: #000;\n --backgroundColorEko: #25D7A2;\n --navItemsBackgroundColorEko: transparent;\n --navItemsBannerBackgroundColorEko: #EEEEEE;\n --carouselItemsBackgroundColorEko: transparent;\n --carouselInteractiveCoverBackgroundColorEko: transparent;\n --galleryGapEkoMobile: 12px;\n --galleryGapEkoDesktop: 12px;\n --galleryPaddingEkoMobile: 0;\n --galleryPaddingEkoDesktop: 0;\n --galleryMaxWidthEkoMobile: 100%;\n --galleryMaxWidthEkoDesktop: 900px;\n --galleryTransition: .8s cubic-bezier(.35, 0, 0, 1) 1.5s;\n --navBarPaddingEkoMobile: 0 0 0 20px;\n --navBarPaddingEkoDesktop: 0;\n --navItemsWidthEkoMobile: 80px;\n --navItemsWidthEkoDesktop: 80px;\n --navItemsHeightEkoMobile: 80px;\n --navItemsHeightEkoDesktop: 80px;\n --navItemsGapEkoMobile: 14px;\n --navItemsGapEkoDesktop: 14px;\n --navItemsRadiusEkoMobile: 8px;\n --navItemsRadiusEkoDesktop: 8px;\n --navItemsSelectedMarginEkoMobile: 3px;\n --navItemsSelectedMarginEkoDesktop: 3px;\n --navItemsSelectedThicknessEkoMobile: 3px;\n --navItemsSelectedThicknessEkoDesktop: 3px;\n --navItemsSelectedUnderlineRadiusEkoMobile: 100px;\n --navItemsSelectedUnderlineRadiusEkoDesktop: 100px;\n --navItemsObjectFitEkoMobile: cover;\n --navItemsObjectFitEkoDesktop: cover;\n --navMediaBadgeSizeEkoMobile: 22px;\n --navMediaBadgeSizeEkoDesktop: 22px;\n --navMediaBadgeMarginTopEkoMobile: 4px;\n --navMediaBadgeMarginTopEkoDesktop: 4px;\n --navMediaBadgeMarginRightEkoMobile: 4px;\n --navMediaBadgeMarginRightEkoDesktop: 4px;\n --carouselItemsAspectRatioEkoMobile: 1 / 1;\n --carouselItemsAspectRatioEkoDesktop: 1 / 1;\n --carouselItemsRadiusEkoMobile: 0px;\n --carouselItemsRadiusEkoDesktop: 12px;\n --carouselItemsObjectFitEkoMobile: cover;\n --carouselItemsObjectFitEkoDesktop: cover;\n --navBannerFontSizeEkoMobile: 12px;\n --navBannerFontSizeEkoDesktop: 12px;\n --navBannerFontLineHeightEkoMobile: 120%;\n --navBannerFontLineHeightEkoDesktop: 120%;\n --navBannerFontFamilyEkoMobile: inherit;\n --navBannerFontFamilyEkoDesktop: inherit;\n --navBannerFontWeightEkoMobile: 400;\n --navBannerFontWeightEkoDesktop: 400;\n --outerWidth: 0\n}\n\n.eko-gallery * {\n box-sizing: border-box\n}\n\n.eko-gallery ul,\n.eko-gallery li {\n padding: 0;\n text-indent: 0;\n list-style-type: none;\n font-size: 0;\n margin: 0\n}\n\n.eko-gallery button {\n border: none;\n padding: 0\n}\n\n.eko-gallery .eko-hidden {\n display: none !important\n}\n\n.eko-gallery .eko-not-visible {\n visibility: hidden !important\n}\n\n.eko-hidden-variant {\n display: none !important\n}\n\n.eko-sr-only {\n width: 1px;\n height: 1px;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden\n}\n\n.eko-sticky-top {\n position: sticky;\n top: 0\n}\n\n.eko-gallery .eko-nav {\n height: 100%;\n display: flex;\n align-items: start;\n align-self: start;\n flex-shrink: 0;\n scrollbar-width: none;\n -ms-overflow-style: none\n}\n\n.eko-gallery .eko-nav li {\n font-size: 0;\n position: relative;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n -webkit-box-pack: center;\n cursor: pointer\n}\n\n.eko-gallery .eko-nav li button {\n position: relative;\n background-color: transparent;\n border-radius: 0;\n line-height: 0;\n overflow: hidden;\n cursor: pointer\n}\n\n.eko-gallery .eko-nav li button img {\n background-color: var(--navItemsBackgroundColorEko);\n pointer-events: none\n}\n\n.eko-gallery .eko-nav li button .item-icon {\n position: absolute;\n top: 0;\n right: 0;\n width: 32px;\n height: 32px;\n transform: scale(.25);\n transform-origin: top right\n}\n\n.eko-gallery .eko-nav li button .item-icon span {\n display: block;\n width: 400%;\n height: 400%;\n position: absolute;\n top: 0;\n right: 0;\n background-position: top right;\n background-repeat: no-repeat;\n background-size: contain\n}\n\n.eko-gallery .eko-nav li .addons-container {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n font-size: 10px;\n line-height: 100%\n}\n\n.eko-gallery .eko-nav li .addons-container .thumb-label {\n width: 100%;\n background: var(--navItemsBannerBackgroundColorEko);\n padding: 4px;\n text-align: center;\n text-wrap: balance;\n color: var(--primaryColorEko)\n}\n\n.eko-gallery .eko-nav li .addons-container .step-indicator {\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 5px;\n padding: 6px\n}\n\n.eko-gallery .eko-nav li .addons-container .step-indicator span {\n width: 5px;\n height: 5px;\n border-radius: 100px;\n background: #fff;\n box-shadow: 0 0 3px #00000094\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label {\n position: relative\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .step-indicator {\n position: absolute;\n bottom: 0\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n align-content: center\n}\n\n.eko-gallery .eko-nav::-webkit-scrollbar {\n display: none\n}\n\n.eko-nav-container {\n display: flex\n}\n\n.eko-nav-container:has(.eko-nav.eko-not-visible) .eko-nav-arrow {\n display: none\n}\n\n.eko-nav-container {\n position: relative;\n opacity: 0;\n transition: opacity .15s ease-in\n}\n\n.eko-nav-container .eko-nav-arrow {\n width: 28px;\n height: 28px;\n position: absolute;\n display: none;\n justify-content: center;\n align-items: center;\n border-radius: 28px;\n background-color: #fff;\n box-shadow: 0 0 6px #0000001f;\n z-index: 1;\n bottom: 50%;\n opacity: 1;\n transition: opacity .15s ease-in;\n transform: translateY(50%);\n cursor: pointer\n}\n\n.eko-nav-container .eko-nav-arrow.eko-prev-nav-button svg,\n.eko-nav-container .eko-nav-arrow.eko-next-nav-button svg {\n padding: 1px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-prev-nav-button {\n left: 8px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-next-nav-button {\n right: 8px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-hidden-nav-button {\n opacity: 0;\n pointer-events: none\n}\n\n.eko-gallery .eko-nav {\n gap: var(--navItemsGapEkoMobile);\n padding: var(--navBarPaddingEkoMobile)\n}\n\n.eko-gallery .eko-nav li button img {\n width: var(--navItemsWidthEkoMobile);\n height: var(--navItemsHeightEkoMobile);\n object-fit: var(--navItemsObjectFitEkoMobile)\n}\n\n.eko-gallery .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoMobile);\n font-size: var(--navBannerFontSizeEkoMobile);\n line-height: var(--navBannerFontLineHeightEkoMobile);\n font-weight: var(--navBannerFontWeightEkoMobile)\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoMobile);\n height: var(--navItemsHeightEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li {\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile))\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoMobile);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoMobile);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoMobile) + var(--navItemsSelectedMarginEkoMobile));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoMobile) var(--accentColorEko)\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-nav {\n gap: var(--navItemsGapEkoDesktop);\n padding: var(--navBarPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li button img {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop);\n object-fit: var(--navItemsObjectFitEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoDesktop);\n font-size: var(--navBannerFontSizeEkoDesktop);\n line-height: var(--navBannerFontLineHeightEkoDesktop);\n font-weight: var(--navBannerFontWeightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li {\n border-radius: 0;\n padding: 0;\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop))\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true] {\n box-shadow: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoDesktop);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoDesktop);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoDesktop) var(--accentColorEko)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true]:after {\n content: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container .eko-nav-arrow {\n width: 30px;\n height: 30px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container .eko-nav-arrow.eko-desktop-arrows {\n display: flex\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container:has(.eko-desktop-nav-selected-underline) .eko-nav-arrow.eko-desktop-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop)) / 2))\n }\n}\n\n@media screen and (max-width: 767px) {\n .eko-gallery.eko-liquid-gallery .eko-nav-arrow.eko-mobile-arrows {\n display: flex\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container:has(.eko-mobile-nav-selected-underline) .eko-nav-arrow.eko-mobile-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile)) / 2))\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav {\n gap: var(--navItemsGapEkoDesktop);\n padding: var(--navBarPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li button img {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop);\n object-fit: var(--navItemsObjectFitEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoDesktop);\n font-size: var(--navBannerFontSizeEkoDesktop);\n line-height: var(--navBannerFontLineHeightEkoDesktop);\n font-weight: var(--navBannerFontWeightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li {\n border-radius: 0;\n padding: 0;\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop))\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true] {\n box-shadow: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoDesktop);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoDesktop);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoDesktop) var(--accentColorEko)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true]:after {\n content: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container .eko-nav-arrow {\n width: 30px;\n height: 30px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container .eko-nav-arrow.eko-desktop-arrows {\n display: flex\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container:has(.eko-desktop-nav-selected-underline) .eko-nav-arrow.eko-desktop-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop)) / 2))\n }\n}\n\n@media screen and (max-width: 767px) {\n .eko-gallery.eko-react-gallery.eko-mobile .eko-nav-arrow.eko-mobile-arrows {\n display: flex\n }\n\n .eko-gallery.eko-react-gallery.eko-mobile .eko-nav-container:has(.eko-mobile-nav-selected-underline) .eko-nav-arrow.eko-mobile-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile)) / 2))\n }\n}\n\n.eko-media-badge {\n display: none;\n width: var(--navMediaBadgeSizeEkoMobile);\n height: var(--navMediaBadgeSizeEkoMobile);\n background: #fff;\n align-items: center;\n justify-content: center;\n border-radius: 100%;\n box-shadow: 0 0 4px #00000014;\n place-content: center;\n position: absolute;\n top: var(--navMediaBadgeMarginTopEkoMobile);\n right: var(--navMediaBadgeMarginRightEkoMobile)\n}\n\n.eko-media-badge svg {\n width: 100%;\n height: 100%\n}\n\n.eko-media-badge svg path {\n fill: #000\n}\n\n.eko-nav li .eko-media-badge-mobile {\n display: flex\n}\n\nsvg.interactiveThumb {\n position: absolute;\n top: 3px;\n right: -2.5px;\n width: 100%;\n height: 100%\n}\n\nsvg.interactiveThumb.hand {\n animation: handAnim 2.5s linear infinite\n}\n\nsvg.interactiveThumb.beam {\n animation: beamAnim 2.5s linear infinite;\n transform-origin: 26% 40%;\n top: 0\n}\n\n@keyframes handAnim {\n 0% {\n transform: translateY(0)\n }\n\n 3% {\n transform: translateY(-4px)\n }\n\n 15% {\n transform: translateY(0)\n }\n\n to {\n transform: translateY(0)\n }\n}\n\n@keyframes beamAnim {\n 0% {\n transform: scale(1);\n opacity: 0\n }\n\n 5% {\n transform: scale(1.1);\n opacity: 1\n }\n\n 30% {\n transform: scale(1.4);\n opacity: 0\n }\n\n to {\n transform: scale(1.4);\n opacity: 0\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-media-badge {\n width: var(--navMediaBadgeSizeEkoDesktop);\n height: var(--navMediaBadgeSizeEkoDesktop);\n top: var(--navMediaBadgeMarginTopEkoDesktop);\n right: var(--navMediaBadgeMarginRightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .eko-media-badge-mobile {\n display: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .eko-media-badge-desktop {\n display: flex\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-media-badge {\n width: var(--navMediaBadgeSizeEkoDesktop);\n height: var(--navMediaBadgeSizeEkoDesktop);\n top: var(--navMediaBadgeMarginTopEkoDesktop);\n right: var(--navMediaBadgeMarginRightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .eko-media-badge-mobile {\n display: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .eko-media-badge-desktop {\n display: flex\n }\n}\n\n.eko-loading-animation {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n pointer-events: none\n}\n\n.eko-loading-animation.eko-show-loading-animation .eko-animated-bar {\n opacity: .6\n}\n\n.eko-loading-animation.eko-show-loading-animation .eko-animated-bar .eko-animated-bar-inner {\n animation: eko-loading-bar-inner-animation 2s infinite\n}\n\n.eko-loading-animation.eko-show-loading-text .eko-loading-text {\n opacity: 1\n}\n\n.eko-loading-animation .eko-animated-bar {\n width: 100%;\n height: 4px;\n background-color: #e8e8e8b2;\n opacity: 0;\n transition: opacity .5s;\n position: relative\n}\n\n.eko-loading-animation .eko-animated-bar .eko-animated-bar-inner {\n width: 150px;\n height: 100%;\n transform: translate(-150px);\n background-color: var(--accentColorEko, #4d484b);\n display: block;\n position: absolute\n}\n\n.eko-loading-animation .eko-loading-text {\n position: absolute;\n top: 10px;\n left: 50%;\n transform: translate(-50%);\n color: #656565;\n font-size: 12px;\n font-family: Bogle-Medium, sans-serif;\n font-weight: 500;\n opacity: 0;\n align-items: center;\n display: flex;\n gap: 2px;\n transition: opacity .5s\n}\n\n.eko-loading-animation .eko-loading-text-icon {\n opacity: 60%\n}\n\n.eko-loading-animation .eko-loading-text-icon svg {\n transform: translate(2px, 2px)\n}\n\n.eko-loading-animation .eko-loading-text-icon path {\n fill: var(--accentColorEko, #4d484b)\n}\n\n.eko-loading-animation.eko-hide-icon .eko-loading-text-icon {\n display: none\n}\n\n@keyframes eko-loading-bar-inner-animation {\n 0% {\n left: -350px\n }\n\n to {\n left: calc(100% + 350px)\n }\n}\n\n.eko-smart-loading {\n position: absolute;\n top: 8px;\n left: 50%;\n transform: translate(-50%);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px\n}\n\n.eko-smart-loading div {\n position: relative;\n width: 158px;\n height: 3px;\n background-color: #dcdcdc;\n overflow: hidden;\n opacity: 0;\n animation: eko-smart-loading-show-animation .2s linear forwards 1s\n}\n\n.eko-smart-loading div:after {\n content: "";\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: #878787;\n animation: eko-smart-loading-animation 2.5s ease-in-out infinite\n}\n\n.eko-smart-loading p {\n font-size: 11px;\n line-height: 120%;\n font-weight: 500;\n color: #6b6b6b;\n text-shadow: 0 0 2px white;\n opacity: 0;\n animation: eko-smart-loading-show-animation .2s linear forwards 3s\n}\n\n@keyframes eko-smart-loading-animation {\n 0% {\n transform: translate(-100%)\n }\n\n to {\n transform: translate(100%)\n }\n}\n\n@keyframes eko-smart-loading-show-animation {\n 0% {\n opacity: 0\n }\n\n to {\n opacity: 100%\n }\n}\n\n@media screen and (min-width: 450px) {\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-animated-bar {\n height: 6px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-loading-text {\n font-size: 16px;\n top: 12px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-loading-text-icon {\n transform: rotate(180deg)\n }\n}\n\n@media screen and (min-width: 450px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-animated-bar {\n height: 6px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-loading-text {\n font-size: 16px;\n top: 12px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-loading-text-icon {\n transform: rotate(180deg)\n }\n}\n\n.eko-carousel {\n width: 100%;\n white-space: nowrap;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-snap-type: x mandatory;\n overscroll-behavior-x: contain;\n align-self: start;\n align-items: start;\n display: flex;\n gap: 10px;\n scrollbar-width: none;\n -ms-overflow-style: none\n}\n\n.eko-carousel li {\n width: 100%;\n display: inline-block;\n position: relative;\n align-items: start;\n overflow: hidden;\n scroll-snap-align: center;\n scroll-snap-stop: always;\n flex-shrink: 0\n}\n\n.eko-carousel li img.eko-cover-image {\n position: relative;\n pointer-events: none;\n transition: opacity .5s;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: var(--carouselInteractiveCoverBackgroundColorEko)\n}\n\n.eko-carousel li iframe {\n position: absolute;\n border: none;\n top: 0;\n left: 0\n}\n\n.eko-carousel li img,\n.eko-carousel li video {\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n min-width: 0;\n background-color: var(--carouselItemsBackgroundColorEko)\n}\n\n.eko-carousel li[data-type=videoembed],\n.eko-carousel li[data-type=video] {\n cursor: pointer\n}\n\n.eko-carousel::-webkit-scrollbar {\n display: none\n}\n\n.eko-carousel:has(.zoomed) {\n overflow: hidden\n}\n\n.eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoMobile)\n}\n\n.eko-carousel li img.eko-desktop-cover-image {\n display: none\n}\n\n.eko-carousel li img.eko-mobile-cover-image {\n display: inline\n}\n\n.eko-carousel li img,\n.eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoMobile);\n object-fit: var(--carouselItemsObjectFitEkoMobile)\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-carousel li img,\n .eko-gallery.eko-liquid-gallery .eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop);\n object-fit: var(--carouselItemsObjectFitEkoDesktop)\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li img,\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop);\n object-fit: var(--carouselItemsObjectFitEkoDesktop)\n }\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-nav-container {\n display: none\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-carousel {\n overflow-x: hidden\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-mobile-carousel-scroll {\n overflow-x: auto\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-nav-container {\n display: none\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-carousel {\n overflow-x: hidden\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-carousel.eko-desktop-carousel-scroll {\n overflow-x: auto\n }\n\n .eko-gallery.eko-liquid-gallery.eko-mobile-embed-layout.eko-desktop-nav-layout .eko-nav-container {\n display: flex\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-nav-container {\n display: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-carousel {\n overflow-x: hidden\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-carousel.eko-desktop-carousel-scroll {\n overflow-x: auto\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-mobile-embed-layout.eko-desktop-nav-layout .eko-nav-container {\n display: flex\n }\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-bottom .eko-nav,\n.eko-gallery.eko-desktop-nav-layout.eko-desktop-nav-bottom .eko-nav,\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-top .eko-nav,\n.eko-gallery.eko-desktop-nav-layout.eko-desktop-nav-top .eko-nav {\n flex-direction: row;\n overflow-x: auto;\n overflow-y: hidden;\n max-width: 100%;\n margin: auto\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-bottom {\n flex-direction: column-reverse\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-top {\n flex-direction: column\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-bottom {\n flex-direction: column-reverse\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-top {\n flex-direction: column\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-bottom {\n flex-direction: column-reverse\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-top {\n flex-direction: column\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right {\n flex-direction: row-reverse\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left {\n flex-direction: row\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav {\n display: flex;\n flex-direction: column;\n justify-content: start;\n overflow-x: hidden;\n overflow-y: auto;\n gap: var(--navItemsGapEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container {\n display: flex;\n flex-shrink: 0\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button {\n top: 4px;\n left: auto\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n bottom: 4px\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n right: 50%;\n transform: translate(50%)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg {\n transform: rotate(90deg)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout .eko-carousel {\n align-self: start\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right {\n flex-direction: row-reverse\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left {\n flex-direction: row\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav {\n display: flex;\n flex-direction: column;\n justify-content: start;\n overflow-x: hidden;\n overflow-y: auto;\n gap: var(--navItemsGapEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container {\n display: flex;\n flex-shrink: 0\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button {\n top: 4px;\n left: auto\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n bottom: 4px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n right: 50%;\n transform: translate(50%)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg {\n transform: rotate(90deg)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout .eko-carousel {\n align-self: start\n }\n}\n\n.eko-gallery .eko-introButton {\n cursor: pointer;\n white-space: nowrap;\n pointer-events: auto;\n position: absolute;\n bottom: 100px;\n left: 50%;\n transform: translate(-50%);\n padding: 15px 20px\n}\n\n.eko-gallery .eko-introButton .eko-handContainer {\n display: none\n}\n\n.eko-gallery {\n position: relative;\n overflow: hidden;\n display: flex;\n flex-direction: row;\n justify-content: start;\n margin-inline-start: calc(-1 * var(--outerWidth));\n margin-inline-end: calc(-1 * var(--outerWidth));\n padding: var(--galleryPaddingEkoMobile);\n margin: auto;\n max-width: var(--galleryMaxWidthEkoMobile);\n transition: height var(--galleryTransition, .8s cubic-bezier(.35, 0, 0, 1) 1.5s), padding 0s;\n gap: var(--galleryGapEkoMobile)\n}\n\n.eko-gallery .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoMobile);\n overflow: hidden;\n flex: 1;\n display: flex;\n height: fit-content\n}\n\n.eko-gallery .eko-smart-gallery-container iframe {\n width: 100%;\n aspect-ratio: var(--carouselItemsAspectRatioEkoMobile)\n}\n\n.eko-gallery .eko-smart-gallery-container.eko-project-not-ready {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n opacity: 0;\n pointer-events: none;\n touch-action: none\n}\n\n.eko-gallery .eko-smart-gallery-container.eko-project-not-ready iframe {\n pointer-events: none;\n touch-action: none\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery {\n max-width: var(--galleryMaxWidthEkoDesktop);\n gap: var(--galleryGapEkoDesktop);\n padding: var(--galleryPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-smart-gallery-container iframe {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop)\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop {\n max-width: var(--galleryMaxWidthEkoDesktop);\n gap: var(--galleryGapEkoDesktop);\n padding: var(--galleryPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-smart-gallery-container iframe {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop)\n }\n}'),re=({layout:t,style:n})=>{let i={};return function(t={}){Object.keys(t).forEach((e=>{i[`--${e}Eko`]=t[e]}))}(n),function(t){var e,n;const r=(null==t||null===(e=t.desktop)||void 0===e?void 0:e.config)||{},o=(null==t||null===(n=t.mobile)||void 0===n?void 0:n.config)||{};Object.keys(r).forEach((t=>{"string"==typeof r[t]&&(i[`--${t}EkoDesktop`]=r[t])})),Object.keys(o).forEach((t=>{"string"==typeof o[t]&&(i[`--${t}EkoMobile`]=o[t])}))}(t),e.createElement("style",{key:{layout:t,style:n}},`.eko-gallery {${Object.keys(i).map((t=>`${t}: ${i[t]};`)).join("\n")}}`)};re.propTypes={layout:Ct.object,style:Ct.object},b("experiment");const oe=({activeVariantId:t,activeElementId:e,hasInteractive:i,experiments:r,publishItem:o})=>{const a="gallery",l=n(t),c=n(e),u=n(i),d=n(r),h=n(o);s((()=>{l.current=t,c.current=e,u.current=i,d.current=r,h.current=o}),[t,e,i,r,o]);const f={publishItemPacker:{tag:a,schema:"iglu:com.helloeko/publishitem/jsonschema/1-0-0",match:/.*/,getData:function(){const t=h.current;if(t){const e={};return null!=t&&t.id&&(e.id=t.id),null!=t&&t.productId&&(e.productid=t.productId),t.salesChannelId&&(e.saleschannelid=t.salesChannelId),null!=t&&t.salesChannelName&&(e.saleschannelname=t.salesChannelName),t.salesChannelType&&(e.saleschanneltype=t.salesChannelType),e.id?e:void 0}}},galleryInteractionPacker:{tag:a,schema:"iglu:com.helloeko/gallery_interaction/jsonschema/1-0-0",match:"gallery.interaction",getData:function({elementid:t,interactiontype:e}){return{elementid:String(t),interactiontype:e}}},galleryPacker:{tag:a,schema:"iglu:com.helloeko/gallery/jsonschema/1-0-2",match:/^gallery.*/,getData:function(){var t;return{activeitemid:c.current.toString(),activevariantid:l.current,hasinteractive:u.current,version:(null===(t=window.eko)||void 0===t||null===(t=t.gallery)||void 0===t?void 0:t.version)||""}}},activeVariantIdPacker:{tag:a,schema:"iglu:com.helloeko/variant/jsonschema/1-0-1",match:/.*/,getData:function(){if(l.current)return{id:l.current}}},experimentPacker:{tag:a,schema:"iglu:com.helloeko/experiment/jsonschema/1-0-3",match:/.*/,getData:function(){var t;let e=function(t){let e=null;if(t){const n=Math.floor(Date.now()/1e3);for(const i of t){if("deliverable"!==i.type)return;const t=Math.floor(new Date(i.startDate).getTime()/1e3),r=Math.floor(new Date(i.endDate).getTime()/1e3);!0===i.active&&n>t&&n<r&&(e=i)}}return e}(d.current);if(!e)return;let n={experimentid:e.id||"",experimentvariant:e.chosen||"pending decision",experimenttype:e.type||""},i=null===(t=e.targetDevice)||void 0===t?void 0:t.toLowerCase();return"mobile"!==i&&"notmobile"!==i||(n.experimenttargeting={device:i}),n}}};return s((()=>(Object.values(f).forEach((t=>{window.EkoAnalytics("registerContextPacker",t)})),()=>{window.EkoAnalytics("reset",a)})),[]),null};oe.propTypes={activeVariantId:Ct.string,activeElementId:Ct.number,hasInteractive:Ct.bool,experiments:Ct.array,publishItem:Ct.object};const se=({variantId:t,activeItem:i,hasInteractive:r,activeIndex:o,experiments:a,publishItem:l})=>{const c=n(!0);return s((()=>{c.current||t&&R.track("gallery.variant.change")}),[t]),s((()=>{c.current||R.track("gallery.element.change",{activeIndex:o})}),[o]),s((()=>{c.current||i&&null!=l&&l.id&&R.track("gallery.asset.view",{publishitemid:l.id,type:i.type,name:i.name})}),[i]),s((()=>{c.current=!1}),[]),e.createElement(oe,{activeVariantId:t||"ekonovar",activeElementId:o,hasInteractive:r,experiments:a,publishItem:l})};se.propTypes={variantId:Ct.string,activeItem:Ct.object,hasInteractive:Ct.bool,activeIndex:Ct.number,experiments:Ct.array,publishItem:Ct.object};const ae="eko-gallery-react";function le(t,e){var n,i,r;const o=(null==t||null===(n=t.variantMap)||void 0===n?void 0:n[e])||"ekonovar";return(null==t||null===(i=t.items)||void 0===i?void 0:i.find((t=>(null==t?void 0:t.variantId)===o)))||(null==t||null===(r=t.items)||void 0===r?void 0:r[0])}"undefined"!=typeof window&&(window.EkoAnalytics||(console.log("EkoAnalytics is not defined, initializing a no-op function..."),window.EkoAnalytics=()=>{}));const ce=a((({className:t,config:r,instanceId:o,variantId:a,activeItem:l={index:0,step:0},onEvent:c,forceMobile:u},d)=>{var h,f,p,m,v,g;const y=null!==(h=null===(f=r.options)||void 0===f?void 0:f.loadingTimeout)&&void 0!==h?h:12,b=null===(p=null===(m=r.options)||void 0===m?void 0:m.showCoverLoadAnimation)||void 0===p||p,[k,w]=i(le(r,a)),[x,_]=i({index:l.index,step:l.step,source:"external-nav"}),[T,I]=i(!1),[E,S]=i(!1),[A,N]=i("eko-desktop"),M=n(!1),F=n(!1),O=n(l),C=n(null),P=n(a);function D(){const t=u||window.innerWidth<768?"eko-mobile":"eko-desktop";N(t)}return F.current||(Wt.send("galleryinit"),F.current=!0),s((()=>{const t=P.current!==a;P.current=a,w(le(r,a)),t&&!M.current&&_({index:0,step:0,source:"external-nav"})}),[r,a]),s((()=>{if(c)return Wt.subscribe(c),()=>{Wt.unsubscribe()}}),[c]),s((()=>{M.current=E}),[E]),s((()=>{I(!1),S(!1);const t=setTimeout((()=>{M.current||(I(!0),R.track("gallery.load.timeout"))}),1e3*y);return()=>{clearTimeout(t)}}),[r]),s((()=>{D()}),[u]),s((()=>(window.addEventListener("resize",D),D(),()=>{window.removeEventListener("resize",D)})),[u]),s((()=>(window.EkoAnalytics("trackElementVisibility",C.current,ae),()=>{window.EkoAnalytics("stopTrackingElementVisibility",ae)})),[]),s((()=>{!("carousel"===(null==x?void 0:x.source)||"nav"===(null==x?void 0:x.source))||(null==x?void 0:x.index)===l.index&&(null==x?void 0:x.step)===l.step||Wt.send("activeitemchanged",{index:null==x?void 0:x.index,step:null==x?void 0:x.step})}),[x,l]),s((()=>{O.current.index===l.index&&O.current.step===l.step||(O.current=l,_({index:l.index,step:l.step,source:"external-nav"}))}),[l]),e.createElement(e.Fragment,null,e.createElement(ie,null),e.createElement(re,{layout:r.layout,style:r.style,forceMobile:u}),e.createElement(se,{variantId:a,activeItem:null==k||null===(v=k.items)||void 0===v?void 0:v[x.index],activeIndex:x.index,hasInteractive:E,experiments:r.experiments,publishItem:null==r||null===(g=r.__autoGenerated)||void 0===g?void 0:g.publishItem}),e.createElement("section",{className:`${`eko-gallery eko-react-gallery ${function(t){let e="";return["mobile","desktop"].forEach((n=>{var i,r;const o=null!==(i=null==t||null===(r=t[n])||void 0===r?void 0:r.type)&&void 0!==i?i:"nav";if(e+=`eko-${n}-${o}-layout `,"nav"===o){var s;const i="desktop"===n,r=(null==t||null===(s=t[n])||void 0===s||null===(s=s.config)||void 0===s?void 0:s.orientation)||(i?"left":"bottom");e+=`eko-${n}-nav-${r} `}})),e}(r.layout)} ${null!=t?t:""}`.trim()} ${A}`,"aria-controls":"main-content",ref:C},e.createElement(qt,{items:(null==k?void 0:k.items)||[],setActiveIndex:_,activeIndex:x.index,layout:r.layout,carouselMounted:E,forceMobile:u}),!E&&e.createElement(Yt,{ref:d,items:(null==k?void 0:k.items)||[],setActiveIndex:_,activeIndex:{index:x.index,source:null==x?void 0:x.source},showSmartLoaders:!T&&b}),!T&&e.createElement(ne,{ref:d,config:r,instanceId:o,activeItem:x,setActiveItem:_,variantId:null==k?void 0:k.variantId,smartGalleryLoaded:E,forceMobile:u,onLoad:function(){S(!0)}})))}));ce.propTypes={className:Ct.string,config:Ct.object.isRequired,instanceId:Ct.string,variantId:Ct.string,activeItem:Ct.object,onEvent:Ct.func,forceMobile:Ct.bool,onPrev:Ct.func,onNext:Ct.func},ce.displayName="EkoGallery";var ue=c(ce);const de=b("gallery-react");const he=a(((t,n)=>{var i;s((()=>(de.setDataStorage("gallery-react",{config:t.config}),window.eko=window.eko||{},window.eko.config=t.config,window.eko.gallery={version:"devops/4.0.13"},()=>{window.eko.config=void 0})),[t.config]);const{children:r,...o}=t;return void 0!==t.config?e.createElement(ue,q({ref:n},o,{key:null===(i=t.config.__autoGenerated)||void 0===i||null===(i=i.publishItem)||void 0===i?void 0:i.id})):r}));he.propTypes={className:Ct.string,config:Ct.object,variantId:Ct.string,onEvent:Ct.func,instanceId:Ct.string,children:Ct.node},he.displayName="EkoGalleryWrapper";var fe,pe,me,ve,ge,ye,be,ke,we,xe,_e,Te,Ie,Ee,Se,Ae,Ne,Me,Fe,Oe,Ce,Pe,De,Re,Le,Be,ze,We,je,Ue,$e,qe,Ve,Ge,He,Ke,Xe,Ye,Qe,Je,Ze,tn,en,nn,rn,on,sn,an,ln,cn,un,dn=c(he);const hn=1,fn=2,pn=4,mn=8,vn=16,gn=1,yn=4,bn=8,kn=16,wn="[",xn="[!",_n="]",Tn={},In=Symbol(),En=Symbol("filename"),Sn="http://www.w3.org/1999/xhtml",An="@attach",Nn=!0;var Mn=Array.isArray,Fn=Array.prototype.indexOf,On=Array.from,Cn=Object.defineProperty,Pn=Object.getOwnPropertyDescriptor,Dn=Object.getOwnPropertyDescriptors,Rn=Object.prototype,Ln=Array.prototype,Bn=Object.getPrototypeOf,zn=Object.isExtensible;function Wn(){var t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}}const jn=2,Un=4,$n=8,qn=1<<24,Vn=16,Gn=32,Hn=64,Kn=128,Xn=512,Yn=1024,Qn=2048,Jn=4096,Zn=8192,ti=16384,ei=32768,ni=65536,ii=1<<17,ri=1<<18,oi=1<<19,si=1<<20,ai=1<<25,li=32768,ci=1<<21,ui=1<<22,di=1<<23,hi=Symbol("$state"),fi=Symbol("legacy props"),pi=Symbol(""),mi=Symbol("proxy path"),vi=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},gi=3,yi=8;function bi(t){{const e=new Error(`lifecycle_outside_component\n\`${t}(...)\` can only be used during component initialisation\nhttps://svelte.dev/e/lifecycle_outside_component`);throw e.name="Svelte error",e}}var ki="font-weight: bold",wi="font-weight: normal";function xi(t){console.warn("%c[svelte] hydration_mismatch\n%cHydration failed because the initial UI does not match what was rendered on the server\nhttps://svelte.dev/e/hydration_mismatch",ki,wi)}function _i(t){console.warn(`%c[svelte] state_proxy_equality_mismatch\n%cReactive \`$state(...)\` proxies and the values they proxy have different identities. Because of this, comparisons with \`${t}\` will produce unexpected results\nhttps://svelte.dev/e/state_proxy_equality_mismatch`,ki,wi)}let Ti,Ii=!1;function Ei(t){Ii=t}function Si(t){if(null===t)throw xi(),Tn;return Ti=t}function Ai(){return Si($o(Ti))}function Ni(t){if(Ii){if(null!==$o(Ti))throw xi(),Tn;Ti=t}}function Mi(t=!0){for(var e=0,n=Ti;;){if(n.nodeType===yi){var i=n.data;if(i===_n){if(0===e)return n;e-=1}else i!==wn&&i!==xn||(e+=1)}var r=$o(n);t&&n.remove(),n=r}}function Fi(t){if(!t||t.nodeType!==yi)throw xi(),Tn;return t.data}function Oi(t){return t===this.v}function Ci(t){return e=t,n=this.v,!(e!=e?n==n:e!==n||null!==e&&"object"==typeof e||"function"==typeof e);var e,n}let Pi=!1;function Di(t,e){return t.label=e,Ri(t.v,e),t}function Ri(t,e){var n;return null==t||null===(n=t[mi])||void 0===n||n.call(t,e),t}function Li(t){const e=new Error,n=function(){const t=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const e=(new Error).stack;if(Error.stackTraceLimit=t,!e)return[];const n=e.split("\n"),i=[];for(let t=0;t<n.length;t++){const e=n[t],r=e.replaceAll("\\","/");if("Error"!==e.trim()){if(e.includes("validate_each_keys"))return[];r.includes("svelte/src/internal")||r.includes("node_modules/.vite")||i.push(e)}}return i}();return 0===n.length?null:(n.unshift("\n"),Cn(e,"stack",{value:n.join("\n")}),Cn(e,"name",{value:t}),e)}let Bi=null;function zi(t){Bi=t}let Wi=null;function ji(t){Wi=t}let Ui=null;function $i(t){Ui=t}function qi(t){return Hi("getContext").get(t)}function Vi(t,e=!1,n){Bi={p:Bi,i:!1,c:null,e:null,s:t,x:null,l:null},Bi.function=n,Ui=n}function Gi(t){var e,n,i=Bi,r=i.e;if(null!==r)for(var o of(i.e=null,r))ns(o);return i.i=!0,Bi=i.p,Ui=null!==(e=null===(n=Bi)||void 0===n?void 0:n.function)&&void 0!==e?e:null,{}}function Hi(t){var e,n;return null===Bi&&bi(t),null!==(n=(e=Bi).c)&&void 0!==n?n:e.c=new Map(function(t){let e=t.p;for(;null!==e;){const t=e.c;if(null!==t)return t;e=e.p}return null}(Bi)||void 0)}let Ki=[];function Xi(){var t=Ki;Ki=[],function(t){for(var e=0;e<t.length;e++)t[e]()}(t)}function Yi(t){if(0===Ki.length&&!fr){var e=Ki;queueMicrotask((()=>{e===Ki&&Xi()}))}Ki.push(t)}function Qi(){for(;Ki.length>0;)Xi()}const Ji=new WeakMap;function Zi(t){var e=Is;if(null===e)return xs.f|=di,t;if(t instanceof Error&&!Ji.has(t)&&Ji.set(t,function(t,e){var n,i;const r=Pn(t,"message");if(r&&!r.configurable)return;var o=Lo?" ":"\t",s=`\n${o}in ${(null===(n=e.fn)||void 0===n?void 0:n.name)||"<unknown>"}`,a=e.ctx;for(;null!==a;){var l;s+=`\n${o}in ${null===(l=a.function)||void 0===l?void 0:l[En].split("/").pop()}`,a=a.p}return{message:t.message+`\n${s}\n`,stack:null===(i=t.stack)||void 0===i?void 0:i.split("\n").filter((t=>!t.includes("svelte/src/internal"))).join("\n")}}(t,e)),e.f&ei)tr(t,e);else{if(!(e.f&Kn))throw!e.parent&&t instanceof Error&&er(t),t;e.b.error(t)}}function tr(t,e){for(;null!==e;){if(e.f&Kn)try{return void e.b.error(t)}catch(e){t=e}e=e.parent}throw t instanceof Error&&er(t),t}function er(t){const e=Ji.get(t);e&&(Cn(t,"message",{value:e.message}),Cn(t,"stack",{value:e.stack}))}const nr=-7169;function ir(t,e){t.f=t.f&nr|e}function rr(t){t.f&Xn||null===t.deps?ir(t,Yn):ir(t,Jn)}function or(t){if(null!==t)for(const e of t)e.f&jn&&e.f&li&&(e.f^=li,or(e.deps))}function sr(t,e,n){t.f&Qn?e.add(t):t.f&Jn&&n.add(t),or(t.deps),ir(t,Yn)}const ar=new Set;let lr=null,cr=null,ur=[],dr=null,hr=!1,fr=!1;var pr=new WeakMap,mr=new WeakMap,vr=new WeakMap,gr=new WeakMap,yr=new WeakMap,br=new WeakMap,kr=new WeakMap,wr=new WeakSet;class xr{constructor(){U(this,wr),$(this,"committed",!1),$(this,"current",new Map),$(this,"previous",new Map),W(this,pr,new Set),W(this,mr,new Set),W(this,vr,0),W(this,gr,0),W(this,yr,null),W(this,br,new Set),W(this,kr,new Set),$(this,"skipped_effects",new Set),$(this,"is_fork",!1)}is_deferred(){return this.is_fork||z(gr,this)>0}process(t){ur=[],this.apply();var e,n=[],i=[];for(const e of t)L(wr,this,_r).call(this,e,n,i);(this.is_fork||L(wr,this,Ir).call(this),this.is_deferred())?(L(wr,this,Tr).call(this,i),L(wr,this,Tr).call(this,n)):(lr=null,Mr(i),Mr(n),null===(e=z(yr,this))||void 0===e||e.resolve());cr=null}capture(t,e){var n;(e===In||this.previous.has(t)||this.previous.set(t,e),t.f&di)||(this.current.set(t,t.v),null===(n=cr)||void 0===n||n.set(t,t.v))}activate(){lr=this,this.apply()}deactivate(){lr===this&&(lr=null,cr=null)}flush(){if(this.activate(),ur.length>0){if(Sr(),null!==lr&&lr!==this)return}else 0===z(vr,this)&&this.process([]);this.deactivate()}discard(){for(const t of z(mr,this))t(this);z(mr,this).clear()}increment(t){j(vr,this,z(vr,this)+1),t&&j(gr,this,z(gr,this)+1)}decrement(t){j(vr,this,z(vr,this)-1),t&&j(gr,this,z(gr,this)-1),this.revive()}revive(){for(const t of z(br,this))z(kr,this).delete(t),ir(t,Qn),Cr(t);for(const t of z(kr,this))ir(t,Jn),Cr(t);this.flush()}oncommit(t){z(pr,this).add(t)}ondiscard(t){z(mr,this).add(t)}settled(){var t;return(null!==(t=z(yr,this))&&void 0!==t?t:j(yr,this,Wn())).promise}static ensure(){if(null===lr){const t=lr=new xr;ar.add(lr),fr||xr.enqueue((()=>{lr===t&&t.flush()}))}return lr}static enqueue(t){Yi(t)}apply(){}}function _r(t,e,n){t.f^=Yn;for(var i=t.first,r=null;null!==i;){var o=i.f,s=!!(o&(Gn|Hn));if(!(s&&!!(o&Yn)||!!(o&Zn)||this.skipped_effects.has(i))&&null!==i.fn){s?i.f^=Yn:null!==r&&o&(Un|$n|qn)?r.b.defer_effect(i):o&Un?e.push(i):Ls(i)&&(o&Vn&&z(br,this).add(i),Us(i));var a=i.first;if(null!==a){i=a;continue}}var l=i.parent;for(i=i.next;null===i&&null!==l;)l===r&&(r=null),i=l.next,l=l.parent}}function Tr(t){for(var e=0;e<t.length;e+=1)sr(t[e],z(br,this),z(kr,this))}function Ir(){if(0===z(gr,this)){for(const t of z(pr,this))t();z(pr,this).clear()}0===z(vr,this)&&L(wr,this,Er).call(this)}function Er(){if(ar.size>1){this.previous.clear();var t=cr,e=!0;for(const t of ar){if(t===this){e=!1;continue}const i=[];for(const[n,r]of this.current){if(t.current.has(n)){if(!e||r===t.current.get(n))continue;t.current.set(n,r)}i.push(n)}if(0===i.length)continue;const r=[...t.current.keys()].filter((t=>!this.current.has(t)));if(r.length>0){var n=ur;ur=[];const e=new Set,o=new Map;for(const t of i)Fr(t,r,e,o);if(ur.length>0){lr=t,t.apply();for(const e of ur)L(wr,t,_r).call(t,e,[],[]);t.deactivate()}ur=n}}lr=null,cr=t}this.committed=!0,ar.delete(this)}function Sr(){var t=ys;hr=!0;var e=new Set;try{var n=0;for(bs(!0);ur.length>0;){var i=xr.ensure();if(n++>1e3){if(Nn){var r=new Map;for(const t of i.current.keys())for(const[e,n]of null!==(o=t.updated)&&void 0!==o?o:[]){var o,s=r.get(e);s||(s={error:n.error,count:0},r.set(e,s)),s.count+=n.count}for(const t of r.values())t.error&&console.error(t.error)}Ar()}if(i.process(ur),bo.clear(),Nn)for(const t of i.current.keys())e.add(t)}}finally{hr=!1,bs(t),dr=null;for(const t of e)t.updated=null}}function Ar(){try{!function(){{const t=new Error("effect_update_depth_exceeded\nMaximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state\nhttps://svelte.dev/e/effect_update_depth_exceeded");throw t.name="Svelte error",t}}()}catch(t){Cn(t,"stack",{value:""}),tr(t,dr)}}let Nr=null;function Mr(t){var e=t.length;if(0!==e){for(var n=0;n<e;){var i,r=t[n++];if(!(r.f&(ti|Zn))&&Ls(r))if(Nr=new Set,Us(r),null===r.deps&&null===r.first&&null===r.nodes&&(null===r.teardown&&null===r.ac?hs(r):r.fn=null),(null===(i=Nr)||void 0===i?void 0:i.size)>0){bo.clear();for(const t of Nr){if(t.f&(ti|Zn))continue;const e=[t];let n=t.parent;for(;null!==n;)Nr.has(n)&&(Nr.delete(n),e.push(n)),n=n.parent;for(let t=e.length-1;t>=0;t--){const n=e[t];n.f&(ti|Zn)||Us(n)}}Nr.clear()}}Nr=null}}function Fr(t,e,n,i){if(!n.has(t)&&(n.add(t),null!==t.reactions))for(const r of t.reactions){const t=r.f;t&jn?Fr(r,e,n,i):t&(ui|Vn)&&!(t&Qn)&&Or(r,e,i)&&(ir(r,Qn),Cr(r))}}function Or(t,e,n){const i=n.get(t);if(void 0!==i)return i;if(null!==t.deps)for(const i of t.deps){if(e.includes(i))return!0;if(i.f&jn&&Or(i,e,n))return n.set(i,!0),!0}return n.set(t,!1),!1}function Cr(t){for(var e=dr=t;null!==e.parent;){var n=(e=e.parent).f;if(hr&&e===Is&&n&Vn&&!(n&ri))return;if(n&(Hn|Gn)){if(!(n&Yn))return;e.f^=Yn}}ur.push(e)}var Pr=ni|oi|Kn;var Dr=new WeakMap,Rr=new WeakMap,Lr=new WeakMap,Br=new WeakMap,zr=new WeakMap,Wr=new WeakMap,jr=new WeakMap,Ur=new WeakMap,$r=new WeakMap,qr=new WeakMap,Vr=new WeakMap,Gr=new WeakMap,Hr=new WeakMap,Kr=new WeakMap,Xr=new WeakMap,Yr=new WeakMap,Qr=new WeakMap,Jr=new WeakSet;class Zr{constructor(t,e,n){U(this,Jr),$(this,"parent",void 0),$(this,"is_pending",!1),W(this,Dr,void 0),W(this,Rr,Ii?Ti:null),W(this,Lr,void 0),W(this,Br,void 0),W(this,zr,void 0),W(this,Wr,null),W(this,jr,null),W(this,Ur,null),W(this,$r,null),W(this,qr,null),W(this,Vr,0),W(this,Gr,0),W(this,Hr,!1),W(this,Kr,new Set),W(this,Xr,new Set),W(this,Yr,null),W(this,Qr,function(t){let e,n=0,i=xo(0);return Di(i,"createSubscriber version"),()=>{Zo()&&(qs(i),rs((()=>(0===n&&(e=Hs((()=>t((()=>Ao(i)))))),n+=1,()=>{Yi((()=>{var t;n-=1,0===n&&(null===(t=e)||void 0===t||t(),e=void 0,Ao(i))}))}))))}}((()=>(j(Yr,this,xo(z(Vr,this))),Di(z(Yr,this),"$effect.pending()"),()=>{j(Yr,this,null)})))),j(Dr,this,t),j(Lr,this,e),j(Br,this,n),this.parent=Is.b,this.is_pending=!!z(Lr,this).pending,j(zr,this,ss((()=>{if(Is.b=this,Ii){const t=z(Rr,this);Ai();t.nodeType===yi&&t.data===xn?L(Jr,this,eo).call(this):(L(Jr,this,to).call(this),0===z(Gr,this)&&(this.is_pending=!1))}else{var t=L(Jr,this,no).call(this);try{j(Wr,this,ls((()=>n(t))))}catch(t){this.error(t)}z(Gr,this)>0?L(Jr,this,ro).call(this):this.is_pending=!1}return()=>{var t;null===(t=z(qr,this))||void 0===t||t.remove()}}),Pr)),Ii&&j(Dr,this,Ti)}defer_effect(t){sr(t,z(Kr,this),z(Xr,this))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!z(Lr,this).pending}update_pending_count(t){L(Jr,this,oo).call(this,t),j(Vr,this,z(Vr,this)+t),z(Yr,this)&&Eo(z(Yr,this),z(Vr,this))}get_effect_pending(){return z(Qr,this).call(this),qs(z(Yr,this))}error(t){var e=z(Lr,this).onerror;let n=z(Lr,this).failed;if(z(Hr,this)||!e&&!n)throw t;z(Wr,this)&&(ds(z(Wr,this)),j(Wr,this,null)),z(jr,this)&&(ds(z(jr,this)),j(jr,this,null)),z(Ur,this)&&(ds(z(Ur,this)),j(Ur,this,null)),Ii&&(Si(z(Rr,this)),function(t=1){if(Ii){for(var e=t,n=Ti;e--;)n=$o(n);Ti=n}}(),Si(Mi()));var i=!1,r=!1;const o=()=>{i?console.warn("%c[svelte] svelte_boundary_reset_noop\n%cA `<svelte:boundary>` `reset` function only resets the boundary the first time it is called\nhttps://svelte.dev/e/svelte_boundary_reset_noop",ki,wi):(i=!0,r&&function(){{const t=new Error("svelte_boundary_reset_onerror\nA `<svelte:boundary>` `reset` function cannot be called while an error is still being handled\nhttps://svelte.dev/e/svelte_boundary_reset_onerror");throw t.name="Svelte error",t}}(),xr.ensure(),j(Vr,this,0),null!==z(Ur,this)&&fs(z(Ur,this),(()=>{j(Ur,this,null)})),this.is_pending=this.has_pending_snippet(),j(Wr,this,L(Jr,this,io).call(this,(()=>(j(Hr,this,!1),ls((()=>z(Br,this).call(this,z(Dr,this)))))))),z(Gr,this)>0?L(Jr,this,ro).call(this):this.is_pending=!1)};var s=xs;try{Ts(null),r=!0,null==e||e(t,o),r=!1}catch(t){tr(t,z(zr,this)&&z(zr,this).parent)}finally{Ts(s)}n&&Yi((()=>{j(Ur,this,L(Jr,this,io).call(this,(()=>{xr.ensure(),j(Hr,this,!0);try{return ls((()=>{n(z(Dr,this),(()=>t),(()=>o))}))}catch(t){return tr(t,z(zr,this).parent),null}finally{j(Hr,this,!1)}})))}))}}function to(){try{j(Wr,this,ls((()=>z(Br,this).call(this,z(Dr,this)))))}catch(t){this.error(t)}}function eo(){const t=z(Lr,this).pending;t&&(j(jr,this,ls((()=>t(z(Dr,this))))),xr.enqueue((()=>{var t=L(Jr,this,no).call(this);j(Wr,this,L(Jr,this,io).call(this,(()=>(xr.ensure(),ls((()=>z(Br,this).call(this,t))))))),z(Gr,this)>0?L(Jr,this,ro).call(this):(fs(z(jr,this),(()=>{j(jr,this,null)})),this.is_pending=!1)})))}function no(){var t=z(Dr,this);return this.is_pending&&(j(qr,this,jo()),z(Dr,this).before(z(qr,this)),t=z(qr,this)),t}function io(t){var e=Is,n=xs,i=Bi;Es(z(zr,this)),Ts(z(zr,this)),zi(z(zr,this).ctx);try{return t()}catch(t){return Zi(t),null}finally{Es(e),Ts(n),zi(i)}}function ro(){const t=z(Lr,this).pending;null!==z(Wr,this)&&(j($r,this,document.createDocumentFragment()),z($r,this).append(z(qr,this)),gs(z(Wr,this),z($r,this))),null===z(jr,this)&&j(jr,this,ls((()=>t(z(Dr,this)))))}function oo(t){var e;if(this.has_pending_snippet()){if(j(Gr,this,z(Gr,this)+t),0===z(Gr,this)){this.is_pending=!1;for(const t of z(Kr,this))ir(t,Qn),Cr(t);for(const t of z(Xr,this))ir(t,Jn),Cr(t);z(Kr,this).clear(),z(Xr,this).clear(),z(jr,this)&&fs(z(jr,this),(()=>{j(jr,this,null)})),z($r,this)&&(z(Dr,this).before(z($r,this)),j($r,this,null))}}else this.parent&&L(Jr,e=this.parent,oo).call(e,t)}function so(t,e,n,i){const r=co;if(0!==n.length||0!==t.length){var o,s,a,l,c,u=lr,d=Is,h=(o=Is,s=xs,a=Bi,l=lr,c=Wi,function(t=!0){Es(o),Ts(s),zi(a),t&&(null==l||l.activate()),ji(c)});t.length>0?Promise.all(t).then((()=>{h();try{return f()}finally{null==u||u.deactivate(),ao()}})):f()}else i(e.map(r));function f(){Promise.all(n.map((t=>uo(t)))).then((t=>{h();try{i([...e.map(r),...t])}catch(t){d.f&ti||tr(t,d)}null==u||u.deactivate(),ao()})).catch((t=>{tr(t,d)}))}}function ao(){Es(null),Ts(null),zi(null),ji(null)}const lo=new Set;function co(t){var e=jn|Qn,n=null!==xs&&xs.f&jn?xs:null;null!==Is&&(Is.f|=oi);return{ctx:Bi,deps:null,effects:null,equals:Oi,f:e,fn:t,reactions:null,rv:0,v:In,wv:0,parent:null!=n?n:Is,ac:null}}function uo(t,e,n){let i=Is;null===i&&function(){{const t=new Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throw t.name="Svelte error",t}}();var r=i.b,o=void 0,s=xo(In);s.label=e;var a=!xs,l=new Map;return function(t){Jo(ui|oi,t,!0)}((()=>{var e=Wn();o=e.promise;try{Promise.resolve(t()).then(e.resolve,e.reject).then((()=>{n===lr&&n.committed&&n.deactivate(),ao()}))}catch(t){e.reject(t),ao()}var n=lr;if(a){var i,c=r.is_rendered();r.update_pending_count(1),n.increment(c),null===(i=l.get(n))||void 0===i||i.reject(vi),l.delete(n),l.set(n,e)}const u=(t,e=void 0)=>{if(n.activate(),e)e!==vi&&(s.f|=di,Eo(s,e));else{s.f&di&&(s.f^=di),Eo(s,t);for(const[t,e]of l){if(l.delete(t),t===n)break;e.reject(vi)}}a&&(r.update_pending_count(-1),n.decrement(c))};e.promise.then(u,(t=>u(null,t||"unknown")))})),ts((()=>{for(const t of l.values())t.reject(vi)})),s.f|=ui,new Promise((t=>{!function e(n){function i(){n===o?t(s):e(o)}n.then(i,i)}(o)}))}function ho(t){const e=co(t);return As(e),e}function fo(t){const e=co(t);return e.equals=Ci,e}function po(t){var e=t.effects;if(null!==e){t.effects=null;for(var n=0;n<e.length;n+=1)ds(e[n])}}let mo=[];function vo(t){var e,n=Is;Es(function(t){for(var e=t.parent;null!==e;){if(!(e.f&jn))return e.f&ti?null:e;e=e.parent}return null}(t));{let i=yo;ko(new Set);try{mo.includes(t)&&function(){{const t=new Error("derived_references_self\nA derived value cannot reference itself recursively\nhttps://svelte.dev/e/derived_references_self");throw t.name="Svelte error",t}}(),mo.push(t),t.f&=~li,po(t),e=zs(t)}finally{Es(n),ko(i),mo.pop()}}return e}function go(t){var e,n,i=vo(t);if(!t.equals(i)&&(t.wv=Rs(),(null===(e=lr)||void 0===e||!e.is_fork||null===t.deps)&&(t.v=i,null===t.deps)))return void ir(t,Yn);ks||(null!==cr?(Zo()||null!==(n=lr)&&void 0!==n&&n.is_fork)&&cr.set(t,i):rr(t))}let yo=new Set;const bo=new Map;function ko(t){yo=t}let wo=!1;function xo(t,e){return{f:0,v:t,reactions:null,equals:Oi,rv:0,wv:0}}function _o(t,e){const n=xo(t);return As(n),n}function To(t,e=!1,n=!0){const i=xo(t);return e||(i.equals=Ci),i}function Io(t,e,n=!1){var i;null!==xs&&(!_s||xs.f&ii)&&xs.f&(jn|Vn|ui|ii)&&(null===(i=Ss)||void 0===i||!i.includes(t))&&function(){{const t=new Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw t.name="Svelte error",t}}();let r=n?Fo(e):e;return Ri(r,t.label),Eo(t,r)}function Eo(t,e){if(!t.equals(e)){var n=t.v;ks?bo.set(t,e):bo.set(t,n),t.v=e;var i=xr.ensure();if(i.capture(t,n),null!==Is){var r,o,s;null!==(r=t.updated)&&void 0!==r||(t.updated=new Map);const e=(null!==(o=null===(s=t.updated.get(""))||void 0===s?void 0:s.count)&&void 0!==o?o:0)+1;if(t.updated.set("",{error:null,count:e}),e>5){const e=Li("updated at");if(null!==e){let n=t.updated.get(e.stack);n||(n={error:e,count:0},t.updated.set(e.stack,n)),n.count++}}}if(null!==Is&&(t.set_during_effect=!0),t.f&jn){const e=t;t.f&Qn&&vo(e),rr(e)}t.wv=Rs(),No(t,Qn),null!==Is&&Is.f&Yn&&!(Is.f&(Gn|Hn))&&(null===Fs?function(t){Fs=t}([t]):Fs.push(t)),!i.is_fork&&yo.size>0&&!wo&&So()}return e}function So(){wo=!1;var t=ys;bs(!0);const e=Array.from(yo);try{for(const t of e)t.f&Yn&&ir(t,Jn),Ls(t)&&Us(t)}finally{bs(t)}yo.clear()}function Ao(t){Io(t,t.v+1)}function No(t,e){var n=t.reactions;if(null!==n)for(var i=n.length,r=0;r<i;r++){var o=n[r],s=o.f;if(s&ii)yo.add(o);else{var a=!(s&Qn);if(a&&ir(o,e),s&jn){var l,c=o;null===(l=cr)||void 0===l||l.delete(c),s&li||(s&Xn&&(o.f|=li),No(c,Jn))}else a&&(s&Vn&&null!==Nr&&Nr.add(o),Cr(o))}}}const Mo=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function Fo(t){if("object"!=typeof t||null===t||hi in t)return t;const e=Bn(t);if(e!==Rn&&e!==Ln)return t;var n=new Map,i=Mn(t),r=_o(0),o=Ps,s=t=>{if(Ps===o)return t();var e=xs,n=Ps;Ts(null),Ds(o);var i=t();return Ts(e),Ds(n),i};i&&(n.set("length",_o(t.length)),t=new Proxy(t,{get(t,e,n){var i=Reflect.get(t,e,n);return Po.has(e)?function(...t){wo=!0;var e=i.apply(this,t);return So(),e}:i}}));var a="";let l=!1;function c(t){if(!l){l=!0,Di(r,`${a=t} version`);for(const[t,e]of n)Di(e,Oo(a,t));l=!1}}return new Proxy(t,{defineProperty(t,e,i){"value"in i&&!1!==i.configurable&&!1!==i.enumerable&&!1!==i.writable||function(){{const t=new Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw t.name="Svelte error",t}}();var r=n.get(e);return void 0===r?r=s((()=>{var t=_o(i.value);return n.set(e,t),"string"==typeof e&&Di(t,Oo(a,e)),t})):Io(r,i.value,!0),!0},deleteProperty(t,e){var i=n.get(e);if(void 0===i){if(e in t){const t=s((()=>_o(In)));n.set(e,t),Ao(r),Di(t,Oo(a,e))}}else Io(i,In),Ao(r);return!0},get(e,i,r){var o;if(i===hi)return t;if(i===mi)return c;var l=n.get(i),u=i in e;if(void 0===l&&(!u||null!==(o=Pn(e,i))&&void 0!==o&&o.writable)&&(l=s((()=>{var t=_o(Fo(u?e[i]:In));return Di(t,Oo(a,i)),t})),n.set(i,l)),void 0!==l){var d=qs(l);return d===In?void 0:d}return Reflect.get(e,i,r)},getOwnPropertyDescriptor(t,e){var i=Reflect.getOwnPropertyDescriptor(t,e);if(i&&"value"in i){var r=n.get(e);r&&(i.value=qs(r))}else if(void 0===i){var o=n.get(e),s=null==o?void 0:o.v;if(void 0!==o&&s!==In)return{enumerable:!0,configurable:!0,value:s,writable:!0}}return i},has(t,e){var i;if(e===hi)return!0;var r=n.get(e),o=void 0!==r&&r.v!==In||Reflect.has(t,e);if((void 0!==r||null!==Is&&(!o||null!==(i=Pn(t,e))&&void 0!==i&&i.writable))&&(void 0===r&&(r=s((()=>{var n=_o(o?Fo(t[e]):In);return Di(n,Oo(a,e)),n})),n.set(e,r)),qs(r)===In))return!1;return o},set(t,e,o,l){var c,u=n.get(e),d=e in t;if(i&&"length"===e)for(var h=o;h<u.v;h+=1){var f=n.get(h+"");void 0!==f?Io(f,In):h in t&&(f=s((()=>_o(In))),n.set(h+"",f),Di(f,Oo(a,h)))}void 0===u?(!d||null!==(c=Pn(t,e))&&void 0!==c&&c.writable)&&(Di(u=s((()=>_o(void 0))),Oo(a,e)),Io(u,Fo(o)),n.set(e,u)):(d=u.v!==In,Io(u,s((()=>Fo(o)))));var p=Reflect.getOwnPropertyDescriptor(t,e);if(null!=p&&p.set&&p.set.call(l,o),!d){if(i&&"string"==typeof e){var m=n.get("length"),v=Number(e);Number.isInteger(v)&&v>=m.v&&Io(m,v+1)}Ao(r)}return!0},ownKeys(t){qs(r);var e=Reflect.ownKeys(t).filter((t=>{var e=n.get(t);return void 0===e||e.v!==In}));for(var[i,o]of n)o.v===In||i in t||e.push(i);return e},setPrototypeOf(){!function(){{const t=new Error("state_prototype_fixed\nCannot set prototype of `$state` object\nhttps://svelte.dev/e/state_prototype_fixed");throw t.name="Svelte error",t}}()}})}function Oo(t,e){var n;return"symbol"==typeof e?`${t}[Symbol(${null!==(n=e.description)&&void 0!==n?n:""})]`:Mo.test(e)?`${t}.${e}`:/^\d+$/.test(e)?`${t}[${e}]`:`${t}['${e}']`}function Co(t){try{if(null!==t&&"object"==typeof t&&hi in t)return t[hi]}catch{}return t}const Po=new Set(["copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift"]);function Do(t,e,n=!0){try{t===e!=(Co(t)===Co(e))&&_i(n?"===":"!==")}catch{}return t===e===n}var Ro,Lo,Bo,zo;function Wo(){if(void 0===Ro){Ro=window,Lo=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,n=Text.prototype;Bo=Pn(e,"firstChild").get,zo=Pn(e,"nextSibling").get,zn(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),zn(n)&&(n.__t=void 0),t.__svelte_meta=null,function(){const t=Array.prototype,e=Array.__svelte_cleanup;e&&e();const{indexOf:n,lastIndexOf:i,includes:r}=t;t.indexOf=function(t,e){const i=n.call(this,t,e);if(-1===i)for(let n=null!=e?e:0;n<this.length;n+=1)if(Co(this[n])===t){_i("array.indexOf(...)");break}return i},t.lastIndexOf=function(t,e){const n=i.call(this,t,null!=e?e:this.length-1);if(-1===n)for(let n=0;n<=(null!=e?e:this.length-1);n+=1)if(Co(this[n])===t){_i("array.lastIndexOf(...)");break}return n},t.includes=function(t,e){const n=r.call(this,t,e);if(!n)for(let e=0;e<this.length;e+=1)if(Co(this[e])===t){_i("array.includes(...)");break}return n},Array.__svelte_cleanup=()=>{t.indexOf=n,t.lastIndexOf=i,t.includes=r}}()}}function jo(t=""){return document.createTextNode(t)}function Uo(t){return Bo.call(t)}function $o(t){return zo.call(t)}function qo(t,e){if(!Ii)return Uo(t);var n=Uo(Ti);if(null===n)n=Ti.appendChild(jo());else if(e&&n.nodeType!==gi){var i,r=jo();return null===(i=n)||void 0===i||i.before(r),Si(r),r}return Si(n),n}function Vo(t,e=!1){var n;if(!Ii){var i=Uo(t);return i instanceof Comment&&""===i.data?$o(i):i}if(e&&(null===(n=Ti)||void 0===n?void 0:n.nodeType)!==gi){var r,o=jo();return null===(r=Ti)||void 0===r||r.before(o),Si(o),o}return Ti}function Go(t,e=1,n=!1){var i;let r=Ii?Ti:t;for(var o;e--;)o=r,r=$o(r);if(!Ii)return r;if(n&&(null===(i=r)||void 0===i?void 0:i.nodeType)!==gi){var s,a=jo();if(null===r)null===(s=o)||void 0===s||s.after(a);else r.before(a);return Si(a),a}return Si(r),r}function Ho(t){t.textContent=""}function Ko(t,e){if(e){const e=document.body;t.autofocus=!0,Yi((()=>{document.activeElement===e&&t.focus()}))}}let Xo=!1;function Yo(t){var e=xs,n=Is;Ts(null),Es(null);try{return t()}finally{Ts(e),Es(n)}}function Qo(t){null===Is&&(null===xs&&function(t){{const e=new Error(`effect_orphan\n\`${t}\` can only be used inside an effect (e.g. during component initialisation)\nhttps://svelte.dev/e/effect_orphan`);throw e.name="Svelte error",e}}(t),function(){{const t=new Error("effect_in_unowned_derived\nEffect cannot be created inside a `$derived` value that was not itself created inside an effect\nhttps://svelte.dev/e/effect_in_unowned_derived");throw t.name="Svelte error",t}}()),ks&&function(t){{const e=new Error(`effect_in_teardown\n\`${t}\` cannot be used inside an effect cleanup function\nhttps://svelte.dev/e/effect_in_teardown`);throw e.name="Svelte error",e}}(t)}function Jo(t,e,n){for(var i=Is;null!==i&&i.fⅈ)i=i.parent;null!==i&&i.f&Zn&&(t|=Zn);var r={ctx:Bi,deps:null,nodes:null,f:t|Qn|Xn,first:null,fn:e,last:null,next:null,parent:i,b:i&&i.b,prev:null,teardown:null,wv:0,ac:null};if(r.component_function=Ui,n)try{Us(r),r.f|=ei}catch(t){throw ds(r),t}else null!==e&&Cr(r);var o=r;if(!n||null!==o.deps||null!==o.teardown||null!==o.nodes||o.first!==o.last||o.f&oi||(o=o.first,t&Vn&&t&ni&&null!==o&&(o.f|=ni)),null!==o&&(o.parent=i,null!==i&&function(t,e){var n=e.last;null===n?e.last=e.first=t:(n.next=t,t.prev=n,e.last=t)}(o,i),null!==xs&&xs.f&jn&&!(t&Hn))){var s,a=xs;(null!==(s=a.effects)&&void 0!==s?s:a.effects=[]).push(o)}return r}function Zo(){return null!==xs&&!_s}function ts(t){const e=Jo($n,null,!1);return ir(e,Yn),e.teardown=t,e}function es(t){Qo("$effect"),Cn(t,"name",{value:"$effect"});var e=Is.f;if(!!(xs||!(e&Gn)||e&ei))return ns(t);var n,i=Bi;(null!==(n=i.e)&&void 0!==n?n:i.e=[]).push(t)}function ns(t){return Jo(Un|si,t,!1)}function is(t){return Jo(Un,t,!1)}function rs(t,e=0){return Jo($n|e,t,!0)}function os(t,e=[],n=[],i=[]){so(i,e,n,(e=>{Jo($n,(()=>t(...e.map(qs))),!0)}))}function ss(t,e=0){var n=Jo(Vn|e,t,!0);return n.dev_stack=Wi,n}function as(t,e=0){var n=Jo(qn|e,t,!0);return n.dev_stack=Wi,n}function ls(t){return Jo(Gn|oi,t,!0)}function cs(t){var e=t.teardown;if(null!==e){const t=ks,n=xs;ws(!0),Ts(null);try{e.call(null)}finally{ws(t),Ts(n)}}}function us(t,e=!1){var n=t.first;for(t.first=t.last=null;null!==n;){const t=n.ac;null!==t&&Yo((()=>{t.abort(vi)}));var i=n.next;n.f&Hn?n.parent=null:ds(n,e),n=i}}function ds(t,e=!0){var n=!1;(e||t.f&ri)&&null!==t.nodes&&null!==t.nodes.end&&(!function(t,e){for(;null!==t;){var n=t===e?null:$o(t);t.remove(),t=n}}(t.nodes.start,t.nodes.end),n=!0),us(t,e&&!n),js(t,0),ir(t,ti);var i=t.nodes&&t.nodes.t;if(null!==i)for(const t of i)t.stop();cs(t);var r=t.parent;null!==r&&null!==r.first&&hs(t),t.component_function=null,t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=null}function hs(t){var e=t.parent,n=t.prev,i=t.next;null!==n&&(n.next=i),null!==i&&(i.prev=n),null!==e&&(e.first===t&&(e.first=i),e.last===t&&(e.last=n))}function fs(t,e,n=!0){var i=[];ps(t,i,!0);var r=()=>{n&&ds(t),e&&e()},o=i.length;if(o>0){var s=()=>--o||r();for(var a of i)a.out(s)}else r()}function ps(t,e,n){if(!(t.f&Zn)){t.f^=Zn;var i=t.nodes&&t.nodes.t;if(null!==i)for(const t of i)(t.is_global||n)&&e.push(t);for(var r=t.first;null!==r;){var o=r.next;ps(r,e,!!(!!(r.f&ni)||!!(r.f&Gn)&&!!(t.f&Vn))&&n),r=o}}}function ms(t){vs(t,!0)}function vs(t,e){if(t.f&Zn){t.f^=Zn,t.f&Yn||(ir(t,Qn),Cr(t));for(var n=t.first;null!==n;){var i=n.next;vs(n,!!(!!(n.f&ni)||!!(n.f&Gn))&&e),n=i}var r=t.nodes&&t.nodes.t;if(null!==r)for(const t of r)(t.is_global||e)&&t.in()}}function gs(t,e){if(t.nodes)for(var n=t.nodes.start,i=t.nodes.end;null!==n;){var r=n===i?null:$o(n);e.append(n),n=r}}let ys=!1;function bs(t){ys=t}let ks=!1;function ws(t){ks=t}let xs=null,_s=!1;function Ts(t){xs=t}let Is=null;function Es(t){Is=t}let Ss=null;function As(t){null!==xs&&(null===Ss?Ss=[t]:Ss.push(t))}let Ns=null,Ms=0,Fs=null;let Os=1,Cs=0,Ps=Cs;function Ds(t){Ps=t}function Rs(){return++Os}function Ls(t){var e=t.f;if(e&Qn)return!0;if(e&jn&&(t.f&=~li),e&Jn){for(var n=t.deps,i=n.length,r=0;r<i;r++){var o=n[r];if(Ls(o)&&go(o),o.wv>t.wv)return!0}e&Xn&&null===cr&&ir(t,Yn)}return!1}function Bs(t,e,n=!0){var i,r=t.reactions;if(null!==r&&(null===(i=Ss)||void 0===i||!i.includes(t)))for(var o=0;o<r.length;o++){var s=r[o];s.f&jn?Bs(s,e,!1):e===s&&(n?ir(s,Qn):s.f&Yn&&ir(s,Jn),Cr(s))}}function zs(t){var e=Ns,n=Ms,i=Fs,r=xs,o=Ss,s=Bi,a=_s,l=Ps,c=t.f;Ns=null,Ms=0,Fs=null,xs=c&(Gn|Hn)?null:t,Ss=null,zi(t.ctx),_s=!1,Ps=++Cs,null!==t.ac&&(Yo((()=>{t.ac.abort(vi)})),t.ac=null);try{t.f|=ci;var u=(0,t.fn)(),d=t.deps;if(null!==Ns){var h;if(js(t,Ms),null!==d&&Ms>0)for(d.length=Ms+Ns.length,h=0;h<Ns.length;h++)d[Ms+h]=Ns[h];else t.deps=d=Ns;if(Zo()&&t.f&Xn)for(h=Ms;h<d.length;h++){var f,p;(null!==(p=(f=d[h]).reactions)&&void 0!==p?p:f.reactions=[]).push(t)}}else null!==d&&Ms<d.length&&(js(t,Ms),d.length=Ms);if(!(null===Fs||_s||null===d||t.f&(jn|Jn|Qn)))for(h=0;h<Fs.length;h++)Bs(Fs[h],t);return null!==r&&r!==t&&(Cs++,null!==Fs&&(null===i?i=Fs:i.push(...Fs))),t.f&di&&(t.f^=di),u}catch(t){return Zi(t)}finally{t.f^=ci,Ns=e,Ms=n,Fs=i,xs=r,Ss=o,zi(s),_s=a,Ps=l}}function Ws(t,e){let n=e.reactions;if(null!==n){var i=Fn.call(n,t);if(-1!==i){var r=n.length-1;0===r?n=e.reactions=null:(n[i]=n[r],n.pop())}}if(null===n&&e.f&jn&&(null===Ns||!Ns.includes(e))){var o=e;o.f&Xn&&(o.f^=Xn,o.f&=~li),rr(o),po(o),js(o,0)}}function js(t,e){var n=t.deps;if(null!==n)for(var i=e;i<n.length;i++)Ws(t,n[i])}function Us(t){var e=t.f;if(!(e&ti)){ir(t,Yn);var n=Is,i=ys;Is=t,ys=!0;var r,o=Ui;$i(t.component_function);var s=Wi;ji(null!==(r=t.dev_stack)&&void 0!==r?r:Wi);try{e&(Vn|qn)?function(t){for(var e=t.first;null!==e;){var n=e.next;e.f&Gn||ds(e),e=n}}(t):us(t),cs(t);var a=zs(t);t.teardown="function"==typeof a?a:null,t.wv=Os,Nn&&Pi&&t.f&Qn&&t.deps}finally{ys=i,Is=n,$i(o),ji(s)}}}async function $s(){await Promise.resolve(),function(){var t=fr;fr=!0;try{for(;;){var e;if(Qi(),0===ur.length&&(null===(e=lr)||void 0===e||e.flush(),0===ur.length))return void(dr=null);Sr()}}finally{fr=t}}()}function qs(t){var e,n,i=!!(t.f&jn);if(null!==xs&&!_s&&!(null!==Is&&!!(Is.f&ti)||null!==(n=Ss)&&void 0!==n&&n.includes(t))){var r=xs.deps;if(xs.f&ci)t.rv<Cs&&(t.rv=Cs,null===Ns&&null!==r&&r[Ms]===t?Ms++:null===Ns?Ns=[t]:Ns.includes(t)||Ns.push(t));else{var o,s;(null!==(s=(o=xs).deps)&&void 0!==s?s:o.deps=[]).push(t);var a=t.reactions;null===a?t.reactions=[xs]:a.includes(xs)||a.push(xs)}}if(lo.delete(t),ks&&bo.has(t))return bo.get(t);if(i){var l=t;if(ks){var c=l.v;return(l.f&Yn||null===l.reactions)&&!Gs(l)||(c=vo(l)),bo.set(l,c),c}var u=!(l.f&Xn)&&!_s&&null!==xs&&(ys||!!(xs.f&Xn)),d=null===l.deps;Ls(l)&&(u&&(l.f|=Xn),go(l)),u&&!d&&Vs(l)}if(null!==(e=cr)&&void 0!==e&&e.has(t))return cr.get(t);if(t.f&di)throw t.v;return t.v}function Vs(t){if(null!==t.deps){t.f|=Xn;for(const n of t.deps){var e;(null!==(e=n.reactions)&&void 0!==e?e:n.reactions=[]).push(t),n.f&jn&&!(n.f&Xn)&&Vs(n)}}}function Gs(t){if(t.v===In)return!0;if(null===t.deps)return!1;for(const e of t.deps){if(bo.has(e))return!0;if(e.f&jn&&Gs(e))return!0}return!1}function Hs(t){var e=_s;try{return _s=!0,t()}finally{_s=e}}const Ks=new Set,Xs=new Set;function Ys(t,e,n,i={}){function r(t){if(i.capture||ta.call(e,t),!t.cancelBubble)return Yo((()=>null==n?void 0:n.call(this,t)))}return t.startsWith("pointer")||t.startsWith("touch")||"wheel"===t?Yi((()=>{e.addEventListener(t,r,i)})):e.addEventListener(t,r,i),r}function Qs(t,e,n,i,r){var o={capture:i,passive:r},s=Ys(t,e,n,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&ts((()=>{e.removeEventListener(t,s,o)}))}function Js(t){for(var e=0;e<t.length;e++)Ks.add(t[e]);for(var n of Xs)n(t)}let Zs=null;function ta(t){var e,n=this,i=n.ownerDocument,r=t.type,o=(null===(e=t.composedPath)||void 0===e?void 0:e.call(t))||[],s=o[0]||t.target;Zs=t;var a=0,l=Zs===t&&t.__root;if(l){var c=o.indexOf(l);if(-1!==c&&(n===document||n===window))return void(t.__root=n);var u=o.indexOf(n);if(-1===u)return;c<=u&&(a=c)}if((s=o[a]||t.target)!==n){Cn(t,"currentTarget",{configurable:!0,get:()=>s||i});var d=xs,h=Is;Ts(null),Es(null);try{for(var f,p=[];null!==s;){var m=s.assignedSlot||s.parentNode||s.host||null;try{var v=s["__"+r];null==v||s.disabled&&t.target!==s||v.call(s,t)}catch(t){f?p.push(t):f=t}if(t.cancelBubble||m===n||null===m)break;s=m}if(f){for(let t of p)queueMicrotask((()=>{throw t}));throw f}}finally{t.__root=n,delete t.currentTarget,Ts(d),Es(h)}}}function ea(t,e){var n=Is;null===n.nodes&&(n.nodes={start:t,end:e,a:null,t:null})}function na(t,e){var n,i=!!(1&e),r=!!(2&e),o=!t.startsWith("<!>");return()=>{if(Ii)return ea(Ti,null),Ti;var e,s;void 0===n&&(e=o?t:"<!>"+t,(s=document.createElement("template")).innerHTML=e.replaceAll("<!>","\x3c!----\x3e"),n=s.content,i||(n=Uo(n)));var a=r||Lo?document.importNode(n,!0):n.cloneNode(!0);i?ea(Uo(a),a.lastChild):ea(a,a);return a}}function ia(){if(Ii)return ea(Ti,null),Ti;var t=document.createDocumentFragment(),e=document.createComment(""),n=jo();return t.append(e,n),ea(e,n),t}function ra(t,e){if(Ii){var n=Is;return n.f&ei&&null!==n.nodes.end||(n.nodes.end=Ti),void Ai()}null!==t&&t.before(e)}function oa(t){return t.endsWith("capture")&&"gotpointercapture"!==t&&"lostpointercapture"!==t}const sa=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function aa(t){return sa.includes(t)}const la={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function ca(t){var e;return t=t.toLowerCase(),null!==(e=la[t])&&void 0!==e?e:t}const ua=["touchstart","touchmove"];function da(t,e){var n,i=null==e?"":"object"==typeof e?e+"":e;i!==(null!==(n=t.__t)&&void 0!==n?n:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function ha(t,e){return ma(t,e)}function fa(t,e){var n;Wo(),e.intro=null!==(n=e.intro)&&void 0!==n&&n;const i=e.target,r=Ii,o=Ti;try{for(var s=Uo(i);s&&(s.nodeType!==yi||s.data!==wn);)s=$o(s);if(!s)throw Tn;Ei(!0),Si(s);const n=ma(t,{...e,anchor:s});return Ei(!1),n}catch(n){if(n instanceof Error&&n.message.split("\n").some((t=>t.startsWith("https://svelte.dev/e/"))))throw n;return n!==Tn&&console.warn("Failed to hydrate: ",n),!1===e.recover&&function(){{const t=new Error("hydration_failed\nFailed to hydrate the application\nhttps://svelte.dev/e/hydration_failed");throw t.name="Svelte error",t}}(),Wo(),Ho(i),Ei(!1),ha(t,e)}finally{Ei(r),Si(o)}}const pa=new Map;function ma(t,{target:e,anchor:n,props:i={},events:r,context:o,intro:s=!0}){Wo();var a=new Set,l=t=>{for(var n=0;n<t.length;n++){var i=t[n];if(!a.has(i)){a.add(i);var r=(s=i,ua.includes(s));e.addEventListener(i,ta,{passive:r});var o=pa.get(i);void 0===o?(document.addEventListener(i,ta,{passive:r}),pa.set(i,1)):pa.set(i,o+1)}}var s};l(On(Ks)),Xs.add(l);var c=void 0,u=function(t){xr.ensure();const e=Jo(Hn|oi,t,!0);return(t={})=>new Promise((n=>{t.outro?fs(e,(()=>{ds(e),n(void 0)})):(ds(e),n(void 0))}))}((()=>{var s=null!=n?n:e.appendChild(jo());return function(t,e,n){new Zr(t,e,n)}(s,{pending:()=>{}},(e=>{o&&(Vi({}),Bi.c=o);if(r&&(i.$$events=r),Ii&&ea(e,null),c=t(e,i)||{},Ii&&(Is.nodes.end=Ti,null===Ti||Ti.nodeType!==yi||Ti.data!==_n))throw xi(),Tn;o&&Gi()})),()=>{for(var t of a){e.removeEventListener(t,ta);var i=pa.get(t);0==--i?(document.removeEventListener(t,ta),pa.delete(t)):pa.set(t,i)}var r;(Xs.delete(l),s!==n)&&(null===(r=s.parentNode)||void 0===r||r.removeChild(s))}}));return va.set(c,u),c}let va=new WeakMap;function ga(t,e){const n=va.get(t);return n?(va.delete(t),n(e)):(hi in t?console.warn("%c[svelte] state_proxy_unmount\n%cTried to unmount a state proxy, rather than a component\nhttps://svelte.dev/e/state_proxy_unmount",ki,wi):console.warn("%c[svelte] lifecycle_double_unmount\n%cTried to unmount a component that was not mounted\nhttps://svelte.dev/e/lifecycle_double_unmount",ki,wi),Promise.resolve())}class ya{anchor;#t=new Map;#e=new Map;#n=new Map;#i=new Set;#r=!0;constructor(t,e=!0){this.anchor=t,this.#r=e}#o=()=>{var t=lr;if(this.#t.has(t)){var e=this.#t.get(t),n=this.#e.get(e);if(n)ms(n),this.#i.delete(e);else{var i=this.#n.get(e);i&&(this.#e.set(e,i.effect),this.#n.delete(e),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),n=i.effect)}for(const[e,n]of this.#t){if(this.#t.delete(e),e===t)break;const i=this.#n.get(n);i&&(ds(i.effect),this.#n.delete(n))}for(const[t,i]of this.#e){if(t===e||this.#i.has(t))continue;const r=()=>{if(Array.from(this.#t.values()).includes(t)){var e=document.createDocumentFragment();gs(i,e),e.append(jo()),this.#n.set(t,{effect:i,fragment:e})}else ds(i);this.#i.delete(t),this.#e.delete(t)};this.#r||!n?(this.#i.add(t),fs(i,r,!1)):r()}}};#s=t=>{this.#t.delete(t);const e=Array.from(this.#t.values());for(const[t,n]of this.#n)e.includes(t)||(ds(n.effect),this.#n.delete(t))};ensure(t,e){var n=lr;!e||this.#e.has(t)||this.#n.has(t)||this.#e.set(t,ls((()=>e(this.anchor)))),this.#t.set(n,t),Ii&&(this.anchor=Ti),this.#o()}}{let t=function(t){if(!(t in globalThis)){let e;Object.defineProperty(globalThis,t,{configurable:!0,get:()=>{if(void 0!==e)return e;!function(t){{const e=new Error(`rune_outside_svelte\nThe \`${t}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files\nhttps://svelte.dev/e/rune_outside_svelte`);throw e.name="Svelte error",e}}(t)},set:t=>{e=t}})}};t("$state"),t("$effect"),t("$derived"),t("$inspect"),t("$props"),t("$bindable")}var ba,ka=new Map;function wa(t,e,n=!1){Ii&&Ai();var i=new ya(t);function r(e,n){if(Ii){if(e===(Fi(t)===xn)){var r=Mi();return Si(r),i.anchor=r,Ei(!1),i.ensure(e,n),void Ei(!0)}}i.ensure(e,n)}ss((()=>{var t=!1;e(((e,n=!0)=>{t=!0,r(n,e)})),t||r(!1,null)}),n?ni:0)}function xa(t,e){return e}function _a(t,e=!0){for(var n=0;n<t.length;n++)ds(t[n],e)}function Ta(t,e,n,i,r,o=null){var s=t,a=new Map;if(!!(e&pn)){var l=t;s=Ii?Si(Uo(l)):l.appendChild(jo())}Ii&&Ai();var c,u=null,d=fo((()=>{var t=n();return Mn(t)?t:null==t?[]:On(t)})),h=!0;function f(){m.fallback=u,function(t,e,n,i,r){var o,s,a,l,c,u=!!(i&mn),d=e.length,h=t.items,f=t.effect.first,p=null,m=[],v=[];if(u)for(c=0;c<d;c+=1){var g,y;if(a=r(e[c],c),!((l=h.get(a).e).f&ai))null===(g=l.nodes)||void 0===g||null===(g=g.a)||void 0===g||g.measure(),(null!==(y=s)&&void 0!==y?y:s=new Set).add(l)}for(c=0;c<d;c+=1){if(a=r(e[c],c),l=h.get(a).e,null!==t.outrogroups)for(const e of t.outrogroups)e.pending.delete(l),e.done.delete(l);if(l.f&ai){if(l.f^=ai,l!==f){var b=p?p.next:f;l===t.effect.last&&(t.effect.last=l.prev),l.prev&&(l.prev.next=l.next),l.next&&(l.next.prev=l.prev),Sa(t,p,l),Sa(t,l,b),Ea(l,b,n),m=[],v=[],f=(p=l).next;continue}Ea(l,null,n)}var k,w;if(l.f&Zn)if(ms(l),u)null===(k=l.nodes)||void 0===k||null===(k=k.a)||void 0===k||k.unfix(),(null!==(w=s)&&void 0!==w?w:s=new Set).delete(l);if(l!==f){if(void 0!==o&&o.has(l)){if(m.length<v.length){var x,_=v[0];p=_.prev;var T=m[0],I=m[m.length-1];for(x=0;x<m.length;x+=1)Ea(m[x],_,n);for(x=0;x<v.length;x+=1)o.delete(v[x]);Sa(t,T.prev,I.next),Sa(t,p,T),Sa(t,I,_),f=_,p=I,c-=1,m=[],v=[]}else o.delete(l),Ea(l,f,n),Sa(t,l.prev,l.next),Sa(t,l,null===p?t.effect.first:p.next),Sa(t,p,l),p=l;continue}for(m=[],v=[];null!==f&&f!==l;){var E;(null!==(E=o)&&void 0!==E?E:o=new Set).add(f),v.push(f),f=f.next}if(null===f)continue}l.f&ai||m.push(l),p=l,f=l.next}if(null!==t.outrogroups){for(const e of t.outrogroups){var S;if(0===e.pending.size)_a(On(e.done)),null===(S=t.outrogroups)||void 0===S||S.delete(e)}0===t.outrogroups.size&&(t.outrogroups=null)}if(null!==f||void 0!==o){var A=[];if(void 0!==o)for(l of o)l.f&Zn||A.push(l);for(;null!==f;)f.f&Zn||f===t.fallback||A.push(f),f=f.next;var N=A.length;if(N>0){var M=i&pn&&0===d?n:null;if(u){for(c=0;c<N;c+=1){var F;null===(F=A[c].nodes)||void 0===F||null===(F=F.a)||void 0===F||F.measure()}for(c=0;c<N;c+=1){var O;null===(O=A[c].nodes)||void 0===O||null===(O=O.a)||void 0===O||O.fix()}}!function(t,e,n){for(var i,r=e.length,o=e.length,s=0;s<r;s++){let n=e[s];fs(n,(()=>{if(i){if(i.pending.delete(n),i.done.add(n),0===i.pending.size){var e=t.outrogroups;_a(On(i.done)),e.delete(i),0===e.size&&(t.outrogroups=null)}}else o-=1}),!1)}if(0===o){var a=null!==n;if(a){var l=n,c=l.parentNode;Ho(c),c.append(l),t.items.clear()}_a(e,!a)}else{var u;i={pending:new Set(e),done:new Set},(null!==(u=t.outrogroups)&&void 0!==u?u:t.outrogroups=new Set).add(i)}}(t,A,M)}}u&&Yi((()=>{if(void 0!==s)for(l of s){var t;null===(t=l.nodes)||void 0===t||null===(t=t.a)||void 0===t||t.apply()}}))}(m,c,s,e,i),null!==u&&(0===c.length?u.f&ai?(u.f^=ai,Ea(u,null,s)):ms(u):fs(u,(()=>{u=null})))}var p=ss((()=>{var t=(c=qs(d)).length;let l=!1;Ii&&(Fi(s)===xn!==(0===t)&&(Si(s=Mi()),Ei(!1),l=!0));for(var p=new Set,m=0;m<t;m+=1){Ii&&Ti.nodeType===yi&&Ti.data===_n&&(s=Ti,l=!0,Ei(!1));var v,g=c[m],y=i(g,m),b=h?null:a.get(y);if(b)b.v&&Eo(b.v,g),b.i&&Eo(b.i,m);else b=Ia(a,h?s:null!==(v=ba)&&void 0!==v?v:ba=jo(),g,y,m,r,e,n),h||(b.e.f|=ai),a.set(y,b);p.add(y)}0===t&&o&&!u&&(h?u=ls((()=>o(s))):(u=ls((()=>{var t;return o(null!==(t=ba)&&void 0!==t?t:ba=jo())}))).f|=ai),Ii&&t>0&&Si(Mi()),h||f(),l&&Ei(!0),qs(d)})),m={effect:p,items:a,outrogroups:null,fallback:u};h=!1,Ii&&(s=Ti)}function Ia(t,e,n,i,r,o,s,a){var l=s&hn?s&vn?xo(n):To(n,!1,!1):null,c=s&fn?xo(r):null;return l&&(l.trace=()=>{var t;a()[null!==(t=null==c?void 0:c.v)&&void 0!==t?t:r]}),{v:l,i:c,e:ls((()=>(o(e,null!=l?l:n,null!=c?c:r,a),()=>{t.delete(i)})))}}function Ea(t,e,n){if(t.nodes)for(var i=t.nodes.start,r=t.nodes.end,o=!e||e.f&ai?n:e.nodes.start;null!==i;){var s=$o(i);if(o.before(i),i===r)return;i=s}}function Sa(t,e,n){null===e?t.effect.first=n:e.next=n,null===n?t.effect.last=e:n.prev=e}function Aa(t,e){is((()=>{var n,i=t.getRootNode(),r=i.host?i:null!==(n=i.head)&&void 0!==n?n:i.ownerDocument.head;if(!r.querySelector("#"+e.hash)){const t=document.createElement("style");t.id=e.hash,t.textContent=e.code,r.appendChild(t),function(t,e){var n=ka.get(t);n||(n=new Set,ka.set(t,n)),n.add(e)}(e.hash,t)}}))}function Na(t,e){var n,i=void 0;as((()=>{i!==(i=e())&&(n&&(ds(n),n=null),i&&(n=ls((()=>{is((()=>i(t)))}))))}))}function Ma(t){var e,n,i="";if("string"==typeof t||"number"==typeof t)i+=t;else if("object"==typeof t)if(Array.isArray(t)){var r=t.length;for(e=0;e<r;e++)t[e]&&(n=Ma(t[e]))&&(i&&(i+=" "),i+=n)}else for(n in t)t[n]&&(i&&(i+=" "),i+=n);return i}function Fa(t){return"object"==typeof t?function(){for(var t,e,n=0,i="",r=arguments.length;n<r;n++)(t=arguments[n])&&(e=Ma(t))&&(i&&(i+=" "),i+=e);return i}(t):null!=t?t:""}const Oa=[..." \t\n\r\f \v\ufeff"];function Ca(t,e=!1){var n=e?" !important;":";",i="";for(var r in t){var o=t[r];null!=o&&""!==o&&(i+=" "+r+": "+o+n)}return i}function Pa(t){return"-"!==t[0]||"-"!==t[1]?t.toLowerCase():t}function Da(t,e,n,i,r,o){var s=t.__className;if(Ii||s!==n||void 0===s){var a=function(t,e,n){var i=null==t?"":""+t;if(e&&(i=i?i+" "+e:e),n)for(var r in n)if(n[r])i=i?i+" "+r:r;else if(i.length)for(var o=r.length,s=0;(s=i.indexOf(r,s))>=0;){var a=s+o;0!==s&&!Oa.includes(i[s-1])||a!==i.length&&!Oa.includes(i[a])?s=a:i=(0===s?"":i.substring(0,s))+i.substring(a+1)}return""===i?null:i}(n,i,o);Ii&&a===t.getAttribute("class")||(null==a?t.removeAttribute("class"):e?t.className=a:t.setAttribute("class",a)),t.__className=n}else if(o&&r!==o)for(var l in o){var c=!!o[l];null!=r&&c===!!r[l]||t.classList.toggle(l,c)}return o}function Ra(t,e={},n,i){for(var r in n){var o=n[r];e[r]!==o&&(null==n[r]?t.style.removeProperty(r):t.style.setProperty(r,o,i))}}function La(t,e,n,i){var r=t.__style;if(Ii||r!==e){var o=function(t,e){if(e){var n,i,r="";if(Array.isArray(e)?(n=e[0],i=e[1]):n=e,t){t=String(t).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var o=!1,s=0,a=!1,l=[];n&&l.push(...Object.keys(n).map(Pa)),i&&l.push(...Object.keys(i).map(Pa));var c=0,u=-1;const e=t.length;for(var d=0;d<e;d++){var h=t[d];if(a?"/"===h&&"*"===t[d-1]&&(a=!1):o?o===h&&(o=!1):"/"===h&&"*"===t[d+1]?a=!0:'"'===h||"'"===h?o=h:"("===h?s++:")"===h&&s--,!a&&!1===o&&0===s)if(":"===h&&-1===u)u=d;else if(";"===h||d===e-1){if(-1!==u){var f=Pa(t.substring(c,u).trim());l.includes(f)||(";"!==h&&d++,r+=" "+t.substring(c,d).trim()+";")}c=d+1,u=-1}}}return n&&(r+=Ca(n)),i&&(r+=Ca(i,!0)),""===(r=r.trim())?null:r}return null==t?null:String(t)}(e,i);Ii&&o===t.getAttribute("style")||(null==o?t.removeAttribute("style"):t.style.cssText=o),t.__style=e}else i&&(Array.isArray(i)?(Ra(t,null==n?void 0:n[0],i[0]),Ra(t,null==n?void 0:n[1],i[1],"important")):Ra(t,n,i));return i}function Ba(t,e,n=!1){if(t.multiple){if(null==e)return;if(!Mn(e))return void console.warn("%c[svelte] select_multiple_invalid_value\n%cThe `value` property of a `<select multiple>` element should be an array, but it received a non-array value. The selection will be kept as is.\nhttps://svelte.dev/e/select_multiple_invalid_value",ki,wi);for(var i of t.options)i.selected=e.includes(za(i))}else{for(i of t.options){var r=za(i);if(o=r,s=e,Object.is(Co(o),Co(s)))return void(i.selected=!0)}var o,s;n&&void 0===e||(t.selectedIndex=-1)}}function za(t){return"__value"in t?t.__value:t.value}const Wa=Symbol("class"),ja=Symbol("style"),Ua=Symbol("is custom element"),$a=Symbol("is html");function qa(t){if(Ii){var e=!1,n=()=>{if(!e){if(e=!0,t.hasAttribute("value")){var n=t.value;Ga(t,"value",null),t.value=n}if(t.hasAttribute("checked")){var i=t.checked;Ga(t,"checked",null),t.checked=i}}};t.__on_r=n,Yi(n),Xo||(Xo=!0,document.addEventListener("reset",(t=>{Promise.resolve().then((()=>{if(!t.defaultPrevented)for(const n of t.target.elements){var e;null===(e=n.__on_r)||void 0===e||e.call(n)}}))}),{capture:!0}))}}function Va(t,e){e?t.hasAttribute("selected")||t.setAttribute("selected",""):t.removeAttribute("selected")}function Ga(t,e,n,i){var r=Ka(t);Ii&&(r[e]=t.getAttribute(e),"src"===e||"srcset"===e||"href"===e&&"LINK"===t.nodeName)?i||function(t,e,n){var i;if("srcset"===e&&function(t,e){var n=Ja(t.srcset),i=Ja(e);return i.length===n.length&&i.every((([t,e],i)=>e===n[i][1]&&(Qa(n[i][0],t)||Qa(t,n[i][0]))))}(t,n))return;if(Qa(null!==(i=t.getAttribute(e))&&void 0!==i?i:"",n))return;!function(t,e,n){console.warn(`%c[svelte] hydration_attribute_changed\n%cThe \`${t}\` attribute on \`${e}\` changed its value between server and client renders. The client value, \`${n}\`, will be ignored in favour of the server value\nhttps://svelte.dev/e/hydration_attribute_changed`,ki,wi)}(e,t.outerHTML.replace(t.innerHTML,t.innerHTML&&"..."),String(n))}(t,e,null!=n?n:""):r[e]!==(r[e]=n)&&("loading"===e&&(t[pi]=n),null==n?t.removeAttribute(e):"string"!=typeof n&&Ya(t).includes(e)?t[e]=n:t.setAttribute(e,n))}function Ha(t,e,n=[],i=[],r=[],o,s=!1,a=!1){so(r,n,i,(n=>{var i=void 0,r={},l="SELECT"===t.nodeName,c=!1;if(as((()=>{var u=e(...n.map(qs)),d=function(t,e,n,i,r=!1,o=!1){if(Ii&&r&&"INPUT"===t.tagName){var s=t;("checkbox"===s.type?"defaultChecked":"defaultValue")in n||qa(s)}var a=Ka(t),l=a[Ua],c=!a[$a];let u=Ii&&l;u&&Ei(!1);var d,h=e||{},f="OPTION"===t.tagName;for(var p in e)p in n||(n[p]=null);n.class?n.class=Fa(n.class):n.class=null,n[ja]&&(null!==(d=n.style)&&void 0!==d||(n.style=null));var m=Ya(t);for(const r in n){let s=n[r];if(f&&"value"===r&&null==s)t.value=t.__value="",h[r]=s;else if("class"!==r)if("style"!==r){var v=h[r];if(s!==v||void 0===s&&t.hasAttribute(r)){h[r]=s;var g=r[0]+r[1];if("$$"!==g)if("on"===g){const e={},n="$$"+r;let i=r.slice(2);var y=aa(i);if(oa(i)&&(i=i.slice(0,-7),e.capture=!0),!y&&v){if(null!=s)continue;t.removeEventListener(i,h[n],e),h[n]=null}if(null!=s)if(y)t[`__${i}`]=s,Js([i]);else{let o=function(t){h[r].call(this,t)};h[n]=Ys(i,t,o,e)}else y&&(t[`__${i}`]=void 0)}else if("style"===r)Ga(t,r,s);else if("autofocus"===r)Ko(t,Boolean(s));else if(l||"__value"!==r&&("value"!==r||null==s))if("selected"===r&&f)Va(t,s);else{var b=r;c||(b=ca(b));var k="defaultValue"===b||"defaultChecked"===b;if(null!=s||l||k)k||m.includes(b)&&(l||"string"!=typeof s)?(t[b]=s,b in a&&(a[b]=In)):"function"!=typeof s&&Ga(t,b,s,o);else if(a[r]=null,"value"===b||"checked"===b){let n=t;const i=void 0===e;if("value"===b){let t=n.defaultValue;n.removeAttribute(b),n.defaultValue=t,n.value=n.__value=i?t:null}else{let t=n.defaultChecked;n.removeAttribute(b),n.defaultChecked=t,n.checked=!!i&&t}}else t.removeAttribute(r)}else t.value=t.__value=s}}else La(t,s,null==e?void 0:e[ja],n[ja]),h[r]=s,h[ja]=n[ja];else Da(t,"http://www.w3.org/1999/xhtml"===t.namespaceURI,s,i,null==e?void 0:e[Wa],n[Wa]),h[r]=s,h[Wa]=n[Wa]}return u&&Ei(!0),h}(t,i,u,o,s,a);c&&l&&"value"in u&&Ba(t,u.value);for(let t of Object.getOwnPropertySymbols(r))u[t]||ds(r[t]);for(let e of Object.getOwnPropertySymbols(u)){var h=u[e];e.description!==An||i&&h===i[e]||(r[e]&&ds(r[e]),r[e]=ls((()=>Na(t,(()=>h))))),d[e]=h}i=d})),l){var u=t;is((()=>{Ba(u,i.value,!0),function(t){var e=new MutationObserver((()=>{Ba(t,t.__value)}));e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),ts((()=>{e.disconnect()}))}(u)}))}c=!0}))}function Ka(t){var e;return null!==(e=t.__attributes)&&void 0!==e?e:t.__attributes={[Ua]:t.nodeName.includes("-"),[$a]:t.namespaceURI===Sn}}var Xa=new Map;function Ya(t){var e,n=t.getAttribute("is")||t.nodeName,i=Xa.get(n);if(i)return i;Xa.set(n,i=[]);for(var r=t,o=Element.prototype;o!==r;){for(var s in e=Dn(r))e[s].set&&i.push(s);r=Bn(r)}return i}function Qa(t,e){return t===e||new URL(t,document.baseURI).href===new URL(e,document.baseURI).href}function Ja(t){return t.split(",").map((t=>t.trim().split(" ").filter(Boolean)))}function Za(t,e){return t===e||(null==t?void 0:t[hi])===e}function tl(t={},e,n,i){return is((()=>{var i,r;return rs((()=>{i=r,r=[],Hs((()=>{t!==n(...r)&&(e(t,...r),i&&Za(n(...i),t)&&e(null,...i))}))})),()=>{Yi((()=>{r&&Za(n(...r),t)&&e(null,...r)}))}})),t}let el=!1;function nl(t,e,n,i){var r,o,s=!!(n&bn),a=!!(n&kn),l=i,c=!0,u=()=>(c&&(c=!1,l=a?Hs(i):i),l);if(s){var d,h,f=hi in t||fi in t;r=null!==(d=null===(h=Pn(t,e))||void 0===h?void 0:h.set)&&void 0!==d?d:f&&e in t?n=>t[e]=n:void 0}var p,m=!1;if(s?[o,m]=function(t){var e=el;try{return el=!1,[t(),el]}finally{el=e}}((()=>t[e])):o=t[e],void 0===o&&void 0!==i&&(o=u(),r&&(!function(t){{const e=new Error(`props_invalid_value\nCannot do \`bind:${t}={undefined}\` when \`${t}\` has a fallback value\nhttps://svelte.dev/e/props_invalid_value`);throw e.name="Svelte error",e}}(e),r(o))),p=()=>{var n=t[e];return void 0===n?u():(c=!0,n)},!(n&yn))return p;if(r){var v=t.$$legacy;return function(t,e){return arguments.length>0?((!e||v||m)&&r(e?p():t),t):p()}}var g=!1,y=(n&gn?co:fo)((()=>(g=!1,p())));y.label=e,s&&qs(y);var b=Is;return function(t,e){if(arguments.length>0){const n=e?qs(y):s?Fo(t):t;return Io(y,n),g=!0,void 0!==l&&(l=n),t}return ks&&g||b.f&ti?y.v:qs(y)}}var il,rl,ol,sl;"undefined"!=typeof window&&(null!==(rl=(il=null!==(sl=(ol=window).__svelte)&&void 0!==sl?sl:ol.__svelte={}).v)&&void 0!==rl?rl:il.v=new Set).add("5");function al(t,{include:e,exclude:n}={}){const i=t=>{const i=e=>"string"==typeof e?t===e:e.test(t);return e?e.some(i):!n||!n.some(i)};for(const[e,n]of(t=>{const e=new Set;do{for(const n of Reflect.ownKeys(t))e.add([t,n])}while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e})(t.constructor.prototype)){if("constructor"===n||!i(n))continue;const r=Reflect.getOwnPropertyDescriptor(e,n);r&&"function"==typeof r.value&&(t[n]=t[n].bind(t))}return t}function ll(t,e){t.getNodesAtTime(0)[0].once("nodestart",e)}class cl{constructor({position:t,gallery:e,config:n}){this.config=n,this.position=t,this.gallery=e,this.name=n.name;const{variantId:i,itemIndex:r,moduleIndex:o}=t;this.id=`${n.itemType}_${i}_${r}_${o}`,al(this)}#a=Di(_o(Fo({})),"BaseModule.#state");#l=Di(_o(null),"BaseModule.#cover");#c=Di(_o(!1),"BaseModule.#showCover");#u=Di(_o(null),"BaseModule.#Component");id;player;position;config;timeline;moduleEndListener;hasDuration=!1;coverAssets=[];get state(){return qs(this.#a)}set state(t){Io(this.#a,t,!0)}get cover(){return qs(this.#l)}set cover(t){Io(this.#l,t)}get showCover(){return qs(this.#c)}set showCover(t){Io(this.#c,t,!0)}get Component(){return qs(this.#u)}set Component(t){Io(this.#u,t)}emitModuleEnd(){var t;null===(t=this.moduleEndListener)||void 0===t||t.call(this)}start(t){this.player=t}setPosition(){this.gallery.state.playingModulePosition=this.position}play(){this.gallery.track("moduleview"),ll(this.timeline,(()=>{this.setPosition()})),this.player.switchTimeline(this.timeline)}get duration(){return this.hasDuration?this.timeline.placements.reduce(((t,e)=>t+this.player.getNode(e.nodeId).duration),0):0}}const ul="cmaf:";function dl(t,e,n){var i,r,o;const s=(null==e||null===(i=e.entity)||void 0===i?void 0:i.entityId)||(null==e?void 0:e.assetId),a=null!==(r=null==e||null===(o=e.entity)||void 0===o?void 0:o.entityRevision)&&void 0!==r?r:null==e?void 0:e.assetRevision,l=function(t){return t&&t.find((t=>t.startsWith(ul)))?t.filter((t=>t.startsWith(ul))):t}(null==e?void 0:e.availableEncodeProfiles);return n.addNode({id:t,manifestRef:{type:"assets-delivery-service",assetId:s,assetRevision:a,availableEncodeProfiles:l}})}var hl=na('<h3 class="text-box-title svelte-wejicf"> </h3>'),fl=na('<span class="text-box-title svelte-wejicf"> </span>'),pl=na('<span class="text-box-description minimized-description svelte-wejicf"> </span>'),ml=na('<span class="read-more-cta svelte-wejicf" aria-hidden="true">Read more</span>'),vl=na('<button class="expand-description-button svelte-wejicf" aria-expanded="false" aria-controls="expanded-text-content" aria-label="Expand feature description"><!> <!></button>'),gl=na('<button aria-expanded="true" aria-label="Collapse feature description" data-elementid="textbox-expand" data-elementtype="textbox" data-elementname="Read less" data-interactiontype="module-ui" class="svelte-wejicf">Read less</button>'),yl=na('<section aria-label="Feature description" aria-live="polite"><div class="text-wrapper svelte-wejicf"><div class="expanded-text-content svelte-wejicf"><!> <p class="text-box-description svelte-wejicf"> </p></div> <!></div> <!></section>');const bl={hash:"svelte-wejicf",code:".step-description-container.svelte-wejicf {width:100%;position:absolute;bottom:0;display:flex;justify-content:space-between;gap:8px;box-sizing:border-box;font-size:12px;font-weight:400;font-style:normal;line-height:16px;letter-spacing:0px;overflow:hidden;pointer-events:none;background:linear-gradient(\n rgba(255, 255, 255, 0) 0%,\n rgba(255, 255, 255, 0.9) 27.79%,\n rgba(255, 255, 255, 0.95) 100%\n );&.expanded {flex-direction:column;justify-content:flex-start;}&:not(.expanded) {button:where(.svelte-wejicf) {line-height:16px;}}}.expanded-text-content.svelte-wejicf:not([hidden]) {display:flex;flex-direction:column;gap:8px;}button.svelte-wejicf {background:none;border:none;padding:0;cursor:pointer;line-height:18px;gap:8px;letter-spacing:0%;color:#014FD3;font-size:12px;font-weight:500;flex-shrink:0;text-align:left;font-family:inherit;pointer-events:auto;}h3.svelte-wejicf, p.svelte-wejicf, span.svelte-wejicf {color:#030303;}.text-wrapper.svelte-wejicf {width:100%;}.text-box-title.svelte-wejicf {margin:0;font-weight:500;font-size:12px;}.text-box-description.svelte-wejicf {margin:0;text-align:left;font-weight:400;}.minimized-description.svelte-wejicf {overflow:hidden;line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;font-weight:400;}.expand-description-button.svelte-wejicf {width:100%;display:flex;justify-content:space-between;gap:6px;flex-wrap:nowrap;.read-more-cta:where(.svelte-wejicf) {color:#014FD3;flex-shrink:0;}}"};function kl(t,e){Vi(e,!0),Aa(t,bl);let n=nl(e,"textBox",3,null),i=nl(e,"isMobile",3,!1),r=_o(!1),o=_o(null),s=_o(!1),a=ho((()=>{var t;return(null===(t=n())||void 0===t?void 0:t.title)||""})),l=ho((()=>{var t;return(null===(t=n())||void 0===t?void 0:t.description)||""})),c=ho((()=>i()?16:18)),u=ho((()=>i()?12:16));function d(){qs(o)&&Io(s,qs(o).scrollWidth>qs(o).clientWidth||qs(o).scrollHeight>qs(o).clientHeight,!0)}es((()=>{qs(o)&&d()}));var h=ia();Qs("resize",Ro,d);var f=Vo(h),p=t=>{var n=yl(),d=qo(n),h=qo(d),f=qo(h),p=t=>{var e=hl(),n=qo(e,!0);Ni(e),os((()=>da(n,qs(a)))),ra(t,e)};wa(f,(t=>{i()&&t(p)}));var m=Go(f,2),v=qo(m,!0);Ni(m),Ni(h);var g=Go(h,2),y=t=>{var n=vl(),u=ho((()=>e.gallery.interaction((()=>Io(r,!0)),{elementid:"textbox-expand",elementtype:"textbox",elementname:"Read more",interactiontype:"module-ui"})));n.__click=function(...t){var e;null===(e=qs(u))||void 0===e||e.apply(this,t)};var d=qo(n),h=t=>{var e=fl(),n=qo(e,!0);Ni(e),os((()=>da(n,qs(a)))),ra(t,e)},f=t=>{var e=pl(),n=qo(e,!0);Ni(e),tl(e,(t=>Io(o,t)),(()=>qs(o))),os((()=>da(n,qs(l)))),ra(t,e)};wa(d,(t=>{i()&&qs(a)?t(h):t(f,!1)}));var p=Go(d,2),m=t=>{ra(t,ml())};wa(p,(t=>{(i()||!i()&&qs(s))&&t(m)})),Ni(n),os((()=>La(n,`line-height: ${qs(c)}px;`))),ra(t,n)};wa(g,(t=>{qs(r)||t(y)})),Ni(d);var b=Go(d,2),k=t=>{var n=gl(),o=ho((()=>e.gallery.interaction((()=>Io(r,!1)))));n.__click=function(...t){var e;null===(e=qs(o))||void 0===e||e.apply(this,t)},os((()=>La(n,`margin-bottom: ${!i()&&qs(r)?"8px":"0px"};\n line-height: ${qs(u)}px;`))),ra(t,n)};wa(b,(t=>{qs(r)&&t(k)})),Ni(n),os((()=>{Da(n,1,"step-description-container "+(qs(r)?"expanded":""),"svelte-wejicf"),La(n,`padding: ${i()?"8px 16px":"16px 16px 64px 16px"};`),La(h,`line-height: ${qs(c)}px;`),Ga(h,"hidden",!qs(r)),da(v,qs(l))})),ra(t,n)};wa(f,(t=>{(qs(a)||qs(l))&&t(p)})),ra(t,h),Gi()}function wl(t,e){const n=ho((()=>e.state.textBox));kl(t,{get textBox(){return qs(n)},get isMobile(){return e.isMobile},get gallery(){return e.gallery}})}Js(["click"]);var xl=na('<div class="toggle-option-container svelte-16pmvvn"><button data-elementtype="toggle" data-interactiontype="module-ui"> </button></div>'),_l=na('<div class="toggle-container svelte-16pmvvn"><div></div></div> <!>',1);const Tl={hash:"svelte-16pmvvn",code:".eko-gallery-app {--toggleModule_gap: 8px;--toggleModule_padding: 10px 58px 0 0;--toggleModule_options_padding: 0;--toggleModule_options_height: auto;--toggleModule_options_width: 100%;--toggleModule_options_gap: 8px;--toggleModule_button_backgroundColor: #FFFFFF;--toggleModule_button_padding: 8px 12px;--toggleModule_button_boxShadow: 0px 2px 8px 2px rgba(0, 0, 0, 0.07);--toggleModule_button_text_fontFamily: var(--fontName);--toggleModule_button_text_fontSize: 12px;--toggleModule_button_text_fontWeight: 400;--toggleModule_button_text_fontStyle: normal;--toggleModule_button_text_lineHeight: 16px;--toggleModule_button_text_letterSpacing: -0.2px;--toggleModule_button_text_color: #000;--toggleModule_button_border_radius: 100px;--toggleModule_title_fontFamily: var(--fontName);--toggleModule_title_fontSize: 13px;--toggleModule_title_fontWeight: 400;--toggleModule_title_fontStyle: normal;--toggleModule_title_lineHeight: 120%;--toggleModule_title_letterSpacing: 0;--toggleModule_title_color: #666;--toggleModule_title_textAlignment: center;--toggleModule_note_fontFamily: var(--fontName);--toggleModule_note_fontSize: 12px;--toggleModule_note_fontWeight: 400;--toggleModule_note_fontStyle: normal;--toggleModule_note_lineHeight: 120%;--toggleModule_note_letterSpacing: 0;--toggleModule_note_color: #888;--toggleModule_note_topMargin: 4px;}.toggle-container.svelte-16pmvvn {position:absolute;top:0;padding:var(--toggleModule_padding);width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--toggleModule_gap);pointer-events:auto;box-sizing:border-box;}.toggle-options.svelte-16pmvvn {width:var(--toggleModule_options_width);height:var(--toggleModule_options_height);padding:var(--toggleModule_options_padding);gap:var(--toggleModule_options_gap);display:flex;justify-content:end;margin:0;}.toggle-option-container.svelte-16pmvvn {position:relative;min-width:0;}.toggle-option-button.svelte-16pmvvn {border-radius:var(--toggleModule_button_borderRadius);font-family:var(--toggleModule_button_text_fontFamily);font-size:var(--toggleModule_button_text_fontSize);font-weight:var(--toggleModule_button_text_fontWeight);font-style:var(--toggleModule_button_text_fontStyle);line-height:var(--toggleModule_button_text_lineHeight);letter-spacing:var(--toggleModule_button_text_letterSpacing);color:var(--toggleModule_button_text_color);padding:var(--toggleModule_button_padding);border:#E4E5E8 solid 1px;background:#FBFBFB;display:flex;width:100%;height:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;cursor:pointer;position:relative;transition:all 0.3s ease-in-out;animation-duration:0.5s;animation-timing-function:cubic-bezier(0.36, 0, 0, 1);animation-fill-mode:both;animation-delay:calc(var(--button-index) * 90ms);\n animation-name: svelte-16pmvvn-button-back-appear-anim;transform-origin:bottom center;border-radius:var(--toggleModule_button_border_radius);}.toggle-option-button.selected.svelte-16pmvvn {box-shadow:none;color:#FFFFFF;background:#014FD3;border-color:#014FD3;}.toggle-option-button.svelte-16pmvvn:hover:not(.selected) {background:#F3F4F6;}.toggle-option-button.svelte-16pmvvn:active:not(.selected) {background:#E4E5E8;}.toggle-option-button.svelte-16pmvvn:focus {outline-offset:4px;outline-width:2px;}\n\n@keyframes svelte-16pmvvn-button-back-appear-anim {\n from {\n transform: scale(0);\n }\n to {\n transform: scale(1);\n }\n}\n@keyframes svelte-16pmvvn-optionNoteIn {\n 0% {\n opacity: 0;\n translate: -50% -5px;\n }\n 100% {\n opacity: 1;\n translate: -50% var(--toggleModule_note_topMargin);\n }\n}"};function Il(t,e){Vi(e,!0),Aa(t,Tl);const n=ho((()=>e.state.options)),i=ho((()=>e.state.currentOptionIndex)),r=ho((()=>e.state.onOptionClicked)),o=ho((()=>e.state.textBox));var s=_l(),a=Vo(s),l=qo(a);Ta(l,21,(()=>qs(n)),xa,((t,n,o)=>{var s=xl();La(s,`--button-index: ${o};`);var a=qo(s);let l;var c=ho((()=>e.gallery.interaction((()=>qs(r)(o)))));a.__click=function(...t){var e;null===(e=qs(c))||void 0===e||e.apply(this,t)},Ga(a,"data-elementid",`${o+1}`);var u=qo(a,!0);Ni(a),Ni(s),os((()=>{l=Da(a,1,"toggle-option-button svelte-16pmvvn",null,l,{selected:qs(i)===o}),Ga(a,"data-elementname",qs(n).label),da(u,qs(n).label)})),ra(t,s)})),Ni(l),Ni(a);var c=Go(a,2),u=t=>{kl(t,{get textBox(){return qs(o)},get isMobile(){return e.isMobile},get gallery(){return e.gallery}})};wa(c,(t=>{qs(o)&&t(u)})),os((()=>{var t;return Da(l,1,`toggle-options selected-${null!==(t=qs(i))&&void 0!==t?t:""}`,"svelte-16pmvvn")})),ra(t,s),Gi()}Js(["click"]);var El=new WeakSet;function Sl(t){var e,n;t!==this.state.currentOptionIndex&&(this.state.currentOptionIndex=t,this.state.textBox=this.config.options[t].textBox,this.cover=this.coverAssets[t],this.synced?this.switchTo(t):(this.timeline=null===(e=this.timelines)||void 0===e?void 0:e[t],this.showCover=!0,ll(this.timeline,(()=>{this.showCover=!1})),null===(n=this.player)||void 0===n||n.switchTimeline(this.timeline)))}const Al=(t,e,n)=>n>e?e:n<t?t:n;function Nl(t,e){return e?`${t}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${e}`:t}let Ml=()=>{},Fl=()=>{};function Ol(t){let e;return()=>(void 0===e&&(e=t()),e)}"undefined"!=typeof process&&"production"!==(null===(fe=process.env)||void 0===fe?void 0:fe.NODE_ENV)&&(Ml=(t,e,n)=>{t||"undefined"==typeof console||console.warn(Nl(e,n))},Fl=(t,e,n)=>{if(!t)throw new Error(Nl(e,n))});const Cl=t=>t,Pl=t=>1e3*t,Dl=t=>t/1e3;const Rl=t=>Array.isArray(t)&&"number"==typeof t[0],Ll=(t,e,n=10)=>{let i="";const r=Math.max(Math.round(e/n),2);for(let e=0;e<r;e++)i+=Math.round(1e4*t(e/(r-1)))/1e4+", ";return`linear(${i.substring(0,i.length-2)})`},Bl=2e4;function zl(t){let e=0;let n=t.next(e);for(;!n.done&&e<Bl;)e+=50,n=t.next(e);return e>=Bl?1/0:e}const Wl=5;const jl={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},Ul=.001;function $l({duration:t=jl.duration,bounce:e=jl.bounce,velocity:n=jl.velocity,mass:i=jl.mass}){let r,o;Ml(t<=Pl(jl.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let s=1-e;s=Al(jl.minDamping,jl.maxDamping,s),t=Al(jl.minDuration,jl.maxDuration,Dl(t)),s<1?(r=e=>{const i=e*s,r=i*t,o=i-n,a=Vl(e,s),l=Math.exp(-r);return Ul-o/a*l},o=e=>{const i=e*s*t,o=i*n+n,a=Math.pow(s,2)*Math.pow(e,2)*t,l=Math.exp(-i),c=Vl(Math.pow(e,2),s);return(-r(e)+Ul>0?-1:1)*((o-a)*l)/c}):(r=e=>Math.exp(-e*t)*((e-n)*t+1)-Ul,o=e=>Math.exp(-e*t)*(t*t*(n-e)));const a=function(t,e,n){let i=n;for(let n=1;n<ql;n++)i-=t(i)/e(i);return i}(r,o,5/t);if(t=Pl(t),isNaN(a))return{stiffness:jl.stiffness,damping:jl.damping,duration:t};{const e=Math.pow(a,2)*i;return{stiffness:e,damping:2*s*Math.sqrt(i*e),duration:t}}}const ql=12;function Vl(t,e){return t*Math.sqrt(1-e*e)}const Gl=["duration","bounce"],Hl=["stiffness","damping","mass"];function Kl(t,e){return e.some((e=>void 0!==t[e]))}function Xl(t=jl.visualDuration,e=jl.bounce){const n="object"!=typeof t?{visualDuration:t,keyframes:[0,1],bounce:e}:t;let{restSpeed:i,restDelta:r}=n;const o=n.keyframes[0],s=n.keyframes[n.keyframes.length-1],a={done:!1,value:o},{stiffness:l,damping:c,mass:u,duration:d,velocity:h,isResolvedFromDuration:f}=function(t){let e={velocity:jl.velocity,stiffness:jl.stiffness,damping:jl.damping,mass:jl.mass,isResolvedFromDuration:!1,...t};if(!Kl(t,Hl)&&Kl(t,Gl))if(t.visualDuration){const n=t.visualDuration,i=2*Math.PI/(1.2*n),r=i*i,o=2*Al(.05,1,1-(t.bounce||0))*Math.sqrt(r);e={...e,mass:jl.mass,stiffness:r,damping:o}}else{const n=$l(t);e={...e,...n,mass:jl.mass},e.isResolvedFromDuration=!0}return e}({...n,velocity:-Dl(n.velocity||0)}),p=h||0,m=c/(2*Math.sqrt(l*u)),v=s-o,g=Dl(Math.sqrt(l/u)),y=Math.abs(v)<5;let b;if(i||(i=y?jl.restSpeed.granular:jl.restSpeed.default),r||(r=y?jl.restDelta.granular:jl.restDelta.default),m<1){const t=Vl(g,m);b=e=>{const n=Math.exp(-m*g*e);return s-n*((p+m*g*v)/t*Math.sin(t*e)+v*Math.cos(t*e))}}else if(1===m)b=t=>s-Math.exp(-g*t)*(v+(p+g*v)*t);else{const t=g*Math.sqrt(m*m-1);b=e=>{const n=Math.exp(-m*g*e),i=Math.min(t*e,300);return s-n*((p+m*g*v)*Math.sinh(i)+t*v*Math.cosh(i))/t}}const k={calculatedDuration:f&&d||null,next:t=>{const e=b(t);if(f)a.done=t>=d;else{let n=0===t?p:0;m<1&&(n=0===t?Pl(p):function(t,e,n){const i=Math.max(e-Wl,0);return r=n-t(i),(o=e-i)?r*(1e3/o):0;var r,o}(b,t,e));const o=Math.abs(n)<=i,l=Math.abs(s-e)<=r;a.done=o&&l}return a.value=a.done?s:e,a},toString:()=>{const t=Math.min(zl(k),Bl),e=Ll((e=>k.next(t*e).value),t,30);return t+"ms "+e},toTransition:()=>{}};return k}Xl.applyToOptions=t=>{const e=function(t,e=100,n){const i=n({...t,keyframes:[0,e]}),r=Math.min(zl(i),Bl);return{type:"keyframes",ease:t=>i.next(r*t).value/e,duration:Dl(r)}}(t,100,Xl);return t.ease=e.ease,t.duration=Pl(e.duration),t.type="keyframes",t};const Yl=t=>null!==t;class Ql{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise((t=>{this.resolve=t}))}notifyFinished(){this.resolve()}then(t,e){return this.finished.then(t,e)}}function Jl(t){for(let n=1;n<t.length;n++){var e;null!==(e=t[n])&&void 0!==e||(t[n]=t[n-1])}}const Zl=t=>t.startsWith("--");const tc=Ol((()=>void 0!==window.ScrollTimeline)),ec={};function nc(t,e){const n=Ol(t);return()=>{var t;return null!==(t=ec[e])&&void 0!==t?t:n()}}const ic=nc((()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0}),"linearEasing"),rc=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`,oc={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:rc([0,.65,.55,1]),circOut:rc([.55,0,1,.45]),backIn:rc([.31,.01,.66,-.59]),backOut:rc([.33,1.53,.69,.99])};function sc(t,e){return t?"function"==typeof t?ic()?Ll(t,e):"ease-out":Rl(t)?rc(t):Array.isArray(t)?t.map((t=>sc(t,e)||oc.easeOut)):oc[t]:void 0}function ac(t,e,n,{delay:i=0,duration:r=300,repeat:o=0,repeatType:s="loop",ease:a="easeOut",times:l}={},c=void 0){const u={[e]:n};l&&(u.offset=l);const d=sc(a,r);Array.isArray(d)&&(u.easing=d);const h={delay:i,duration:r,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:o+1,direction:"reverse"===s?"alternate":"normal"};c&&(h.pseudoElement=c);return t.animate(u,h)}class lc extends Ql{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:e,name:n,keyframes:i,pseudoElement:r,allowFlatten:o=!1,finalKeyframe:s,onComplete:a}=t;this.isPseudoElement=Boolean(r),this.allowFlatten=o,this.options=t,Fl("string"!=typeof t.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");const l=function({type:t,...e}){return function(t){return"function"==typeof t&&"applyToOptions"in t}(t)&&ic()?t.applyToOptions(e):(null!==(n=e.duration)&&void 0!==n||(e.duration=300),null!==(i=e.ease)&&void 0!==i||(e.ease="easeOut"),e);var n,i}(t);this.animation=ac(e,n,i,l,r),!1===l.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!r){const t=function(t,{repeat:e,repeatType:n="loop"},i,r=1){const o=t.filter(Yl),s=r<0||e&&"loop"!==n&&e%2==1?0:o.length-1;return s&&void 0!==i?i:o[s]}(i,this.options,s,this.speed);this.updateMotionValue?this.updateMotionValue(t):function(t,e,n){Zl(e)?t.style.setProperty(e,n):t.style[e]=n}(e,n,t),this.animation.cancel()}null==a||a(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){var t,e;null===(t=(e=this.animation).finish)||void 0===t||t.call(e)}cancel(){try{this.animation.cancel()}catch(t){}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;"idle"!==t&&"finished"!==t&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var t,e;this.isPseudoElement||(null===(t=(e=this.animation).commitStyles)||void 0===t||t.call(e))}get duration(){var t,e;const n=(null===(t=this.animation.effect)||void 0===t||null===(e=t.getComputedTiming)||void 0===e?void 0:e.call(t).duration)||0;return Dl(Number(n))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Dl(t)}get time(){return Dl(Number(this.animation.currentTime)||0)}set time(t){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Pl(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){var t;return null!==(t=this.manualStartTime)&&void 0!==t?t:Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,observe:e}){var n;this.allowFlatten&&(null===(n=this.animation.effect)||void 0===n||n.updateTiming({easing:"linear"}));return this.animation.onfinish=null,t&&tc()?(this.animation.timeline=t,Cl):e(this)}}class cc{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map((t=>t.finished)))}getAll(t){return this.animations[0][t]}setAll(t,e){for(let n=0;n<this.animations.length;n++)this.animations[n][t]=e}attachTimeline(t){const e=this.animations.map((e=>e.attachTimeline(t)));return()=>{e.forEach(((t,e)=>{t&&t(),this.animations[e].stop()}))}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get state(){return this.getAll("state")}get startTime(){return this.getAll("startTime")}get duration(){return uc(this.animations,"duration")}get iterationDuration(){return uc(this.animations,"iterationDuration")}runAll(t){this.animations.forEach((e=>e[t]()))}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}function uc(t,e){let n=0;for(let i=0;i<t.length;i++){const r=t[i][e];null!==r&&r>n&&(n=r)}return n}class dc extends cc{then(t,e){return this.finished.finally(t).then((()=>{}))}}const hc=new WeakMap,fc=(t,e="")=>`${t}:${e}`;function pc(t){const e=hc.get(t)||new Map;return hc.set(t,e),e}function mc(t,e){var n,i;return null!==(n=null!==(i=null==t?void 0:t[e])&&void 0!==i?i:null==t?void 0:t.default)&&void 0!==n?n:t}const vc=new Set(["borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","width","maxWidth","height","maxHeight","top","right","bottom","left","inset","insetBlock","insetBlockStart","insetBlockEnd","insetInline","insetInlineStart","insetInlineEnd","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingBlock","paddingBlockStart","paddingBlockEnd","paddingInline","paddingInlineStart","paddingInlineEnd","margin","marginTop","marginRight","marginBottom","marginLeft","marginBlock","marginBlockStart","marginBlockEnd","marginInline","marginInlineStart","marginInlineEnd","fontSize","backgroundPositionX","backgroundPositionY"]);function gc(t,e){for(let n=0;n<t.length;n++)"number"==typeof t[n]&&vc.has(e)&&(t[n]=t[n]+"px")}function yc(t,e){const n=window.getComputedStyle(t);return Zl(e)?n.getPropertyValue(e):n[e]}function bc(t,e,n,i){if(null==t)return[];const r=function(t){if(null==t)return[];if(t instanceof EventTarget)return[t];if("string"==typeof t){const e=document.querySelectorAll(t);return e?Array.from(e):[]}return Array.from(t).filter((t=>null!=t))}(t),o=r.length;Fl(Boolean(o),"No valid elements provided.","no-valid-elements");const s=[];for(let t=0;t<o;t++){const i=r[t],a={...n};"function"==typeof a.delay&&(a.delay=a.delay(t,o));for(const t in e){let n=e[t];Array.isArray(n)||(n=[n]);const r={...mc(a,t)};r.duration&&(r.duration=Pl(r.duration)),r.delay&&(r.delay=Pl(r.delay));const o=pc(i),l=fc(t,r.pseudoElement||""),c=o.get(l);c&&c.stop(),s.push({map:o,key:l,unresolvedKeyframes:n,options:{...r,element:i,name:t,allowFlatten:!a.type&&!a.ease}})}}for(let t=0;t<s.length;t++){const{unresolvedKeyframes:e,options:n}=s[t],{element:i,name:r,pseudoElement:o}=n;o||null!==e[0]||(e[0]=yc(i,r)),Jl(e),gc(e,r),!o&&e.length<2&&e.unshift(yc(i,r)),n.keyframes=e}const a=[];for(let t=0;t<s.length;t++){const{map:e,key:n,options:i}=s[t],r=new lc(i);e.set(n,r),r.finished.finally((()=>e.delete(n))),a.push(r)}return a}const kc=(()=>function(t,e,n){return new dc(bc(t,e,n))})();var wc=na('<button class="svelte-16kucsb"><div class="svelte-16kucsb"> </div></button>'),xc=na('<div class="tryIt-container svelte-16kucsb"><!></div>');const _c={hash:"svelte-16kucsb",code:".eko-gallery-app {--tryItModule_justifyContent: center;--tryItModule_alignItems: flex-end;--tryItModule_padding: 16px 20px 48px 20px;--tryItModule_button_padding: 16px 32px;--tryItModule_button_textAlign: center;--tryItModule_button_borderRadius: 100px;--tryItModule_button_border: 0;--tryItModule_button_boxShadow: 0 4px 24px 2px rgba(0, 0, 0, 0.12);--tryItModule_button_background: #FFFFFF;--tryItModule_button_text_fontFamily: var(--fontName);--tryItModule_button_text_fontSize: 18px;--tryItModule_button_text_color: #222;--tryItModule_button_text_weight: 500;--tryItModule_button_text_lineHeight: 120%;--tryItModule_button_text_letterSpacing: -0.1px;}.tryIt-container.svelte-16kucsb {position:relative;padding:var(--tryItModule_padding);width:100%;height:100%;box-sizing:border-box;display:flex;justify-content:var(--tryItModule_justifyContent);align-items:var(--tryItModule_alignItems);}.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) {padding:var(--tryItModule_button_padding);text-align:var(--tryItModule_button_textAlign);border-radius:var(--tryItModule_button_borderRadius);border:var(--tryItModule_button_border);background:var(--tryItModule_button_background);box-shadow:var(--tryItModule_button_boxShadow);font-family:var(--tryItModule_button_text_fontFamily);font-size:var(--tryItModule_button_text_fontSize);color:var(--tryItModule_button_text_color);font-weight:var(--tryItModule_button_text_weight);line-height:var(--tryItModule_button_text_lineHeight);letter-spacing:var(--tryItModule_button_text_letterSpacing);cursor:pointer;opacity:0;overflow:hidden;}.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) div:where(.svelte-16kucsb) {opacity:0;}"};function Tc(t,e){Vi(e,!0),Aa(t,_c);const n=ho((()=>e.state.ctaText)),i=ho((()=>e.state.animationConfig)),r=ho((()=>e.state.showCta)),o=ho((()=>e.state.onCtaClick));let s=null,a=null,l=_o(!1),c=!1;function u(){c&&kc(s,{transform:"scale(1.05)"},{type:Xl,mass:1.5,stiffness:400,damping:30})}function d(){c&&kc(s,{transform:"scale(1)"},{type:Xl,mass:1.5,stiffness:400,damping:30})}function h(){c&&kc(s,{transform:"scale(0.95)"},{type:Xl,mass:1,stiffness:600,damping:30})}es((()=>{const{mass:t,stiffness:e,damping:n,delay:o}=qs(i);let u;return qs(r)&&(u=setTimeout((async()=>{Io(l,!0),u=null,kc(s,{transform:["translateY(40px) scale(0, 0.2)","translateY(0) scale(1, 1)"],opacity:1},{type:Xl,mass:t,stiffness:e,damping:n}),await kc(a,{transform:["translateY(20px) scale(0.8)","translateY(0) scale(1)"],opacity:1},{type:Xl,mass:t,stiffness:e,damping:n,delay:.15}),c=!0}),o)),()=>{u&&clearTimeout(u)}}));var f=xc(),p=qo(f),m=t=>{var e=wc();e.__mousedown=h,e.__touchstart=h,e.__click=function(...t){var e;null===(e=qs(o))||void 0===e||e.apply(this,t)};var i=qo(e),r=qo(i,!0);Ni(i),tl(i,(t=>a=t),(()=>a)),Ni(e),tl(e,(t=>s=t),(()=>s)),os((()=>{La(e,"pointer-events: "+(qs(l)?"auto":"none")),da(r,qs(n))})),Qs("mouseenter",e,u),Qs("mouseleave",e,d),ra(t,e)};wa(p,(t=>{qs(r)&&t(m)})),Ni(f),ra(t,f),Gi()}Js(["mousedown","touchstart","click"]);var Ic=new WeakSet;function Ec(){this.mainTimeline?this.player.switchTimeline(this.mainTimeline):this.emitModuleEnd(),this.state.showCta=!1}const Sc={videoModule:class extends cl{constructor({config:t,...e}){var n;super({...e,config:t}),this.Component=wl,this.hasDuration=!t.loop,al(this),this.coverAssets.push(null!==(n=t.intro)&&void 0!==n?n:t.video),this.cover=this.coverAssets[0],this.state={textBox:t.textBox}}start(t){super.start(t),this.timeline=t.createTimeline();const e=this.config;e.intro&&this.timeline.placeOnTimeline(dl(`${this.id}_intro`,e.intro,t),"end");const n=dl(this.id,e.video,t);this.timeline.placeOnTimeline(n,"end",{loop:e.loop}),e.loop||n.on("nodeend",this.emitModuleEnd)}},toggleModule:class extends cl{constructor({config:t,...e}){super({...e,config:t}),U(this,El),this.Component=Il,this.synced=t.sync,this.switchTo=()=>{},al(this),this.coverAssets=t.options.map((t=>{var e;return null!==(e=t.intro)&&void 0!==e?e:t.video})),this.cover=this.coverAssets[0],this.state={options:t.options.map((t=>({label:t.label,note:t.note}))),currentOptionIndex:0,onOptionClicked:L(El,this,Sl).bind(this),textBox:t.options[0].textBox}}start(t){super.start(t),this.synced?(this.timeline=t.createTimeline(),this.config.options.forEach(((e,n)=>{this.timeline.placeOnTimeline(dl(`${this.id}_option_${n}`,e.video,t),0,{loop:!0})})),this.timeline.placeRenderNodeOnTimeline("switch",0,1/0,{params:{switchCrossfadeSeconds:.25,initSwitching:({switchTo:t})=>{this.switchTo=t,t(this.state.currentOptionIndex,{crossfadeSeconds:0})}}})):(this.timelines=this.config.options.map(((e,n)=>{const i=t.createTimeline();return e.intro&&i.placeOnTimeline(dl(`${this.id}_option_${n}_intro`,e.intro,t),"end"),i.placeOnTimeline(dl(`${this.id}_option_${n}`,e.video,t),"end",{loop:!0}),i})),this.timeline=this.timelines[this.state.currentOptionIndex])}},tryItModule:class extends cl{constructor({config:t,...e}){var n;super({...e,config:t}),U(this,Ic),al(this);const{introVideo:i}=t;this.coverAssets.push(null!==(n=i.intro)&&void 0!==n?n:i.loop),this.cover=this.coverAssets[0],this.state={ctaText:t.ctaText,animationConfig:t.animationConfig,showCta:!0,onCtaClick:L(Ic,this,Ec).bind(this)}}start(t){super.start(t),this.Component=Tc,this.timeline=t.createTimeline();const{introVideo:e,mainVideo:n}=this.config;if(e.intro&&this.timeline.placeOnTimeline(dl(`${this.id}_intro_intro`,e.intro,t)),this.timeline.placeOnTimeline(dl(`${this.id}_intro_loop`,e.loop,t),"end",{loop:!0}),n){this.mainTimeline=t.createTimeline(),n.intro&&this.mainTimeline.placeOnTimeline(dl(`${this.id}_main_intro`,n.intro,t));const e=dl(`${this.id}_main_loop`,n.loop,t);this.mainTimeline.placeOnTimeline(e,"end",{loop:!0})}}play(){this.state.showCta=!0,super.play()}}};class Ac{#d=Di(_o({}),"GalleryState.#variants");#h=Di(_o("ekonovar"),"GalleryState.#activeVariant");#f=Di(_o(0),"GalleryState.#activeItemIndex");#p=Di(_o(0),"GalleryState.#activeModuleIndex");#m=Di(_o(Fo({itemIndex:0,moduleIndex:0})),"GalleryState.#playingModulePosition");#v=Di(ho((()=>{var t;return null===(t=qs(this.#d))||void 0===t?void 0:t[qs(this.#h)]})),"GalleryState.#currentItemsList");#g=Di(ho((()=>{var t;return null===(t=qs(this.#v))||void 0===t?void 0:t[qs(this.#f)]})),"GalleryState.#currentItem");#y=Di(ho((()=>{var t,e;return qs(this.#b)?null===(e=qs(this.#v))||void 0===e?void 0:e[qs(this.#m).itemIndex].modules[qs(this.#m).moduleIndex]:null===(t=qs(this.#g))||void 0===t?void 0:t.modules[qs(this.#p)]})),"GalleryState.#currentModule");#k=Di(ho((()=>{var t;return(null===(t=qs(this.#v))||void 0===t?void 0:t.flatMap((t=>t.modules)))||[]})),"GalleryState.#currentModulesList");#w=Di(_o(!1),"GalleryState.#playerLoaded");#x=Di(_o(!1),"GalleryState.#paused");#b=Di(_o(!1),"GalleryState.#startedPlaying");#_=Di(ho((()=>!(Do(qs(this.#m).itemIndex,this.activeItemIndex)&&Do(qs(this.#m).moduleIndex,this.activeModuleIndex)))),"GalleryState.#seeking");set variants(t){Io(this.#d,t)}set activeVariant(t){Io(this.#h,t,!0)}set activeItemIndex(t){Io(this.#f,t,!0)}set activeModuleIndex(t){Io(this.#p,t,!0)}set playingModulePosition(t){Io(this.#m,t,!0)}set playerLoaded(t){Io(this.#w,t,!0)}set paused(t){Io(this.#x,t,!0)}set startedPlaying(t){Io(this.#b,t,!0)}get variants(){return qs(this.#d)}get activeVariant(){return qs(this.#h)}get activeItemIndex(){return qs(this.#f)}get activeModuleIndex(){return qs(this.#p)}get playingModulePosition(){return qs(this.#m)}get currentItemsList(){return qs(this.#v)}get currentItem(){return qs(this.#g)}get currentModule(){return qs(this.#y)}get playerLoaded(){return qs(this.#w)}get paused(){return qs(this.#x)}get startedPlaying(){return qs(this.#b)}get seeking(){return qs(this.#_)}get currentModulesList(){return qs(this.#k)}}const Nc={assetsDeliveryBase:"https://{{env}}assets.eko.com"};const Mc=2,Fc=5,Oc=["activeItemIndex","activeModuleIndex","paused","startedPlaying"],Cc=["version","selectItem","selectItemAndStep","next","prev","subscribe"];var Pc=new WeakMap,Dc=new WeakMap,Rc=new WeakMap,Lc=new WeakMap,Bc=new WeakMap,zc=new WeakMap,Wc=new WeakSet;class jc{constructor(t){var e,n,i,r,o;U(this,Wc),W(this,Pc,void 0),W(this,Dc,void 0),W(this,Rc,void 0),W(this,Lc,void 0),W(this,Bc,void 0),W(this,zc,void 0),$(this,"public",void 0),$(this,"version","0.0.16"),al(this),j(Pc,this,(null===(e=crypto)||void 0===e||null===(n=e.randomUUID)||void 0===n?void 0:n.call(e))||`eko-gallery-${Date.now()}`),j(Lc,this,t),j(zc,this,(null==t?void 0:t.onEvent)||(()=>{})),j(Dc,this,new Ac(null==t||null===(i=t.options)||void 0===i?void 0:i.galleryEnv)),j(Bc,this,((t="")=>(Do(t,"production")&&(t=""),Object.fromEntries(Object.entries(Nc).map((([e,n])=>[e,n.replaceAll("{{env}}",t)])))))(null==t||null===(r=t.options)||void 0===r?void 0:r.galleryEnv)),j(Rc,this,[]);const s=null==t||null===(o=t.instance)||void 0===o||null===(o=o.data)||void 0===o||null===(o=o.blocks)||void 0===o||null===(o=o.blocksArr)||void 0===o||null===(o=o.find((t=>Do(t.blockType,"GalleryBlock"))))||void 0===o?void 0:o.config;var a;s?(L(Wc,this,Uc).call(this,s.items),L(Wc,this,$c).call(this,s.items),function(t,e){function n(e){window.EkoAnalytics("registerContextPacker",{tag:t,...e})}function i(e){return function(...n){return n.pop()!==t?null:e(...n)}}"undefined"!=typeof window&&window.EkoAnalytics&&(n({schema:"iglu:com.helloeko/gallery-app/jsonschema/1-0-0",match:/.*/,getData:i((()=>{var t,n,i,r,o;const s=null===(t=e.currentItem)||void 0===t?void 0:t.modules[e.activeModuleIndex];return{itemid:(null===(n=e.currentItem)||void 0===n?void 0:n.id)||"",itemindex:e.activeItemIndex,totalitems:(null===(i=e.currentItemsList)||void 0===i?void 0:i.length)||0,itemname:(null===(r=e.currentItem)||void 0===r?void 0:r.name)||"",moduleid:(null==s?void 0:s.id)||"",modulename:(null==s?void 0:s.name)||"",moduletype:(null==s?void 0:s.config.itemType)||"",moduleindex:e.activeModuleIndex,totalmodules:(null===(o=e.currentItem)||void 0===o?void 0:o.modules.length)||0,version:"0.0.16"}}))}),n({schema:"iglu:com.helloeko/implementation_interactions/jsonschema/1-0-6",match:"interaction",getData:i((t=>t))}))}(z(Pc,this),z(Dc,this))):console.warn("[eko-gallery-app] Gallery initiated without an instance, results will be empty"),this.public=(a=this,Cc.reduce(((t,e)=>{if(!(e in a))throw new Error(`[eko-gallery-app] Public API member "${e}" does not exist on GalleryLogic`);const n=a[e];return t[e]=Do(typeof n,"function")?n.bind(a):n,t}),{}))}dispose(){var t,e;Do(typeof window,"undefined",!1)&&(null===(t=(e=window).EkoAnalytics)||void 0===t||t.call(e,"reset",z(Pc,this)))}start(t){z(Dc,this).playerLoaded=!0,z(Rc,this).forEach((e=>{e.start(t)})),j(Rc,this,null),L(Wc,this,qc).call(this,t),z(Dc,this).currentModule.play()}selectItem(t){const e=z(Dc,this);Do(t,e.activeItemIndex)||(e.activeItemIndex=t,e.activeModuleIndex=0)}selectItemAndStep(t,e){const n=z(Dc,this);Do(t,n.activeItemIndex)&&Do(e,n.activeModuleIndex)||(n.activeItemIndex=t,n.activeModuleIndex=e)}next(){L(Wc,this,Gc).call(this)}prev(){const t=z(Dc,this);if(t.activeModuleIndex=t.activeModuleIndex-1,!t.currentItem.modules[t.activeModuleIndex])if(t.currentItemsList[t.activeItemIndex-1]){t.activeItemIndex=t.activeItemIndex-1;const e=t.currentItemsList[t.activeItemIndex];t.activeModuleIndex=e.modules.length-1}else t.activeModuleIndex=t.activeModuleIndex+1}subscribe(t){const e=z(Dc,this);return function(t){xr.ensure();const e=Jo(Hn|oi,t,!0);return()=>{ds(e)}}((()=>{es((()=>{const n=Oc.reduce(((t,n)=>(t[n]=e[n],t)),{});t(n)}))}))}getCoverUrl(t,e){var n,i,r,o;const s=(null==t||null===(n=t.entity)||void 0===n?void 0:n.entityId)||(null==t?void 0:t.assetId),a=null!==(i=null==t||null===(r=t.entity)||void 0===r?void 0:r.entityRevision)&&void 0!==i?i:null==t?void 0:t.assetRevision;if(!s)throw new Error(`[getCoverUrl] No assetId found in assetConfig: ${JSON.stringify(t||{},null,2)}`);if(!a&&Do(a,0,!1))throw new Error(`[getCoverUrl] No assetRevision found for asset ${s}.`);let l;return null!==(o=z(Lc,this))&&void 0!==o&&null!==(o=o.coverAssetsMap)&&void 0!==o&&o[s]?(l=new URL(z(Lc,this).coverAssetsMap[s]),/^[a-z0-9]*assets.eko.com$/.test(l.host)&&e&&(l.pathname=l.pathname.replace(".png",".webp"))):(l=new URL(`${z(Bc,this).assetsDeliveryBase}/image/${s}/${a}?startOffset=0`),l.pathname+=e?".webp":".png"),e&&l.searchParams.set("width",e),l.href}track(t,...e){var n,i;Do(typeof window,"undefined",!1)&&(null===(n=(i=window).EkoAnalytics)||void 0===n||n.call(i,"track",t,...e,z(Pc,this)))}interaction(t,e){const n=z(Pc,this);return i=>{if(Do(typeof window,"undefined",!1)){var r,o,s,a;const t=null==i||null===(r=i.target)||void 0===r?void 0:r.dataset;let l;null!=i&&null!==(o=i.detail)&&void 0!==o&&o.direction&&(Do(i.detail.direction,"left")?l="swipe_next":Do(i.detail.direction,"right")&&(l="swipe_prev"));const c={elementid:(null==t?void 0:t.elementid)||(null==e?void 0:e.elementid)||"",elementtype:(null==t?void 0:t.elementtype)||(null==e?void 0:e.elementtype)||"",elementname:(null==t?void 0:t.elementname)||(null==e?void 0:e.elementname)||"",interactiontype:l||(null==t?void 0:t.interactiontype)||(null==e?void 0:e.interactiontype)||""};null===(s=(a=window).EkoAnalytics)||void 0===s||s.call(a,"track","interaction",c,n),z(zc,this).call(this,"interaction",c)}t(i)}}get uuid(){return z(Pc,this)}get state(){return z(Dc,this)}get urls(){return z(Bc,this)}}function Uc(t){const e={};for(let n of t)for(let t of Object.keys(n.variants||{}))e[t]=[];e.ekonovar=[],z(Dc,this).variants=e}function $c(t){const e=(t=[],e)=>{const n=[];for(let[i,r]of t.entries()){if(!Sc[r.itemType])throw new Error(`Unknown module type ${r.itemType}`);const t=new Sc[r.itemType]({position:{...e,moduleIndex:i},config:r,gallery:this});t.moduleEndListener=L(Wc,this,Vc).bind(this),n.push(t)}return n};for(const[i,r]of t.entries())if(Do(r.itemType,"galleryItemV2")){const{modules:t,...o}=r;for(const[s,a]of Object.entries(z(Dc,this).variants)){var n;if(null===(n=r.variants)||void 0===n?void 0:n[s])console.log("NO IMPLEMENTED");else{const n={...o};n.modules=e(t,{variantId:s,itemIndex:i}),j(Rc,this,[...z(Rc,this),...n.modules]),a.push(n)}}}}function qc(t){for(const[,e]of Object.entries(z(Dc,this).variants))for(const[n,i]of e.entries()){const r=i.modules,o=e.filter((t=>Do(t,i,!1))).map((t=>t.modules[0]));for(const[i,s]of r.entries()){let a=r[i+1];a||(a=e[(n+1)%e.length].modules[0]);const l=a.timeline.getNodesAtTime(0)[0],c=o.filter((t=>Do(t,a,!1))).map((t=>t.timeline.getNodesAtTime(0)[0])),u=[{nodeId:l.id,weight:Mc},...c.map((t=>({nodeId:t.id,weight:Fc})))];for(const e of s.timeline.placements){t.getNode(e.nodeId).setChildren(u)}}}}function Vc(){const t=z(Dc,this),e=t.currentItem.modules;e.length>1&&Do(t.activeModuleIndex,e.length-1)?t.activeModuleIndex=0:L(Wc,this,Gc).call(this)}function Gc(){const t=z(Dc,this);t.activeModuleIndex=t.activeModuleIndex+1,t.currentItem.modules[t.activeModuleIndex]||(t.currentItemsList[t.activeItemIndex+1]?(t.activeItemIndex=t.activeItemIndex+1,t.activeModuleIndex=0):t.activeModuleIndex=t.activeModuleIndex-1)}var Hc=na('<button><span class="svelte-er27y2"> </span></button>'),Kc=na('<div class="nav-buttons-container svelte-er27y2"><div class="nav-buttons svelte-er27y2"></div></div>');const Xc={hash:"svelte-er27y2",code:".eko-gallery-app {--nav_gap: 10px;--nav_padding: 12px 16px;--nav_bgColor: #FFFFFF;--nav_justifyContent: center;--nav_button_width: fit-content;--nav_button_bgColor: #FFFFFF;--nav_button_borderRadius: 100px;--nav_button_paddingTop: 8px;--nav_button_paddingBottom: var(--nav_button_paddingTop);--nav_button_paddingLeft: 12px;--nav_button_paddingRight: var(--nav_button_paddingLeft);--nav_button_boxShadow: 0 0 0 1px #E7E7E7;--nav_button_gap: 2px;--nav_button_selected_boxShadow: 0 0 0 1px #000000;--nav_button_selected_bgColor: var(--nav_button_bgColor);--nav_button_text_color: #000000;--nav_button_text_fontSize: 14px;--nav_button_text_fontWeight: 500;--nav_button_text_fontFamily: var(--fontName);--nav_button_text_lineHeight: 120%;--nav_button_text_letterSpacing: 0px;--nav_button_text_align: center;--nav_button_selected_text_color: var(--nav_button_text_color);--nav_button_selected_text_fontWeight: var(--nav_button_text_fontWeight);--nav_button_image_borderRadius: calc(var(--nav_button_borderRadius) - var(--nav_button_paddingTop));--nav_arrow_color: var(--secondaryColor);--nav_arrow_bgColor: var(--primaryColor);--nav_arrow_padding: 9px;--nav_arrow_size: 28px;--nav_arrow_boxShadow: 0 0 8px 0 rgba(0, 0, 0, 0.3);}.nav-buttons-container.svelte-er27y2 {width:100%;background-color:var(--nav_bgColor);height:var(--buttonsContainerHeight);display:flex;box-sizing:border-box;text-align:center;justify-content:var(--nav_justifyContent);align-items:center;position:relative;flex-shrink:0;}.nav-buttons-container.svelte-er27y2 :where(.svelte-er27y2) {touch-action:auto;}.nav-buttons.svelte-er27y2 {display:flex;margin:0;gap:var(--nav_gap);height:100%;align-items:center;padding:var(--nav_padding);box-sizing:border-box;overflow-x:auto;scrollbar-width:none;max-width:100%;width:fit-content;overflow-y:hidden;overscroll-behavior-y:none;}.nav-button.svelte-er27y2 {display:flex;outline:none;flex-shrink:0;height:100%;width:var(--nav_button_width);border:none;cursor:pointer;align-items:center;gap:var(--nav_button_gap);background-color:var(--nav_button_bgColor);border-radius:var(--nav_button_borderRadius);\n /* eslint-disable-next-line max-len */padding:var(--nav_button_paddingTop) var(--nav_button_paddingRight) var(--nav_button_paddingBottom) var(--nav_button_paddingLeft);box-shadow:var(--nav_button_boxShadow);}.nav-button.svelte-er27y2 span:where(.svelte-er27y2) {flex:1 0 0;transition:color 0.2s ease-in-out;color:var(--nav_button_text_color);font-weight:var(--nav_button_text_fontWeight);font-size:var(--nav_button_text_fontSize);font-family:var(--nav_button_text_fontFamily);line-height:var(--nav_button_text_lineHeight);letter-spacing:var(--nav_button_text_letterSpacing);text-align:var(--nav_button_text_align);}.nav-button.selected.svelte-er27y2 {background-color:var(--nav_button_selected_bgColor);box-shadow:var(--nav_button_selected_boxShadow);}.nav-button.selected.svelte-er27y2 span:where(.svelte-er27y2) {color:var(--nav_button_selected_text_color);font-weight:var(--nav_button_selected_text_fontWeight);}"};Js(["click"]);const Yc="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20320%20512'%3e%3cpath%20d='M310.6%20233.4c12.5%2012.5%2012.5%2032.8%200%2045.3l-192%20192c-12.5%2012.5-32.8%2012.5-45.3%200s-12.5-32.8%200-45.3L242.7%20256%2073.4%2086.6c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200l192%20192z'/%3e%3c/svg%3e";var Qc=na('<button><img class="svelte-1al44kl"/></button>');const Jc={hash:"svelte-1al44kl",code:'.nav-button.svelte-1al44kl {height:30px;width:30px;border-radius:100%;background-color:transparent;padding:9px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;pointer-events:auto;border:0;opacity:100%;cursor:pointer;transition-property:background-color, box-shadow, opacity;position:relative;}.nav-button.prev.svelte-1al44kl {transform:rotate(180deg);}.nav-button.hidden.svelte-1al44kl {opacity:0;pointer-events:none;}.nav-button.svelte-1al44kl::before {content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;}.nav-button.svelte-1al44kl img:where(.svelte-1al44kl) {height:100%;}'};function Zc(t,e){Aa(t,Jc);const n=nl(e,"hidden",3,!1);var i=Qc();let r;i.__click=function(...t){var n;null===(n=e.onClick)||void 0===n||n.apply(this,t)};var o=qo(i);Ni(i),os((()=>{var t;r=Da(i,1,`nav-button ${null!==(t=e.type)&&void 0!==t?t:""}`,"svelte-1al44kl",r,{hidden:n()}),Ga(i,"aria-label",e.type),Ga(o,"src",Yc),Ga(o,"alt",e.type)})),ra(t,i)}Js(["click"]);var tu=na('<button data-elementtype="step-indicator" data-interactiontype="navigation"><span class="svelte-1mxltt0"> </span></button>'),eu=na('<div class="steps-indicator-container svelte-1mxltt0"><button aria-label="Scroll to previous steps"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="svelte-1mxltt0"><path d="M12.8333 16.6668C12.68 16.6668 12.5266 16.5935 12.4266 16.4601L9.42663 12.2935C9.36482 12.2081 9.33154 12.1055 9.33154 12.0001C9.33154 11.8948 9.36482 11.7921 9.42663 11.7068L12.4266 7.54012C12.4651 7.48671 12.5138 7.44142 12.5698 7.40682C12.6259 7.37222 12.6882 7.349 12.7532 7.33848C12.8182 7.32795 12.8846 7.33033 12.9487 7.34549C13.0128 7.36064 13.0732 7.38826 13.1266 7.42678C13.18 7.46531 13.2253 7.51397 13.2599 7.56999C13.2945 7.62602 13.3177 7.68831 13.3283 7.75331C13.3388 7.81831 13.3364 7.88475 13.3213 7.94883C13.3061 8.01291 13.2785 8.07338 13.24 8.12678L10.4466 12.0001L13.2333 15.8735C13.2864 15.9479 13.3181 16.0355 13.3251 16.1267C13.332 16.2179 13.314 16.3092 13.2728 16.3909C13.2316 16.4725 13.1689 16.5414 13.0915 16.59C13.014 16.6386 12.9247 16.6652 12.8333 16.6668Z" fill="#030303" class="svelte-1mxltt0"></path></svg></button> <div role="group" aria-roledescription="Sequence navigation buttons"></div> <button aria-label="Scroll to next steps"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="svelte-1mxltt0"><path d="M11.1668 16.6666C11.0668 16.6666 10.9601 16.6333 10.8734 16.5733C10.8199 16.5348 10.7746 16.4862 10.7399 16.4302C10.7053 16.3741 10.682 16.3118 10.6715 16.2468C10.6609 16.1818 10.6634 16.1153 10.6786 16.0512C10.6938 15.9871 10.7215 15.9266 10.7601 15.8733L13.5534 11.9999L10.7601 8.12661C10.6001 7.89994 10.6468 7.59328 10.8734 7.42661C11.1001 7.26661 11.4068 7.31994 11.5734 7.53994L14.5734 11.7066C14.7001 11.8799 14.7001 12.1133 14.5734 12.2933L11.5734 16.4599C11.4734 16.5933 11.3201 16.6666 11.1668 16.6666Z" fill="#030303" class="svelte-1mxltt0"></path></svg></button></div>');const nu={hash:"svelte-1mxltt0",code:'.steps-indicator-container.svelte-1mxltt0 {width:calc(100% - 16px);position:absolute;bottom:12px;left:8px;animation-duration:0.75s;animation-timing-function:cubic-bezier(0.36, 0, 0, 1);animation-fill-mode:both;animation-delay:0.15s;\n animation-name: svelte-1mxltt0-gallery-steps-appear-anim;}.steps-indicator.svelte-1mxltt0 {--stepSize: 6px;--stepPadding: 7px;padding:4px 4px;margin:0 16px;display:flex;gap:8px;align-items:center;overflow-x:auto;pointer-events:all;scrollbar-width:none;}.steps-indicator.fade-right.svelte-1mxltt0 {mask-image:linear-gradient(to right, black calc(100% - 20px), transparent);}.steps-indicator.fade-left.svelte-1mxltt0 {mask-image:linear-gradient(to left, black calc(100% - 20px), transparent);}.steps-indicator.fade-left.fade-right.svelte-1mxltt0 {mask-image:linear-gradient(to right, transparent, black 20px, black calc(100% - 20px), transparent);}.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0) {position:relative;overflow:hidden;}.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0):after {transition:0.3s ease-in-out;transition-property:opacity, width;}.step-button.svelte-1mxltt0 {padding:8px 12px;border:#E4E5E8 solid 1px;background-color:#FBFBFB;cursor:pointer;pointer-events:all;flex-shrink:0;border-radius:100px;font-size:12px;font-weight:500;line-height:16px;color:#030303;transition:all 0.3s ease-in-out;outline-color:#3191fc;}.step-button.active.svelte-1mxltt0 {background-color:#014FD3;color:#FFFFFF;box-shadow:none;border-color:#014FD3;}.step-button.active.svelte-1mxltt0:after {opacity:100%;\n animation: svelte-1mxltt0-stepDurationAnimation var(--stepDuration) linear forwards;animation-play-state:running;}.step-button.svelte-1mxltt0:hover:not(.active) {background:#F3F4F6;}.step-button.svelte-1mxltt0:active:not(.active) {background:#E4E5E8;}.step-button.svelte-1mxltt0:focus {outline-offset:4px;outline-width:2px;}.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0) {display:block;box-sizing:border-box;pointer-events:none;white-space:nowrap;}.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0):after {content:"";background-color:rgba(0, 0, 0, 0.6);position:absolute;border-radius:var(--stepSize);width:0;height:100%;top:0;left:-100%;opacity:0;transform:translateX(0);animation-play-state:paused;}.step-arrow.svelte-1mxltt0 {width:34px;height:34px;position:absolute;z-index:10;bottom:4px;border:1px solid #C4C8CF;border-radius:50%;background-color:#FFFFFF;box-shadow:0 2px 3px 0 rgba(0, 0, 0, 0.05);box-sizing:border-box;display:flex;align-items:center;justify-content:center;pointer-events:none;cursor:pointer;opacity:0;}.step-arrow.svelte-1mxltt0:hover {background:#F6F6F7;}.step-arrow.svelte-1mxltt0:active {background:#E4E5E8;}.step-arrow-prev.svelte-1mxltt0 {left:3px;transform:translateX(-100%);\n animation: svelte-1mxltt0-arrow-left-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-prev.visible.svelte-1mxltt0 {pointer-events:auto;\n animation: svelte-1mxltt0-arrow-left-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-next.svelte-1mxltt0 {right:3px;transform:translateX(100%);\n animation: svelte-1mxltt0-arrow-right-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-next.visible.svelte-1mxltt0 {pointer-events:auto;\n animation: svelte-1mxltt0-arrow-right-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}\n\n@keyframes svelte-1mxltt0-gallery-steps-appear-anim {\n from {\n opacity: 0;\n transform: translate(0, 10px);\n }\n to {\n opacity: 1;\n transform: translate(0, 0);\n }\n}\n@keyframes svelte-1mxltt0-gallery-steps-disappear-anim {\n from {\n opacity: 1;\n transform: translate(0, 0);\n }\n to {\n opacity: 0;\n transform: translate(0, 10px);\n }\n}\n@keyframes svelte-1mxltt0-arrow-left-appear {\n from {\n opacity: 0;\n transform: translateX(-100%);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes svelte-1mxltt0-arrow-left-disappear {\n from {\n opacity: 1;\n transform: translateX(0);\n }\n to {\n opacity: 0;\n transform: translateX(-100%);\n }\n}\n@keyframes svelte-1mxltt0-arrow-right-appear {\n from {\n opacity: 0;\n transform: translateX(100%);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes svelte-1mxltt0-arrow-right-disappear {\n from {\n opacity: 1;\n transform: translateX(0);\n }\n to {\n opacity: 0;\n transform: translateX(100%);\n }\n}\n@keyframes svelte-1mxltt0-stepDurationAnimation {\n 0% {\n transform: translateX(0);\n }\n 100% {\n transform: translateX(100%);\n }\n}'};function iu(t,e){Vi(e,!0),Aa(t,nu);const n=16,i=32;let r=nl(e,"gallery",7),o=_o(null),s=_o(null),a=_o(!1),l=_o(!1);const c=ho((()=>{let t=[];return t=r().state.currentItem.modules.map(((t,e)=>({index:e,type:e===r().state.activeModuleIndex?"active":"",name:t.name}))),t}));function u(){qs(o)&&(Io(a,qs(o).scrollLeft>0),Io(l,qs(o).scrollLeft+qs(o).clientWidth<qs(o).scrollWidth-0))}function d(t){qs(o).scrollBy({left:t,behavior:"smooth"})}function h(t,e){const r=t.getBoundingClientRect(),o=e.getBoundingClientRect(),s=n+i;o.left<r.left+i?d(o.left-r.left-s):o.right>r.right-i&&d(o.right-r.right+s)}function f(){const t=Array.from(qs(o).querySelectorAll(".step-button")).find((t=>{const e=t.getBoundingClientRect(),n=qs(o).getBoundingClientRect();return e.left>n.left+i}));if(t){const e=t.previousElementSibling;e&&h(qs(o),e)}}function p(){const t=Array.from(qs(o).querySelectorAll(".step-button")).reverse().find((t=>{const e=t.getBoundingClientRect(),n=qs(o).getBoundingClientRect();return e.right<n.right-i}));if(t){const e=t.nextElementSibling;e&&h(qs(o),e)}}es((()=>{if(qs(o)){u();const t=qs(o).querySelector(".step-button.active");t&&Io(s,t,!0);const e=new MutationObserver((()=>{const t=qs(o).querySelector(".step-button.active");t&&Io(s,t,!0)}));e.observe(qs(o),{attributes:!0,attributeFilter:["class"],subtree:!0});const n=new ResizeObserver((()=>{u()}));return n.observe(qs(o)),()=>{e.disconnect(),n.disconnect()}}})),es((()=>{qs(c),qs(o)&&$s().then(u)})),es((()=>{qs(s)&&qs(o)&&h(qs(o),qs(s))}));var m=ia();Qs("resize",Ro,u),function(t,e,n){Ii&&Ai();var i=new ya(t);ss((()=>{var t=e();i.ensure(t,n)}))}(Vo(m),(()=>r().state.activeItemIndex),(t=>{var e=eu(),n=qo(e);let i;n.__click=f;var s=Go(n,2);let d;Ta(s,21,(()=>qs(c)),xa,((t,e)=>{var n=tu();let i;var s=ho((()=>r().interaction((t=>{return n=t.currentTarget,i=qs(e).index,r().state.activeModuleIndex=i,void h(qs(o),n);var n,i}))));n.__click=function(...t){var e;null===(e=qs(s))||void 0===e||e.apply(this,t)};var a=qo(n),l=qo(a,!0);Ni(a),Ni(n),os((()=>{i=Da(n,1,"step-button svelte-1mxltt0",null,i,{active:"active"===qs(e).type}),Ga(n,"aria-label",`Go to step $${qs(e).index+1}`),Ga(n,"data-elementid",`${qs(e).index+1}`),Ga(n,"data-elementname",qs(e).name),da(l,qs(e).name)})),ra(t,n)})),Ni(s),tl(s,(t=>Io(o,t)),(()=>qs(o)));var m=Go(s,2);let v;m.__click=p,Ni(e),os((()=>{var t;i=Da(n,1,"step-arrow step-arrow-prev svelte-1mxltt0",null,i,{visible:qs(a)}),d=Da(s,1,"steps-indicator svelte-1mxltt0",null,d,{"with-duration":r().state.currentModule.hasDuration,paused:r().state.paused,"fade-left":qs(a),"fade-right":qs(l)}),La(s,`--stepDuration: ${null!==(t=r().state.currentModule.duration)&&void 0!==t?t:""}s`),v=Da(m,1,"step-arrow step-arrow-next svelte-1mxltt0",null,v,{visible:qs(l)})})),Qs("scroll",s,u),ra(t,e)})),ra(t,m),Gi()}Js(["click"]);const ru="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.01318%203.42005C3.01318%202.06672%204.50652%201.26672%205.66652%201.90672C6.82652%202.54672%2014.0732%206.48672%2014.0732%206.48672C15.2865%207.15339%2015.2865%208.86005%2014.0732%209.52005L5.66652%2014.1001C4.50652%2014.7334%203.01318%2013.9401%203.01318%2012.5801V3.42005ZM3.98652%2012.5801C3.98652%2013.1334%204.63318%2013.5467%205.19985%2013.2401L13.6065%208.66005C14.1399%208.36672%2014.1465%207.63339%2013.6065%207.34005C13.0665%207.04672%205.19985%202.76005%205.19985%202.76005C4.63985%202.44672%203.98652%202.86005%203.98652%203.42005V12.5801Z'%20fill='%23030303'/%3e%3c/svg%3e",ou="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M10.8332%2014C10.5598%2014%2010.3332%2013.7733%2010.3332%2013.5V2.5C10.3332%202.22667%2010.5598%202%2010.8332%202C11.1065%202%2011.3332%202.22667%2011.3332%202.5V13.5C11.3332%2013.7733%2011.1065%2014%2010.8332%2014ZM5.1665%2014C4.89317%2014%204.6665%2013.7733%204.6665%2013.5V2.5C4.6665%202.22667%204.89317%202%205.1665%202C5.43984%202%205.6665%202.22667%205.6665%202.5V13.5C5.6665%2013.7733%205.43984%2014%205.1665%2014Z'%20fill='%23030303'/%3e%3c/svg%3e";var su=na('<img alt="Play" class="svelte-a3r6re"/>'),au=na('<img alt="Pause" class="svelte-a3r6re"/>'),lu=na('<button class="pause-button svelte-a3r6re" data-elementid="play_pause" data-elementtype="button"><!></button>');const cu={hash:"svelte-a3r6re",code:".pause-button.svelte-a3r6re {position:absolute;top:10px;right:10px;background:#FFFFFF;border-radius:100%;border:1px #C4C8CF solid;padding:0;width:32px;height:32px;display:flex;justify-content:center;align-items:center;pointer-events:auto;transition:background 0.2s ease-in-out;cursor:pointer;outline-color:#3191fc;}.pause-button.svelte-a3r6re:hover {background:#F6F6F7;}.pause-button.svelte-a3r6re:active {background:#E4E5E8;}.pause-button.svelte-a3r6re:focus {outline-offset:8px;outline-width:2px;}.pause-button.svelte-a3r6re img:where(.svelte-a3r6re) {width:16px;height:16px;pointer-events:none;}"};Js(["click"]);const uu=300,du=60,hu="none";function fu(t,e,n){return t.addEventListener(e,n),()=>t.removeEventListener(e,n)}function pu(t,e,n){const{x:i,y:r}=function(t,e){const n=t.getBoundingClientRect();return{x:Math.round(e.clientX-n.left),y:Math.round(e.clientY-n.top)}}(t,e);return{event:e,pointersCount:n.length,target:e.target,x:i,y:r,attachmentNode:t}}function mu(t,e,n,i,r){const o=pu(t,n,i);return t.dispatchEvent(new CustomEvent(`${e}${r}`,{detail:o})),o}function vu(){let t=[],e=()=>{},n=[];return{setPointerControls:(i,r,o,s,a,l=hu,c=[])=>{var u;if(r.style.touchAction=(u=l,Array.isArray(u)?u:[u]).join(" "),n=c,n.forEach((e=>{var n;null===(n=e.onInit)||void 0===n||n.call(e,t)})),!t.length){let l=function(e){t.push(e);const l=mu(r,i,e,t,"down");function c(e){const o=t.length;t=function(t,e){return e.filter((e=>Do(t.pointerId,e.pointerId,!1)))}(e,t);if(o>t.length){t.length||(u(),d(),h(),f());const o=mu(r,i,e,t,"up");null==a||a(t,e),setTimeout((()=>{n.forEach((e=>{var n;null===(n=e.onUp)||void 0===n||n.call(e,o,t)}))}))}}null==s||s(t,e),setTimeout((()=>{n.forEach((e=>{var n;null===(n=e.onDown)||void 0===n||n.call(e,l,t)}))}));const u=fu(r,"pointermove",(e=>{t=t.map((t=>Do(e.pointerId,t.pointerId)?e:t));const s=mu(r,i,e,t,"move");null==o||o(t,e),n.forEach((e=>{var n;null===(n=e.onMove)||void 0===n||n.call(e,s,t)}))})),d=fu(r,"lostpointercapture",(t=>{c(t)})),h=fu(r,"pointerup",(t=>{c(t)})),f=fu(r,"pointerleave",(t=>{c(t)}))};e=fu(r,"pointerdown",l)}return{destroy:()=>{t.length||(e(),n.forEach((t=>{var e;null===(e=t.onDestroy)||void 0===e||e.call(t)})))}}}}}const gu="@attach";function yu(){return Symbol(gu)}const bu="swipe";function ku(t,e,n,i=!1){const{setPointerControls:r}=vu(),o=i?bu:yu();return{...n,[`on${bu}`]:t,[o]:t=>{const{onDown:n,onUp:i,parameters:o}=function(t,e){const n={timeframe:uu,minSwipeDistance:du,touchAction:hu,composed:!1,...e};let i,r,o,s;function a(t,e){r=e.clientX,o=e.clientY,i=Date.now(),Do(t.length,1)&&(s=e.target)}function l(e,a){if(Do(a.type,"pointerup")&&Do(e.length,0)&&Date.now()-i<n.timeframe){const e=a.clientX-r,i=a.clientY-o,l=Math.abs(e),c=Math.abs(i);let u=null;l>=2*c&&l>n.minSwipeDistance?u=e>0?"right":"left":c>=2*l&&c>n.minSwipeDistance&&(u=i>0?"bottom":"top"),u&&t.dispatchEvent(new CustomEvent(bu,{detail:{direction:u,target:s,pointerType:a.pointerType}}))}}return{onDown:a,onUp:l,parameters:n}}(t,null==e?void 0:e());return r(bu,t,null,n,i,o.touchAction,o.plugins).destroy}}}const wu="tap";function xu(t,e,n,i=!1){const{setPointerControls:r}=vu(),o=i?wu:yu();return{...n,[`on${wu}`]:t,[o]:t=>{const{onDown:n,onUp:i,parameters:o}=function(t,e){const n={timeframe:uu,composed:!1,touchAction:"auto",...e};let i,r,o;function s(e,s){if(Math.abs(s.clientX-r)<4&&Math.abs(s.clientY-o)<4&&Date.now()-i<n.timeframe){const e=t.getBoundingClientRect(),n=Math.round(s.clientX-e.left),i=Math.round(s.clientY-e.top);t.dispatchEvent(new CustomEvent(wu,{detail:{x:n,y:i,target:s.target,pointerType:s.pointerType}}))}}function a(t,e){r=e.clientX,o=e.clientY,i=Date.now()}return{onDown:a,onUp:s,parameters:n}}(t,null==e?void 0:e());return r(wu,t,null,n,i,o.touchAction,o.plugins).destroy}}}const _u=t=>{const e="#00ff00",n=1e6,i=4;let r,o,s,a=null,l=!1,c=Date.now();const u={x:void 0,y:void 0};function d(){const e=t.fadeTime,n=Date.now(),i=n-c;i>e/20&&(a&&o&&s&&r&&(s.drawImage(r,0,0),a.clearRect(0,0,r.width,r.height),a.globalAlpha=1-3*i/e,a.drawImage(o,0,0),a.globalAlpha=1,s.clearRect(0,0,r.width,r.height)),c=n),l&&requestAnimationFrame(d)}function h(t){u.x=t.x,u.y=t.y}function f(){a&&o&&r&&(a.canvas.width=window.innerWidth,a.canvas.height=window.innerHeight,o.width=r.width,o.height=r.height)}function p(e){var i;m(),r=window.document.createElement("canvas"),r.id="svelte-gestures-highlight-plugin",a=r.getContext("2d"),r.style.cssText=`\ndisplay: block; \nwidth: 100dvw;\nheight: 100dvh;\ntop: 0;\nleft: 0;\nposition: fixed;\npointer-events: none;\nz-index: ${null!==(i=t.zIndex)&&void 0!==i?i:n};\n`,window.document.body.appendChild(r),window.addEventListener("resize",f),e&&h(e.event),o=document.createElement("canvas"),f(),s=o.getContext("2d"),l=!0,d()}function m(){var t;l=!1,null===(t=window.document.getElementById("svelte-gestures-highlight-plugin"))||void 0===t||t.remove(),window.removeEventListener("resize",f)}return{onMove:n=>{var r,o,s;r=n.event,a&&(a.beginPath(),a.lineWidth=null!==(o=t.lineWidth)&&void 0!==o?o:i,a.lineCap="round",a.strokeStyle=null!==(s=t.color)&&void 0!==s?s:e,Do(u.x,void 0,!1)&&Do(u.y,void 0,!1)?(a.moveTo(u.x,u.y),h(r),a.lineTo(u.x,u.y)):h(r),a.stroke())},onDown:t=>{p(t)},onUp:(t,e)=>{Do(e.length,0)&&m()},onDestroy:m,onInit:t=>{t.length&&(u.x=void 0,u.y=void 0,p())}}};var Tu=na("<div></div>"),Iu=na("<div></div>");const Eu={hash:"svelte-1fv6njc",code:".swiper.svelte-1fv6njc {position:absolute;top:0;left:0;pointer-events:auto;width:100%;height:100%;}"};var Su=na("<img/>"),Au=na('<div class="ui-container svelte-1rvgxfc"><!></div>'),Nu=na('<div class="cover-container svelte-1rvgxfc"><!> <!> <!></div>'),Mu=na('<div class="covers-container svelte-1rvgxfc" style="scroll-behavior: auto;"></div>');const Fu={hash:"svelte-1rvgxfc",code:".covers-container.svelte-1rvgxfc {position:absolute;top:0;left:0;bottom:0;right:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;display:flex;gap:0.5px;}.covers-container.svelte-1rvgxfc::-webkit-scrollbar {display:none;}.cover-container.svelte-1rvgxfc {position:relative;display:flex;width:100%;height:100%;flex-shrink:0;scroll-snap-align:center;user-select:none;justify-content:center;align-items:center;}.cover-image.svelte-1rvgxfc {width:var(--videoWidth);height:var(--videoHeight);aspect-ratio:var(--videoAspect);object-fit:cover;pointer-events:none;background:#ffffff;}.cover-image.hidden.svelte-1rvgxfc {opacity:0;}.cover-image.hidden.force-show.svelte-1rvgxfc {opacity:1;background:transparent;}.ui-container.svelte-1rvgxfc {position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none;}"};function Ou(t,e){Vi(e,!0),Aa(t,Fu);const n=[375,768,1024,1400,1920];let i,r=nl(e,"scrollOffset",15),o=nl(e,"isMobile",3,!1),s=nl(e,"gallery",7),a=ho((()=>s().state.playingModulePosition)),l=null,c=null,u=ho((()=>s().state.startedPlaying)),d=ho((()=>s().state.currentModulesList)),h=ho((()=>qs(d).findIndex((t=>p(s().state.playingModulePosition,t.position))))),f=!1;function p(t,e){return t.itemIndex===e.itemIndex&&t.moduleIndex===e.moduleIndex}function m(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}function v(t){var e;o()&&t.preventDefault();const{target:n}=t,u=m(n),f=(null===(e=qs(d))||void 0===e?void 0:e.length)||1,v=100/(f-1||1),g=Math.round(u/v);let y=Math.min(g,f-1);const b=qs(d)[y],k={itemIndex:s().state.activeItemIndex,moduleIndex:s().state.activeModuleIndex};if(!l){const t=i.children[qs(h)],e=i.getBoundingClientRect(),n=t.getBoundingClientRect();r(n.x-e.x)}c&&clearTimeout(c),c=setTimeout((()=>{const t=m(n);Math.abs(t-g*v)<.25&&async function(){s().state.seeking&&(s().state.playerLoaded?s().state.currentItemsList[s().state.activeItemIndex].modules[s().state.activeModuleIndex].play():s().state.playingModulePosition=qs(a),r(0))}()}),l?0:150),null!==l||p(b.position,k)?null!==l&&p(b.position,l)&&(l=null):(s().state.activeItemIndex=b.position.itemIndex,s().state.activeModuleIndex=b.position.moduleIndex),Io(a,b.position)}function g(){f||(s().track("coverdisplay"),f=!0)}es((()=>{const{activeItemIndex:t,activeModuleIndex:e}=s().state;t===qs(a).itemIndex&&e===qs(a).moduleIndex||Hs((()=>{var n,r;const o=qs(d).findIndex((n=>{const{itemIndex:i,moduleIndex:r}=n.position;return t===i&&e===r}));l=(null===(n=qs(d)[o])||void 0===n?void 0:n.position)||null;const s=null===(r=i)||void 0===r||null===(r=r.children)||void 0===r?void 0:r[o];if(!i||!s)return;const a=i.getBoundingClientRect(),c=s.getBoundingClientRect();let u=i.scrollLeft+(c.left-a.left);const h=Math.max(0,i.scrollWidth-i.clientWidth);u=Math.max(0,Math.min(h,u)),i.scrollTo({left:u,behavior:"auto"})}))})),es((()=>{qs(u)&&Hs((()=>{s().track("projectstartedplaying")}))}));var y=ia(),b=Vo(y),k=t=>{var r=Mu();Ta(r,23,(()=>qs(d)),(t=>t.id),((t,i,r)=>{var a=Nu(),l=qo(a),c=t=>{var e=Su();let o;os((t=>{o=Da(e,1,"cover-image svelte-1rvgxfc",null,o,{hidden:qs(u)&&qs(r)===qs(h),"force-show":qs(i).showCover}),Ga(e,"src",t),Ga(e,"alt",qs(i).name),Ga(e,"fetchpriority",0===qs(r)?"high":"auto")}),[()=>s().getCoverUrl(qs(i).cover,n[n.length-1])]),Qs("load",e,(function(...t){var e;null===(e=0===qs(r)?g:()=>{})||void 0===e||e.apply(this,t)})),function(t){if(!Ii)return;t.removeAttribute("onload"),t.removeAttribute("onerror");const e=t.__e;void 0!==e&&(t.__e=void 0,queueMicrotask((()=>{t.isConnected&&t.dispatchEvent(e)})))}(e),ra(t,e)};wa(l,(t=>{t(c)}));var d=Go(l,2);!function(t,e){Vi(e,!0),Aa(t,Eu);const n={color:"#e3e3e3",fadeTime:300,lineWidth:8},i=ku(e.gallery.interaction((t=>{const{direction:n}=t.detail;var i;if("left"===n)null===(i=e.gallery)||void 0===i||i.next(),e.onEvent("swipe",[-1,0]);else if("right"===n){var r;null===(r=e.gallery)||void 0===r||r.prev(),e.onEvent("swipe",[1,0])}}),{elementid:"swiper"}),(()=>({touchAction:"pan-y",plugins:e.debug?[_u(n)]:[]}))),r=xu((function(t){const{x:n,y:i}=t.detail;e.onEvent("click",{x:n,y:i})}),(()=>({touchAction:"pan-y"})));var o=ia(),s=Vo(o),a=t=>{var e=Tu();Ha(e,(()=>({...i,...r,class:"swiper"})),void 0,void 0,void 0,"svelte-1fv6njc"),ra(t,e)},l=t=>{var e=Iu();Ha(e,(()=>({...r,class:"swiper"})),void 0,void 0,void 0,"svelte-1fv6njc"),ra(t,e)};wa(s,(t=>{e.isMobile?t(a):t(l,!1)})),ra(t,o),Gi()}(d,{get gallery(){return s()},get debug(){return e.debug},get isMobile(){return o()},get onEvent(){return e.onEvent}});var f=Go(d,2),p=t=>{var e=Au();!function(t,e,n){Ii&&Ai();var i=new ya(t);ss((()=>{var t,r=null!==(t=e())&&void 0!==t?t:null;i.ensure(r,r&&(t=>n(t,r)))}),ni)}(qo(e),(()=>qs(i).Component),((t,e)=>{e(t,{get state(){return qs(i).state},get gallery(){return s()},get isMobile(){return o()}})})),Ni(e),ra(t,e)};wa(f,(t=>{var e;null!==(e=qs(i))&&void 0!==e&&e.Component&&t(p)})),Ni(a),ra(t,a)})),Ni(r),tl(r,(t=>i=t),(()=>i)),Qs("scroll",r,v),ra(t,r)};wa(b,(t=>{qs(d)&&t(k)})),ra(t,y),Gi()}const Cu="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};let Pu;function Du(){const t=Cu&&Cu.navigator&&(Cu.navigator.userAgent||Cu.navigator.platform||Cu.navigator.vendor)||"";if(Pu&&Pu.ua===t)return Pu;const e=t.toLowerCase(),n=e.includes("android"),i=e.includes("iphone")||e.includes("ipad")||e.includes("ipod")||e.includes("ios"),r=n||i||e.includes("mobile");return Pu={ua:t,isMobile:r},Pu}var Ru,Lu;"undefined"!=typeof window&&(window.addEventListener("pageshow",(function(t){t.persisted&&setTimeout((function(){window.location.reload()}),10)}),!1),null===(Ru=(Lu=window).EkoAnalytics)||void 0===Ru||Ru.call(Lu,"track","init"));var Bu=na('<div class="paging-buttons svelte-1n46o8q"><!> <!></div>'),zu=na('<div style="position: absolute; top: 0; left: 0; width: 100%;"></div>'),Wu=na("<!> <!>",1),ju=na('<div class="player-container svelte-1n46o8q"><div class="player-div swipable svelte-1n46o8q"></div> <!> <!> <!> <!></div> <!>',1),Uu=na('<div class="eko-gallery-app svelte-1n46o8q"><!></div>');const $u={hash:"svelte-1n46o8q",code:'.eko-gallery-app.svelte-1n46o8q {position:relative;width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}.eko-gallery-app.svelte-1n46o8q:hover .paging-buttons:where(.svelte-1n46o8q) .nav-button {background-color:#FFFFFF;box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.12);}.eko-gallery-app.svelte-1n46o8q * {box-sizing:border-box;touch-action:pan-y;font-family:"Human BBY Digital", sans-serif;}.player-container.svelte-1n46o8q {position:relative;flex:1;width:100%;pointer-events:none;overflow:hidden;border-radius:16px;display:flex;align-items:center;justify-content:center;}.player-div.svelte-1n46o8q {position:absolute;width:var(--videoWidth);height:var(--videoHeight);aspect-ratio:var(--videoAspect);}.swipable.svelte-1n46o8q {will-change:transform;transform:translate3d(var(--uiTranformX, 0), 0, 0);}.paging-buttons.svelte-1n46o8q {position:absolute;top:0;left:0;bottom:0;right:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none;padding:0 12px;}.paging-buttons.svelte-1n46o8q .nav-button {transition:0.2s ease-in-out;box-shadow:none;}.paging-buttons.svelte-1n46o8q .nav-button img {opacity:0.6;}'};function qu(t,e){Vi(e,!0),Aa(t,$u);const n=nl(e,"config",19,(()=>({}))),i=nl(e,"forceMobile",3,!1),r=nl(e,"videoAspectRatio",3,"unset"),o=nl(e,"onGalleryReady",3,(()=>{})),s=nl(e,"onEvent",3,(()=>{}));let a,l=!1,c=_o(new jc({...n(),onEvent:s()})),u=_o(null),d=ho((()=>i()||Du().isMobile)),h=_o(0),f=_o(void 0),p=_o(!0),m=_o(Fo({width:"100%",height:"100%"}));var v,g,y;function b(){const t={AssetsDeliveryService:{assetsDeliveryServiceUrl:qs(c).urls.assetsDeliveryBase},Tracker:{tag:qs(c).uuid}};Io(u,new e.EkoPlayer(a,function(t,...e){function n(t){return"[object Object]"===Object.prototype.toString.call(t)}function i(t,e){if(Array.isArray(e)){Array.isArray(t)||(t=Array.isArray(t)?t.slice():[]);const r=Math.max(t.length,e.length);for(let o=0;o<r;o++){const r=t[o],s=e[o];null!=s&&(n(r)&&n(s)?t[o]=i({...r},s):Array.isArray(r)&&Array.isArray(s)?t[o]=i(r.slice(),s):n(s)?t[o]=i({},s):Array.isArray(s)?t[o]=i([],s):t[o]=s)}return t}if(n(e)){n(t)||(t={});for(const r of Object.keys(e)){const o=t[r],s=e[r];n(o)&&n(s)?t[r]=i({...o},s):Array.isArray(o)&&Array.isArray(s)?t[r]=i(o.slice(),s):n(s)?t[r]=i({},s):Array.isArray(s)?t[r]=i([],s):void 0!==s&&(t[r]=s)}return t}return e}for(const n of e)null!==n&&i(t,n);return t}({},e.playerOptions,t))),qs(u).on("playing",(()=>{qs(c).state.paused=!1})),qs(u).on("pause",(()=>{qs(c).state.paused=!0})),qs(u).once("playing",(()=>{qs(c).state.startedPlaying=!0,s()("galleryloaded")}))}function k(t){var e;null===(e=qs(c))||void 0===e||e.selectItem(t)}function w(){var t;null===(t=qs(c))||void 0===t||t.next()}function x(){var t;null===(t=qs(c))||void 0===t||t.prev()}function _(){qs(u).paused?qs(u).play():qs(u).pause()}function T(){return`--uiTranformX: ${qs(h)}px;--videoAspect: ${r()};--videoWidth: ${qs(m).width};--videoHeight: ${qs(m).height};`}v="state",g=()=>qs(c).state,Hi("setContext").set(v,g),y=()=>(o()(qs(c).public),n()&&e.EkoPlayer&&(b(),qs(c).start(qs(u))),()=>{var t;null===(t=qs(u))||void 0===t||t.dispose(),qs(c).dispose()}),null===Bi&&bi("onMount"),es((()=>{const t=Hs(y);if("function"==typeof t)return t})),es((()=>{n()&&e.EkoPlayer&&(l?Hs((()=>{var t;qs(c).dispose(),Io(c,new jc({...n(),onEvent:s()})),null===(t=qs(u))||void 0===t||t.dispose(),Io(p,!1),$s().then((()=>(Io(p,!0),$s()))).then((()=>{o()(qs(c).public),b(),qs(c).start(qs(u))}))})):l=!0)})),es((()=>{qs(f)&&qs(u)&&qs(u).loadDebugOverlay({containerElement:qs(f)})})),es((()=>{if("unset"!==r()&&r().includes("/")){const[t,e]=r().split("/").map((t=>Number(t)));isNaN(t)||isNaN(e)||Io(m,t>e?{width:"100%",height:"auto"}:{width:"auto",height:"100%"},!0)}else Io(m,{width:"100%",height:"100%"},!0)}));var I=Uu(),E=qo(I),S=t=>{var n=ju(),i=Vo(n),r=qo(i);tl(r,(t=>a=t),(()=>a));var o=Go(r,2);Ou(o,{get isMobile(){return qs(d)},get gallery(){return qs(c)},get debug(){return e.debug},get onEvent(){return s()},get scrollOffset(){return qs(h)},set scrollOffset(t){Io(h,t,!0)}});var l=Go(o,2),u=t=>{var e=Bu(),n=qo(e);Zc(n,{type:"prev",onClick:x}),Zc(Go(n,2),{type:"next",onClick:w}),Ni(e),ra(t,e)};wa(l,(t=>{qs(d)||e.hideNav||t(u)}));var p=Go(l,2),m=t=>{iu(t,{get gallery(){return qs(c)}})};wa(p,(t=>{var e;!qs(d)&&(null===(e=qs(c).state.currentItem)||void 0===e?void 0:e.modules.length)>1&&t(m)}));var v=Go(p,2),g=t=>{var n=Wu(),i=Vo(n);!function(t,e){Vi(e,!0),Aa(t,cu);const n=qi("state");let i=ho((()=>n().paused));var r=lu(),o=ho((()=>e.gallery.interaction(e.onPauseClick)));r.__click=function(...t){var e;null===(e=qs(o))||void 0===e||e.apply(this,t)};var s=qo(r),a=t=>{var e=su();os((()=>Ga(e,"src",ru))),ra(t,e)},l=t=>{var e=au();os((()=>Ga(e,"src",ou))),ra(t,e)};wa(s,(t=>{n().paused?t(a):t(l,!1)})),Ni(r),os((()=>{Ga(r,"aria-label",qs(i)?"Play":"Pause"),Ga(r,"data-interactiontype",qs(i)?"play":"pause")})),ra(t,r),Gi()}(i,{onPauseClick:_,get gallery(){return qs(c)}});var r=Go(i,2),o=t=>{var e=zu();tl(e,(t=>Io(f,t)),(()=>qs(f))),ra(t,e)};wa(r,(t=>{e.debug&&t(o)})),ra(t,n)};wa(v,(t=>{qs(c).state.startedPlaying&&t(g)})),Ni(i);var y=Go(i,2),b=t=>{!function(t,e){Vi(e,!0),Aa(t,Xc);let n=nl(e,"onNavItemClick",3,(()=>{}));const i=qi("state");var r=Kc(),o=qo(r);Ta(o,23,(()=>i().currentItemsList),(t=>t.id),((t,e,r)=>{var o=Hc();let s;o.__click=()=>n()(qs(r));var a=qo(o),l=qo(a,!0);Ni(a),Ni(o),os((t=>{s=Da(o,1,"nav-button svelte-er27y2",null,s,t),da(l,qs(e).name)}),[()=>({selected:qs(r)===i().activeItemIndex})]),ra(t,o)})),Ni(o),Ni(r),ra(t,r),Gi()}(t,{onNavItemClick:k})};wa(y,(t=>{e.hideNav||t(b)})),os((t=>La(i,t)),[T]),ra(t,n)};wa(E,(t=>{n()&&qs(p)&&t(S)})),Ni(I),ra(t,I),Gi()}function Vu(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Gu,Hu,Ku,Xu,Yu={exports:{}},Qu=Vu((Gu||(Gu=1,Ku=Yu.exports,Xu=function(){var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],r={},o=null;function s(t,e){var n=t[e];if("function"==typeof n.bind)return n.bind(t);try{return Function.prototype.bind.call(n,t)}catch(e){return function(){return Function.prototype.apply.apply(n,[t,arguments])}}}function a(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function l(){for(var n=this.getLevel(),r=0;r<i.length;r++){var o=i[r];this[o]=r<n?t:this.methodFactory(o,n,this.name)}if(this.log=this.debug,typeof console===e&&n<this.levels.SILENT)return"No console available for logging"}function c(t){return function(){typeof console!==e&&(l.call(this),this[t].apply(this,arguments))}}function u(i,r,o){return"debug"===(l=i)&&(l="log"),typeof console!==e&&("trace"===l&&n?a:void 0!==console[l]?s(console,l):void 0!==console.log?s(console,"log"):t)||c.apply(this,arguments);var l}function d(t,n){var s,a,c,d=this,h="loglevel";function f(){var t;if(typeof window!==e&&h){try{t=window.localStorage[h]}catch(t){}if(typeof t===e)try{var n=window.document.cookie,i=encodeURIComponent(h),r=n.indexOf(i+"=");-1!==r&&(t=/^([^;]+)/.exec(n.slice(r+i.length+1))[1])}catch(t){}return void 0===d.levels[t]&&(t=void 0),t}}function p(t){var e=t;if("string"==typeof e&&void 0!==d.levels[e.toUpperCase()]&&(e=d.levels[e.toUpperCase()]),"number"==typeof e&&e>=0&&e<=d.levels.SILENT)return e;throw new TypeError("log.setLevel() called with invalid level: "+t)}"string"==typeof t?h+=":"+t:"symbol"==typeof t&&(h=void 0),d.name=t,d.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},d.methodFactory=n||u,d.getLevel=function(){return null!=c?c:null!=a?a:s},d.setLevel=function(t,n){return c=p(t),!1!==n&&function(t){var n=(i[t]||"silent").toUpperCase();if(typeof window!==e&&h){try{return void(window.localStorage[h]=n)}catch(t){}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch(t){}}}(c),l.call(d)},d.setDefaultLevel=function(t){a=p(t),f()||d.setLevel(t,!1)},d.resetLevel=function(){c=null,function(){if(typeof window!==e&&h){try{window.localStorage.removeItem(h)}catch(t){}try{window.document.cookie=encodeURIComponent(h)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(t){}}}(),l.call(d)},d.enableAll=function(t){d.setLevel(d.levels.TRACE,t)},d.disableAll=function(t){d.setLevel(d.levels.SILENT,t)},d.rebuild=function(){if(o!==d&&(s=p(o.getLevel())),l.call(d),o===d)for(var t in r)r[t].rebuild()},s=p(o?o.getLevel():"WARN");var m=f();null!=m&&(c=p(m)),l.call(d)}(o=new d).getLogger=function(t){if("symbol"!=typeof t&&"string"!=typeof t||""===t)throw new TypeError("You must supply a name when creating a logger.");var e=r[t];return e||(e=r[t]=new d(t,o.methodFactory)),e};var h=typeof window!==e?window.log:void 0;return o.noConflict=function(){return typeof window!==e&&window.log===o&&(window.log=h),o},o.getLoggers=function(){return r},o.default=o,o},(Hu=Yu).exports?Hu.exports=Xu():Ku.log=Xu()),Yu.exports));const Ju=()=>{},Zu=["trace","log","debug","info","warn","error","getLevel","setLevel"],td=["trace","debug","info","warn","error","silent"],ed={TRACE:"color: white; background-color: magenta;",DEBUG:"color: black; background-color: turquoise;",INFO:"color: white; background-color: green;",WARN:"color: black; background-color: yellow;",ERROR:"color: white; background-color: red;"},nd="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global;let id={level:"trace",appName:""},rd=[];const od="object"==typeof nd&&nd.performance&&"function"==typeof nd.performance.now?nd.performance.now.bind(nd.performance):Date.now.bind(Date),sd=t=>t&&"string"==typeof t?t.toLowerCase().trim():"",ad=(()=>{try{const t=new URLSearchParams(document.location.search),e=[].concat(t.getAll("log")).concat(t.getAll("ekolog")).concat(t.getAll("ekologger")).join(",").split(",");if(0===e.length)return{};let n={};return e.forEach((t=>{const[e,i]=t.split(":");n[sd(e)]=sd(i)||"trace"})),n}catch(t){return{}}})(),ld=(t,e="")=>{const n=sd(t),i=Qu.getLogger(n);if(i.__ekologger)return i.__ekologger;e||ad[n]||ad["*"]||(i.__noExplicitLevel=!0);const r=i.methodFactory;i.methodFactory=(e,n,i)=>{const o=r(e,n,i),s=e.toUpperCase();return(...e)=>{o(`[${((t,e=3)=>(od()/1e3).toFixed(e))()}] %c[${s}] ${id.appName?`[${id.appName}] `:""}[${t}]`,ed[s],...e)}},e=ad[n]||ad["*"]||e||id.level,i.setLevel(e,!1);const o=(...t)=>i.log(...t);return Zu.forEach((t=>{o[t]=(...e)=>(rd.forEach((n=>{n[t](...e)})),i[t](...e))})),i.__ekologger=o,o};ld.setDefaults=({appName:t="",level:e})=>{t&&"string"==typeof t&&(id.appName=t),(e=sd(e))&&td.includes(e)&&(id.level=e,Object.values(Qu.getLoggers()).filter((t=>t.__noExplicitLevel)).forEach((t=>t.setLevel(id.level,!1))))},ld.installDriver=t=>{const e={...Zu.reduce(((e,n)=>(e[n]="function"==typeof(null==t?void 0:t[n])?t[n]:Ju,e)),{})};rd.push(e)};let cd=class{#T=new Map;on(t,e){if("function"!=typeof e)return this;const n=this.#T.get(t)||new Set;return n.add(e),this.#T.set(t,n),this}once(t,e){if("function"!=typeof e)return this;const n=(...i)=>(this.off(t,n),e(...i));return this.on(t,n)}off(t,e){if(!t)return this.#T.clear(),this;const n=this.#T.get(t);return n?e?(n.delete(e),0===n.size&&this.#T.delete(t),this):(this.#T.delete(t),this):this}trigger(t,...e){const n=this.#T.get(t);return n?(n.forEach((t=>t(...e))),this):this}};function ud(t){return"[object Object]"===Object.prototype.toString.call(t)}function dd(t,...e){const n=ud(t)?{...t}:{};return e.forEach((t=>{ud(t)&&Object.keys(t).forEach((e=>{const i=t[e],r=n[e];ud(i)&&ud(r)?n[e]=dd(r,i):Array.isArray(i)?n[e]=i.slice():n[e]=i}))})),n}function hd(t){if("string"==typeof t)return`'${t}'`;if(Array.isArray(t))return`[${t.map((t=>hd(t))).join(", ")}]`;if(ud(t))try{return JSON.stringify(t)}catch(t){return"[object Object]"}return null===t?"null":void 0===t?"undefined":String(t)}function fd(t){return Array.from(t).map((t=>hd(t))).join(", ")}var pd=new WeakSet;class md extends cd{constructor(...t){super(),U(this,pd);const e=t.length?t[t.length-1]:void 0,n=this.name;if(!n||"string"!=typeof n)throw new Error("Extending classes must implement get name() returning a string.");this.log=ld(n,this.loglevel);const i=ud(this.defaults)?this.defaults:{},r=ud(e)&&ud(e[n])?e[n]:{};this.settings=dd({},i,r),L(pd,this,vd).call(this),L(pd,this,gd).call(this)}get name(){throw new Error("BaseModuleClass requires a name getter.")}get loglevel(){return"warn"}get defaults(){return{}}get methodsExcludedFromAutoLog(){return new Set(["constructor","on","off","once","trigger","#wrapMethodsForLogging"])}dispose(){this._disposed||(this._disposed=!0,"function"==typeof this._lifecycleCleanup&&(this._lifecycleCleanup(),this._lifecycleCleanup=null),"function"==typeof this.onDispose&&this.onDispose())}onDispose(){}}function vd(){const t=new Set,e=this.methodsExcludedFromAutoLog;let n=Object.getPrototypeOf(this);for(;n&&n!==Object.prototype;){const i=Object.getOwnPropertyNames(n);for(let r=0;r<i.length;r+=1){const o=i[r];if("constructor"===o||o.startsWith("#"))continue;if(t.has(o))continue;const s=Object.getOwnPropertyDescriptor(n,o);if(!s||"function"!=typeof s.value)continue;const a=s.value.bind(this),l=!e.has(o);this[o]=l?(...t)=>(this.log&&"function"==typeof this.log.debug&&this.log.debug(`${this.name}.${o}(${fd(t)})`),a(...t)):a,t.add(o)}n=Object.getPrototypeOf(n)}}function gd(){if("undefined"==typeof window||"function"!=typeof window.addEventListener)return;const t=()=>{try{"function"==typeof this.dispose&&this.dispose()}catch(t){this.log&&"function"==typeof this.log.error&&this.log.error("dispose failed",t)}};window.addEventListener("pagehide",t),window.addEventListener("beforeunload",t),this._lifecycleCleanup=()=>{window.removeEventListener("pagehide",t),window.removeEventListener("beforeunload",t)}}const yd="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};function bd(t){return Boolean(t)&&"object"==typeof t&&1===t.nodeType&&"function"==typeof t.appendChild}const kd=Object.freeze({NODE_ADD:"node:add",NODE_CHILDREN_CHANGED:"node:childrenchanged",NODE_LOADED:"node:loaded",NODE_LOAD_ERROR:"node:loaderror",PLACEMENT_ADDED:"placement:added",RENDER_PLACEMENT_ADDED:"renderplacement:added",TIMELINE_TIME_UPDATE:"timeline:timeupdate",TIMELINE_STATE_CHANGE:"statechange",TIMELINE_SEEKING:"seeking",TIMELINE_SEEKED:"seeked",TIMELINE_RESET:"timeline:reset",TIMELINE_PLAYER_STATE:"player:state",TIMELINE_CUEPOINT:"cuepoint",VISUAL_FRAMES_AVAILABLE:"visualframesavailable",TRACK_BUFFER_UPDATE:"track:bufferupdate",TRACK_READY:"track:ready",TRACK_UNDERFLOW:"track:underflow",CLOCK_TICK:"tick",DECODE_READY:"decode:ready",DECODE_ERROR:"decode:error",DECODER_AUDIO:"decoder:audio",DECODER_FRAME:"decoder:frame",DECODER_INIT:"decoder:init",DECODER_ERROR:"decoder:error",QOE_SCORE:"qoescore",QOE_STATUS:"qoestatus",CONTAINER_RESIZE:"containerresize",CANVAS_WEBGL_CONTEXT_LOST:"canvas.webglcontextlost",CANVAS_WEBGL_CONTEXT_RESTORED:"canvas.webglcontextrestored"});function wd(t,e){const n={};return Number.isFinite(t)&&(n.time=t),"string"==typeof e&&(n.source=e),n}function xd({placementId:t,nodeId:e,trackId:n,segmentId:i,trackType:r,pts:o,duration:s,frame:a,audioBuffer:l}={}){const c={};return t&&(c.placementId=t),e&&(c.nodeId=e),n&&(c.trackId=n),i&&(c.segmentId=i),r&&(c.trackType=r),Number.isFinite(o)&&(c.pts=o),Number.isFinite(s)&&(c.duration=s),a&&(c.frame=a),l&&(c.audioBuffer=l),c}function _d({placementId:t,nodeId:e,trackId:n,segmentId:i,trackType:r,error:o}={}){const s={};return t&&(s.placementId=t),e&&(s.nodeId=e),n&&(s.trackId=n),i&&(s.segmentId=i),r&&(s.trackType=r),o&&(s.error=o),s}var Td=new WeakMap,Id=new WeakMap,Ed=new WeakMap,Sd=new WeakMap,Ad=new WeakMap,Nd=new WeakMap,Md=new WeakMap,Fd=new WeakSet;class Od extends md{get defaults(){return{style:{width:"100%",height:"100%"},contextAttributes:{alpha:!1,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!1,powerPreference:"low-power"}}}constructor(...t){var e,n;super(...t),U(this,Fd),W(this,Td,void 0),W(this,Id,void 0),W(this,Ed,void 0),W(this,Sd,void 0),W(this,Ad,void 0),W(this,Nd,void 0),W(this,Md,void 0);const[i,r=null]=t;j(Nd,this,r);const o=function(t,e=(null==yd?void 0:yd.document)){if(bd(t))return t;const n="string"==typeof t?t:null;if(!n||!e||"function"!=typeof e.querySelector)return null;const i=e.querySelector(n);return bd(i)?i:null}(i);if(!o)throw new Error("Canvas requires a valid mount target (HTMLElement or selector string).");j(Td,this,o);const s=null==yd?void 0:yd.document;if(!s||"function"!=typeof s.createElement)throw new Error("Canvas requires document.createElement.");var a,l;j(Id,this,s.createElement("canvas")),a=z(Id,this),l=null===(e=this.settings)||void 0===e?void 0:e.style,a&&l&&"object"==typeof l&&!Array.isArray(l)&&Object.keys(l).forEach((t=>{const e=l[t];null!=e&&(a.style[t]=String(e))})),z(Td,this).appendChild(z(Id,this));const c=null===(n=this.settings)||void 0===n?void 0:n.contextAttributes,u=c&&"object"==typeof c&&!Array.isArray(c)?c:void 0;if(j(Md,this,u),j(Ed,this,z(Id,this).getContext("webgl2",u)),!z(Ed,this))throw new Error("Canvas WebGL2 context is not available.");L(Fd,this,Pd).call(this)}get name(){return"Canvas"}get element(){return z(Id,this)}get gl(){return z(Ed,this)}onDispose(){L(Fd,this,Dd).call(this),z(Id,this)&&z(Id,this).parentNode&&z(Id,this).parentNode.removeChild(z(Id,this)),j(Ed,this,null),j(Id,this,null),j(Td,this,null),j(Nd,this,null),j(Md,this,null),j(Sd,this,null),j(Ad,this,null)}}function Cd(t,e){var n,i;this.trigger(t,e),null===(n=z(Nd,this))||void 0===n||null===(i=n.trigger)||void 0===i||i.call(n,t,e)}function Pd(){z(Id,this)&&(j(Sd,this,(t=>{"function"==typeof(null==t?void 0:t.preventDefault)&&t.preventDefault(),this.log.error("WebGL context lost",t),L(Fd,this,Cd).call(this,kd.CANVAS_WEBGL_CONTEXT_LOST,t)})),j(Ad,this,(t=>{var e;j(Ed,this,(null===(e=z(Id,this))||void 0===e?void 0:e.getContext("webgl2",z(Md,this)))||null),z(Ed,this)?L(Fd,this,Cd).call(this,kd.CANVAS_WEBGL_CONTEXT_RESTORED,t):this.log.error("WebGL context restored event fired but WebGL2 context is still unavailable.",t)})),z(Id,this).addEventListener("webglcontextlost",z(Sd,this)),z(Id,this).addEventListener("webglcontextrestored",z(Ad,this)))}function Dd(){z(Id,this)&&(z(Id,this).removeEventListener("webglcontextlost",z(Sd,this)),z(Id,this).removeEventListener("webglcontextrestored",z(Ad,this)))}var Rd=new WeakMap,Ld=new WeakMap,Bd=new WeakMap,zd=new WeakMap,Wd=new WeakMap,jd=new WeakMap,Ud=new WeakSet;class $d extends md{get name(){return"ContainerSize"}get containerWidth(){return z(Ld,this)}get containerHeight(){return z(Bd,this)}get width(){return z(Ld,this)}get height(){return z(Bd,this)}constructor(...t){super(...t),U(this,Ud),W(this,Rd,void 0),W(this,Ld,0),W(this,Bd,0),W(this,zd,null),W(this,Wd,null),W(this,jd,null);const[e]=t;var n;j(Rd,this,(n=e)&&n.element&&bd(n.element)?n.element:bd(n)?n:null),z(Rd,this)&&(L(Ud,this,Vd).call(this,!0),L(Ud,this,qd).call(this))}onDispose(){z(zd,this)&&"function"==typeof z(zd,this).disconnect&&z(zd,this).disconnect(),j(zd,this,null),z(jd,this)&&"function"==typeof(null==yd?void 0:yd.removeEventListener)&&yd.removeEventListener("resize",z(jd,this)),j(jd,this,null),z(Wd,this)&&((null==yd?void 0:yd.clearInterval)||clearInterval)(z(Wd,this)),j(Wd,this,null),j(Rd,this,null)}}function qd(){if(!z(Rd,this))return;const t=null==yd?void 0:yd.ResizeObserver;if("function"==typeof t)return j(zd,this,new t((()=>L(Ud,this,Vd).call(this)))),void z(zd,this).observe(z(Rd,this));j(jd,this,(()=>L(Ud,this,Vd).call(this))),"function"==typeof(null==yd?void 0:yd.addEventListener)&&yd.addEventListener("resize",z(jd,this));const e=(null==yd?void 0:yd.setInterval)||setInterval;j(Wd,this,e((()=>L(Ud,this,Vd).call(this)),250))}function Vd(t=!1){if(!z(Rd,this))return;const{width:e,height:n}=function(t){const e=Number(null==t?void 0:t.clientWidth),n=Number(null==t?void 0:t.clientHeight);return{width:Number.isFinite(e)&&e>0?Math.round(e):0,height:Number.isFinite(n)&&n>0?Math.round(n):0}}(z(Rd,this));(t||e!==z(Ld,this)||n!==z(Bd,this))&&(j(Ld,this,e),j(Bd,this,n),this.trigger("containerresize",{width:e,height:n}))}var Gd={VIDEO_SOURCE_PREFIX:"__SRC_VID:",TEXTURE_SOURCE_PREFIX:"__SRC_TEXTURE:",PREVIOUS_OUTPUT_PREFIX:"__PREVIOUS:",SAVED_FRAME_PREFIX:"__SAVED_FRAME:",SYSTEM_NODES:{FILTERS:{RENDER_TO_CANVAS:"__default"},TAGS:{ATOM:"atom",FILTER:"filter",COMPOSITE_FILTER:"composite",TRANSITION_FILTER:"transition"}},MESSAGES:{UPDATE_OPTIONS:"update_options"}};class Hd{constructor(t,e){this.canvasSource=t,this.startRendering=e,this.gl=null,this.glOptions=null}init(t,e,n){this.glOptions=n||{};const i=this.initCanvas(this.canvasSource,t,e);return this.initWebgl(i,this.glOptions)}initCanvas(){throw new Error("implement on concrete class")}getContextConfig(t={}){if(!t||"object"!=typeof t)return{contextType:"webgl",contextAttributes:void 0};const{contextType:e,contextAttributes:n,__shaderGraph:i,...r}=t,o=Object.prototype.hasOwnProperty.call(t,"contextAttributes");let s=o?n:r;return o||!s||"object"!=typeof s||Array.isArray(s)||0!==Object.keys(s).length||(s=void 0),{contextType:e||"webgl",contextAttributes:s}}initWebgl(t,e={}){const{contextType:n,contextAttributes:i}=this.getContextConfig(e),r=t.getContext(n,i);if(!r)throw new Error(`Browser doesn't support ${n}`);return r.enable(r.BLEND),r.disable(r.DEPTH_TEST),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),r}isStartRendering(){return this.startRendering}}var Kd,Xd={exports:{}},Yd=(Kd||(Kd=1,function(t){var e=Object.prototype.hasOwnProperty,n="~";function i(){}function r(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,i,o,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");var a=new r(i,o||t,s),l=n?n+e:e;return t._events[l]?t._events[l].fn?t._events[l]=[t._events[l],a]:t._events[l].push(a):(t._events[l]=a,t._eventsCount++),t}function s(t,e){0==--t._eventsCount?t._events=new i:delete t._events[e]}function a(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),(new i).__proto__||(n=!1)),a.prototype.eventNames=function(){var t,i,r=[];if(0===this._eventsCount)return r;for(i in t=this._events)e.call(t,i)&&r.push(n?i.slice(1):i);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(t)):r},a.prototype.listeners=function(t){var e=n?n+t:t,i=this._events[e];if(!i)return[];if(i.fn)return[i.fn];for(var r=0,o=i.length,s=new Array(o);r<o;r++)s[r]=i[r].fn;return s},a.prototype.listenerCount=function(t){var e=n?n+t:t,i=this._events[e];return i?i.fn?1:i.length:0},a.prototype.emit=function(t,e,i,r,o,s){var a=n?n+t:t;if(!this._events[a])return!1;var l,c,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(t,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,i),!0;case 4:return u.fn.call(u.context,e,i,r),!0;case 5:return u.fn.call(u.context,e,i,r,o),!0;case 6:return u.fn.call(u.context,e,i,r,o,s),!0}for(c=1,l=new Array(d-1);c<d;c++)l[c-1]=arguments[c];u.fn.apply(u.context,l)}else{var h,f=u.length;for(c=0;c<f;c++)switch(u[c].once&&this.removeListener(t,u[c].fn,void 0,!0),d){case 1:u[c].fn.call(u[c].context);break;case 2:u[c].fn.call(u[c].context,e);break;case 3:u[c].fn.call(u[c].context,e,i);break;case 4:u[c].fn.call(u[c].context,e,i,r);break;default:if(!l)for(h=1,l=new Array(d-1);h<d;h++)l[h-1]=arguments[h];u[c].fn.apply(u[c].context,l)}}return!0},a.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},a.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},a.prototype.removeListener=function(t,e,i,r){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return s(this,o),this;var a=this._events[o];if(a.fn)a.fn!==e||r&&!a.once||i&&a.context!==i||s(this,o);else{for(var l=0,c=[],u=a.length;l<u;l++)(a[l].fn!==e||r&&!a[l].once||i&&a[l].context!==i)&&c.push(a[l]);c.length?this._events[o]=1===c.length?c[0]:c:s(this,o)}return this},a.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&s(this,e)):(this._events=new i,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,t.exports=a}(Xd)),Xd.exports),Qd=Vu(Yd);class Jd extends Hd{constructor(t){super(t,!0),this.setSrcVidTracksFn=null,this.shouldUpdateTexture=!0,this.onPlayerSeeking=this.onPlayerSeeking.bind(this),this.onPlayerSeeked=this.onPlayerSeeked.bind(this),this.onPlayerNodeStart=this.onPlayerNodeStart.bind(this),this.oncePlayerPlaying=this.oncePlayerPlaying.bind(this);const e=new Qd;this.on=e.on.bind(e),this.off=e.off.bind(e),this.once=e.once.bind(e),this.trigger=e.emit.bind(e)}onPlayerSeeking(){this.shouldUpdateTexture=!1}onPlayerSeeked(){this.shouldUpdateTexture=!0}onPlayerNodeStart(){this.shouldUpdateTexture=!0,"function"==typeof this.player.canvas.drawFrame&&this.player.canvas.drawFrame(),this.trigger("forcerender")}oncePlayerPlaying(){this.onPlayerNodeStart()}addPlayerListeners(){this.player&&(this.player.on("seeking",this.onPlayerSeeking),this.player.on("seeked",this.onPlayerSeeked),this.player.on("nodestart",this.onPlayerNodeStart),this.player.once("playing",this.oncePlayerPlaying))}removePlayerListeners(){this.player&&(this.player.off("seeking",this.onPlayerSeeking),this.player.off("seeked",this.onPlayerSeeked),this.player.off("nodestart",this.onPlayerNodeStart),this.player.off("playing",this.oncePlayerPlaying))}initCanvas(t,e,n){var i;this.player=t,this.setSrcVidTracksFn=e;const{contextType:r,contextAttributes:o}=this.getContextConfig(this.glOptions),s=!1!==(null===(i=this.glOptions)||void 0===i||null===(i=i.__shaderGraph)||void 0===i?void 0:i.forwardContextAttributes)&&null!=(a=o)&&"object"==typeof a&&!Array.isArray(a)&&Object.keys(a).length>0;var a;const l={contextType:r};s&&(l.contextAttributes=o),t.initPlugin("canvas",l);const c={drawFrame:this.canvasDrawFrameFn.bind(this),resize:n,contextType:r,offscreenVideoCanvasEnabled:!1,viewportModeEnabled:!0,fps:0};return s&&(c.contextAttributes=o),t.canvas.init(c),t.paused&&0===t.currentTime&&(this.shouldUpdateTexture=!1),this.addPlayerListeners(),t.canvas.canvas}canvasDrawFrameFn(t,e,n){var i;this.setSrcVidTracksFn&&this.shouldUpdateTexture&&t&&e&&n&&(n.videoWidth||n.displayWidth)&&(n.videoHeight||n.displayHeight)&&(!(i=n)||"boolean"!=typeof i.isDataLoaded||i&&i.isDataLoaded&&(void 0===i.isFrameTextureReady||i.isFrameTextureReady))&&this.setSrcVidTracksFn(n)}async recover(){if(this.player&&this.player.paused)return new Promise((t=>{this.player.once("seeked",(()=>{this.shouldUpdateTexture=!0,t()})),this.player.currentTime=this.player.currentTime}))}dispose(){this.player&&(this.player.canvas&&"function"==typeof this.player.canvas.dispose&&this.player.canvas.dispose(),this.removePlayerListeners(),this.player=null)}}class Zd extends Hd{constructor(t){super(t,!1)}initCanvas(t,e){const n=function(){const t=document.querySelector("video");t&&t.videoHeight&&e(t),requestAnimationFrame(n)};return requestAnimationFrame(n),document.getElementById(t)}}class th extends Hd{constructor(t){super(t,!1)}initCanvas({src:t,dest:e},n,i){const r="string"==typeof e?document.querySelector(e):e,o="undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement,s=()=>{this.isDisposed||(t&&t.videoHeight&&n(t),requestAnimationFrame(s))};return o?requestAnimationFrame(s):"function"==typeof t?t(n,i):n(t),r}dispose(){this.isDisposed=!0}}var eh=function(t){let e;return e="string"==typeof t?new Zd(t):t&&t.src&&t.dest?new th(t):new Jd(t),e};function nh(t){return Array.isArray(t)||(t=[t]),t}class ih{constructor(t){this.store=t?{...t.get()}:{}}reset(){this.store={}}get(t){if(!t)return this.store;const e=(t=nh(t)).reduce(((t,e)=>{const n=this.store[e];return t.push(n),t}),[]);return 1===e.length?e[0]:e}set(t,e){if(t=nh(t),e=nh(e),t.length!==e.length)throw new Error(`cant set values ${e} to keys ${t}, length did not match`);t.forEach(((t,n)=>{this.store[t]=e[n]}))}}class rh{constructor(t,e,n,i){this.gl=i.gl,this.unit=t,this.bindPoint=e,this.height=1080,this.width=1920,this.textureObject=n.object,this.textureObjectInfo=n,this.isStatic=!1,n.needRefresh&&this.setParameters()}getUnit(){return this.unit}getObject(){return this.textureObject}bind(){this.gl.bindTexture(this.bindPoint,this.textureObject)}fill(){throw new Error("impl in concrete class")}setParameters(){this.bind(),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR)}active(){this.gl.activeTexture(this.gl.TEXTURE0+this.getUnit())}beforeUse(){this.active(),this.bind()}dispose(){this.gl.deleteTexture(this.textureObject)}setHeight(t){this.height=t}setWidth(t){this.width=t}getHeight(){if(!this.height)throw new Error(`texture ${this.unit} no height init `);return this.height}getWidth(){if(!this.width)throw new Error(`texture ${this.unit} no width init `);return this.width}}const oh=ld("frame","warn");let sh=!1;if("undefined"!=typeof window&&window.InterludePlayer){let t=window.InterludePlayer.environment,e=t.isAffectedBySafari17SeekBug,n=t.ua.includes("WMT1H")&&t.ua.includes("iOS/17");sh=e||n}function ah(t,e){const n=t.gl;var i;n.texImage2D(t.bindPoint,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),t.__hasAllocated=!0,i=t,Number.isFinite(i.width)&&Number.isFinite(i.height)&&(i.actualWidth=i.width,i.actualHeight=i.height,i.textureObjectInfo&&(i.textureObjectInfo.allocatedWidth=i.width,i.textureObjectInfo.allocatedHeight=i.height))}class lh extends rh{fill(t){if(sh&&(t.paused||"undefined"!=typeof document&&"hidden"===document.visibilityState))return;if(t.__closed)return;this.bind();const e=function(t,e){let n=!t.__hasAllocated;return e?(e.width===t.width&&e.height===t.height||(n=!0),t.width=e.width,t.height=e.height,n):n}(this,function(t){if(!t)return;const e=[[t.displayWidth,t.displayHeight],[t.codedWidth,t.codedHeight],[t.videoWidth,t.videoHeight],[t.naturalWidth,t.naturalHeight],[t.width,t.height]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}(t)),n=performance.now();!function(t,e,n){const i=t.gl,r=function(t){if("undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement)return!0;const e="object"==typeof window?window:"object"==typeof self?self:null,n=e&&e.VideoFrame;return"function"==typeof n&&t instanceof n}(e);r&&(t.__useSubImage=!1),n||!1===t.__useSubImage||r?ah(t,e):(i.texSubImage2D(t.bindPoint,0,0,0,i.RGBA,i.UNSIGNED_BYTE,e),void 0===t.__useSubImage&&(i.getError()!==i.NO_ERROR?(t.__useSubImage=!1,ah(t,e)):t.__useSubImage=!0))}(this,t,e);const i=(performance.now()-n)/1e3;i>=.1&&oh.warn(`[fill] texImage2D() took ${i.toFixed(3)} seconds to execute.`),"function"==typeof t.close&&!0!==t.__keepOpen&&(t.close(),t.__closed=!0)}}class ch extends rh{constructor(t,e,n){super(...arguments),n.needRefresh&&(this.fill(null),n.needRefresh=!1)}fill(t){if(this.bind(),t&&t.tagName&&"IMG"===t.tagName){const e=Number(t.naturalWidth||t.width),n=Number(t.naturalHeight||t.height);this.gl.texImage2D(this.bindPoint,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),Number.isFinite(e)&&Number.isFinite(n)&&(this.actualWidth=e,this.actualHeight=n,this.textureObjectInfo&&(this.textureObjectInfo.allocatedWidth=e,this.textureObjectInfo.allocatedHeight=n))}else{const e=this.gl.canvas.width,n=this.gl.canvas.height;this.gl.texImage2D(this.bindPoint,0,this.gl.RGBA,e,n,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),Number.isFinite(e)&&Number.isFinite(n)&&(this.actualWidth=e,this.actualHeight=n,this.textureObjectInfo&&(this.textureObjectInfo.allocatedWidth=e,this.textureObjectInfo.allocatedHeight=n))}}}var uh=function(t,e,n,i,r){let o;switch(t){case"frame":o=new lh(e,n,i,r);break;case"pixel":o=new ch(e,n,i,r);break;default:throw new Error(`cant recognize type ${t}`)}return o};class dh{constructor(t){this.gl=t.gl;const e=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS)||20;return this.maxTextures=Math.min(20,e),this.textureObjectPool=[],this.textureUnitsPool=new Set(Array(this.maxTextures).keys()),this.activeTextures=t.activeTextures instanceof Set?t.activeTextures:new Set,{createTexture:this.createTexture.bind(this),releaseTexture:this.releaseTexture.bind(this),refreshTextureObjects:this.refreshTextureObjects.bind(this),refreshActiveTextures:this.refreshActiveTextures.bind(this)}}getTextureObject(){return this.textureObjectPool.pop()||{object:this.gl.createTexture(),needRefresh:!0}}getTextureUnit(){const t=this.textureUnitsPool.values(),e=Math.min.apply(null,[...t]);return this.textureUnitsPool.delete(e),e}createTexture(t){const e=t&&t.type||{},n=this.gl.TEXTURE_2D,i=this.getTextureUnit(),r=this.getTextureObject(),o=uh(e,i,n,r,{gl:this.gl});return this.activeTextures.add(o),o}releaseTexture(t){this.textureUnitsPool.has(t.getUnit())||(this.textureObjectPool.push({object:t.getObject(),needRefresh:!1}),this.textureUnitsPool.add(t.getUnit())),this.activeTextures.delete(t)}refreshTextureObjects(){this.textureObjectPool.forEach((t=>{t.needRefresh=!0}))}refreshActiveTextures(){const t=new Set;this.activeTextures.forEach((e=>{if(!e||"function"!=typeof e.getUnit)return;t.add(e.getUnit());const n={object:this.gl.createTexture(),needRefresh:!0};e.gl=this.gl,e.textureObjectInfo=n,e.textureObject=n.object,e.__hasAllocated=!1,e.__useSubImage=void 0,e.actualWidth=null,e.actualHeight=null,"function"==typeof e.setParameters&&e.setParameters()})),this.textureObjectPool=[],this.textureUnitsPool=new Set(Array(this.maxTextures).keys()),t.forEach((t=>{this.textureUnitsPool.delete(t)}))}}const hh=Gd.VIDEO_SOURCE_PREFIX,fh=Gd.TEXTURE_SOURCE_PREFIX,ph=Gd.PREVIOUS_OUTPUT_PREFIX,mh=Gd.SAVED_FRAME_PREFIX;function vh(t,e,n){t.set(`${hh}${n}`,e)}function gh(t,e,n){t.set(`${ph}${n}`,e)}function yh(t,e,n){t.set(`${mh}${n}`,e)}class bh{constructor(t){return this.gl=t.gl,this.glSource=t.glSource,this.textureManager=t.textureManager,this.capturedFramesManager=t.capturedFramesManager,{setVideoSources:this.setVideoSources.bind(this),setTextureSource:this.setTextureSource.bind(this),getInput:this.getInput.bind(this),getPrevOutput:this.getPrevOutput.bind(this),setOutputs:this.setOutputs.bind(this),disposeTextures:this.disposeTextures.bind(this),disposeAllStore:this.disposeAllStore.bind(this)}}setVideoSources(t){for(const[e,n]of Object.entries(this.capturedFramesManager.getCurrentFrames()))vh(t,n,e),gh(t,n,e);for(const[e,n]of Object.entries(this.capturedFramesManager.getSavedFrames()))yh(t,n,e)}setTextureSource(t,e,n){t.set(`${fh}${n}`,e)}getInput(t,e){return t.get(e)}getPrevOutput(t,e){return e=Number.isInteger(e)?e:0,t.get(`${ph}${e}`)}setOutputs(t,e=[],n=[]){if(Array.isArray(n)||(n=[n]),e.length>n.length)throw new Error(`output ids ${e.length} is bigger then supplied outputs ${n.length}`);n.forEach(((e,n)=>{gh(t,e,n)})),e.forEach(((e,i)=>{t.set(e,n[i])}))}disposeTextures(t,e){const n=e.getUnit();t.forEach((t=>{const e=t.getUnit();this.capturedFramesManager.isReservedUnit(e)||n===e||this.textureManager.releaseTexture(t)}))}disposeAllStore(t){const e=new Set;Object.values(t.get()).forEach((t=>{const n=t.getUnit();this.capturedFramesManager.isReservedUnit(n)||e.has(n)||t.isStatic||(this.textureManager.releaseTexture(t),e.add(n))}))}}class kh{constructor(t){this.context=t}bind(){throw new Error("impl in concrete")}}let wh=100,xh=100;function _h(t,e){wh=t,xh=e}let Th=class extends kh{bind(t){var e,n;this.context.gl.bindFramebuffer(this.context.gl.FRAMEBUFFER,null);const i=null===(e=this.context.gl)||void 0===e||null===(e=e.canvas)||void 0===e?void 0:e.width,r=null===(n=this.context.gl)||void 0===n||null===(n=n.canvas)||void 0===n?void 0:n.height;return Number.isFinite(i)&&Number.isFinite(r)&&i>0&&r>0&&(this.context.gl.viewport(0,0,i,r),_h(i,r)),t}},Ih=class extends kh{bind(t){Array.isArray(t)||(t=[t]),this.context.gl.bindFramebuffer(this.context.gl.FRAMEBUFFER,this.context.frameBufferObject);const e=this.context.textureManager.createTexture({type:"pixel"}),n=this.context.gl.COLOR_ATTACHMENT0;if(this.context.gl.framebufferTexture2D(this.context.gl.FRAMEBUFFER,n,this.context.gl.TEXTURE_2D,e.textureObject,0),this.context.gl.clear(this.context.gl.COLOR_BUFFER_BIT),!0===this.context.useCanvasSizedFilterTargets){var i,r;const t=null===(i=this.context.gl)||void 0===i||null===(i=i.canvas)||void 0===i?void 0:i.width,n=null===(r=this.context.gl)||void 0===r||null===(r=r.canvas)||void 0===r?void 0:r.height;Number.isFinite(t)&&t>0&&e.setWidth(t),Number.isFinite(n)&&n>0&&e.setHeight(n);const o=e.textureObjectInfo,s=null==o?void 0:o.allocatedWidth,a=null==o?void 0:o.allocatedHeight;Number.isFinite(t)&&Number.isFinite(n)&&(s!==t||a!==n)&&"function"==typeof e.fill&&e.fill(null)}else t[0]&&(e.setHeight(t[0].getHeight()),e.setWidth(t[0].getWidth()));return e}};class Eh{constructor(t){this.gl=t.gl,this.textureManager=t.textureManager,this.useCanvasSizedFilterTargets=t.useCanvasSizedFilterTargets,this.bufferIndex=0,this.frameBufferObjectsPool=[this.gl.createFramebuffer(),this.gl.createFramebuffer(),this.gl.createFramebuffer()]}getFrameBufferObject(){const t=this.frameBufferObjectsPool[this.bufferIndex];return this.bufferIndex=this.bufferIndex++%this.frameBufferObjectsPool.length,t}create(t){let e;return e=t===Gd.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS?new Th({gl:this.gl}):new Ih({gl:this.gl,textureManager:this.textureManager,frameBufferObject:this.getFrameBufferObject(),useCanvasSizedFilterTargets:this.useCanvasSizedFilterTargets}),e}}function Sh(t,e,n){const i=e===t.VERTEX_SHADER?"vertex":"fragment";var r;r=t,Boolean(r)&&("undefined"!=typeof WebGL2RenderingContext&&r instanceof WebGL2RenderingContext||"function"==typeof r.createVertexArray)&&(n=function(t="",e){if("string"!=typeof t||!t||function(t=""){return"string"==typeof t&&t.includes("#version 300 es")}(t))return t;let n=t;if("vertex"===e&&(n=n.replace(/\battribute\b/g,"in"),n=n.replace(/\bvarying\b/g,"out")),"fragment"===e&&(n=n.replace(/\bvarying\b/g,"in"),n=n.replace(/\bgl_FragColor\b/g,"fragColor")),n=n.replace(/\btexture2D\b/g,"texture"),n=`#version 300 es\n${n}`,"fragment"===e&&n.includes("fragColor")&&!/\bout\s+vec4\s+fragColor\s*;/.test(n)){const t=n.split("\n");let e=1;for(let n=1;n<t.length;n+=1)if(t[n].trim().startsWith("precision ")){e=n+1;break}t.splice(e,0,"out vec4 fragColor;"),n=t.join("\n")}return n}(n,i));const o=t.createShader(e);if(!o)throw new Error(`Failed to create ${i} shader`);if(t.shaderSource(o,n),t.compileShader(o),t.getShaderParameter(o,t.COMPILE_STATUS))return o;const s=t.getShaderInfoLog(o);throw t.deleteShader(o),new Error(s)}var Ah=function(t,e){return Sh(t,t.VERTEX_SHADER,e)},Nh=function(t,e){return Sh(t,t.FRAGMENT_SHADER,e)};const Mh={position_3d:0,texture_coordinate_2d:1};var Fh=function(t,e,n){const i=t.createProgram();if(t.attachShader(i,e),t.attachShader(i,n),Object.entries(Mh).forEach((([e,n])=>{t.bindAttribLocation(i,n,e)})),t.linkProgram(i),t.getProgramParameter(i,t.LINK_STATUS))return i;const r=t.getProgramInfoLog(i);throw t.deleteProgram(i),new Error(r)},Oh=[-1,-1,1,1,-1,1,-1,1,1,1,1,1],Ch=[0,1,2,2,1,3],Ph=[0,0,1,0,0,1,1,1];const Dh=96,Rh=[new Float32Array(new ArrayBuffer(Dh)),new Float32Array(new ArrayBuffer(Dh)),new Float32Array(new ArrayBuffer(Dh)),new Float32Array(new ArrayBuffer(Dh)),new Float32Array(new ArrayBuffer(Dh)),new Float32Array(new ArrayBuffer(Dh))],Lh=[new Int16Array(6),new Int16Array(6),new Int16Array(6)];class Bh{constructor(t,e,n){return this.gl=n.gl,this.program=n.program,this.bindPoint=e,this.location=this.gl.getAttribLocation(this.program,t),this.buffer=this.gl.createBuffer(),this.floatBufferCounter=0,this.unit16BufferCounter=0,{fillBuffer:this.fillBuffer.bind(this),bindBuffer:this.bindBuffer.bind(this),setPointer:this.setPointer.bind(this),dispose:this.dispose.bind(this)}}enable(){this.gl.enableVertexAttribArray(this.location)}bindBuffer(){this.gl.bindBuffer(this.bindPoint,this.buffer)}getBuffer(){let t;switch(this.bindPoint){case this.gl.ARRAY_BUFFER:t=Rh[this.floatBufferCounter],this.floatBufferCounter=this.floatBufferCounter++%Rh.length;break;case this.gl.ELEMENT_ARRAY_BUFFER:t=Lh[this.unit16BufferCounter],this.unit16BufferCounter=this.unit16BufferCounter++%Lh.length;break;default:throw new Error("cant get buffer for this bind point: ",this.bindPoint)}return t}fillBuffer(t){this.bindBuffer();const e=this.getBuffer();e.set(t,0),this.gl.bufferData(this.bindPoint,e,this.gl.STATIC_DRAW)}getPointerData(){throw new Error("you should impl this function")}setPointer(){this.bindBuffer(),this.enable();const t=this.getPointerData();this.gl.vertexAttribPointer(this.location,t.size,t.type,t.normalize,t.stride,t.offset)}dispose(){this.gl.deleteBuffer(this.buffer)}}const zh={position_3d:class extends Bh{getPointerData(){return{size:3,type:this.gl.FLOAT,normalize:!1,stride:0,offset:0}}},position_indexes:class extends Bh{setPointer(){}getPointerData(){}enable(){}},texture_coordinate_2d:class extends Bh{getPointerData(){return{size:2,type:this.gl.FLOAT,normalize:!0,stride:0,offset:0}}}};var Wh=function(t,e,n){const i=zh[t];if(!i)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(zh)}`);return new i(t,e,n)};class jh{constructor(t,e){this.gl=e.gl,this.program=e.program,this.location=this.gl.getUniformLocation(this.program,t)}compute(){return this}set(){return this}}class Uh extends jh{set(t){this.gl.uniform1fv(this.location,t)}}class $h extends jh{set(t){t&&(t.beforeUse(),this.gl.uniform1i(this.location,t.getUnit()))}}const qh="first_texture_dimensions",Vh="viewport_dimensions",Gh="time",Hh={RUNTIME_OPTIONS:"runtimeOptions[0]",STATIC_OPTIONS:"staticOptions[0]",FIRST_TEXTURE:"first_texture",SECOND_TEXTURE:"second_texture",FIRST_MATRIX:"first_mat4"},Kh={[Hh.FIRST_TEXTURE]:$h,[Hh.SECOND_TEXTURE]:$h,[Hh.FIRST_MATRIX]:class extends jh{set(t){this.gl.uniformMatrix4fv(this.location,!1,t)}},[Hh.STATIC_OPTIONS]:Uh,[Hh.RUNTIME_OPTIONS]:Uh};var Xh=function(t,e){const n=Kh[t];if(!n)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(Kh)}`);return new n(t,e)},Yh=function(t,e){let n=(Date.now()-t||0)/(e||1);return n=Number.parseFloat(n).toFixed(7),n=Math.min(1,n),n};const Qh="position_3d",Jh="position_indexes",Zh="texture_coordinate_2d";class tf{constructor(t,e,n,i){this.type=t,this.gl=i.gl,this.frameBuffer=i.frameBufferFactory.create(t),this.rebindAttributesOnProgramSwitch=!1!==i.rebindAttributesOnProgramSwitch,this.vertexShader=Ah(this.gl,e.vertex),this.fragmentShader=Nh(this.gl,e.fragment),this.program=Fh(this.gl,this.vertexShader,this.fragmentShader);const r={gl:this.gl,program:this.program};this.attributes=function(t,e){const n={};return t=t||[],(t=[{id:Qh,bindPoint:e.gl.ARRAY_BUFFER},{id:Jh,bindPoint:e.gl.ELEMENT_ARRAY_BUFFER},{id:Zh,bindPoint:e.gl.ARRAY_BUFFER}].concat(t)).forEach((t=>{const i=t.id;n[i]=Wh(i,t.bindPoint,e)})),n}(n.attributes,r),this.uniforms=function(t,e){const n={};return(t=t||[]).forEach((t=>{const i=t.id;n[i]=Xh(i,e)})),n}(n.uniforms,r),this.gl.useProgram(this.program),i.__handleAttributesInitedOnce||(this.handleAttributes(),i.__handleAttributesInitedOnce=!0),this.handleStaticUniforms(i.options)}static getFilterType(){throw new Error("impl in concrete class")}static getInputsCount(){throw new Error(`impl in concrete class ${this.getFilterType()}`)}static getInitialOptions(){throw new Error(`impl in concrete class ${this.getFilterType()}`)}static getUniformInfo(t){let e=[{id:Hh.RUNTIME_OPTIONS},{id:Hh.STATIC_OPTIONS}];return(t.getUniformList||tf.getUniformList)().forEach((t=>{Object.values(Hh).includes(t)&&e.push({id:t})})),e}handleRuntimeUniforms(t,e){const{inputTextures:n,viewportDimensions:i}=t;let r=Array.isArray(n)?n:[n],o=[];(this.constructor.getUniformList||tf.getUniformList)().forEach((t=>{switch(t){case Hh.FIRST_TEXTURE:this.uniforms[Hh.FIRST_TEXTURE].set(r[0]);break;case Hh.SECOND_TEXTURE:this.uniforms[Hh.SECOND_TEXTURE].set(r[1]);break;case qh:o=[...o,r[0].getWidth(),r[0].getHeight()];break;case Vh:o=[...o,i.width,i.height];break;case Gh:{const t=Yh(e.startTime,e.duration);o=[...o,t];break}}})),o.length>0&&this.uniforms[Hh.RUNTIME_OPTIONS].set(o)}static getUniformList(){return[Hh.FIRST_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(){}handleAttributes(){this.attributes[Qh].fillBuffer(Oh),this.attributes[Qh].setPointer(),this.attributes[Jh].fillBuffer(Ch),this.attributes[Zh].fillBuffer(Ph),this.attributes[Zh].setPointer()}disposeAttributes(){Object.values(this.attributes).forEach((t=>{t.dispose()}))}render(t,e){const n=this.frameBuffer.bind(t);let i={width:wh,height:xh};return this.gl.useProgram(this.program),this.rebindAttributesOnProgramSwitch&&this.gl.__shaderGraphLastProgram!==this.program&&(this.handleAttributes(),this.gl.__shaderGraphLastProgram=this.program),this.handleRuntimeUniforms({inputTextures:t,viewportDimensions:i},e),this.draw(),n}draw(){const t=this.gl.TRIANGLES,e=this.gl.UNSIGNED_SHORT;this.gl.drawElements(t,6,e,0)}updateStaticUniforms(t){this.gl.useProgram(this.program),this.handleStaticUniforms(t)}dispose(){this.gl.detachShader(this.program,this.vertexShader),this.gl.deleteShader(this.vertexShader),this.gl.detachShader(this.program,this.fragmentShader),this.gl.deleteShader(this.fragmentShader),this.gl.deleteProgram(this.program)}}class ef extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(ef)};super(ef.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n // we need to flip y poisiton bacause webgl display the canvas\n // with 0,0 being the bottom left corner \n // insted of the traditional top left\n float flip_y_position = position_3d.y * (-1.0);\n vec4 normalize_poistion = vec4(position_3d.x, flip_y_position, position_3d.z, 1);\n \n gl_Position = normalize_poistion;\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n}"},e,t)}static getFilterType(){return"__default"}static getInputsCount(){return 1}static getInitialOptions(){return{}}}var nf,rf="undefined"!=typeof Float32Array?Float32Array:Array;function of(){var t=new rf(3);return rf!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function sf(t,e,n){var i=new rf(3);return i[0]=t,i[1]=e,i[2]=n,i}function af(){var t=new rf(4);return rf!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}of(),function(){var t;t=new rf(4),rf!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}(),of(),sf(1,0,0),sf(0,1,0),af(),af(),nf=new rf(9),rf!=Float32Array&&(nf[1]=0,nf[2]=0,nf[3]=0,nf[5]=0,nf[6]=0,nf[7]=0),nf[0]=1,nf[4]=1,nf[8]=1;class lf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(lf)};super(lf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform mat4 first_mat4;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xy, 1, 1);\n\n gl_Position = first_mat4 * normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n // gl_FragColor = vec4(256,0,0,1);\n}"},e,t)}static getFilterType(){return"transform"}static getInputsCount(){return 1}static getInitialOptions(){return{translate:{x:0,y:0},scale:{x:1,y:1},rotate:0}}getOptionsDisplay(){return[{properties:["translate","x"],type:"slider",minValue:-2,maxValue:2,step:.001,initialValue:lf.getInitialOptions().translate.x},{properties:["translate","y"],type:"slider",minValue:-2,maxValue:2,step:.001,initialValue:lf.getInitialOptions().translate.y},{properties:["scale","x"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:lf.getInitialOptions().scale.x},{properties:["scale","y"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:lf.getInitialOptions().scale.y},{properties:["rotate"],type:"slider",minValue:-360,maxValue:360,step:1,initialValue:lf.getInitialOptions().rotate}]}static getUniformList(){return[Hh.FIRST_TEXTURE,Hh.FIRST_MATRIX]}handleStaticUniforms(t){if(!t||!t.translate||!t.scale)throw new Error(`bad options object for Transform filter, check ${t}`);const e=Number.parseFloat(t.translate.x).toFixed(7),n=-1*Number.parseFloat(t.translate.y).toFixed(7),i=Number.parseFloat(t.scale.x).toFixed(7),r=Number.parseFloat(t.scale.y).toFixed(7),o=t.rotate||0;var s;this.transformMatrix=function(t,e,n,i){var r=e[0],o=e[1],s=e[2],a=e[3],l=r+r,c=o+o,u=s+s,d=r*l,h=r*c,f=r*u,p=o*c,m=o*u,v=s*u,g=a*l,y=a*c,b=a*u,k=i[0],w=i[1],x=i[2];return t[0]=(1-(p+v))*k,t[1]=(h+b)*k,t[2]=(f-y)*k,t[3]=0,t[4]=(h-b)*w,t[5]=(1-(d+v))*w,t[6]=(m+g)*w,t[7]=0,t[8]=(f+y)*x,t[9]=(m-g)*x,t[10]=(1-(d+p))*x,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}((s=new rf(16),rf!=Float32Array&&(s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[11]=0,s[12]=0,s[13]=0,s[14]=0),s[0]=1,s[5]=1,s[10]=1,s[15]=1,s),function(t,e,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"zyx",o=Math.PI/360;e*=o,i*=o,n*=o;var s=Math.sin(e),a=Math.cos(e),l=Math.sin(n),c=Math.cos(n),u=Math.sin(i),d=Math.cos(i);switch(r){case"xyz":t[0]=s*c*d+a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d-s*l*u;break;case"xzy":t[0]=s*c*d-a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d+s*l*u;break;case"yxz":t[0]=s*c*d+a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d+s*l*u;break;case"yzx":t[0]=s*c*d+a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d-s*l*u;break;case"zxy":t[0]=s*c*d-a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d-s*l*u;break;case"zyx":t[0]=s*c*d-a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d+s*l*u;break;default:throw new Error("Unknown angle order "+r)}return t}(af(),0,0,o),sf(e,n,0),sf(i,r,1)),this.uniforms[Hh.FIRST_MATRIX].set(this.transformMatrix)}}class cf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(cf)};super(cf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[2];\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\n\nvoid main() {\n vec2 normalize_poistion = vec2(position_3d.xy);\n gl_Position = vec4(normalize_poistion, 1, 1);\n\n float texture_width = runtimeOptions[0];\n float pixel_width = 1.0 / texture_width;\n\n \n for(int i=-5; i<5; ++i){\n float current_i = float(i);\n blur_texture_coordinate_2d[i+5] = texture_coordinate_2d + vec2(pixel_width * current_i, 0.0); \n }\n}\n",fragment:"\nprecision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\nvoid main() {\n vec4 out_colour = vec4(0.0);\n\tout_colour += texture2D(first_texture, blur_texture_coordinate_2d[0]) * 0.0093;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[1]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[2]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[3]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[4]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[5]) * 0.198596;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[6]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[7]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[8]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[9]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[10]) * 0.0093;\n \n \n gl_FragColor = out_colour;\n}"},e,t)}static getFilterType(){return"horizontalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,qh]}}class uf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(uf)};super(uf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[2];\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\n\nvoid main() {\n vec2 normalize_poistion = vec2(position_3d.xy);\n gl_Position = vec4(normalize_poistion, 1, 1);\n\n float texture_width = runtimeOptions[1];\n float pixel_height = 1.0 / texture_width;\n\n for(int i=-5; i<5; ++i){\n float current_i = float(i);\n blur_texture_coordinate_2d[i+5] = texture_coordinate_2d + vec2( 0.0, pixel_height * current_i);\n }\n}\n",fragment:"\nprecision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\nvoid main() {\n vec4 out_colour = vec4(0.0);\n\tout_colour += texture2D(first_texture, blur_texture_coordinate_2d[0]) * 0.0093;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[1]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[2]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[3]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[4]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[5]) * 0.198596;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[6]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[7]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[8]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[9]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[10]) * 0.0093;\n \n \n gl_FragColor = out_colour;\n}"},e,t)}static getFilterType(){return"verticalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,qh]}}class df extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(df)};super(df.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[3];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nconst float Depth = 3.;\nconst float Samples = 8.;\nfloat OffsetDist = staticOptions[0];\n\nvec2 srcDims = vec2(runtimeOptions[0], runtimeOptions[1]);\nvec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\nvec2 iResolution = vpDims;\n\n\n#define TAU 6.28318530718\n\nvec4 RadialBlur(vec2 fragCoord, float radius) {\n if (radius <= 0.) {\n return texture2D(first_texture, fragCoord/iResolution.xy);\n }\n\n vec2 offset;\n float angle = 0.;\n vec4 color = vec4(0.);\n\n for(float angle = 0.; angle < TAU; angle += (TAU/Samples)) {\n offset = vec2(cos(angle), sin(angle)) * radius;\n color += texture2D(first_texture, (fragCoord + offset)/iResolution.xy);\n }\n\n return color/Samples;\n\n}\n\nvec4 FastBlur(vec2 fragCoord) {\n\n vec4 color;\n vec2 offset;\n float fib = 2.;\n float fibTotal = 0.;\n\n for(float i = 1.; i <= Depth; ++i) {\n fib += i;\n color += RadialBlur(fragCoord, i * OffsetDist)/ fib;\n fibTotal += 1./fib;\n }\n\n return color/fibTotal;\n\n}\n\n// based on https://www.shadertoy.com/view/3ljBDd\nvoid main() {\n// vec2 fragCoords = (vec2(current_texture_coordinate_2d) + 1.0) / 2.0 * vpDims;\n vec2 fragCoords = vec2(current_texture_coordinate_2d) * vpDims;\n gl_FragColor = FastBlur(fragCoords);\n}"},e,t)}static getFilterType(){return"fastBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,qh,Vh]}handleStaticUniforms(t){var e;const n=(null!==(e=Number.parseFloat(t.offsetDist))&&void 0!==e?e:4).toFixed(3);this.uniforms[Hh.STATIC_OPTIONS].set([n])}}class hf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(hf)};super(hf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[2];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\n\n// A simple directional blur that doesn't brighten the image, based on https://www.shadertoy.com/view/WdSXWD\n// and https://www.shadertoy.com/view/NltSD4\n\nvec4 dirBlur() {\n float angle = staticOptions[0];\n float strength = staticOptions[1];\n if (strength == 0.0){\n return texture2D(first_texture, current_texture_coordinate_2d);\n }\n\n vec2 uv = current_texture_coordinate_2d;\n\n float r = radians(angle);\n vec2 direction = vec2(sin(r), cos(r));\n\n vec2 strengthDirection = strength * direction;\n vec3 acc = vec3(0);\n for(float i = -1.0; i <= 1.0; i += (2.0 / 50.0)) {\n acc += texture2D(first_texture, uv - vec2(strengthDirection.x * i, strengthDirection.y * i)).rgb * (2.0 / 50.0) * .5;\n }\n\n return vec4(acc, 1.0);\n\n}\n\nvoid main() {\n gl_FragColor = dirBlur();\n}"},e,t)}static getFilterType(){return"directionalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,qh,Vh]}handleStaticUniforms(t){var e,n;const i=(null!==(e=Number.parseFloat(t.angle))&&void 0!==e?e:90).toFixed(3),r=(null!==(n=Number.parseFloat(t.strength))&&void 0!==n?n:.1).toFixed(3);this.uniforms[Hh.STATIC_OPTIONS].set([i,r])}}class ff extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(ff)};super(ff.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[1];\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n float opacity = texture.w - (1.0 - staticOptions[0]);\n gl_FragColor = vec4((texture.xyz) , opacity);\n}"},e,t)}static getFilterType(){return"opacity"}static getInputsCount(){return 1}static getInitialOptions(){return{power:1}}getOptionsDisplay(){return[{properties:["power"],type:"slider",minValue:0,maxValue:1,step:.001}]}handleStaticUniforms(t){const e=Number.parseFloat(t.power).toFixed(7);this.uniforms[Hh.STATIC_OPTIONS].set([e])}}class pf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(pf)};super(pf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nuniform float staticOptions[7];\nuniform float runtimeOptions[2];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nfloat roundedBoxSDF(vec2 point, vec2 center, vec2 area, float radius) {\n return length(max(abs(point - center) - area + radius, 0.0)) - radius;\n}\n\nfloat boxSDF(vec2 point, vec2 center, vec2 area){\n vec2 d = abs(point - center) - area;\n return length(max(d,vec2(0)));\n}\n\n\nvoid main() {\n float type = staticOptions[0];\n vec2 aspectRatio = vec2(runtimeOptions[0]/runtimeOptions[1], 1.0);\n\n\n vec2 center = vec2(staticOptions[1], staticOptions[2]) * aspectRatio;\n vec2 area = max(vec2(staticOptions[3], staticOptions[4]) * aspectRatio, 0.0); \n float radius = staticOptions[5];\n\n vec2 SDF_PositionCoordinate2d = vec2(\n current_position_coordinate_2d.x,\n current_position_coordinate_2d.y * -1.0\n ) * aspectRatio;\n\n vec4 color1 = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 color2 = texture2D(second_texture, current_texture_coordinate_2d);\n\n float dist;\n vec4 color;\n if(type == 0.0){\n dist = boxSDF(SDF_PositionCoordinate2d, center, area);\n color = (dist > 0.0) ? color2: color1;\n } else {\n dist = roundedBoxSDF(SDF_PositionCoordinate2d, center, area, radius);\n color = (dist > 0.0) ? color2: color1;\n color = mix( color, color2, 1.0-smoothstep(0.0,0.0025,abs(dist)));\n }\n \n gl_FragColor = color;\n}"},e,t)}static getFilterType(){return"shapeCompositeMask"}static getInputsCount(){return 2}static getInitialOptions(){return{type:"box",center:{x:0,y:0},area:{width:0,height:0},radius:.01,edgeSoftness:0}}getOptionsDisplay(){return[{properties:["center","x"],type:"slider",minValue:-1,maxValue:1,step:.001},{properties:["center","y"],type:"slider",minValue:-1,maxValue:1,step:.001},{properties:["area","width"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["area","height"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["radius"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["edgeSoftness"],type:"slider",minValue:-2,maxValue:2,step:.001}]}static getUniformList(){return[Hh.FIRST_TEXTURE,qh,Hh.SECOND_TEXTURE]}handleStaticUniforms(t){let e;switch(t.type){case"box":e=0;break;case"rounded":e=1;break;default:throw new Error("cant recognize shape composite mask type")}const n=Number.parseFloat(t.center.x).toFixed(7);let i=Number.parseFloat(t.center.y).toFixed(7);i+=0;const r=Number.parseFloat(t.area.width).toFixed(7),o=Number.parseFloat(t.area.height).toFixed(7),s=Number.parseFloat(t.radius).toFixed(7),a=Number.parseFloat(t.edgeSoftness).toFixed(7);this.uniforms[Hh.STATIC_OPTIONS].set([e,n,i,r,o,s,a])}}class mf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(mf)};super(mf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 fgColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 bgColor = texture2D(second_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(\n mix(bgColor.xyz, fgColor.xyz, fgColor.w),\n 1.0\n );\n // vec4 fgColor = texture2D(textures[1], current_texture_coordinate_2d);\n // if(fgColor.w > 0.0){\n // gl_FragColor = vec4(1.0,0,0,1);\n // }else{\n // gl_FragColor = vec4(1.0,1.0,0,1);\n // }\n \n \n}"},e,t)}static getFilterType(){return"shapeComposite"}static getInputsCount(){return 2}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,Hh.SECOND_TEXTURE]}}class vf extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(vf)};super(vf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n // Look it up in the LUT\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n\n mediump float blueColor = textureColor.b * 63.0;\n\n mediump vec2 quad1;\n quad1.y = floor(floor(blueColor) / 8.0);\n quad1.x = floor(blueColor) - (quad1.y * 8.0);\n\n mediump vec2 quad2;\n quad2.y = floor(ceil(blueColor) / 8.0);\n quad2.x = ceil(blueColor) - (quad2.y * 8.0);\n\n highp vec2 texPos1;\n texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\n texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);\n\n\n highp vec2 texPos2;\n texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\n texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);\n\n lowp vec4 newColor1 = texture2D(second_texture, texPos1);\n lowp vec4 newColor2 = texture2D(second_texture, texPos2);\n\n lowp vec4 color = mix(newColor1, newColor2, fract(blueColor));\n\n gl_FragColor = color;\n\n // debug\n// if (current_texture_coordinate_2d.x < 0.5) {\n// // Left half: show original\n// gl_FragColor = textureColor;\n// } else {\n// gl_FragColor = color;\n// }\n}\n"},e,t)}static getFilterType(){return"lut"}static getInputsCount(){return 2}static getInitialOptions(){return{}}static getUniformList(){return[Hh.FIRST_TEXTURE,Hh.SECOND_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(t){const e=Number.parseFloat(t.lutSize).toFixed(1);this.uniforms[Hh.STATIC_OPTIONS].set([e])}}var gf="attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",yf='precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n// a 256 * 4 length array with values for the master, r, g and b curve respectively\n// Temporarily changed length to 256 to avoid the following error on some machines:\n// "Implementation limit of 4096 (e.g., number of built-in plus user defined active uniforms components) exceeded, fragment shader uses 4100 total uniforms."\nuniform float staticOptions[256];\n\n\n// implementation of round (doesn\'t exist in webgl)\nint round(float val){\n return int(floor(val + 0.5));\n}\n\n// no dynamic array indexes in webgl\n// see https://stackoverflow.com/questions/30585265/what-can-i-use-as-an-array-index-in-glsl-in-webgl\nfloat getCurveValue(float pixelValue){\n float v;\n for (int k = 0; k < 256; k++) {\n if (k == round(pixelValue * 255.0)){\n v = float(staticOptions[k]) / 255.0;\n }\n }\n return v;\n}\n\nvec3 masterCurve(vec4 color){\n float r = getCurveValue(color.r);\n float g = getCurveValue(color.g);\n float b = getCurveValue(color.b);\n// for (int k = 0; k < 256; ++k) {\n// if (k == int(color.g) * 256){\n// g = float(staticOptions[k]) / 256.0;\n// }\n// }\n// for (int k = 0; k < 256; ++k) {\n// if (k == int(color.b) * 256){\n// b = float(staticOptions[k]) / 256.0;\n// }\n// }\n return vec3(r,g,b);\n}\n\n//vec3 redCurve(vec3 color){\n// int offset = 256;\n// return vec3(staticOptions[int(int(color.r) + offset)], color.g, color.b);\n//}\n//\n//vec3 greenCurve(vec3 color){\n// int offset = 256 * 2;\n// return vec3(color.r, staticOptions[int(int(color.g) + offset)], color.b);\n//}\n//\n//vec3 blueCurve(vec3 color){\n// int offset = 256 * 3;\n// return vec3(color.r, color.g, staticOptions[int(int(color.b) + offset)]);\n//}\n\nvoid main() {\n// vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n// vec3 afterMaster = masterCurve(textureColor);\n// vec3 afterRed = redCurve(afterMaster);\n// vec3 afterGreen = greenCurve(afterRed);\n// vec3 afterBlue = blueCurve(afterGreen);\n// vec4 finalColor = vec4(afterBlue, textureColor.a);\n\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec3 afterMaster = masterCurve(textureColor);\n vec4 finalColor = vec4(afterMaster, textureColor.a);\n\n gl_FragColor = finalColor;\n}\n';const{abs:bf,cos:kf,sin:wf,acos:xf,atan2:_f,sqrt:Tf,pow:If}=Math;function Ef(t){return t<0?-If(-t,1/3):If(t,1/3)}const Sf=Math.PI,Af=2*Sf,Nf=Sf/2,Mf=Number.MAX_SAFE_INTEGER||9007199254740991,Ff=Number.MIN_SAFE_INTEGER||-9007199254740991,Of={x:0,y:0,z:0},Cf={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(t,e){const n=e(t);let i=n.x*n.x+n.y*n.y;return void 0!==n.z&&(i+=n.z*n.z),Tf(i)},compute:function(t,e,n){if(0===t)return e[0].t=0,e[0];const i=e.length-1;if(1===t)return e[i].t=1,e[i];const r=1-t;let o=e;if(0===i)return e[0].t=t,e[0];if(1===i){const e={x:r*o[0].x+t*o[1].x,y:r*o[0].y+t*o[1].y,t:t};return n&&(e.z=r*o[0].z+t*o[1].z),e}if(i<4){let e,s,a,l=r*r,c=t*t,u=0;2===i?(o=[o[0],o[1],o[2],Of],e=l,s=r*t*2,a=c):3===i&&(e=l*r,s=l*t*3,a=r*c*3,u=t*c);const d={x:e*o[0].x+s*o[1].x+a*o[2].x+u*o[3].x,y:e*o[0].y+s*o[1].y+a*o[2].y+u*o[3].y,t:t};return n&&(d.z=e*o[0].z+s*o[1].z+a*o[2].z+u*o[3].z),d}const s=JSON.parse(JSON.stringify(e));for(;s.length>1;){for(let e=0;e<s.length-1;e++)s[e]={x:s[e].x+(s[e+1].x-s[e].x)*t,y:s[e].y+(s[e+1].y-s[e].y)*t},void 0!==s[e].z&&(s[e].z=s[e].z+(s[e+1].z-s[e].z)*t);s.splice(s.length-1,1)}return s[0].t=t,s[0]},computeWithRatios:function(t,e,n,i){const r=1-t,o=n,s=e;let a,l=o[0],c=o[1],u=o[2],d=o[3];return l*=r,c*=t,2===s.length?(a=l+c,{x:(l*s[0].x+c*s[1].x)/a,y:(l*s[0].y+c*s[1].y)/a,z:!!i&&(l*s[0].z+c*s[1].z)/a,t:t}):(l*=r,c*=2*r,u*=t*t,3===s.length?(a=l+c+u,{x:(l*s[0].x+c*s[1].x+u*s[2].x)/a,y:(l*s[0].y+c*s[1].y+u*s[2].y)/a,z:!!i&&(l*s[0].z+c*s[1].z+u*s[2].z)/a,t:t}):(l*=r,c*=1.5*r,u*=3*r,d*=t*t*t,4===s.length?(a=l+c+u+d,{x:(l*s[0].x+c*s[1].x+u*s[2].x+d*s[3].x)/a,y:(l*s[0].y+c*s[1].y+u*s[2].y+d*s[3].y)/a,z:!!i&&(l*s[0].z+c*s[1].z+u*s[2].z+d*s[3].z)/a,t:t}):void 0))},derive:function(t,e){const n=[];for(let i=t,r=i.length,o=r-1;r>1;r--,o--){const t=[];for(let n,r=0;r<o;r++)n={x:o*(i[r+1].x-i[r].x),y:o*(i[r+1].y-i[r].y)},e&&(n.z=o*(i[r+1].z-i[r].z)),t.push(n);n.push(t),i=t}return n},between:function(t,e,n){return e<=t&&t<=n||Cf.approximately(t,e)||Cf.approximately(t,n)},approximately:function(t,e,n){return bf(t-e)<=(n||1e-6)},length:function(t){const e=Cf.Tvalues.length;let n=0;for(let i,r=0;r<e;r++)i=.5*Cf.Tvalues[r]+.5,n+=Cf.Cvalues[r]*Cf.arcfn(i,t);return.5*n},map:function(t,e,n,i,r){return i+(t-e)/(n-e)*(r-i)},lerp:function(t,e,n){const i={x:e.x+t*(n.x-e.x),y:e.y+t*(n.y-e.y)};return void 0!==e.z&&void 0!==n.z&&(i.z=e.z+t*(n.z-e.z)),i},pointToString:function(t){let e=t.x+"/"+t.y;return void 0!==t.z&&(e+="/"+t.z),e},pointsToString:function(t){return"["+t.map(Cf.pointToString).join(", ")+"]"},copy:function(t){return JSON.parse(JSON.stringify(t))},angle:function(t,e,n){const i=e.x-t.x,r=e.y-t.y,o=n.x-t.x,s=n.y-t.y;return _f(i*s-r*o,i*o+r*s)},round:function(t,e){const n=""+t,i=n.indexOf(".");return parseFloat(n.substring(0,i+1+e))},dist:function(t,e){const n=t.x-e.x,i=t.y-e.y;return Tf(n*n+i*i)},closest:function(t,e){let n,i,r=If(2,63);return t.forEach((function(t,o){i=Cf.dist(e,t),i<r&&(r=i,n=o)})),{mdist:r,mpos:n}},abcratio:function(t,e){if(2!==e&&3!==e)return!1;if(void 0===t)t=.5;else if(0===t||1===t)return t;const n=If(t,e)+If(1-t,e);return bf((n-1)/n)},projectionratio:function(t,e){if(2!==e&&3!==e)return!1;if(void 0===t)t=.5;else if(0===t||1===t)return t;const n=If(1-t,e);return n/(If(t,e)+n)},lli8:function(t,e,n,i,r,o,s,a){const l=(t-n)*(o-a)-(e-i)*(r-s);return 0!=l&&{x:((t*i-e*n)*(r-s)-(t-n)*(r*a-o*s))/l,y:((t*i-e*n)*(o-a)-(e-i)*(r*a-o*s))/l}},lli4:function(t,e,n,i){const r=t.x,o=t.y,s=e.x,a=e.y,l=n.x,c=n.y,u=i.x,d=i.y;return Cf.lli8(r,o,s,a,l,c,u,d)},lli:function(t,e){return Cf.lli4(t,t.c,e,e.c)},makeline:function(t,e){return new $f(t.x,t.y,(t.x+e.x)/2,(t.y+e.y)/2,e.x,e.y)},findbbox:function(t){let e=Mf,n=Mf,i=Ff,r=Ff;return t.forEach((function(t){const o=t.bbox();e>o.x.min&&(e=o.x.min),n>o.y.min&&(n=o.y.min),i<o.x.max&&(i=o.x.max),r<o.y.max&&(r=o.y.max)})),{x:{min:e,mid:(e+i)/2,max:i,size:i-e},y:{min:n,mid:(n+r)/2,max:r,size:r-n}}},shapeintersections:function(t,e,n,i,r){if(!Cf.bboxoverlap(e,i))return[];const o=[],s=[t.startcap,t.forward,t.back,t.endcap],a=[n.startcap,n.forward,n.back,n.endcap];return s.forEach((function(e){e.virtual||a.forEach((function(i){if(i.virtual)return;const s=e.intersects(i,r);s.length>0&&(s.c1=e,s.c2=i,s.s1=t,s.s2=n,o.push(s))}))})),o},makeshape:function(t,e,n){const i=e.points.length,r=t.points.length,o=Cf.makeline(e.points[i-1],t.points[0]),s=Cf.makeline(t.points[r-1],e.points[0]),a={startcap:o,forward:t,back:e,endcap:s,bbox:Cf.findbbox([o,t,e,s]),intersections:function(t){return Cf.shapeintersections(a,a.bbox,t,t.bbox,n)}};return a},getminmax:function(t,e,n){if(!n)return{min:0,max:0};let i,r,o=Mf,s=Ff;-1===n.indexOf(0)&&(n=[0].concat(n)),-1===n.indexOf(1)&&n.push(1);for(let a=0,l=n.length;a<l;a++)i=n[a],r=t.get(i),r[e]<o&&(o=r[e]),r[e]>s&&(s=r[e]);return{min:o,mid:(o+s)/2,max:s,size:s-o}},align:function(t,e){const n=e.p1.x,i=e.p1.y,r=-_f(e.p2.y-i,e.p2.x-n);return t.map((function(t){return{x:(t.x-n)*kf(r)-(t.y-i)*wf(r),y:(t.x-n)*wf(r)+(t.y-i)*kf(r)}}))},roots:function(t,e){e=e||{p1:{x:0,y:0},p2:{x:1,y:0}};const n=t.length-1,i=Cf.align(t,e),r=function(t){return 0<=t&&t<=1};if(2===n){const t=i[0].y,e=i[1].y,n=i[2].y,o=t-2*e+n;if(0!==o){const i=-Tf(e*e-t*n),s=-t+e;return[-(i+s)/o,-(-i+s)/o].filter(r)}return e!==n&&0===o?[(2*e-n)/(2*e-2*n)].filter(r):[]}const o=i[0].y,s=i[1].y,a=i[2].y;let l=3*s-o-3*a+i[3].y,c=3*o-6*s+3*a,u=-3*o+3*s,d=o;if(Cf.approximately(l,0)){if(Cf.approximately(c,0))return Cf.approximately(u,0)?[]:[-d/u].filter(r);const t=Tf(u*u-4*c*d),e=2*c;return[(t-u)/e,(-u-t)/e].filter(r)}c/=l,u/=l,d/=l;const h=(3*u-c*c)/3,f=h/3,p=(2*c*c*c-9*c*u+27*d)/27,m=p/2,v=m*m+f*f*f;let g,y,b,k,w;if(v<0){const t=-h/3,e=Tf(t*t*t),n=-p/(2*e),i=xf(n<-1?-1:n>1?1:n),o=2*Ef(e);return b=o*kf(i/3)-c/3,k=o*kf((i+Af)/3)-c/3,w=o*kf((i+2*Af)/3)-c/3,[b,k,w].filter(r)}if(0===v)return g=m<0?Ef(-m):-Ef(m),b=2*g-c/3,k=-g-c/3,[b,k].filter(r);{const t=Tf(v);return g=Ef(-m+t),y=Ef(m+t),[g-y-c/3].filter(r)}},droots:function(t){if(3===t.length){const e=t[0],n=t[1],i=t[2],r=e-2*n+i;if(0!==r){const t=-Tf(n*n-e*i),o=-e+n;return[-(t+o)/r,-(-t+o)/r]}return n!==i&&0===r?[(2*n-i)/(2*(n-i))]:[]}if(2===t.length){const e=t[0],n=t[1];return e!==n?[e/(e-n)]:[]}return[]},curvature:function(t,e,n,i,r){let o,s,a,l,c=0,u=0;const d=Cf.compute(t,e),h=Cf.compute(t,n),f=d.x*d.x+d.y*d.y;if(i?(o=Tf(If(d.y*h.z-h.y*d.z,2)+If(d.z*h.x-h.z*d.x,2)+If(d.x*h.y-h.x*d.y,2)),s=If(f+d.z*d.z,1.5)):(o=d.x*h.y-d.y*h.x,s=If(f,1.5)),0===o||0===s)return{k:0,r:0};if(c=o/s,u=s/o,!r){const r=Cf.curvature(t-.001,e,n,i,!0).k,o=Cf.curvature(t+.001,e,n,i,!0).k;l=(o-c+(c-r))/2,a=(bf(o-c)+bf(c-r))/2}return{k:c,r:u,dk:l,adk:a}},inflections:function(t){if(t.length<4)return[];const e=Cf.align(t,{p1:t[0],p2:t.slice(-1)[0]}),n=e[2].x*e[1].y,i=e[3].x*e[1].y,r=e[1].x*e[2].y,o=18*(-3*n+2*i+3*r-e[3].x*e[2].y),s=18*(3*n-i-3*r),a=18*(r-n);if(Cf.approximately(o,0)){if(!Cf.approximately(s,0)){let t=-a/s;if(0<=t&&t<=1)return[t]}return[]}const l=2*o;if(Cf.approximately(l,0))return[];const c=s*s-4*o*a;if(c<0)return[];const u=Math.sqrt(c);return[(u-s)/l,-(s+u)/l].filter((function(t){return 0<=t&&t<=1}))},bboxoverlap:function(t,e){const n=["x","y"],i=n.length;for(let r,o,s,a,l=0;l<i;l++)if(r=n[l],o=t[r].mid,s=e[r].mid,a=(t[r].size+e[r].size)/2,bf(o-s)>=a)return!1;return!0},expandbox:function(t,e){e.x.min<t.x.min&&(t.x.min=e.x.min),e.y.min<t.y.min&&(t.y.min=e.y.min),e.z&&e.z.min<t.z.min&&(t.z.min=e.z.min),e.x.max>t.x.max&&(t.x.max=e.x.max),e.y.max>t.y.max&&(t.y.max=e.y.max),e.z&&e.z.max>t.z.max&&(t.z.max=e.z.max),t.x.mid=(t.x.min+t.x.max)/2,t.y.mid=(t.y.min+t.y.max)/2,t.z&&(t.z.mid=(t.z.min+t.z.max)/2),t.x.size=t.x.max-t.x.min,t.y.size=t.y.max-t.y.min,t.z&&(t.z.size=t.z.max-t.z.min)},pairiteration:function(t,e,n){const i=t.bbox(),r=e.bbox(),o=1e5,s=n||.5;if(i.x.size+i.y.size<s&&r.x.size+r.y.size<s)return[(o*(t._t1+t._t2)/2|0)/o+"/"+(o*(e._t1+e._t2)/2|0)/o];let a=t.split(.5),l=e.split(.5),c=[{left:a.left,right:l.left},{left:a.left,right:l.right},{left:a.right,right:l.right},{left:a.right,right:l.left}];c=c.filter((function(t){return Cf.bboxoverlap(t.left.bbox(),t.right.bbox())}));let u=[];return 0===c.length||(c.forEach((function(t){u=u.concat(Cf.pairiteration(t.left,t.right,s))})),u=u.filter((function(t,e){return u.indexOf(t)===e}))),u},getccenter:function(t,e,n){const i=e.x-t.x,r=e.y-t.y,o=n.x-e.x,s=n.y-e.y,a=i*kf(Nf)-r*wf(Nf),l=i*wf(Nf)+r*kf(Nf),c=o*kf(Nf)-s*wf(Nf),u=o*wf(Nf)+s*kf(Nf),d=(t.x+e.x)/2,h=(t.y+e.y)/2,f=(e.x+n.x)/2,p=(e.y+n.y)/2,m=d+a,v=h+l,g=f+c,y=p+u,b=Cf.lli8(d,h,m,v,f,p,g,y),k=Cf.dist(b,t);let w,x=_f(t.y-b.y,t.x-b.x),_=_f(e.y-b.y,e.x-b.x),T=_f(n.y-b.y,n.x-b.x);return x<T?((x>_||_>T)&&(x+=Af),x>T&&(w=T,T=x,x=w)):T<_&&_<x?(w=T,T=x,x=w):T+=Af,b.s=x,b.e=T,b.r=k,b},numberSort:function(t,e){return t-e}};class Pf{constructor(t){this.curves=[],this._3d=!1,t&&(this.curves=t,this._3d=this.curves[0]._3d)}valueOf(){return this.toString()}toString(){return"["+this.curves.map((function(t){return Cf.pointsToString(t.points)})).join(", ")+"]"}addCurve(t){this.curves.push(t),this._3d=this._3d||t._3d}length(){return this.curves.map((function(t){return t.length()})).reduce((function(t,e){return t+e}))}curve(t){return this.curves[t]}bbox(){const t=this.curves;for(var e=t[0].bbox(),n=1;n<t.length;n++)Cf.expandbox(e,t[n].bbox());return e}offset(t){const e=[];return this.curves.forEach((function(n){e.push(...n.offset(t))})),new Pf(e)}}const{abs:Df,min:Rf,max:Lf,cos:Bf,sin:zf,acos:Wf,sqrt:jf}=Math,Uf=Math.PI;let $f=class e{constructor(t){let e=t&&t.forEach?t:Array.from(arguments).slice(),n=!1;if("object"==typeof e[0]){n=e.length;const t=[];e.forEach((function(e){["x","y","z"].forEach((function(n){void 0!==e[n]&&t.push(e[n])}))})),e=t}let i=!1;const r=e.length;if(n){if(n>4){if(1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");i=!0}}else if(6!==r&&8!==r&&9!==r&&12!==r&&1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const o=this._3d=!i&&(9===r||12===r)||t&&t[0]&&void 0!==t[0].z,s=this.points=[];for(let t=0,n=o?3:2;t<r;t+=n){var a={x:e[t],y:e[t+1]};o&&(a.z=e[t+2]),s.push(a)}const l=this.order=s.length-1,c=this.dims=["x","y"];o&&c.push("z"),this.dimlen=c.length;const u=Cf.align(s,{p1:s[0],p2:s[l]}),d=Cf.dist(s[0],s[l]);this._linear=u.reduce(((t,e)=>t+Df(e.y)),0)<d/50,this._lut=[],this._t1=0,this._t2=1,this.update()}static quadraticFromPoints(t,n,i,r){if(void 0===r&&(r=.5),0===r)return new e(n,n,i);if(1===r)return new e(t,n,n);const o=e.getABC(2,t,n,i,r);return new e(t,o.A,i)}static cubicFromPoints(t,n,i,r,o){void 0===r&&(r=.5);const s=e.getABC(3,t,n,i,r);void 0===o&&(o=Cf.dist(n,s.C));const a=o*(1-r)/r,l=Cf.dist(t,i),c=(i.x-t.x)/l,u=(i.y-t.y)/l,d=o*c,h=o*u,f=a*c,p=a*u,m=n.x-d,v=n.y-h,g=n.x+f,y=n.y+p,b=s.A,k=b.x+(m-b.x)/(1-r),w=b.y+(v-b.y)/(1-r),x=b.x+(g-b.x)/r,_=b.y+(y-b.y)/r,T={x:t.x+(k-t.x)/r,y:t.y+(w-t.y)/r},I={x:i.x+(x-i.x)/(1-r),y:i.y+(_-i.y)/(1-r)};return new e(t,T,I,i)}static getUtils(){return Cf}getUtils(){return e.getUtils()}static get PolyBezier(){return Pf}valueOf(){return this.toString()}toString(){return Cf.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const t=this.points,e=["M",t[0].x,t[0].y,2===this.order?"Q":"C"];for(let n=1,i=t.length;n<i;n++)e.push(t[n].x),e.push(t[n].y);return e.join(" ")}setRatios(t){if(t.length!==this.points.length)throw new Error("incorrect number of ratio values");this.ratios=t,this._lut=[]}verify(){const t=this.coordDigest();t!==this._print&&(this._print=t,this.update())}coordDigest(){return this.points.map((function(t,e){return""+e+t.x+t.y+(t.z?t.z:0)})).join("")}update(){this._lut=[],this.dpoints=Cf.derive(this.points,this._3d),this.computedirection()}computedirection(){const t=this.points,e=Cf.angle(t[0],t[this.order],t[1]);this.clockwise=e>0}length(){return Cf.length(this.derivative.bind(this))}static getABC(t=2,e,n,i,r=.5){const o=Cf.projectionratio(r,t),s=1-o,a={x:o*e.x+s*i.x,y:o*e.y+s*i.y},l=Cf.abcratio(r,t);return{A:{x:n.x+(n.x-a.x)/l,y:n.y+(n.y-a.y)/l},B:n,C:a,S:e,E:i}}getABC(t,n){n=n||this.get(t);let i=this.points[0],r=this.points[this.order];return e.getABC(this.order,i,n,r,t)}getLUT(t){if(this.verify(),t=t||100,this._lut.length===t+1)return this._lut;this._lut=[],t++,this._lut=[];for(let e,n,i=0;i<t;i++)n=i/(t-1),e=this.compute(n),e.t=n,this._lut.push(e);return this._lut}on(e,n){n=n||5;const i=this.getLUT(),r=[];for(let t,o=0,s=0;o<i.length;o++)t=i[o],Cf.dist(t,e)<n&&(r.push(t),s+=o/i.length);return!!r.length&&(t/=r.length)}project(t){const e=this.getLUT(),n=e.length-1,i=Cf.closest(e,t),r=i.mpos,o=(r-1)/n,s=(r+1)/n,a=.1/n;let l,c=i.mdist,u=o,d=u;c+=1;for(let e;u<s+a;u+=a)l=this.compute(u),e=Cf.dist(t,l),e<c&&(c=e,d=u);return d=d<0?0:d>1?1:d,l=this.compute(d),l.t=d,l.d=c,l}get(t){return this.compute(t)}point(t){return this.points[t]}compute(t){return this.ratios?Cf.computeWithRatios(t,this.points,this.ratios,this._3d):Cf.compute(t,this.points,this._3d,this.ratios)}raise(){const t=this.points,n=[t[0]],i=t.length;for(let e,r,o=1;o<i;o++)e=t[o],r=t[o-1],n[o]={x:(i-o)/i*e.x+o/i*r.x,y:(i-o)/i*e.y+o/i*r.y};return n[i]=t[i-1],new e(n)}derivative(t){return Cf.compute(t,this.dpoints[0],this._3d)}dderivative(t){return Cf.compute(t,this.dpoints[1],this._3d)}align(){let t=this.points;return new e(Cf.align(t,{p1:t[0],p2:t[t.length-1]}))}curvature(t){return Cf.curvature(t,this.dpoints[0],this.dpoints[1],this._3d)}inflections(){return Cf.inflections(this.points)}normal(t){return this._3d?this.__normal3(t):this.__normal2(t)}__normal2(t){const e=this.derivative(t),n=jf(e.x*e.x+e.y*e.y);return{t:t,x:-e.y/n,y:e.x/n}}__normal3(t){const e=this.derivative(t),n=this.derivative(t+.01),i=jf(e.x*e.x+e.y*e.y+e.z*e.z),r=jf(n.x*n.x+n.y*n.y+n.z*n.z);e.x/=i,e.y/=i,e.z/=i,n.x/=r,n.y/=r,n.z/=r;const o={x:n.y*e.z-n.z*e.y,y:n.z*e.x-n.x*e.z,z:n.x*e.y-n.y*e.x},s=jf(o.x*o.x+o.y*o.y+o.z*o.z);o.x/=s,o.y/=s,o.z/=s;const a=[o.x*o.x,o.x*o.y-o.z,o.x*o.z+o.y,o.x*o.y+o.z,o.y*o.y,o.y*o.z-o.x,o.x*o.z-o.y,o.y*o.z+o.x,o.z*o.z];return{t:t,x:a[0]*e.x+a[1]*e.y+a[2]*e.z,y:a[3]*e.x+a[4]*e.y+a[5]*e.z,z:a[6]*e.x+a[7]*e.y+a[8]*e.z}}hull(t){let e=this.points,n=[],i=[],r=0;for(i[r++]=e[0],i[r++]=e[1],i[r++]=e[2],3===this.order&&(i[r++]=e[3]);e.length>1;){n=[];for(let o,s=0,a=e.length-1;s<a;s++)o=Cf.lerp(t,e[s],e[s+1]),i[r++]=o,n.push(o);e=n}return i}split(t,n){if(0===t&&n)return this.split(n).left;if(1===n)return this.split(t).right;const i=this.hull(t),r={left:2===this.order?new e([i[0],i[3],i[5]]):new e([i[0],i[4],i[7],i[9]]),right:2===this.order?new e([i[5],i[4],i[2]]):new e([i[9],i[8],i[6],i[3]]),span:i};return r.left._t1=Cf.map(0,0,1,this._t1,this._t2),r.left._t2=Cf.map(t,0,1,this._t1,this._t2),r.right._t1=Cf.map(t,0,1,this._t1,this._t2),r.right._t2=Cf.map(1,0,1,this._t1,this._t2),n?(n=Cf.map(n,t,1,0,1),r.right.split(n).left):r}extrema(){const t={};let e=[];return this.dims.forEach(function(n){let i=function(t){return t[n]},r=this.dpoints[0].map(i);t[n]=Cf.droots(r),3===this.order&&(r=this.dpoints[1].map(i),t[n]=t[n].concat(Cf.droots(r))),t[n]=t[n].filter((function(t){return t>=0&&t<=1})),e=e.concat(t[n].sort(Cf.numberSort))}.bind(this)),t.values=e.sort(Cf.numberSort).filter((function(t,n){return e.indexOf(t)===n})),t}bbox(){const t=this.extrema(),e={};return this.dims.forEach(function(n){e[n]=Cf.getminmax(this,n,t[n])}.bind(this)),e}overlaps(t){const e=this.bbox(),n=t.bbox();return Cf.bboxoverlap(e,n)}offset(t,n){if(void 0!==n){const e=this.get(t),i=this.normal(t),r={c:e,n:i,x:e.x+i.x*n,y:e.y+i.y*n};return this._3d&&(r.z=e.z+i.z*n),r}if(this._linear){const n=this.normal(0),i=this.points.map((function(e){const i={x:e.x+t*n.x,y:e.y+t*n.y};return e.z&&n.z&&(i.z=e.z+t*n.z),i}));return[new e(i)]}return this.reduce().map((function(e){return e._linear?e.offset(t)[0]:e.scale(t)}))}simple(){if(3===this.order){const t=Cf.angle(this.points[0],this.points[3],this.points[1]),e=Cf.angle(this.points[0],this.points[3],this.points[2]);if(t>0&&e<0||t<0&&e>0)return!1}const t=this.normal(0),e=this.normal(1);let n=t.x*e.x+t.y*e.y;return this._3d&&(n+=t.z*e.z),Df(Wf(n))<Uf/3}reduce(){let t,e,n=0,i=0,r=.01,o=[],s=[],a=this.extrema().values;for(-1===a.indexOf(0)&&(a=[0].concat(a)),-1===a.indexOf(1)&&a.push(1),n=a[0],t=1;t<a.length;t++)i=a[t],e=this.split(n,i),e._t1=n,e._t2=i,o.push(e),n=i;return o.forEach((function(t){for(n=0,i=0;i<=1;)for(i=n+r;i<=1.01;i+=r)if(e=t.split(n,i),!e.simple()){if(i-=r,Df(n-i)<r)return[];e=t.split(n,i),e._t1=Cf.map(n,0,1,t._t1,t._t2),e._t2=Cf.map(i,0,1,t._t1,t._t2),s.push(e),n=i;break}n<1&&(e=t.split(n,1),e._t1=Cf.map(n,0,1,t._t1,t._t2),e._t2=t._t2,s.push(e))})),s}translate(t,n,i){i="number"==typeof i?i:n;const r=this.order;let o=this.points.map(((t,e)=>(1-e/r)*n+e/r*i));return new e(this.points.map(((e,n)=>({x:e.x+t.x*o[n],y:e.y+t.y*o[n]}))))}scale(t){const n=this.order;let i=!1;if("function"==typeof t&&(i=t),i&&2===n)return this.raise().scale(i);const r=this.clockwise,o=this.points;if(this._linear)return this.translate(this.normal(0),i?i(0):t,i?i(1):t);const s=i?i(0):t,a=i?i(1):t,l=[this.offset(0,10),this.offset(1,10)],c=[],u=Cf.lli4(l[0],l[0].c,l[1],l[1].c);if(!u)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach((function(t){const e=c[t*n]=Cf.copy(o[t*n]);e.x+=(t?a:s)*l[t].n.x,e.y+=(t?a:s)*l[t].n.y})),i?([0,1].forEach((function(e){if(2!==n||!e){var s=o[e+1],a={x:s.x-u.x,y:s.y-u.y},l=i?i((e+1)/n):t;i&&!r&&(l=-l);var d=jf(a.x*a.x+a.y*a.y);a.x/=d,a.y/=d,c[e+1]={x:s.x+l*a.x,y:s.y+l*a.y}}})),new e(c)):([0,1].forEach((t=>{if(2===n&&t)return;const e=c[t*n],i=this.derivative(t),r={x:e.x+i.x,y:e.y+i.y};c[t+1]=Cf.lli4(e,r,u,o[t+1])})),new e(c))}outline(t,n,i,r){if(n=void 0===n?t:n,this._linear){const o=this.normal(0),s=this.points[0],a=this.points[this.points.length-1];let l,c,u;void 0===i&&(i=t,r=n),l={x:s.x+o.x*t,y:s.y+o.y*t},u={x:a.x+o.x*i,y:a.y+o.y*i},c={x:(l.x+u.x)/2,y:(l.y+u.y)/2};const d=[l,c,u];l={x:s.x-o.x*n,y:s.y-o.y*n},u={x:a.x-o.x*r,y:a.y-o.y*r},c={x:(l.x+u.x)/2,y:(l.y+u.y)/2};const h=[u,c,l],f=Cf.makeline(h[2],d[0]),p=Cf.makeline(d[2],h[0]),m=[f,new e(d),p,new e(h)];return new Pf(m)}const o=this.reduce(),s=o.length,a=[];let l,c=[],u=0,d=this.length();const h=void 0!==i&&void 0!==r;function f(t,e,n,i,r){return function(o){const s=i/n,a=(i+r)/n,l=e-t;return Cf.map(o,0,1,t+s*l,t+a*l)}}o.forEach((function(e){const o=e.length();h?(a.push(e.scale(f(t,i,d,u,o))),c.push(e.scale(f(-n,-r,d,u,o)))):(a.push(e.scale(t)),c.push(e.scale(-n))),u+=o})),c=c.map((function(t){return l=t.points,l[3]?t.points=[l[3],l[2],l[1],l[0]]:t.points=[l[2],l[1],l[0]],t})).reverse();const p=a[0].points[0],m=a[s-1].points[a[s-1].points.length-1],v=c[s-1].points[c[s-1].points.length-1],g=c[0].points[0],y=Cf.makeline(v,p),b=Cf.makeline(m,g),k=[y].concat(a).concat([b]).concat(c);return new Pf(k)}outlineshapes(t,e,n){e=e||t;const i=this.outline(t,e).curves,r=[];for(let t=1,e=i.length;t<e/2;t++){const o=Cf.makeshape(i[t],i[e-t],n);o.startcap.virtual=t>1,o.endcap.virtual=t<e/2-1,r.push(o)}return r}intersects(t,n){return t?t.p1&&t.p2?this.lineIntersects(t):(t instanceof e&&(t=t.reduce()),this.curveintersects(this.reduce(),t,n)):this.selfintersects(n)}lineIntersects(t){const e=Rf(t.p1.x,t.p2.x),n=Rf(t.p1.y,t.p2.y),i=Lf(t.p1.x,t.p2.x),r=Lf(t.p1.y,t.p2.y);return Cf.roots(this.points,t).filter((t=>{var o=this.get(t);return Cf.between(o.x,e,i)&&Cf.between(o.y,n,r)}))}selfintersects(t){const e=this.reduce(),n=e.length-2,i=[];for(let r,o,s,a=0;a<n;a++)o=e.slice(a,a+1),s=e.slice(a+2),r=this.curveintersects(o,s,t),i.push(...r);return i}curveintersects(t,e,n){const i=[];t.forEach((function(t){e.forEach((function(e){t.overlaps(e)&&i.push({left:t,right:e})}))}));let r=[];return i.forEach((function(t){const e=Cf.pairiteration(t.left,t.right,n);e.length>0&&(r=r.concat(e))})),r}arcs(t){return t=t||.5,this._iterate(t,[])}_error(t,e,n,i){const r=(i-n)/4,o=this.get(n+r),s=this.get(i-r),a=Cf.dist(t,e),l=Cf.dist(t,o),c=Cf.dist(t,s);return Df(l-a)+Df(c-a)}_iterate(t,e){let n,i=0,r=1;do{n=0,r=1;let o,s,a,l,c,u=this.get(i),d=!1,h=!1,f=r,p=1;do{if(h=d,l=a,f=(i+r)/2,o=this.get(f),s=this.get(r),a=Cf.getccenter(u,o,s),a.interval={start:i,end:r},d=this._error(a,u,i,r)<=t,c=h&&!d,c||(p=r),d){if(r>=1){if(a.interval.end=p=1,l=a,r>1){let t={x:a.x+a.r*Bf(a.e),y:a.y+a.r*zf(a.e)};a.e+=Cf.angle({x:a.x,y:a.y},t,this.get(1))}break}r+=(r-i)/2}else r=f}while(!c&&n++<100);if(n>=100)break;l=l||a,e.push(l),i=p}while(r<1);return e}};var qf={pointsToCurve:function(t,e){let n=1/e;if(0===t.length){let t=[];for(let i=0;i<e;i++){let e=i*n;t.push({x:e,y:.5})}return t}if(1===t.length){let i=t[0].y,r=[{x:0,y:i}];for(let t=0;t<e;t++){let e=t*n+n;r.push({x:e,y:i})}return r}let i=[],r=t[0],o=t[t.length-1],s=new $f({x:o.x-1,y:o.y},{x:o.x-1+(r.x-(o.x-1))/2,y:o.y},{x:r.x-(r.x-(o.x-1))/2,y:r.y},r),a=new $f(o,{x:o.x+(r.x+1-o.x)/2,y:o.y},{x:r.x+1-(r.x+1-o.x)/2,y:r.y},{x:r.x+1,y:r.y});for(let e=0;e<t.length-1;e++){let n=t[e],r=t[e+1],o={x:n.x+(r.x-n.x)/2,y:n.y},s={x:r.x-(r.x-n.x)/2,y:r.y},a=new $f(n,o,s,r);i.push(a)}i.unshift(s),i.push(a);let l=[s.get(s.intersects({p1:{x:0,y:0},p2:{x:0,y:1}})[0])];for(let t=0;t<e;t++){let e,r=t*n+n;i.every((t=>{let n=t.intersects({p1:{x:r,y:0},p2:{x:r,y:1}});return!(n.length>0&&(e=t.get(n[0]),l.push(e),1))}))}return l}};class Vf{constructor(t,e){this.xs=t,this.ys=e,this.ks=this.getNaturalKs(new Float64Array(this.xs.length))}getNaturalKs(t){const e=this.xs.length-1,n=function(t,e){const n=[];for(let i=0;i<t;i++)n.push(new Float64Array(e));return n}(e+1,e+2);for(let t=1;t<e;t++)n[t][t-1]=1/(this.xs[t]-this.xs[t-1]),n[t][t]=2*(1/(this.xs[t]-this.xs[t-1])+1/(this.xs[t+1]-this.xs[t])),n[t][t+1]=1/(this.xs[t+1]-this.xs[t]),n[t][e+1]=3*((this.ys[t]-this.ys[t-1])/((this.xs[t]-this.xs[t-1])*(this.xs[t]-this.xs[t-1]))+(this.ys[t+1]-this.ys[t])/((this.xs[t+1]-this.xs[t])*(this.xs[t+1]-this.xs[t])));return n[0][0]=2/(this.xs[1]-this.xs[0]),n[0][1]=1/(this.xs[1]-this.xs[0]),n[0][e+1]=3*(this.ys[1]-this.ys[0])/((this.xs[1]-this.xs[0])*(this.xs[1]-this.xs[0])),n[e][e-1]=1/(this.xs[e]-this.xs[e-1]),n[e][e]=2/(this.xs[e]-this.xs[e-1]),n[e][e+1]=3*(this.ys[e]-this.ys[e-1])/((this.xs[e]-this.xs[e-1])*(this.xs[e]-this.xs[e-1])),function(t,e){const n=t.length;let i=0,r=0;for(;i<n&&r<=n;){let e=0,o=-1/0;for(let s=i;s<n;s++){const n=Math.abs(t[s][r]);n>o&&(e=s,o=n)}if(0===t[e][r])r++;else{Gf(t,i,e);for(let e=i+1;e<n;e++){const o=t[e][r]/t[i][r];t[e][r]=0;for(let s=r+1;s<=n;s++)t[e][s]-=t[i][s]*o}i++,r++}}for(let i=n-1;i>=0;i--){var o=0;t[i][i]&&(o=t[i][n]/t[i][i]),e[i]=o;for(let e=i-1;e>=0;e--)t[e][n]-=t[e][i]*o,t[e][i]=0}return e}(n,t)}getIndexBefore(t){let e=0,n=this.xs.length,i=0;for(;e<n;)i=Math.floor((e+n)/2),this.xs[i]<t&&i!==e?e=i:n=this.xs[i]>=t&&i!==n?i:e;return e===this.xs.length-1?this.xs.length-1:e+1}at(t){let e=this.getIndexBefore(t);const n=(t-this.xs[e-1])/(this.xs[e]-this.xs[e-1]),i=this.ks[e-1]*(this.xs[e]-this.xs[e-1])-(this.ys[e]-this.ys[e-1]),r=-this.ks[e]*(this.xs[e]-this.xs[e-1])+(this.ys[e]-this.ys[e-1]);return(1-n)*this.ys[e-1]+n*this.ys[e]+n*(1-n)*(i*(1-n)+r*n)}}function Gf(t,e,n){let i=t[e];t[e]=t[n],t[n]=i}function Hf(t,e,n){const i=n[0],r=n[n.length-1];if(t<i.x)return i.y;if(t>r.x)return r.y;const o=e.at(t);return Math.max(0,Math.min(o,1))}var Kf={pointsToCurve:function(t,e){if(!Array.isArray(t)||!t.every((t=>"object"==typeof t&&"number"==typeof t.x&&"number"==typeof t.y&&t.x>=0&&t.x<=1&&t.y>=0&&t.y<=1)))throw new Error("[pointsToCurve] Invalid points. Expected array of objects with x and y in [0, 1] range.");if(!("number"==typeof e&&e>=1))throw new Error(`[pointsToCurve] Invalid resolution: ${e}. Expected integer >= 1.`);const n=t.map((t=>t.x)),i=t.map((t=>t.y)),r=new Vf(n,i);let o=[];for(let n=0;n<e;n++)o.push(Hf(n/(e-1),r,t));return o}};function Xf(t,e=256,n={}){return"bezier"===n.type?qf.pointsToCurve(t,e,n):Kf.pointsToCurve(t,e)}const Yf=[];for(let t=0;t<256;t++)Yf[t]=t;class Qf extends tf{constructor(t){const e={vertex:gf,fragment:yf},n={uniforms:tf.getUniformInfo(Qf)};super(Qf.getFilterType(),e,n,t)}static getFilterType(){return"curves"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=[];var n;e=[...t.master||t.points||t.masterPoints?t.master||(n=t.points||t.masterPoints,Xf(n,256).map((t=>255*t))):Yf],this.uniforms[Hh.STATIC_OPTIONS].set(e)}}function Jf(t,e,n){if("number"!=typeof t||t<0||t>255)throw new Error(`[levels] Invalid black point: ${t}. Expected integer between 0 and 255`);if("number"!=typeof e||e<0||e>255)throw new Error(`[levels] Invalid white point: ${e}. Expected integer between 0 and 255`);if("number"!=typeof n||n<.01||n>9.99)throw new Error(`[levels] Invalid gamma: ${n}. Expected float between 0.01 and 9.99`);if(t>e)throw new Error(`[levels] Invalid black and white points: ${t}, ${e}. Expected black <= white`);let i=[];for(let r=0;r<256;r++){let o;o=r<=t?0:r>=e?255:255*Math.pow((r-t)/(e-t),1/n),i[r]=o}return i}class Zf extends tf{constructor(t){const e={vertex:gf,fragment:yf},n={uniforms:tf.getUniformInfo(Zf)};super(Zf.getFilterType(),e,n,t)}static getFilterType(){return"levels"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=[...Jf(t.black,t.white,t.gamma)];this.uniforms[Hh.STATIC_OPTIONS].set(e)}}const tp=360,ep=[];for(let t=0;t<tp;t++)ep[t]=t;class np extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(np)};super(np.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n// a 360 length array with values for the hue curve\n// this represents a lookup table from a hue value to another hue value\nuniform float staticOptions[360];\n\n// implementation of round (doesn't exist in webgl)\nint round(float val){\n return int(floor(val + 0.5));\n}\n\n// glsl mod doesn't work with negative numbers so\n// this is a safer version that lets us play with negatives > -1.0\nfloat safeMod(float val){\n return mod(val + 1.0, 1.0);\n}\n\n// no dynamic array indexes in webgl\n// see https://stackoverflow.com/questions/30585265/what-can-i-use-as-an-array-index-in-glsl-in-webgl\nfloat getCurveValue(float pixelValue){\n float v;\n for (int k = 0; k < 360; k++) {\n if (k == round(pixelValue * 359.0)){\n v = float(staticOptions[k]) / 359.0;\n }\n }\n return v;\n}\n\n// function source https://www.shadertoy.com/view/4dKcWK\nconst float EPSILON = 1e-10;\n\nvec3 HUEtoRGB(in float hue) {\n // Hue [0..1] to RGB [0..1]\n // See http://www.chilliant.com/rgb2hsv.html\n vec3 rgb = abs(hue * 6. - vec3(3, 2, 4)) * vec3(1, -1, -1) + vec3(-1, 2, 2);\n return clamp(rgb, 0., 1.);\n}\n\nvec3 RGBtoHCV(in vec3 rgb) {\n // RGB [0..1] to Hue-Chroma-Value [0..1]\n // Based on work by Sam Hocevar and Emil Persson\n vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1., 2. / 3.) : vec4(rgb.gb, 0., -1. / 3.);\n vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx);\n float c = q.x - min(q.w, q.y);\n float h = abs((q.w - q.y) / (6. * c + EPSILON) + q.z);\n return vec3(h, c, q.x);\n}\n\nvec3 HSVtoRGB(in vec3 hsv) {\n // Hue-Saturation-Value [0..1] to RGB [0..1]\n vec3 rgb = HUEtoRGB(hsv.x);\n return ((rgb - 1.) * hsv.y + 1.) * hsv.z;\n}\n\nvec3 HSLtoRGB(in vec3 hsl) {\n // Hue-Saturation-Lightness [0..1] to RGB [0..1]\n vec3 rgb = HUEtoRGB(hsl.x);\n float c = (1. - abs(2. * hsl.z - 1.)) * hsl.y;\n return (rgb - 0.5) * c + hsl.z;\n}\n\nvec3 RGBtoHSV(in vec3 rgb) {\n // RGB [0..1] to Hue-Saturation-Value [0..1]\n vec3 hcv = RGBtoHCV(rgb);\n float s = hcv.y / (hcv.z + EPSILON);\n return vec3(hcv.x, s, hcv.z);\n}\n\nvec3 RGBtoHSL(in vec3 rgb) {\n // RGB [0..1] to Hue-Saturation-Lightness [0..1]\n vec3 hcv = RGBtoHCV(rgb);\n float z = hcv.z - hcv.y * 0.5;\n float s = hcv.y / (1. - abs(z * 2. - 1.) + EPSILON);\n return vec3(hcv.x, s, z);\n}\n\nvoid main() {\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec3 inHSL = RGBtoHSL(textureColor.rgb);\n // in the UI hue 0 is cyan and 180 is red\n float shiftedHue = getCurveValue(mod(inHSL.x + 0.5, 1.0));\n vec3 inRGB = HSLtoRGB(vec3(shiftedHue, inHSL.y, inHSL.z));\n\n vec4 finalColor = vec4(inRGB, textureColor.a);\n\n // During the rgb-to-hsl-to-rgb conversion total whites gets clipped on OSX for some reason\n // make sure to retain absolute white (since it has no chroma component)\n if (textureColor.r == 1.0 && textureColor.g == 1.0 && textureColor.b == 1.0){\n finalColor.rgb = vec3(1.0, 1.0, 1.0);\n }\n\n gl_FragColor = finalColor;\n}\n"},e,t)}static getFilterType(){return"hue"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.points&&function(t){return Xf(t,tp,{type:"bezier"}).map((t=>{return e=t,((Math.round(e.x*tp)+180)%tp+(1-e.y-.5)*tp+tp)%tp;var e}))}(t.points)||ep;this.uniforms[Hh.STATIC_OPTIONS].set(e)}}class ip extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(ip)};super(ip.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[2];\n\n//CIE L*a*b* (CIELAB, L* for lightness, a* from green to red, b* from blue to yellow)\n//Source: https://gist.github.com/mattatz/44f081cac87e2f7c8980 (HLSL)\nvec3 rgb2xyz(vec3 c){\n vec3 tmp=vec3(\n (c.r>.04045)?pow((c.r+.055)/1.055,2.4):c.r/12.92,\n (c.g>.04045)?pow((c.g+.055)/1.055,2.4):c.g/12.92,\n (c.b>.04045)?pow((c.b+.055)/1.055,2.4):c.b/12.92\n );\n mat3 mat=mat3(\n .4124,.3576,.1805,\n .2126,.7152,.0722,\n .0193,.1192,.9505\n );\n return 100.*(tmp*mat);\n}\nvec3 xyz2lab(vec3 c){\n vec3 n=c/vec3(95.047,100.,108.883),\n v=vec3(\n (n.x>.008856)?pow(n.x,1./3.):(7.787*n.x)+(16./116.),\n (n.y>.008856)?pow(n.y,1./3.):(7.787*n.y)+(16./116.),\n (n.z>.008856)?pow(n.z,1./3.):(7.787*n.z)+(16./116.)\n );\n return vec3((116.*v.y)-16.,500.*(v.x-v.y),200.*(v.y-v.z));\n}\nvec3 rgb2lab(vec3 c){\n vec3 lab=xyz2lab(rgb2xyz(c));\n return vec3(lab.x/100.,.5+.5*(lab.y/127.),.5+.5*(lab.z/127.));\n}\nvec3 lab2xyz(vec3 c){\n float fy=(c.x+16.)/116.,\n fx=c.y/500.+fy,\n fz=fy-c.z/200.;\n return vec3(\n 95.047*((fx>.206897)?fx*fx*fx:(fx-16./116.)/7.787),\n 100. *((fy>.206897)?fy*fy*fy:(fy-16./116.)/7.787),\n 108.883*((fz>.206897)?fz*fz*fz:(fz-16./116.)/7.787)\n );\n}\nvec3 xyz2rgb(vec3 c){\n mat3 mat=mat3(\n 3.2406,-1.5372,-.4986,\n -.9689, 1.8758, .0415,\n .0557, -.2040,1.0570\n );\n vec3 v=(c/100.0)*mat,\n r=vec3(\n (v.r>.0031308)?((1.055*pow(v.r,(1./2.4)))-.055):12.92*v.r,\n (v.g>.0031308)?((1.055*pow(v.g,(1./2.4)))-.055):12.92*v.g,\n (v.b>.0031308)?((1.055*pow(v.b,(1./2.4)))-.055):12.92*v.b\n );\n return r;\n}\nvec3 lab2rgb(vec3 c){return xyz2rgb(lab2xyz(vec3(100.*c.x,2.*127.*(c.y-.5),2.*127.*(c.z-.5))));}\n\n\nfloat handleMix(float x){\n return pow(x * 2.0 - 1.0, 2.0);\n}\n\nvoid main() {\n vec3 inColor = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n// inColor = vec3(148.0 / 255.0, 99.0 / 255.0, 95.0 / 255.0); // debug\n\n vec3 inLab = rgb2lab(inColor);\n vec3 inRGB ;\n\n// vec2 tempTint = vec2(staticOptions[1], -staticOptions[0]);\n\n// inLab.yz += (tempTint.xy); // * 0.3; // damping of effect\n\n // lab range is 0 to 1, input is -128 to 127\n // lab chromacity zero is 0.5, 0.5 so convert between the ranges\n // y is a, z is b\n inLab.y -= (-staticOptions[1] + 128.0) / 255.0 - 0.5;\n inLab.z -= (staticOptions[0] + 128.0) / 255.0 - 0.5;\n\n inRGB = lab2rgb(inLab);\n\n\n // vec3 mixed = mix(inRGB, inColor, handleMix(inLab.x)); // mid tones\n // vec3 mixed = mix(inRGB, inColor, inLab.x); // only high tones\n vec3 mixed = mix(inRGB, inColor, 0.0); // no mix\n\n gl_FragColor = vec4(mixed,1.0);\n}\n"},e,t)}static getFilterType(){return"whiteBalance"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.temperature?t.temperature:0,n=t.tint?t.tint:0;this.uniforms[Hh.STATIC_OPTIONS].set([e,n])}}class rp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(rp)};super(rp.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[4];\n\n// algorithm from here\n// https://github.com/CeeJayDK/SweetFX/blob/master/Shaders/Vibrance.fx\n\nvoid main() {\n float percentAmount = staticOptions[0];\n float redBalance = staticOptions[1];\n float greenBalance = staticOptions[2];\n float blueBalance = staticOptions[3];\n\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n vec3 coefLuma = vec3(0.212656, 0.715158, 0.072186);\n\n float luma = dot(coefLuma, color);\n\n float max_color = max(color.r, max(color.g, color.b)); // Find the strongest color\n float min_color = min(color.r, min(color.g, color.b)); // Find the weakest color\n\n float color_saturation = max_color - min_color; // The difference between the two is the saturation\n\n // Extrapolate between luma and original by 1 + (1-saturation) - current\n vec3 coeffVibrance = vec3(redBalance, greenBalance, blueBalance) * percentAmount;\n\n color.r = mix(luma, color.r, 1.0 + (coeffVibrance.r * (1.0 - (sign(coeffVibrance.r) * color_saturation))));\n color.g = mix(luma, color.g, 1.0 + (coeffVibrance.g * (1.0 - (sign(coeffVibrance.g) * color_saturation))));\n color.b = mix(luma, color.b, 1.0 + (coeffVibrance.b * (1.0 - (sign(coeffVibrance.b) * color_saturation))));\n\n\n gl_FragColor = vec4(color, 1.0);\n\n}\n"},e,t)}static getFilterType(){return"vibrance"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.amount?t.amount/100*2:0,n=null===t.redBalance?1:t.redBalance,i=null===t.greenBalance?1:t.greenBalance,r=null===t.blueBalance?1:t.blueBalance;this.uniforms[Hh.STATIC_OPTIONS].set([e,n,i,r])}}class op extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(op)};super(op.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[1];\n\n// algorithm from here\n// https://github.com/minus34/cesium1/blob/master/Cesium/Shaders/Builtin/Functions/saturation.glsl\n\n/**\n * Adjusts the saturation of a color.\n *\n * @name czm_saturation\n * @glslFunction\n *\n * @param {vec3} rgb The color.\n * @param {float} adjustment The amount to adjust the saturation of the color.\n *\n * @returns {float} The color with the saturation adjusted.\n *\n * @example\n * vec3 greyScale = czm_saturation(color, 0.0);\n * vec3 doubleSaturation = czm_saturation(color, 2.0);\n */\nvec3 czm_saturation(vec3 rgb, float adjustment)\n{\n // Algorithm from Chapter 16 of OpenGL Shading Language\n const vec3 W = vec3(0.2125, 0.7154, 0.0721);\n vec3 intensity = vec3(dot(rgb, W));\n return mix(intensity, rgb, adjustment);\n}\n\n\nvoid main() {\n float amount = staticOptions[0];\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n gl_FragColor = vec4(czm_saturation(color, amount), 1.0);\n}\n"},e,t)}static getFilterType(){return"saturation"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=null===t.amount?1:t.amount;this.uniforms[Hh.STATIC_OPTIONS].set([e])}}class sp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(sp)};super(sp.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[12];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nfloat roundedBoxSDF(vec2 CenterPosition, vec2 Size, float Radius) {\n return length(max(abs(CenterPosition)-Size+Radius,0.0))-Radius;\n}\n\nvoid main() {\n vec2 srcAR = vec2(runtimeOptions[0]/runtimeOptions[1], 1.0);\n // custom aspect ratio (other than the default 1920/1080)\n // useful for example when doing crop on crop\n if (staticOptions[10] > 0.0) { //\n srcAR.x = staticOptions[10];\n }\n vec2 srcCenter = vec2(staticOptions[0], staticOptions[1]);\n vec2 srcDims = vec2(staticOptions[2], staticOptions[3]);\n vec2 srcTL = vec2(srcCenter.x - srcDims[0] / 2.0, srcCenter.y - srcDims[1] / 2.0); // top left point\n\n vec2 srcDims_AR = srcDims * srcAR;\n vec2 srcTL_AR = srcTL * srcAR;\n\n vec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\n vec2 vpAR = vec2(vpDims[0]/vpDims[1], 1.0);\n\n vec2 tgtCenter = vec2(staticOptions[4], staticOptions[5]);\n vec2 tgtDims = vec2(staticOptions[6], staticOptions[7]);\n vec2 tgtTL = vec2(tgtCenter.x - tgtDims[0] / 2.0, tgtCenter.y - tgtDims[1] / 2.0);\n\n vec2 tgtDims_AR = tgtDims * vpAR;\n vec2 tgtTL_AR = tgtTL * vpAR;\n\n vec2 pos_AR = current_texture_coordinate_2d * vpAR;\n\n float ratioW = tgtDims_AR[0] / srcDims_AR[0];\n float ratioH = tgtDims_AR[1] / srcDims_AR[1];\n\n float ratio;\n\n // the type of crop fit. 0 - contain, 1 - fill, 3 - stretch\n float fitType = staticOptions[8];\n\n if (fitType == 0.0){\n ratio = ratioW > ratioH ? ratioW : ratioH;\n vec2 tgtDims_OLD_AR = tgtDims_AR;\n tgtDims_AR = srcDims_AR * ratio;\n tgtTL_AR = tgtTL_AR - (tgtDims_AR - tgtDims_OLD_AR) / 2.0;\n } else if (fitType == 1.0){\n ratio = ratioW < ratioH ? ratioW : ratioH;\n vec2 tgtDims_OLD_AR = tgtDims_AR;\n tgtDims_AR = srcDims_AR * ratio;\n tgtTL_AR = tgtTL_AR + (tgtDims_OLD_AR - tgtDims_AR) / 2.0;\n }\n\n vec2 final_pos_AR = (pos_AR - tgtTL_AR) / tgtDims_AR * srcDims_AR + srcTL_AR;\n\n // transform coords back from AR into 0 to 1 range\n vec2 pos = final_pos_AR / srcAR;\n\n // How soft the edges should be . Higher values could be used to simulate a drop shadow.\n float edgeSoftness = staticOptions[11];\n\n // The radius of the corners in pixels\n float radius = staticOptions[9];\n\n float tightDistance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) , tgtDims_AR / vpAR / 2.0, 0.0);\n// float distance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) * vpAR, tgtDims * vpAR / 2.0, 0.01);\n float distance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) * vpDims, (tgtDims * vpDims) / 2.0, radius);\n\n // Smooth the result (free antialiasing).\n float smoothedAlpha = 1.0 - smoothstep(0.0, edgeSoftness * 2.0, distance);\n\n // Return the resultant shape.\n vec4 textureColor = texture2D(first_texture, pos);\n vec4 quadColor = vec4(textureColor.xyz, smoothedAlpha);\n\n // Apply a drop shadow effect.\n// float shadowSoftness = 0.0;\n// vec2 shadowOffset = vec2(0.0, 0.0);\n// float shadowDistance = roundedBoxSDF(pos + shadowOffset, tgtDims_AR / 2.0, radius);\n// float shadowAlpha = 1.0 - smoothstep(-shadowSoftness, shadowSoftness, shadowDistance);\n// vec4 shadowColor = vec4(0.4, 0.4, 0.4, 1.0);\n // gl_FragColor = mix(quadColor, shadowColor, shadowAlpha - smoothedAlpha);\n\n\n // pillarboxing\n if (tightDistance > 0.0 && distance <= 0.0){\n gl_FragColor = vec4(0, 0, 0, 1.0);\n } else {\n gl_FragColor = quadColor;\n }\n\n // debug\n // gl_FragColor = texture2D(first_texture, pos);\n\n}"},e,t)}static getFilterType(){return"crop"}static getInputsCount(){return 1}static getInitialOptions(){return{source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:.5,y:.5},width:1,height:1},fitType:"fill",cornerRadius:10,edgeSoftness:0}}getOptionsDisplay(){return[]}static getUniformList(){return[Hh.FIRST_TEXTURE,qh,Vh]}handleStaticUniforms(t){let e={...sp.getInitialOptions(),...t};const n=Number.parseFloat(e.source.center.x).toFixed(5),i=Number.parseFloat(e.source.center.y).toFixed(5),r=Number.parseFloat(e.source.width).toFixed(5),o=Number.parseFloat(e.source.height).toFixed(5),s=Number.parseFloat(e.target.center.x).toFixed(5),a=Number.parseFloat(e.target.center.y).toFixed(5),l=Number.parseFloat(e.target.width).toFixed(5),c=Number.parseFloat(e.target.height).toFixed(5),u=Number.parseFloat(e.edgeSoftness).toFixed(5),d=e.source.aspectRatio?Number.parseFloat(e.source.aspectRatio).toFixed(5):0;let h;h="fill"===e.fitType?0:"contain"===e.fitType?1:2;const f=Number.parseFloat(e.cornerRadius).toFixed(5);this.uniforms[Hh.STATIC_OPTIONS].set([n,i,r,o,s,a,l,c,h,f,d,u])}}class ap extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(ap)};super(ap.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[4];\nuniform float runtimeOptions[2];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nvoid main() {\n // this is the the texture from the prev shader\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 color = vec4(staticOptions[0], staticOptions[1], staticOptions[2], 1.0);\n vec4 blended = mix(texture, color, staticOptions[3]);\n gl_FragColor = blended;\n}"},e,t)}static getFilterType(){return"solid"}static getInputsCount(){return 1}static getInitialOptions(){return{color:{r:.33,g:.66,b:.99,a:1}}}getOptionsDisplay(){return[{properties:["color","r"],type:"slider",minValue:0,maxValue:1,step:.001},{properties:["color","g"],type:"slider",minValue:0,maxValue:1,step:.001},{properties:["color","b"],type:"slider",minValue:0,maxValue:1,step:.001}]}handleStaticUniforms(t){var e;const n=Number.parseFloat(t.color.r).toFixed(5),i=Number.parseFloat(t.color.g).toFixed(5),r=Number.parseFloat(t.color.b).toFixed(5),o=(null!==(e=Number.parseFloat(t.color.a))&&void 0!==e?e:1).toFixed(5);this.uniforms[Hh.STATIC_OPTIONS].set([n,i,r,o])}}class lp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(lp)};super(lp.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float runtimeOptions[1];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nvoid main() {\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(textureColor.rgb, 1.0);\n}\n"},e,t)}static getFilterType(){return"solidImage"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}}class cp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(cp)};super(cp.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_position = vec4(position_3d.xyz, 1);\n gl_Position = normalize_position;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n//CIE L*a*b* (CIELAB, L* for lightness, a* from green to red, b* from blue to yellow)\n//Source: https://gist.github.com/mattatz/44f081cac87e2f7c8980 (HLSL)\nvec3 rgb2xyz(vec3 c){\n vec3 tmp=vec3(\n (c.r>.04045)?pow((c.r+.055)/1.055,2.4):c.r/12.92,\n (c.g>.04045)?pow((c.g+.055)/1.055,2.4):c.g/12.92,\n (c.b>.04045)?pow((c.b+.055)/1.055,2.4):c.b/12.92\n );\n mat3 mat=mat3(\n .4124,.3576,.1805,\n .2126,.7152,.0722,\n .0193,.1192,.9505\n );\n return 100.*(tmp*mat);\n}\nvec3 xyz2lab(vec3 c){\n vec3 n=c/vec3(95.047,100.,108.883),\n v=vec3(\n (n.x>.008856)?pow(n.x,1./3.):(7.787*n.x)+(16./116.),\n (n.y>.008856)?pow(n.y,1./3.):(7.787*n.y)+(16./116.),\n (n.z>.008856)?pow(n.z,1./3.):(7.787*n.z)+(16./116.)\n );\n return vec3((116.*v.y)-16.,500.*(v.x-v.y),200.*(v.y-v.z));\n}\nvec3 rgb2lab(vec3 c){\n vec3 lab=xyz2lab(rgb2xyz(c));\n return vec3(lab.x/100.,.5+.5*(lab.y/127.),.5+.5*(lab.z/127.));\n}\n\nvoid main() {\n vec3 inColor = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n vec3 inLab = rgb2lab(inColor);\n gl_FragColor = vec4(inLab, 1.0);\n}\n"},e,t)}static getFilterType(){return"lab"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.temperature?t.temperature:0,n=t.tint?t.tint:0;this.uniforms[Hh.STATIC_OPTIONS].set([e,n])}}class up extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(up)};super(up.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n} ",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[1];\n\nvoid main() {\n float exposureStops = staticOptions[0];\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n \n // Convert exposure stops to multiplier: pow(2.0, stops)\n float multiplier = pow(2.0, exposureStops);\n \n // Apply exposure adjustment\n vec3 exposedColor = color * multiplier;\n \n gl_FragColor = vec4(exposedColor, 1.0);\n} "},e,t)}static getFilterType(){return"exposure"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=null===t.exposure?0:t.exposure;this.uniforms[Hh.STATIC_OPTIONS].set([e])}}var dp,hp,fp,pp,mp,vp,gp,yp;function bp(){if(pp)return fp;pp=1;const t=hp?dp:(hp=1,dp={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),e={};for(const n of Object.keys(t))e[t[n]]=n;const n={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};fp=n;for(const t of Object.keys(n)){if(!("channels"in n[t]))throw new Error("missing channels property: "+t);if(!("labels"in n[t]))throw new Error("missing channel labels property: "+t);if(n[t].labels.length!==n[t].channels)throw new Error("channel and label counts mismatch: "+t);const{channels:e,labels:i}=n[t];delete n[t].channels,delete n[t].labels,Object.defineProperty(n[t],"channels",{value:e}),Object.defineProperty(n[t],"labels",{value:i})}function i(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}return n.rgb.hsl=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.min(e,n,i),o=Math.max(e,n,i),s=o-r;let a,l;o===r?a=0:e===o?a=(n-i)/s:n===o?a=2+(i-e)/s:i===o&&(a=4+(e-n)/s),a=Math.min(60*a,360),a<0&&(a+=360);const c=(r+o)/2;return l=o===r?0:c<=.5?s/(o+r):s/(2-o-r),[a,100*l,100*c]},n.rgb.hsv=function(t){let e,n,i,r,o;const s=t[0]/255,a=t[1]/255,l=t[2]/255,c=Math.max(s,a,l),u=c-Math.min(s,a,l),d=function(t){return(c-t)/6/u+.5};return 0===u?(r=0,o=0):(o=u/c,e=d(s),n=d(a),i=d(l),s===c?r=i-n:a===c?r=1/3+e-i:l===c&&(r=2/3+n-e),r<0?r+=1:r>1&&(r-=1)),[360*r,100*o,100*c]},n.rgb.hwb=function(t){const e=t[0],i=t[1];let r=t[2];const o=n.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(i,r));return r=1-1/255*Math.max(e,Math.max(i,r)),[o,100*s,100*r]},n.rgb.cmyk=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.min(1-e,1-n,1-i);return[100*((1-e-r)/(1-r)||0),100*((1-n-r)/(1-r)||0),100*((1-i-r)/(1-r)||0),100*r]},n.rgb.keyword=function(n){const r=e[n];if(r)return r;let o,s=1/0;for(const e of Object.keys(t)){const r=i(n,t[e]);r<s&&(s=r,o=e)}return o},n.keyword.rgb=function(e){return t[e]},n.rgb.xyz=function(t){let e=t[0]/255,n=t[1]/255,i=t[2]/255;return e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92,[100*(.4124*e+.3576*n+.1805*i),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]},n.rgb.lab=function(t){const e=n.rgb.xyz(t);let i=e[0],r=e[1],o=e[2];return i/=95.047,r/=100,o/=108.883,i=i>.008856?i**(1/3):7.787*i+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,[116*r-16,500*(i-r),200*(r-o)]},n.hsl.rgb=function(t){const e=t[0]/360,n=t[1]/100,i=t[2]/100;let r,o,s;if(0===n)return s=255*i,[s,s,s];r=i<.5?i*(1+n):i+n-i*n;const a=2*i-r,l=[0,0,0];for(let t=0;t<3;t++)o=e+1/3*-(t-1),o<0&&o++,o>1&&o--,s=6*o<1?a+6*(r-a)*o:2*o<1?r:3*o<2?a+(r-a)*(2/3-o)*6:a,l[t]=255*s;return l},n.hsl.hsv=function(t){const e=t[0];let n=t[1]/100,i=t[2]/100,r=n;const o=Math.max(i,.01);return i*=2,n*=i<=1?i:2-i,r*=o<=1?o:2-o,[e,100*(0===i?2*r/(o+r):2*n/(i+n)),(i+n)/2*100]},n.hsv.rgb=function(t){const e=t[0]/60,n=t[1]/100;let i=t[2]/100;const r=Math.floor(e)%6,o=e-Math.floor(e),s=255*i*(1-n),a=255*i*(1-n*o),l=255*i*(1-n*(1-o));switch(i*=255,r){case 0:return[i,l,s];case 1:return[a,i,s];case 2:return[s,i,l];case 3:return[s,a,i];case 4:return[l,s,i];case 5:return[i,s,a]}},n.hsv.hsl=function(t){const e=t[0],n=t[1]/100,i=t[2]/100,r=Math.max(i,.01);let o,s;s=(2-n)*i;const a=(2-n)*r;return o=n*r,o/=a<=1?a:2-a,o=o||0,s/=2,[e,100*o,100*s]},n.hwb.rgb=function(t){const e=t[0]/360;let n=t[1]/100,i=t[2]/100;const r=n+i;let o;r>1&&(n/=r,i/=r);const s=Math.floor(6*e),a=1-i;o=6*e-s,1&s&&(o=1-o);const l=n+o*(a-n);let c,u,d;switch(s){default:case 6:case 0:c=a,u=l,d=n;break;case 1:c=l,u=a,d=n;break;case 2:c=n,u=a,d=l;break;case 3:c=n,u=l,d=a;break;case 4:c=l,u=n,d=a;break;case 5:c=a,u=n,d=l}return[255*c,255*u,255*d]},n.cmyk.rgb=function(t){const e=t[0]/100,n=t[1]/100,i=t[2]/100,r=t[3]/100;return[255*(1-Math.min(1,e*(1-r)+r)),255*(1-Math.min(1,n*(1-r)+r)),255*(1-Math.min(1,i*(1-r)+r))]},n.xyz.rgb=function(t){const e=t[0]/100,n=t[1]/100,i=t[2]/100;let r,o,s;return r=3.2406*e+-1.5372*n+-.4986*i,o=-.9689*e+1.8758*n+.0415*i,s=.0557*e+-.204*n+1.057*i,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,r=Math.min(Math.max(0,r),1),o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),[255*r,255*o,255*s]},n.xyz.lab=function(t){let e=t[0],n=t[1],i=t[2];return e/=95.047,n/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,[116*n-16,500*(e-n),200*(n-i)]},n.lab.xyz=function(t){let e,n,i;n=(t[0]+16)/116,e=t[1]/500+n,i=n-t[2]/200;const r=n**3,o=e**3,s=i**3;return n=r>.008856?r:(n-16/116)/7.787,e=o>.008856?o:(e-16/116)/7.787,i=s>.008856?s:(i-16/116)/7.787,e*=95.047,n*=100,i*=108.883,[e,n,i]},n.lab.lch=function(t){const e=t[0],n=t[1],i=t[2];let r;return r=360*Math.atan2(i,n)/2/Math.PI,r<0&&(r+=360),[e,Math.sqrt(n*n+i*i),r]},n.lch.lab=function(t){const e=t[0],n=t[1],i=t[2]/360*2*Math.PI;return[e,n*Math.cos(i),n*Math.sin(i)]},n.rgb.ansi16=function(t,e=null){const[i,r,o]=t;let s=null===e?n.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),0===s)return 30;let a=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(i/255));return 2===s&&(a+=60),a},n.hsv.ansi16=function(t){return n.rgb.ansi16(n.hsv.rgb(t),t[2])},n.rgb.ansi256=function(t){const e=t[0],n=t[1],i=t[2];return e===n&&n===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},n.ansi16.rgb=function(t){let e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];const n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},n.ansi256.rgb=function(t){if(t>=232){const e=10*(t-232)+8;return[e,e,e]}let e;return t-=16,[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},n.rgb.hex=function(t){const e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},n.hex.rgb=function(t){const e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let n=e[0];3===e[0].length&&(n=n.split("").map((t=>t+t)).join(""));const i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},n.rgb.hcg=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.max(Math.max(e,n),i),o=Math.min(Math.min(e,n),i),s=r-o;let a,l;return a=s<1?o/(1-s):0,l=s<=0?0:r===e?(n-i)/s%6:r===n?2+(i-e)/s:4+(e-n)/s,l/=6,l%=1,[360*l,100*s,100*a]},n.hsl.hcg=function(t){const e=t[1]/100,n=t[2]/100,i=n<.5?2*e*n:2*e*(1-n);let r=0;return i<1&&(r=(n-.5*i)/(1-i)),[t[0],100*i,100*r]},n.hsv.hcg=function(t){const e=t[1]/100,n=t[2]/100,i=e*n;let r=0;return i<1&&(r=(n-i)/(1-i)),[t[0],100*i,100*r]},n.hcg.rgb=function(t){const e=t[0]/360,n=t[1]/100,i=t[2]/100;if(0===n)return[255*i,255*i,255*i];const r=[0,0,0],o=e%1*6,s=o%1,a=1-s;let l=0;switch(Math.floor(o)){case 0:r[0]=1,r[1]=s,r[2]=0;break;case 1:r[0]=a,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=s;break;case 3:r[0]=0,r[1]=a,r[2]=1;break;case 4:r[0]=s,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=a}return l=(1-n)*i,[255*(n*r[0]+l),255*(n*r[1]+l),255*(n*r[2]+l)]},n.hcg.hsv=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);let i=0;return n>0&&(i=e/n),[t[0],100*i,100*n]},n.hcg.hsl=function(t){const e=t[1]/100,n=t[2]/100*(1-e)+.5*e;let i=0;return n>0&&n<.5?i=e/(2*n):n>=.5&&n<1&&(i=e/(2*(1-n))),[t[0],100*i,100*n]},n.hcg.hwb=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},n.hwb.hcg=function(t){const e=t[1]/100,n=1-t[2]/100,i=n-e;let r=0;return i<1&&(r=(n-i)/(1-i)),[t[0],100*i,100*r]},n.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},n.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},n.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},n.gray.hsl=function(t){return[0,0,t[0]]},n.gray.hsv=n.gray.hsl,n.gray.hwb=function(t){return[0,100,t[0]]},n.gray.cmyk=function(t){return[0,0,0,t[0]]},n.gray.lab=function(t){return[t[0],0,0]},n.gray.hex=function(t){const e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n},n.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]},fp}function kp(){if(vp)return mp;vp=1;const t=bp();function e(t,e){return function(n){return e(t(n))}}function n(n,i){const r=[i[n].parent,n];let o=t[i[n].parent][n],s=i[n].parent;for(;i[s].parent;)r.unshift(i[s].parent),o=e(t[i[s].parent][s],o),s=i[s].parent;return o.conversion=r,o}return mp=function(e){const i=function(e){const n=function(){const e={},n=Object.keys(t);for(let t=n.length,i=0;i<t;i++)e[n[i]]={distance:-1,parent:null};return e}(),i=[e];for(n[e].distance=0;i.length;){const e=i.pop(),r=Object.keys(t[e]);for(let t=r.length,o=0;o<t;o++){const t=r[o],s=n[t];-1===s.distance&&(s.distance=n[e].distance+1,s.parent=e,i.unshift(t))}}return n}(e),r={},o=Object.keys(i);for(let t=o.length,e=0;e<t;e++){const t=o[e];null!==i[t].parent&&(r[t]=n(t,i))}return r}}var wp=function(){if(yp)return gp;yp=1;const t=bp(),e=kp(),n={};return Object.keys(t).forEach((i=>{n[i]={},Object.defineProperty(n[i],"channels",{value:t[i].channels}),Object.defineProperty(n[i],"labels",{value:t[i].labels});const r=e(i);Object.keys(r).forEach((t=>{const e=r[t];n[i][t]=function(t){const e=function(...e){const n=e[0];if(null==n)return n;n.length>1&&(e=n);const i=t(e);if("object"==typeof i)for(let t=i.length,e=0;e<t;e++)i[e]=Math.round(i[e]);return i};return"conversion"in t&&(e.conversion=t.conversion),e}(e),n[i][t].raw=function(t){const e=function(...e){const n=e[0];return null==n?n:(n.length>1&&(e=n),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(e)}))})),gp=n}(),xp=Vu(wp);class _p extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(_p)};super(_p.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[3];\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 blend = texture2D(first_texture, current_texture_coordinate_2d);\n \n vec3 blendRGB = blend.rgb;\n vec3 baseRGB = vec3(staticOptions[0], staticOptions[1], staticOptions[2]);\n \n vec3 limit = step(0.5, blendRGB);\n vec3 mixedRGB = mix(2.0 * baseRGB * blendRGB, 1.0 - 2.0 * (1.0 - baseRGB) * (1.0 - blendRGB), limit);\n \n gl_FragColor = vec4((mixedRGB * blend.a) + ((1.0 - blend.a) * baseRGB), 1);\n}"},e,t)}static getFilterType(){return"hardLight"}static getInputsCount(){return 1}static getInitialOptions(){return{color:"4b0082"}}getOptionsDisplay(){return[{properties:["color"],type:"colorPicker"}]}handleStaticUniforms(t){const e=xp.hex.rgb(t.color).map((t=>t/255));this.uniforms[Hh.STATIC_OPTIONS].set([e[0],e[1],e[2]])}}class Tp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(Tp)};super(Tp.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[6];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float exposure_value;\n\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n // transfrom logic // \n // normalized time range from 0 to 1\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2], staticOptions[3]),\n vec2(staticOptions[4], staticOptions[5]),\n current_time\n );\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n exposure_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float exposure_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4((texture.xyz) * (1.0 + exposure_value) , texture.w);\n}\n\n"},e,t)}static getFilterType(){return"exposureTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{properties:{power:{form:0,to:0,ease:[0,0,1,1]}}}}handleStaticUniforms(t){const e=t.properties.power;this.uniforms[Hh.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[Hh.FIRST_TEXTURE,Gh]}}class Ip extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(Ip)};super(Ip.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[6];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float dipToBlack_value;\n\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n // transfrom logic // \n // normalized time range from 0 to 1\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2], staticOptions[3]),\n vec2(staticOptions[4], staticOptions[5]),\n current_time\n );\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n dipToBlack_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float dipToBlack_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(texture.xyz - dipToBlack_value, texture.w);\n}"},e,t)}static getFilterType(){return"dipToBlackTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.power;this.uniforms[Hh.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[Hh.FIRST_TEXTURE,Gh]}}class Ep extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(Ep)};super(Ep.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[16];\n\nvarying vec2 current_texture_coordinate_2d;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n // time range from 0 to 1\n float current_time = runtimeOptions[0];\n\n // scale X\n float current_scale_x_progress = getCurrentBeizerProgress(\n vec2(staticOptions[4],staticOptions[5]),\n vec2(staticOptions[6],staticOptions[7]),\n current_time\n );\n float currnet_scale_x_value = mix(staticOptions[0], staticOptions[1], current_scale_x_progress);\n\n // scale Y\n float current_scale_y_progress = getCurrentBeizerProgress(\n vec2(staticOptions[4],staticOptions[5]),\n vec2(staticOptions[6],staticOptions[7]),\n current_time\n );\n float currnet_scale_y_value = mix(staticOptions[2], staticOptions[3], current_scale_y_progress);\n\n // translate x\n float current_translate_x_progress = getCurrentBeizerProgress(\n vec2(staticOptions[12],staticOptions[13]),\n vec2(staticOptions[14],staticOptions[15]),\n current_time\n );\n \n float currnet_translate_x_value = mix(staticOptions[8], staticOptions[9], current_translate_x_progress); \n\n // translate y\n float current_translate_y_progress = getCurrentBeizerProgress(\n vec2(staticOptions[12],staticOptions[13]),\n vec2(staticOptions[14],staticOptions[15]),\n current_time\n );\n float currnet_translate_y_value = mix(staticOptions[10], staticOptions[11], current_translate_y_progress); \n\n // See Default vertex shader, we normalize y axis to be -y\n // because of webgl texture coordinates\n currnet_translate_y_value = currnet_translate_y_value * -1.0;\n\n // create matries\n mat4 scaleMatrix;\n scaleMatrix[0] = vec4(currnet_scale_x_value, 0, 0, 0); \n scaleMatrix[1] = vec4(0, currnet_scale_y_value, 0, 0); \n scaleMatrix[2] = vec4(0, 0, 1, 0); \n scaleMatrix[3] = vec4(0, 0, 0, 1); \n\n mat4 translateMatrix;\n translateMatrix[0] = vec4(1, 0, 0, 0); \n translateMatrix[1] = vec4(0, 1, 0, 0); \n translateMatrix[2] = vec4(0, 0, 1, 0); \n translateMatrix[3] = vec4(currnet_translate_x_value, currnet_translate_y_value, 0, 1); \n\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = translateMatrix * scaleMatrix * normalize_poistion;\n // gl_Position = translateMatrix * scaleMatrix * normalize_poistion;\n \n \n current_texture_coordinate_2d = texture_coordinate_2d;\n \n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n}"},e,t)}static getFilterType(){return"transformTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.scale||{},n=t.properties.translate||{};e.ease=e.ease||[0,0,1,1],n.ease=n.ease||[0,0,1,1],this.uniforms[Hh.STATIC_OPTIONS].set([e.from&&e.from.x||1,e.to&&e.to.x||1,e.from&&e.from.y||1,e.to&&e.to.y||1,...e.ease,n.from&&n.from.x||0,n.to&&n.to.x||0,n.from&&n.from.y||0,n.to&&n.to.y||0,...n.ease])}static getUniformList(){return[Hh.FIRST_TEXTURE,Gh]}}class Sp extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(Sp)};super(Sp.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float staticOptions[8];\nuniform float runtimeOptions[3];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2],staticOptions[3]),\n vec2(staticOptions[4],staticOptions[5]),\n current_time\n );\n \n // varing\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_power_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[8];\nuniform float runtimeOptions[3];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nconst int samples = 12; //multiple of 2\n\nvoid main() {\n vec2 pixel = vec2(1.0/runtimeOptions[1], 1.0/runtimeOptions[2]);\n vec2 direction = vec2(staticOptions[6], staticOptions[7]);\n \n vec4 color = vec4(0.0); \n\n for (int i=1; i<=samples/2; i++) {\n vec2 motion = float(i) * current_power_value / float(samples / 2) * direction * pixel;\n \n color += texture2D(\n first_texture,\n current_texture_coordinate_2d + motion);\n\n color += texture2D(\n first_texture,\n current_texture_coordinate_2d - motion);\n }\n\t\n color = color/float(samples);\n\n \n gl_FragColor = color;\n // gl_FragColor = vec4(0,1,0,1);\n \n}"},e,t)}static getFilterType(){return"motionBlurTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.power||{from:0,to:0},n=t.properties.direction||{x:0,y:0};e.ease=e.ease||[0,0,1,1],this.uniforms[Hh.STATIC_OPTIONS].set([e.from,e.to,...e.ease,n.x,n.y])}static getUniformList(){return[Hh.FIRST_TEXTURE,Gh,qh]}}class Ap extends tf{constructor(t){const e={uniforms:tf.getUniformInfo(Ap)};super(Ap.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[9];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2],staticOptions[3]),\n vec2(staticOptions[4],staticOptions[5]),\n current_time\n );\n \n // varing\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_power_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[9];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 fadeColor = vec4(staticOptions[6], staticOptions[7], staticOptions[8], 1.0) ;\n gl_FragColor = mix(texture,fadeColor, current_power_value);\n}"},e,t)}static getFilterType(){return"fadeToColorTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{properties:{power:{form:0,to:0,ease:[0,0,1,1]},color:"#FFFFFF"}}}handleStaticUniforms(t){const e=t.properties.power||{from:0,to:0};e.ease=e.ease||[0,0,1,1];const n=t.properties.color,i=xp.hex.rgb(n).map((t=>t/255));this.uniforms[Hh.STATIC_OPTIONS].set([e.from,e.to,...e.ease,i[0],i[1],i[2]])}static getUniformList(){return[Hh.FIRST_TEXTURE,Gh]}}var Np=Object.freeze({__proto__:null,Crop:sp,Curves:Qf,Default:ef,DipToBlackTransition:Ip,DirectionalBlur:hf,Exposure:up,ExposureTransition:Tp,FadeToColorTransition:Ap,FastBlur:df,HardLight:_p,HorizontalBlur:cf,Hue:np,Lab:cp,Levels:Zf,Lut:vf,MotionBlurTransition:Sp,Opacity:ff,Saturation:op,ShapeComposite:mf,ShapeCompositeMask:pf,Solid:ap,SolidImage:lp,Transform:lf,TransformTransition:Ep,VerticalBlur:uf,Vibrance:rp,WhiteBalance:ip});const Mp=Object.values(Np).reduce(((t,e)=>(t[e.getFilterType()]=e,t)),{});class Fp{constructor(t){this.context=t}static getFilterClass(t){return Mp[t]}getFilterIds(){return Object.keys(this.filterTypeToInstanceMap)}create(t,e){this.context={...this.context,options:e.options};const n=new Mp[t](this.context);if(!n)throw new Error(`${t} is not a atom filter, atomFilter list: `,this.getFilterIds());return n}}const Op=Gd.PREVIOUS_OUTPUT_PREFIX,Cp=Object.values(Np).reduce(((t,e)=>(t[e.getFilterType()]={type:e.getFilterType(),options:e.getInitialOptions(),inputs:[...Array(e.getInputsCount())].map(((t,e)=>`${Op}${e}`)),outputs:[]},t)),{});var Pp,Dp,Rp=function(){if(Dp)return Pp;Dp=1;var t=function(t){return function(t){return!!t&&"object"==typeof t}(t)&&(n=t,!("[object RegExp]"===(i=Object.prototype.toString.call(n))||"[object Date]"===i||n.$$typeof===e));var n,i},e="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(t,e){return!1!==e.clone&&e.isMergeableObject(t)?s((n=t,Array.isArray(n)?[]:{}),t,e):t;var n}function i(t,e,i){return t.concat(e).map((function(t){return n(t,i)}))}function r(t){return Object.keys(t).concat((e=t,Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]));var e}function o(t,e){try{return e in t}catch(t){return!1}}function s(e,a,l){(l=l||{}).arrayMerge=l.arrayMerge||i,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=n;var c=Array.isArray(a);return c===Array.isArray(e)?c?l.arrayMerge(e,a,l):function(t,e,i){var a={};return i.isMergeableObject(t)&&r(t).forEach((function(e){a[e]=n(t[e],i)})),r(e).forEach((function(r){var l,c;o(l=t,c=r)&&(!Object.hasOwnProperty.call(l,c)||!Object.propertyIsEnumerable.call(l,c))||(o(t,r)&&i.isMergeableObject(e[r])?a[r]=function(t,e){if(!e.customMerge)return s;var n=e.customMerge(t);return"function"==typeof n?n:s}(r,i)(t[r],e[r],i):a[r]=n(e[r],i))})),a}(e,a,l):n(a,l)}return s.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce((function(t,n){return s(t,n,e)}),{})},Pp=s}(),Lp=Vu(Rp),Bp=function(t,e){return Lp(t,e,{arrayMerge:(t,e)=>e})};const zp=Gd.MESSAGES.UPDATE_OPTIONS;let Wp=class{constructor(t,e){this.eventEmitter=new Qd,this.type=t,this.inputs=e.inputs,this.outputs=e.outputs,this.options=e.options}render(){throw new Error("concrete class should implement")}_updateOptions(){throw new Error("concrete class should implement")}updateOptions(t){this._updateOptions(t),this.eventEmitter.emit(zp,this.options)}updateInputs(t){t&&(this.inputs.length===t.length&&this.inputs.every(((e,n)=>e===t[n]))||(this.inputs=[...t]))}getEventEmitter(){return this.eventEmitter}getType(){return this.type}getInputs(){return this.inputs}getOutputs(){return this.outputs}getOptions(){return this.options}getInfo(){return{inputs:this.inputs,outputs:this.outputs,options:this.options}}getOptionsDisplay(){return this.filter.getOptionsDisplay()}dispose(){throw new Error("concrete class should implement")}};class jp extends Wp{constructor(t,e,n){super(...arguments),this.filter=n.filterFactory.create(this.type,{options:this.options})}render(t){const e=t.ioStore,n=t.graphIOManager,i=this.getInputs(),r=this.getOutputs(),o=e.get(i),s=this.filter.render(o,this.options);return n.setOutputs(e,r,s),s}_updateOptions(t){this.options=Bp(this.options,t),this.filter.updateStaticUniforms(this.options)}dispose(){this.filter.dispose()}}const Up=Gd.MESSAGES.UPDATE_OPTIONS;class $p extends jp{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}baseNodeUpdateOptions(t){this.options=Bp(this.options,t),this.filter.updateStaticUniforms(this.options)}registerListeners(){this.baseNode.getEventEmitter().on(Up,this.baseNodeUpdateOptions,this)}dispose(){this.filter.dispose(),this.baseNode.getEventEmitter().off(Up,this.baseNodeUpdateOptions,this)}}function qp(t){return null!==t&&"object"==typeof t}function Vp(t){if(!qp(t)||(e=t,Array.isArray(e)))return t;var e;const n=Object.keys(t).sort(),i={};return n.forEach((e=>{i[e]=Vp(t[e])})),i}function Gp(t,e){return null!=t&&t.id&&null!=e&&e.id?t.type===e.type&&t.id===e.id:t.type===e.type}function Hp(t,e){const n=[];t.forEach(((t,i)=>{const r=(o=t,e.findIndex((t=>function(t,e){const n=JSON.parse(JSON.stringify(t));return r=JSON.parse(JSON.stringify(e)),qp(i=n)&&qp(r)?JSON.stringify(Vp(i))===JSON.stringify(Vp(r)):!(!Number.isNaN(i)||!Number.isNaN(r))||i===r;var i,r}(o,t))));var o;if(-1!==r)return void n.push({type:"take",index:r});const s=(a=t,l=i,(c=e)&&c[l]&&Gp(a,c[l])?l:c.findIndex((t=>Gp(a,t))));var a,l,c;-1===s?n.push({type:"create",newGraphIndex:i}):n.push({type:"update",currentGraphIndex:s,newGraphIndex:i})}));const i=n.reduce(((t,e)=>("take"===e.type?t.push(e.index):"update"===e.type&&t.push(e.currentGraphIndex),t)),[]);return e.reduce(((t,e,n)=>(i.includes(n)||t.push(n),t)),[]).forEach((t=>{n.push({type:"dispose",currentGraphIndex:t})})),n}function Kp(t,e,n,i){const r=[];return t.forEach((t=>{switch(t.type){case"take":r.push(n[t.index]);break;case"update":const o=e[t.newGraphIndex].options,s=n[t.currentGraphIndex];s.updateInputs(e[t.newGraphIndex].inputs),s.updateOptions(o),r.push(s);break;case"create":const a=sm.create(e[t.newGraphIndex],i);r.push(a);break;case"dispose":n[t.currentGraphIndex].dispose();break;default:throw new Error("cant apply action type: ",t.type)}})),r}var Xp=function(t,e,n,i){const r=t.graph,o=e.graph;if(!(o&&r&&Array.isArray(o)&&Array.isArray(r)))throw new Error("cant apply new composite options",t);return Kp(Hp(r,o),r,n,i)};class Yp extends Wp{constructor(t,e,n){super(...arguments),this.context=n,this.nodes=this.createNodes(this.options)}createNodes(t){if(!t||!t.graph)throw new Error("cant create composite node, please supply info.options.graph");return t.graph.map((t=>sm.create(t,this.context)))}render(t){const e=t.ioStore,n=t.graphIOManager;let i=n.getPrevOutput(e);const r=this.outputs;if(this.nodes.length){const t=new ih(e),r="__PREVIOUS:0",o=[],s=new Set;this.nodes.forEach(((e,a)=>{const l={ioStore:t,graphIOManager:n},c=e.getOutputs?e.getOutputs():void 0,u=Array.isArray(c)?c:[],d={};u.forEach((e=>{d[e]=t.get(e)}));const h=t.get(r);i=e.render(l),a!==this.nodes.length-1&&o.push(i);const f=new Set;if(h&&h!==i&&f.add(h),u.forEach((t=>{const e=d[t];e&&e!==i&&f.add(e)})),f.size){const e=new Set(Object.values(t.get()));f.forEach((t=>{e.has(t)||(n.disposeTextures([t],i),s.add(t))}))}}));const a=o.filter((t=>!s.has(t)));n.disposeTextures(a,i)}return n.setOutputs(e,r,i),i}getOptionsDisplay(){return[]}_updateOptions(t){this.nodes=Xp(t,this.options,this.nodes,this.context),this.options=t}dispose(){this.nodes.forEach((t=>{t.dispose()}))}}const Qp=Gd.MESSAGES.UPDATE_OPTIONS;class Jp extends Yp{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}registerListeners(){this.baseNode.getEventEmitter().on(Qp,this.updateOptions,this)}dispose(){this.nodes.forEach((t=>{t.dispose()})),this.baseNode.getEventEmitter().off(Qp,this.updateOptions,this)}}const Zp=Gd.SYSTEM_NODES.TAGS.ATOM,tm=Gd.SYSTEM_NODES.TAGS.FILTER,em=Gd.SYSTEM_NODES.TAGS.COMPOSITE_FILTER,nm=Gd.SYSTEM_NODES.TAGS.TRANSITION_FILTER,im=Gd.PREVIOUS_OUTPUT_PREFIX,rm=Object.keys(Cp);function om(t,e){const n=(i=t.type,Cp[i]);var i;return t=Bp(n,t),new jp(t.type,t,e)}var sm={create:function(t,e){let n;switch(function(t){let e;return n=t,e=rm.includes(n)?Zp:t===em?em:t===nm?nm:tm,e;var n}((t=JSON.parse(JSON.stringify(t))).type)){case Zp:n=om(t,e);break;case tm:n=function(t,e){const n=function(t,e){const n=e.get(t);if(!n)throw new Error(`no base node, cant resolve type: ${t}`);return n}(t.type,e.nodeStore),i=n.getType(),r=n.getInfo();let o;return t=Bp(r,t),e={...e,baseNode:n},o=i===em?new Jp(i,t,e):new $p(i,t,e),o}(t,e);break;case em:n=function(t,e){const n=t.type;return t=Bp({inputs:[`${im}0`]},t),new Yp(n,t,e)}(t,e);break;case nm:n=function(t,e){const n=t.options.filter;if(!n)throw new Error(`transition filter should supply base filter ${n}`);return t.type=`${n}Transition`,om(t,e)}(t,e);break;default:throw new Error("cant create node",t.type)}return n}};const am=Gd.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS;var lm=function(t){const e={[am]:Cp[am]};for(const[n,i]of Object.entries(e)){const e=sm.create(i,t);t.nodeStore.set(n,e)}},cm=function(t,e){for(const[n,i]of Object.entries(t)){const t=sm.create(i,e);e.nodeStore.set(n,t)}};const um=Gd.CAPTURED_FRAME_PREFIX;class dm{constructor(t){return this.textureManager=t.textureManager,this.currentFrameTextures={0:this.textureManager.createTexture({type:"frame"})},this.saveInNextFrameTextures=[],this.savedFramesTextures={},this.reservedUnits=new Set([this.currentFrameTextures[0].getUnit()]),{capture:this.capture.bind(this),createCaptureId:this.createCaptureId.bind(this),releaseCaptureId:this.releaseCaptureId.bind(this),getCurrentFrames:this.getCurrentFrames.bind(this),getSavedFrames:this.getSavedFrames.bind(this),isReservedUnit:this.isReservedUnit.bind(this)}}updateCurrentFrame(t,e){e=e||0,this.currentFrameTextures[e].fill(t)}saveFrame(t){0!==this.saveInNextFrameTextures.length&&(this.saveInNextFrameTextures.forEach((e=>{e.fill(t)})),this.saveInNextFrameTextures=[])}capture(t,e){(t.videoHeight>150||t.displayHeight>150)&&(this.updateCurrentFrame(t,e),this.saveFrame(t))}createCaptureId(){const t=this.textureManager.createTexture({type:"frame"});this.saveInNextFrameTextures.push(t);const e=t.getUnit(),n=`${um}${e}`;return this.savedFramesTextures[n]=t,this.reservedUnits.add(e),n}releaseCaptureId(t){if("string"!=typeof t)throw new Error("capture id should be string");delete this.saveInNextFrameTextures[t];const e=t.split(":")[1];this.reservedUnits.delete(parseInt(e,10))}getCurrentFrames(){return this.currentFrameTextures}getSavedFrames(){return this.savedFramesTextures}isReservedUnit(t){return this.reservedUnits.has(t)}}const hm=ld("ShaderGraphApplication","warn"),fm=Gd.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS,pm=Object.freeze({useCanvasSizedFilterTargets:!1,rebindAttributesOnProgramSwitch:!0,forwardContextAttributes:!0});function mm(t={}){const e=null==t?void 0:t.performanceToggles;return e&&"object"==typeof e?{...pm,...e}:{...pm}}class vm{constructor(t,e={}){return this.glSource=t,this.config=e,this.performanceToggles=mm(e),this.isContextLost=!1,this.isRecovering=!1,this.isDisposed=!1,this.pendingNodeOptionUpdates=new Map,this.doInit(t,e)}doInit(t,e){this.source=eh(t),this.performanceToggles=mm(e),this.isDisposed=!1,this.resetViewportSyncState(),this.render=this.render.bind(this),this.resizeCanvasSize=this.resizeCanvasSize.bind(this),this.setSrcVidTracks=this.setSrcVidTracks.bind(this),this.onWebGLContextLost=this.onWebGLContextLost.bind(this),this.onForceRender=this.onForceRender.bind(this),this.resizeCanvasSize._shouldPreventDefault=!0;const n=function(t={},e=pm){const n=null!=t&&t.glOptions&&"object"==typeof t.glOptions?{...t.glOptions}:{},i=n.__shaderGraph&&"object"==typeof n.__shaderGraph?n.__shaderGraph:{};return{...n,__shaderGraph:{...i,forwardContextAttributes:!1!==e.forwardContextAttributes}}}(e,this.performanceToggles);return this.gl=this.source.init(this.setSrcVidTracks,this.resizeCanvasSize,n),this.addCanvasListeners(),this.addSourceListeners(),this.exposeDebugGlobalIfBrowser(),this.selectedRenderNode=null,this.setupRenderInfrastructure(t,e),e.userWillCallRender||(this.rafId=requestAnimationFrame(this.render)),this.dirtyCanvasSize=!0,{getNodes:this.getNodes.bind(this),addNodes:this.addClientNodes.bind(this),selectNode:this.selectNode.bind(this),addTexture:this.addTexture.bind(this),releaseTexture:this.releaseTexture.bind(this),captureTexture:this.captureTexture.bind(this),disposeTexture:this.disposeTexture.bind(this),updateOptions:this.updateOptions.bind(this),render:this.render,dispose:this.dispose.bind(this)}}exposeDebugGlobalIfBrowser(){"undefined"!=typeof window&&(window.ekoShaderGraph=this)}setupRenderInfrastructure(t,e){this.activeTextures=this.activeTextures||new Set,this.textureManager=new dh({gl:this.gl,activeTextures:this.activeTextures}),this.capturedFramesManager=new dm({textureManager:this.textureManager}),this.graphIOManager=new bh({glSource:t,gl:this.gl,textureManager:this.textureManager,capturedFramesManager:this.capturedFramesManager}),this.frameBufferFactory=new Eh({gl:this.gl,textureManager:this.textureManager,useCanvasSizedFilterTargets:this.performanceToggles.useCanvasSizedFilterTargets}),this.filterFactory=new Fp({gl:this.gl,frameBufferFactory:this.frameBufferFactory,rebindAttributesOnProgramSwitch:this.performanceToggles.rebindAttributesOnProgramSwitch}),this.nodeStore=new ih,this.ioStore=new ih,lm({nodeStore:this.nodeStore,filterFactory:this.filterFactory}),this.addClientNodes(e.nodes,this.isRecovering)}getNodes(){return hm.debug("[getNodes]"),this.nodeStore.get()}addClientNodes(t,e=!1){if(hm.debug("[addClientNodes]",t),t&&!e&&(this.addClientNodeInvocations=this.addClientNodeInvocations||[],this.addClientNodeInvocations.push(t)),!e&&this.isContextUnavailable())return;t=t||{};const n=JSON.parse(JSON.stringify(t));cm(n,{nodeStore:this.nodeStore,filterFactory:this.filterFactory})}addTexture(t,e,n){if(hm.debug("[addTexture]",t,e,n),this.isContextUnavailable())return null;let i=this.textureManager.createTexture({type:e});return i.isStatic=!0,t&&i.fill(t),this.graphIOManager.setTextureSource(this.ioStore,i,n),i}releaseTexture(t){hm.debug("[releaseTexture]",t),this.isContextUnavailable()||this.textureManager.releaseTexture(t)}selectNode(t){if(hm.debug("[selectNode]",t),!this.isContextUnavailable())return this.nodeStore.get(t)||hm.warn("Missing render node",t),void(this.selectedRenderNodeId=t);this.selectedRenderNodeId=t}captureTexture(){return hm.debug("[captureTexture]"),this.isContextUnavailable()?null:this.capturedFramesManager.createCaptureId()}disposeTexture(t){return hm.debug("[disposeTexture]",t),this.isContextUnavailable()||"string"!=typeof t?null:this.capturedFramesManager.releaseCaptureId(t)}setSrcVidTracks(t){this.isContextUnavailable()||this.capturedFramesManager&&this.capturedFramesManager.capture(t)}resizeCanvasSize(t,e,n,i){this.dirtyCanvasSize={width:n,height:i}}resetViewportSyncState(){this._lastSyncedViewportCanvasWidth=null,this._lastSyncedViewportCanvasHeight=null}syncViewportToCanvasBackingStoreIfChanged(){var t,e;const n=null===(t=this.gl)||void 0===t||null===(t=t.canvas)||void 0===t?void 0:t.width,i=null===(e=this.gl)||void 0===e||null===(e=e.canvas)||void 0===e?void 0:e.height;!Number.isFinite(n)||!Number.isFinite(i)||n<=0||i<=0||n===this._lastSyncedViewportCanvasWidth&&i===this._lastSyncedViewportCanvasHeight||(_h(n,i),this.gl.viewport(0,0,n,i),this._lastSyncedViewportCanvasWidth=n,this._lastSyncedViewportCanvasHeight=i)}isContextUnavailable(){return!!this.isDisposed||!(!this.isRecovering&&!this.isContextLost)||!(!this.gl||"function"!=typeof this.gl.isContextLost)&&this.gl.isContextLost()}queueNodeOptionUpdate(t,e){t&&e&&"object"==typeof e&&(this.pendingNodeOptionUpdates||(this.pendingNodeOptionUpdates=new Map),this.pendingNodeOptionUpdates.set(t,e))}applyPendingNodeOptionUpdates(t=!1){if(!this.pendingNodeOptionUpdates||!this.pendingNodeOptionUpdates.size)return;const e=Array.from(this.pendingNodeOptionUpdates.entries());this.pendingNodeOptionUpdates.clear(),e.forEach((([e,n])=>{try{if(t){const t=this.nodeStore.get(e);if(!t||"function"!=typeof t.updateOptions)return void this.queueNodeOptionUpdate(e,n);try{t.updateOptions(n)}catch(t){hm.error("Failed to apply pending node options",e,t),this.queueNodeOptionUpdate(e,n)}return}this.updateOptions(e,n)}catch(t){hm.error("Failed to apply pending node options",e,t)}}))}render(t={}){const{noRaf:e=!1}=t;if(this.isContextUnavailable())return;if(this.dirtyCanvasSize){let{width:t=this.gl.canvas.width,height:e=this.gl.canvas.height}=this.dirtyCanvasSize;_h(t,e),this.gl.canvas.width=t,this.gl.canvas.height=e,this.textureManager.refreshTextureObjects(),this.gl.viewport(0,0,t,e),this.dirtyCanvasSize=!1,this._lastSyncedViewportCanvasWidth=t,this._lastSyncedViewportCanvasHeight=e}this.syncViewportToCanvasBackingStoreIfChanged(),this.graphIOManager.setVideoSources(this.ioStore);let n={ioStore:this.ioStore,graphIOManager:this.graphIOManager};this.renderSelectedNode(n),this.config.onPreRenderToScreen&&this.config.onPreRenderToScreen(),this.renderToCanvas(n),this.config.onPostRenderToScreen&&this.config.onPostRenderToScreen(),this.graphIOManager.disposeAllStore(this.ioStore),n=null,!e&&!this.config.userWillCallRender&&(this.rafId=requestAnimationFrame(this.render))}renderSelectedNode(t){if(!this.selectedRenderNodeId)return;const e=this.nodeStore.get(this.selectedRenderNodeId);e&&"function"==typeof e.render?e.render(t):(hm.warn("Missing selected render node",this.selectedRenderNodeId),this.selectedRenderNodeId=null)}renderToCanvas(t){const e=this.nodeStore.get(fm);e&&"function"==typeof e.render?e.render(t):hm.warn("Missing render-to-canvas node")}updateOptions(t,e){if(hm.debug("[updateOptions]",t,e),this.isContextUnavailable())return void this.queueNodeOptionUpdate(t,e);const n=this.nodeStore.get(t);if(n&&"function"==typeof n.updateOptions)try{n.updateOptions(e)}catch(n){hm.error("Failed to update node options",t,n),this.queueNodeOptionUpdate(t,e)}else this.queueNodeOptionUpdate(t,e)}addSourceListeners(){var t;"function"==typeof(null===(t=this.source)||void 0===t?void 0:t.on)&&this.source.on("forcerender",this.onForceRender)}removeSourceListeners(){var t;"function"==typeof(null===(t=this.source)||void 0===t?void 0:t.off)&&this.source.off("forcerender",this.onForceRender)}addCanvasListeners(){var t;(null==this||null===(t=this.gl)||void 0===t?void 0:t.canvas)&&(this.config.noWebGLContextLostRecovery||this.gl.canvas.addEventListener("webglcontextlost",this.onWebGLContextLost))}removeCanvasListeners(){var t;(null==this||null===(t=this.gl)||void 0===t?void 0:t.canvas)&&this.gl.canvas.removeEventListener("webglcontextlost",this.onWebGLContextLost)}getNodesOptions(){const t=this.getNodes();let e={};return Object.keys(t).filter((t=>"__default"!==t)).forEach((n=>{e[n]=t[n].options})),e}getDocumentVisibilityPromise(){return new Promise((t=>{"visible"===document.visibilityState&&t();const e=()=>{"visible"===document.visibilityState&&(document.removeEventListener("visibilitychange",e),t())};document.addEventListener("visibilitychange",e)}))}onForceRender(){hm.info("[onForceRender]"),this.render({noRaf:!0})}async onWebGLContextLost(t){if(t&&"function"==typeof t.preventDefault&&t.preventDefault(),this.isDisposed||this.isRecovering)return;this.isContextLost=!0,this.isRecovering=!0;const e=this.getNodesOptions(),n=this.addClientNodeInvocations,i=this.selectedRenderNodeId;cancelAnimationFrame(this.rafId),hm.warn("WebGL context lost - attempting to recover");const r=async()=>{if(this.isDisposed)this.isRecovering=!1;else try{var t;if(await this.getDocumentVisibilityPromise(),this.isDisposed)return void(this.isRecovering=!1);if(this.gl&&"function"==typeof this.gl.isContextLost&&this.gl.isContextLost())return void setTimeout(r,200);this.dispose(!1),this.doInit(this.glSource,this.config),this.textureManager&&"function"==typeof this.textureManager.refreshActiveTextures&&this.textureManager.refreshActiveTextures(),n&&n.length&&n.forEach((t=>{hm.debug("Re-adding client nodes",t),this.addClientNodes(t,!0)})),Object.entries(e).forEach((([t,e])=>{hm.debug("Re-applying node options",t,e);const n=this.nodeStore.get(t);n&&"function"==typeof n.updateOptions&&n.updateOptions(e)})),i&&(this.selectedRenderNodeId=i),this.applyPendingNodeOptionUpdates(!0);const o="function"==typeof(null===(t=this.source)||void 0===t?void 0:t.recover);o&&(hm.debug("Recovering glSource (i.e. seeking/resetting player)"),await this.source.recover()),this.isContextLost=!1,this.isRecovering=!1,o&&this.render()}catch(t){hm.error("Failed to recover WebGL context, retrying",t),setTimeout(r,200)}};await r()}dispose(t=!0){if(this.selectedRenderNode=null,t&&(this.isDisposed=!0,this.isRecovering=!1,this.isContextLost=!1),this.source&&(this.removeSourceListeners(),"function"==typeof this.source.dispose&&this.source.dispose()),this.gl){this.removeCanvasListeners();const e=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS);for(let t=0;t<e;++t)this.gl.activeTexture(this.gl.TEXTURE0+t),this.gl.bindTexture(this.gl.TEXTURE_2D,null),this.gl.bindTexture(this.gl.TEXTURE_CUBE_MAP,null);if(this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,null),this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,null),this.gl.bindTexture(this.gl.TEXTURE_2D,null),this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,null),t)try{this.gl.getExtension("WEBGL_lose_context").loseContext()}catch(t){console.error(t)}}this.selectedRenderNodeId=null,t&&delete this.addClientNodeInvocations}}class gm{constructor(t={}){this.options=t}get type(){return"stage"}getSignature(){return this.type}build({inputs:t=[]}={}){return{graph:[],outputs:t,signature:this.getSignature()}}}function ym(t={}){const e={source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:.5,y:.5},width:1,height:1},fitType:"fill",cornerRadius:0,edgeSoftness:0},n={...e.source,...t.source||{}},i={...e.target,...t.target||{}};return{...e,...t,source:n,target:i}}class bm extends gm{get type(){return"retarget"}getSignature(){var t;const e=Array.isArray(null===(t=this.options)||void 0===t?void 0:t.frames)?this.options.frames:[];return`${this.type}:${e.length}`}build({inputs:t=[],stageIndex:e=0}={}){var n;const i=Array.isArray(null===(n=this.options)||void 0===n?void 0:n.frames)?this.options.frames:[];if(!i.length)return{graph:[],outputs:t,signature:this.getSignature()};const r=[],o=[];for(let n=0;n<t.length;n+=1){const s=t[n],a=i[n];if(!a){o.push(s);continue}const l=`retarget-${e}-${n}`;r.push({id:l,type:"crop",inputs:[s],outputs:[l],options:ym(a)}),o.push(l)}return{graph:r,outputs:o,signature:this.getSignature()}}}class km{#I=new Map;constructor(){this.register("retarget",bm)}register(t,e){t&&"function"==typeof e&&this.#I.set(t,e)}create(t={}){const e="string"==typeof(null==t?void 0:t.type)?t.type:null;if(!e)return null;const n=this.#I.get(e);return n?new n((null==t?void 0:t.options)||{}):null}}class wm{constructor(t={}){this.params=t}static get panAndScanTarget(){return"pre"}static buildDefaultLayoutGraph(t=[]){const e=t[0]||"__SRC_TEXTURE:0";return{type:"default",signature:`default:${t.length}`,isDynamic:!1,graph:[{type:"opacity",inputs:[e],options:{power:1}}]}}static prepareRenderFrames({frames:t}={}){return Array.isArray(t)?t:[]}static getRenderTiming({timing:t}={}){return t&&"object"==typeof t?t:{}}static resetRenderState(t){}render(t){}}class xm extends wm{#E=null;#S=null;static get type(){return"default"}static get aliases(){return["DefaultRenderNode","default"]}static get requiresFrameCadence(){return!1}static buildLayoutGraph({inputs:t=[]}={}){return super.buildDefaultLayoutGraph(t)}static prepareRenderFrames({frames:t}={}){const e=Array.isArray(t)?t:[];if(e.length<=1)return e;const n=e[e.length-1];return n?[n]:e}render(t){var e;const n=(null==t||null===(e=t.visualFramesAvailable)||void 0===e?void 0:e.frames)||[];if(!n.length)return;const i=null==t?void 0:t.shaderGraph,r=null==t?void 0:t.shaderGraphNodeIds;if(!i||"function"!=typeof i.updateOptions||"function"!=typeof i.selectNode)return;const o=null==r?void 0:r.default;if(o)try{const t=n.map(((t,e)=>t?`__SRC_TEXTURE:${e}`:null)).filter(Boolean),e=xm.buildLayoutGraph({inputs:t}),r=e.signature;this.#E!==r&&(i.updateOptions(o,{graph:e.graph}),this.#E=r),this.#S!==o&&(i.selectNode(o),this.#S=o),i.render({noRaf:!0})}catch(t){}}}function _m(t){const e=Number(t);return Number.isFinite(e)?e<=0?0:e>=1?1:e:0}class Tm extends wm{#E=null;#S=null;#A=null;static get type(){return"cross-fade"}static get aliases(){return["CrossFadeRenderNode","cross-fade","crossfade"]}static get requiresFrameCadence(){return!0}static get panAndScanTarget(){return"pre"}static buildLayoutGraph({inputs:t=[],normalizedTime:e}={}){if(t.length<2)return super.buildDefaultLayoutGraph(t);const n=_m(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:Tm.type,signature:`${Tm.type}:${t.length}`,isDynamic:!0,graph:i}}static prepareRenderFrames({frames:t,timelineTime:e,active:n}={}){let i=(Array.isArray(t)?t:[]).slice(0,2);if(i.length<2)return i;const r=Number.isFinite(null==n?void 0:n.duration)&&n.duration>0?n.duration:void 0,o=Number.isFinite(null==n?void 0:n.offset)?n.offset:void 0;if(!Number.isFinite(e)||!Number.isFinite(r)||!Number.isFinite(o))return i;const s=_m((e-o)/r);return s<=0?[i[0]]:s>=1?[i[1]]:i}render(t){var e;const n=(null==t||null===(e=t.visualFramesAvailable)||void 0===e?void 0:e.frames)||[];if(!n.length)return;const i=null==t?void 0:t.shaderGraph,r=null==t?void 0:t.shaderGraphNodeIds;if(!i||"function"!=typeof i.updateOptions||"function"!=typeof i.selectNode)return;if(n.length<2){const t=null==r?void 0:r.default;if(!t)return;try{const e="default";if(this.#E!==e){const n=Tm.buildLayoutGraph({inputs:["__SRC_TEXTURE:0"]});i.updateOptions(t,{graph:n.graph}),this.#E=e}this.#S!==t&&(i.selectNode(t),this.#S=t),i.render({noRaf:!0})}catch(t){}return}const o=null==r?void 0:r.crossFade;if(o)try{const e=["__SRC_TEXTURE:0","__SRC_TEXTURE:1"],n=Tm.buildLayoutGraph({inputs:e,normalizedTime:null==t?void 0:t.renderNodeNormalizedTime}),r=n.signature,s=Number(null==t?void 0:t.renderNodeNormalizedTime),a=Number.isFinite(s)?s:0;this.#E===r&&this.#A===a||(i.updateOptions(o,{graph:n.graph}),this.#E=r,this.#A=a),this.#S!==o&&(i.selectNode(o),this.#S=o),i.render({noRaf:!0})}catch(t){}}}function Im(t,e,n={}){if("number"==typeof(null==t?void 0:t.nodeDurationOverride)&&Number.isFinite(t.nodeDurationOverride))return t.nodeDurationOverride;const i="function"==typeof(null==n?void 0:n.getNode)?n.getNode:e&&"function"==typeof e.get?t=>e.get(t):null;if(!i)return;const r=i(null==t?void 0:t.nodeId);if(!r)return;const o=r.duration;if("number"!=typeof o||Number.isNaN(o)||!Number.isFinite(o))return;const s="string"!=typeof r.state||"ready"===r.state;if(!0!==(null==n?void 0:n.allowUnready)&&!s)return;if(!(!0!==(null==n?void 0:n.allowUnready)||s||o>0))return;let a=0;"number"==typeof t.nodeOffsetOverride&&Number.isFinite(t.nodeOffsetOverride)&&(a=t.nodeOffsetOverride);const l=o-a;return l>0?l:0}function Em(t){return!(!t||!0===t.offsetPending)&&Number.isFinite(t.offset)}function Sm(t){return Em(t)?t.offset:void 0}function Am(t,e,n,i={}){if(!t)return!1;const r=Sm(t);if(!Number.isFinite(r))return!1;const o=Im(t,n,i);return Number.isFinite(o)?e>=r&&e<r+o:e>=r}function Nm(t=[]){if(!Array.isArray(t))return t;const e=[],n=[];return t.forEach((t=>{Em(t)?e.push(t):n.push(t)})),e.sort(((t,e)=>t.offset-e.offset)),t.splice(0,t.length,...e,...n),t}function Mm(t=[],e={}){if(!Array.isArray(t)||!t.length)return{updated:!1,resolvedPlacements:[]};const n="function"==typeof e.getPlacementDuration?e.getPlacementDuration:()=>{},i="function"==typeof e.snapPlacementOffset?e.snapPlacementOffset:t=>t,r="function"==typeof e.onResolvedPlacement?e.onResolvedPlacement:null,o=new Map,s=[];if(t.forEach((t=>{null!=t&&t.placementId&&o.set(t.placementId,t),!0===(null==t?void 0:t.offsetPending)&&s.push(t)})),!s.length)return{updated:!1,resolvedPlacements:[]};let a=!1;const l=[];let c=s,u=!0;for(;c.length&&u;){u=!1;const t=[];for(let e=0;e<c.length;e+=1){const s=c[e],d=null==s?void 0:s.offsetAnchorPlacementId;if(!d){t.push(s);continue}const h=o.get(d);if(!h||!0===h.offsetPending){t.push(s);continue}const f=Sm(h);if(!Number.isFinite(f)){t.push(s);continue}let p;if("start"===s.offsetAnchorEdge)p=i(f,s);else{const e=n(h);if(!(e>0)){t.push(s);continue}const r=f+e-(Number.isFinite(s.offsetEndSeconds)?s.offsetEndSeconds:0);if(!Number.isFinite(r)){t.push(s);continue}const o=i(r,s);p=!0===s.offsetAnchorIsReference?Math.max(o,r):o}Number.isFinite(p)?(s.offset=p,s.offsetPending=!1,s.offsetAnchorPlacementId=void 0,s.offsetAnchorEdge=void 0,s.offsetAnchorIsReference=void 0,r&&r(s,h,p),l.push(s),a=!0,u=!0):t.push(s)}c=t}return a&&!1!==e.sortPlacements&&Nm(t),{updated:a,resolvedPlacements:l}}function Fm(t){const e=Number(t);return Number.isFinite(e)?e:0}function Om(t,e={}){const n=function(t){const e=Number(t);return Number.isFinite(e)&&e<0?Math.abs(e):0}(t),i=Number.isFinite(null==e?void 0:e.offsetEndSeconds)?e.offsetEndSeconds:n;var r;return{wantsEndOffset:"end"===(r=t)||null==r||n>0||!0===(null==e?void 0:e.offsetPending),endOffsetSeconds:i,endOffsetFromAtSeconds:n}}function Cm(t){if("string"!=typeof t)return null;const e=t.trim();if(!e||"end"===e)return null;const n=Number(e);if(Number.isFinite(n))return null;const i=e.split("@"),r=i[0]?i[0].trim():"";if(!r)return null;if(1===i.length)return{placementId:r,anchor:"start"};if(2!==i.length)return null;const o=i[1]?i[1].trim().toLowerCase():"";return"start"!==o&&"end"!==o?null:{placementId:r,anchor:o}}function Pm(t=[],e,n,i){if(Array.isArray(t))for(let r=0;r<t.length;r+=1){const o=t[r],s="number"==typeof(null==o?void 0:o.offset)?o.offset:0;if(e<s+("number"==typeof(null==o?void 0:o.duration)&&Number.isFinite(o.duration)?o.duration:Number.POSITIVE_INFINITY)&&s<n)throw new Error(i)}}function Dm(t){const e=Number(t);return Number.isFinite(e)&&e>0?e:0}function Rm(t){return(null==t?void 0:t.id)||(null==t?void 0:t.nodeId)||null}function Lm(t,e){return Array.isArray(t)&&e?t.findIndex((t=>Rm(t)===e)):-1}function Bm(t,e,n){const i=function(t,e,n){if(!Array.isArray(e)||0===e.length)return null;const i=e.length;if(null==t||"next"===t){const t=Lm(e,n);return t>=0?(t+1)%i:0}if("prev"===t){const t=Lm(e,n);return t>=0?(t-1+i)%i:i-1}const r=Number(t);return Number.isInteger(r)&&r>=0&&r<i?r:null}(t,e,n);return Number.isInteger(i)?Rm(e[i]):null}function zm(t,e,n,i){const r=function(t,e){if(!Array.isArray(t)||t.length<=1)return t||[];const n=function(t){const e=[],n=new Set;return Array.isArray(t)?(t.forEach((t=>{const i=null==t?void 0:t.placementId;i&&!n.has(i)&&(n.add(i),e.push(i))})),e):e}(e);if(!n.length)return t;const i=new Map;t.forEach((t=>{const e=null==t?void 0:t.placementId;e&&!i.has(e)&&i.set(e,t)}));const r=[],o=new Set;return n.forEach((t=>{const e=i.get(t);e&&!o.has(t)&&(o.add(t),r.push(e))})),t.forEach((t=>{const e=null==t?void 0:t.placementId;e&&!o.has(e)&&(o.add(e),r.push(t))})),r}(function(t,e){const n=function(t){const e=Number(null==t?void 0:t.offset),n=Number(null==t?void 0:t.duration),i=n===Number.POSITIVE_INFINITY,r=Number.isFinite(n)&&n>0||i;return Number.isFinite(e)&&r?{start:e,end:i?Number.POSITIVE_INFINITY:e+n}:null}(e);if(!n||!t||!Array.isArray(t.placements))return[];const i=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return!Number.isFinite(n)||n<=0?0:.5/n}(t),r=t.placements.filter((e=>{const r=function(t,e){const n=Sm(t);if(!Number.isFinite(n))return null;const i="function"==typeof(null==e?void 0:e.getPlacementDuration)?e.getPlacementDuration(t):void 0;return{start:n,end:Number.isFinite(i)&&i>=0?n+i:Number.POSITIVE_INFINITY}}(e,t);return!!r&&r.start<n.end&&r.end>n.start+i}));return r.sort(((t,e)=>Sm(t)-Sm(e))),r}(e,n),i),o=function(t,e){const n=[],i=new Set;return Array.isArray(t)?(t.forEach((t=>{const r=null==t?void 0:t.nodeId;if(!r||i.has(r))return;const o="function"==typeof(null==e?void 0:e.getNode)?e.getNode(r):null;if(o){const t="object"==typeof o&&null!==o?o.id||o.nodeId?o:{...o,id:r}:{id:r};n.push(t),i.add(r)}})),n):n}(r,e),s=function(t){const e=new Map;return t.forEach((t=>{const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;n&&i&&(e.has(i)||e.set(i,[]),e.get(i).push(n))})),e}(r),a=Array.isArray(t.nodes)?t.nodes:[];return a.splice(0,a.length,...o),t.nodes=a,t.placements=r,t.nodePlacementMap=s,{nodes:a,placements:r,nodePlacementMap:s}}function Wm(t,e,n){if(!Array.isArray(t))return null;if(e){const n=t.find((t=>(null==t?void 0:t.placementId)===e));if(n)return n}return n&&t.find((t=>(null==t?void 0:t.nodeId)===n))||null}function jm(t,e){if(!e||!Array.isArray(t))return null;const n=t.find((t=>(null==t?void 0:t.placementId)===e));return(null==n?void 0:n.nodeId)||null}function Um(t,e,n){if(!t||!e)return null;const i=e.get(t);if(!Array.isArray(i)||!i.length)return null;for(let e=0;e<i.length;e+=1){const r=i[e];if(Wm(n,r,t))return r}return null}function $m(t){t.initialized=!1,t.activeRenderPlacementId=null,t.nodes=[],t.placements=[],t.nodePlacementMap=null,t.selectedPlacementId=null,t.previousPlacementId=null,t.pendingSwitch=null,t.switchStartTime=null,t.switchDuration=0,t.switchNormalizedTime=void 0,t.switchTo=null,t.countOfConcurrentChannels=null}class qm extends wm{static get type(){return"switching"}static get aliases(){return["SwitchingRenderNode","switching","switch"]}static get requiresFrameCadence(){return!0}static get panAndScanTarget(){return"pre"}static buildLayoutGraph({inputs:t=[],normalizedTime:e}={}){if(t.length<2)return super.buildDefaultLayoutGraph(t);const n=_m(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:qm.type,signature:`${qm.type}:${t.length}`,isDynamic:!0,graph:i}}static getRenderTiming({timing:t,state:e}={}){const n=t&&"object"==typeof t?t:{},i=Number(null==e?void 0:e.switchNormalizedTime);return Number.isFinite(i)?{...n,normalizedTime:_m(i)}:n}static prepareRenderFrames({frames:t,timelineTime:e,timeline:n,active:i,renderNodeParams:r,state:o}={}){const s=Array.isArray(t)?t:[],a=o&&"object"==typeof o?o:{},l=null==i?void 0:i.renderPlacementId;l&&a.activeRenderPlacementId!==l&&($m(a),a.activeRenderPlacementId=l);const c=null==r?void 0:r.initSwitching,u=zm(a,n,i,s),d=(f=s,Array.isArray(f)?f.length:0),h=a.countOfConcurrentChannels;var f;if(a.countOfConcurrentChannels=d,"function"==typeof c&&(a.switchTo||(a.switchTo=(t,e)=>{const n=jm(a.placements,a.selectedPlacementId),i=Bm(t,a.nodes,n);if(!i)return;const r={nodeId:i};e&&Object.prototype.hasOwnProperty.call(e,"crossfadeSeconds")&&void 0!==e.crossfadeSeconds&&(r.crossfadeSeconds=e.crossfadeSeconds),a.pendingSwitch=r}),!a.initialized||h!==d)){a.initialized=!0,a.countOfConcurrentChannels=d;try{c({nodes:u.nodes,countOfConcurrentChannels:d,switchTo:a.switchTo})}catch(f){}}if(!a.selectedPlacementId){const t=Number(null==r?void 0:r.initialChannelIndex),e=Bm(Number.isInteger(t)&&t>=0?t:0,a.nodes,null);let n=null;if(e&&(n=Um(e,a.nodePlacementMap,s),!n&&a.nodePlacementMap)){const t=a.nodePlacementMap.get(e);Array.isArray(t)&&t.length&&(n=t[0])}a.selectedPlacementId=n||function(t,e){if(Array.isArray(e))for(let i=0;i<e.length;i+=1){var n;const r=null===(n=e[i])||void 0===n?void 0:n.placementId;if(r&&Wm(t,r))return r}const i=Array.isArray(t)?t.find((t=>null==t?void 0:t.placementId)):null;return i?i.placementId:null}(s,a.placements)}if(a.pendingSwitch&&Number.isFinite(e)){const t=Um(a.pendingSwitch.nodeId,a.nodePlacementMap,s);if(t){const n=a.selectedPlacementId;a.previousPlacementId=n&&n!==t?n:null,a.selectedPlacementId=t;const i=Object.prototype.hasOwnProperty.call(a.pendingSwitch,"crossfadeSeconds"),o=Dm(a.pendingSwitch.crossfadeSeconds),s=Dm(null==r?void 0:r.switchCrossfadeSeconds),l=i?o:s;a.switchDuration=l,l>0?a.switchStartTime=e:(a.switchStartTime=null,a.previousPlacementId=null)}a.pendingSwitch=null}let p;if(Number.isFinite(a.switchStartTime)&&a.switchDuration>0&&Number.isFinite(e)){const t=e-a.switchStartTime;t>=a.switchDuration?(a.switchStartTime=null,a.switchDuration=0,a.previousPlacementId=null):t>=0&&(p=_m(t/a.switchDuration))}a.switchNormalizedTime=Number.isFinite(p)?p:void 0;const m=jm(a.placements,a.selectedPlacementId),v=Wm(s,a.selectedPlacementId,m)||s[0];let g=null;if(Number.isFinite(a.switchNormalizedTime)&&a.previousPlacementId){const t=jm(a.placements,a.previousPlacementId),e=jm(a.placements,a.selectedPlacementId),n=Wm(s,a.previousPlacementId,t),i=Wm(s,a.selectedPlacementId,e);n&&i&&(g=[n,i])}return g||(g=v?[v]:s),g}static resetRenderState(t){t&&"object"==typeof t&&$m(t)}}const Vm=.5,Gm="auto";function Hm(t){return"vertical"===t?"vertical":"horizontal"}function Km(t){return void 0===t||t===Gm?Gm:"manual"}function Xm(t){const e=Number(t);return Number.isFinite(e)&&e>=0?e:.004}function Ym(t,e){const n=Number(null==t?void 0:t.width),i=Number(null==t?void 0:t.height);return Number.isFinite(n)&&Number.isFinite(i)&&n>0&&i>0?i>n?"vertical":"horizontal":Hm(e)}function Qm(t,e){const n=e&&"object"==typeof e&&e.runtimeParams&&"object"==typeof e.runtimeParams?e.runtimeParams:{},i=Object.prototype.hasOwnProperty.call(n,"orientationMode")?n.orientationMode:null==t?void 0:t.orientationMode,r=Object.prototype.hasOwnProperty.call(n,"orientation")?n.orientation:null==t?void 0:t.orientation,o=Object.prototype.hasOwnProperty.call(n,"gap")?n.gap:null==t?void 0:t.gap,s=Km(i);return{orientationMode:s,orientation:s===Gm?Ym(null==e?void 0:e.viewportSize,r):Hm(r),gap:Xm(o)}}function Jm(t){t&&"object"==typeof t&&(t.activeRenderPlacementId=null,t.frames=null,t.gridInitialized=!1,t.runtimeParams=null,t.setGridParams=null)}class Zm extends wm{static get type(){return"grid"}static get aliases(){return["GridRenderNode","grid","SideBySideRenderNode","side-by-side","sidebyside"]}static get requiresFrameCadence(){return!1}static get panAndScanTarget(){return"skip"}static resolvePanAndScanTarget({frameCount:t}={}){return t<2?"pre":Zm.panAndScanTarget}static buildLayoutGraph({inputs:t=[],renderNodeParams:e,state:n}={}){const i=Array.isArray(t)?t.slice(0,12):[],r=i.length;if(r<2)return super.buildDefaultLayoutGraph(i);const{orientation:o,gap:s}=Qm(e,n),{rows:a,cols:l}=(p=o,(f=r)<=3?"vertical"===p?{rows:f,cols:1}:{rows:1,cols:f}:4===f?{rows:2,cols:2}:f<=6?"vertical"===p?{rows:3,cols:2}:{rows:2,cols:3}:f<=8?"vertical"===p?{rows:4,cols:2}:{rows:2,cols:4}:9===f?{rows:3,cols:3}:"vertical"===p?{rows:4,cols:3}:{rows:3,cols:4}),c=1/a,u=Math.max(0,c-s),d=[],h="grid-slice";var f,p;function m(t){const e=Math.floor(t/l),n=function(t,e,n,i){const r=(e-1)*n;return t===e-1&&i>r?i-r:n}(e,a,l,r),i=n<l?t-e*l:t%l,o=1/n;return{row:e,cellWidth:o,cropWidth:Math.max(0,o-s),targetCenterX:(i+Vm)*o,targetCenterY:(e+Vm)*c}}function v(t,e,n){const i=m(t);return{id:`grid-crop-${t}`,type:"crop",inputs:[e],outputs:[n],options:{source:{center:{x:Vm,y:Vm},width:1,height:1},target:{center:{x:i.targetCenterX,y:i.targetCenterY},width:i.cropWidth,height:u},fitType:"fill",cornerRadius:0,edgeSoftness:0}}}function g(t){const e=m(t);return{id:`grid-mask-${t}`,type:"shapeCompositeMask",inputs:[h,"accum"],outputs:["accum"],options:{type:"box",center:{x:2*e.targetCenterX-1,y:1-2*e.targetCenterY},area:{width:e.cellWidth,height:c},radius:0,edgeSoftness:0}}}d.push(v(0,i[0],"accum"));for(let t=1;t<r;t+=1)d.push(v(t,i[t],h)),d.push(g(t));return{type:Zm.type,signature:`${Zm.type}:${r}:${a}x${l}:${o}:${s}`,isDynamic:!1,graph:d}}static prepareRenderFrames({frames:t,renderNodeParams:e,active:n,state:i}={}){const r=Array.isArray(t)?t.slice(0,12):[],o=i&&"object"==typeof i?i:{},s=null==n?void 0:n.renderPlacementId;s&&o.activeRenderPlacementId!==s&&(Jm(o),o.activeRenderPlacementId=s);const a=Array.isArray(o.frames)?o.frames:[],l=null==e?void 0:e.initGrid;if("function"==typeof l&&(o.setGridParams||(o.setGridParams=t=>{!function(t,e){if(!t||"object"!=typeof t||!e||"object"!=typeof e)return;const n=t.runtimeParams&&"object"==typeof t.runtimeParams?{...t.runtimeParams}:{};Object.prototype.hasOwnProperty.call(e,"orientationMode")&&(n.orientationMode=Km(e.orientationMode)),Object.prototype.hasOwnProperty.call(e,"orientation")&&(n.orientation=Hm(e.orientation)),Object.prototype.hasOwnProperty.call(e,"gap")&&(n.gap=Xm(e.gap)),t.runtimeParams=n}(o,t),"function"==typeof o.requestRender&&o.requestRender()}),!o.gridInitialized)){o.gridInitialized=!0;const t=Qm(e,o);try{l({orientationMode:t.orientationMode,orientation:t.orientation,gap:t.gap,setGridParams:o.setGridParams})}catch(t){}}if(r.length<2){const t=function(t,e){if(!Array.isArray(e)||e.length<2)return t.length?[t[t.length-1]]:[];const n=Math.min(12,Math.max(t.length,e.length,2)),i=t[0]||e[0];return Array.from({length:n},((n,r)=>t[r]||e[r]||i))}(r,a);return o.frames=t,t}return o.frames=r,r}static resetRenderState(t){Jm(t)}}const tv=[xm,Tm,qm,Zm],ev=new Map;function nv(t){if("string"!=typeof t)return null;const e=t.trim();return e?e.toLowerCase():null}function iv(t){const e=nv(t);return e&&ev.get(e)||null}function rv(t){return iv(t)||xm}tv.forEach((t=>function(t){(function(t){const e=Array.isArray(t.aliases)?t.aliases:[],n=t.type;return(n?[n,...e]:e.slice()).filter((t=>"string"==typeof t&&t.trim().length))})(t).forEach((e=>{const n=nv(e);n&&ev.set(n,t)}))}(t)));class ov{static get defaultType(){return xm.type||"default"}static getRenderNodeClass(t){return iv(t)}static normalizeType(t){const e=iv(t);return e?e.type:null}static doesRenderNodeTypeRequireFrameCadence(t){const e=iv(t);return!!e&&!0===e.requiresFrameCadence}static buildLayoutGraph({type:t,inputs:e=[],normalizedTime:n,renderNodeParams:i,state:r}={}){const o=rv(t);return o&&"function"==typeof o.buildLayoutGraph?o.buildLayoutGraph({inputs:e,normalizedTime:n,renderNodeParams:i,state:r}):xm.buildLayoutGraph({inputs:e,normalizedTime:n,renderNodeParams:i,state:r})}static getPanAndScanTarget(t,e={}){const n=rv(t);return"post"===(i=n&&"function"==typeof n.resolvePanAndScanTarget?n.resolvePanAndScanTarget(e):null==n?void 0:n.panAndScanTarget)||"skip"===i?i:"pre";var i}static prepareRenderFrames({type:t,frames:e,timelineTime:n,timeline:i,active:r,renderNodeParams:o,state:s}={}){const a=rv(t);if(a&&"function"==typeof a.prepareRenderFrames){const t=a.prepareRenderFrames({frames:e,timelineTime:n,timeline:i,active:r,renderNodeParams:o,state:s});if(Array.isArray(t))return t}return Array.isArray(e)?e:[]}static getRenderTiming({type:t,timing:e,timelineTime:n,active:i,renderNodeParams:r,state:o}={}){const s=rv(t),a=e&&"object"==typeof e?e:{};if(s&&"function"==typeof s.getRenderTiming){const t=s.getRenderTiming({timing:a,timelineTime:n,active:i,renderNodeParams:r,state:o});if(t&&"object"==typeof t)return{...a,...t}}return a}static resetRenderState(t,e){const n=rv(t);n&&"function"==typeof n.resetRenderState&&n.resetRenderState(e)}static resetAllRenderStates(t){t&&"function"==typeof t.forEach&&t.forEach(((t,e)=>{ov.resetRenderState(e,t)}))}create(t,e){return t&&"function"==typeof t.render?t:new(rv(t))(e)}}function sv(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function av(t,e){return t&&"function"==typeof t.getSignature?t.getSignature():(null==e?void 0:e.type)||"stage"}class lv{#N;constructor(t){this.#N=t||new km}build(t={}){const e=(Array.isArray(null==t?void 0:t.frames)?t.frames:[]).length,n=Array.from({length:e},((t,e)=>`__SRC_TEXTURE:${e}`)),i=ov.normalizeType(null==t?void 0:t.layoutType)||ov.defaultType,r=null==t?void 0:t.normalizedTime,o=sv(null==t?void 0:t.preStages),s=sv(null==t?void 0:t.postStages),a=[],l=[`layout:${i}`,`inputs:${e}`];let c=n;o.forEach(((e,n)=>{const i=this.#N.create(e);if(!i)return;const r=i.build({inputs:c,stageIndex:n,context:t});Array.isArray(null==r?void 0:r.graph)&&r.graph.length&&a.push(...r.graph),Array.isArray(null==r?void 0:r.outputs)&&r.outputs.length&&(c=r.outputs),l.push(av(i,e))}));const u=ov.buildLayoutGraph({type:i,inputs:c,normalizedTime:r,renderNodeParams:null==t?void 0:t.renderNodeParams,state:null==t?void 0:t.renderNodeState}),d=!(null==u||!u.isDynamic);Array.isArray(null==u?void 0:u.graph)&&u.graph.length&&a.push(...u.graph),l.push((null==u?void 0:u.signature)||`${i}:${c.length}`);let h="__PREVIOUS:0";return s.forEach(((e,n)=>{const i=this.#N.create(e);if(!i)return;const r=i.build({inputs:[h],stageIndex:n,context:t});Array.isArray(null==r?void 0:r.graph)&&r.graph.length&&a.push(...r.graph),h=Array.isArray(null==r?void 0:r.outputs)&&r.outputs.length?r.outputs[0]:"__PREVIOUS:0",l.push(av(i,e))})),{graph:a,signature:l.join("|"),isDynamic:d}}}const cv=[0,0,1,1],uv="zoomInExposure",dv=["transform","exposure","fadeToColor","dipToBlack"],hv={zoomInExposure:{filters:{fadeToColor:{duration:150,ease:[1,0,1,0],power:{from:0,to:1},color:"#ffffff"},exposure:!1,transform:{duration:150,ease:[0,.5,.5,1],scale:{from:{x:1,y:1},to:{x:1.1,y:1.1}},translate:{from:{x:0,y:0},to:{x:0,y:0}}}},reverseFilters:{fadeToColor:{duration:700,ease:[0,1,0,1]},exposure:!1,transform:{duration:700,ease:[0,1,0,1]}}},dipToBlack:{filters:{transform:{duration:250,ease:[0,.5,.5,1],scale:{from:{x:1,y:1},to:{x:1.05,y:1.05}},translate:{from:{x:0,y:0},to:{x:0,y:0}}},dipToBlack:{duration:250,ease:[0,.5,.5,1],power:{from:0,to:1}}},reverseFilters:{dipToBlack:{duration:800,ease:[0,1,0,1]}}}};function fv(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function pv(t,e=cv){return Array.isArray(t)&&t.length>=4?t:e}function mv(t){return"string"==typeof t&&t.trim()?t.trim():"#ffffff"}function vv(t,e){const n=null==t?void 0:t[e];return!1===n||null==n?null:ud(n)?n:{}}function gv(t={}){let e=0;return dv.forEach((n=>{const i=vv(t,n);if(!i)return;const r=fv(null==i?void 0:i.duration);r>e&&(e=r)})),e}function yv(t,e,n,i,r){const o=[];return dv.forEach((s=>{const a=vv(t,s);if(!a)return;const l=function(t,e,n){const i=fv(null==t?void 0:t.duration);return Number.isFinite(n)&&n>0?i>0&&e>0?i*e:n:i}(a,n,i),c=function(t,e,n,i,r){const o={type:"transition",inputs:["__PREVIOUS:0"],options:{filter:t,startTime:n,duration:i,properties:{}}};if("transform"===t){var s,a,l,c;const t=pv(null==e?void 0:e.ease),n=(null==e||null===(s=e.scale)||void 0===s?void 0:s.from)||{x:1,y:1},i=(null==e||null===(a=e.scale)||void 0===a?void 0:a.to)||{x:1,y:1},r=(null==e||null===(l=e.translate)||void 0===l?void 0:l.from)||{x:0,y:0},u=(null==e||null===(c=e.translate)||void 0===c?void 0:c.to)||{x:0,y:0};return o.options.properties.scale={from:n,to:i,ease:t},o.options.properties.translate={from:r,to:u,ease:t},o}if("fadeToColor"===t){const t=pv(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:fv(null==n?void 0:n.from,0),to:fv(null==n?void 0:n.to,1),ease:t},o.options.properties.color=mv((null==e?void 0:e.color)||r),o}if("exposure"===t||"dipToBlack"===t){const t=pv(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:fv(null==n?void 0:n.from,0),to:fv(null==n?void 0:n.to,1),ease:t},o}return null}(s,a,e,l,r);c&&o.push(c)})),o}function bv(t=[]){const e=t.map((t=>{const e=JSON.parse(JSON.stringify(t));return null!=e&&e.options&&(e.options.startTime=0),e}));return JSON.stringify(e)}class kv{#M=null;start(t={}){const e=null==t?void 0:t.shaderGraph;if(!e||"function"!=typeof e.captureTexture)return null;const{baseFilters:n,reverseFilters:i}=function(t={}){const e=function(t={}){if(ud(null==t?void 0:t.transition))return t.transition;if("string"==typeof(null==t?void 0:t.transition))return hv[t.transition]||hv[uv];if(ud(null==t?void 0:t.filters)||ud(null==t?void 0:t.reverseFilters))return{filters:t.filters||{},reverseFilters:t.reverseFilters||{}};if("string"==typeof(null==t?void 0:t.filter)){const e=fv(t.duration)>0?1e3*t.duration:500;return{filters:{[t.filter]:{duration:e,power:{from:0,to:1}}},reverseFilters:{}}}return hv[uv]}(t),n=dd({},(null==e?void 0:e.filters)||{},ud(null==t?void 0:t.filters)?t.filters:{}),i=function(t={}){const e={};return Object.keys(t).forEach((n=>{const i=t[n];if(!1===i)return void(e[n]=!1);const r=JSON.parse(JSON.stringify(ud(i)?i:{}));Object.values(r).forEach((t=>function(t){if(t&&"object"==typeof t&&"from"in t&&"to"in t){const e=t.from;t.from=t.to,t.to=e}}(t))),e[n]=r})),e}(n),r=dd({},(null==e?void 0:e.reverseFilters)||{},ud(null==t?void 0:t.reverseFilters)?t.reverseFilters:{});return{baseFilters:n,reverseFilters:dd({},i,r)}}(t),r=fv(null==t?void 0:t.duration),o=r>0?1e3*r:null,s=gv(n),a=gv(i),l=o&&s>0?o/s:1,c=o&&a>0?o/a:1,u=o||s||500,d=o||a||u,h=mv(null==t?void 0:t.color),f=e.captureTexture(),p=Date.now(),m=yv(n,p,l,o,h);return this.#M={phase:"out",startTime:p,outDurationMs:u,inDurationMs:d,color:h,captureId:f,baseFilters:n,reverseFilters:i,outScale:l,inScale:c,durationOverrideMs:o,outGraph:m,outSignature:bv(m),inGraph:null,inSignature:null},{captureId:f,outDurationMs:u,inDurationMs:d}}beginIncoming(){if(!this.#M)return;const t=Date.now(),e=yv(this.#M.reverseFilters,t,this.#M.inScale,this.#M.durationOverrideMs,this.#M.color);this.#M={...this.#M,phase:"in",startTime:t,inGraph:e,inSignature:bv(e)}}reset(t){var e;t&&"function"==typeof t.disposeTexture&&null!==(e=this.#M)&&void 0!==e&&e.captureId&&t.disposeTexture(this.#M.captureId),this.#M=null}getState(){return this.#M}buildOutgoingGraph(){const t=this.#M;return t&&"out"===t.phase&&Array.isArray(t.outGraph)&&t.outGraph.length?{signature:`transition:out:${t.outSignature||""}`,forceUpdate:!1,graph:t.outGraph}:null}buildIncomingGraph(){const t=this.#M;return t&&"in"===t.phase&&Array.isArray(t.inGraph)&&t.inGraph.length?{signature:`transition:in:${t.inSignature||""}`,forceUpdate:!1,graph:t.inGraph}:null}}let wv;const xv=[/firefox\/(\d+)/,/edg\/(\d+)/,/opr\/(\d+)/,/chrome\/(\d+)/];function _v(){const t=yd&&yd.navigator&&(yd.navigator.userAgent||yd.navigator.platform||yd.navigator.vendor)||"";if(wv&&wv.ua===t)return wv;const e=t.toLowerCase(),n=e.includes("android"),i=e.includes("iphone")||e.includes("ipad")||e.includes("ipod")||e.includes("ios"),r=n||i||e.includes("mobile"),o=!!t&&!r,s=e.includes("firefox/"),a=function(t=""){for(let e=0;e<xv.length;e+=1){const n=xv[e],i=t.match(n);if(!i)continue;const r=Number(i[1]);return Number.isFinite(r)?r:null}if(t.includes("safari/")&&t.includes("version/")){const e=t.match(/version\/(\d+)/);if(!e)return null;const n=Number(e[1]);return Number.isFinite(n)?n:null}return null}(e);return wv={ua:t,lowerUA:e,isAndroid:n,isiOS:i,isMobile:r,isDesktop:o,isFirefox:s,browserMajorVersion:a},wv}function Tv(){return _v().ua}function Iv(){return _v().isAndroid}function Ev(){return _v().isiOS}function Sv(){return _v().isMobile}function Av(){return _v().isDesktop}function Nv(){return _v().isFirefox}function Mv(){return _v().browserMajorVersion}var Fv={getUserAgent:Tv,isAndroid:Iv,isiOS:Ev,isMobile:Sv,isDesktop:Av,isFirefox:Nv,getBrowserMajorVersion:Mv},Ov=Object.freeze({__proto__:null,default:Fv,getBrowserMajorVersion:Mv,getUserAgent:Tv,isAndroid:Iv,isDesktop:Av,isFirefox:Nv,isMobile:Sv,isiOS:Ev});const Cv="Idle",Pv="Playing",Dv="FirstFramePending",Rv="Waiting",Lv="Paused",Bv="Seeking",zv="Resetting";function Wv(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function jv(t,e){return!!Array.isArray(t)&&t.some((t=>(null==t?void 0:t.type)===e))}function Uv(t){const e=Number(t);return!Number.isFinite(e)||e<=0?null:{type:"retarget",options:{frames:Array.from({length:e},(()=>({fitType:"fill"})))},meta:{source:"panAndScan"}}}function $v(t){return Array.isArray(t)?t.filter((t=>{return!("panAndScan"===(null==(e=t)||null===(n=e.meta)||void 0===n?void 0:n.source));var e,n})):[]}const qv=2073600;function Vv(t,e){const n=Number(t);return Number.isFinite(n)&&n>0?n:e}function Gv(t,e){if(null==t)return e;const n=Number(t);return Number.isFinite(n)?n:e}var Hv=new WeakMap,Kv=new WeakMap,Xv=new WeakMap,Yv=new WeakMap,Qv=new WeakMap,Jv=new WeakMap,Zv=new WeakMap,tg=new WeakMap,eg=new WeakMap,ng=new WeakMap,ig=new WeakMap,rg=new WeakMap,og=new WeakMap,sg=new WeakMap,ag=new WeakMap,lg=new WeakMap,cg=new WeakMap,ug=new WeakMap,dg=new WeakMap,hg=new WeakMap,fg=new WeakMap,pg=new WeakMap,mg=new WeakMap,vg=new WeakMap,gg=new WeakMap,yg=new WeakMap,bg=new WeakMap,kg=new WeakMap,wg=new WeakMap,xg=new WeakMap,_g=new WeakMap,Tg=new WeakMap,Ig=new WeakMap,Eg=new WeakMap,Sg=new WeakSet;class Ag extends md{static get pipelineNodeId(){return"ekoplayer-render-pipeline"}get defaults(){return{defaultRenderParams:void 0,resourceLimits:{enabled:!0,maxCanvasPixels:qv,maxDevicePixelRatio:0,renderScale:1,transitionMinFrameIntervalMs:33}}}constructor(...t){super(...t),U(this,Sg),W(this,Hv,void 0),W(this,Kv,void 0),W(this,Xv,void 0),W(this,Yv,void 0),W(this,Qv,void 0),W(this,Jv,void 0),W(this,Zv,void 0),W(this,tg,void 0),W(this,eg,void 0),W(this,ng,void 0),W(this,ig,void 0),W(this,rg,void 0),W(this,og,null),W(this,sg,null),W(this,ag,void 0),W(this,lg,void 0),W(this,cg,void 0),W(this,ug,[]),W(this,dg,[]),W(this,hg,null),W(this,fg,null),W(this,pg,null),W(this,mg,null),W(this,vg,null),W(this,gg,null),W(this,yg,new Map),W(this,bg,null),W(this,kg,null),W(this,wg,!1),W(this,xg,!1),W(this,_g,!1),W(this,Tg,!1),W(this,Ig,[]),W(this,Eg,null);const[e,n,i]=t;j(Hv,this,e),j(Kv,this,n),j(Xv,this,i),z(Hv,this)&&"function"==typeof z(Hv,this).enableFirstFrameRenderedGate&&z(Hv,this).enableFirstFrameRenderedGate(),j(rg,this,new lv),j(ag,this,new kv),j(lg,this,null),j(cg,this,null),j(pg,this,null),j(Yv,this,(t=>L(Sg,this,fy).call(this,t))),z(Hv,this)&&"function"==typeof z(Hv,this).on&&(z(Hv,this).on(kd.VISUAL_FRAMES_AVAILABLE,z(Yv,this)),j(Qv,this,(()=>{var t,e,n,i;L(Sg,this,Cg).call(this),L(Sg,this,ly).call(this,0),j(dg,this,[]),j(hg,this,null),j(og,this,null),j(sg,this,null),L(Sg,this,Jg).call(this),j(bg,this,null);(null===(t=z(ag,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t))||null===(n=z(ag,this))||void 0===n||null===(i=n.reset)||void 0===i||i.call(n,z(lg,this))})),z(Hv,this).on(kd.TIMELINE_SEEKING,z(Qv,this)),j(Jv,this,((t={})=>{"switch"===(null==t?void 0:t.reason)||"reset"===(null==t?void 0:t.reason)?L(Sg,this,Mg).call(this):L(Sg,this,Ng).call(this),L(Sg,this,Pg).call(this)})),z(Hv,this).on(kd.TIMELINE_RESET,z(Jv,this)),j(eg,this,(()=>L(Sg,this,ny).call(this))),z(Hv,this).on(kd.TIMELINE_TIME_UPDATE,z(eg,this)),j(Zv,this,(()=>{L(Sg,this,py).call(this)&&z(fg,this)&&L(Sg,this,fy).call(this,z(fg,this))})),z(Hv,this).on(kd.TIMELINE_STATE_CHANGE,z(Zv,this))),z(Kv,this)&&"function"==typeof z(Kv,this).on&&(j(ng,this,(()=>{const t=z(fg,this);j(Tg,this,!0),L(Sg,this,Ng).call(this),j(fg,this,t)})),z(Kv,this).on(kd.CANVAS_WEBGL_CONTEXT_LOST,z(ng,this)),j(ig,this,(()=>{var t;const e=null===(t=z(Kv,this))||void 0===t?void 0:t.gl;if(!e||"function"==typeof e.isContextLost&&e.isContextLost())return void j(Tg,this,!0);const n=z(fg,this);j(Tg,this,!1),L(Sg,this,Ng).call(this),j(fg,this,n),n&&L(Sg,this,py).call(this)&&L(Sg,this,fy).call(this,n)})),z(Kv,this).on(kd.CANVAS_WEBGL_CONTEXT_RESTORED,z(ig,this))),j(tg,this,(()=>{j(hg,this,null),z(fg,this)&&L(Sg,this,py).call(this)&&L(Sg,this,fy).call(this,z(fg,this))})),z(Xv,this)&&"function"==typeof z(Xv,this).on&&z(Xv,this).on(kd.CONTAINER_RESIZE,z(tg,this))}get name(){return"Renderer"}onDispose(){z(Hv,this)&&z(Yv,this)&&"function"==typeof z(Hv,this).off&&z(Hv,this).off(kd.VISUAL_FRAMES_AVAILABLE,z(Yv,this)),z(Hv,this)&&z(Qv,this)&&"function"==typeof z(Hv,this).off&&z(Hv,this).off(kd.TIMELINE_SEEKING,z(Qv,this)),z(Hv,this)&&z(Jv,this)&&"function"==typeof z(Hv,this).off&&z(Hv,this).off(kd.TIMELINE_RESET,z(Jv,this)),z(Hv,this)&&z(eg,this)&&"function"==typeof z(Hv,this).off&&z(Hv,this).off(kd.TIMELINE_TIME_UPDATE,z(eg,this)),z(Hv,this)&&z(Zv,this)&&"function"==typeof z(Hv,this).off&&z(Hv,this).off(kd.TIMELINE_STATE_CHANGE,z(Zv,this)),z(Xv,this)&&z(tg,this)&&"function"==typeof z(Xv,this).off&&z(Xv,this).off(kd.CONTAINER_RESIZE,z(tg,this)),z(Kv,this)&&z(ng,this)&&"function"==typeof z(Kv,this).off&&z(Kv,this).off(kd.CANVAS_WEBGL_CONTEXT_LOST,z(ng,this)),z(Kv,this)&&z(ig,this)&&"function"==typeof z(Kv,this).off&&z(Kv,this).off(kd.CANVAS_WEBGL_CONTEXT_RESTORED,z(ig,this)),L(Sg,this,Ng).call(this),j(Yv,this,null),j(Qv,this,null),j(Jv,this,null),j(eg,this,null),j(Zv,this,null),j(tg,this,null),j(ng,this,null),j(ig,this,null),j(rg,this,null),j(ag,this,null),j(yg,this,null),j(bg,this,null),j(Kv,this,null),j(Xv,this,null),j(Hv,this,null)}startTransition(t={}){var e,n;const i=null===(e=z(Kv,this))||void 0===e?void 0:e.element,r=null===(n=z(Kv,this))||void 0===n?void 0:n.gl;if(!i||!r)return null;if(z(Tg,this)||"function"==typeof r.isContextLost&&r.isContextLost())return j(Tg,this,!0),null;if(L(Sg,this,Rg).call(this,i),!z(lg,this))return null;const o=z(ag,this).start({shaderGraph:z(lg,this),duration:null==t?void 0:t.duration,filter:null==t?void 0:t.filter,color:null==t?void 0:t.color,filters:null==t?void 0:t.filters,reverseFilters:null==t?void 0:t.reverseFilters,transition:null==t?void 0:t.transition});return j(pg,this,z(fg,this)||null),L(Sg,this,uy).call(this),o}beginTransitionIn(t={}){var e,n;null!==(e=z(ag,this))&&void 0!==e&&null!==(n=e.beginIncoming)&&void 0!==n&&n.call(e,t),j(pg,this,null),L(Sg,this,uy).call(this)}resetTransition(){var t,e;null!==(t=z(ag,this))&&void 0!==t&&null!==(e=t.reset)&&void 0!==e&&e.call(t,z(lg,this)),j(pg,this,null),L(Sg,this,dy).call(this)}}function Ng(){if(L(Sg,this,Cg).call(this),z(ag,this)&&"function"==typeof z(ag,this).reset&&z(ag,this).reset(z(lg,this)),L(Sg,this,ly).call(this,0),z(lg,this)&&"function"==typeof z(lg,this).dispose)try{z(lg,this).dispose()}catch(t){}j(lg,this,null),j(cg,this,null),j(ug,this,[]),j(dg,this,[]),j(wg,this,!1),j(hg,this,null),j(og,this,null),j(sg,this,null),j(fg,this,null),j(pg,this,null),L(Sg,this,dy).call(this),L(Sg,this,Jg).call(this),j(bg,this,null)}function Mg(){L(Sg,this,Cg).call(this),z(ag,this)&&"function"==typeof z(ag,this).reset&&z(ag,this).reset(z(lg,this)),L(Sg,this,ly).call(this,0),j(ug,this,[]),j(dg,this,[]),j(hg,this,null),j(og,this,null),j(sg,this,null),j(fg,this,null),j(pg,this,null),L(Sg,this,dy).call(this),L(Sg,this,Jg).call(this),j(bg,this,null),j(kg,this,null)}function Fg(){const t="function"==typeof yd.requestAnimationFrame?yd.requestAnimationFrame.bind(yd):null,e="function"==typeof yd.cancelAnimationFrame?yd.cancelAnimationFrame.bind(yd):null;return t?{schedule:e=>t(e),cancel(t){"number"==typeof t&&e&&e(t)}}:null}function Og(t){j(Ig,this,z(Ig,this).filter((e=>e!==t))),z(Ig,this).length||j(Eg,this,null)}function Cg(){z(Eg,this)&&z(Ig,this).forEach((t=>z(Eg,this).call(this,t))),j(Ig,this,[]),j(Eg,this,null),j(_g,this,!1)}function Pg(){L(Sg,this,Cg).call(this),j(xg,this,!1)}function Dg(){if(z(xg,this)||z(_g,this))return;const t=L(Sg,this,Fg).call(this);if(!t)return;const{schedule:e,cancel:n}=t;let i;j(Eg,this,n),j(_g,this,!0),i=e((()=>{let t;L(Sg,this,Og).call(this,i),t=e((()=>{L(Sg,this,Og).call(this,t),j(_g,this,!1),z(xg,this)||(j(xg,this,!0),z(Hv,this)&&"function"==typeof z(Hv,this).notifyFirstFrameRendered&&z(Hv,this).notifyFirstFrameRendered())})),z(Ig,this).push(t)})),z(Ig,this).push(i)}function Rg(t){if(z(lg,this)||!t)return;const e=this,n={dest:t,src:(t,n)=>{j(cg,e,n)}};j(lg,e,new vm(n,{userWillCallRender:!0,glOptions:{contextType:"webgl2"},performanceToggles:{useCanvasSizedFilterTargets:!0}})),z(lg,e)&&"function"==typeof z(lg,e).addNodes&&z(lg,e).addNodes({[pe.pipelineNodeId]:{type:"composite",options:{graph:[]}}})}function Lg(t){var e;if("null"===(null==t?void 0:t.message))return!0;const n=null===(e=z(Kv,this))||void 0===e?void 0:e.gl;return!(!n||"function"!=typeof n.isContextLost||!n.isContextLost())}function Bg(t,e,n){const i=e||z(fg,this)||null;if(L(Sg,this,Ng).call(this),j(fg,this,i),!n)return this.log.warn("Shader graph render failed; rebuilding graph once.",t),void L(Sg,this,fy).call(this,i,!0);this.log.warn("Shader graph render is still unavailable after rebuild; deferring until the next render pass.",t)}function zg(){var t;const e=null===(t=this.settings)||void 0===t?void 0:t.resourceLimits;return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function Wg(){const t=L(Sg,this,zg).call(this).enabled;return!0===t||!1!==t&&Ev()}function jg(){if(!L(Sg,this,Wg).call(this))return 0;const t=Gv(L(Sg,this,zg).call(this).transitionMinFrameIntervalMs,33);return Number.isFinite(t)&&t>0?t:0}function Ug(t,e,n={}){const i=!0===(null==n?void 0:n.useDevicePixelRatio),r=L(Sg,this,Wg).call(this),o=i?Vv(null==yd?void 0:yd.devicePixelRatio,1):1;let s=o,a=0;if(r){const t=L(Sg,this,zg).call(this);a=Gv(t.maxCanvasPixels,qv);const e=Gv(t.maxDevicePixelRatio,0);s=Vv(t.renderScale,1)*(e>0?Math.min(o,e):o)}let l=Math.max(1,Math.round(t*s)),c=Math.max(1,Math.round(e*s));if(r&&a>0){const t=l*c;if(t>a){const e=Math.sqrt(a/t);l=Math.max(1,Math.floor(l*e)),c=Math.max(1,Math.floor(c*e))}}return{width:l,height:c}}function $g(t=[],e={}){var n;const i=null===(n=z(Kv,this))||void 0===n?void 0:n.element,r=z(cg,this);if(!i||"function"!=typeof r)return!1;let o=0,s=0;const a=!0===(null==e?void 0:e.useViewportSize);if(a){var l,c,u,d,h,f;const t=Number(null!==(l=null===(c=z(Xv,this))||void 0===c?void 0:c.containerWidth)&&void 0!==l?l:null===(u=z(Xv,this))||void 0===u?void 0:u.width),e=Number(null!==(d=null===(h=z(Xv,this))||void 0===h?void 0:h.containerHeight)&&void 0!==d?d:null===(f=z(Xv,this))||void 0===f?void 0:f.height);if(Number.isFinite(t)&&Number.isFinite(e)&&t>0&&e>0)o=Math.round(t),s=Math.round(e);else{const t=Number(i.clientWidth),e=Number(i.clientHeight);Number.isFinite(t)&&Number.isFinite(e)&&t>0&&e>0&&(o=Math.round(t),s=Math.round(e))}}if(!(o>0&&s>0)){if(!Array.isArray(t)||!t.length)return;for(let e=0;e<t.length;e+=1){var p;const n=null===(p=t[e])||void 0===p?void 0:p.frame,i=Number((null==n?void 0:n.displayWidth)||(null==n?void 0:n.codedWidth)||(null==n?void 0:n.videoWidth)||(null==n?void 0:n.naturalWidth)||(null==n?void 0:n.width)),r=Number((null==n?void 0:n.displayHeight)||(null==n?void 0:n.codedHeight)||(null==n?void 0:n.videoHeight)||(null==n?void 0:n.naturalHeight)||(null==n?void 0:n.height));!Number.isFinite(i)||!Number.isFinite(r)||i<=0||r<=0||(i>o&&(o=i),r>s&&(s=r))}}if(!(o>0&&s>0))return!1;const m=L(Sg,this,Ug).call(this,o,s,{useDevicePixelRatio:a}),v=m.width,g=m.height,y=z(hg,this);return!(y&&y.width===v&&y.height===g||(j(hg,this,{width:v,height:g}),r(null,null,v,g),0))}function qg(t){const e=null==t?void 0:t.nodeId,n=null==t?void 0:t.trackId,i=null==t?void 0:t.segmentId,r=null==t?void 0:t.presentationTime;return e&&n&&i&&Number.isFinite(r)?`${e}:${n}:${i}@${r}`:null}function Vg(t,e,n){const i=Number.isFinite(null==t?void 0:t.duration)&&t.duration>0?t.duration:void 0;let r;if(i&&Number.isFinite(null==t?void 0:t.offset)){const n=(e-t.offset)/i;r=n<0?0:n>1?1:n}const o=L(Sg,this,Gg).call(this,t),s=L(Sg,this,Hg).call(this,o);return ov.getRenderTiming({type:o,timing:{duration:i,normalizedTime:r},timelineTime:e,active:t,renderNodeParams:n,state:s})}function Gg(t){return ov.normalizeType(null==t?void 0:t.type)||ov.defaultType}function Hg(t){if(!t||!z(yg,this))return null;let e=z(yg,this).get(t);return e||(e={},z(yg,this).set(t,e)),e}function Kg(){var t,e,n,i,r,o,s,a,l,c,u;const d=Number(null!==(t=null===(e=z(Xv,this))||void 0===e?void 0:e.containerWidth)&&void 0!==t?t:null===(n=z(Xv,this))||void 0===n?void 0:n.width),h=Number(null!==(i=null===(r=z(Xv,this))||void 0===r?void 0:r.containerHeight)&&void 0!==i?i:null===(o=z(Xv,this))||void 0===o?void 0:o.height);if(Number.isFinite(d)&&Number.isFinite(h)&&d>0&&h>0)return{width:Math.round(d),height:Math.round(h)};const f=null===(s=z(Kv,this))||void 0===s?void 0:s.element,p=Number(null==f?void 0:f.clientWidth),m=Number(null==f?void 0:f.clientHeight);if(Number.isFinite(p)&&Number.isFinite(m)&&p>0&&m>0)return{width:Math.round(p),height:Math.round(m)};const v=Number(null!==(a=null==f?void 0:f.width)&&void 0!==a?a:null===(l=z(hg,this))||void 0===l?void 0:l.width),g=Number(null!==(c=null==f?void 0:f.height)&&void 0!==c?c:null===(u=z(hg,this))||void 0===u?void 0:u.height);return Number.isFinite(v)&&Number.isFinite(g)&&v>0&&g>0?{width:Math.round(v),height:Math.round(g)}:null}function Xg(t){const e=L(Sg,this,Hg).call(this,t);return e&&"object"==typeof e&&(e.requestRender=()=>L(Sg,this,Yg).call(this),e.viewportSize=L(Sg,this,Kg).call(this)),e}function Yg(){z(wg,this)||(j(wg,this,!0),Promise.resolve().then((()=>{j(wg,this,!1),z(fg,this)&&L(Sg,this,py).call(this)&&L(Sg,this,fy).call(this,z(fg,this))})))}function Qg(t){if(!t||!z(yg,this))return;const e=z(yg,this).get(t);e&&ov.resetRenderState(t,e),z(yg,this).delete(t)}function Jg(){z(yg,this)&&(ov.resetAllRenderStates(z(yg,this)),z(yg,this).clear())}function Zg(t,e,n,i){const r=L(Sg,this,Gg).call(this,t);z(bg,this)&&z(bg,this)!==r&&L(Sg,this,Qg).call(this,z(bg,this)),j(bg,this,r);const o=L(Sg,this,Xg).call(this,r);return ov.prepareRenderFrames({type:r,frames:e,timelineTime:n,timeline:z(Hv,this),active:t,renderNodeParams:i,state:o})}function ty(t){var e;return null!=t&&t.params&&"object"==typeof t.params?t.params:!t&&null!==(e=this.settings)&&void 0!==e&&e.defaultRenderParams&&"object"==typeof this.settings.defaultRenderParams?this.settings.defaultRenderParams:{}}function ey(t){return t?String(t.renderPlacementId||t.type||"unknown"):"default"}function ny(){if(!z(Hv,this)||!z(fg,this))return;const t=z(Hv,this).currentTime,e=z(Hv,this).getActiveRenderPlacement(t),n=L(Sg,this,ey).call(this,e);n!==z(kg,this)&&(j(kg,this,n),L(Sg,this,fy).call(this,{...z(fg,this),time:t}))}function iy(t){return!t||"object"!=typeof t||!Object.prototype.hasOwnProperty.call(t,"panAndScan")||!1!==t.panAndScan}function ry(t,e){const n=L(Sg,this,ty).call(this,t),i=null==n?void 0:n.stages;let r=Wv(null==i?void 0:i.pre),o=Wv(null==i?void 0:i.post);const s=L(Sg,this,iy).call(this,n),a=L(Sg,this,Gg).call(this,t),l=jv(r,"retarget")||jv(o,"retarget");if(s&&!l){const i=ov.getPanAndScanTarget(a,{frameCount:Array.isArray(e)?e.length:0,active:t,renderNodeParams:n});if("pre"===i){const t=Uv(Array.isArray(e)?e.length:0);t&&(r=[t,...r])}else if("post"===i){const t=Uv(1);t&&(o=[...o,t])}}else s||(r=$v(r),o=$v(o));return{preStages:r,postStages:o,renderNodeParams:n}}function oy(t,e,n,i,r){const o=r||L(Sg,this,Vg).call(this,t,n,i),s=L(Sg,this,ry).call(this,t,e),a=L(Sg,this,Gg).call(this,t),l=L(Sg,this,Xg).call(this,a);return z(rg,this).build({layoutType:null==t?void 0:t.type,frames:e,preStages:s.preStages,postStages:s.postStages,normalizedTime:o.normalizedTime,renderNodeDuration:o.duration,renderNodeParams:s.renderNodeParams,renderNodeState:l,timelineTime:n})}function sy(){var t,e;const n=null===(t=z(ag,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t);return"out"===(null==n?void 0:n.phase)?z(ag,this).buildOutgoingGraph():"in"===(null==n?void 0:n.phase)?z(ag,this).buildIncomingGraph():null}function ay(t,e,n,i){const r=n||e!==z(og,this),o=r||i;return r&&z(lg,this)&&"function"==typeof z(lg,this).updateOptions&&(z(lg,this).updateOptions(pe.pipelineNodeId,{graph:t}),j(og,this,e)),z(lg,this)&&"function"==typeof z(lg,this).selectNode&&z(sg,this)!==pe.pipelineNodeId&&(z(lg,this).selectNode(pe.pipelineNodeId),j(sg,this,pe.pipelineNodeId)),!(!o||!z(lg,this)||"function"!=typeof z(lg,this).render||(z(lg,this).render({noRaf:!0}),0))}function ly(t){if(!Array.isArray(z(ug,this))||!z(ug,this).length)return;const e=Number.isFinite(t)?Math.max(0,t):0;if(!(z(ug,this).length<=e)){for(let t=e;t<z(ug,this).length;t+=1){const e=z(ug,this)[t];if(e&&z(lg,this)&&"function"==typeof z(lg,this).releaseTexture)try{z(lg,this).releaseTexture(e)}catch(t){}}z(ug,this).length=e,z(dg,this).length=e}}function cy(t=[]){if(!z(lg,this)||"function"!=typeof z(lg,this).addTexture)return{didUpdate:!1,hasUploadFailure:!1,ready:!1};if("function"==typeof z(lg,this).isContextUnavailable&&z(lg,this).isContextUnavailable())return{didUpdate:!1,hasUploadFailure:!1,ready:!1};if(!Array.isArray(t)||!t.length)return L(Sg,this,ly).call(this,0),{didUpdate:!1,hasUploadFailure:!1,ready:!1};L(Sg,this,ly).call(this,t.length);let e=!1,n=!1,i=!0;for(let o=0;o<t.length;o+=1){var r;z(ug,this)[o]||"function"!=typeof z(lg,this).addTexture||(z(ug,this)[o]=z(lg,this).addTexture(null,"frame",o));const s=L(Sg,this,qg).call(this,t[o]),a=null===(r=t[o])||void 0===r?void 0:r.frame;if(z(ug,this)[o]&&a){if(!s||s!==z(dg,this)[o])try{z(ug,this)[o].fill(a),z(dg,this)[o]=s,e=!0}catch(t){i=!1,n=!0,z(dg,this)[o]=null}}else i=!1}return{didUpdate:e,hasUploadFailure:n,ready:i}}function uy(){if(z(mg,this))return;const t="function"==typeof yd.requestAnimationFrame?t=>yd.requestAnimationFrame(t):t=>setTimeout(t,16),e="function"==typeof yd.cancelAnimationFrame?t=>yd.cancelAnimationFrame(t):clearTimeout;j(vg,this,e);const n=()=>{var e,i;if(null!==(e=z(ag,this))&&void 0!==e&&null!==(i=e.getState)&&void 0!==i&&i.call(e)){if(z(fg,this)){const t=L(Sg,this,jg).call(this),e=Date.now();(!t||!z(gg,this)||e-z(gg,this)>=t)&&(j(gg,this,e),L(Sg,this,fy).call(this,z(fg,this)))}j(mg,this,t(n))}else j(mg,this,null)};j(mg,this,t(n))}function dy(){z(mg,this)&&z(vg,this)&&z(vg,this).call(this,z(mg,this)),j(mg,this,null),j(vg,this,null),j(gg,this,null)}function hy(t){var e,n;const i=null===(e=z(ag,this))||void 0===e||null===(n=e.getState)||void 0===n?void 0:n.call(e);return"out"===(null==i?void 0:i.phase)&&z(pg,this)?z(pg,this):t}function fy(t={},e=!1){try{var n,i;t&&j(fg,this,t);const e=null===(n=z(Kv,this))||void 0===n?void 0:n.element,r=null===(i=z(Kv,this))||void 0===i?void 0:i.gl;if(!e||!r)return;if(z(Tg,this)||"function"==typeof r.isContextLost&&r.isContextLost())return void j(Tg,this,!0);if(!L(Sg,this,py).call(this))return;const o=L(Sg,this,hy).call(this,t),s=Number.isFinite(null==o?void 0:o.time)?o.time:void 0;if(!Number.isFinite(s))return;if(L(Sg,this,Rg).call(this,e),!z(lg,this))return;const a=z(Hv,this)&&"function"==typeof z(Hv,this).getActiveRenderPlacement?z(Hv,this).getActiveRenderPlacement(s):void 0,l=L(Sg,this,ey).call(this,a);l!==z(kg,this)&&j(kg,this,l);const c=Array.isArray(null==o?void 0:o.frames)?o.frames:[],u=L(Sg,this,ty).call(this,a),d=L(Sg,this,iy).call(this,u),h=L(Sg,this,Zg).call(this,a,c,s,u),f=L(Sg,this,Vg).call(this,a,s,u),p=L(Sg,this,$g).call(this,h,{useViewportSize:d}),m=L(Sg,this,cy).call(this,h),v=m.didUpdate;if(h.length>0&&!m.ready)return void(m.hasUploadFailure&&this.log.warn("Skipping render because one or more input textures could not be uploaded."));const g=L(Sg,this,oy).call(this,a,h,s,u,f),y=L(Sg,this,sy).call(this);let b=g.graph,k=g.signature,w=!!g.isDynamic;y&&Array.isArray(y.graph)&&y.graph.length&&(b=b.concat(y.graph),k=`${k}|${y.signature||"transition"}`,w=w||!!y.forceUpdate);const x=p||v||w||y&&Array.isArray(y.graph)&&y.graph.length;L(Sg,this,ay).call(this,b,k,w,x)&&h.length>0&&L(Sg,this,Dg).call(this)}catch(n){if(L(Sg,this,Lg).call(this,n))return void L(Sg,this,Bg).call(this,n,t,e);throw n}}function py(){var t;const e=null===(t=z(Hv,this))||void 0===t?void 0:t.state;return e===Cv||e===Dv||e===Pv||e===Lv}function my(t){return"number"==typeof t&&Number.isFinite(t)&&t>0}function vy(t){return t&&"resource"===t.entryType&&t.transferSize>0&&t.duration>0&&t.responseEnd>=t.requestStart}function gy(t){return Array.isArray(t)&&0!==t.length?t.reduce(((t,e)=>t+e),0)/t.length:NaN}pe=Ag;var yy=new WeakMap,by=new WeakMap,ky=new WeakMap,wy=new WeakMap,xy=new WeakSet;class _y extends md{get name(){return"DownloadSpeedGuesstimator"}get defaults(){return{persistentStorage:{key:"ekoDownloadSpeedKbps",ttl:-1},priorities:[["resourceTiming","downlink","persistentValue"],["resourceTiming","downlink"],["resourceTiming","persistentValue","ua"],["resourceTiming","ua","defaultKbps"],["downlink","persistentValue"],["downlink"],["persistentValue"],["connectionType"],["ua"],["defaultKbps"]],defaultKbps:2500,connectionType:{"slow-2g":50,"2g":70,"3g":700,"4g":3500,bluetooth:750,cellular:750,ethernet:3500,wifi:2500,wimax:2500,none:0},ua:{desktop:2500,ios:2500,android:2500}}}constructor(...t){super(...t),U(this,xy),W(this,yy,void 0),W(this,by,void 0),W(this,ky,void 0),W(this,wy,void 0),j(yy,this,!!(yd&&yd.navigator&&yd.navigator.connection)),j(by,this,!(!yd||!yd.performance||"function"!=typeof yd.performance.getEntriesByType)),j(ky,this,L(xy,this,Iy).call(this)),j(wy,this,L(xy,this,My).call(this))}guesstimate(){const t=L(xy,this,Oy).call(this);this.log.debug("[guesstimate] Data:",t);const e=L(xy,this,Fy).call(this,t),n=my(e)?e:t.defaultKbps;return L(xy,this,Ey).call(this,n),this.log.info(`[guesstimate] Result: ${n} kbps`),n}update(t){my(t)&&L(xy,this,Ey).call(this,t)}onDispose(){j(ky,this,void 0),j(wy,this,void 0)}}function Ty(){return Math.round(Date.now()/1e3)}function Iy(){try{if(!yd||!yd.localStorage||"function"!=typeof yd.localStorage.getItem)return}catch(t){return}const t=this.settings.persistentStorage.key,e=yd.localStorage.getItem(t);if(e)try{const t=JSON.parse(e),n=this.settings.persistentStorage.ttl,i=L(xy,this,Ty).call(this)-t.timestamp;if("number"==typeof n&&n>=0&&i>n)return null;if(!my(t.value))return;return t.value}catch(t){return}}function Ey(t){if(!my(t))return;try{if(!yd||!yd.localStorage||"function"!=typeof yd.localStorage.setItem)return}catch(t){return}const e=this.settings.persistentStorage.key,n=JSON.stringify({value:t,timestamp:L(xy,this,Ty).call(this)});try{yd.localStorage.setItem(e,n),j(ky,this,t)}catch(t){}}function Sy(){return yd&&yd.performance&&"function"==typeof yd.performance.getEntriesByType?gy(yd.performance.getEntriesByType("resource").filter(vy).map((t=>8*t.transferSize/t.duration))):NaN}function Ay(){if(!yd||!yd.navigator||!yd.navigator.connection)return NaN;const t=yd.navigator.connection.downlink;return my(t)?1e3*t:NaN}function Ny(){if(!z(yy,this))return NaN;const t=yd.navigator.connection,e=t.effectiveType||t.type,n=this.settings.connectionType||{};return e&&Object.prototype.hasOwnProperty.call(n,e)?n[e]:NaN}function My(){const t=this.settings.ua||{};return Iv()?t.android:Ev()?t.ios:t.desktop}function Fy(t){const e=Array.isArray(this.settings.priorities)?this.settings.priorities:[];for(let n=0;n<e.length;n+=1){const i=e[n];if(!Array.isArray(i)||0===i.length)continue;const r=i.map((e=>t[e])).filter((t=>my(t)));if(r.length===i.length)return this.log.debug("[#selectFromPriorities] Selected from priorities:",i,"with values:",r),gy(r)}return NaN}function Oy(){const t=this.settings.testOverrides||{},e=my(t.resourceTiming)?t.resourceTiming:L(xy,this,Sy).call(this),n=my(t.downlink)?t.downlink:L(xy,this,Ay).call(this),i=my(t.persistentValue)?t.persistentValue:z(ky,this),r=my(t.connectionType)?t.connectionType:L(xy,this,Ny).call(this),o=my(t.ua)?t.ua:z(wy,this);return{defaultKbps:this.settings.defaultKbps,resourceTiming:e,downlink:n,connectionType:r,persistentValue:i,ua:o}}const Cy=new cd;function Py(t){return"string"!=typeof t||0===t.length?[]:t.split(".").filter((t=>t.length>0))}function Dy(t){if("string"!=typeof t)return!1;if(0===t.length)return!1;const e=Number(t);return Number.isInteger(e)&&String(e)===t}function Ry(t){return null!==t&&"object"==typeof t}function Ly(t,e,n){const i=Py(e);if(0===i.length)return void 0===t?n:t;let r=t;for(let t=0;t<i.length;t+=1){if(null==r)return n;if(r=r[i[t]],void 0===r)return n}return void 0===r?n:r}function By(t,e,n){if(!Ry(t))return t;const i=Py(e);if(0===i.length)return t;let r=t;for(let t=0;t<i.length;t+=1){const e=i[t];if(t===i.length-1){r[e]=n;break}Ry(r[e])||(r[e]=Dy(i[t+1])?[]:{}),r=r[e]}return t}const zy={get:(t,e)=>yd&&yd.eko?Ly(yd.eko,t,e):e,set(t,e){if(yd)return yd.eko&&"object"==typeof yd.eko||(yd.eko={}),By(yd.eko,t,e),yd.eko}},Wy=yd&&yd.performance,jy=Wy&&"function"==typeof Wy.now?()=>Wy.now():()=>Date.now();function Uy(){return"undefined"==typeof AbortController?null:new AbortController}function $y(){const t=new Error("The operation was aborted");return t.name="AbortError",t.code="ABORT_ERR",t}function qy(t,e){return!(!e||!e.aborted)||!!t&&("AbortError"===t.name||"ABORT_ERR"===t.code||20===t.code)}const Vy=2,Gy=100,Hy=2,Ky="runtime.downloadSpeedSamples",Xy=ld("download","warn");function Yy(t){return new Promise((e=>{setTimeout(e,t)}))}function Qy(t){return t>=500}function Jy(t){if(!t||!t.headers||"function"!=typeof t.headers.get)return 0;const e=t.headers.get("content-length");if(!e)return 0;const n=Number(e);return Number.isNaN(n)||n<0?0:n}function Zy(t,e,n,i,r,o){const s={bytes:t,durationMs:e,kbps:e>0?8*t/e:0,startTime:n,endTime:i,url:o};try{let t=zy.get(r);t||(t=[],zy.set(r,t)),t.push(s)}catch(t){}return s}async function tb(t,e={}){const{method:n="GET",headers:i,body:r,retries:o=Vy,retryDelay:s=Gy,backoffFactor:a=Hy,samplesTargetPath:l=Ky,fetch:c,loglevel:u="warn",cache:d,signal:h,onProgress:f,returnType:p="default"}=e;Xy.setLevel(u);const m=function(t){if(t)return t;if(yd&&"function"==typeof yd.fetch)return yd.fetch.bind(yd);throw new Error("fetch is not available in this environment")}(c);let v=0,g=s;for(;;){if(h&&h.aborted)throw $y();const e=jy();try{const s=await m(t,{method:n,headers:i,body:r,cache:d,mode:"cors",signal:h});if(h&&h.aborted)throw $y();if(!s.ok){if(v<o&&Qy(s.status)){v+=1,Xy.warn(`[${t}] Download attempt #${v} failed with status ${s.status}, retrying in ${g}ms...`),await Yy(g),g*=a;continue}Xy.error(`[${t}] Download attempt #${v} failed with status ${s.status}, no more retries.`);const e=new Error(`Download failed with status ${s.status}`);throw e.status=s.status,e}let c=jy();const u=Jy(s),y="arrayBuffer"===p||"bytes"===p,b=y&&"function"==typeof f;let k,w,x,_,T,I=0;if(y&&s.body&&"function"==typeof s.body.getReader&&b){const t=s.body.getReader(),e=[];for(;;){if(h&&h.aborted)throw $y();const{done:n,value:i}=await t.read();if(n)break;if(i&&i.length){const t=jy();Number.isFinite(_)||(_=t),T=t,e.push(i),I+=i.length,f({loaded:I,total:u||void 0,chunk:i})}}k=new Uint8Array(I);let n=0;e.forEach((t=>{k.set(t,n),n+=t.length})),c=jy()}else if(y){const t=await s.arrayBuffer();k=new Uint8Array(t),I=k.length,c=jy()}else"text"===p?(w=await s.text(),c=jy()):"json"===p&&(x=await s.json(),c=jy());if(h&&h.aborted)throw $y();const E=y?k?k.length:I:("text"===p&&"string"==typeof w?w.length:0)||("json"===p&&x?JSON.stringify(x).length:0),S=u||E||0;let A=e,N=c;Number.isFinite(_)&&(A=_,Number.isFinite(T)&&(N=Math.max(T,c))),(!Number.isFinite(A)||!Number.isFinite(N)||N<A)&&(A=e,N=c);const M=Math.max(0,N-A),F=Zy(S,M,A,N,l,t);try{Cy.trigger("download:sample",F)}catch(t){}const O={response:s,bytes:S,durationMs:M,kbps:F.kbps,startTime:F.startTime,endTime:F.endTime};if("default"===p)return O;if("arrayBuffer"===p||"bytes"===p){const t=k||new Uint8Array(await s.arrayBuffer());return"arrayBuffer"===p?t.buffer:t}return"text"===p?w:"json"===p?x:O}catch(e){if(qy(e,h))throw"AbortError"===e.name?e:$y();if(!(v<o)||e.status&&!Qy(e.status))throw Xy.error(`[${t}] Download attempt #${v} failed with error ${e}, no more retries.`),e;v+=1,Xy.warn(`[${t}] Download attempt #${v} failed with error ${e}, retrying in ${g}ms...`),await Yy(g),g*=a}}}const eb={disabledTracks:{default:["audio"],targetPaths:["NodeRepository.disabledTracks"]},muted:{default:!1,targetPaths:["AudioPlaybackManager.muted"]},volume:{default:1,targetPaths:["AudioPlaybackManager.volume"]},encodeProfile:{default:null,targetPaths:["AssetsDeliveryService.profile"]},forceVideoCodec:{default:void 0,targetPaths:["NodeRepository.forceVideoCodec"]},forceImageFallback:{default:!1,targetPaths:["NodeRepository.forceImageFallback"]},mediaHostRewriteMap:{default:{"storageeko.s3.amazonaws.com":"https://storage.eko.com","studioz-post.s3.amazonaws.com":"https://studioz-post.eko.com"},targetPaths:["NodeRepository.mediaHostRewriteMap"]},playbackRate:{default:1,targetPaths:["PlaybackClock.playbackRate"]},initialKbps:{default:"auto",targetPaths:["DownloadSpeed.initialKbps"]},defaultRenderParams:{default:void 0,targetPaths:["Renderer.defaultRenderParams"]},maxBufferedVideoFrames:{default:24,targetPaths:["Timeline.maxBufferedVideoFrames"]},waitingBufferAheadSeconds:{default:3,targetPaths:["Timeline.waitingBufferAheadSeconds"]},abrStrategy:{default:"auto",targetPaths:["ABRSelector.abrStrategy"]},segmentEvictionEnabled:{default:!0,targetPaths:["SegmentEvictionCoordinator.enabled"]},segmentEvictionBufferBehindSeconds:{default:30,targetPaths:["SegmentEvictionCoordinator.bufferBehindSeconds"]},segmentEvictionBufferAheadSeconds:{default:30,targetPaths:["SegmentEvictionCoordinator.bufferAheadSeconds"]},segmentEvictionMaxRetainedBytes:{default:52428800,targetPaths:["SegmentEvictionCoordinator.maxRetainedBytes"]},autoplay:{default:!0,targetPaths:["Idle.autoplay"]},autoPauseOnVisibilityChange:{default:!0,targetPaths:["DocumentVisibility.autoPauseOnVisibilityChange"]},autoResumeOnVisibilityChange:{default:!0,targetPaths:["DocumentVisibility.autoResumeOnVisibilityChange"]},trackingEnabled:{default:!0,targetPaths:["Tracker.trackingEnabled"]}},nb=Object.freeze(Object.entries(eb).reduce(((t,[e,n])=>(Object.prototype.hasOwnProperty.call(n,"default")&&(t[e]=n.default),t)),{})),ib=ld("config","warn");function rb(t){return nb[t]}var ob=new WeakMap,sb=new WeakMap,ab=new WeakMap,lb=new WeakMap,cb=new WeakMap,ub=new WeakSet;class db extends md{get name(){return"DownloadSpeed"}get defaults(){return{alpha:.3,maxSamples:30,minBytesPerSample:1024,minDurationMs:5,maxSampleKbpsCap:void 0,ignoreCacheHits:!0,samplesPath:"runtime.downloadSpeedSamples",initialKbps:rb("initialKbps"),probeUrl:void 0,defaultKbps:2500}}constructor(...t){super(...t),U(this,ub),W(this,ob,void 0),W(this,sb,void 0),W(this,ab,void 0),W(this,lb,void 0),W(this,cb,void 0),j(ab,this,[]),j(sb,this,0),j(ob,this,L(ub,this,pb).call(this)),j(cb,this,Uy()),j(lb,this,(t=>{L(ub,this,kb).call(this,t,"event")})),L(ub,this,mb).call(this),Cy.on("download:sample",z(lb,this)),L(ub,this,vb).call(this),this.log.debug(`[#constructor] Initial estimate: ${z(ob,this)} kbps`)}getKbps(){return z(ob,this)}addSample(t){L(ub,this,kb).call(this,t,"manual")}reset(){j(ab,this,[]),j(sb,this,0),j(ob,this,L(ub,this,pb).call(this))}onDispose(){z(cb,this)&&z(cb,this).abort(),j(cb,this,null),Cy.off("download:sample",z(lb,this)),j(ab,this,[]),j(sb,this,0),j(ob,this,void 0),j(lb,this,null)}}function hb(t,e){return!!(this.settings.ignoreCacheHits&&(0===e||t&&"boolean"==typeof t.cached&&t.cached||t&&"number"==typeof t.transferSize&&"number"==typeof t.encodedBodySize&&t.transferSize<=t.encodedBodySize))}function fb(t){if(!t||"object"!=typeof t)return null;const e=Number(t.bytes),n=Number(t.durationMs);let i=my(t.kbps)?Number(t.kbps):NaN;return!my(i)&&n>0&&my(e)&&(i=8*e/n),my(i)?e<=this.settings.minBytesPerSample||n<=this.settings.minDurationMs||L(ub,this,hb).call(this,t,e)?null:(my(this.settings.maxSampleKbpsCap)&&i>this.settings.maxSampleKbpsCap&&(i=this.settings.maxSampleKbpsCap),{...t,bytes:e,durationMs:n,kbps:i}):null}function pb(){const t=this.settings.initialKbps;if(my(t))return t;if("auto"===t)try{const t=(new _y).guesstimate();if(my(t))return t}catch(t){}return this.settings.defaultKbps}function mb(){const t=zy.get(this.settings.samplesPath,[]);if(!Array.isArray(t)||0===t.length)return;const e=t.slice(-this.settings.maxSamples);for(let t=0;t<e.length;t+=1)L(ub,this,kb).call(this,e[t],"replay",{emit:!1})}async function vb(){if(!this.settings.probeUrl||z(sb,this)>0)return;const t=z(cb,this)?z(cb,this).signal:void 0;if(!t||!t.aborted)try{await tb(this.settings.probeUrl,{cache:"no-store",samplesTargetPath:this.settings.samplesPath,signal:t})}catch(t){}}function gb(t){return"number"==typeof t.startTime&&"number"==typeof t.endTime&&Number.isFinite(t.startTime)&&Number.isFinite(t.endTime)&&t.startTime>=0&&t.endTime>t.startTime}function yb(t,e){if(!L(ub,this,gb).call(this,t)||!L(ub,this,gb).call(this,e))return 0;const n=Math.max(t.startTime,e.startTime);return Math.min(t.endTime,e.endTime)-n}function bb(t){if(!L(ub,this,gb).call(this,t))return t;const e=[];for(let n=0;n<z(ab,this).length;n+=1){const i=z(ab,this)[n];L(ub,this,gb).call(this,i)&&(L(ub,this,yb).call(this,t,i)>0&&e.push(i))}if(0===e.length)return t;j(ab,this,z(ab,this).filter((t=>!e.includes(t))));const n=[t,...e],i=n.reduce(((t,e)=>t+(e.bytes||0)),0),r=Math.min(...n.map((t=>t.startTime))),o=Math.max(...n.map((t=>t.endTime))),s=o-r;if(!my(i)||s<=0)return t;const a={bytes:i,durationMs:s,kbps:8*i/s,startTime:r,endTime:o,url:t.url||e[e.length-1].url};return L(ub,this,fb).call(this,a)}function kb(t,e,{emit:n=!0}={}){const i=L(ub,this,fb).call(this,t);if(!i)return;const r=L(ub,this,bb).call(this,i);if(!r)return;j(sb,this,z(sb,this)+1),z(ab,this).push(r),z(ab,this).length>this.settings.maxSamples&&z(ab,this).shift();const o=this.defaults.alpha,s="number"==typeof this.settings.alpha?this.settings.alpha:o,a=my(z(ob,this)),l=a?z(ob,this):r.kbps,c=a||1!==z(sb,this)?s*r.kbps+(1-s)*l:r.kbps;j(ob,this,c),this.log.debug(`[#ingestSample] Next estimate: ${c} kbps`),n&&this.trigger("download:speed",{kbps:z(ob,this),sample:r,source:e,samplesCount:z(sb,this)})}class wb{constructor(t={}){const{id:e,url:n,uri:i,mime:r,codecs:o,bandwidth:s,timescale:a,sizeBytes:l,...c}=t;if(!e)throw new Error("Representation requires id");const u=n||i;if(!u)throw new Error("Representation requires url or uri");this.id=e,this.url=u,this.mime=r,this.codecs=o,this.baseCodec=function(t=""){if(!t||"string"!=typeof t)return;const e=t.split(",")[0].trim();if(!e)return;const n=e.match(/^[a-z0-9]+/i);return n?n[0].toLowerCase():void 0}(o),my(s)&&(this.bandwidth=s),my(a)&&(this.timescale=a),my(l)&&(this.sizeBytes=l),Object.assign(this,c)}}class xb{#F=new Map;#O;#C;#P=0;#D;constructor(t={}){const{id:e,offset:n=0,duration:i=0,isInit:r=!1,representations:o=[]}=t;if(!e)throw new Error("Segment requires id");o.forEach((t=>{if(!t||!t.url&&!t.uri)throw new Error("Segment representation must include uri or url")})),this.id=e,this.offset=n,this.duration=i,this.isInit=!!r,this.originalRepresentations=o.map((t=>t instanceof wb?t:new wb(t))),this.representations=this.originalRepresentations.map((t=>t)),this.appliedFilters=[],this.loadAttempts=0,this.loadError=void 0}setRepresentationBuffer(t,e){t&&e&&this.#F.set(t,e)}setDownloadProgress(t,e){const n=Number(t);Number.isFinite(n)&&n>=0&&(this.#P=Math.max(this.#P,n));const i=Number(e);Number.isFinite(i)&&i>0&&(this.#D=i)}setChosenRepresentation(t){this.#O=t;const e=null==t?void 0:t.id;if(!(this.isInit||!e||this.#F.size<=1))for(const t of this.#F.keys())t!==e&&this.#F.delete(t)}setABRDecisionSnapshot(t){if(!t||"object"!=typeof t)return void(this.#C=void 0);const e={...t};Array.isArray(t.availableRepresentations)&&(e.availableRepresentations=t.availableRepresentations.map((t=>({...t})))),this.#C=e}markLoadAttempt(){const t=Number(this.loadAttempts);this.loadAttempts=Number.isFinite(t)&&t>0?t+1:1,this.loadError=void 0}setLoadError(t){this.loadError=t||new Error("Segment load failed")}getRepresentationBuffer(t){return this.#F.get(t)}get chosenRepresentation(){return this.#O}get abrDecision(){return this.#C}get arrayBuffer(){return this.#O?this.#F.get(this.#O.id):void 0}get retainedByteLength(){let t=0;for(const e of this.#F.values())e&&"number"==typeof e.byteLength&&(t+=e.byteLength);return t}get bufferedRatio(){var t;const e=my(this.#D)?this.#D:null===(t=this.#O)||void 0===t?void 0:t.sizeBytes;return my(e)?Math.min(1,Math.max(0,this.#P/e)):this.retainedByteLength>0?1:0}get isLoaded(){return this.retainedByteLength>0}evict(){this.#O=void 0,this.#C=void 0,this.#F.clear(),this.#P=0,this.#D=void 0}}class _b{constructor(t={}){const{timestamp:e,name:n,data:i,isSticky:r=!1}=t;this.timestamp="number"==typeof e?e:0,this.name="string"==typeof n?n:"",this.data=i,this.isSticky="boolean"==typeof r&&r}}function Tb(t,e){const n=Number(null==t?void 0:t.offset),i=Number(null==t?void 0:t.duration);if(!e)return{offset:n,duration:i};const r=(null==t?void 0:t.chosenRepresentation)||(Array.isArray(null==t?void 0:t.representations)?t.representations[0]:void 0),o=Number(null==r?void 0:r.segStart),s=Number(null==r?void 0:r.segDuration);return Number.isFinite(o)&&Number.isFinite(s)&&s>0?{offset:o,duration:s}:{offset:n,duration:i}}function Ib(t,e,n={}){if(!Array.isArray(t)||!t.length)return;const i=Number(e);if(!Number.isFinite(i))return;const r=!!n.preferRepresentationTime;let o,s,a=-1/0;for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||n.isInit)continue;o||(o=n);const l=Tb(n,r);if(!Number.isFinite(l.offset))continue;const c=Number(l.duration);if(Number.isFinite(c)&&c>0&&i>=l.offset&&i<l.offset+c)return n;l.offset<=i&&l.offset>a&&(a=l.offset,s=n)}return s||o}const Eb=new Set(["video","audio","image","cue","data","bbox"]);class Sb{constructor(t={}){const{id:e,type:n,offset:i=0,duration:r,source:o,segments:s=[],cues:a=[]}=t;if(!e)throw new Error("Track requires id");if(!Eb.has(n))throw new Error(`Track type must be one of ${Array.from(Eb).join("|")}`);this.id=e,this.type=n,this.offset=i,this.duration=my(r)?r:void 0,this.source=o,"cue"===n?(this._cues=a.map((t=>t instanceof _b?t:new _b(t))),this._segments=[]):(this._segments=s.map((t=>t instanceof xb?t:new xb(t))),this._cues=void 0)}get segments(){return this._segments.slice()}get cues(){if("cue"===this.type)return this._cues.slice()}get endTime(){if(my(this.duration))return this.offset+this.duration;if(!this._segments.length)return;const t=this._segments.reduce(((t,e)=>{const n=my(e.duration)?e.duration:0;return Math.max(t,e.offset+n)}),this.offset);return t}get buffered(){const t=this._segments.map((t=>({duration:my(null==t?void 0:t.duration)?t.duration:0,offset:my(null==t?void 0:t.offset)?t.offset:0,ratio:t&&!t.isInit&&"number"==typeof t.bufferedRatio?t.bufferedRatio:0}))).filter((t=>t.duration>0&&t.ratio>0));if(!t.length)return;const e=t.reduce(((t,e)=>Math.min(t,e.offset)),1/0),n=t.reduce(((t,e)=>{const n=e.offset+e.duration*Math.min(1,e.ratio);return Math.max(t,n)}),0);return!Number.isFinite(e)||!Number.isFinite(n)||n<=e?void 0:{start:e,end:n}}getMediaSegmentAtTime(t,e={}){return Ib(this._segments,t,e)}setSegments(t=[]){if("cue"===this.type)return;const e=Array.isArray(t)?t:[];this._segments=e.map((t=>t instanceof xb?t:new xb(t)))}}function Ab(t){return"string"==typeof t?t:t&&"object"==typeof t?t.nodeId||t.nodeIdOrRef||t.id:void 0}function Nb(t){const e=Ab(t);let n=1;if(t&&"object"==typeof t&&my(t.weight)&&(n=t.weight),!e)throw new Error("Child entry requires a nodeId");return{nodeId:e,weight:n}}function Mb(t){return(Array.isArray(t)?t:[]).map((t=>Nb(t)))}function Fb(t,e=void 0){if("string"==typeof t){const e=t.match(/\d+\.?\d*/);if(e){const t=Number(e[0]);if(Number.isFinite(t))return t}}else if("number"==typeof t&&Number.isFinite(t))return t;return e}function Ob(t,e){if(t){if(t.includes("$Number%")){const n=t.match(/\$Number%0(\d+)d\$/);if(n){const i=Number(n[1]),r=String(e).padStart(i,"0");return t.replace(/\$Number%0\d+d\$/,r)}}return t.replace(/\$Number\$/g,String(e))}}function Cb(t,e){if(e)try{var n;return new URL(e,t||(null==yd||null===(n=yd.location)||void 0===n?void 0:n.href)||void 0).toString()}catch(t){return e}}const Pb=new Map;class Db{static register(t,e){if(!t||"function"!=typeof e)throw new Error("ManifestFactory.register requires type and parser function");Pb.set(t,e)}static inferType(t={}){const{typeHint:e,url:n,mimeType:i,body:r}=t;return e||function(t=""){const e=function(t=""){return t&&"string"==typeof t?t.split("#")[0].split("?")[0].toLowerCase():""}(t);return e.endsWith(".mpd")?"dash":e.endsWith(".ivd")?"ivd":e.endsWith(".jpg")||e.endsWith(".jpeg")||e.endsWith(".png")||e.endsWith(".webp")||e.endsWith(".gif")||e.endsWith(".avif")?"image":void 0}(n||"")||function(t=""){const e=t.toLowerCase();return e.includes("dash")||e.includes("mpd")||e.includes("xml")?"dash":e.includes("ivd")||e.includes("json")?"ivd":e.includes("image/")?"image":void 0}(i||"")||function(t=""){const e="string"==typeof t?t.trim():"";if(e.startsWith("<")&&e.includes("<MPD"))return"dash";if(e.startsWith("{"))try{const t=JSON.parse(e);if(t&&"object"==typeof t)return"ivd"}catch(t){return}}(r||"")}static parse(t={}){const e=Db.inferType(t);if(!e||!Pb.has(e))throw new Error("Unsupported manifest type");return Pb.get(e)(t)}}Db.register("dash",(function(t={}){const{body:e,url:n}=t,i=function(){if(yd&&"function"==typeof yd.DOMParser)return new yd.DOMParser;throw new Error("DOMParser is not available in this environment")}().parseFromString(e||"","application/xml"),r=i.getElementsByTagName("MPD")[0];if(!r)throw new Error("Invalid MPD");const o=i.getElementsByTagName("Period")[0],s=o?Array.from(o.getElementsByTagName("AdaptationSet")):[],a=[];let l=Fb(r.getAttribute("mediaPresentationDuration"));l=Number.isFinite(l)?l:void 0,s.forEach(((t,e)=>{const i=t.getAttribute("mimeType")||"",r=function(t=""){const e=t.toLowerCase();return e.includes("video")?"video":e.includes("audio")?"audio":e.includes("image")?"image":"data"}(i),o=t.getAttribute("id")||`${r}-${e+1}`,s=t.getElementsByTagName("SegmentTemplate")[0],c=Array.from(t.getElementsByTagName("Representation")).map((t=>function(t,e,n){const i=t.getAttribute("id")||t.getAttribute("representationId")||"",r=Fb(t.getAttribute("bandwidth")),o=t.getAttribute("codecs"),s=t.getAttribute("mimeType")||e&&e.getAttribute("mimeType")||n,a=t.getElementsByTagName("SegmentTemplate")[0]||e;return{repId:i,bandwidth:r,codecs:o,mime:s,media:a?a.getAttribute("media"):void 0,initialization:a?a.getAttribute("initialization"):void 0,timescale:Fb(a&&a.getAttribute("timescale"))||Fb(e&&e.getAttribute("timescale"),1)||1,startNumber:Fb(a&&a.getAttribute("startNumber"))||Fb(e&&e.getAttribute("startNumber"),1)||1,timeline:function(t){const e=[],n=t.getElementsByTagName("SegmentTimeline")[0];if(!n)return e;const i=Array.from(n.getElementsByTagName("S"));let r=0;for(let t=0;t<i.length;t+=1){const n=i[t],o=Fb(n.getAttribute("t")),s=Fb(n.getAttribute("d")),a=Fb(n.getAttribute("r"),0);if(!my(s))continue;my(o)&&(r=o);const l=a>=0?a:0;for(let t=0;t<=l;t+=1)e.push({start:r,duration:s}),r+=s}return e}(a)}}(t,s,i))),u=c.map((t=>({id:t.repId,url:Cb(n,Ob(t.initialization,t.startNumber)),bandwidth:t.bandwidth,mime:t.mime,codecs:t.codecs,timescale:t.timescale}))).filter((t=>t.url)),d=c.reduce(((t,e)=>{const n=Array.isArray(null==t?void 0:t.timeline)?t.timeline.length:0;return(Array.isArray(null==e?void 0:e.timeline)?e.timeline.length:0)>n?e:t}),c[0]),h=Array.isArray(null==d?void 0:d.timeline)?d.timeline:[],f=h.length,p=[],m=(null==d?void 0:d.timescale)||1;u.length>0&&p.push({id:`init-${o}`,offset:0,duration:0,isInit:!0,representations:u});for(let t=0;t<f;t+=1){const e=h[t];if(!e)continue;const i=c.map((e=>{const i=e.startNumber+t,r=e.timescale||m,o=Array.isArray(e.timeline)?e.timeline[t]:void 0;if(!o)return null;const s=o.start,a=o.duration;return{id:e.repId,url:Cb(n,Ob(e.media,i)),bandwidth:e.bandwidth,mime:e.mime,codecs:e.codecs,timescale:e.timescale,segIndex:t,segStart:s/r,segDuration:a/r}})).filter(Boolean);i.length&&p.push({id:`${o}-seg-${t+1}`,offset:e.start/m,duration:e.duration/m,isInit:!1,representations:i})}a.push({id:o,type:r,offset:0,duration:l,segments:p})}));const c=a[0]?a[0].id:void 0;return{id:n||r.getAttribute("id")||"mpd",mainTrackId:c,tracks:a,duration:l}})),Db.register("ivd",(function(t={}){var e;const{body:n,url:i}=t;let r;try{r="string"==typeof n?JSON.parse(n):n}catch(t){throw new Error("Invalid IVD manifest")}if(!r||"object"!=typeof r)throw new Error("Invalid IVD manifest");const o=Array.isArray(r.representations)?r.representations:[],s=new Map;o.forEach(((t,e)=>{const n=function(t){const e=(t.mimeType||"").toLowerCase();return e.includes("video")?"video":e.includes("audio")?"audio":"data"}(t),i=Number.isInteger(t.altIndex)?t.altIndex:0,r=`${n}-${i}`,o=(l=e,{id:`${(a=t).format||"unknownformat"}-${a.altIndex||0}-${a.label||l+1}`,url:a.url,mime:a.mimeType,codecs:a.codecs,bandwidth:a.bandwidth||a.audioBandwidth||a.videoBandwidth,sizeBytes:a.contentLength,duration:my(a.duration)?a.duration:void 0,segIndex:Number.isInteger(a.segIndex)&&a.segIndex>=0?a.segIndex:0});var a,l;s.has(r)||s.set(r,{type:n,altIndex:i,reps:[]}),s.get(r).reps.push(o)}));const a=Array.from(s.values()).map(((t,e)=>{const n=new Map;t.reps.forEach((t=>{const e=Number.isInteger(t.segIndex)?t.segIndex:0;n.has(e)||n.set(e,[]),n.get(e).push(t)}));const i=Array.from(n.keys()).sort(((t,e)=>t-e));let o=0;const s=i.map((i=>{var r;const s=n.get(i)||[],a=(null===(r=s.find((t=>my(t.duration))))||void 0===r?void 0:r.duration)||0,l={id:`${t.type}-${t.altIndex}-${e+1}-seg-${i+1}`,offset:o,duration:a,isInit:!1,representations:s.map((t=>{const{duration:e,segIndex:n,...i}=t;return i}))};return o+=a,l})),a=s.reduce(((t,e)=>t+(my(e.duration)?e.duration:0)),0),l=my(r.duration)?r.duration:a||void 0;return{id:`${t.type}-${t.altIndex}-${e+1}`,type:t.type,offset:0,duration:l,segments:s}})),l=r.mainTrackId||(null===(e=a.find((t=>"video"===t.type)))||void 0===e?void 0:e.id)||a[0]&&a[0].id,c=a.find((t=>t.id===l)),u=(null==c?void 0:c.duration)||void 0;return{id:r.id||i||"ivd",metadata:r.metadata||{},mainTrackId:l,tracks:a,duration:u}})),Db.register("image",(function(t={}){const e=null==t?void 0:t.url;if(!e||"string"!=typeof e)throw new Error("ImageParser requires url");const n=my(null==t?void 0:t.duration)?t.duration:30,i=my(null==t?void 0:t.width)?t.width:void 0,r=my(null==t?void 0:t.height)?t.height:void 0,o={id:"image-1",url:e,mime:"string"==typeof(null==t?void 0:t.mimeType)?t.mimeType:void 0};my(i)&&my(r)&&(o.width=i,o.height=r);const s="image-1";return{id:e,metadata:{},mainTrackId:s,tracks:[{id:s,type:"image",offset:0,duration:n,segments:[{id:"image-1-seg-1",offset:0,duration:n,isInit:!1,representations:[o]}]}],duration:n}}));const Rb=["video/mp4"];function Lb(t){return Rb.includes(t.mime)}var Bb={name:"containers",fn:function(t=[]){return t.filter(Lb)},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}};const zb=new(me=new WeakMap,ve=new WeakSet,class extends md{get name(){return"MediaCapabilities"}get defaults(){return{enabled:!0,smoothWeight:10,powerWeight:10,ignoreSmooth:!1,ignorePower:!0,codecBonus:{av01:.2,hvc1:.15,hev1:.15,vp09:.1,avc1:0}}}constructor(...t){super(...t),U(this,ve),W(this,me,void 0),j(me,this,new Map)}onDispose(){z(me,this)&&z(me,this).clear()}async sortRepsCodecs(t=[]){if(!Array.isArray(t)||0===t.length)return[];const e=[],n=new Set;let i=0;t.forEach((t=>{const r=null==t?void 0:t.baseCodec;r&&!n.has(r)&&(n.add(r),e.push({codec:r,rep:t,index:i}),i+=1)}));const r=(await Promise.all(e.map((async t=>{const{score:e}=await L(ve,this,qb).call(this,t.rep);return{...t,score:e}})))).sort(((t,e)=>{const n=e.score-t.score;return 0!==n?n:t.index-e.index}));return this.log.info("[sortRepsCodecs] Sorted entries:",r),r.map((t=>t.codec))}});function Wb(){return!!(yd&&yd.navigator&&yd.navigator.mediaCapabilities&&"function"==typeof yd.navigator.mediaCapabilities.decodingInfo)}function jb(t){if(!t||"object"!=typeof t)return void this.log.debug("[#buildConfig] Invalid representation:",t);const e=t.mime||t.mimeType||"",n=function(t="",e=""){const n=t||"",i=e||"";return i?`${n}; codecs="${i}"`:n}(e,t.codecs||"");return function(t=""){return t.toLowerCase().includes("video")}(e)?(this.log.debug("[#buildConfig] Building video config for:",t),{type:"file",video:{contentType:n,width:t.width||1920,height:t.height||1080,bitrate:t.videoBandwidth||t.bandwidth||0,framerate:t.framerate||t.frameRate||24}}):function(t=""){return t.toLowerCase().includes("audio")}(e)?(this.log.debug("[#buildConfig] Building audio config for:",t),{type:"file",audio:{contentType:n,channels:t.channels||2,bitrate:t.audioBandwidth||t.bandwidth||0,samplerate:t.audioSamplingRate||48e3}}):void this.log.debug("[#buildConfig] Unknown mime type:",e)}function Ub(t){return t?JSON.stringify(t):"invalid"}async function $b(t){if(!this.settings.enabled||!L(ve,this,Wb).call(this)||!t)return this.log.debug("[#queryCapabilities] Not supported, returning false",t),{supported:!1,smooth:!1,powerEfficient:!1};const e=L(ve,this,Ub).call(this,t),n=z(me,this).get(e);if(n)return n;let i;try{i=await yd.navigator.mediaCapabilities.decodingInfo(t)}catch(t){i={supported:!1,smooth:!1,powerEfficient:!1}}return this.log.debug("[#queryCapabilities] Config:",t,"\nDecoding info result:",i),z(me,this).set(e,i),i}async function qb(t){if(L(ve,this,Gb).call(this,t))return this.log.debug("[#scoreRepresentation] Blocking HEVC on Firefox versions below support threshold",null==t?void 0:t.codecs),{score:-1e3,capability:{supported:!1,smooth:!1,powerEfficient:!1}};const e=L(ve,this,jb).call(this,t),n=await L(ve,this,$b).call(this,e),i=function(t="",e={}){const n=(t||"").toLowerCase();return Object.keys(e).reduce(((t,i)=>n.includes(i.toLowerCase())?e[i]:t),0)}(t.codecs||"",this.settings.codecBonus);let r=0;return n.supported&&(r+=1),!this.settings.ignoreSmooth&&n.smooth&&(r+=this.settings.smoothWeight),!this.settings.ignorePower&&n.powerEfficient&&(r+=this.settings.powerWeight),r+=i,{score:r,capability:n}}function Vb(){if(!Nv())return!1;const t=Mv();return!Number.isFinite(t)||t<150}function Gb(t){if(!L(ve,this,Vb).call(this))return!1;const e=function(t=""){const e=String(t||"").toLowerCase(),[n]=e.split(".");return n||""}((null==t?void 0:t.baseCodec)||(null==t?void 0:t.codecs)||"");return"hvc1"===e||"hev1"===e}const Hb=[],Kb=()=>!0;[Bb,{name:"force-video-codec",fn:function(t=[],{node:e}={}){const n=function(t){if("string"!=typeof t)return;const e=t.split(",")[0].trim();if(!e)return;const n=e.match(/^[a-z0-9]+/i);return n?n[0].toLowerCase():void 0}(null==e?void 0:e.forceVideoCodec);if(!n)return t;const i=t.filter((t=>(null==t?void 0:t.baseCodec)===n));return i.length?i:t},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}},{name:"media-capabilities",fn:async function(t=[],{track:e}){if(null==e||!e.preferredCodec){const n=await zb.sortRepsCodecs(t);if(!Array.isArray(n)||0===n.length)return t;e.preferredCodec=n[0]}return t.filter((t=>(null==t?void 0:t.baseCodec)===e.preferredCodec))},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}}].forEach((({name:t,fn:e,isRelevantForTrack:n})=>{!function(t,e,{isRelevantForTrack:n}={}){if(!t||"function"!=typeof e)throw new Error("registerRepresentationFilter requires a name and function");const i="function"==typeof n?n:Kb;Hb.push({name:t,fn:e,isRelevantForTrack:i})}(t,e,{isRelevantForTrack:n})}));const Xb=ld("Node","warn"),Yb={start:0,end:0},Qb=.001;function Jb(t){if(!Array.isArray(t)||!t.length)return;const e=t.map((t=>{const e=Number(null==t?void 0:t.segStart),n=Number(null==t?void 0:t.segDuration);return!Number.isFinite(e)||!Number.isFinite(n)||n<=0?null:{start:e,duration:n}}));if(e.some((t=>!t)))return;const n=e[0];return e.every((t=>Math.abs(t.start-n.start)<=Qb&&Math.abs(t.duration-n.duration)<=Qb))?{offset:n.start,duration:n.duration}:void 0}var Zb=new WeakMap,tk=new WeakMap,ek=new WeakMap,nk=new WeakMap,ik=new WeakMap,rk=new WeakMap,ok=new WeakMap,sk=new WeakMap,ak=new WeakMap,lk=new WeakMap,ck=new WeakSet;class uk extends cd{constructor(t={},e={}){super(),U(this,ck),W(this,Zb,void 0),W(this,tk,void 0),W(this,ek,void 0),W(this,nk,void 0),W(this,ik,void 0),W(this,rk,void 0),W(this,ok,void 0),W(this,sk,void 0),W(this,ak,void 0),W(this,lk,[]);const{id:n,manifestRef:i,duration:r,width:o,height:s,metadata:a={},children:l=[]}=t;if(!n)throw new Error("Node requires id");if(!i)throw new Error("Node requires manifestRef");this.id=n,this.manifestRef=i,this.metadata=a,this.state="pending",this.error=void 0,this.tracks=[],this.mainTrackId=void 0,this.imageFallbackActive=!1,this.disabledTracks=[],this.disabledTrackTypes=Array.isArray(e.disabledTracks)?e.disabledTracks.filter((t=>"string"==typeof t)):[],this.enabledRepFilters=Array.isArray(e.enabledRepFilters)?e.enabledRepFilters:void 0,this.forceVideoCodec="string"==typeof e.forceVideoCodec&&e.forceVideoCodec.trim()?e.forceVideoCodec.trim():void 0,j(ok,this,!0===e.forceImageFallback),j(Zb,this,e.abrSelector),j(tk,this,e.assetsDeliveryService),j(nk,this,my(r)?r:void 0),j(ik,this,my(o)?o:void 0),j(rk,this,my(s)?s:void 0),j(sk,this,e&&"object"==typeof e.mediaHostRewriteMap?e.mediaHostRewriteMap:void 0),j(ak,this,my(e.maxManifestLoadAttempts)?e.maxManifestLoadAttempts:1/0),this.manifestLoadAttempts=0,this.manifestLoadError=void 0,j(lk,this,Mb(l))}setChildren(t){const e=Mb(t);return L(ck,this,Ak).call(this,e,{emit:!0})}addChild(t){const e=Nb(t),n=z(lk,this).slice(),i=n.findIndex((t=>(null==t?void 0:t.nodeId)===e.nodeId));if(i>=0){var r;if((null===(r=n[i])||void 0===r?void 0:r.weight)===e.weight)return this.children;n[i]=e}else n.push(e);return L(ck,this,Ak).call(this,n,{emit:!0})}removeChild(t){const e=Ab(t);if(!e)return this.children;const n=z(lk,this).filter((t=>(null==t?void 0:t.nodeId)!==e));return n.length===z(lk,this).length?this.children:L(ck,this,Ak).call(this,n,{emit:!0})}async load(t={}){const{loadingMode:e="full",signal:n}=t;Xb.info(`[load] [${this.id}] Loading node in '${e}' mode`);try{if(n&&n.aborted)throw $y();"ready"!==this.state&&await this.resolve({signal:n});const t="partial"===e,i=[];this.tracks.forEach((e=>{const n=e.segments||[];if(t){const t=n.find((t=>t.isInit)),r=n.find((t=>!t.isInit));t&&Array.isArray(t.representations)&&!t.isLoaded&&i.push({track:e,segment:t}),r&&Array.isArray(r.representations)&&!r.isLoaded&&i.push({track:e,segment:r})}else n.forEach((t=>{Array.isArray(t.representations)&&!t.isLoaded&&i.push({track:e,segment:t})}))}));const r=i.filter((({segment:t})=>t.isInit)),o=i.filter((({segment:t})=>!t.isInit)),s=o.length?o[0]:void 0,a=r.map((({track:t,segment:e})=>L(ck,this,Tk).call(this,t,e,n))),l=s?L(ck,this,Ik).call(this,s.segment,s.track,n):Promise.resolve();await Promise.all([...a,l]);const c=s?o.slice(1):o;for(const t of c)await L(ck,this,Ik).call(this,t.segment,t.track,n);if(n&&n.aborted)throw $y();return this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:e}),this}catch(t){if(qy(t,n))throw t;throw this.trigger("node:loaderror",{nodeId:this.id,node:this,error:t,loadingMode:e}),t}}async loadMediaSegmentsAtOffset(t,e={}){const n=Number(t);if(Xb.info(`[loadMediaSegmentsAtOffset] [${this.id}] Loading media segments at offset ${n}`),!Number.isFinite(n))return;const{signal:i}=e;if(i&&i.aborted)throw $y();if("ready"!==this.state&&await this.resolve({signal:i}),"ready"!==this.state)return;const r=[],o=[];if(this.tracks.forEach((t=>{const e=(null==t?void 0:t.segments)||[];if(!Array.isArray(e)||!e.length)return;const s=e.find((t=>(null==t?void 0:t.isInit)&&Array.isArray(null==t?void 0:t.representations)));s&&!s.isLoaded&&r.push(L(ck,this,Tk).call(this,t,s,i)),e.forEach((e=>{if(!e||e.isInit||!Array.isArray(e.representations))return;const i=Number(e.offset);Number.isFinite(i)&&Math.abs(i-n)<=Qb&&!e.isLoaded&&o.push({segment:e,track:t})}))})),r.length||o.length){if(await Promise.all(r),o.length&&await Promise.all(o.map((({segment:t,track:e})=>L(ck,this,Ik).call(this,t,e,i)))),i&&i.aborted)throw $y();this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:"segment-offset",offsetSeconds:n})}}async resolve(t={}){const{signal:e,manifestOverride:n}=t;let i=!0;for(;i;){if(i=!1,"ready"===this.state)return this;if("resolving"===this.state)try{return await z(ek,this)}catch(t){if(!qy(t)||e&&e.aborted)throw t;i=!0;continue}if(e&&e.aborted)throw $y();if(this.hasExceededManifestLoadAttempts()){const t=this.manifestLoadError||new Error("Manifest load retry limit reached");throw this.state="failed",this.error=t,t}const t=L(ck,this,gk).call(this);return this.state="resolving",this.error=void 0,j(ek,this,(async()=>{try{const t=await L(ck,this,Ek).call(this,{signal:e,manifestOverride:n});if(e&&e.aborted)throw $y();let i=Db.parse(t);return i=L(ck,this,vk).call(this,i),this.tracks=(i.tracks||[]).map((t=>t instanceof Sb?t:new Sb(t))),this.mainTrackId=i.mainTrackId||this.mainTrackId,this.metadata=i.metadata||this.metadata,L(ck,this,Mk).call(this),L(ck,this,Nk).call(this),await L(ck,this,Sk).call(this),this.state="ready",this}catch(n){if(qy(n,e))throw L(ck,this,yk).call(this,t),n;throw this.state="failed",this.error=n,n}})()),z(ek,this)}return z(ek,this)}evict(){this.tracks.forEach((t=>{(t.segments||[]).forEach((t=>{t.evict()}))}))}get children(){return z(lk,this).slice()}set children(t){this.setChildren(t)}get duration(){if(!this.mainTrackId)return 0;const t=this.tracks.find((t=>t.id===this.mainTrackId));return t?my(t.duration)?t.duration:t.endTime:0}get retainedByteLength(){let t=0;return this.tracks.forEach((e=>{(Array.isArray(e.segments)?e.segments:[]).forEach((e=>{t+=my(e.retainedByteLength)?e.retainedByteLength:0}))})),t}get buffered(){if("ready"!==this.state)return Yb;const t=Array.isArray(this.tracks)?this.tracks.find((t=>(null==t?void 0:t.id)===this.mainTrackId)):void 0,e=this.duration;if(!t||!my(e))return Yb;const n=Array.isArray(this.tracks)?this.tracks.map((t=>{if(!t||void 0===t.buffered)return;const e=t.buffered;return e&&Number.isFinite(e.start)&&Number.isFinite(e.end)?{track:t,range:e}:void 0})).filter(Boolean):[];if(!n.length)return Yb;if(n.length===this.tracks.length&&n.every((({track:t,range:e})=>{const n=t.endTime,i=my(t.offset)?t.offset:0;return Number.isFinite(n)&&e.start<=i&&e.end>=n})))return{start:0,end:e};const i=n.reduce(((t,{range:e})=>Math.min(t,e.end)),1/0);if(!Number.isFinite(i))return Yb;const r=Math.min(i,e);return r>0?{start:0,end:r}:Yb}get isLoaded(){return"ready"===this.state&&(Array.isArray(this.tracks)?this.tracks:[]).flatMap((t=>Array.isArray(null==t?void 0:t.segments)?t.segments:[])).every((t=>t.isLoaded))}hasExceededManifestLoadAttempts(){if(!Number.isFinite(z(ak,this))||z(ak,this)<=0)return!1;if(!this.manifestLoadError)return!1;const t=Number(this.manifestLoadAttempts);return Number.isFinite(t)&&t>=z(ak,this)}}function dk(t){return function(t,e){if(!t||"string"!=typeof t)return t;if(!e||"object"!=typeof e)return t;const n=yd&&"function"==typeof yd.URL?yd.URL:"function"==typeof URL?URL:null;if(!n)return t;let i;try{i=new n(t)}catch(e){return t}const r=function(t,e){const n=null==t?void 0:t.hostname,i=null==t?void 0:t.pathname;if("string"!=typeof n||"string"!=typeof i)return t;if(!/^s3(?:[.-][a-z0-9-]+)?\.amazonaws\.com$/i.test(n))return t;const r=i.split("/").filter(Boolean);if(r.length<2)return t;const o=r[0],s=new e(t.toString());return s.hostname=`${o}.${n}`,s.pathname=`/${r.slice(1).join("/")}`,s}(i,n),o=e[r.hostname]?r:i,s=e[o.hostname];if(!s||"string"!=typeof s)return t;let a;try{a=new n(s)}catch(e){return t}return a.protocol&&a.host?(o.protocol=a.protocol,o.host=a.host,o.toString()):t}(t,z(sk,this))}function hk(){return z(ok,this)||void 0===yd.VideoDecoder}function fk(){return this.manifestRef&&"object"==typeof this.manifestRef&&"assets-delivery-service"===this.manifestRef.type}function pk(t){if(!L(ck,this,fk).call(this))return!1;if(!L(ck,this,hk).call(this))return!1;const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],n=e.find((e=>(null==e?void 0:e.id)===(null==t?void 0:t.mainTrackId)))||e[0];return"image"!==(null==n?void 0:n.type)}function mk(t){const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],n=function(t){const e=Number(null==t?void 0:t.duration);if(Number.isFinite(e)&&e>0)return e;const n=Array.isArray(null==t?void 0:t.segments)?t.segments:[];let i=0;return n.forEach((t=>{if(null!=t&&t.isInit)return;const e=Number(null==t?void 0:t.offset),n=Number(null==t?void 0:t.duration);!Number.isFinite(e)||!Number.isFinite(n)||n<=0||(i=Math.max(i,e+n))})),i>0?i:void 0}(e.find((e=>(null==e?void 0:e.id)===(null==t?void 0:t.mainTrackId)))||e[0]);return my(n)?n:my(z(nk,this))?z(nk,this):void 0}function vk(t){if(this.imageFallbackActive=!1,!L(ck,this,pk).call(this,t))return t;if(!z(tk,this)||"function"!=typeof z(tk,this).resolveImageOne)return t;const e=z(tk,this).resolveImageOne(this.manifestRef),n=L(ck,this,dk).call(this,null==e?void 0:e.url);if(!n)return t;const i={typeHint:"image",url:n,duration:L(ck,this,mk).call(this,t),width:z(ik,this),height:z(rk,this)},r=Db.parse(i);return t&&"object"==typeof t.metadata&&!Array.isArray(t.metadata)&&(r.metadata=t.metadata),this.imageFallbackActive=!0,r}function gk(){return{state:this.state,error:this.error,tracks:this.tracks,mainTrackId:this.mainTrackId,metadata:this.metadata,imageFallbackActive:this.imageFallbackActive,disabledTracks:this.disabledTracks,manifestRef:this.manifestRef,manifestLoadAttempts:this.manifestLoadAttempts,manifestLoadError:this.manifestLoadError}}function yk(t){t&&(this.state=t.state,this.error=t.error,this.tracks=t.tracks,this.mainTrackId=t.mainTrackId,this.metadata=t.metadata,this.imageFallbackActive=t.imageFallbackActive,this.disabledTracks=t.disabledTracks,this.manifestRef=t.manifestRef,this.manifestLoadAttempts=t.manifestLoadAttempts,this.manifestLoadError=t.manifestLoadError)}function bk(){const t=Number(this.manifestLoadAttempts);this.manifestLoadAttempts=Number.isFinite(t)&&t>0?t+1:1,this.manifestLoadError=void 0}function kk(t){this.manifestLoadError=t||new Error("Manifest load failed")}function wk(t){if(!t)return null;const e={loadAttempts:Number(t.loadAttempts),loadError:t.loadError};if("function"==typeof t.markLoadAttempt)return t.markLoadAttempt(),e;const n=Number(t.loadAttempts);return t.loadAttempts=Number.isFinite(n)&&n>0?n+1:1,t.loadError=void 0,e}function xk(t,e){if(!t||!e)return;const n=Number(e.loadAttempts);t.loadAttempts=Number.isFinite(n)&&n>=0?n:0,t.loadError=e.loadError}function _k(t,e){t&&("function"!=typeof t.setLoadError?t.loadError=e||new Error("Segment load failed"):t.setLoadError(e))}async function Tk(t,e,n){const i=L(ck,this,wk).call(this,e);try{const i=e.representations.map((async i=>{const r=L(ck,this,dk).call(this,i.url),o=await tb(r,{returnType:"arrayBuffer",signal:n,onProgress:({loaded:n,total:i,chunk:r})=>{e&&"function"==typeof e.setDownloadProgress&&e.setDownloadProgress(n,i),this.trigger("segment:chunk",{nodeId:this.id,trackId:null==t?void 0:t.id,trackType:null==t?void 0:t.type,segmentId:e.id,isInit:!0,loaded:n,total:i,chunk:r})}}),s=o instanceof ArrayBuffer?o:null==o?void 0:o.arrayBuffer;s&&e.setRepresentationBuffer(i.id,s)}));await Promise.all(i)}catch(t){if(qy(t,n))throw L(ck,this,xk).call(this,e,i),t;throw L(ck,this,_k).call(this,e,t),t}}async function Ik(t,e,n){const i=z(Zb,this),r={representations:t.representations,nodeId:this.id,trackId:null==e?void 0:e.id,segmentId:t.id},o=i&&"function"==typeof i.select?i.select(r):void 0,s=t.representations.find((t=>t.id===o))||t.representations[0];if(!s)return;t&&"function"==typeof t.setABRDecisionSnapshot&&t.setABRDecisionSnapshot(r.abrDecision),t.setChosenRepresentation(s);const a=L(ck,this,wk).call(this,t);try{const i=L(ck,this,dk).call(this,s.url),r=await tb(i,{returnType:"arrayBuffer",signal:n,onProgress:({loaded:n,total:i,chunk:r})=>{t&&"function"==typeof t.setDownloadProgress&&t.setDownloadProgress(n,i),this.trigger("segment:chunk",{nodeId:this.id,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:t.id,isInit:!1,loaded:n,total:i,chunk:r})}}),o=r instanceof ArrayBuffer?r:null==r?void 0:r.arrayBuffer;o&&(t.setRepresentationBuffer(s.id,o),t.setChosenRepresentation(s))}catch(e){if(qy(e,n))throw L(ck,this,xk).call(this,t,a),e;throw L(ck,this,_k).call(this,t,e),e}}async function Ek(t={}){const{signal:e,manifestOverride:n}=t;if(e&&e.aborted)throw $y();L(ck,this,bk).call(this);try{let t=this.manifestRef;if(n&&"object"==typeof n){if(L(ck,this,fk).call(this)&&"string"==typeof n.encodeProfile&&n.encodeProfile&&(this.manifestRef={...this.manifestRef,encodeProfile:n.encodeProfile},t=this.manifestRef),n.ivd)return{typeHint:"ivd",body:n.ivd};if(n.body){const t=L(ck,this,dk).call(this,n.url);return{typeHint:n.typeHint,url:t,mimeType:n.mimeType,body:n.body,duration:z(nk,this),width:z(ik,this),height:z(rk,this)}}"string"==typeof n.url&&n.url&&(t=n)}if(t&&"object"==typeof t&&"assets-delivery-service"===t.type){if(!z(tk,this)||"function"!=typeof z(tk,this).resolveOne)throw new Error("AssetsDeliveryService is required for assets-delivery-service manifestRef");const n=await z(tk,this).resolveOne(t,{signal:e});if(!n)throw new Error("AssetsDeliveryService returned empty result");if("string"==typeof n.encodeProfile&&n.encodeProfile&&(this.manifestRef={...t,encodeProfile:n.encodeProfile}),n.ivd)return{typeHint:"ivd",body:n.ivd};const i=n.typeHint,r=L(ck,this,dk).call(this,n.url),o=n.mimeType,s=n.body;if(r||s||o)return{typeHint:i,url:r,mimeType:o,body:s,duration:z(nk,this),width:z(ik,this),height:z(rk,this)};throw new Error("AssetsDeliveryService returned unsupported manifest shape")}if(t&&"object"==typeof t){const e=L(ck,this,dk).call(this,t.url),n=t.mimeType;if(t.body)return{url:e,mimeType:n,body:"string"==typeof t.body?t.body:JSON.stringify(t.body)}}if("string"==typeof t||t&&"string"==typeof t.url){const n="string"==typeof t?t:t.url,i=L(ck,this,dk).call(this,n),r="object"==typeof t?t.typeHint:void 0,o="object"==typeof t?t.mimeType:void 0;if("image"===Db.inferType({typeHint:r,url:i,mimeType:o})){const e="object"==typeof t&&my(t.duration)?t.duration:z(nk,this);return{typeHint:"image",url:i,mimeType:o,duration:e,width:"object"==typeof t&&my(t.width)?t.width:z(ik,this),height:"object"==typeof t&&my(t.height)?t.height:z(rk,this)}}const s=await tb(i,{returnType:"default",signal:e});return{url:i,body:s&&s.response&&"function"==typeof s.response.text?await s.response.text():void 0,mimeType:(s&&s.response&&s.response.headers&&"function"==typeof s.response.headers.get&&s.response.headers.get("content-type")?s.response.headers.get("content-type"):void 0)||o}}throw new Error("Node manifestRef is invalid or missing")}catch(t){if(qy(t,e))throw t;throw L(ck,this,kk).call(this,t),t}}async function Sk(){const t=Hb.slice().filter((t=>!this.enabledRepFilters||this.enabledRepFilters.includes(t.name)));if(t.length)for(let e=0;e<this.tracks.length;e+=1){const n=this.tracks[e],i=Array.isArray(n.segments)?n.segments:[],r=[];for(let e=0;e<i.length;e+=1){const o=i[e];if(!Array.isArray(o.representations)){r.push(o);continue}o.appliedFilters=o.appliedFilters||[];let s=o.representations;for(let e=0;e<t.length;e+=1){const{name:i,fn:r,isRelevantForTrack:a}=t[e];if(!a(n))continue;const l=await r(s,{segment:o,track:n,node:this});Array.isArray(l)&&(s=l),o.appliedFilters.push(i)}if(o.representations=s,o.representations.length){if(!o.isInit){const t=Jb(o.representations);t&&(o.offset=t.offset,o.duration=t.duration)}r.push(o)}}r.length!==i.length&&n&&"function"==typeof n.setSegments&&n.setSegments(r)}}function Ak(t,{emit:e=!1}={}){return function(t=[],e=[]){if(!Array.isArray(t)||!Array.isArray(e)||t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],r=e[n];if((null==i?void 0:i.nodeId)!==(null==r?void 0:r.nodeId)||(null==i?void 0:i.weight)!==(null==r?void 0:r.weight))return!1}return!0}(z(lk,this),t)||(j(lk,this,t),e&&(n=this)&&"function"==typeof n.trigger&&n.trigger("node:childrenchanged",{nodeId:n.id,node:n,children:Array.isArray(n.children)?n.children:[]})),this.children;var n}function Nk(){var t;const e=Array.isArray(this.disabledTrackTypes)?this.disabledTrackTypes:[];if(!e.length||!Array.isArray(this.tracks)||!this.tracks.length)return void(this.disabledTracks=[]);const n=new Set(e),i=[],r=[];this.tracks.forEach((t=>{t&&n.has(t.type)?r.push(t):t&&i.push(t)})),this.tracks=i,this.disabledTracks=r,this.mainTrackId&&!i.some((t=>t.id===this.mainTrackId))&&(this.mainTrackId=null===(t=i[0])||void 0===t?void 0:t.id)}function Mk(){if(!Array.isArray(this.tracks)||!this.tracks.length)return;const t=this.duration;if(!my(t))return;const e=[new _b({name:"nodestart",timestamp:0,data:{id:this.id},isSticky:!0}),new _b({name:"nodeend",timestamp:t,data:{id:this.id}})],n=new Sb({id:`${this.id}-auto-cue`,type:"cue",cues:e,offset:0,duration:t});this.tracks.push(n)}var Fk=new WeakMap,Ok=new WeakMap,Ck=new WeakMap,Pk=new WeakMap,Dk=new WeakSet;class Rk extends md{constructor(...t){super(...t),U(this,Dk),W(this,Fk,new Map),W(this,Ok,new Map),W(this,Ck,void 0),W(this,Pk,void 0);const[e,n]=t;j(Ck,this,e),j(Pk,this,n)}get name(){return"NodeRepository"}get defaults(){return{enabledRepFilters:["containers","force-video-codec","media-capabilities"],disabledTracks:rb("disabledTracks"),forceVideoCodec:rb("forceVideoCodec"),forceImageFallback:rb("forceImageFallback"),mediaHostRewriteMap:rb("mediaHostRewriteMap"),maxManifestLoadAttempts:3}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"get","list"])}onDispose(){z(Fk,this).forEach(((t,e)=>{const n=z(Ok,this).get(e);n&&t&&"function"==typeof t.off&&t.off(kd.NODE_CHILDREN_CHANGED,n)})),z(Ok,this).clear(),z(Fk,this).clear()}add(t){const e=t instanceof uk?t:new uk(t,{enabledRepFilters:this.settings.enabledRepFilters,disabledTracks:this.settings.disabledTracks,forceVideoCodec:this.settings.forceVideoCodec,forceImageFallback:this.settings.forceImageFallback,mediaHostRewriteMap:this.settings.mediaHostRewriteMap,maxManifestLoadAttempts:this.settings.maxManifestLoadAttempts,abrSelector:z(Ck,this),assetsDeliveryService:z(Pk,this)});if(!e.id)throw new Error("NodeRepository.add requires node with id");if(z(Fk,this).has(e.id))throw new Error(`NodeRepository.add: node with id ${e.id} already exists`);return z(Fk,this).set(e.id,e),L(Dk,this,Lk).call(this,e),this.trigger(kd.NODE_ADD,{node:e}),e}get(t){const e=(null==t?void 0:t.id)||t;if(!e)throw new Error("NodeRepository.get requires node or id");return z(Fk,this).get(e)}list(){return Array.from(z(Fk,this).values())}}function Lk(t){if(!t||"function"!=typeof t.on||!t.id)return;const e=t=>{this.trigger(kd.NODE_CHILDREN_CHANGED,t)};t.on(kd.NODE_CHILDREN_CHANGED,e),z(Ok,this).set(t.id,e)}var Bk=new WeakMap,zk=new WeakMap,Wk=new WeakSet;class jk extends md{constructor(...t){super(...t),U(this,Wk),W(this,Bk,void 0),W(this,zk,new Map);const[e]=t;j(Bk,this,e)}get name(){return"ABRSelector"}get defaults(){return{safetyMargin:.35,minBufferForUpgrade:5,minBufferCritical:1,hysteresisRatio:1.1,abrStrategy:rb("abrStrategy")}}select(t={}){var e;const{representations:n=[],bufferSeconds:i}=t;if(!Array.isArray(n)||0===n.length)return;const r=z(Bk,this)&&"function"==typeof z(Bk,this).getKbps?z(Bk,this).getKbps():void 0,o=L(Wk,this,Uk).call(this,n[0]),s=z(zk,this).get(o),a=this.settings.abrStrategy||"auto";this.log.debug(`[select] strategy=${a}, bw=${r}, buffer=${i}, prev=${s}`);const l=n.slice().sort(((t,e)=>L(Wk,this,$k).call(this,t.bandwidth)-L(Wk,this,$k).call(this,e.bandwidth)));if("bottom"===a){const e=l[0];return L(Wk,this,Gk).call(this,e,t,{decisionReason:"strategy:bottom",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}if("top"===a){const e=l[l.length-1];return L(Wk,this,Gk).call(this,e,t,{decisionReason:"strategy:top",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}if("random"===a){const e=l[Math.floor(Math.random()*l.length)];return L(Wk,this,Gk).call(this,e,t,{decisionReason:"strategy:random",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}const c=Number.isFinite(i)?i:void 0,u=my(r)?r*this.settings.safetyMargin:void 0;let d="auto:highest-available";if(s&&void 0!==c&&c<this.settings.minBufferCritical){const e=l[0];return this.log.debug("[select] critical buffer -> lowest",t),L(Wk,this,Gk).call(this,e,t,{decisionReason:"auto:critical-buffer",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:u,bufferSeconds:c}),null==e?void 0:e.id}let h=l[l.length-1];if(void 0!==u){const e=l.filter((t=>L(Wk,this,$k).call(this,t.bandwidth)<=u));e.length>0?(h=e[e.length-1],d="auto:highest-under-safe-bandwidth",this.log.debug("[select] under safe bandwidth ->",h.id,t)):(this.log.debug("[select] no rep under safe bandwidth, fallback lowest",t),h=l[0],d="auto:no-rep-under-safe-bandwidth")}if(s&&void 0!==c&&c<this.settings.minBufferForUpgrade){const e=n.find((t=>t.id===s));e&&my(e.bandwidth)&&my(h.bandwidth)&&h.bandwidth/e.bandwidth>this.settings.hysteresisRatio&&(h=n.filter((t=>t.bandwidth&&t.bandwidth<=e.bandwidth*this.settings.hysteresisRatio)).sort(((t,e)=>t.bandwidth-e.bandwidth)).pop()||e,d="auto:hysteresis-hold",this.log.debug("[select] hysteresis prevents upgrade; hold",h.id,t))}return L(Wk,this,Gk).call(this,h,t,{decisionReason:d,trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:u,bufferSeconds:c}),null===(e=h)||void 0===e?void 0:e.id}onDispose(){z(zk,this).clear(),j(Bk,this,null)}}function Uk(t){var e,n;return(null===(e=t.mime)||void 0===e||null===(n=e.split)||void 0===n||null===(n=n.call(e,"/"))||void 0===n?void 0:n[0])||"unknown"}function $k(t){return my(t)?t/1e3:0}function qk(t){return my(t)?t/1e3:void 0}function Vk(t,e,n={}){const i=Array.isArray(null==e?void 0:e.representations)?e.representations.map((t=>({id:null==t?void 0:t.id,bandwidthKbps:L(Wk,this,qk).call(this,null==t?void 0:t.bandwidth)}))):[];return{timeMs:Date.now(),strategy:this.settings.abrStrategy||"auto",decisionReason:n.decisionReason,nodeId:null==e?void 0:e.nodeId,trackId:null==e?void 0:e.trackId,segmentId:null==e?void 0:e.segmentId,trackType:n.trackType,measuredDownloadSpeedKbps:Number.isFinite(n.measuredDownloadSpeedKbps)?n.measuredDownloadSpeedKbps:void 0,safeBandwidthKbps:Number.isFinite(n.safeBandwidthKbps)?n.safeBandwidthKbps:void 0,bufferSeconds:Number.isFinite(n.bufferSeconds)?n.bufferSeconds:void 0,previousRepresentationId:n.previousRepresentationId,selectedRepresentationId:null==t?void 0:t.id,selectedRepresentationBandwidthKbps:L(Wk,this,qk).call(this,null==t?void 0:t.bandwidth),safetyMargin:Number(this.settings.safetyMargin),minBufferForUpgrade:Number(this.settings.minBufferForUpgrade),minBufferCritical:Number(this.settings.minBufferCritical),hysteresisRatio:Number(this.settings.hysteresisRatio),availableRepresentations:i}}function Gk(t,e,n={}){if(!t)return;const i=L(Wk,this,Vk).call(this,t,e,n);e&&"object"==typeof e&&(e.abrDecision=i),this.log.info("[select] Chosen representation:",t,"context:",e,"decision:",i),this.trigger("abr:selection",{representation:t,context:e,strategy:this.settings.abrStrategy,decision:i});const r=L(Wk,this,Uk).call(this,t);z(zk,this).set(r,t.id)}var Hk=new WeakMap,Kk=new WeakSet;class Xk extends md{constructor(...t){super(...t),U(this,Kk),W(this,Hk,void 0);const[e]=t;if(j(Hk,this,e),!z(Hk,this)||"function"!=typeof z(Hk,this).list)throw new Error("NodePrioritizer requires a NodeRepository instance")}get name(){return"NodePrioritizer"}get defaults(){return{levelMultiplier:1,priorityMultiplier:.3}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"sortNodes"])}onDispose(){j(Hk,this,null)}getPrioritizationSnapshot(t){const e=z(Hk,this).list();if(!e.length)return{orderedIds:[],reachableIds:[]};const{levels:n,weights:i}=L(Kk,this,Yk).call(this,e,t);return{orderedIds:L(Kk,this,Qk).call(this,e,n,i),reachableIds:Array.from(n.keys())}}sortNodes(t){const{orderedIds:e}=this.getPrioritizationSnapshot(t);return e.length?(this.log.info(`[sortNodes(${t})] Sorted nodes: [${e.join(", ")}]`),e):[]}getReachableNodeIds(t){const{reachableIds:e}=this.getPrioritizationSnapshot(t);return e}}function Yk(t,e){const n=new Map;t.forEach((t=>{t&&t.id&&n.set(t.id,t)}));const i=new Map,r=new Map;if(!e||!n.has(e))return{levels:i,weights:r};const o=[{id:e,level:0,priority:1}];for(i.set(e,0),r.set(e,1);o.length;){const{id:t,level:e,priority:s}=o.shift(),a=n.get(t),l=Array.isArray(null==a?void 0:a.children)?a.children:[];for(let t=0;t<l.length;t+=1){const a=l[t],c=(null==a?void 0:a.nodeId)||(null==a?void 0:a.id);if(!c||!n.has(c)||i.has(c))continue;const u=my(null==a?void 0:a.weight)?a.weight:1,d=Math.max(u,s);i.set(c,e+1),r.set(c,d),o.push({id:c,level:e+1,priority:d})}}return{levels:i,weights:r}}function Qk(t,e,n){const i=e.size>0,{levelMultiplier:r,priorityMultiplier:o}=this.settings,s=t.map((t=>{var s;const a=e.has(t.id)?e.get(t.id):i?Number.MAX_SAFE_INTEGER:0,l=Number.isFinite(a)?a:Number.MAX_SAFE_INTEGER,c=null!==(s=n.get(t.id))&&void 0!==s?s:1,u=(Number.isFinite(l)?r*l:Number.MAX_SAFE_INTEGER)+o*c;return{id:t.id,score:u,level:l,priorityWeight:c}}));return s.sort(((t,e)=>t.score!==e.score?t.score-e.score:t.level!==e.level?t.level-e.level:t.priorityWeight!==e.priorityWeight?t.priorityWeight-e.priorityWeight:t.id.localeCompare(e.id))),s.map((t=>t.id))}function Jk(t,e){return function(t,e){const n=Array.isArray(t)?t:[];return n.length?e&&n.includes(e)?e:n[0]:e||void 0}(null==t?void 0:t.availableEncodeProfiles,e)}function Zk(t,e){const n=t&&"object"==typeof t?{...t}:t;return n&&"object"==typeof n?("string"==typeof e&&e?n.encodeProfile=e:delete n.encodeProfile,n):n}function tw(t){return"string"==typeof t&&t.startsWith("cmaf:")}function ew(t){return"image"===(null==t?void 0:t.assetType)?"image":"ivd"}function nw(t){if(!t||"object"!=typeof t)return t;if(Object.prototype.hasOwnProperty.call(t,"mpd")){const e="string"==typeof t.mpdUrl&&t.mpdUrl||"string"==typeof t.url&&t.url||void 0;return{typeHint:"dash",body:t.mpd,url:e}}return t.ivd||t.url||t.body||t.mimeType||t.typeHint?t:(e=t)&&"object"==typeof e&&Array.isArray(e.representations)?{ivd:t}:t;var e}var iw=new WeakMap,rw=new WeakMap,ow=new WeakSet;class sw extends md{constructor(...t){super(...t),U(this,ow),W(this,iw,void 0),W(this,rw,void 0);const[,e={}]=t;j(iw,this,"function"==typeof e.fetchFn?e.fetchFn:void 0),j(rw,this,Uy())}get name(){return"AssetsDeliveryService"}get defaults(){return{assetsDeliveryServiceUrl:"https://assets.eko.com",profile:rb("encodeProfile"),maxBatchSize:5,imageQueryParams:{startOffset:0,width:1024}}}async resolveOne(t,e={}){var n;const i=await this.resolve([t],e);if(!i.length)return;const r=i[0],o=null==r?void 0:r.manifest,s=null==r||null===(n=r.manifestRef)||void 0===n?void 0:n.encodeProfile;return o&&"object"==typeof o&&"string"==typeof s&&s?{...o,encodeProfile:s}:o}resolveImageOne(t){if(!L(ow,this,lw).call(this,t))return;const e=Jk(t,this.settings.profile),n=function(t,e,n){const i=function(t,e,n){const i=(t||"").replace(/\/$/,""),r=null==n?void 0:n.assetId,o=null==n?void 0:n.assetRevision;if(i&&e&&"string"==typeof r&&"number"==typeof o)return`${i}/${e}/${encodeURIComponent(r)}/${o}`}(t,"image",e);if(!i)return;const r=function(t){if(!t||"object"!=typeof t||Array.isArray(t))return"";const e=new URLSearchParams;return Object.keys(t).forEach((n=>{if("string"!=typeof n||!n)return;const i=t[n];null!=i&&("number"!=typeof i||Number.isFinite(i))&&("string"!=typeof i&&"number"!=typeof i&&"boolean"!=typeof i||e.set(n,String(i)))})),e.toString()}(n);return r?`${i}?${r}`:i}(this.settings.assetsDeliveryServiceUrl||"",t,this.settings.imageQueryParams);if(!n)return;const i={typeHint:"image",url:n};return"string"==typeof e&&e&&(i.encodeProfile=e),i}async resolve(t=[],e={}){const n=(Array.isArray(t)?t:[t]).filter((t=>L(ow,this,lw).call(this,t)));if(!n.length)return[];const i=L(ow,this,aw).call(this,e);if(i&&i.aborted)return[];const r=[],o=this.settings.profile;n.forEach((t=>{if("image"!==ew(t))return;const e=this.resolveImageOne(t);e&&e.url&&r.push({manifestRef:Zk(t,e.encodeProfile),manifest:{typeHint:"image",url:e.url}})}));const s=n.filter((t=>"image"!==ew(t))).map((t=>function(t,e){const n=Jk(t,e);return{ref:t,profile:n,route:tw(n)?"dash":"ivd"}}(t,o))),a=L(ow,this,uw).call(this,s);for(const{refs:t,route:e}of a){if(i&&i.aborted)return r;const{url:n}=L(ow,this,dw).call(this,t,e),o=await L(ow,this,hw).call(this,n,{method:"GET",signal:i});o&&"object"==typeof o&&t.forEach((({ref:t,profile:e})=>{const n=`${t.assetId}:${t.assetRevision}`,i=o[n]||o[t.assetId]||o[t.assetId||n];i&&r.push({manifestRef:Zk(t,e),manifest:nw(i)})}))}return r}onDispose(){z(rw,this)&&z(rw,this).abort(),j(rw,this,null),j(iw,this,null)}}function aw(t){return t&&t.signal?t.signal:z(rw,this)?z(rw,this).signal:void 0}function lw(t){const e="number"==typeof(null==t?void 0:t.assetRevision)&&Number.isFinite(t.assetRevision)&&t.assetRevision>=0;return t&&"assets-delivery-service"===t.type&&"string"==typeof t.assetId&&e}function cw(t,e){const n=Number.isFinite(e)&&e>0?e:t.length,i=[];for(let e=0;e<t.length;e+=n)i.push(t.slice(e,e+n));return i}function uw(t){if(!Array.isArray(t)||!t.length)return[];const e=[];t.forEach((t=>{const n=e[e.length-1];n&&n.route===t.route?n.refs.push(t):e.push({route:t.route,refs:[t]})}));const n=[];return e.forEach((t=>{L(ow,this,cw).call(this,t.refs,this.settings.maxBatchSize).forEach((e=>{n.push({route:t.route,refs:e})}))})),n}function dw(t,e="ivd"){const n=t.map((({ref:t,profile:e})=>function(t,e){const n=`${t.assetId}:${t.assetRevision}`;return e?`${n}:${e}`:n}(t,e))),i=new URLSearchParams({assets:n.join(","),type:"data"});return{url:`${(this.settings.assetsDeliveryServiceUrl||"").replace(/\/$/,"")}/${"dash"===e?"dash":"ivd"}?${i.toString()}`}}async function hw(t,e){return z(iw,this)?z(iw,this).call(this,t,e):await tb(t,{returnType:"json",method:(null==e?void 0:e.method)||"GET",signal:null==e?void 0:e.signal})}function fw({prioritizer:t,repository:e,startNodeId:n,prioritizedIds:i,pendingIds:r,allowedIds:o,filter:s,fallbackToRepository:a=!0}={}){const l=Array.isArray(i)?i:t&&"function"==typeof t.sortNodes?t.sortNodes(n):[],c=a?(f=e)&&"function"==typeof f.list?f.list().map((t=>null==t?void 0:t.id)).filter(Boolean):[]:[],u=l.length?l:c,d=r?new Set(r):null,h=o?new Set(o):null;var f;return u.filter((t=>{if(!t)return!1;if(d&&d.has(t))return!1;if(h&&!h.has(t))return!1;const n=function(t,e){if(t&&"function"==typeof t.get)return t.get(e)}(e,t);return!(!n||"function"==typeof s&&!s(n,t))}))}const pw=(yd.requestAnimationFrame||yd.mozRequestAnimationFrame||yd.webkitRequestAnimationFrame||yd.msRequestAnimationFrame||(t=>yd.setTimeout(t,1e3/60))).bind(yd),mw=(yd.cancelAnimationFrame||yd.mozCancelAnimationFrame||yd.webkitCancelAnimationFrame||yd.msCancelAnimationFrame||(t=>yd.clearTimeout(t))).bind(yd),vw=ld("ticker","warn");let gw,yw=[],bw=null,kw=jy();function ww(){kw=jy();const t=[];let e,n;for(n=yw.length-1;n>=0;--n)e=yw[n],kw>=e.lastTick+e.interval&&t.push(e);for(n=t.length-1;n>=0;--n)if(e=t[n],!e.stopped){e.lastTick=kw;try{e.callback()}catch(t){console&&"function"==typeof console.error?console.error(t):vw.error(t)}}gw=pw(ww)}function xw(){jy()-kw>=200&&(mw(gw),ww())}function _w(t){let e=-1;for(let n=0;n<yw.length;n+=1)if(yw[n].callback===t){e=n;break}return e}function Tw(t,e=0){if(!t||"function"!=typeof t||"number"!=typeof e||e<0)return void vw.error("[start] Invalid arguments given to start method.",arguments);const n=_w(t);return-1!==n?(vw.debug("[start] Callback already exists, overriding interval.",arguments),yw[n].interval=e,t):(yw.push({callback:t,interval:e,lastTick:jy()}),1===yw.length&&(gw=pw(ww),bw||(bw=yd.setInterval(xw,1e3))),t)}function Iw(t){const e=_w(t);-1!==e?(yw[e].stopped=!0,yw.splice(e,1),yw.length||(mw(gw),yd.clearInterval(bw),bw=null)):vw.debug("[stop] Callback not found, doing nothing.",arguments)}function Ew(t){return-1!==_w(t)}function Sw(t,e,n){const i="number"==typeof n?n:(null==n?void 0:n.maxQueueSize)||Number.POSITIVE_INFINITY,r=null!=n&&n.immediatelyFlushFirst?"boolean"==typeof n.immediatelyFlushFirst?n.immediatelyFlushFirst?1:0:Number(n.immediatelyFlushFirst):0;let o=0;if("function"!=typeof t)return void vw.error("[createThrottler] Bad argument given to createThrottler, first argument must be a function.",arguments);vw.debug("[createThrottler] Creating a new throttler instance.",arguments);const s=[];function a(){vw.debug("[onThrottlerTick] Calling callback with "+s.length+" queued items.");const e=s.slice(0);s.length=0,Iw(a),t(e)}const l={push:function(t){vw.debug("[push] Queuing argument:",t),0===s.length&&Tw(a,e),s.push(t),o+=1,(o<=r||s.length>=i)&&a()},flush:function(){vw.debug("[flush] Flushing queue."),0!==s.length&&a()},dispose:function(){vw.debug("[dispose] Disposing of throttler.");const t=s.slice(0);return s.length=0,Iw(a),t}};return Object.defineProperty(l,"interval",{enumerable:!0,get:function(){return e},set:function(t){"number"==typeof t&&(e=t)}}),l}function Aw(t,e){if(t&&"function"==typeof t)return t.__tickerThrottler||(t.__tickerThrottler=Sw((function(){t()}),e)),"number"==typeof e&&(t.__tickerThrottler.interval=e),t.__tickerThrottler.push(),t.__tickerThrottler;vw.error("[scheduleExecution] Bad argument given to scheduleExecution, first argument must be a function.",arguments)}var Nw=new WeakMap,Mw=new WeakMap,Fw=new WeakMap,Ow=new WeakMap,Cw=new WeakMap,Pw=new WeakMap,Dw=new WeakMap,Rw=new WeakMap,Lw=new WeakMap,Bw=new WeakMap,zw=new WeakMap,Ww=new WeakMap,jw=new WeakMap,Uw=new WeakMap,$w=new WeakMap,qw=new WeakMap,Vw=new WeakSet;class Gw extends md{constructor(...t){super(...t),U(this,Vw),W(this,Nw,void 0),W(this,Mw,void 0),W(this,Fw,void 0),W(this,Ow,void 0),W(this,Cw,[]),W(this,Pw,[]),W(this,Dw,new Set),W(this,Rw,new Set),W(this,Lw,!1),W(this,Bw,void 0),W(this,zw,void 0),W(this,Ww,void 0),W(this,jw,void 0),W(this,Uw,void 0),W(this,$w,void 0),W(this,qw,void 0);const[e,n,i,r]=t;j(Nw,this,e),j(Mw,this,n),j(Fw,this,i),j(Ow,this,r),j(Bw,this,Uy());const o=t.length?t[t.length-1]:void 0,s=o&&"object"==typeof o&&Number.isFinite(o.maxConcurrent)?o.maxConcurrent:void 0;Number.isFinite(s)&&(this.settings.maxConcurrent=s),j(qw,this,(()=>L(Vw,this,ix).call(this))),L(Vw,this,Yw).call(this),L(Vw,this,Xw).call(this)}get name(){return"NodeResolver"}get defaults(){return{maxConcurrent:5}}onDispose(){var t;z(Bw,this)&&z(Bw,this).abort(),j(Bw,this,null),z(Ow,this)&&"function"==typeof z(Ow,this).off&&z(Ww,this)&&z(Ow,this).off(kd.PLACEMENT_ADDED,z(Ww,this)),z(Ow,this)&&"function"==typeof z(Ow,this).off&&z($w,this)&&z(Ow,this).off(kd.TIMELINE_RESET,z($w,this)),z(Nw,this)&&"function"==typeof z(Nw,this).off&&z(jw,this)&&z(Nw,this).off(kd.NODE_ADD,z(jw,this)),z(Nw,this)&&"function"==typeof z(Nw,this).off&&z(Uw,this)&&z(Nw,this).off(kd.NODE_CHILDREN_CHANGED,z(Uw,this)),j(Ww,this,null),j(jw,this,null),j(Uw,this,null),j($w,this,null),j(Cw,this,[]),j(Pw,this,[]),z(Dw,this).clear(),z(Rw,this).clear(),j(Lw,this,!1),j(zw,this,void 0),null!==(t=z(qw,this))&&void 0!==t&&t.__tickerThrottler&&z(qw,this).__tickerThrottler.dispose(),j(qw,this,null)}}function Hw(){return z(Bw,this)?z(Bw,this).signal:void 0}function Kw(){return this._disposed||z(Bw,this)&&z(Bw,this).signal.aborted}function Xw(){z(Ow,this)&&"function"==typeof z(Ow,this).on&&(j(Ww,this,(t=>{L(Vw,this,Jw).call(this,null==t?void 0:t.nodeId)})),z(Ow,this).on(kd.PLACEMENT_ADDED,z(Ww,this)),j($w,this,(()=>L(Vw,this,Qw).call(this))),z(Ow,this).on(kd.TIMELINE_RESET,z($w,this))),z(Nw,this)&&"function"==typeof z(Nw,this).on&&(j(jw,this,(({node:t})=>{(null==t?void 0:t.id)&&L(Vw,this,Jw).call(this,t.id,{fromRepoAdd:!0})})),z(Nw,this).on(kd.NODE_ADD,z(jw,this)),j(Uw,this,(()=>{Aw(z(qw,this),100)})),z(Nw,this).on(kd.NODE_CHILDREN_CHANGED,z(Uw,this)))}function Yw(){const t=z(Ow,this)&&Array.isArray(z(Ow,this).placements)?z(Ow,this).placements:[];t.forEach((t=>L(Vw,this,Jw).call(this,t.nodeId)));const e=t.length?t[t.length-1]:void 0;e&&e.nodeId&&j(zw,this,e.nodeId)}function Qw(){z(Bw,this)&&z(Bw,this).abort(),j(Bw,this,Uy()),j(Cw,this,[]),j(Pw,this,[]),z(Dw,this).clear(),j(Lw,this,!1),j(zw,this,void 0)}function Jw(t,{fromRepoAdd:e=!1}={}){L(Vw,this,Kw).call(this)||t&&(z(Rw,this).has(t)||z(Dw,this).has(t)||(z(Cw,this).push(t),z(zw,this)||e||j(zw,this,t),!z(Lw,this)&&e||L(Vw,this,Zw).call(this)))}function Zw(){if(z(Lw,this))return void L(Vw,this,tx).call(this);if(0===z(Cw,this).length)return;j(Lw,this,!0);const t=z(Cw,this).shift();L(Vw,this,rx).call(this,t).finally((()=>{L(Vw,this,tx).call(this)}))}async function tx(){if(!L(Vw,this,Kw).call(this))for(z(Cw,this).length||z(Pw,this).length||j(Pw,this,L(Vw,this,ex).call(this));z(Dw,this).size<this.settings.maxConcurrent;){const t=this.settings.maxConcurrent-z(Dw,this).size;if(t<=0)break;const e=[];for(;e.length<t&&(z(Cw,this).length||z(Pw,this).length);){let t=z(Cw,this).shift();t||(t=z(Pw,this).shift()),t&&e.push(t)}if(!e.length)break;const n=L(Vw,this,ox).call(this,e);n.length&&z(Fw,this)&&"function"==typeof z(Fw,this).resolve&&L(Vw,this,sx).call(this,n).finally((()=>L(Vw,this,tx).call(this))),e.filter((t=>!n.find((e=>e.nodeId===t)))).forEach((t=>{L(Vw,this,rx).call(this,t).finally((()=>L(Vw,this,tx).call(this)))}))}}function ex(){const t=new Set([...z(Rw,this),...z(Dw,this),...z(Cw,this)]);return L(Vw,this,nx).call(this,t)}function nx(t){const e=z(Ow,this)&&Array.isArray(z(Ow,this).placements)?z(Ow,this).placements:[],n=(e.length?e[e.length-1].nodeId:void 0)||z(zw,this);return fw({prioritizer:z(Mw,this),repository:z(Nw,this),startNodeId:n,pendingIds:t,fallbackToRepository:!1})}function ix(){L(Vw,this,Kw).call(this)||(z(Lw,this)||0!==z(Cw,this).length)&&(j(Pw,this,L(Vw,this,ex).call(this)),z(Lw,this)&&L(Vw,this,tx).call(this))}async function rx(t,e){if(!t||z(Rw,this).has(t)||z(Dw,this).has(t))return;const n=L(Vw,this,Hw).call(this);if(n&&n.aborted)return;const i=z(Nw,this)&&"function"==typeof z(Nw,this).get?z(Nw,this).get(t):void 0;if(i&&"function"==typeof i.resolve)if("function"==typeof i.hasExceededManifestLoadAttempts&&i.hasExceededManifestLoadAttempts())z(Rw,this).add(t);else{z(Dw,this).add(t);try{const r={signal:n};e&&(r.manifestOverride=e),await i.resolve(r),z(Rw,this).add(t)}catch(e){if(qy(e,n))return;this.log.warn(`NodeResolver failed to resolve node ${t}: ${(null==e?void 0:e.message)||e}`),"function"==typeof i.hasExceededManifestLoadAttempts&&i.hasExceededManifestLoadAttempts()&&z(Rw,this).add(t)}finally{z(Dw,this).delete(t)}}}function ox(t){const e=[];return t.forEach((t=>{const n=z(Nw,this)&&"function"==typeof z(Nw,this).get?z(Nw,this).get(t):void 0;n&&n.manifestRef&&"assets-delivery-service"===n.manifestRef.type&&e.push({nodeId:t,ref:n.manifestRef})})),e}async function sx(t){const e=L(Vw,this,Hw).call(this);if(!e||!e.aborted){t.forEach((({nodeId:t})=>z(Dw,this).add(t)));try{const n=t.map((t=>t.ref)),i=await z(Fw,this).resolve(n,{signal:e});t.forEach((({nodeId:t,ref:e})=>{var n;const r=z(Nw,this)&&"function"==typeof z(Nw,this).get?z(Nw,this).get(t):void 0;if(z(Dw,this).delete(t),!r||"function"!=typeof r.resolve)return;const o=Array.isArray(i)?i.find((t=>{const n=null==t?void 0:t.manifestRef;return n&&n.assetId===e.assetId&&n.assetRevision===e.assetRevision})):void 0,s="string"==typeof(null==o||null===(n=o.manifestRef)||void 0===n?void 0:n.encodeProfile)&&o.manifestRef.encodeProfile?o.manifestRef.encodeProfile:void 0,a=o?L(Vw,this,ax).call(this,o.manifest,s):void 0;L(Vw,this,rx).call(this,t,a)}))}catch(n){qy(n,e)||this.log.warn(`NodeResolver ADS batch failed: ${(null==n?void 0:n.message)||n}`),t.forEach((({nodeId:t})=>z(Dw,this).delete(t)))}}}function ax(t,e){if(!t)return;const n="string"==typeof e&&e?e:void 0,i=t=>n&&t&&"object"==typeof t?{...t,encodeProfile:n}:t;return t.ivd?i({typeHint:"ivd",body:t.ivd}):t.url||t.body||t.mimeType?i({typeHint:t.typeHint,url:t.url,mimeType:t.mimeType,body:t.body}):i(t)}const lx=.001,cx="priority";function ux(t){const e=Number(t);return Number.isFinite(e)?e:0}var dx=new WeakMap,hx=new WeakMap,fx=new WeakMap,px=new WeakMap,mx=new WeakMap,vx=new WeakMap,gx=new WeakMap,yx=new WeakMap,bx=new WeakMap,kx=new WeakMap,wx=new WeakMap,xx=new WeakMap,_x=new WeakMap,Tx=new WeakMap,Ix=new WeakMap,Ex=new WeakMap,Sx=new WeakMap,Ax=new WeakMap,Nx=new WeakMap,Mx=new WeakMap,Fx=new WeakSet;class Ox extends md{constructor(...t){super(...t),U(this,Fx),W(this,dx,void 0),W(this,hx,void 0),W(this,fx,void 0),W(this,px,new Map),W(this,mx,new Map),W(this,vx,[]),W(this,gx,new Set),W(this,yx,new Map),W(this,bx,!1),W(this,kx,void 0),W(this,wx,void 0),W(this,xx,void 0),W(this,_x,void 0),W(this,Tx,void 0),W(this,Ix,void 0),W(this,Ex,void 0),W(this,Sx,void 0),W(this,Ax,!1),W(this,Nx,[]),W(this,Mx,void 0);const[e,n,i]=t;j(dx,this,e),j(hx,this,n),j(fx,this,i),j(wx,this,Uy()),j(Mx,this,(()=>L(Fx,this,p_).call(this))),L(Fx,this,Hx).call(this)}get name(){return"SegmentLoadCoordinator"}get defaults(){return{maxConcurrentLoads:3,maxSegmentLoadAttempts:3}}onDispose(){var t;z(wx,this)&&z(wx,this).abort(),j(wx,this,null),z(yx,this).size&&z(yx,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),z(yx,this).clear(),z(fx,this)&&"function"==typeof z(fx,this).off&&(z(xx,this)&&z(fx,this).off(kd.PLACEMENT_ADDED,z(xx,this)),z(Tx,this)&&z(fx,this).off(kd.TIMELINE_SEEKING,z(Tx,this)),z(Ix,this)&&z(fx,this).off(kd.TIMELINE_SEEKED,z(Ix,this)),z(Ex,this)&&z(fx,this).off(kd.TIMELINE_RESET,z(Ex,this))),z(dx,this)&&"function"==typeof z(dx,this).off&&z(_x,this)&&z(dx,this).off(kd.NODE_CHILDREN_CHANGED,z(_x,this)),z(Sx,this)&&"function"==typeof yd.removeEventListener&&yd.removeEventListener("online",z(Sx,this)),j(xx,this,null),j(_x,this,null),j(Tx,this,null),j(Ix,this,null),j(Ex,this,null),j(Sx,this,null),z(px,this).clear(),z(mx,this).clear(),j(vx,this,[]),z(gx,this).clear(),z(yx,this).clear(),j(bx,this,!1),j(kx,this,void 0),j(Ax,this,!1),j(Nx,this,[]),null!==(t=z(Mx,this))&&void 0!==t&&t.__tickerThrottler&&z(Mx,this).__tickerThrottler.dispose(),j(Mx,this,null)}}function Cx(){return z(wx,this)?z(wx,this).signal:void 0}function Px(){return this._disposed||z(wx,this)&&z(wx,this).signal.aborted}function Dx(){const t=Number(this.settings.maxSegmentLoadAttempts);return Number.isFinite(t)&&t>0?t:1/0}function Rx(t){const e=L(Fx,this,Dx).call(this);if(!Number.isFinite(e)||e===1/0)return!1;if(null==t||!t.loadError)return!1;const n=Number(t.loadAttempts);return Number.isFinite(n)&&n>=e}function Lx(t){return!!t&&(!!L(Fx,this,Rx).call(this,t)||L(Fx,this,Bx).call(this,t))}function Bx(t){if(!t)return!1;if("boolean"==typeof t.isLoaded)return t.isLoaded;const e=Number(t.retainedByteLength);return Number.isFinite(e)&&e>0}function zx(t){if(!t||L(Fx,this,Bx).call(this,t))return;const e=Number(t.loadAttempts);(Number.isFinite(e)&&e>0||t.loadError)&&("function"==typeof t.evict&&t.evict(),t.loadAttempts=0,t.loadError=void 0)}function Wx(t){t&&(t.manifestLoadError&&(t.manifestLoadAttempts=0,t.manifestLoadError=void 0,"failed"===t.state&&(t.state="pending",t.error=void 0)),(Array.isArray(t.tracks)?t.tracks:[]).forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{L(Fx,this,zx).call(this,t)}))})))}function jx(){(z(dx,this)&&"function"==typeof z(dx,this).list?z(dx,this).list():[]).forEach((t=>{L(Fx,this,Wx).call(this,t)}))}function Ux(t,{allowSeekKeep:e=!1,segmentOffset:n}={}){const i=Uy(),r=i?i.signal:L(Fx,this,Cx).call(this);return t&&z(yx,this).set(t,{controller:i,allowSeekKeep:!!e,segmentOffset:n}),{signal:r,controller:i}}function $x(t,e,n={}){const i=z(yx,this).get(t);i&&i.controller===e&&(Object.prototype.hasOwnProperty.call(n,"allowSeekKeep")&&(i.allowSeekKeep=!!n.allowSeekKeep),Object.prototype.hasOwnProperty.call(n,"segmentOffset")&&(i.segmentOffset=n.segmentOffset))}function qx(t,e){const n=z(yx,this).get(t);n&&(e&&n.controller!==e||z(yx,this).delete(t))}function Vx(t,e){const n=new Set;return(Array.isArray(t)?t:[]).forEach((t=>{const i=null==t?void 0:t.nodeId;if(!i)return;const r=z(dx,this)&&"function"==typeof z(dx,this).get?z(dx,this).get(i):void 0;if(!r)return;const o=L(Fx,this,r_).call(this,r,t,e);Number.isFinite(o)&&n.add(`${i}:${o}`)})),n}function Gx(t){z(yx,this).size&&z(yx,this).forEach(((e,n)=>{const i=null==e?void 0:e.segmentOffset,r=Number.isFinite(i)?`${n}:${i}`:"";!(null!=e&&e.allowSeekKeep&&r&&t&&t.has(r))&&(null==e?void 0:e.controller)&&e.controller.abort()}))}function Hx(){z(fx,this)&&"function"==typeof z(fx,this).on&&(j(xx,this,(t=>{L(Fx,this,Zx).call(this,t)})),z(fx,this).on(kd.PLACEMENT_ADDED,z(xx,this)),j(Tx,this,(t=>L(Fx,this,Kx).call(this,t))),z(fx,this).on(kd.TIMELINE_SEEKING,z(Tx,this)),j(Ix,this,(t=>L(Fx,this,Xx).call(this,t))),z(fx,this).on(kd.TIMELINE_SEEKED,z(Ix,this)),j(Ex,this,(()=>L(Fx,this,Jx).call(this))),z(fx,this).on(kd.TIMELINE_RESET,z(Ex,this))),z(dx,this)&&"function"==typeof z(dx,this).on&&(j(_x,this,(()=>{Aw(z(Mx,this),100)})),z(dx,this).on(kd.NODE_CHILDREN_CHANGED,z(_x,this))),"function"==typeof yd.addEventListener&&(j(Sx,this,(()=>L(Fx,this,Qx).call(this))),yd.addEventListener("online",z(Sx,this)))}function Kx(t={}){if(L(Fx,this,Px).call(this))return;const e=Number(null==t?void 0:t.targetTime);if(!Number.isFinite(e))return;const n=Array.isArray(null==t?void 0:t.placements)?t.placements:[],i=L(Fx,this,Vx).call(this,n,e);L(Fx,this,Gx).call(this,i),j(Ax,this,!0),j(Nx,this,n.map((t=>{const n=null==t?void 0:t.nodeId;if(n)return{nodeId:n,placement:t,targetTime:e}})).filter(Boolean)),setTimeout((()=>L(Fx,this,e_).call(this)),0)}function Xx(t={}){var e;if(L(Fx,this,Px).call(this))return;j(Ax,this,!1),j(Nx,this,[]);const n=Number.isFinite(null==t?void 0:t.targetTime)?Number(t.targetTime):Number(null===(e=z(fx,this))||void 0===e?void 0:e.currentTime);L(Fx,this,Yx).call(this,n),setTimeout((()=>L(Fx,this,e_).call(this)),0)}function Yx(t){var e;(Array.isArray(null===(e=z(fx,this))||void 0===e?void 0:e.placements)?z(fx,this).placements:[]).forEach((e=>{if(!e)return;const n=Sm(e);if(Number.isFinite(n)){if(Number.isFinite(t)){if(n>=t)return void L(Fx,this,Zx).call(this,e);const i=Im(e,z(dx,this));return Number.isFinite(i)?void(n+i>t&&L(Fx,this,Zx).call(this,e)):void(n<=t&&L(Fx,this,Zx).call(this,e))}L(Fx,this,Zx).call(this,e)}}))}function Qx(){var t;L(Fx,this,Px).call(this)||(L(Fx,this,jx).call(this),j(Ax,this,!1),j(Nx,this,[]),L(Fx,this,Yx).call(this,Number(null===(t=z(fx,this))||void 0===t?void 0:t.currentTime)),j(vx,this,L(Fx,this,h_).call(this)),setTimeout((()=>L(Fx,this,e_).call(this)),0))}function Jx(){z(wx,this)&&z(wx,this).abort(),j(wx,this,Uy()),z(yx,this).size&&z(yx,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),z(yx,this).clear(),z(px,this).clear(),z(mx,this).clear(),j(vx,this,[]),z(gx,this).clear(),j(bx,this,!1),j(kx,this,void 0),j(Ax,this,!1),j(Nx,this,[])}function Zx(t){if(L(Fx,this,Px).call(this))return;const e=null==t?void 0:t.nodeId;if(!e)return;const n=z(px,this).get(e);if(n){const i=Sm(n),r=Sm(t);Number.isFinite(i)?Number.isFinite(r)&&r<i&&z(px,this).set(e,t):Number.isFinite(r)&&z(px,this).set(e,t)}else z(px,this).set(e,t);const i=z(kx,this);j(kx,this,e),i&&i!==e&&j(vx,this,[]),z(bx,this)?setTimeout((()=>L(Fx,this,e_).call(this)),0):L(Fx,this,t_).call(this)}function t_(){z(bx,this)||z(px,this).size&&(j(bx,this,!0),L(Fx,this,e_).call(this))}async function e_(){if(L(Fx,this,Px).call(this))return;if(z(gx,this).size>=this.settings.maxConcurrentLoads)return;if(z(Ax,this))return void(z(Nx,this).length&&L(Fx,this,n_).call(this));const t=L(Fx,this,a_).call(this);if(t.hasPending)L(Fx,this,l_).call(this,t);else for(z(vx,this).length||j(vx,this,L(Fx,this,h_).call(this));z(gx,this).size<this.settings.maxConcurrentLoads&&z(vx,this).length;){const t=z(vx,this).shift();L(Fx,this,m_).call(this,t,"partial").finally((()=>{setTimeout((()=>L(Fx,this,e_).call(this)),0)}))}}function n_(){if(L(Fx,this,Px).call(this))return;const t=Math.max(0,this.settings.maxConcurrentLoads-z(gx,this).size);if(!t||!z(Nx,this).length)return;const e=[],n=[];for(let i=0;i<z(Nx,this).length;i+=1){const r=z(Nx,this)[i];(null==r?void 0:r.nodeId)&&(e.length<t&&!z(gx,this).has(r.nodeId)?e.push(r):n.push(r))}j(Nx,this,n),e.forEach((t=>{L(Fx,this,i_).call(this,t).finally((()=>{setTimeout((()=>L(Fx,this,e_).call(this)),0)}))}))}async function i_(t={}){const e=null==t?void 0:t.nodeId,n=null==t?void 0:t.placement,i=Number(null==t?void 0:t.targetTime);if(!e||!n||!Number.isFinite(i))return;if(z(gx,this).has(e))return;const{signal:r,controller:o}=L(Fx,this,Ux).call(this,e);if(r&&r.aborted)L(Fx,this,qx).call(this,e,o);else{z(gx,this).add(e);try{const t=z(dx,this)&&"function"==typeof z(dx,this).get?z(dx,this).get(e):void 0;if(!t)return;if("ready"!==t.state&&"function"==typeof t.resolve)try{await t.resolve({signal:r})}catch(t){return}if("ready"!==t.state)return;const s=L(Fx,this,r_).call(this,t,n,i);if(!Number.isFinite(s)){const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks.map((t=>null==t?void 0:t.type)).filter(Boolean):[];return void this.log.debug(`[#loadSeekWork] No seek segment offset for node [${e}] targetTime=${i} mainTrackId=${(null==t?void 0:t.mainTrackId)||"n/a"} trackTypes=[${n.join(",")}]`)}"function"==typeof t.loadMediaSegmentsAtOffset?(this.log.debug(`[#loadSeekWork] Loading seek segment for node [${e}] at offset=${s}`),L(Fx,this,$x).call(this,e,o,{allowSeekKeep:!0,segmentOffset:s}),await t.loadMediaSegmentsAtOffset(s,{signal:r})):"function"==typeof t.load&&await t.load({loadingMode:"partial",signal:r})}catch(t){qy(t,r)||this.log.warn(`[#loadSeekWork] SegmentLoadCoordinator failed to seek-load node ${e}: ${(null==t?void 0:t.message)||t}`)}finally{z(gx,this).delete(e),L(Fx,this,qx).call(this,e,o)}}}function r_(t,e,n){var i;const r=Sm(e);if(!Number.isFinite(r))return;const o=ux(null==e?void 0:e.nodeOffsetOverride),s=Math.max(0,n-r+o),a=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let l;if(null!=t&&t.mainTrackId){const e=a.find((e=>(null==e?void 0:e.id)===t.mainTrackId));"video"!==(null==e?void 0:e.type)&&"image"!==(null==e?void 0:e.type)||(l=e)}if(l||(l=a.find((t=>"video"===(null==t?void 0:t.type)))||a.find((t=>"image"===(null==t?void 0:t.type)))),!l||!Array.isArray(l.segments))return;const c=l.segments.filter((t=>t&&!t.isInit&&Array.isArray(t.representations)));if(!c.length)return;const u=ux(null===(i=l)||void 0===i?void 0:i.offset),d=Ib(c,Math.max(0,s-u),{preferRepresentationTime:!0}),h=Number(null==d?void 0:d.offset);return Number.isFinite(h)?h:void 0}function o_(t,e,n=(t=>null===(t=z(fx,this))||void 0===t?void 0:t.currentTime)()){var i;const r=(Array.isArray(null===(i=z(fx,this))||void 0===i?void 0:i.placements)?z(fx,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(Sm(e)))).sort(((t,e)=>Sm(t)-Sm(e)));if(!r.length)return e;const o=Number(n);if(!Number.isFinite(o))return e||r[0];let s,a;for(let t=0;t<r.length;t+=1){const e=r[t],n=Sm(e);if(!Number.isFinite(n))continue;const i=Im(e,z(dx,this)),l=Number.isFinite(i)&&i>=0;(!a&&n>=o-lx&&(a=e),l)?o+lx>=n&&o<n+i-lx&&(s=e):o+lx>=n&&(s=e)}return s||a||r[r.length-1]}function s_(t,e){var n;const i=Number(Sm(e));if(!Number.isFinite(i))return;const r=Im(e,z(dx,this)),o=Number.isFinite(r)&&r>=0?i+r:void 0,s=(Array.isArray(null===(n=z(fx,this))||void 0===n?void 0:n.placements)?z(fx,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(Sm(e)))).sort(((t,e)=>Sm(t)-Sm(e)));for(let t=0;t<s.length;t+=1){const e=s[t],n=Number(Sm(e));if(Number.isFinite(n)&&!(n<=i+lx)){if(Number.isFinite(o)&&n>o+lx)return;return e}}}function a_(){const t=[];let e=!1,n=1/0;if(z(px,this).forEach(((i,r)=>{if(!r||!i)return;const o=z(mx,this).get(r);if(o)return e=!0,void(n=Math.min(n,ux(o.timelineStart)));const s=L(Fx,this,c_).call(this,r,i);s&&(e=!0,n=Math.min(n,ux(s.timelineStart)),t.push(s))})),!e||!Number.isFinite(n))return{hasPending:!1,waveTime:void 0,startable:[]};const i=t.filter((t=>ux(t.timelineStart)===n&&!z(gx,this).has(t.nodeId))).sort(((t,e)=>{const n=Number.isFinite(null==t?void 0:t.timelineStart)?t.timelineStart:Number.POSITIVE_INFINITY,i=Number.isFinite(null==e?void 0:e.timelineStart)?e.timelineStart:Number.POSITIVE_INFINITY;return n!==i?n-i:String(t.nodeId).localeCompare(String(e.nodeId))}));return{hasPending:!0,waveTime:n,startable:i}}function l_({waveTime:t,startable:e}){const n=Math.max(0,this.settings.maxConcurrentLoads-z(gx,this).size);n&&e.length&&e.slice(0,n).forEach((e=>{L(Fx,this,d_).call(this,e,t).finally((()=>{setTimeout((()=>L(Fx,this,e_).call(this)),0)}))}))}function c_(t,e){var n,i;const r=z(dx,this)&&"function"==typeof z(dx,this).get?z(dx,this).get(t):void 0;if(!r)return;if("function"==typeof r.hasExceededManifestLoadAttempts&&r.hasExceededManifestLoadAttempts())return void z(px,this).delete(t);const o=L(Fx,this,o_).call(this,t,e,null===(n=z(fx,this))||void 0===n?void 0:n.currentTime),s=Number(Sm(o)),a=ux(null===(i=z(fx,this))||void 0===i?void 0:i.currentTime),l="function"==typeof r.loadMediaSegmentsAtOffset,c="function"==typeof r.load;if(!l&&!c)return void z(px,this).delete(t);if(r.isLoaded)return void z(px,this).delete(t);if("ready"!==r.state){if(!Number.isFinite(s))return;return{nodeId:t,segmentOffset:0,timelineStart:s}}if(!L(Fx,this,v_).call(this,r))return void z(px,this).delete(t);const u=Array.isArray(r.tracks)?r.tracks:[],d=u.some((t=>{const e=(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).find((t=>(null==t?void 0:t.isInit)&&Array.isArray(null==t?void 0:t.representations)));return!!e&&!L(Fx,this,Lx).call(this,e)})),h=new Set;u.forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{if(!t||t.isInit||!Array.isArray(t.representations))return;const e=Number(t.offset);if(Number.isFinite(e)){const t=Math.round(e/lx)*lx;h.add(t)}}))}));const f=Array.from(h).sort(((t,e)=>t-e)),p=e=>{const n=Number(Sm(e));if(!Number.isFinite(n))return{status:"none"};const i=ux(null==e?void 0:e.nodeOffsetOverride),o=Math.max(0,a-n+i);let s=0;for(let t=0;t<f.length&&f[t]<=o+lx;t+=1)s=t;const l=f.slice(s);if(!l.some((t=>L(Fx,this,u_).call(this,r,t))))return{status:f.slice(0,s).some((t=>L(Fx,this,u_).call(this,r,t)))?"beforeOnly":"none"};const c=l.find((t=>L(Fx,this,u_).call(this,r,t))),u=Math.max(0,ux(c)-i);return{status:"work",work:{nodeId:t,segmentOffset:c,timelineStart:n+u}}},m=p(o);if("work"===m.status)return m.work;if("beforeOnly"!==m.status){if(d&&Number.isFinite(s))return{nodeId:t,segmentOffset:0,timelineStart:s};z(px,this).delete(t)}else{const e=L(Fx,this,s_).call(this,t,o);if(e){const t=p(e);if("work"===t.status)return t.work}}}function u_(t,e){const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],i=ux(e);return n.some((t=>(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).some((t=>{if(!t||t.isInit||!Array.isArray(t.representations))return!1;const e=Number(t.offset);return Number.isFinite(e)&&Math.abs(e-i)<=lx&&!L(Fx,this,Lx).call(this,t)}))))}async function d_(t,e){const n=null==t?void 0:t.nodeId,i=null==t?void 0:t.segmentOffset;if(this.log.debug(`[#loadP0Work] Loading ${cx} node [${n}] at segmentOffset=${i} wave=${e}`),!n)return;const r=z(dx,this)&&"function"==typeof z(dx,this).get?z(dx,this).get(n):void 0;if(!r)return void z(px,this).delete(n);const o="function"==typeof r.loadMediaSegmentsAtOffset&&Number.isFinite(i),{signal:s,controller:a}=L(Fx,this,Ux).call(this,n,{allowSeekKeep:o,segmentOffset:i});if(s&&s.aborted)L(Fx,this,qx).call(this,n,a);else{z(gx,this).add(n),z(mx,this).set(n,{timelineStart:e,segmentOffset:i});try{"function"==typeof r.loadMediaSegmentsAtOffset?await r.loadMediaSegmentsAtOffset(i,{signal:s}):"function"==typeof r.load&&await r.load({loadingMode:"full",signal:s})}catch(t){if(qy(t,s))return;const e=`[#loadP0Work] SegmentLoadCoordinator failed to load ${cx} work for node ${n}: ${(null==t?void 0:t.message)||t}`;this.log.warn(e)}finally{this.log.debug(`[#loadP0Work] Finished ${cx} work for node [${n}]`),z(mx,this).delete(n),z(gx,this).delete(n),L(Fx,this,qx).call(this,n,a)}}}function h_(){const t=new Set([...z(px,this).keys(),...z(gx,this)]),e=L(Fx,this,f_).call(this),n=Array.isArray(null==e?void 0:e.orderedIds)?e.orderedIds:null,i=Array.isArray(null==e?void 0:e.reachableIds)&&e.reachableIds.length?new Set(e.reachableIds):null,r=t=>!("function"==typeof t.hasExceededManifestLoadAttempts&&t.hasExceededManifestLoadAttempts()||t.isLoaded||"ready"===t.state&&L(Fx,this,g_).call(this,t));if(i){const e=fw({prioritizer:z(hx,this),repository:z(dx,this),startNodeId:z(kx,this),prioritizedIds:n,pendingIds:t,allowedIds:i,filter:r});if(e.length)return e}return fw({prioritizer:z(hx,this),repository:z(dx,this),startNodeId:z(kx,this),prioritizedIds:n,pendingIds:t,filter:r})}function f_(){return z(hx,this)&&z(kx,this)?"function"==typeof z(hx,this).getPrioritizationSnapshot?z(hx,this).getPrioritizationSnapshot(z(kx,this)):{orderedIds:"function"==typeof z(hx,this).sortNodes?z(hx,this).sortNodes(z(kx,this)):[],reachableIds:"function"==typeof z(hx,this).getReachableNodeIds?z(hx,this).getReachableNodeIds(z(kx,this)):[]}:null}function p_(){L(Fx,this,Px).call(this)||(z(bx,this)||z(px,this).size)&&(j(vx,this,L(Fx,this,h_).call(this)),z(bx,this)&&!z(Ax,this)&&L(Fx,this,e_).call(this))}async function m_(t,e){if(this.log.debug(`[#loadNode] Loading node [${t}] in '${e}' mode`),!t)return;const n=z(dx,this)&&"function"==typeof z(dx,this).get?z(dx,this).get(t):void 0;if(!n||"function"!=typeof n.load)return;if("function"==typeof n.hasExceededManifestLoadAttempts&&n.hasExceededManifestLoadAttempts())return;if(n.isLoaded)return void this.log.debug(`[#loadNode] Skipping load for ${t}: already loaded`);const{signal:i,controller:r}=L(Fx,this,Ux).call(this,t,{allowSeekKeep:!1});if(i&&i.aborted)L(Fx,this,qx).call(this,t,r);else try{if("ready"!==n.state&&await n.resolve({signal:i}),"ready"!==n.state)return void this.log.debug(`[#loadNode] Skipping load for ${t}: not ready`);if("partial"===e&&L(Fx,this,g_).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: partial already loaded`);if(!L(Fx,this,v_).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: no loadable tracks`);z(gx,this).add(t),await n.load({loadingMode:e,signal:i})}catch(e){if(qy(e,i))return;this.log.warn(`[#loadNode] SegmentLoadCoordinator failed to load node ${t}: ${(null==e?void 0:e.message)||e}`)}finally{this.log.debug(`[#loadNode] Finished loading node [${t}]`),z(gx,this).delete(t),L(Fx,this,qx).call(this,t,r)}}function v_(t){return(Array.isArray(t.tracks)?t.tracks:[]).some((t=>{var e;return null==t||null===(e=t.segments)||void 0===e?void 0:e.length}))}function g_(t){const e=(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>Array.isArray(null==t?void 0:t.segments)&&t.segments.length));return!e.length||e.every((t=>{const e=Array.isArray(null==t?void 0:t.segments)?t.segments:[];if(!e.length)return!0;const n=e.find((t=>null==t?void 0:t.isInit)),i=e.find((t=>t&&!t.isInit));return!(n&&!L(Fx,this,Lx).call(this,n)||i&&!L(Fx,this,Lx).call(this,i))}))}class y_ extends md{constructor(...t){super(...t),this.track=void 0,this.lastSegment=void 0}get name(){return"BaseDecoder"}configure(t){this.track=t}decode(t){this.lastSegment=t}decodeChunk(t,e){}onDispose(){this.track=void 0,this.lastSegment=void 0}}function b_(t){if(!t)throw new Error("Assertion failed.")}const k_=t=>t&&t[t.length-1],w_=t=>{let e=0;for(;0===t.readBits(1)&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+t.readBits(e)},x_=t=>t.constructor===Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),__=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),T_=new TextDecoder,I_=t=>Object.fromEntries(Object.entries(t).map((([t,e])=>[e,t]))),E_={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},S_=I_(E_),A_={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},N_=I_(A_),M_={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},F_=I_(M_),O_=t=>[...t].map((t=>t.toString(16).padStart(2,"0"))).join(""),C_=t=>(t=(t=(t=(t=(t=t>>1&1431655765|(1431655765&t)<<1)>>2&858993459|(858993459&t)<<2)>>4&252645135|(252645135&t)<<4)>>8&16711935|(16711935&t)<<8)>>16&65535|(65535&t)<<16)>>>0,P_=(t,e,n)=>{let i=0,r=t.length-1,o=-1;for(;i<=r;){const s=i+r>>1,a=n(t[s]);a===e?(o=s,r=s-1):a<e?i=s+1:r=s-1}return o},D_=(t,e,n)=>{let i=0,r=t.length-1,o=-1;for(;i<=r;){const s=i+(r-i+1)/2|0;n(t[s])<=e?(o=s,i=s+1):r=s-1}return o},R_=()=>{let t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}},L_=(t,e,n)=>t.getUint8(e)<<16|t.getUint8(e+1)<<8|t.getUint8(e+2),B_=(t,e,n)=>Math.max(e,Math.min(n,t)),z_=/^[a-z]{3}$/,W_=1e6*(1+Number.EPSILON);let j_=null;let U_=null;const $_=()=>{if(null!==U_)return U_;if("undefined"==typeof navigator)return null;const t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?U_=Number(t[1]):null},q_=t=>"number"==typeof t&&!Number.isNaN(t);class V_{constructor(t,e){if(this.data=t,this.mimeType=e,!(t instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if("string"!=typeof e)throw new TypeError("mimeType must be a string.")}}const G_={default:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1};class H_{constructor(t){this.bytes=t,this.pos=0}seekToByte(t){this.pos=8*t}readBit(){var t;const e=Math.floor(this.pos/8),n=null!==(t=this.bytes[e])&&void 0!==t?t:0,i=7-(7&this.pos),r=(n&1<<i)>>i;return this.pos++,r}readBits(t){if(1===t)return this.readBit();let e=0;for(let n=0;n<t;n++)e<<=1,e|=this.readBit();return e}writeBits(t,e){const n=this.pos+t;for(let t=this.pos;t<n;t++){const i=Math.floor(t/8);let r=this.bytes[i];const o=7-(7&t);r&=~(1<<o),r|=(e&1<<n-t-1)>>n-t-1<<o,this.bytes[i]=r}this.pos=n}readAlignedByte(){var t;if(this.pos%8!=0)throw new Error("Bitstream is not byte-aligned.");const e=this.pos/8,n=null!==(t=this.bytes[e])&&void 0!==t?t:0;return this.pos+=8,n}skipBits(t){this.pos+=t}getBitsLeft(){return 8*this.bytes.length-this.pos}clone(){const t=new H_(this.bytes);return t.pos=this.pos,t}}const K_=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],X_=[-1,1,2,3,4,5,6,8],Y_=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");const e=new H_(t);let n=e.readBits(5);31===n&&(n=32+e.readBits(6));const i=e.readBits(4);let r=null;15===i?r=e.readBits(24):i<K_.length&&(r=K_[i]);const o=e.readBits(4);let s=null;return o>=1&&o<=7&&(s=X_[o]),{objectType:n,frequencyIndex:i,sampleRate:r,channelConfiguration:o,numberOfChannels:s}},Q_=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],J_=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],Z_=t=>{const{codec:e,codecDescription:n,colorSpace:i,avcCodecInfo:r,hevcCodecInfo:o,vp9CodecInfo:s,av1CodecInfo:a}=t;if("avc"===e){if(b_(null!==t.avcType),r){const e=new Uint8Array([r.avcProfileIndication,r.profileCompatibility,r.avcLevelIndication]);return`avc${t.avcType}.${O_(e)}`}if(!n||n.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc${t.avcType}.${O_(n.subarray(1,4))}`}if("hevc"===e){let t,e,i,r,s,a;if(o)t=o.generalProfileSpace,e=o.generalProfileIdc,i=C_(o.generalProfileCompatibilityFlags),r=o.generalTierFlag,s=o.generalLevelIdc,a=[...o.generalConstraintIndicatorFlags];else{if(!n||n.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");const o=__(n),l=o.getUint8(1);t=l>>6&3,e=31&l,i=C_(o.getUint32(2)),r=l>>5&1,s=o.getUint8(12),a=[];for(let t=0;t<6;t++)a.push(o.getUint8(6+t))}let l="hev1.";for(l+=["","A","B","C"][t]+e,l+=".",l+=i.toString(16).toUpperCase(),l+=".",l+=0===r?"L":"H",l+=s;a.length>0&&0===a[a.length-1];)a.pop();return a.length>0&&(l+=".",l+=a.map((t=>t.toString(16).toUpperCase())).join(".")),l}if("vp8"===e)return"vp8";if("vp9"===e){if(!s){const e=t.width*t.height;let n=k_(J_).level;for(const t of J_)if(e<=t.maxPictureSize){n=t.level;break}return`vp09.00.${n.toString().padStart(2,"0")}.08`}let e=`vp09.${s.profile.toString().padStart(2,"0")}.${s.level.toString().padStart(2,"0")}.${s.bitDepth.toString().padStart(2,"0")}.${s.chromaSubsampling.toString().padStart(2,"0")}`;return e+=`.${s.colourPrimaries.toString().padStart(2,"0")}.${s.transferCharacteristics.toString().padStart(2,"0")}.${s.matrixCoefficients.toString().padStart(2,"0")}.${s.videoFullRangeFlag.toString().padStart(2,"0")}`,e.endsWith(".01.01.01.01.00")&&(e=e.slice(0,-15)),e}if("av1"===e){if(!a){const e=t.width*t.height;let n=k_(J_).level;for(const t of J_)if(e<=t.maxPictureSize){n=t.level;break}return`av01.0.${n.toString().padStart(2,"0")}M.08`}const e=a.profile,n=a.level.toString().padStart(2,"0"),r=a.tier?"H":"M",o=a.bitDepth.toString().padStart(2,"0"),s=a.monochrome?"1":"0",l=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),c=null!=i&&i.primaries?E_[i.primaries]:1,u=null!=i&&i.transfer?A_[i.transfer]:1,d=null!=i&&i.matrix?M_[i.matrix]:1,h=null!=i&&i.fullRange?1:0;let f=`av01.${e}.${n}${r}.${o}`;return f+=`.${s}.${l.toString().padStart(3,"0")}`,f+=`.${c.toString().padStart(2,"0")}`,f+=`.${u.toString().padStart(2,"0")}`,f+=`.${d.toString().padStart(2,"0")}`,f+=`.${h}`,f.endsWith(".0.110.01.01.01.0")&&(f=f.slice(0,-17)),f}throw new TypeError(`Unhandled codec '${e}'.`)},tT=t=>{const{codec:e,codecDescription:n,aacCodecInfo:i}=t;if("aac"===e){if(!i)throw new TypeError("AAC codec info must be provided.");if(i.isMpeg2)return"mp4a.67";{let t;return t=null!==i.objectType?i.objectType:Y_(n).objectType,`mp4a.40.${t}`}}if("mp3"===e)return"mp3";if("opus"===e)return"opus";if("vorbis"===e)return"vorbis";if("flac"===e)return"flac";if("ac3"===e)return"ac-3";if("eac3"===e)return"ec-3";if(e&&Q_.includes(e))return e;throw new TypeError(`Unhandled codec '${e}'.`)},eT=/^pcm-([usf])(\d+)+(be)?$/,nT=[48e3,44100,32e3],iT=[24e3,22050,16e3];var rT,oT;!function(t){t[t.NON_IDR_SLICE=1]="NON_IDR_SLICE",t[t.SLICE_DPA=2]="SLICE_DPA",t[t.SLICE_DPB=3]="SLICE_DPB",t[t.SLICE_DPC=4]="SLICE_DPC",t[t.IDR=5]="IDR",t[t.SEI=6]="SEI",t[t.SPS=7]="SPS",t[t.PPS=8]="PPS",t[t.AUD=9]="AUD",t[t.SPS_EXT=13]="SPS_EXT"}(rT||(rT={})),function(t){t[t.RASL_N=8]="RASL_N",t[t.RASL_R=9]="RASL_R",t[t.BLA_W_LP=16]="BLA_W_LP",t[t.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",t[t.VPS_NUT=32]="VPS_NUT",t[t.SPS_NUT=33]="SPS_NUT",t[t.PPS_NUT=34]="PPS_NUT",t[t.AUD_NUT=35]="AUD_NUT",t[t.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",t[t.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT"}(oT||(oT={}));const sT=function*(t){let e=0,n=-1;for(;e<t.length-2;){const i=t.indexOf(0,e);if(-1===i||i>=t.length-2)break;e=i;let r=0;e+3<t.length&&0===t[e+1]&&0===t[e+2]&&1===t[e+3]?r=4:0===t[e+1]&&1===t[e+2]&&(r=3),0!==r?(-1!==n&&e>n&&(yield{offset:n,length:e-n}),n=e+r,e=n):e++}-1!==n&&n<t.length&&(yield{offset:n,length:t.length-n})},aT=function*(t,e){let n=0;const i=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;n+e<=t.length;){let t;1===e?t=i.getUint8(n):2===e?t=i.getUint16(n,!1):3===e?t=L_(i,n):(b_(4===e),t=i.getUint32(n,!1)),n+=e,yield{offset:n,length:t},n+=t}},lT=t=>31&t,cT=t=>{const e=[],n=t.length;for(let i=0;i<n;i++)i+2<n&&0===t[i]&&0===t[i+1]&&3===t[i+2]?(e.push(0,0),i+=2):e.push(t[i]);return new Uint8Array(e)},uT=t=>t>>1&63,dT=function*(t){const e=new H_(t),n=()=>{let t=0;for(let n=0;n<8;n++){const i=e.readAlignedByte();if(t|=(127&i)<<7*n,!(128&i))break;if(7===n&&128&i)return null}return t>=2**32-1?null:t};for(;e.getBitsLeft()>=8;){e.skipBits(1);const i=e.readBits(4),r=e.readBits(1),o=e.readBits(1);let s;if(e.skipBits(1),r&&e.skipBits(8),o){const t=n();if(null===t)return;s=t}else s=Math.floor(e.getBitsLeft()/8);b_(e.pos%8==0),yield{type:i,data:t.subarray(e.pos/8,e.pos/8+s)},e.skipBits(8*s)}};var hT;!function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"}(hT||(hT={}));const fT=[2,1,2,3,3,4,4,5];class pT{constructor(t){this.input=t}}const mT=[],vT=[],gT=new Uint8Array(0);class yT{constructor(t,e,n,i,r=-1,o,s){if(this.data=t,this.type=e,this.timestamp=n,this.duration=i,this.sequenceNumber=r,t===gT&&void 0===o)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(void 0===o&&(o=t.byteLength),!(t instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if("key"!==e&&"delta"!==e)throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(n))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(i)||i<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(r))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");if(void 0!==s&&("object"!=typeof s||!s))throw new TypeError("sideData, when provided, must be an object.");if(void 0!==(null==s?void 0:s.alpha)&&!(s.alpha instanceof Uint8Array))throw new TypeError("sideData.alpha, when provided, must be a Uint8Array.");if(void 0!==(null==s?void 0:s.alphaByteLength)&&(!Number.isInteger(s.alphaByteLength)||s.alphaByteLength<0))throw new TypeError("sideData.alphaByteLength, when provided, must be a non-negative integer.");this.byteLength=o,this.sideData=null!=s?s:{},this.sideData.alpha&&void 0===this.sideData.alphaByteLength&&(this.sideData.alphaByteLength=this.sideData.alpha.byteLength)}get isMetadataOnly(){return this.data===gT}get microsecondTimestamp(){return Math.trunc(W_*this.timestamp)}get microsecondDuration(){return Math.trunc(W_*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if("undefined"==typeof EncodedVideoChunk)throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}alphaToEncodedVideoChunk(t=this.type){if(!this.sideData.alpha)throw new TypeError("This packet does not contain alpha side data.");if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if("undefined"==typeof EncodedVideoChunk)throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.sideData.alpha,type:t,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if("undefined"==typeof EncodedAudioChunk)throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(t,e){var n;if(!(t instanceof EncodedVideoChunk||t instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");const i=new Uint8Array(t.byteLength);return t.copyTo(i),new yT(i,t.type,t.timestamp/1e6,(null!==(n=t.duration)&&void 0!==n?n:0)/1e6,void 0,void 0,e)}clone(t){var e,n,i,r,o,s;if(void 0!==t&&("object"!=typeof t||null===t))throw new TypeError("options, when provided, must be an object.");if(void 0!==(null==t?void 0:t.data)&&!(t.data instanceof Uint8Array))throw new TypeError("options.data, when provided, must be a Uint8Array.");if(void 0!==(null==t?void 0:t.type)&&"key"!==t.type&&"delta"!==t.type)throw new TypeError('options.type, when provided, must be either "key" or "delta".');if(void 0!==(null==t?void 0:t.timestamp)&&!Number.isFinite(t.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(void 0!==(null==t?void 0:t.duration)&&!Number.isFinite(t.duration))throw new TypeError("options.duration, when provided, must be a number.");if(void 0!==(null==t?void 0:t.sequenceNumber)&&!Number.isFinite(t.sequenceNumber))throw new TypeError("options.sequenceNumber, when provided, must be a number.");if(void 0!==(null==t?void 0:t.sideData)&&("object"!=typeof t.sideData||null===t.sideData))throw new TypeError("options.sideData, when provided, must be an object.");return new yT(null!==(e=null==t?void 0:t.data)&&void 0!==e?e:this.data,null!==(n=null==t?void 0:t.type)&&void 0!==n?n:this.type,null!==(i=null==t?void 0:t.timestamp)&&void 0!==i?i:this.timestamp,null!==(r=null==t?void 0:t.duration)&&void 0!==r?r:this.duration,null!==(o=null==t?void 0:t.sequenceNumber)&&void 0!==o?o:this.sequenceNumber,this.byteLength,null!==(s=null==t?void 0:t.sideData)&&void 0!==s?s:this.sideData)}}const bT=t=>{if(!t||"object"!=typeof t)throw new TypeError("options must be an object.");if(void 0!==t.metadataOnly&&"boolean"!=typeof t.metadataOnly)throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(void 0!==t.verifyKeyPackets&&"boolean"!=typeof t.verifyKeyPackets)throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(t.verifyKeyPackets&&t.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},kT=t=>{if(!q_(t))throw new TypeError("timestamp must be a number.")},wT=(t,e,n)=>n.verifyKeyPackets?e.then((async e=>{if(!e||"delta"===e.type)return e;const n=await t.determinePacketType(e);return n&&(e.type=n),e})):e;class xT{constructor(t){if(!(t instanceof _T))throw new TypeError("track must be an InputTrack.");this._track=t}getFirstPacket(t={}){if(bT(t),this._track.input._disposed)throw new XT;return wT(this._track,this._track._backing.getFirstPacket(t),t)}async getFirstKeyPacket(t={}){bT(t);const e=await this.getFirstPacket(t);return e?"key"===e.type?e:this.getNextKeyPacket(e,t):null}getPacket(t,e={}){if(kT(t),bT(e),this._track.input._disposed)throw new XT;return wT(this._track,this._track._backing.getPacket(t,e),e)}getNextPacket(t,e={}){if(!(t instanceof yT))throw new TypeError("packet must be an EncodedPacket.");if(bT(e),this._track.input._disposed)throw new XT;return wT(this._track,this._track._backing.getNextPacket(t,e),e)}async getKeyPacket(t,e={}){if(kT(t),bT(e),this._track.input._disposed)throw new XT;if(!e.verifyKeyPackets)return this._track._backing.getKeyPacket(t,e);const n=await this._track._backing.getKeyPacket(t,e);return n?(b_("key"===n.type),"delta"===await this._track.determinePacketType(n)?this.getKeyPacket(n.timestamp-1/this._track.timeResolution,e):n):n}async getNextKeyPacket(t,e={}){if(!(t instanceof yT))throw new TypeError("packet must be an EncodedPacket.");if(bT(e),this._track.input._disposed)throw new XT;if(!e.verifyKeyPackets)return this._track._backing.getNextKeyPacket(t,e);const n=await this._track._backing.getNextKeyPacket(t,e);return n?(b_("key"===n.type),"delta"===await this._track.determinePacketType(n)?this.getNextKeyPacket(n,e):n):n}packets(t,e,n={}){if(void 0!==t&&!(t instanceof yT))throw new TypeError("startPacket must be an EncodedPacket.");if(void 0!==t&&t.isMetadataOnly&&(null==n||!n.metadataOnly))throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(void 0!==e&&!(e instanceof yT))throw new TypeError("endPacket must be an EncodedPacket.");if(bT(n),this._track.input._disposed)throw new XT;const i=[];let{promise:r,resolve:o}=R_(),{promise:s,resolve:a}=R_(),l=!1,c=!1,u=null;const d=[];(async()=>{let u=null!=t?t:await this.getFirstPacket(n);for(;u&&!c&&!this._track.input._disposed&&!(e&&u.sequenceNumber>=(null==e?void 0:e.sequenceNumber));)i.length>Math.max(2,d.length)?(({promise:s,resolve:a}=R_()),await s):(i.push(u),o(),({promise:r,resolve:o}=R_()),u=await this.getNextPacket(u,n));l=!0,o()})().catch((t=>{u||(u=t,o())}));const h=this._track;return{async next(){for(;;){if(h.input._disposed)throw new XT;if(c)return{value:void 0,done:!0};if(u)throw u;if(i.length>0){const t=i.shift(),e=performance.now();for(d.push(e);d.length>0&&e-d[0]>=1e3;)d.shift();return a(),{value:t,done:!1}}if(l)return{value:void 0,done:!0};await r}},return:async()=>(c=!0,a(),o(),{value:void 0,done:!0}),async throw(t){throw t},[Symbol.asyncIterator](){return this}}}}class _T{constructor(t,e){this.input=t,this._backing=e}isVideoTrack(){return this instanceof TT}isAudioTrack(){return this instanceof IT}get id(){return this._backing.getId()}get number(){return this._backing.getNumber()}get internalCodecId(){return this._backing.getInternalCodecId()}get languageCode(){return this._backing.getLanguageCode()}get name(){return this._backing.getName()}get timeResolution(){return this._backing.getTimeResolution()}get disposition(){return this._backing.getDisposition()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(t=1/0){const e=new xT(this);let n=1/0,i=-1/0,r=0,o=0;for await(const s of e.packets(void 0,void 0,{metadataOnly:!0})){if(r>=t&&s.timestamp>=i)break;n=Math.min(n,s.timestamp),i=Math.max(i,s.timestamp+s.duration),r++,o+=s.byteLength}return{packetCount:r,averagePacketRate:r?Number((r/(i-n)).toPrecision(16)):0,averageBitrate:r?Number((8*o/(i-n)).toPrecision(16)):0}}}class TT extends _T{constructor(t,e){super(t,e),this._backing=e,this.pixelAspectRatio=(t=>{b_(0!==t.den);let e=Math.abs(t.num),n=Math.abs(t.den);for(;0!==n;){const t=e%n;e=n,n=t}const i=e||1;return{num:t.num/i,den:t.den/i}})({num:this._backing.getSquarePixelWidth()*this._backing.getCodedHeight(),den:this._backing.getSquarePixelHeight()*this._backing.getCodedWidth()})}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get squarePixelWidth(){return this._backing.getSquarePixelWidth()}get squarePixelHeight(){return this._backing.getSquarePixelHeight()}get displayWidth(){return this._backing.getRotation()%180==0?this.squarePixelWidth:this.squarePixelHeight}get displayHeight(){return this._backing.getRotation()%180==0?this.squarePixelHeight:this.squarePixelWidth}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){const t=await this._backing.getColorSpace();return"bt2020"===t.primaries||"smpte432"===t.primaries||"pg"===t.transfer||"hlg"===t.transfer||"bt2020-ncl"===t.matrix}canBeTransparent(){return this._backing.canBeTransparent()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){var t;const e=await this._backing.getDecoderConfig();return null!==(t=null==e?void 0:e.codec)&&void 0!==t?t:null}async canDecode(){try{const t=await this._backing.getDecoderConfig();if(!t)return!1;const e=this._backing.getCodec();return b_(null!==e),mT.some((n=>n.supports(e,t)))?!0:"undefined"!=typeof VideoDecoder&&!0===(await VideoDecoder.isConfigSupported(t)).supported}catch(t){return console.error("Error during decodability check:",t),!1}}async determinePacketType(t){if(!(t instanceof yT))throw new TypeError("packet must be an EncodedPacket.");if(t.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");if(null===this.codec)return null;const e=await this.getDecoderConfig();return b_(e),((t,e,n)=>{switch(t){case"avc":for(const t of((t,e)=>{if(e.description){const n=3&x_(e.description)[4];return aT(t,n+1)}return sT(t)})(n,e)){const e=n[t.offset],r=lT(e);if(r>=rT.NON_IDR_SLICE&&r<=rT.SLICE_DPC)return"delta";if(r===rT.IDR)return"key";if(r===rT.SEI&&(i=void 0,!(null!==j_?j_:j_=!("undefined"==typeof navigator||(null===(i=navigator.vendor)||void 0===i||!i.includes("Google Inc"))&&!/Chrome/.test(navigator.userAgent)))||$_()>=144)){const e=n.subarray(t.offset,t.offset+t.length),i=cT(e);let r=1;do{let t=0;for(;;){const e=i[r++];if(void 0===e)break;if(t+=e,e<255)break}let e=0;for(;;){const t=i[r++];if(void 0===t)break;if(e+=t,t<255)break}if(6===t){const t=new H_(i);t.pos=8*r;const e=w_(t),n=t.readBits(1);if(0===e&&1===n)return"key"}r+=e}while(r<i.length-1)}}return"delta";case"hevc":for(const t of((t,e)=>{if(e.description){const n=3&x_(e.description)[21];return aT(t,n+1)}return sT(t)})(n,e)){const e=uT(n[t.offset]);if(e<oT.BLA_W_LP)return"delta";if(e<=oT.RSV_IRAP_VCL23)return"key"}return"delta";case"vp8":return 1&n[0]?"delta":"key";case"vp9":{const t=new H_(n);if(2!==t.readBits(2))return null;const e=t.readBits(1);return 3===(t.readBits(1)<<1)+e&&t.skipBits(1),t.readBits(1)?null:0===t.readBits(1)?"key":"delta"}case"av1":{let t=!1;for(const{type:e,data:i}of dT(n))if(1===e){const e=new H_(i);e.skipBits(4),t=!!e.readBits(1)}else if(3===e||6===e||7===e){if(t)return"key";const e=new H_(i);return e.readBits(1)?null:0===e.readBits(2)?"key":"delta"}return null}default:(t=>{throw new Error(`Unexpected value: ${t}`)})(t),b_(!1)}var i})(this.codec,e,t.data)}}class IT extends _T{constructor(t,e){super(t,e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){var t;const e=await this._backing.getDecoderConfig();return null!==(t=null==e?void 0:e.codec)&&void 0!==t?t:null}async canDecode(){try{const t=await this._backing.getDecoderConfig();if(!t)return!1;const e=this._backing.getCodec();return b_(null!==e),vT.some((n=>n.supports(e,t)))?!0:!!t.codec.startsWith("pcm-")||"undefined"!=typeof AudioDecoder&&!0===(await AudioDecoder.isConfigSupported(t)).supported}catch(t){return console.error("Error during decodability check:",t),!1}}async determinePacketType(t){if(!(t instanceof yT))throw new TypeError("packet must be an EncodedPacket.");return null===this.codec?null:"key"}}const ET=t=>{let e=rI(t);const n=cI(t,4);let i=8;1===e&&(e=sI(t),i=16);const r=e-i;return r<0?null:{name:n,totalSize:e,headerSize:i,contentSize:r}},ST=t=>oI(t)/65536,AT=t=>oI(t)/1073741824,NT=t=>{let e=0;for(let n=0;n<4;n++){e<<=7;const n=tI(t);if(e|=127&n,!(128&n))break}return e},MT=t=>{let e=eI(t);return t.skip(2),e=Math.min(e,t.remainingLength),T_.decode(ZT(t,e))},FT=t=>{const e=ET(t);if(!e||"data"!==e.name)return null;if(t.remainingLength<8)return null;const n=rI(t);t.skip(4);const i=ZT(t,e.contentSize-8);switch(n){case 1:return T_.decode(i);case 2:return new TextDecoder("utf-16be").decode(i);case 13:return new V_(i,"image/jpeg");case 14:return new V_(i,"image/png");case 27:return new V_(i,"image/bmp");default:return i}};class OT extends pT{constructor(t){super(t),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.currentFragment=null,this.lastReadFragment=null,this.reader=t._reader}async computeDuration(){const t=await this.getTracks(),e=await Promise.all(t.map((t=>t.computeDuration())));return Math.max(0,...e)}async getTracks(){return await this.readMetadata(),this.tracks.map((t=>t.inputTrack))}async getMimeType(){await this.readMetadata();const t=await Promise.all(this.tracks.map((t=>t.inputTrack.getCodecParameterString())));return(t=>{let e=(t.hasVideo?"video/":t.hasAudio?"audio/":"application/")+(t.isQuickTime?"quicktime":"mp4");return t.codecStrings.length>0&&(e+=`; codecs="${[...new Set(t.codecStrings)].join(", ")}"`),e})({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some((t=>{var e;return"video"===(null===(e=t.info)||void 0===e?void 0:e.type)})),hasAudio:this.tracks.some((t=>{var e;return"audio"===(null===(e=t.info)||void 0===e?void 0:e.type)})),codecStrings:t.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){var t;return null!==(t=this.metadataPromise)&&void 0!==t?t:this.metadataPromise=(async()=>{let t=0;for(;;){let e=this.reader.requestSliceRange(t,8,16);if(e instanceof Promise&&(e=await e),!e)break;const n=t,i=ET(e);if(!i)break;if("ftyp"===i.name){const t=cI(e,4);this.isQuickTime="qt "===t}else if("moov"===i.name){let t=this.reader.requestSlice(e.filePos,i.contentSize);if(t instanceof Promise&&(t=await t),!t)break;this.moovSlice=t,this.readContiguousBoxes(this.moovSlice),this.tracks.sort(((t,e)=>Number(e.disposition.default)-Number(t.disposition.default)));for(const t of this.tracks){const e=t.editListPreviousSegmentDurations/this.movieTimescale;t.editListOffset-=Math.round(e*t.timescale)}break}t=n+i.totalSize}if(this.isFragmented&&null!==this.reader.fileSize){let t=this.reader.requestSlice(this.reader.fileSize-4,4);t instanceof Promise&&(t=await t),b_(t);const e=rI(t),n=this.reader.fileSize-e;if(n>=0&&n<=this.reader.fileSize-16){let t=this.reader.requestSliceRange(n,8,16);if(t instanceof Promise&&(t=await t),t){const e=ET(t);if(e&&"mfra"===e.name){let n=this.reader.requestSlice(t.filePos,e.contentSize);n instanceof Promise&&(n=await n),n&&this.readContiguousBoxes(n)}}}}})()}getSampleTableForTrack(t){var e;if(t.sampleTable)return t.sampleTable;const n={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};t.sampleTable=n,b_(this.moovSlice);const i=this.moovSlice.slice(t.sampleTableByteOffset);if(this.currentTrack=t,this.traverseBox(i),this.currentTrack=null,"audio"===(null===(e=t.info)||void 0===e?void 0:e.type)&&t.info.codec&&Q_.includes(t.info.codec)&&0===n.sampleCompositionTimeOffsets.length){var r;b_("audio"===(null===(r=t.info)||void 0===r?void 0:r.type));const e=(t=>{if(b_(Q_.includes(t)),"ulaw"===t)return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if("alaw"===t)return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};const e=eT.exec(t);let n;return b_(e),n="u"===e[1]?"unsigned":"s"===e[1]?"signed":"float",{dataType:n,sampleSize:Number(e[2])/8,littleEndian:"be"!==e[3],silentValue:"pcm-u8"===t?128:0}})(t.info.codec),i=[],o=[];for(let r=0;r<n.sampleToChunk.length;r++){const s=n.sampleToChunk[r],a=n.sampleToChunk[r+1],l=(a?a.startChunkIndex:n.chunkOffsets.length)-s.startChunkIndex;for(let r=0;r<l;r++){const a=s.startSampleIndex+r*s.samplesPerChunk,l=a+s.samplesPerChunk,c=D_(n.sampleTimingEntries,a,(t=>t.startIndex)),u=n.sampleTimingEntries[c],d=D_(n.sampleTimingEntries,l,(t=>t.startIndex)),h=n.sampleTimingEntries[d],f=u.startDecodeTimestamp+(a-u.startIndex)*u.delta,p=h.startDecodeTimestamp+(l-h.startIndex)*h.delta-f,m=k_(i);m&&m.delta===p?m.count++:i.push({startIndex:s.startChunkIndex+r,startDecodeTimestamp:f,count:1,delta:p});const v=s.samplesPerChunk*e.sampleSize*t.info.numberOfChannels;o.push(v)}s.startSampleIndex=s.startChunkIndex,s.samplesPerChunk=1}n.sampleTimingEntries=i,n.sampleSizes=o}if(n.sampleCompositionTimeOffsets.length>0){n.presentationTimestamps=[];for(const t of n.sampleTimingEntries)for(let e=0;e<t.count;e++)n.presentationTimestamps.push({presentationTimestamp:t.startDecodeTimestamp+e*t.delta,sampleIndex:t.startIndex+e});for(const t of n.sampleCompositionTimeOffsets)for(let e=0;e<t.count;e++){const i=t.startIndex+e,r=n.presentationTimestamps[i];r&&(r.presentationTimestamp+=t.offset)}n.presentationTimestamps.sort(((t,e)=>t.presentationTimestamp-e.presentationTimestamp)),n.presentationTimestampIndexMap=Array(n.presentationTimestamps.length).fill(-1);for(let t=0;t<n.presentationTimestamps.length;t++)n.presentationTimestampIndexMap[n.presentationTimestamps[t].sampleIndex]=t}return n}async readFragment(t){var e;if((null===(e=this.lastReadFragment)||void 0===e?void 0:e.moofOffset)===t)return this.lastReadFragment;let n=this.reader.requestSliceRange(t,8,16);n instanceof Promise&&(n=await n),b_(n);const i=ET(n);b_("moof"===(null==i?void 0:i.name));let r=this.reader.requestSlice(t,i.totalSize);r instanceof Promise&&(r=await r),b_(r),this.traverseBox(r);const o=this.lastReadFragment;b_(o&&o.moofOffset===t);for(const[,t]of o.trackData){const e=t.track,{fragmentPositionCache:n}=e;if(!t.startTimestampIsFinal){const i=e.fragmentLookupTable.find((t=>t.moofOffset===o.moofOffset));if(i)WT(t,i.timestamp);else{const e=D_(n,o.moofOffset-1,(t=>t.moofOffset));if(-1!==e){const i=n[e];WT(t,i.endTimestamp)}}t.startTimestampIsFinal=!0}const i=D_(n,t.startTimestamp,(t=>t.startTimestamp));-1!==i&&n[i].moofOffset===o.moofOffset||n.splice(i+1,0,{moofOffset:o.moofOffset,startTimestamp:t.startTimestamp,endTimestamp:t.endTimestamp})}return o}readContiguousBoxes(t){const e=t.filePos;for(;t.filePos-e<=t.length-8&&this.traverseBox(t););}*iterateContiguousBoxes(t){const e=t.filePos;for(;t.filePos-e<=t.length-8;){const e=t.filePos,n=ET(t);if(!n)break;yield{boxInfo:n,slice:t},t.filePos=e+n.totalSize}}traverseBox(t){var e,n,i,r,o,s,a,l,c,u,d,h,f,p,m,v,g,y,b,k,w,x,_,T,I,E,S,A,N,M,F,O,C,P,D,R;const L=t.filePos,B=ET(t);if(!B)return!1;const z=t.filePos,W=L+B.totalSize;switch(B.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"wave":this.readContiguousBoxes(t.slice(z,B.contentSize));break;case"mvhd":{const e=tI(t);t.skip(3),1===e?(t.skip(16),this.movieTimescale=rI(t),this.movieDurationInTimescale=sI(t)):(t.skip(8),this.movieTimescale=rI(t),this.movieDurationInTimescale=rI(t))}break;case"trak":{const e={id:-1,demuxer:this,inputTrack:null,disposition:{...G_},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:"und",sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=e,this.readContiguousBoxes(t.slice(z,B.contentSize)),-1!==e.id&&-1!==e.timescale&&null!==e.info)if("video"===e.info.type&&-1!==e.info.width){const t=e;e.inputTrack=new TT(this.input,new PT(t)),this.tracks.push(e)}else if("audio"===e.info.type&&-1!==e.info.numberOfChannels){const t=e;e.inputTrack=new IT(this.input,new DT(t)),this.tracks.push(e)}this.currentTrack=null}break;case"tkhd":{const e=this.currentTrack;if(!e)break;const n=tI(t),i=!!(1&nI(t));if(e.disposition.default=i,0===n)t.skip(8),e.id=rI(t),t.skip(4),e.durationInMovieTimescale=rI(t);else{if(1!==n)throw new Error(`Incorrect track header version ${n}.`);t.skip(16),e.id=rI(t),t.skip(4),e.durationInMovieTimescale=sI(t)}t.skip(16);const r=[ST(t),ST(t),AT(t),ST(t),ST(t),AT(t),ST(t),ST(t),AT(t)],o=(t=>{const e=(t%360+360)%360;if(0===e||90===e||180===e||270===e)return e;throw new Error(`Invalid rotation ${t}.`)})((Ot=jT(r),90*Math.round(Ot/90)));b_(0===o||90===o||180===o||270===o),e.rotation=o}break;case"elst":{const e=this.currentTrack;if(!e)break;const n=tI(t);t.skip(3);let i=!1,r=0;const o=rI(t);for(let s=0;s<o;s++){const o=1===n?sI(t):rI(t),s=1===n?aI(t):oI(t),a=ST(t);if(0!==o){if(i){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(-1!==s){if(1!==a){console.warn("Unsupported edit list entry: media rate must be 1.");break}e.editListPreviousSegmentDurations=r,e.editListOffset=s,i=!0}else r+=o}}}break;case"mdhd":{const e=this.currentTrack;if(!e)break;const n=tI(t);t.skip(3),0===n?(t.skip(8),e.timescale=rI(t),e.durationInMediaTimescale=rI(t)):1===n&&(t.skip(16),e.timescale=rI(t),e.durationInMediaTimescale=sI(t));let i=eI(t);if(i>0){e.languageCode="";for(let t=0;t<3;t++)e.languageCode=String.fromCharCode(96+(31&i))+e.languageCode,i>>=5;Ft=e.languageCode,z_.test(Ft)||(e.languageCode="und")}}break;case"hdlr":{const e=this.currentTrack;if(!e)break;t.skip(8);const n=cI(t,4);"vide"===n?e.info={type:"video",width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,codec:null,codecDescription:null,colorSpace:null,avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:"soun"===n&&(e.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{const e=this.currentTrack;if(!e)break;e.sampleTableByteOffset=L,this.readContiguousBoxes(t.slice(z,B.contentSize))}break;case"stsd":{const e=this.currentTrack;if(!e)break;if(null===e.info||e.sampleTable)break;const n=tI(t);t.skip(3);const i=rI(t);for(let r=0;r<i;r++){const i=t.filePos,r=ET(t);if(!r)break;e.internalCodecId=r.name;const o=r.name.toLowerCase();if("video"===e.info.type)"avc1"===o||"avc3"===o?(e.info.codec="avc",e.info.avcType="avc1"===o?1:3):"hvc1"===o||"hev1"===o?e.info.codec="hevc":"vp08"===o?e.info.codec="vp8":"vp09"===o?e.info.codec="vp9":"av01"===o?e.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${r.name}').`),t.skip(24),e.info.width=eI(t),e.info.height=eI(t),e.info.squarePixelWidth=e.info.width,e.info.squarePixelHeight=e.info.height,t.skip(50),this.readContiguousBoxes(t.slice(t.filePos,i+r.totalSize-t.filePos));else{"mp4a"===o||("opus"===o?e.info.codec="opus":"flac"===o?e.info.codec="flac":"twos"===o||"sowt"===o||"raw "===o||"in24"===o||"in32"===o||"fl32"===o||"fl64"===o||"lpcm"===o||"ipcm"===o||"fpcm"===o||("ulaw"===o?e.info.codec="ulaw":"alaw"===o?e.info.codec="alaw":"ac-3"===o?e.info.codec="ac3":"ec-3"===o?e.info.codec="eac3":console.warn(`Unsupported audio codec (sample entry type '${r.name}').`))),t.skip(8);const s=eI(t);t.skip(6);let a=eI(t),l=eI(t);t.skip(4);let c=rI(t)/65536;if(0===n&&s>0)if(1===s)t.skip(4),l=8*rI(t),t.skip(8);else if(2===s){t.skip(4),c=lI(t),a=rI(t),t.skip(4),l=rI(t);const n=rI(t);if(t.skip(8),"lpcm"===o){const t=l+7>>3,i=Boolean(1&n),r=Boolean(2&n),o=4&n?-1:0;l>0&&l<=64&&(i?32===l&&(e.info.codec=r?"pcm-f32be":"pcm-f32"):o&1<<t-1?1===t?e.info.codec="pcm-s8":2===t?e.info.codec=r?"pcm-s16be":"pcm-s16":3===t?e.info.codec=r?"pcm-s24be":"pcm-s24":4===t&&(e.info.codec=r?"pcm-s32be":"pcm-s32"):1===t&&(e.info.codec="pcm-u8")),null===e.info.codec&&console.warn("Unsupported PCM format.")}}"opus"===e.info.codec&&(c=48e3),e.info.numberOfChannels=a,e.info.sampleRate=c,"twos"===o?8===l?e.info.codec="pcm-s8":16===l?e.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${l} for codec 'twos'.`),e.info.codec=null):"sowt"===o?8===l?e.info.codec="pcm-s8":16===l?e.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${l} for codec 'sowt'.`),e.info.codec=null):"raw "===o?e.info.codec="pcm-u8":"in24"===o?e.info.codec="pcm-s24be":"in32"===o?e.info.codec="pcm-s32be":"fl32"===o?e.info.codec="pcm-f32be":"fl64"===o?e.info.codec="pcm-f64be":"ipcm"===o?e.info.codec="pcm-s16be":"fpcm"===o&&(e.info.codec="pcm-f32be"),this.readContiguousBoxes(t.slice(t.filePos,i+r.totalSize-t.filePos))}}}break;case"avcC":{const e=this.currentTrack;if(!e)break;b_(e.info),e.info.codecDescription=ZT(t,B.contentSize)}break;case"hvcC":{const e=this.currentTrack;if(!e)break;b_(e.info),e.info.codecDescription=ZT(t,B.contentSize)}break;case"vpcC":{var j;const e=this.currentTrack;if(!e)break;b_("video"===(null===(j=e.info)||void 0===j?void 0:j.type)),t.skip(4);const n=tI(t),i=tI(t),r=tI(t),o=r>>4,s=r>>1&7,a=1&r,l=tI(t),c=tI(t),u=tI(t);e.info.vp9CodecInfo={profile:n,level:i,bitDepth:o,chromaSubsampling:s,videoFullRangeFlag:a,colourPrimaries:l,transferCharacteristics:c,matrixCoefficients:u}}break;case"av1C":{var U;const e=this.currentTrack;if(!e)break;b_("video"===(null===(U=e.info)||void 0===U?void 0:U.type)),t.skip(1);const n=tI(t),i=n>>5,r=31&n,o=tI(t),s=o>>7,a=o>>6&1,l=o>>4&1,c=o>>3&1,u=o>>2&1,d=3&o,h=2===i&&a?o>>5&1?12:10:a?10:8;e.info.av1CodecInfo={profile:i,level:r,tier:s,bitDepth:h,monochrome:l,chromaSubsamplingX:c,chromaSubsamplingY:u,chromaSamplePosition:d}}break;case"colr":{var $;const e=this.currentTrack;if(!e)break;if(b_("video"===(null===($=e.info)||void 0===$?void 0:$.type)),"nclx"!==cI(t,4))break;const n=eI(t),i=eI(t),r=eI(t),o=Boolean(128&tI(t));e.info.colorSpace={primaries:S_[n],transfer:N_[i],matrix:F_[r],fullRange:o}}break;case"pasp":{var q;const e=this.currentTrack;if(!e)break;b_("video"===(null===(q=e.info)||void 0===q?void 0:q.type));const n=rI(t),i=rI(t);n>i?e.info.squarePixelWidth=Math.round(e.info.width*n/i):e.info.squarePixelHeight=Math.round(e.info.height*i/n)}break;case"esds":{var V;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(V=e.info)||void 0===V?void 0:V.type)),t.skip(4),b_(3===tI(t)),NT(t),t.skip(2);const n=tI(t),i=!!(64&n),r=!!(32&n);if(!!(128&n)&&t.skip(2),i){const e=tI(t);t.skip(e)}r&&t.skip(2),b_(4===tI(t));const o=NT(t),s=t.filePos,a=tI(t);if(64===a||103===a?(e.info.codec="aac",e.info.aacCodecInfo={isMpeg2:103===a,objectType:null}):105===a||107===a?e.info.codec="mp3":221===a?e.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${a}) - discarding track.`),t.skip(12),o>t.filePos-s){b_(5===tI(t));const n=NT(t);if(e.info.codecDescription=ZT(t,n),"aac"===e.info.codec){const t=Y_(e.info.codecDescription);null!==t.numberOfChannels&&(e.info.numberOfChannels=t.numberOfChannels),null!==t.sampleRate&&(e.info.sampleRate=t.sampleRate)}}}break;case"enda":{var G;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(G=e.info)||void 0===G?void 0:G.type)),255&eI(t)&&("pcm-s16be"===e.info.codec?e.info.codec="pcm-s16":"pcm-s24be"===e.info.codec?e.info.codec="pcm-s24":"pcm-s32be"===e.info.codec?e.info.codec="pcm-s32":"pcm-f32be"===e.info.codec?e.info.codec="pcm-f32":"pcm-f64be"===e.info.codec&&(e.info.codec="pcm-f64"))}break;case"pcmC":{var H;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(H=e.info)||void 0===H?void 0:H.type)),t.skip(4);const n=tI(t),i=Boolean(1&n),r=tI(t);"pcm-s16be"===e.info.codec?i?16===r?e.info.codec="pcm-s16":24===r?e.info.codec="pcm-s24":32===r?e.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${r}.`),e.info.codec=null):16===r?e.info.codec="pcm-s16be":24===r?e.info.codec="pcm-s24be":32===r?e.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${r}.`),e.info.codec=null):"pcm-f32be"===e.info.codec&&(i?32===r?e.info.codec="pcm-f32":64===r?e.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${r}.`),e.info.codec=null):32===r?e.info.codec="pcm-f32be":64===r?e.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${r}.`),e.info.codec=null));break}case"dOps":{var K;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(K=e.info)||void 0===K?void 0:K.type)),t.skip(1);const n=tI(t),i=eI(t),r=rI(t),o=iI(t),s=tI(t);let a;a=0!==s?ZT(t,2+n):new Uint8Array(0);const l=new Uint8Array(19+a.byteLength),c=new DataView(l.buffer);c.setUint32(0,1332770163,!1),c.setUint32(4,1214603620,!1),c.setUint8(8,1),c.setUint8(9,n),c.setUint16(10,i,!0),c.setUint32(12,r,!0),c.setInt16(16,o,!0),c.setUint8(18,s),l.set(a,19),e.info.codecDescription=l,e.info.numberOfChannels=n}break;case"dfLa":{var X;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(X=e.info)||void 0===X?void 0:X.type)),t.skip(4);const n=127,i=128,r=t.filePos;for(;t.filePos<W;){const r=tI(t),o=nI(t);if((r&n)===hT.STREAMINFO){t.skip(10);const n=rI(t),i=n>>>12,r=1+(n>>9&7);e.info.sampleRate=i,e.info.numberOfChannels=r,t.skip(20)}else t.skip(o);if(r&i)break}const o=t.filePos;t.filePos=r;const s=ZT(t,o-r),a=new Uint8Array(4+s.byteLength);new DataView(a.buffer).setUint32(0,1716281667,!1),a.set(s,4),e.info.codecDescription=a}break;case"dac3":{var Y;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(Y=e.info)||void 0===Y?void 0:Y.type));const n=ZT(t,3),i=new H_(n),r=i.readBits(2);i.skipBits(8);const o=i.readBits(3),s=i.readBits(1);r<3&&(e.info.sampleRate=nT[r]),e.info.numberOfChannels=fT[o]+s}break;case"dec3":{var Q;const e=this.currentTrack;if(!e)break;b_("audio"===(null===(Q=e.info)||void 0===Q?void 0:Q.type));const n=(t=>{if(t.length<2)return null;const e=new H_(t),n=e.readBits(13),i=e.readBits(3),r=[];for(let n=0;n<=i&&!(Math.ceil(e.pos/8)+3>t.length);n++){const t=e.readBits(2),n=e.readBits(5);e.skipBits(1),e.skipBits(1);const i=e.readBits(3),o=e.readBits(3),s=e.readBits(1);e.skipBits(3);const a=e.readBits(4);let l=0;a>0?l=e.readBits(9):e.skipBits(1),r.push({fscod:t,fscod2:null,bsid:n,bsmod:i,acmod:o,lfeon:s,numDepSub:a,chanLoc:l})}return 0===r.length?null:{dataRate:n,substreams:r}})(ZT(t,B.contentSize));if(!n){console.warn("Invalid dec3 box contents, ignoring.");break}const i=(t=>{const e=t.substreams[0];return b_(e),e.fscod<3?nT[e.fscod]:null!==e.fscod2&&e.fscod2<3?iT[e.fscod2]:null})(n);null!==i&&(e.info.sampleRate=i),e.info.numberOfChannels=(t=>{const e=t.substreams[0];b_(e);let n=fT[e.acmod]+e.lfeon;if(e.numDepSub>0){const t=[2,2,1,1,2,2,2,1,1];for(let i=0;i<9;i++)e.chanLoc&1<<8-i&&(n+=t[i])}return n})(n)}break;case"stts":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t);let i=0,r=0;for(let o=0;o<n;o++){const n=rI(t),o=rI(t);e.sampleTable.sampleTimingEntries.push({startIndex:i,startDecodeTimestamp:r,count:n,delta:o}),i+=n,r+=n*o}}break;case"ctts":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t);let i=0;for(let r=0;r<n;r++){const n=rI(t),r=oI(t);e.sampleTable.sampleCompositionTimeOffsets.push({startIndex:i,count:n,offset:r}),i+=n}}break;case"stsz":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t),i=rI(t);if(0===n)for(let n=0;n<i;n++){const n=rI(t);e.sampleTable.sampleSizes.push(n)}else e.sampleTable.sampleSizes.push(n)}break;case"stz2":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4),t.skip(3);const n=tI(t),i=rI(t),r=ZT(t,Math.ceil(i*n/8)),o=new H_(r);for(let t=0;t<i;t++){const t=o.readBits(n);e.sampleTable.sampleSizes.push(t)}}break;case"stss":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4),e.sampleTable.keySampleIndices=[];const n=rI(t);for(let i=0;i<n;i++){const n=rI(t)-1;e.sampleTable.keySampleIndices.push(n)}0!==e.sampleTable.keySampleIndices[0]&&e.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t);for(let i=0;i<n;i++){const n=rI(t)-1,i=rI(t),r=rI(t);e.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:n,samplesPerChunk:i,sampleDescriptionIndex:r})}let i=0;for(let t=0;t<e.sampleTable.sampleToChunk.length;t++)e.sampleTable.sampleToChunk[t].startSampleIndex=i,t<e.sampleTable.sampleToChunk.length-1&&(i+=(e.sampleTable.sampleToChunk[t+1].startChunkIndex-e.sampleTable.sampleToChunk[t].startChunkIndex)*e.sampleTable.sampleToChunk[t].samplesPerChunk)}break;case"stco":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t);for(let i=0;i<n;i++){const n=rI(t);e.sampleTable.chunkOffsets.push(n)}}break;case"co64":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=rI(t);for(let i=0;i<n;i++){const n=sI(t);e.sampleTable.chunkOffsets.push(n)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.slice(z,B.contentSize));break;case"mehd":{const e=tI(t);t.skip(3);const n=1===e?sI(t):rI(t);this.movieDurationInTimescale=n}break;case"trex":{t.skip(4);const e=rI(t),n=rI(t),i=rI(t),r=rI(t),o=rI(t);this.fragmentTrackDefaults.push({trackId:e,defaultSampleDescriptionIndex:n,defaultSampleDuration:i,defaultSampleSize:r,defaultSampleFlags:o})}break;case"tfra":{const e=tI(t);t.skip(3);const n=rI(t),i=this.tracks.find((t=>t.id===n));if(!i)break;const r=rI(t),o=(12&r)>>2,s=3&r,a=[tI,eI,nI,rI],l=a[(48&r)>>4],c=a[o],u=a[s],d=rI(t);for(let n=0;n<d;n++){const n=1===e?sI(t):rI(t),r=1===e?sI(t):rI(t);l(t),c(t),u(t),i.fragmentLookupTable.push({timestamp:n,moofOffset:r})}i.fragmentLookupTable.sort(((t,e)=>t.timestamp-e.timestamp));for(let t=0;t<i.fragmentLookupTable.length-1;t++){const e=i.fragmentLookupTable[t],n=i.fragmentLookupTable[t+1];e.timestamp===n.timestamp&&(i.fragmentLookupTable.splice(t+1,1),t--)}}break;case"moof":this.currentFragment={moofOffset:L,moofSize:B.totalSize,implicitBaseDataOffset:L,trackData:new Map},this.readContiguousBoxes(t.slice(z,B.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if(b_(this.currentFragment),this.readContiguousBoxes(t.slice(z,B.contentSize)),this.currentTrack){const t=this.currentFragment.trackData.get(this.currentTrack.id);if(t){const{currentFragmentState:e}=this.currentTrack;b_(e),null!==e.startTimestamp&&(WT(t,e.startTimestamp),t.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{var J,Z,tt,et;b_(this.currentFragment),t.skip(1);const e=nI(t),n=Boolean(1&e),i=Boolean(2&e),r=Boolean(8&e),o=Boolean(16&e),s=Boolean(32&e),a=Boolean(65536&e),l=Boolean(131072&e),c=rI(t),u=this.tracks.find((t=>t.id===c));if(!u)break;const d=this.fragmentTrackDefaults.find((t=>t.trackId===c));this.currentTrack=u,u.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:null!==(J=null==d?void 0:d.defaultSampleDescriptionIndex)&&void 0!==J?J:null,defaultSampleDuration:null!==(Z=null==d?void 0:d.defaultSampleDuration)&&void 0!==Z?Z:null,defaultSampleSize:null!==(tt=null==d?void 0:d.defaultSampleSize)&&void 0!==tt?tt:null,defaultSampleFlags:null!==(et=null==d?void 0:d.defaultSampleFlags)&&void 0!==et?et:null,startTimestamp:null},n?u.currentFragmentState.baseDataOffset=sI(t):l&&(u.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),i&&(u.currentFragmentState.sampleDescriptionIndex=rI(t)),r&&(u.currentFragmentState.defaultSampleDuration=rI(t)),o&&(u.currentFragmentState.defaultSampleSize=rI(t)),s&&(u.currentFragmentState.defaultSampleFlags=rI(t)),a&&(u.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{const e=this.currentTrack;if(!e)break;b_(e.currentFragmentState);const n=tI(t);t.skip(3);const i=0===n?rI(t):sI(t);e.currentFragmentState.startTimestamp=i}break;case"trun":{const e=this.currentTrack;if(!e)break;if(b_(this.currentFragment),b_(e.currentFragmentState),this.currentFragment.trackData.has(e.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}const n=tI(t),i=nI(t),r=Boolean(1&i),o=Boolean(4&i),s=Boolean(256&i),a=Boolean(512&i),l=Boolean(1024&i),c=Boolean(2048&i),u=rI(t);let d=e.currentFragmentState.baseDataOffset;r&&(d+=oI(t));let h=null;o&&(h=rI(t));let f=d;if(0===u){this.currentFragment.implicitBaseDataOffset=f;break}let p=0;const m={track:e,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(e.id,m);for(let i=0;i<u;i++){let r,o,u;s?r=rI(t):(b_(null!==e.currentFragmentState.defaultSampleDuration),r=e.currentFragmentState.defaultSampleDuration),a?o=rI(t):(b_(null!==e.currentFragmentState.defaultSampleSize),o=e.currentFragmentState.defaultSampleSize),l?u=rI(t):(b_(null!==e.currentFragmentState.defaultSampleFlags),u=e.currentFragmentState.defaultSampleFlags),0===i&&null!==h&&(u=h);let d=0;c&&(d=0===n?rI(t):oI(t));const v=!(65536&u);m.samples.push({presentationTimestamp:p+d,duration:r,byteOffset:f,byteSize:o,isKeyFrame:v}),f+=o,p+=r}m.presentationTimestamps=m.samples.map(((t,e)=>({presentationTimestamp:t.presentationTimestamp,sampleIndex:e}))).sort(((t,e)=>t.presentationTimestamp-e.presentationTimestamp));for(let t=0;t<m.presentationTimestamps.length;t++){const e=m.presentationTimestamps[t],n=m.samples[e.sampleIndex];if(null===m.firstKeyFrameTimestamp&&n.isKeyFrame&&(m.firstKeyFrameTimestamp=n.presentationTimestamp),t<m.presentationTimestamps.length-1){const i=m.presentationTimestamps[t+1];n.duration=i.presentationTimestamp-e.presentationTimestamp}}const v=m.samples[m.presentationTimestamps[0].sampleIndex],g=m.samples[k_(m.presentationTimestamps).sampleIndex];m.startTimestamp=v.presentationTimestamp,m.endTimestamp=g.presentationTimestamp+g.duration,this.currentFragment.implicitBaseDataOffset=f}break;case"udta":{const g=this.iterateContiguousBoxes(t.slice(z,B.contentSize));for(const{boxInfo:t,slice:y}of g){if("meta"!==t.name&&!this.currentTrack){var nt,it,rt,ot,st,at,lt,ct;const e=y.filePos;null!==(it=(nt=this.metadataTags).raw)&&void 0!==it||(nt.raw={}),"©"===t.name[0]?null!==(st=(rt=this.metadataTags.raw)[ot=t.name])&&void 0!==st||(rt[ot]=MT(y)):null!==(ct=(at=this.metadataTags.raw)[lt=t.name])&&void 0!==ct||(at[lt]=ZT(y,t.contentSize)),y.filePos=e}switch(t.name){case"meta":y.skip(-t.headerSize),this.traverseBox(y);break;case"©nam":case"name":this.currentTrack?this.currentTrack.name=T_.decode(ZT(y,t.contentSize)):null!==(n=(e=this.metadataTags).title)&&void 0!==n||(e.title=MT(y));break;case"©des":this.currentTrack||null!==(r=(i=this.metadataTags).description)&&void 0!==r||(i.description=MT(y));break;case"©ART":this.currentTrack||null!==(s=(o=this.metadataTags).artist)&&void 0!==s||(o.artist=MT(y));break;case"©alb":this.currentTrack||null!==(l=(a=this.metadataTags).album)&&void 0!==l||(a.album=MT(y));break;case"albr":this.currentTrack||null!==(u=(c=this.metadataTags).albumArtist)&&void 0!==u||(c.albumArtist=MT(y));break;case"©gen":this.currentTrack||null!==(h=(d=this.metadataTags).genre)&&void 0!==h||(d.genre=MT(y));break;case"©day":if(!this.currentTrack){var ut,dt;const t=new Date(MT(y));Number.isNaN(t.getTime())||null!==(dt=(ut=this.metadataTags).date)&&void 0!==dt||(ut.date=t)}break;case"©cmt":this.currentTrack||null!==(p=(f=this.metadataTags).comment)&&void 0!==p||(f.comment=MT(y));break;case"©lyr":this.currentTrack||null!==(v=(m=this.metadataTags).lyrics)&&void 0!==v||(m.lyrics=MT(y))}}}break;case"meta":{if(this.currentTrack)break;const e=0!==rI(t);this.currentMetadataKeys=new Map,e?this.readContiguousBoxes(t.slice(z,B.contentSize)):this.readContiguousBoxes(t.slice(z+4,B.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;t.skip(4);const e=rI(t);for(let n=0;n<e;n++){const e=rI(t);t.skip(4);const i=T_.decode(ZT(t,e-8));this.currentMetadataKeys.set(n+1,i)}}break;case"ilst":{if(!this.currentMetadataKeys)break;const e=this.iterateContiguousBoxes(t.slice(z,B.contentSize));for(const{boxInfo:t,slice:n}of e){var ht,ft,pt,mt,vt;let e=t.name;const i=(e.charCodeAt(0)<<24)+(e.charCodeAt(1)<<16)+(e.charCodeAt(2)<<8)+e.charCodeAt(3);this.currentMetadataKeys.has(i)&&(e=this.currentMetadataKeys.get(i));const r=FT(n);switch(null!==(ft=(ht=this.metadataTags).raw)&&void 0!==ft||(ht.raw={}),null!==(vt=(pt=this.metadataTags.raw)[mt=e])&&void 0!==vt||(pt[mt]=r),e){case"©nam":case"titl":case"com.apple.quicktime.title":case"title":"string"==typeof r&&(null!==(y=(g=this.metadataTags).title)&&void 0!==y||(g.title=r));break;case"©des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":"string"==typeof r&&(null!==(k=(b=this.metadataTags).description)&&void 0!==k||(b.description=r));break;case"©ART":case"com.apple.quicktime.artist":case"artist":"string"==typeof r&&(null!==(x=(w=this.metadataTags).artist)&&void 0!==x||(w.artist=r));break;case"©alb":case"albm":case"com.apple.quicktime.album":case"album":"string"==typeof r&&(null!==(T=(_=this.metadataTags).album)&&void 0!==T||(_.album=r));break;case"aART":case"album_artist":"string"==typeof r&&(null!==(E=(I=this.metadataTags).albumArtist)&&void 0!==E||(I.albumArtist=r));break;case"©cmt":case"com.apple.quicktime.comment":case"comment":"string"==typeof r&&(null!==(A=(S=this.metadataTags).comment)&&void 0!==A||(S.comment=r));break;case"©gen":case"gnre":case"com.apple.quicktime.genre":case"genre":"string"==typeof r&&(null!==(M=(N=this.metadataTags).genre)&&void 0!==M||(N.genre=r));break;case"©lyr":case"lyrics":"string"==typeof r&&(null!==(O=(F=this.metadataTags).lyrics)&&void 0!==O||(F.lyrics=r));break;case"©day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if("string"==typeof r){var gt,yt;const t=new Date(r);Number.isNaN(t.getTime())||null!==(yt=(gt=this.metadataTags).date)&&void 0!==yt||(gt.date=t)}break;case"covr":case"com.apple.quicktime.artwork":r instanceof V_?(null!==(P=(C=this.metadataTags).images)&&void 0!==P||(C.images=[]),this.metadataTags.images.push({data:r.data,kind:"coverFront",mimeType:r.mimeType})):r instanceof Uint8Array&&(null!==(R=(D=this.metadataTags).images)&&void 0!==R||(D.images=[]),this.metadataTags.images.push({data:r,kind:"coverFront",mimeType:"image/*"}));break;case"track":if("string"==typeof r){var bt,kt,wt,xt;const t=r.split("/"),e=Number.parseInt(t[0],10),n=t[1]&&Number.parseInt(t[1],10);Number.isInteger(e)&&e>0&&(null!==(kt=(bt=this.metadataTags).trackNumber)&&void 0!==kt||(bt.trackNumber=e)),n&&Number.isInteger(n)&&n>0&&(null!==(xt=(wt=this.metadataTags).tracksTotal)&&void 0!==xt||(wt.tracksTotal=n))}break;case"trkn":if(r instanceof Uint8Array&&r.length>=6){var _t,Tt,It,Et;const t=__(r),e=t.getUint16(2,!1),n=t.getUint16(4,!1);e>0&&(null!==(Tt=(_t=this.metadataTags).trackNumber)&&void 0!==Tt||(_t.trackNumber=e)),n>0&&(null!==(Et=(It=this.metadataTags).tracksTotal)&&void 0!==Et||(It.tracksTotal=n))}break;case"disc":case"disk":if(r instanceof Uint8Array&&r.length>=6){var St,At,Nt,Mt;const t=__(r),e=t.getUint16(2,!1),n=t.getUint16(4,!1);e>0&&(null!==(At=(St=this.metadataTags).discNumber)&&void 0!==At||(St.discNumber=e)),n>0&&(null!==(Mt=(Nt=this.metadataTags).discsTotal)&&void 0!==Mt||(Nt.discsTotal=n))}}}}}var Ft,Ot;return t.filePos=W,!0}}class CT{constructor(t){this.internalTrack=t,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getNumber(){const t=this.internalTrack.demuxer,e=this.internalTrack.inputTrack.type;let n=0;for(const i of t.tracks)if(i.inputTrack.type===e&&n++,i===this.internalTrack)break;return n}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}getDisposition(){return this.internalTrack.disposition}async computeDuration(){var t,e;const n=await this.getPacket(1/0,{metadataOnly:!0});return(null!==(t=null==n?void 0:n.timestamp)&&void 0!==t?t:0)+(null!==(e=null==n?void 0:n.duration)&&void 0!==e?e:0)}async getFirstTimestamp(){var t;const e=await this.getFirstPacket({metadataOnly:!0});return null!==(t=null==e?void 0:e.timestamp)&&void 0!==t?t:0}async getFirstPacket(t){const e=await this.fetchPacketForSampleIndex(0,t);return e||!this.internalTrack.demuxer.isFragmented?e:this.performFragmentedLookup(null,(t=>t.trackData.get(this.internalTrack.id)?{sampleIndex:0,correctSampleFound:!0}:{sampleIndex:-1,correctSampleFound:!1}),-1/0,1/0,t)}mapTimestampIntoTimescale(t){return(t=>{const e=Math.round(t);return Math.abs(t/e-1)<10*Number.EPSILON?e:t})(t*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(t,e){const n=this.mapTimestampIntoTimescale(t),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),r=RT(i,n),o=await this.fetchPacketForSampleIndex(r,e);return UT(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,(t=>{const e=t.trackData.get(this.internalTrack.id);if(!e)return{sampleIndex:-1,correctSampleFound:!1};const i=D_(e.presentationTimestamps,n,(t=>t.presentationTimestamp));return{sampleIndex:-1!==i?e.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&n<e.endTimestamp}}),n,n,e):o}async getNextPacket(t,e){const n=this.packetToSampleIndex.get(t);if(void 0!==n)return this.fetchPacketForSampleIndex(n+1,e);const i=this.packetToFragmentLocation.get(t);if(void 0===i)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,(t=>{if(t===i.fragment){const e=t.trackData.get(this.internalTrack.id);if(i.sampleIndex+1<e.samples.length)return{sampleIndex:i.sampleIndex+1,correctSampleFound:!0}}else if(t.trackData.get(this.internalTrack.id))return{sampleIndex:0,correctSampleFound:!0};return{sampleIndex:-1,correctSampleFound:!1}}),-1/0,1/0,e)}async getKeyPacket(t,e){const n=this.mapTimestampIntoTimescale(t),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),r=LT(i,n),o=await this.fetchPacketForSampleIndex(r,e);return UT(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,(t=>{const e=t.trackData.get(this.internalTrack.id);if(!e)return{sampleIndex:-1,correctSampleFound:!1};const i=((t,e)=>{for(let n=t.length-1;n>=0;n--)if(e(t[n]))return n;return-1})(e.presentationTimestamps,(t=>e.samples[t.sampleIndex].isKeyFrame&&t.presentationTimestamp<=n));return{sampleIndex:-1!==i?e.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&n<e.endTimestamp}}),n,n,e):o}async getNextKeyPacket(t,e){const n=this.packetToSampleIndex.get(t);if(void 0!==n){const t=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=zT(t,n);return this.fetchPacketForSampleIndex(i,e)}const i=this.packetToFragmentLocation.get(t);if(void 0===i)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,(t=>{if(t===i.fragment){const e=t.trackData.get(this.internalTrack.id).samples.findIndex(((t,e)=>t.isKeyFrame&&e>i.sampleIndex));if(-1!==e)return{sampleIndex:e,correctSampleFound:!0}}else{const e=t.trackData.get(this.internalTrack.id);if(e&&null!==e.firstKeyFrameTimestamp){const t=e.samples.findIndex((t=>t.isKeyFrame));return b_(-1!==t),{sampleIndex:t,correctSampleFound:!0}}}return{sampleIndex:-1,correctSampleFound:!1}}),-1/0,1/0,e)}async fetchPacketForSampleIndex(t,e){if(-1===t)return null;const n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=BT(n,t);if(!i)return null;let r;if(e.metadataOnly)r=gT;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.sampleOffset,i.sampleSize);t instanceof Promise&&(t=await t),b_(t),r=ZT(t,i.sampleSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new yT(r,i.isKeyFrame?"key":"delta",o,s,t,i.sampleSize);return this.packetToSampleIndex.set(a,t),a}async fetchPacketInFragment(t,e,n){if(-1===e)return null;const i=t.trackData.get(this.internalTrack.id).samples[e];let r;if(b_(i),n.metadataOnly)r=gT;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.byteOffset,i.byteSize);t instanceof Promise&&(t=await t),b_(t),r=ZT(t,i.byteSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new yT(r,i.isKeyFrame?"key":"delta",o,s,t.moofOffset+e,i.byteSize);return this.packetToFragmentLocation.set(a,{fragment:t,sampleIndex:e}),a}async performFragmentedLookup(t,e,n,i,r){var o,s;const a=this.internalTrack.demuxer;let l=null,c=null,u=-1;if(t){const{sampleIndex:n,correctSampleFound:i}=e(t);if(i)return this.fetchPacketInFragment(t,n,r);-1!==n&&(c=t,u=n)}const d=D_(this.internalTrack.fragmentLookupTable,n,(t=>t.timestamp)),h=-1!==d?this.internalTrack.fragmentLookupTable[d]:null,f=D_(this.internalTrack.fragmentPositionCache,n,(t=>t.startTimestamp)),p=-1!==f?this.internalTrack.fragmentPositionCache[f]:null,m=Math.max(null!==(o=null==h?void 0:h.moofOffset)&&void 0!==o?o:0,null!==(s=null==p?void 0:p.moofOffset)&&void 0!==s?s:0)||null;let v;for(t?null===m||t.moofOffset>=m?(v=t.moofOffset+t.moofSize,l=t):v=m:v=null!=m?m:0;;){if(l){const t=l.trackData.get(this.internalTrack.id);if(t&&t.startTimestamp>i)break}let t=a.reader.requestSliceRange(v,8,16);if(t instanceof Promise&&(t=await t),!t)break;const n=v,o=ET(t);if(!o)break;if("moof"===o.name){l=await a.readFragment(n);const{sampleIndex:t,correctSampleFound:i}=e(l);if(i)return this.fetchPacketInFragment(l,t,r);-1!==t&&(c=l,u=t)}v=n+o.totalSize}if(h&&(!c||c.moofOffset<h.moofOffset)){var g;const t=this.internalTrack.fragmentLookupTable[d-1];b_(!t||t.timestamp<h.timestamp);const n=null!==(g=null==t?void 0:t.timestamp)&&void 0!==g?g:-1/0;return this.performFragmentedLookup(null,e,n,i,r)}return c?this.fetchPacketInFragment(c,u,r):null}}class PT extends CT{constructor(t){super(t),this.decoderConfigPromise=null,this.internalTrack=t}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getSquarePixelWidth(){return this.internalTrack.info.squarePixelWidth}getSquarePixelHeight(){return this.internalTrack.info.squarePixelHeight}getRotation(){return this.internalTrack.rotation}async getColorSpace(){var t,e,n,i;return{primaries:null===(t=this.internalTrack.info.colorSpace)||void 0===t?void 0:t.primaries,transfer:null===(e=this.internalTrack.info.colorSpace)||void 0===e?void 0:e.transfer,matrix:null===(n=this.internalTrack.info.colorSpace)||void 0===n?void 0:n.matrix,fullRange:null===(i=this.internalTrack.info.colorSpace)||void 0===i?void 0:i.fullRange}}async canBeTransparent(){return!1}async getDecoderConfig(){var t;return this.internalTrack.info.codec?null!==(t=this.decoderConfigPromise)&&void 0!==t?t:this.decoderConfigPromise=(async(t,e)=>{if("vp9"!==this.internalTrack.info.codec||this.internalTrack.info.vp9CodecInfo){if("av1"===this.internalTrack.info.codec&&!this.internalTrack.info.av1CodecInfo){const t=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=t&&(t=>{for(const{type:e,data:n}of dT(t)){if(1!==e)continue;const t=new H_(n),i=t.readBits(3);t.readBits(1);const r=t.readBits(1);let o=0,s=0,a=0;if(r)o=t.readBits(5);else{if(t.readBits(1)&&(t.skipBits(32),t.skipBits(32),t.readBits(1)))return null;const e=t.readBits(1);e&&(a=t.readBits(5),t.skipBits(32),t.skipBits(5),t.skipBits(5));const n=t.readBits(5);for(let i=0;i<=n;i++){t.skipBits(12);const n=t.readBits(5);if(0===i&&(o=n),n>7){const e=t.readBits(1);0===i&&(s=e)}if(e&&t.readBits(1)){const e=a+1;t.skipBits(e),t.skipBits(e),t.skipBits(1)}t.readBits(1)&&t.skipBits(4)}}const l=t.readBits(4),c=t.readBits(4),u=l+1;t.skipBits(u);const d=c+1;t.skipBits(d);let h=0;if(h=r?0:t.readBits(1),h&&(t.skipBits(4),t.skipBits(3)),t.skipBits(1),t.skipBits(1),t.skipBits(1),!r){t.skipBits(1),t.skipBits(1),t.skipBits(1),t.skipBits(1);const e=t.readBits(1);e&&(t.skipBits(1),t.skipBits(1));let n=0;n=t.readBits(1)?2:t.readBits(1),n>0&&(t.readBits(1)||t.skipBits(1)),e&&t.skipBits(3)}t.skipBits(1),t.skipBits(1),t.skipBits(1);const f=t.readBits(1);let p=8;2===i&&f?p=t.readBits(1)?12:10:i<=2&&(p=f?10:8);let m=0;1!==i&&(m=t.readBits(1));let v=1,g=1,y=0;return m||(0===i?(v=1,g=1):1===i?(v=0,g=0):12===p&&(v=t.readBits(1),v&&(g=t.readBits(1))),v&&g&&(y=t.readBits(2))),{profile:i,level:o,tier:s,bitDepth:p,monochrome:m,chromaSubsamplingX:v,chromaSubsamplingY:g,chromaSamplePosition:y}}return null})(t.data)}}else{const t=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=t&&(t=>{const e=new H_(t);if(2!==e.readBits(2))return null;const n=e.readBits(1),i=(e.readBits(1)<<1)+n;if(3===i&&e.skipBits(1),1===e.readBits(1))return null;if(0!==e.readBits(1))return null;if(e.skipBits(2),4817730!==e.readBits(24))return null;let r=8;i>=2&&(r=e.readBits(1)?12:10);const o=e.readBits(3);let s=0,a=0;if(7!==o)if(a=e.readBits(1),1===i||3===i){const t=e.readBits(1),n=e.readBits(1);s=t||n?t&&!n?2:1:3,e.skipBits(1)}else s=1;else s=3,a=1;const l=(e.readBits(16)+1)*(e.readBits(16)+1);let c=k_(J_).level;for(const t of J_)if(l<=t.maxPictureSize){c=t.level;break}return{profile:i,level:c,bitDepth:r,chromaSubsampling:s,videoFullRangeFlag:a,colourPrimaries:2===o?1:1===o?6:2,transferCharacteristics:2===o?1:1===o?6:2,matrixCoefficients:7===o?0:2===o?1:1===o?6:2}})(t.data)}return{codec:Z_(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,displayAspectWidth:this.internalTrack.info.squarePixelWidth,displayAspectHeight:this.internalTrack.info.squarePixelHeight,description:null!==(t=this.internalTrack.info.codecDescription)&&void 0!==t?t:void 0,colorSpace:null!==(e=this.internalTrack.info.colorSpace)&&void 0!==e?e:void 0}})():null}}class DT extends CT{constructor(t){super(t),this.decoderConfig=null,this.internalTrack=t}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){var t,e;return this.internalTrack.info.codec?null!==(t=this.decoderConfig)&&void 0!==t?t:this.decoderConfig={codec:tT(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:null!==(e=this.internalTrack.info.codecDescription)&&void 0!==e?e:void 0}:null}}const RT=(t,e)=>{if(t.presentationTimestamps){const n=D_(t.presentationTimestamps,e,(t=>t.presentationTimestamp));return-1===n?-1:t.presentationTimestamps[n].sampleIndex}{const n=D_(t.sampleTimingEntries,e,(t=>t.startDecodeTimestamp));if(-1===n)return-1;const i=t.sampleTimingEntries[n];return i.startIndex+Math.min(Math.floor((e-i.startDecodeTimestamp)/i.delta),i.count-1)}},LT=(t,e)=>{if(!t.keySampleIndices)return RT(t,e);if(t.presentationTimestamps){const n=D_(t.presentationTimestamps,e,(t=>t.presentationTimestamp));if(-1===n)return-1;for(let e=n;e>=0;e--){const n=t.presentationTimestamps[e].sampleIndex;if(-1!==P_(t.keySampleIndices,n,(t=>t)))return n}return-1}{var n;const i=RT(t,e),r=D_(t.keySampleIndices,i,(t=>t));return null!==(n=t.keySampleIndices[r])&&void 0!==n?n:-1}},BT=(t,e)=>{const n=D_(t.sampleTimingEntries,e,(t=>t.startIndex)),i=t.sampleTimingEntries[n];if(!i||i.startIndex+i.count<=e)return null;let r=i.startDecodeTimestamp+(e-i.startIndex)*i.delta;const o=D_(t.sampleCompositionTimeOffsets,e,(t=>t.startIndex)),s=t.sampleCompositionTimeOffsets[o];s&&e-s.startIndex<s.count&&(r+=s.offset);const a=t.sampleSizes[Math.min(e,t.sampleSizes.length-1)],l=D_(t.sampleToChunk,e,(t=>t.startSampleIndex)),c=t.sampleToChunk[l];b_(c);const u=c.startChunkIndex+Math.floor((e-c.startSampleIndex)/c.samplesPerChunk),d=t.chunkOffsets[u],h=c.startSampleIndex+(u-c.startChunkIndex)*c.samplesPerChunk;let f=0,p=d;if(1===t.sampleSizes.length)p+=a*(e-h),f+=a*c.samplesPerChunk;else for(let n=h;n<h+c.samplesPerChunk;n++){const i=t.sampleSizes[n];n<e&&(p+=i),f+=i}let m=i.delta;if(t.presentationTimestamps){const n=t.presentationTimestampIndexMap[e];b_(void 0!==n),n<t.presentationTimestamps.length-1&&(m=t.presentationTimestamps[n+1].presentationTimestamp-r)}return{presentationTimestamp:r,duration:m,sampleOffset:p,sampleSize:a,chunkOffset:d,chunkSize:f,isKeyFrame:!t.keySampleIndices||-1!==P_(t.keySampleIndices,e,(t=>t))}},zT=(t,e)=>{var n;if(!t.keySampleIndices)return e+1;const i=D_(t.keySampleIndices,e,(t=>t));return null!==(n=t.keySampleIndices[i+1])&&void 0!==n?n:-1},WT=(t,e)=>{t.startTimestamp+=e,t.endTimestamp+=e;for(const n of t.samples)n.presentationTimestamp+=e;for(const n of t.presentationTimestamps)n.presentationTimestamp+=e},jT=t=>{const[e,,,n]=t,i=Math.hypot(e,n),r=e/i,o=n/i,s=-Math.atan2(o,r)*(180/Math.PI);return Number.isFinite(s)?s:0},UT=t=>0===t.sampleSizes.length;class $T{}class qT extends $T{async _getMajorBrand(t){let e=t._reader.requestSlice(0,12);return e instanceof Promise&&(e=await e),e?(e.skip(4),"ftyp"!==cI(e,4)?null:cI(e,4)):null}_createDemuxer(t){return new OT(t)}}const VT=new class extends qT{async _canReadInput(t){const e=await this._getMajorBrand(t);return!!e&&"qt "!==e}get name(){return"MP4"}get mimeType(){return"video/mp4"}};class GT{constructor(){this._disposed=!1,this._sizePromise=null,this.onread=null}async getSizeOrNull(){var t;if(this._disposed)throw new XT;return null!==(t=this._sizePromise)&&void 0!==t?t:this._sizePromise=Promise.resolve(this._retrieveSize())}async getSize(){if(this._disposed)throw new XT;const t=await this.getSizeOrNull();if(null===t)throw new Error("Cannot determine the size of an unsized source.");return t}}class HT extends GT{constructor(t,e={}){var n;if(!(t instanceof ReadableStream))throw new TypeError("stream must be a ReadableStream.");if(!e||"object"!=typeof e)throw new TypeError("options must be an object.");if(void 0!==e.maxCacheSize&&(!q_(e.maxCacheSize)||e.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative number.");super(),this._reader=null,this._cache=[],this._pendingSlices=[],this._currentIndex=0,this._targetIndex=0,this._maxRequestedIndex=0,this._endIndex=null,this._pulling=!1,this._stream=t,this._maxCacheSize=null!==(n=e.maxCacheSize)&&void 0!==n?n:16777216}_retrieveSize(){return this._endIndex}_read(t,e){if(null!==this._endIndex&&e>this._endIndex)return null;this._maxRequestedIndex=Math.max(this._maxRequestedIndex,e);const n=D_(this._cache,t,(t=>t.start)),i=-1!==n?this._cache[n]:null;if(i&&i.start<=t&&e<=i.end)return{bytes:i.bytes,view:i.view,offset:i.start};let r=t;const o=new Uint8Array(e-t);if(-1!==n)for(let i=n;i<this._cache.length;i++){const n=this._cache[i];if(n.start>=e)break;const s=Math.max(t,n.start);s>r&&this._throwDueToCacheMiss();const a=Math.min(e,n.end);s<a&&(o.set(n.bytes.subarray(s-n.start,a-n.start),s-t),r=a)}if(r===e)return{bytes:o,view:__(o),offset:t};this._currentIndex>r&&this._throwDueToCacheMiss();const{promise:s,resolve:a,reject:l}=R_();return this._pendingSlices.push({start:t,end:e,bytes:o,resolve:a,reject:l}),this._targetIndex=Math.max(this._targetIndex,e),this._pulling||(this._pulling=!0,this._pull().catch((t=>{if(this._pulling=!1,!(this._pendingSlices.length>0))throw t;this._pendingSlices.forEach((e=>e.reject(t))),this._pendingSlices.length=0}))),s}_throwDueToCacheMiss(){throw new Error("Read is before the cached region. With ReadableStreamSource, you must access the data more sequentially or increase the size of its cache.")}async _pull(){for(null!==(t=this._reader)&&void 0!==t||(this._reader=this._stream.getReader());this._currentIndex<this._targetIndex&&!this._disposed;){var t;const{done:e,value:n}=await this._reader.read();if(e){for(const t of this._pendingSlices)t.resolve(null);this._pendingSlices.length=0,this._endIndex=this._currentIndex;break}const i=this._currentIndex,r=this._currentIndex+n.byteLength;for(let t=0;t<this._pendingSlices.length;t++){const e=this._pendingSlices[t],o=Math.max(i,e.start),s=Math.min(r,e.end);o<s&&(e.bytes.set(n.subarray(o-i,s-i),o-e.start),s===e.end&&(e.resolve({bytes:e.bytes,view:__(e.bytes),offset:e.start}),this._pendingSlices.splice(t,1),t--))}for(this._cache.push({start:i,end:r,bytes:n,view:__(n),age:0});this._cache.length>0;){const t=this._cache[0];if(this._maxRequestedIndex-t.end<=this._maxCacheSize)break;this._cache.shift()}this._currentIndex+=n.byteLength}this._pulling=!1}_dispose(){this._pendingSlices.length=0,this._cache.length=0}}null!==(ge=Symbol.dispose)&&void 0!==ge||(Symbol.dispose=Symbol("Symbol.dispose"));class KT{get disposed(){return this._disposed}constructor(t){if(this._demuxerPromise=null,this._format=null,this._disposed=!1,!t||"object"!=typeof t)throw new TypeError("options must be an object.");if(!Array.isArray(t.formats)||t.formats.some((t=>!(t instanceof $T))))throw new TypeError("options.formats must be an array of InputFormat.");if(!(t.source instanceof GT))throw new TypeError("options.source must be a Source.");if(t.source._disposed)throw new Error("options.source must not be disposed.");this._formats=t.formats,this._source=t.source,this._reader=new YT(t.source)}_getDemuxer(){var t;return null!==(t=this._demuxerPromise)&&void 0!==t?t:this._demuxerPromise=(async()=>{this._reader.fileSize=await this._source.getSizeOrNull();for(const t of this._formats)if(await t._canReadInput(this))return this._format=t,t._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),b_(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getFirstTimestamp(){const t=await this.getTracks();if(0===t.length)return 0;const e=await Promise.all(t.map((t=>t.getFirstTimestamp())));return Math.min(...e)}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter((t=>t.isVideoTrack()))}async getAudioTracks(){return(await this.getTracks()).filter((t=>t.isAudioTrack()))}async getPrimaryVideoTrack(){var t;return null!==(t=(await this.getTracks()).find((t=>t.isVideoTrack())))&&void 0!==t?t:null}async getPrimaryAudioTrack(){var t;return null!==(t=(await this.getTracks()).find((t=>t.isAudioTrack())))&&void 0!==t?t:null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}dispose(){this._disposed||(this._disposed=!0,this._source._disposed=!0,this._source._dispose())}[Symbol.dispose](){this.dispose()}}class XT extends Error{constructor(t="Input has been disposed."){super(t),this.name="InputDisposedError"}}class YT{constructor(t){this.source=t}requestSlice(t,e){if(this.source._disposed)throw new XT;if(t<0)return null;if(null!==this.fileSize&&t+e>this.fileSize)return null;const n=t+e,i=this.source._read(t,n);return i instanceof Promise?i.then((e=>e?new QT(e.bytes,e.view,e.offset,t,n):null)):i?new QT(i.bytes,i.view,i.offset,t,n):null}requestSliceRange(t,e,n){if(this.source._disposed)throw new XT;if(t<0)return null;if(null!==this.fileSize)return this.requestSlice(t,B_(this.fileSize-t,e,n));{const i=this.requestSlice(t,n),r=i=>{if(i)return i;const r=i=>(b_(null!==i),this.requestSlice(t,B_(i-t,e,n))),o=this.source._retrieveSize();return o instanceof Promise?o.then(r):r(o)};return i instanceof Promise?i.then(r):r(i)}}}class QT{constructor(t,e,n,i,r){this.bytes=t,this.view=e,this.offset=n,this.start=i,this.end=r,this.bufferPos=i-n}static tempFromBytes(t){return new QT(t,__(t),0,0,t.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(t){this.bufferPos=t-this.offset}get remainingLength(){return Math.max(this.end-this.filePos,0)}skip(t){this.bufferPos+=t}slice(t,e=this.end-t){if(t<this.start||t+e>this.end)throw new RangeError("Slicing outside of original slice.");return new QT(this.bytes,this.view,this.offset,t,t+e)}}const JT=(t,e)=>{if(t.filePos<t.start||t.filePos+e>t.end)throw new RangeError(`Tried reading [${t.filePos}, ${t.filePos+e}), but slice is [${t.start}, ${t.end}). This is likely an internal error, please report it alongside the file that caused it.`)},ZT=(t,e)=>{JT(t,e);const n=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,n},tI=t=>(JT(t,1),t.view.getUint8(t.bufferPos++)),eI=t=>{JT(t,2);const e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},nI=t=>{JT(t,3);const e=L_(t.view,t.bufferPos);return t.bufferPos+=3,e},iI=t=>{JT(t,2);const e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},rI=t=>{JT(t,4);const e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},oI=t=>{JT(t,4);const e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},sI=t=>4294967296*rI(t)+rI(t),aI=t=>4294967296*oI(t)+rI(t),lI=t=>{JT(t,8);const e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},cI=(t,e)=>{JT(t,e);let n="";for(let i=0;i<e;i++)n+=String.fromCharCode(t.bytes[t.bufferPos++]);return n};var uI=new WeakMap,dI=new WeakMap,hI=new WeakMap,fI=new WeakMap,pI=new WeakMap,mI=new WeakMap,vI=new WeakMap,gI=new WeakMap,yI=new WeakMap,bI=new WeakMap,kI=new WeakMap,wI=new WeakMap,xI=new WeakMap,_I=new WeakMap,TI=new WeakMap,II=new WeakSet;class EI extends md{constructor(...t){super(...t),U(this,II),W(this,uI,null),W(this,dI,null),W(this,hI,null),W(this,fI,null),W(this,pI,!1),W(this,mI,!1),W(this,vI,!1),W(this,gI,!1),W(this,yI,void 0),W(this,bI,null),W(this,kI,null),W(this,wI,!1),W(this,xI,!1),W(this,_I,null),W(this,TI,!1)}get name(){return"FMP4Demuxer"}get defaults(){return{}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"pushChunk","endOfStream"])}pushChunk(t,e={}){if(z(vI,this)||z(gI,this))return;const n=t instanceof Uint8Array?t:new Uint8Array(t),i=!!e.isInit;j(bI,this,L(II,this,OI).call(this,n,e,i)),i&&(j(yI,this,n),j(kI,this,null),this.trigger("demux:init",{data:n})),L(II,this,FI).call(this);try{var r;const t=null===(r=z(uI,this))||void 0===r?void 0:r.write(n);t&&"function"==typeof t.catch&&t.catch((t=>{L(II,this,CI).call(this,t)}))}catch(t){if(z(vI,this)||L(II,this,SI).call(this,t))return;return this.log.warn("[FMP4Demuxer] mediabunny demux failed",t),void L(II,this,CI).call(this,t)}const o=L(II,this,RI).call(this);o&&"function"==typeof o.catch&&o.catch((t=>{L(II,this,CI).call(this,t)}))}endOfStream(){if(z(gI,this))return;if(z(wI,this))return;let t;j(wI,this,!0),j(xI,this,!1),j(TI,this,!1);try{var e;t=null===(e=z(uI,this))||void 0===e?void 0:e.close()}catch(e){t=Promise.resolve()}let n=!1;L(II,this,NI).call(this),j(_I,this,setTimeout((()=>{j(_I,this,null),n||z(xI,this)||z(gI,this)||L(II,this,MI).call(this)}),20)),Promise.resolve(t).catch((()=>{})).finally((()=>{n=!0,L(II,this,NI).call(this),L(II,this,MI).call(this)}))}onDispose(){super.onDispose(),j(gI,this,!0);try{var t,e;null===(t=z(hI,this))||void 0===t||null===(e=t.close)||void 0===e||e.call(t)}catch(t){}this.endOfStream();try{var n,i;null===(n=z(dI,this))||void 0===n||null===(i=n.dispose)||void 0===i||i.call(n)}catch(t){}j(hI,this,null),j(dI,this,null),j(vI,this,!1),j(bI,this,null),j(fI,this,null),j(pI,this,!1),j(mI,this,!1),j(wI,this,!1),j(xI,this,!1),j(TI,this,!1),L(II,this,NI).call(this)}}function SI(t){return!!z(gI,this)&&(!t||("InputDisposedError"===(null==t?void 0:t.name)||("string"==typeof(null==t?void 0:t.message)?t.message:"").includes("Input has been disposed")))}function AI(){try{var t,e;const n=null===(t=z(uI,this))||void 0===t||null===(e=t.close)||void 0===e?void 0:e.call(t);n&&"function"==typeof n.catch&&n.catch((()=>{}))}catch(t){}j(uI,this,null)}function NI(){null!==z(_I,this)&&(clearTimeout(z(_I,this)),j(_I,this,null))}function MI(){if(z(xI,this)||z(gI,this)||z(vI,this))return;if(j(xI,this,!0),z(mI,this))return void j(TI,this,!0);j(TI,this,!1);const t=L(II,this,RI).call(this);t&&"function"==typeof t.catch&&t.catch((t=>{L(II,this,CI).call(this,t)}))}function FI(){if(z(dI,this)&&z(uI,this))return;const t=yd.TransformStream;if(void 0===t)throw new Error("TransformStream is not available in this environment");const{readable:e,writable:n}=new t;j(uI,this,n.getWriter()),j(dI,this,new KT({source:new HT(e),formats:[VT]})),j(pI,this,!1)}function OI(t,e,n){const i={isInit:n,byteLength:(null==t?void 0:t.byteLength)||0};return"number"==typeof e.loaded&&(i.loaded=e.loaded),"number"==typeof e.total&&(i.total=e.total),"number"==typeof e.pts&&(i.pts=e.pts),"number"==typeof e.dts&&(i.dts=e.dts),"number"==typeof e.duration&&(i.duration=e.duration),"boolean"==typeof e.isKey&&(i.isKey=e.isKey),i}function CI(t){if(z(vI,this)||L(II,this,SI).call(this,t))return;if(L(II,this,DI).call(this,t))return void j(pI,this,!1);j(vI,this,!0),L(II,this,AI).call(this);try{var e,n;null===(e=z(hI,this))||void 0===e||null===(n=e.close)||void 0===n||n.call(e)}catch(t){}j(hI,this,null);try{var i,r;null===(i=z(dI,this))||void 0===i||null===(r=i.dispose)||void 0===r||r.call(i)}catch(t){}j(dI,this,null);const o={error:t,recoverable:!1,severity:"fatal",streamClosed:z(wI,this),streamFinalized:z(xI,this)};z(bI,this)&&(o.context={...z(bI,this)}),this.trigger("demux:error",o)}function PI(t){if(!t)return!1;const e="string"==typeof(null==t?void 0:t.message)?t.message:"";return!!e&&(e.includes("unsupported or unrecognizable format")||e.includes("No supported tracks found"))}function DI(t){return!!L(II,this,PI).call(this,t)&&(!z(xI,this)||z(TI,this))}async function RI(){if(!(z(gI,this)||z(vI,this)||z(pI,this)||z(mI,this))){j(mI,this,!0);try{L(II,this,FI).call(this);const t=await z(dI,this).getPrimaryVideoTrack(),e=t?null:await z(dI,this).getPrimaryAudioTrack(),n=t||e;if(!n)throw new Error("No supported tracks found in MP4");const i=await n.getDecoderConfig(),r=await n.getCodecParameterString(),o=await z(dI,this).getMimeType();this.trigger("demux:init",{...z(yI,this)?{data:z(yI,this)}:{},decoderConfig:i,codec:r,mimeType:o}),j(hI,this,new xT(n)),j(pI,this,!0),j(fI,this,(async()=>{try{for await(const t of z(hI,this).packets()){if(z(gI,this))break;const e="number"==typeof t.timestamp?t.timestamp:0;null===z(kI,this)&&j(kI,this,e);let n=e-z(kI,this);n<0&&(n=0),this.trigger("demux:sample",{data:t.data,pts:n,dts:n,duration:t.duration,isKey:"key"===t.type})}this.trigger("demux:complete")}catch(t){L(II,this,CI).call(this,t)}})())}catch(t){if(L(II,this,DI).call(this,t))return;throw t}finally{j(mI,this,!1),!z(TI,this)||z(vI,this)||z(gI,this)||L(II,this,MI).call(this)}}}const LI=1e6,BI=24e3/1001,zI={primaries:"bt709",transfer:"bt709",matrix:"bt709",fullRange:!0},WI=new Uint8Array;function jI(t){return t?t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):WI:WI}let UI=null;const $I={video:(ye=new WeakMap,be=new WeakMap,ke=new WeakMap,we=new WeakMap,xe=new WeakMap,_e=new WeakMap,Te=new WeakMap,Ie=new WeakMap,Ee=new WeakMap,Se=new WeakMap,Ae=new WeakMap,Ne=new WeakMap,Me=new WeakMap,Fe=new WeakMap,Oe=new WeakMap,Ce=new WeakMap,Pe=new WeakMap,De=new WeakMap,Re=new WeakMap,Le=new WeakMap,Be=new WeakMap,ze=new WeakMap,We=new WeakMap,je=new WeakMap,Ue=new WeakMap,$e=new WeakMap,qe=new WeakMap,Ve=new WeakMap,Ge=new WeakMap,He=new WeakMap,Ke=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,Qe=new WeakMap,Je=new WeakSet,class extends y_{get name(){return"WebCodecsSegmentDecoder"}get defaults(){return{decodedHorizonSeconds:1,maxDecodedFrames:24,maxDecodeQueueSize:4,av1ColorSpaceOverrideEnabled:!0,convertFramesToBitmapsOnAndroid:!0,androidFixEndOfSegmentDelta:.2}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"decodeChunk"])}constructor(...t){super(...t),U(this,Je),W(this,ye,void 0),W(this,be,[]),W(this,ke,void 0),W(this,we,void 0),W(this,xe,void 0),W(this,_e,void 0),W(this,Te,[]),W(this,Ie,void 0),W(this,Ee,new Map),W(this,Se,!0),W(this,Ae,!1),W(this,Ne,!1),W(this,Me,!1),W(this,Fe,void 0),W(this,Oe,!1),W(this,Ce,!1),W(this,Pe,0),W(this,De,void 0),W(this,Re,void 0),W(this,Le,{}),W(this,Be,void 0),W(this,ze,0),W(this,We,null),W(this,je,!1),W(this,Ue,null),W(this,$e,void 0),W(this,qe,0),W(this,Ve,0),W(this,Ge,0),W(this,He,0),W(this,Ke,!1),W(this,Xe,!1),W(this,Ye,.2),W(this,Qe,Promise.resolve()),j(ke,this,this.settings.decodedHorizonSeconds||1),j(we,this,L(Je,this,PE).call(this,this.settings.maxDecodedFrames)),j(xe,this,L(Je,this,RE).call(this,this.settings.maxDecodeQueueSize)),j(Ke,this,Iv()),j(Xe,this,L(Je,this,EE).call(this,this.settings.convertFramesToBitmapsOnAndroid)),j(Ye,this,L(Je,this,SE).call(this,this.settings.androidFixEndOfSegmentDelta)),j(_e,this,(()=>0)),j(Ie,this,(()=>L(Je,this,vE).call(this)));const e=this.settings.demuxerOptions?{FMP4Demuxer:this.settings.demuxerOptions}:{};j(ye,this,new EI(e)),z(ye,this).on("demux:init",(t=>L(Je,this,sE).call(this,t))),z(ye,this).on("demux:sample",(t=>L(Je,this,aE).call(this,t))),z(ye,this).on("demux:complete",(()=>L(Je,this,lE).call(this))),z(ye,this).on("demux:error",(t=>L(Je,this,XI).call(this,t)))}setCurrentTimeProvider(t){"function"==typeof t&&j(_e,this,t)}setTimeOffsetSeconds(t){const e=Number(t);j(ze,this,Number.isFinite(e)?e:0)}setSeekTargetTimeSeconds(t){const e=Number(t);j(We,this,Number.isFinite(e)?e:null),j(je,this,!1),j(Ue,this,null)}endOfStream(){z(ye,this)&&"function"==typeof z(ye,this).endOfStream&&z(ye,this).endOfStream()}configure(t){super.configure(t),j(Le,this,{codec:L(Je,this,jE).call(this,t),width:(null==t?void 0:t.codedWidth)||(null==t?void 0:t.width),height:(null==t?void 0:t.codedHeight)||(null==t?void 0:t.height)}),j(De,this,z(Le,this).codec)}setSegment(t){this.lastSegment=t,L(Je,this,nE).call(this)}setNodeId(t){j($e,this,t)}decode(t){this.setSegment(t);const e=null==t?void 0:t.arrayBuffer;e&&z(ye,this).pushChunk(e,{isInit:!(null==t||!t.isInit)})}async decodeChunk(t,e={}){await z(ye,this).pushChunk(t,{isInit:!!e.isInit,pts:"number"==typeof e.pts?e.pts:void 0,dts:"number"==typeof e.dts?e.dts:void 0,duration:"number"==typeof e.duration?e.duration:void 0,isKey:!!e.isKey,loaded:"number"==typeof e.loaded?e.loaded:void 0,total:"number"==typeof e.total?e.total:void 0})}get decodedFrames(){return z(be,this).slice()}onDispose(){if(super.onDispose(),L(Je,this,bE).call(this),z(ye,this)&&"function"==typeof z(ye,this).dispose&&z(ye,this).dispose(),j(be,this,[]),j(Te,this,[]),z(Ee,this).clear(),j(Ue,this,null),z(Fe,this)&&"function"==typeof z(Fe,this).close)try{z(Fe,this).close()}catch(t){}j(Fe,this,null),j(Oe,this,!1),j(Re,this,null),j(De,this,null),j($e,this,null),j(Qe,this,Promise.resolve()),L(Je,this,nE).call(this)}}),audio:(Ze=new WeakMap,tn=new WeakMap,en=new WeakMap,nn=new WeakMap,rn=new WeakMap,on=new WeakMap,sn=new WeakMap,an=new WeakSet,class extends y_{constructor(...t){super(...t),U(this,an),W(this,Ze,void 0),W(this,tn,[]),W(this,en,0),W(this,nn,!1),W(this,rn,!1),W(this,on,void 0),W(this,sn,0)}get name(){return"WebAudioDecoder"}setSegment(t){j(on,this,t)}setTimeOffsetSeconds(t){const e=Number(t);j(sn,this,Number.isFinite(e)?e:0)}decode(t){if(this.lastSegment=t,!t)return;if(t.isInit)return void j(Ze,this,jI(t.arrayBuffer));const e=t.arrayBuffer;e&&L(an,this,GI).call(this,jI(e),!0)}decodeChunk(t,e={}){if(!t)return;if(e.isInit)return void j(Ze,this,jI(t));const n=jI(t);if(!n.length)return;z(tn,this).push(n),j(en,this,z(en,this)+n.length);const i=Number(e.loaded),r=Number(e.total);Number.isFinite(i)&&Number.isFinite(r)&&r>0&&i>=r&&L(an,this,qI).call(this)}endOfStream(){L(an,this,qI).call(this)}onDispose(){super.onDispose(),j(Ze,this,void 0),j(tn,this,[]),j(en,this,0),j(nn,this,!1),j(rn,this,!1),j(on,this,void 0)}}),image:class extends y_{#R;#L=0;#B=[];#z=0;#W;get name(){return"ImageDecoder"}setSegment(t){this.#R=t}setTimeOffsetSeconds(t){const e=Number(t);this.#L=Number.isFinite(e)?e:0}decode(t){super.decode(t),t&&(this.#R=t);const e=null==t?void 0:t.arrayBuffer;e instanceof ArrayBuffer&&(this.#B=[new Uint8Array(e)],this.#z=e.byteLength,this.endOfStream())}decodeChunk(t,e={}){if(null!=e&&e.isInit)return;const n=function(t){if(t)return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):ArrayBuffer.isView(t)&&t.buffer?new Uint8Array(t.buffer):void 0}(t);n&&n.length&&(this.#B.push(n),this.#z+=n.length)}async endOfStream(){var t,e,n;if(this.#W)return;if(!(this.#B.length&&this.#z>0))return;const i=new Uint8Array(this.#z);let r=0;for(let t=0;t<this.#B.length;t+=1){const e=this.#B[t];i.set(e,r),r+=e.length}const o=null===(t=this.#R)||void 0===t?void 0:t.chosenRepresentation,s=(null==o?void 0:o.mime)||(null===(e=this.track)||void 0===e?void 0:e.mimeType)||(null===(n=this.track)||void 0===n?void 0:n.mime)||function(t){if(t instanceof Uint8Array&&!(t.byteLength<4))return t.byteLength>=8&&137===t[0]&&80===t[1]&&78===t[2]&&71===t[3]&&13===t[4]&&10===t[5]&&26===t[6]&&10===t[7]?"image/png":255===t[0]&&216===t[1]&&255===t[2]?"image/jpeg":t.byteLength>=6&&71===t[0]&&73===t[1]&&70===t[2]&&56===t[3]?"image/gif":t.byteLength>=12&&82===t[0]&&73===t[1]&&70===t[2]&&70===t[3]&&87===t[8]&&69===t[9]&&66===t[10]&&80===t[11]?"image/webp":void 0}(i);try{var a,l;const t=await async function(t,e){const n=function(t,e){if(!(t&&t.byteLength>0))return;if("function"!=typeof yd.Blob)return;const n="string"==typeof e?e:"";return new yd.Blob([t],n?{type:n}:void 0)}(t,e);if(!n)throw new Error("Image decode requires Blob support");let i;if("function"==typeof yd.Image&&yd.URL&&"function"==typeof yd.URL.createObjectURL&&"function"==typeof yd.URL.revokeObjectURL){const t=yd.URL.createObjectURL(n);try{const e=new yd.Image;return await new Promise(((n,i)=>{e.onload=()=>n(),e.onerror=t=>i(t||new Error("Image decode failed")),e.src=t})),e}catch(t){i=t}finally{yd.URL.revokeObjectURL(t)}}if("function"==typeof yd.createImageBitmap)try{return yd.createImageBitmap(n)}catch(t){i=t}if(i)throw i;throw new Error("No supported image decode mechanism")}(i,s);this.#W=t;const e=function(t){if(!t)return;const e=[[t.naturalWidth,t.naturalHeight],[t.width,t.height],[t.displayWidth,t.displayHeight],[t.videoWidth,t.videoHeight],[t.codedWidth,t.codedHeight]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}(t);e&&o&&(my(o.width)||(o.width=e.width),my(o.height)||(o.height=e.height)),this.trigger("decoder:frame",{pts:this.#L,duration:my(null===(a=this.#R)||void 0===a?void 0:a.duration)?this.#R.duration:null===(l=this.track)||void 0===l?void 0:l.duration,frame:t})}catch(t){this.trigger("decoder:error",{error:t})}}onDispose(){if(super.onDispose(),this.#W&&"function"==typeof this.#W.close)try{this.#W.close()}catch(t){}this.#W=null,this.#B=[],this.#z=0,this.#R=null}}};function qI(){if(z(nn,this)||z(rn,this))return;if(!z(en,this))return;const t=L(an,this,VI).call(this);t.length&&L(an,this,GI).call(this,t,!1)}function VI(){const t=z(Ze,this),e=t?t.length:0,n=e+z(en,this);if(!n)return WI;const i=new Uint8Array(n);let r=0;e&&(i.set(t,r),r+=e);for(let t=0;t<z(tn,this).length;t+=1){const e=z(tn,this)[t];e&&e.length&&(i.set(e,r),r+=e.length)}return i}function GI(t,e){if(z(nn,this)||z(rn,this))return;const n=e?L(an,this,HI).call(this,t):t;if(!n||!n.length)return;const i=function(){if(UI)return UI;const t=yd.AudioContext||yd.webkitAudioContext;return t?(UI=new t,UI):null}();if(!i||"function"!=typeof i.decodeAudioData)return void this.trigger("decoder:error",{error:new Error("AudioContext is not available")});const r=n.buffer.slice(0);j(rn,this,!0),new Promise(((t,e)=>{const n=i.decodeAudioData(r,t,e);n&&"function"==typeof n.then&&n.then(t).catch(e)})).then((t=>{var e;j(nn,this,!0);const n=Number.isFinite(null==t?void 0:t.duration)?t.duration:Number(null===(e=z(on,this))||void 0===e?void 0:e.duration)||void 0;this.trigger("decoder:audio",{audioBuffer:t,pts:z(sn,this),duration:n})})).catch((t=>{this.trigger("decoder:error",{error:t})})).finally((()=>{j(tn,this,[]),j(en,this,0),j(rn,this,!1)}))}function HI(t){const e=z(Ze,this);if(!e||!e.length)return t;const n=e.length+t.length,i=new Uint8Array(n);return i.set(e,0),i.set(t,e.length),i}function KI(t,e){var n,i,r,o,s;const a=null!=t&&t.context&&"object"==typeof t.context?t.context:void 0;return{error:e,errorName:null==e?void 0:e.name,errorMessage:"string"==typeof(null==e?void 0:e.message)?e.message:void 0,nodeId:z($e,this),trackId:null===(n=this.track)||void 0===n?void 0:n.id,trackType:null===(i=this.track)||void 0===i?void 0:i.type,codec:(null===(r=z(Le,this))||void 0===r?void 0:r.codec)||z(De,this),segmentId:null===(o=this.lastSegment)||void 0===o?void 0:o.id,segmentIsInit:!(null===(s=this.lastSegment)||void 0===s||!s.isInit),chunkContext:a}}function XI(t){const e=(null==t?void 0:t.error)||t,n=L(Je,this,KI).call(this,t,e);if(L(Je,this,YI).call(this,t,e))return this.log.warn("[onDemuxError] recoverable demux error",n),void L(Je,this,lE).call(this);const i=L(Je,this,oE).call(this,t),r=L(Je,this,QI).call(this,i);if(i&&0===i.missingFrames)return this.log.warn(`[onDemuxError] ignoring demux error (no missing frames)${r}`,{...n,missingFrameStats:i}),void L(Je,this,lE).call(this);let o=n;i&&(o={...n,missingFrameStats:i}),this.log.warn(`[onDemuxError] demux error${r}`,o),this.trigger("decoder:error",t)}function YI(t,e){if("boolean"==typeof(null==t?void 0:t.recoverable))return t.recoverable;const n="string"==typeof(null==t?void 0:t.severity)?t.severity:"";if(n)return"recoverable"===n||"transient"===n;const i="string"==typeof(null==e?void 0:e.message)?e.message:"";return!!i&&(i.includes("unsupported or unrecognizable format")||i.includes("No supported tracks found"))}function QI(t){return t?` expectedFrames=${L(Je,this,JI).call(this,t.expectedFrames)} demuxedFrames=${L(Je,this,JI).call(this,t.demuxedFrames)} missingFrames=${L(Je,this,JI).call(this,t.missingFrames)}`:""}function JI(t){if(null==t)return"unknown";const e=Number(t);return Number.isFinite(e)?String(e):"unknown"}function ZI(t,e={}){return{expectedFrames:null,demuxedFrames:z(qe,this),missingFrames:null,reason:t,...e}}function tE(t){const e=Number(t);return Number.isFinite(e)?e:null}function eE(t){var e,n;const i=(null==t?void 0:t.context)||{},r=Number(i.loaded),o=Number(i.total);if(!Number.isFinite(o)||o<=0||!Number.isFinite(r)||r<o)return null;if(null!==(e=this.lastSegment)&&void 0!==e&&e.isInit)return null;const s=Number(null===(n=this.lastSegment)||void 0===n?void 0:n.duration);if(!Number.isFinite(s)||s<=0)return L(Je,this,ZI).call(this,"segment_duration_unavailable",{segmentDurationSeconds:L(Je,this,tE).call(this,s),demuxedCoverageSeconds:z(He,this),frameDurationSeconds:null});const a=L(Je,this,rE).call(this);if(!Number.isFinite(a)||a<=0){const t=Math.max(1,Math.round(s*BI));return{expectedFrames:t,demuxedFrames:z(qe,this),missingFrames:Math.max(0,t-z(qe,this)),reason:"fallback_fps",fallbackFps:BI,segmentDurationSeconds:s,demuxedCoverageSeconds:z(He,this),frameDurationSeconds:L(Je,this,tE).call(this,a)}}const l=Math.min(.5*a,.02),c=Math.max(0,s-z(He,this)),u=c<=l?0:c,d=Math.max(1,Math.floor((s+l)/a)),h=Math.max(0,d-z(qe,this)),f=u>0?Math.ceil(u/a):0;return{expectedFrames:d,demuxedFrames:z(qe,this),missingFrames:Math.max(h,f),segmentDurationSeconds:s,demuxedCoverageSeconds:z(He,this),frameDurationSeconds:a}}function nE(){j(qe,this,0),j(Ve,this,0),j(Ge,this,0),j(He,this,0)}function iE(t){j(qe,this,z(qe,this)+1);const e=Number(null==t?void 0:t.pts),n=Number(null==t?void 0:t.duration);if(Number.isFinite(n)&&n>0&&(j(Ve,this,z(Ve,this)+n),j(Ge,this,z(Ge,this)+1)),!Number.isFinite(e))return;const i=Number.isFinite(n)&&n>0?e+n:e;Number.isFinite(i)&&i>z(He,this)&&j(He,this,i)}function rE(){return z(Ge,this)>0?z(Ve,this)/z(Ge,this):z(qe,this)>0&&z(He,this)>0?z(He,this)/z(qe,this):null}function oE(t){return L(Je,this,eE).call(this,t)}function sE(t){(null==t?void 0:t.data)instanceof Uint8Array&&(j(Re,this,t.data.buffer),L(Je,this,wE).call(this)),null!=t&&t.decoderConfig&&(j(Be,this,t.decoderConfig),j(De,this,t.decoderConfig.codec||z(De,this)),L(Je,this,wE).call(this)),this.trigger("decoder:init",t)}function aE(t){L(Je,this,iE).call(this,t),z(Te,this).push(t),L(Je,this,vE).call(this)}function lE(){j(Ae,this,!0),L(Je,this,_E).call(this)}function cE(t){const e="number"==typeof(null==t?void 0:t.pts)?t.pts:void 0;if(Number.isFinite(e))return z(ze,this)+e}function uE(t){return z(Te,this).some((e=>{const n=L(Je,this,cE).call(this,e);return Number.isFinite(n)&&n>=t}))}function dE(t){let e=-1,n=null;for(let i=0;i<z(Te,this).length;i+=1){const r=z(Te,this)[i],o=L(Je,this,cE).call(this,r);Number.isFinite(o)&&(null==r?void 0:r.isKey)&&o<=t&&(e=i,n=o)}return{chosenIndex:e,chosenPtsSeconds:n}}function hE(t){let e=-1,n=null;for(let i=0;i<z(Te,this).length;i+=1){const r=z(Te,this)[i],o=L(Je,this,cE).call(this,r);if(Number.isFinite(o)&&null!=r&&r.isKey&&(e=i,n=o,o>=t))break}return{chosenIndex:e,chosenPtsSeconds:n}}function fE(t){const e=t+z(ke,this),n=z(We,this);if(!Number.isFinite(n))return e;const i=Number.isFinite(z(Ue,this))?z(Ue,this):null;if(Number.isFinite(i))return Math.max(e,i);const{chosenPtsSeconds:r}=L(Je,this,hE).call(this,n);return Number.isFinite(r)?Math.max(e,r):e}function pE(t){const e=z(We,this);Number.isFinite(e)&&Number.isFinite(t)&&t>=e&&(j(We,this,null),j(Ue,this,null))}function mE(){const t=z(We,this);if(!Number.isFinite(t)||z(je,this))return!0;if(!L(Je,this,uE).call(this,t)&&!z(Ae,this))return!1;const e=L(Je,this,dE).call(this,t);let n=e;if(-1===e.chosenIndex&&(n=L(Je,this,hE).call(this,t)),n.chosenIndex>0){const t=`[#maybeAlignToSeekKeyframe] Dropping ${n.chosenIndex} samples before keyframe @ ${n.chosenPtsSeconds}`;this.log.debug(t),z(Te,this).splice(0,n.chosenIndex)}return j(Se,this,!0),Number.isFinite(n.chosenPtsSeconds)&&j(Ue,this,n.chosenPtsSeconds),j(je,this,!0),!0}function vE(){const t=z(_e,this)?z(_e,this).call(this):0,e=L(Je,this,fE).call(this,t);if(L(Je,this,OE).call(this,t),L(Je,this,CE).call(this),!L(Je,this,mE).call(this))return void L(Je,this,yE).call(this);const n=void 0!==yd.VideoDecoder&&void 0!==yd.EncodedVideoChunk;for(n&&!z(Oe,this)&&z(Be,this)&&L(Je,this,wE).call(this);z(Te,this).length&&!L(Je,this,DE).call(this)&&!(n&&z(Fe,this)&&L(Je,this,LE).call(this));){const t=z(Te,this)[0],i="number"==typeof(null==t?void 0:t.pts)?t.pts:0,r=z(ze,this)+i;if(r>e)break;if(null!=t&&t.raw)z(Te,this).shift(),L(Je,this,gE).call(this,t);else{if(n){if(!z(Oe,this)||!z(Fe,this))break;if(z(Se,this)&&!t.isKey){z(Te,this).shift();continue}z(Te,this).shift();const e=Math.max(0,Math.round(r*LI));z(Ee,this).set(e,!!t.isKey);try{const n=new yd.EncodedVideoChunk({type:t.isKey?"key":"delta",timestamp:e,duration:t.duration?Math.round(t.duration*LI):void 0,data:t.data instanceof Uint8Array?t.data:new Uint8Array(t.data)});z(Fe,this).decode(n),t.isKey&&j(Se,this,!1);continue}catch(t){z(Ee,this).delete(e);const n="string"==typeof(null==t?void 0:t.message)?t.message:"";if("DataError"===(null==t?void 0:t.name)&&n.includes("key frame")){j(Se,this,!0);continue}this.log.warn("[#drainDecodeQueue] decode failed, falling back to placeholder",t)}}z(Te,this).shift(),L(Je,this,gE).call(this,t)}}L(Je,this,_E).call(this),L(Je,this,yE).call(this)}function gE(t){const e=z(_e,this)?z(_e,this).call(this):0,n=L(Je,this,fE).call(this,e),i=z(ze,this)+("number"==typeof t.pts?t.pts:0);if(i<e||i>n)return;L(Je,this,OE).call(this,e);const r={pts:i,duration:t.duration,data:t.data,isKey:t.isKey};z(be,this).push(r),L(Je,this,CE).call(this),this.trigger("decoder:frame",r),L(Je,this,pE).call(this,i)}function yE(){if(z(Te,this).length>0&&void 0!==yd.VideoDecoder){if(Ew(z(Ie,this)))return;Tw(z(Ie,this),50)}else L(Je,this,bE).call(this)}function bE(){z(Ie,this)&&Ew(z(Ie,this))&&Iw(z(Ie,this))}function kE(){return null!=yd&&yd.performance&&"function"==typeof yd.performance.now?yd.performance.now():Date.now()}function wE(){if(z(Oe,this))return;if(void 0===yd.VideoDecoder)return;if(!z(Be,this))return;if(z(Ce,this)&&L(Je,this,kE).call(this)<z(Pe,this))return;const t=L(Je,this,xE).call(this);try{j(Fe,this,new yd.VideoDecoder({output:t=>L(Je,this,IE).call(this,t),error:t=>L(Je,this,TE).call(this,t)})),z(Fe,this).configure(t),j(Oe,this,!0),j(Se,this,!0),j(Ce,this,!1),j(Pe,this,0),L(Je,this,vE).call(this)}catch(t){this.log.warn("[#maybeConfigureDecoder] configure failed, falling back to placeholder decode",t),j(Fe,this,null),j(Oe,this,!1),j(Be,this,null)}}function xE(){const t={...z(Be,this)};return L(Je,this,zE).call(this,t)&&z(Le,this).codec?t.codec=z(Le,this).codec:!t.codec&&z(De,this)&&(t.codec=z(De,this)),z(Re,this)&&!t.description&&(t.description=z(Re,this)),z(Le,this).width&&!t.codedWidth&&(t.codedWidth=z(Le,this).width),z(Le,this).height&&!t.codedHeight&&(t.codedHeight=z(Le,this).height),L(Je,this,WE).call(this,t),t}function _E(){void 0!==yd.VideoDecoder&&void 0!==yd.EncodedVideoChunk&&(z(Ce,this)||!z(Ae,this)||z(Me,this)||z(Ne,this)||z(Oe,this)&&z(Fe,this)&&"function"==typeof z(Fe,this).flush&&(z(Te,this).length||(j(Ne,this,!0),Promise.resolve().then((()=>z(Fe,this).flush())).then((()=>{j(Me,this,!0),j(Se,this,!0)})).catch((t=>{"AbortError"!==(null==t?void 0:t.name)&&this.log.warn("[#maybeFlushDecoder] flush failed",t)})).finally((()=>{j(Ne,this,!1)})))))}function TE(t){if(this.log.warn("[#handleDecoderError] decoder error",t),this.trigger("decoder:error",{error:t}),z(Fe,this)&&"function"==typeof z(Fe,this).close)try{z(Fe,this).close()}catch(t){}j(Fe,this,null),j(Oe,this,!1),j(Ne,this,!1),j(Me,this,!1),j(Se,this,!0),z(Ee,this).clear(),j(Ce,this,!0),j(Pe,this,L(Je,this,kE).call(this)+1e3)}function IE(t){j(Qe,this,z(Qe,this).then((()=>{var e;if(!this._disposed)return L(Je,this,FE).call(this,t);null===(e=t.close)||void 0===e||e.call(t)})).catch((e=>{this.log.warn("[#enqueueDecodedFrame] failed processing decoded frame",e);try{var n;null===(n=t.close)||void 0===n||n.call(t)}catch(t){}})))}function EE(t){return"boolean"!=typeof t||t}function SE(t){const e=Number(t);return!Number.isFinite(e)||e<0?.2:e}function AE(){return!!z(Xe,this)&&"function"==typeof yd.createImageBitmap&&z(Ke,this)}function NE(t){var e;const n=Number(null===(e=this.lastSegment)||void 0===e?void 0:e.duration);if(!Number.isFinite(n)||n<=0)return!1;if(!Number.isFinite(t))return!1;const i=Number(z(ze,this));return!!Number.isFinite(i)&&t>=i+n-z(Ye,this)}async function ME(t,e){try{var n;const i=L(Je,this,NE).call(this,e),r=await yd.createImageBitmap(t,{premultiplyAlpha:i?"none":"default"});return null!==(n=t.close)&&void 0!==n&&n.call(t),r}catch(e){return this.log.debug("[#maybeConvertFrameToBitmap] createImageBitmap failed",e),t}}async function FE(t){var e,n;let i=t;if(this._disposed)return void(null===(e=(n=i).close)||void 0===e||e.call(n));const r="number"==typeof t.timestamp?t.timestamp:void 0,o="number"==typeof t.timestamp?t.timestamp/LI:z(_e,this)?z(_e,this).call(this):0,s="number"==typeof t.duration?t.duration/LI:void 0;let a;void 0!==r&&(a=z(Ee,this).get(r),z(Ee,this).delete(r));try{var l,c,u,d;let e=z(_e,this)?z(_e,this).call(this):0,n=L(Je,this,fE).call(this,e);if(o<e||o>n)return void(null===(l=(c=i).close)||void 0===l||l.call(c));if(L(Je,this,AE).call(this)){var h,f,p,m;if(i=await L(Je,this,ME).call(this,t,o),this._disposed)return void(null===(h=(f=i).close)||void 0===h||h.call(f));if(e=z(_e,this)?z(_e,this).call(this):0,n=L(Je,this,fE).call(this,e),o<e||o>n)return void(null===(p=(m=i).close)||void 0===p||p.call(m))}if(L(Je,this,OE).call(this,e),this._disposed)return void(null===(u=(d=i).close)||void 0===u||u.call(d));const r={frame:i,pts:o,duration:s,isKey:void 0!==a&&a};z(be,this).push(r),L(Je,this,CE).call(this),this.trigger("decoder:frame",r),L(Je,this,pE).call(this,o),this.log.debug(`[#handleDecodedFrame] [${z(Le,this).codec}] Decoded frame:`,r)}catch(t){this.log.warn(`[#handleDecodedFrame] [${z(Le,this).codec}] Failed to handle decoded frame`,t);try{var v,g;null===(v=(g=i).close)||void 0===v||v.call(g)}catch(t){}}}function OE(t){const e=L(Je,this,fE).call(this,t),n=[];z(be,this).forEach((i=>{var r;const o=null!==(r=null==i?void 0:i.pts)&&void 0!==r?r:0;o<t||o>e||n.push(i)})),j(be,this,n)}function CE(){const t=z(we,this);if(!Number.isFinite(t)||t<=0)return;if(z(be,this).length<=t)return;const e=z(be,this).length-t;z(be,this).splice(0,e)}function PE(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function DE(){const t=z(we,this);return!(!Number.isFinite(t)||t<=0)&&z(be,this).length>=t}function RE(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function LE(){var t;const e=z(xe,this);if(!Number.isFinite(e)||e<=0)return!1;const n=Number(null===(t=z(Fe,this))||void 0===t?void 0:t.decodeQueueSize);return!!Number.isFinite(n)&&n>=e}function BE(t){return"string"==typeof t&&t.toLowerCase().startsWith("av01")}function zE(t){var e;return!1!==this.settings.av1ColorSpaceOverrideEnabled&&L(Je,this,BE).call(this,(null===(e=z(Le,this))||void 0===e?void 0:e.codec)||(null==t?void 0:t.codec))}function WE(t){L(Je,this,zE).call(this,t)&&(t.colorSpace={...zI})}function jE(t){if(t&&Array.isArray(t.segments))for(let e=0;e<t.segments.length;e+=1){const n=t.segments[e];if(!Array.isArray(null==n?void 0:n.representations))continue;const i=n.chosenRepresentation||n.representations[0];if(null!=i&&i.codecs)return i.codecs;if(null!=i&&i.mime)return i.mime}}class UE extends md{#j;get name(){return"DecoderFactory"}constructor(...t){super(...t);const e=t.length?t[t.length-1]:void 0;this.#j=e&&"object"==typeof e&&!Array.isArray(e)?e:{}}create(t,e=this.#j){if(!t||!t.type)return new y_(e);const n=$I[t.type];return n?(this.log.debug(`[#create] [${t.type}] Creating decoder:`,n),new n(e)):new y_(e)}}class $E{#U;#$;#q;#V;constructor(t={}){this.#U=t.getActiveRenderPlacement,this.#$=t.getPlacementsActiveAtTime,this.#q=t.ensureDecodedForPlacementAtTime;const e=Number(t.lookaheadSeconds);this.#V=Number.isFinite(e)&&e>=0?e:1}handleTimeUpdate(t={}){const e=Number(null==t?void 0:t.time);if(!Number.isFinite(e))return;if("function"!=typeof this.#q)return;const n="function"==typeof this.#$?this.#$:()=>[],i=n(e),r=new Set;i.forEach((t=>{null!=t&&t.placementId&&r.add(t.placementId),this.#q(t,e)}));const o=this.#V;if(!(o>0))return;const s=e+o;n(s).forEach((t=>{const e=null==t?void 0:t.placementId;e&&!r.has(e)&&this.#q(t,s)}))}dispose(){}}class qE{#G;#H;#K;#X;#Y;#Q;constructor(t={}){this.#G=t.getNode,this.#H=t.getPlacementState,this.#K=t.getDecodeTracks,this.#X=t.getSegmentIdForTrackAtTime,this.#Y=t.decodeLoadedMediaSegment,this.#Q=t.decodeLoadedMediaSegmentsAfter}ensureDecodedForPlacementAtTime(t,e){if(!t||!Number.isFinite(e))return;const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;if(!n||!i)return;const r="function"==typeof this.#G?this.#G(i):void 0;if(!r)return;const o="function"==typeof this.#H?this.#H(n):void 0,s=null==o?void 0:o.trackStates;s&&"function"==typeof s.get&&("function"==typeof this.#K?this.#K(r).filter((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)||"audio"===(null==t?void 0:t.type))):[]).forEach((n=>{var i;const r=s.get(n.id);if(!r)return;const o="function"==typeof this.#X?this.#X(n,t,e):null;if(!o)return;const a=null==n||null===(i=n.segments)||void 0===i?void 0:i.find((t=>(null==t?void 0:t.id)===o));a&&!a.isInit&&a.retainedByteLength>0&&a.arrayBuffer&&(r.segmentDecoders&&"function"==typeof r.segmentDecoders.has&&r.segmentDecoders.has(o)||"function"!=typeof this.#Y||this.#Y(t,n,a),"video"===(null==n?void 0:n.type)&&"function"==typeof this.#Q&&this.#Q(t,n,a))}))}dispose(){}}const VE=new Set(["video","audio","image"]);function GE(t){const e=Number(t);return Number.isFinite(e)?e:0}var HE=new WeakMap,KE=new WeakMap,XE=new WeakMap,YE=new WeakMap,QE=new WeakMap,JE=new WeakMap,ZE=new WeakMap,tS=new WeakMap,eS=new WeakMap,nS=new WeakMap,iS=new WeakMap,rS=new WeakMap,oS=new WeakMap,sS=new WeakMap,aS=new WeakMap,lS=new WeakMap,cS=new WeakMap,uS=new WeakMap,dS=new WeakMap,hS=new WeakSet;class fS extends md{constructor(...t){super(...t),U(this,hS),W(this,HE,void 0),W(this,KE,void 0),W(this,XE,void 0),W(this,YE,void 0),W(this,QE,void 0),W(this,JE,void 0),W(this,ZE,void 0),W(this,tS,void 0),W(this,eS,void 0),W(this,nS,void 0),W(this,iS,void 0),W(this,rS,new Map),W(this,oS,new Map),W(this,sS,new Map),W(this,aS,new Map),W(this,lS,new Set),W(this,cS,0),W(this,uS,!1),W(this,dS,null);const[e,n,i]=t;j(HE,this,e),j(KE,this,n),j(XE,this,i||new UE),j(YE,this,new qE({getNode:t=>L(hS,this,BS).call(this,t),getPlacementState:t=>z(rS,this).get(t),getDecodeTracks:t=>L(hS,this,CS).call(this,t),getSegmentIdForTrackAtTime:(t,e,n)=>L(hS,this,wS).call(this,t,e,n),decodeLoadedMediaSegment:(t,e,n)=>{L(hS,this,rA).call(this,t,e,n)},decodeLoadedMediaSegmentsAfter:(t,e,n)=>{L(hS,this,YS).call(this,t,e,n)}})),j(QE,this,new $E({getActiveRenderPlacement:t=>{var e,n;return null===(e=z(KE,this))||void 0===e||null===(n=e.getActiveRenderPlacement)||void 0===n?void 0:n.call(e,t)},getPlacementsActiveAtTime:t=>{var e,n;return(null===(e=z(KE,this))||void 0===e||null===(n=e.getPlacementsActiveAtTime)||void 0===n?void 0:n.call(e,t))||[]},ensureDecodedForPlacementAtTime:(t,e)=>{var n,i;null===(n=z(YE,this))||void 0===n||null===(i=n.ensureDecodedForPlacementAtTime)||void 0===i||i.call(n,t,e)}})),L(hS,this,pS).call(this),L(hS,this,MS).call(this)}get name(){return"DecodeCoordinator"}onDispose(){var t,e;z(KE,this)&&"function"==typeof z(KE,this).off&&z(JE,this)&&z(KE,this).off(kd.PLACEMENT_ADDED,z(JE,this)),z(KE,this)&&"function"==typeof z(KE,this).off&&z(ZE,this)&&z(KE,this).off(kd.TIMELINE_SEEKING,z(ZE,this)),z(KE,this)&&"function"==typeof z(KE,this).off&&z(tS,this)&&z(KE,this).off(kd.TIMELINE_SEEKED,z(tS,this)),z(KE,this)&&"function"==typeof z(KE,this).off&&z(eS,this)&&z(KE,this).off(kd.TIMELINE_TIME_UPDATE,z(eS,this)),z(KE,this)&&"function"==typeof z(KE,this).off&&z(nS,this)&&z(KE,this).off(kd.TIMELINE_RESET,z(nS,this)),L(hS,this,mS).call(this),j(JE,this,null),j(ZE,this,null),j(tS,this,null),j(eS,this,null),j(nS,this,null),null!==(t=z(YE,this))&&void 0!==t&&null!==(e=t.dispose)&&void 0!==e&&e.call(t),j(YE,this,null),z(QE,this)&&"function"==typeof z(QE,this).dispose&&z(QE,this).dispose(),j(QE,this,null),z(oS,this).forEach(((t,e)=>{const n=L(hS,this,BS).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),z(oS,this).clear(),z(sS,this).forEach(((t,e)=>{const n=L(hS,this,BS).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),z(sS,this).clear(),z(aS,this).clear(),z(lS,this).clear(),L(hS,this,ES).call(this),z(rS,this).forEach((({trackStates:t})=>{t&&t.forEach((t=>{L(hS,this,US).call(this,t)}))})),z(rS,this).clear()}}function pS(){z(KE,this)&&"function"==typeof z(KE,this).on&&(j(JE,this,(t=>{L(hS,this,FS).call(this,t)})),z(KE,this).on(kd.PLACEMENT_ADDED,z(JE,this)),j(ZE,this,(t=>L(hS,this,vS).call(this,t))),z(KE,this).on(kd.TIMELINE_SEEKING,z(ZE,this)),j(tS,this,(()=>L(hS,this,gS).call(this))),z(KE,this).on(kd.TIMELINE_SEEKED,z(tS,this)),j(eS,this,(t=>L(hS,this,yS).call(this,t))),z(KE,this).on(kd.TIMELINE_TIME_UPDATE,z(eS,this)),j(nS,this,(()=>L(hS,this,bS).call(this))),z(KE,this).on(kd.TIMELINE_RESET,z(nS,this))),(null==yd?void 0:yd.document)&&"function"==typeof yd.document.addEventListener&&(j(iS,this,(()=>{L(hS,this,SS).call(this)})),yd.document.addEventListener("visibilitychange",z(iS,this)))}function mS(){z(iS,this)&&null!=yd&&yd.document&&"function"==typeof yd.document.removeEventListener&&yd.document.removeEventListener("visibilitychange",z(iS,this)),j(iS,this,null)}function vS(t={}){const e=Number(null==t?void 0:t.targetTime);Number.isFinite(e)&&(z(rS,this).forEach((t=>{const n=null==t?void 0:t.trackStates;n&&n.forEach((n=>{var i;const r=null==n||null===(i=n.track)||void 0===i?void 0:i.type;"video"!==r&&"image"!==r&&"audio"!==r||(L(hS,this,kS).call(this,n,null==t?void 0:t.placement,e),n.seekSegmentId=null)}))})),(Array.isArray(null==t?void 0:t.placements)?t.placements:[]).forEach((t=>{const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;if(!n||!i)return;const r=z(rS,this).get(n);if(!r||!r.trackStates)return;const o=L(hS,this,BS).call(this,i);o&&(r.trackStates.forEach((n=>{const i=null==n?void 0:n.track;!i||"video"!==i.type&&"image"!==i.type&&"audio"!==i.type||L(hS,this,kS).call(this,n,r.placement||t,e)})),L(hS,this,XS).call(this,r.placement||t,o))})))}function gS(){z(rS,this).forEach((t=>{const e=null==t?void 0:t.trackStates;e&&e.forEach((t=>{var e;const n=null==t||null===(e=t.track)||void 0===e?void 0:e.type;"video"!==n&&"image"!==n&&"audio"!==n||(t.seekSegmentId=null)}))}))}function yS(t={}){var e,n;L(hS,this,KS).call(this,null==t?void 0:t.time),null!==(e=z(QE,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,t),L(hS,this,SS).call(this),L(hS,this,$S).call(this,null==t?void 0:t.time)}function bS(){z(oS,this).forEach(((t,e)=>{const n=L(hS,this,BS).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),z(oS,this).clear(),z(sS,this).forEach(((t,e)=>{const n=L(hS,this,BS).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),z(sS,this).clear(),z(aS,this).clear(),z(lS,this).clear(),z(rS,this).forEach((({trackStates:t})=>{t&&t.forEach((t=>{const e=null==t?void 0:t.segmentDecoders;e&&e.forEach((t=>{t&&"function"==typeof t.dispose&&t.dispose()}))}))})),z(rS,this).clear()}function kS(t,e,n){t&&(L(hS,this,US).call(this,t),t.seekSegmentId=L(hS,this,wS).call(this,t.track,e,n))}function wS(t,e,n){if(!t||!e||!Array.isArray(t.segments))return null;const i=Sm(e);if(!Number.isFinite(i))return null;const r=GE(null==e?void 0:e.nodeOffsetOverride),o=Math.max(0,n-i+r),s=GE(null==t?void 0:t.offset),a=Math.max(0,o-s),l="function"==typeof t.getMediaSegmentAtTime?t.getMediaSegmentAtTime(a,{preferRepresentationTime:!0}):Ib(t.segments,a,{preferRepresentationTime:!0});return(null==l?void 0:l.id)||null}function xS(t){if(!t)return!1;const e=null==t?void 0:t.name;if("QuotaExceededError"===e)return!0;if("EncodingError"===e)return!0;const n="string"==typeof(null==t?void 0:t.message)?t.message:"";return!!n.includes("Decoder failure")||!!n.includes("Codec reclaimed due to inactivity")||!("OperationError"!==e||!n.includes("initialize after flush"))}function _S(){const t=null==yd?void 0:yd.document;return!t||"string"!=typeof t.visibilityState||"visible"===t.visibilityState}function TS(){var t;const e=z(KE,this);if(!e||"number"!=typeof e.currentTime)return!1;if(e.state===Bv)return!1;const n=Date.now();if(n<z(cS,this))return!1;const i=e.currentTime;if(!Number.isFinite(i))return!1;const r="function"==typeof e.getPlacementsActiveAtTime?e.getPlacementsActiveAtTime(i):[],o=Number(null==e||null===(t=e.settings)||void 0===t?void 0:t.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;let a;if(Array.isArray(r)&&r.length)a=i+s;else if(a=L(hS,this,IS).call(this,i),!Number.isFinite(a))return!1;return j(cS,this,n+1500),this.log.warn("[DecodeCoordinator] attempting decoder recovery seek"),e.currentTime=a,!0}function IS(t){var e;const n=z(KE,this);if(!n)return null;const i=Array.isArray(n.placements)?n.placements:[];if(!i.length)return null;const r=Number(t);if(!Number.isFinite(r))return null;const o=Number(null==n||null===(e=n.settings)||void 0===e?void 0:e.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;let a=Number.NEGATIVE_INFINITY,l=null,c=Number.NEGATIVE_INFINITY,u=null,d=null;return i.forEach((t=>{const e=Sm(t);if(!Number.isFinite(e))return;(!Number.isFinite(d)||e<d)&&(d=e);const n=Im(t,z(HE,this)),i=Number.isFinite(n),o=i?e+n:e;(o>e||!i)&&((o>a||!Number.isFinite(a)&&Number.isFinite(o))&&(a=o,l=e),o<=r&&o>c&&(c=o,u=i?Math.max(e,o-s):e))})),Number.isFinite(l)&&Number.isFinite(a)&&r>=a-s?l:Number.isFinite(u)?u:Number.isFinite(d)?d:null}function ES(){j(uS,this,!1),j(dS,this,null)}function SS(){z(uS,this)&&L(hS,this,_S).call(this)&&L(hS,this,TS).call(this)}function AS(t){if(!L(hS,this,xS).call(this,t))return;const e=z(KE,this);e&&"number"==typeof e.currentTime&&(j(uS,this,!0),j(dS,this,t),L(hS,this,_S).call(this)&&L(hS,this,TS).call(this))}function NS(t){var e;return!!t&&(Array.isArray(null===(e=z(KE,this))||void 0===e?void 0:e.placements)?z(KE,this).placements:[]).includes(t)}function MS(t){var e;(Array.isArray(null===(e=z(KE,this))||void 0===e?void 0:e.placements)?[...z(KE,this).placements]:[]).filter((e=>"function"!=typeof t||t(e))).sort(((t,e)=>{const n=Sm(t),i=Sm(e);return(Number.isFinite(n)?n:Number.POSITIVE_INFINITY)-(Number.isFinite(i)?i:Number.POSITIVE_INFINITY)})).forEach((t=>{L(hS,this,FS).call(this,t)}))}async function FS(t){if(!t||!t.placementId||z(rS,this).has(t.placementId))return;if(!L(hS,this,NS).call(this,t))return;const e=t.nodeId;if(!e||!z(HE,this)||"function"!=typeof z(HE,this).get)return;const n=L(hS,this,BS).call(this,e);if(n){if(n.state&&"ready"!==n.state){if("function"==typeof n.resolve)try{await n.resolve()}catch(n){if(!L(hS,this,NS).call(this,t))return;return void this.log.warn(`[#processPlacement] Failed to resolve node ${e}`,n)}if(!L(hS,this,NS).call(this,t))return;if("ready"!==n.state)return}if(L(hS,this,HS).call(this,t))return L(hS,this,GS).call(this,t,n),void z(lS,this).add(t.placementId);L(hS,this,VS).call(this,t,n)}}function OS(t){return L(hS,this,CS).call(this,t).every((t=>L(hS,this,qS).call(this,t)))}function CS(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>VE.has(null==t?void 0:t.type)))}function PS(t){if(!t||!t.id||"function"!=typeof t.on)return;if(z(oS,this).has(t.id))return;const e=()=>{L(hS,this,QS).call(this,t.id)};t.on("node:loaded",e),z(oS,this).set(t.id,e)}function DS(t){if(!t||!t.id||"function"!=typeof t.on)return;if(z(sS,this).has(t.id))return;const e=t=>L(hS,this,JS).call(this,t);t.on("segment:chunk",e),z(sS,this).set(t.id,e)}function RS(t,e){if(!t||!e)return;const n=z(aS,this).get(t)||new Set;n.add(e),z(aS,this).set(t,n)}function LS(t){return z(aS,this).get(t)||new Set}function BS(t){if(t&&z(HE,this)&&"function"==typeof z(HE,this).get)return z(HE,this).get(t)}function zS(t){if(!t)return;const e=t.fullBufferRetryTimer;null!=e&&("function"==typeof(null==yd?void 0:yd.clearTimeout)?yd.clearTimeout.bind(yd):clearTimeout)(e),t.fullBufferRetryTimer=null,t.fullBufferDecodeScheduled=!1,t.fullBufferRetryAttempts=0}function WS(t){const e=null==t?void 0:t.segmentStates;e&&"function"==typeof e.forEach&&e.forEach((t=>{L(hS,this,zS).call(this,t)}))}function jS(t,e,n,i){var r,o;if(!(t&&e&&n&&i))return!1;const s=z(rS,this).get(t),a=null==s||null===(r=s.trackStates)||void 0===r?void 0:r.get(e);return(null==a||null===(o=a.segmentStates)||void 0===o?void 0:o.get(n))===i}function US(t){if(!t)return;L(hS,this,WS).call(this,t);const e=t.segmentDecoders;e&&"function"==typeof e.forEach&&(e.forEach((t=>{if(t&&"function"==typeof t.dispose)try{t.dispose()}catch(t){}})),"function"==typeof e.clear&&e.clear()),t.segmentStates&&"function"==typeof t.segmentStates.clear&&t.segmentStates.clear(),t.ready=!1,t.seekSegmentId=null}function $S(t){const e=GE(t);if(!Number.isFinite(e))return;const n=e-2;Number.isFinite(n)&&z(rS,this).forEach((t=>{const e=null==t?void 0:t.placement;if(!e)return;const i=Sm(e),r=Im(e,z(HE,this),{allowUnready:!0});if(!Number.isFinite(i)||!Number.isFinite(r))return;const o=i+r;if(!Number.isFinite(o)||o>n)return;const s=null==t?void 0:t.trackStates;s&&"function"==typeof s.forEach&&s.forEach((t=>{var e;const n=null==t||null===(e=t.track)||void 0===e?void 0:e.type;"video"!==n&&"image"!==n&&"audio"!==n||L(hS,this,US).call(this,t)}))}))}function qS(t){if(!t||!Array.isArray(t.segments))return!1;const e=t.segments.find((t=>null==t?void 0:t.isInit));if(e&&!(e.retainedByteLength>0))return!1;const n=t.segments.find((t=>t&&!t.isInit));return!n||n.retainedByteLength>0}function VS(t,e){if(this.log.debug(`[#startDecode] [${t.placementId}] [${e.id}] Starting decode`),L(hS,this,GS).call(this,t,e)){if(L(hS,this,RS).call(this,e.id,t.placementId),!L(hS,this,OS).call(this,e))return L(hS,this,PS).call(this,e),void L(hS,this,DS).call(this,e);L(hS,this,XS).call(this,t,e),L(hS,this,DS).call(this,e)}}function GS(t,e){if(!t||!t.placementId||!e)return;const n=z(rS,this).get(t.placementId);if(n)return n.placement=t,n;const i=L(hS,this,CS).call(this,e),r=new Map;i.forEach((n=>{try{const t=n.segments.some((t=>null==t?void 0:t.isInit));r.set(n.id,{hasInit:t,track:n,ready:!1,segmentDecoders:new Map,segmentStates:new Map})}catch(i){this.trigger(kd.DECODE_ERROR,_d({placementId:t.placementId,nodeId:e.id,trackId:null==n?void 0:n.id,trackType:null==n?void 0:n.type,error:i}))}}));const o={trackStates:r,nodeId:e.id,placement:t};return z(rS,this).set(t.placementId,o),o}function HS(t){var e;const n=Sm(t),i=GE(null===(e=z(KE,this))||void 0===e?void 0:e.currentTime);return!Number.isFinite(n)||!!Number.isFinite(i)&&n-i>2}function KS(t){if(!z(lS,this).size)return;const e=GE(t);if(!Number.isFinite(e))return;const n=[];z(lS,this).forEach((t=>{const i=z(rS,this).get(t),r=null==i?void 0:i.placement;if(!r)return void n.push(t);const o=Sm(r);Number.isFinite(o)&&o-e<=2&&n.push(t)})),n.forEach((t=>{z(lS,this).delete(t);const e=z(rS,this).get(t),n=null==e?void 0:e.placement;if(!n)return;const i=L(hS,this,BS).call(this,n.nodeId);i&&L(hS,this,VS).call(this,n,i)}))}function XS(t,e){const n=z(rS,this).get(t.placementId);n&&L(hS,this,CS).call(this,e).forEach((i=>{const r=n.trackStates.get(i.id);if(r&&!r.ready)try{let n;if(r.seekSegmentId&&(n=i.segments.find((t=>t&&!t.isInit&&t.id===r.seekSegmentId&&t.retainedByteLength>0)),!n))return;if(n||(n=i.segments.find((t=>t&&!t.isInit&&t.retainedByteLength>0))),!n)return;L(hS,this,rA).call(this,t,i,n),r.seekSegmentId&&"video"===(null==i?void 0:i.type)&&L(hS,this,YS).call(this,t,i,n),r.ready=!0,this.trigger(kd.DECODE_READY,xd({placementId:t.placementId,nodeId:e.id,trackId:i.id,trackType:i.type}))}catch(n){this.trigger(kd.DECODE_ERROR,_d({placementId:t.placementId,nodeId:e.id,trackId:null==i?void 0:i.id,trackType:null==i?void 0:i.type,error:n}))}}))}function YS(t,e,n){var i;if(!(t&&e&&n&&Array.isArray(e.segments)))return;const r=null==t?void 0:t.placementId,o=r?z(rS,this).get(r):void 0,s=null==o||null===(i=o.trackStates)||void 0===i?void 0:i.get(e.id),a=null==s?void 0:s.segmentDecoders;if(!a||"function"!=typeof a.has)return;const l=e.segments,c=l.findIndex((t=>(null==t?void 0:t.id)===n.id));if(c<0)return;let u=0;for(let n=c+1;n<l.length;n+=1){const i=l[n];if(!i||i.isInit)continue;if(a.has(i.id))continue;if(!(i.retainedByteLength>0))break;const r=i.arrayBuffer;if(!r||"number"!=typeof r.byteLength||r.byteLength<=0)break;if(L(hS,this,rA).call(this,t,e,i),u+=1,u>=2)break}}function QS(t){const e=L(hS,this,BS).call(this,t);e&&L(hS,this,OS).call(this,e)&&L(hS,this,LS).call(this,t).forEach((t=>{const n=z(rS,this).get(t);L(hS,this,XS).call(this,(null==n?void 0:n.placement)||{placementId:t},e)}))}function JS(t){t&&t.nodeId&&t.trackId&&t.chunk&&L(hS,this,LS).call(this,t.nodeId).forEach((e=>L(hS,this,ZS).call(this,e,t)))}function ZS(t,e){const n=z(rS,this).get(t);if(!n)return;const i=n.trackStates.get(e.trackId);if(i)try{var r,o;if(e.isInit)return;const s=i.track,a=null==s||null===(r=s.segments)||void 0===r?void 0:r.find((t=>(null==t?void 0:t.id)===e.segmentId));if(!a||a.isInit)return;if("image"===(null==s?void 0:s.type))return void(!i.ready&&a.retainedByteLength>0&&L(hS,this,rA).call(this,n.placement,s,a)&&(i.ready=!0,this.trigger(kd.DECODE_READY,xd({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType}))));if((null===(o=z(KE,this))||void 0===o?void 0:o.state)===Bv&&i.seekSegmentId&&("video"===(null==s?void 0:s.type)||"audio"===(null==s?void 0:s.type))&&a.id!==i.seekSegmentId)return;const l=a.id,c=i.segmentStates.get(l)||{initSent:!1,pendingChunks:[],ended:!1,firstChunkObserved:!1,missedSegmentPrefix:!1,fullBufferDecodeScheduled:!1,fullBufferRetryTimer:null,fullBufferRetryAttempts:0};i.segmentStates.set(l,c);const u=L(hS,this,nA).call(this,n.placement,s,a);if(!u||"function"!=typeof u.decodeChunk)return;if(i.hasInit&&!c.initSent){const t=L(hS,this,iA).call(this,s,a);if(!t)return void c.pendingChunks.push({chunk:e.chunk,loaded:e.loaded,total:e.total});u.decodeChunk(t,{isInit:!0}),c.initSent=!0,c.pendingChunks.length&&(c.pendingChunks.forEach((t=>{u.decodeChunk(t.chunk,{isInit:!1,loaded:t.loaded,total:t.total})})),c.pendingChunks=[])}const d="number"==typeof e.loaded&&"number"==typeof e.total&&e.total>0&&e.loaded>=e.total;L(hS,this,tA).call(this,c,e)?d&&!c.ended&&L(hS,this,eA).call(this,n.placement,s,a,c):(u.decodeChunk(e.chunk,{isInit:!1,loaded:e.loaded,total:e.total}),d&&!c.ended&&"function"==typeof u.endOfStream&&(c.ended=!0,u.endOfStream())),i.ready||(i.ready=!0,this.trigger(kd.DECODE_READY,xd({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType})))}catch(n){this.trigger(kd.DECODE_ERROR,_d({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType,error:n}))}}function tA(t,e){var n;if(!t||t.missedSegmentPrefix)return!(null==t||!t.missedSegmentPrefix);if(t.firstChunkObserved)return!1;t.firstChunkObserved=!0;const i=Number(null==e?void 0:e.loaded),r=Number(null==e||null===(n=e.chunk)||void 0===n?void 0:n.byteLength);return!(!Number.isFinite(i)||!Number.isFinite(r)||r<=0)&&(t.missedSegmentPrefix=i>r,t.missedSegmentPrefix)}function eA(t,e,n,i){if(!t||!e||!n||!i||i.fullBufferDecodeScheduled)return;const r=null==t?void 0:t.placementId,o=null==e?void 0:e.id,s=null==n?void 0:n.id;if(!r||!o||!s)return;const a="function"==typeof(null==yd?void 0:yd.setTimeout)?yd.setTimeout.bind(yd):setTimeout;i.fullBufferDecodeScheduled=!0,i.fullBufferRetryAttempts=0;const l=()=>{if(!L(hS,this,jS).call(this,r,o,s,i)||i.ended)return void L(hS,this,zS).call(this,i);if(L(hS,this,rA).call(this,t,e,n))return void L(hS,this,zS).call(this,i);i.fullBufferRetryAttempts+=1;const c=i.fullBufferRetryAttempts<=8?0:50;i.fullBufferRetryTimer=a((()=>{l()}),c)};i.fullBufferRetryTimer=a((()=>{l()}),0)}function nA(t,e,n){var i,r;const o=null==t?void 0:t.placementId;if(!o||!e||!n)return;const s=z(rS,this).get(o),a=null==s||null===(i=s.trackStates)||void 0===i?void 0:i.get(e.id);if(!a)return;const l=a.segmentDecoders.get(n.id);if(l)return l;const c=z(XE,this).create(e);if(c&&"function"==typeof c.configure&&c.configure(e),c&&"function"==typeof c.setNodeId&&c.setNodeId(null==t?void 0:t.nodeId),c&&"function"==typeof c.setSegment&&c.setSegment(n),c&&"function"==typeof c.setCurrentTimeProvider&&c.setCurrentTimeProvider((()=>{var t;return"number"==typeof(null===(t=z(KE,this))||void 0===t?void 0:t.currentTime)?z(KE,this).currentTime:0})),c&&"function"==typeof c.setTimeOffsetSeconds){var u,d;const i=Sm(t),r=GE(null==e?void 0:e.offset),o=GE(null!==(u=null==n||null===(d=n.chosenRepresentation)||void 0===d?void 0:d.segStart)&&void 0!==u?u:null==n?void 0:n.offset);Number.isFinite(i)&&c.setTimeOffsetSeconds(i+r+o)}return c&&"function"==typeof c.setSeekTargetTimeSeconds&&(null===(r=z(KE,this))||void 0===r?void 0:r.state)===Bv&&"video"===(null==e?void 0:e.type)&&c.setSeekTargetTimeSeconds(z(KE,this).currentTime),c&&"function"==typeof c.on&&(c.on(kd.DECODER_FRAME,(i=>{i&&(!z(uS,this)||"video"!==(null==e?void 0:e.type)&&"image"!==(null==e?void 0:e.type)||(j(uS,this,!1),j(dS,this,null)),z(KE,this)&&"function"==typeof z(KE,this).notifyDecodedFrame&&(i.frame||i.data)&&z(KE,this).notifyDecodedFrame({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,pts:i.pts,duration:i.duration,frame:i.frame,data:i.data}))})),c.on(kd.DECODER_AUDIO,(i=>{i&&i.audioBuffer&&this.trigger(kd.DECODER_AUDIO,xd({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,pts:i.pts,duration:i.duration,audioBuffer:i.audioBuffer}))})),c.on(kd.DECODER_ERROR,(i=>{const r=(null==i?void 0:i.error)||i;this.trigger(kd.DECODER_ERROR,_d({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,error:r})),L(hS,this,AS).call(this,r)}))),a.segmentDecoders.set(n.id,c),c}function iA(t,e){var n,i;if(!t||!e||!Array.isArray(t.segments))return;const r=t.segments.find((t=>null==t?void 0:t.isInit));if(!r||"function"!=typeof r.getRepresentationBuffer)return;const o=(null==e||null===(n=e.chosenRepresentation)||void 0===n?void 0:n.id)||(null==e||null===(i=e.representations)||void 0===i||null===(i=i[0])||void 0===i?void 0:i.id);if(!o)return;const s=r.getRepresentationBuffer(o);return s?s instanceof Uint8Array?s:new Uint8Array(s):void 0}function rA(t,e,n){var i;if(!t||!e||!n)return!1;const r=t.placementId,o=z(rS,this).get(r),s=null==o||null===(i=o.trackStates)||void 0===i?void 0:i.get(e.id);if(!s)return!1;const a=L(hS,this,nA).call(this,t,e,n);if(!a||"function"!=typeof a.decodeChunk)return!1;const l=s.segmentStates.get(n.id)||{initSent:!1,pendingChunks:[],ended:!1,firstChunkObserved:!1,missedSegmentPrefix:!1,fullBufferDecodeScheduled:!1,fullBufferRetryTimer:null,fullBufferRetryAttempts:0};if(s.segmentStates.set(n.id,l),l.ended)return L(hS,this,zS).call(this,l),!0;if(s.hasInit&&!l.initSent){const t=L(hS,this,iA).call(this,e,n);if(!t)return!1;a.decodeChunk(t,{isInit:!0}),l.initSent=!0}const c=n.arrayBuffer;return!(!c||"number"!=typeof c.byteLength||c.byteLength<=0||(a.decodeChunk(new Uint8Array(c),{isInit:!1,loaded:c.byteLength,total:c.byteLength}),l.ended||"function"!=typeof a.endOfStream||(l.ended=!0,a.endOfStream()),L(hS,this,zS).call(this,l),0))}const oA=1e-6;var sA=new WeakMap,aA=new WeakMap,lA=new WeakMap,cA=new WeakMap,uA=new WeakMap,dA=new WeakMap,hA=new WeakMap,fA=new WeakMap,pA=new WeakSet;class mA extends md{get name(){return"TransitionManager"}get defaults(){return{durationSeconds:.5}}constructor(t,e,n){super(n),U(this,pA),W(this,sA,void 0),W(this,aA,void 0),W(this,lA,null),W(this,cA,null),W(this,uA,null),W(this,dA,0),W(this,hA,[]),W(this,fA,null),j(sA,this,t),j(aA,this,e),z(sA,this)&&"function"==typeof z(sA,this).on&&(j(fA,this,(()=>L(pA,this,TA).call(this))),z(sA,this).on(kd.TIMELINE_RESET,z(fA,this)))}transitionTo(t,e={}){const n=Number(t);if(!Number.isFinite(n))throw new Error("TransitionManager.transitionTo requires a numeric time");L(pA,this,TA).call(this);const i=L(pA,this,vA).call(this),r=L(pA,this,kA).call(this,n,e);return r?L(pA,this,wA).call(this,n,e,i,r):Promise.resolve()}onDispose(){z(sA,this)&&"function"==typeof z(sA,this).off&&z(fA,this)&&z(sA,this).off(kd.TIMELINE_RESET,z(fA,this)),j(fA,this,null),L(pA,this,TA).call(this),j(aA,this,null),j(sA,this,null)}}function vA(){return j(dA,this,z(dA,this)+1),z(dA,this)}function gA(t={}){var e;const n=Number(null==t?void 0:t.duration),i=Number(null===(e=this.settings)||void 0===e?void 0:e.durationSeconds);return Number.isFinite(n)?n:i}function yA(t={},e){return{duration:e,filter:null==t?void 0:t.filter,color:null==t?void 0:t.color,filters:null==t?void 0:t.filters,reverseFilters:null==t?void 0:t.reverseFilters,transition:null==t?void 0:t.transition}}function bA(t,e){const n=1e3*t,i=Number.isFinite(Number(null==e?void 0:e.outDurationMs))&&e.outDurationMs>0?e.outDurationMs:n;return{outDurationMs:i,inDurationMs:Number.isFinite(Number(null==e?void 0:e.inDurationMs))&&e.inDurationMs>0?e.inDurationMs:i}}function kA(t,e={}){var n;const i=z(aA,this),r=L(pA,this,gA).call(this,e);if(!i||"function"!=typeof i.startTransition)return z(sA,this).currentTime=t,null;if(!(r>0))return z(sA,this).currentTime=t,null!==(n=i.resetTransition)&&void 0!==n&&n.call(i),null;const o=L(pA,this,yA).call(this,e,r);"function"==typeof(null==e?void 0:e.onTransitionInStart)&&e.onTransitionInStart();const s=i.startTransition(o),{outDurationMs:a,inDurationMs:l}=L(pA,this,bA).call(this,r,s);return{renderer:i,transitionOptions:o,outDurationMs:a,inDurationMs:l,shouldWaitForFrames:!1!==(null==e?void 0:e.waitForVisualFrames)}}function wA(t,e={},n,i){const{renderer:r,transitionOptions:o,outDurationMs:s,inDurationMs:a,shouldWaitForFrames:l}=i,c=L(pA,this,NA).call(this,t,e,n),u=l?L(pA,this,MA).call(this,t,n):Promise.resolve();let d=!1,h=!1,f=!1,p=!l;const m=()=>{var t;L(pA,this,IA).call(this,n)&&!f&&d&&h&&p&&(f=!0,"function"==typeof(null==e?void 0:e.onTransitionInEnd)&&e.onTransitionInEnd(),"function"==typeof(null==e?void 0:e.onTransitionOutStart)&&e.onTransitionOutStart(),null!==(t=r.beginTransitionIn)&&void 0!==t&&t.call(r,o),j(cA,this,setTimeout((()=>{var t;L(pA,this,IA).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),"function"==typeof(null==e?void 0:e.onTransitionOutEnd)&&e.onTransitionOutEnd(),L(pA,this,xA).call(this))}),a)))};return j(lA,this,setTimeout((()=>{d=!0,m()}),s)),c.then((()=>{h=!0,m()})).catch((()=>{var t;L(pA,this,IA).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),L(pA,this,xA).call(this))})),u.then((()=>{p=!0,m()})).catch((()=>{p=!0,m()})),z(sA,this).currentTime=t,new Promise((t=>{j(uA,this,t)}))}function xA(){const t=z(uA,this);j(uA,this,null),L(pA,this,_A).call(this),L(pA,this,AA).call(this),t&&t()}function _A(){z(lA,this)&&clearTimeout(z(lA,this)),z(cA,this)&&clearTimeout(z(cA,this)),j(lA,this,null),j(cA,this,null)}function TA(){var t,e;z(aA,this)&&null!==(t=(e=z(aA,this)).resetTransition)&&void 0!==t&&t.call(e),L(pA,this,_A).call(this),L(pA,this,AA).call(this),z(uA,this)&&(z(uA,this).call(this),j(uA,this,null))}function IA(t){return z(dA,this)===t}function EA(t,e){z(sA,this)&&"function"==typeof z(sA,this).on&&(z(sA,this).on(t,e),z(hA,this).push({eventName:t,handler:e}))}function SA(t,e){z(sA,this)&&"function"==typeof z(sA,this).off&&(z(sA,this).off(t,e),j(hA,this,z(hA,this).filter((n=>n.eventName!==t||n.handler!==e))))}function AA(){z(sA,this)&&"function"==typeof z(sA,this).off?(z(hA,this).forEach((t=>{z(sA,this).off(t.eventName,t.handler)})),j(hA,this,[])):j(hA,this,[])}function NA(t,e,n){const i=null==e?void 0:e.transitionOutPromise;if(i&&"function"==typeof i.then)return i;if("function"==typeof i)try{const t=i();if(t&&"function"==typeof t.then)return t}catch(t){return Promise.resolve()}if(!z(sA,this)||"function"!=typeof z(sA,this).on)return Promise.resolve();const r=L(pA,this,FA).call(this);return new Promise((e=>{let i=!1;const o=r?kd.TIMELINE_SEEKED:"nodestart";let s,a;const l=()=>{L(pA,this,SA).call(this,kd.TIMELINE_SEEKING,s),L(pA,this,SA).call(this,o,a),e()};s=(e={})=>{L(pA,this,IA).call(this,n)?L(pA,this,OA).call(this,e,t)&&(i=!0):l()},a=(e={})=>{L(pA,this,IA).call(this,n)?(o!==kd.TIMELINE_SEEKED||L(pA,this,OA).call(this,e,t))&&(o===kd.TIMELINE_SEEKED||i)&&l():l()},L(pA,this,EA).call(this,kd.TIMELINE_SEEKING,s),L(pA,this,EA).call(this,o,a)}))}function MA(t,e){if(!z(sA,this)||"function"!=typeof z(sA,this).on)return Promise.resolve();const n=Number(t);return new Promise((t=>{const i=(r={})=>{if(!L(pA,this,IA).call(this,e))return L(pA,this,SA).call(this,kd.VISUAL_FRAMES_AVAILABLE,i),void t();const o=Number(null==r?void 0:r.time);Number.isFinite(n)&&Number.isFinite(o)&&o+oA<n||(Array.isArray(null==r?void 0:r.frames)?r.frames:[]).length&&(L(pA,this,SA).call(this,kd.VISUAL_FRAMES_AVAILABLE,i),t())};L(pA,this,EA).call(this,kd.VISUAL_FRAMES_AVAILABLE,i)}))}function FA(){var t,e;const n=null===(t=z(sA,this))||void 0===t?void 0:t.state;if(n===Lv||n===Cv)return!0;const i=null===(e=z(sA,this))||void 0===e?void 0:e.placements;return!Array.isArray(i)||0===i.length}function OA(t,e){const n=Number(null==t?void 0:t.targetTime);return!Number.isFinite(n)||Math.abs(n-e)<oA}function CA(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}var PA=new WeakMap,DA=new WeakMap,RA=new WeakMap,LA=new WeakMap,BA=new WeakMap,zA=new WeakMap,WA=new WeakMap,jA=new WeakMap,UA=new WeakMap,$A=new WeakMap,qA=new WeakMap,VA=new WeakMap,GA=new WeakMap,HA=new WeakMap,KA=new WeakSet;class XA extends md{get name(){return"AudioPlaybackManager"}get defaults(){return{muted:!1,volume:1,lookaheadSeconds:1}}constructor(t,e,n){super(n),U(this,KA),W(this,PA,void 0),W(this,DA,void 0),W(this,RA,null),W(this,LA,null),W(this,BA,[]),W(this,zA,new Set),W(this,WA,new Map),W(this,jA,!1),W(this,UA,1),W(this,$A,!0),W(this,qA,null),W(this,VA,null),W(this,GA,null),W(this,HA,null),j(PA,this,t),j(DA,this,e),j(jA,this,!!this.settings.muted),j(UA,this,_m(this.settings.volume));const i=Array.isArray(null==n?void 0:n.disabledTracks)?n.disabledTracks:[];j($A,this,!i.includes("audio")),L(KA,this,YA).call(this)}get muted(){return z(jA,this)}set muted(t){j(jA,this,!!t),L(KA,this,aN).call(this)}get volume(){return z(UA,this)}set volume(t){j(UA,this,_m(t)),L(KA,this,aN).call(this)}handleDecodedAudio(t={}){if(!z($A,this))return;const e=null==t?void 0:t.audioBuffer,n=null==t?void 0:t.placementId,i=null==t?void 0:t.segmentId,r=CA(null==t?void 0:t.pts,null);if(!(e&&n&&i&&Number.isFinite(r)))return;const o=Number.isFinite(null==t?void 0:t.duration)?t.duration:e.duration,s=`${n}:${i}`;z(zA,this).has(s)||(z(BA,this).push({key:s,placementId:n,pts:r,duration:o,audioBuffer:e}),z(BA,this).sort(((t,e)=>t.pts-e.pts)),L(KA,this,eN).call(this))}onDispose(){L(KA,this,QA).call(this),L(KA,this,oN).call(this,!0),z(RA,this)&&"function"==typeof z(RA,this).close&&z(RA,this).close(),j(RA,this,null),j(LA,this,null),j(PA,this,null),j(DA,this,null)}}function YA(){z(PA,this)&&"function"==typeof z(PA,this).on&&(j(qA,this,(t=>L(KA,this,JA).call(this,t))),z(PA,this).on(kd.TIMELINE_TIME_UPDATE,z(qA,this)),j(VA,this,(t=>L(KA,this,ZA).call(this,t))),z(PA,this).on(kd.TIMELINE_STATE_CHANGE,z(VA,this)),j(HA,this,(()=>L(KA,this,tN).call(this))),z(PA,this).on(kd.TIMELINE_RESET,z(HA,this))),z(DA,this)&&"function"==typeof z(DA,this).on&&(j(GA,this,(t=>this.handleDecodedAudio(t))),z(DA,this).on(kd.DECODER_AUDIO,z(GA,this)))}function QA(){z(PA,this)&&"function"==typeof z(PA,this).off&&(z(qA,this)&&z(PA,this).off(kd.TIMELINE_TIME_UPDATE,z(qA,this)),z(VA,this)&&z(PA,this).off(kd.TIMELINE_STATE_CHANGE,z(VA,this)),z(HA,this)&&z(PA,this).off(kd.TIMELINE_RESET,z(HA,this))),z(DA,this)&&"function"==typeof z(DA,this).off&&z(GA,this)&&z(DA,this).off(kd.DECODER_AUDIO,z(GA,this)),j(qA,this,null),j(VA,this,null),j(GA,this,null),j(HA,this,null)}function JA(){L(KA,this,eN).call(this)}function ZA(t={}){const e=null==t?void 0:t.to;if(e)return e===Pv?(L(KA,this,lN).call(this),void L(KA,this,eN).call(this)):void(e!==Lv&&e!==Rv?e!==Bv&&e!==zv||L(KA,this,tN).call(this):L(KA,this,cN).call(this))}function tN(){L(KA,this,cN).call(this),L(KA,this,oN).call(this,!0),j(BA,this,[])}function eN(){if(!z($A,this)||!z(PA,this))return;if(z(PA,this).state!==Pv)return;const t=L(KA,this,sN).call(this);if(!t)return;const e=CA(z(PA,this).currentTime,0),n=e+Math.max(0,CA(this.settings.lookaheadSeconds,1)),i=[];for(let r=0;r<z(BA,this).length;r+=1){const o=z(BA,this)[r];o&&(o.pts>n?i.push(o):L(KA,this,nN).call(this,o)&&L(KA,this,rN).call(this,o,t,e))}j(BA,this,i)}function nN(t){if(!t||!z(PA,this))return!1;const e=L(KA,this,iN).call(this,t.pts);return!(!e||e!==t.placementId)}function iN(t){if(!z(PA,this)||"function"!=typeof z(PA,this).getPlacementsActiveAtTime)return null;const e=z(PA,this).getPlacementsActiveAtTime(t);if(!Array.isArray(e)||!e.length)return null;const n=e.find((t=>null==t?void 0:t.placementId));return n?n.placementId:null}function rN(t,e,n){const i=t.key;if(z(zA,this).has(i))return;const r=t.audioBuffer;if(!r)return;const o=Number.isFinite(t.duration)?t.duration:r.duration,s=t.pts;if(!Number.isFinite(s))return;const a=n-s;if(Number.isFinite(o)&&o>0&&a>=o)return;const l=e.createBufferSource();l.buffer=r,l.connect(z(LA,this));let c=e.currentTime,u=0;a>0?u=a:a<0&&(c=e.currentTime+Math.abs(a));try{l.start(c,u)}catch(t){return void this.log.warn("[AudioPlaybackManager] Failed to start audio buffer",t)}z(zA,this).add(i),z(WA,this).set(i,l),l.onended=()=>{z(WA,this).delete(i)}}function oN(t){z(WA,this).forEach(((t,e)=>{if(t&&"function"==typeof t.stop)try{t.stop()}catch(t){}z(WA,this).delete(e)})),t&&z(zA,this).clear()}function sN(){if(z(RA,this))return z(RA,this);const t=yd.AudioContext||yd.webkitAudioContext;if(!t)return this.log.warn("[AudioPlaybackManager] AudioContext is not available."),null;try{return j(RA,this,new t),j(LA,this,z(RA,this).createGain()),z(LA,this).connect(z(RA,this).destination),L(KA,this,aN).call(this),z(RA,this)}catch(t){return this.log.warn("[AudioPlaybackManager] Failed to initialize AudioContext",t),j(RA,this,null),j(LA,this,null),null}}function aN(){if(!z(LA,this))return;const t=z(jA,this)?0:z(UA,this);z(LA,this).gain.value=t}function lN(){z(RA,this)&&"function"==typeof z(RA,this).resume&&"suspended"===z(RA,this).state&&z(RA,this).resume().catch((()=>{}))}function cN(){z(RA,this)&&"function"==typeof z(RA,this).suspend&&"running"===z(RA,this).state&&z(RA,this).suspend().catch((()=>{}))}var uN=new WeakMap,dN=new WeakMap,hN=new WeakMap,fN=new WeakMap,pN=new WeakMap,mN=new WeakSet;class vN extends md{constructor(...t){super(...t),U(this,mN),W(this,uN,void 0),W(this,dN,void 0),W(this,hN,void 0),W(this,fN,void 0),W(this,pN,void 0),j(uN,this,L(mN,this,yN).call(this,this.settings.currentTime)),j(dN,this,L(mN,this,bN).call(this,this.settings.playbackRate)),j(hN,this,null),j(fN,this,!1),j(pN,this,L(mN,this,gN).bind(this))}get name(){return"PlaybackClock"}get defaults(){return{currentTime:0,playbackRate:rb("playbackRate")}}get currentTime(){return z(uN,this)}get playbackRate(){return z(dN,this)}set playbackRate(t){j(dN,this,L(mN,this,bN).call(this,t))}play(){z(fN,this)||(j(fN,this,!0),j(hN,this,jy()),Tw(z(pN,this),0))}pause(){z(fN,this)&&(j(fN,this,!1),Iw(z(pN,this)))}seek(t){j(uN,this,L(mN,this,yN).call(this,t)),j(hN,this,jy())}reset(){this.pause(),j(uN,this,0),j(hN,this,null)}onDispose(){this.pause(),j(pN,this,null)}}function gN(){const t=jy();if(null===z(hN,this))return j(hN,this,t),void this.trigger(kd.CLOCK_TICK,{currentTime:z(uN,this)});const e=t-z(hN,this);j(hN,this,t);const n=e/1e3;j(uN,this,z(uN,this)+n*z(dN,this)),this.trigger(kd.CLOCK_TICK,{currentTime:z(uN,this)})}function yN(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<0?0:t}function bN(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<=0?z(dN,this)||1:t}var kN=new WeakMap,wN=new WeakSet;class xN extends md{constructor(...t){super(...t),U(this,wN),W(this,kN,new Map)}get name(){return"TrackBuffers"}get defaults(){return{}}refreshNode(t){if(!t||!Array.isArray(t.tracks))return;const e=t.id,n=z(kN,this).get(e)||new Map;z(kN,this).set(e,n),t.tracks.forEach((t=>{const i=null==t?void 0:t.type;if(!i)return;const r=t.buffered,o=n.get(i),s=!!o&&o.ready,a=(l=r)&&Number.isFinite(l.start)&&Number.isFinite(l.end)&&l.end>l.start;var l,c,u;u=r,!(c=null==o?void 0:o.range)&&!u||c&&u&&c.start===u.start&&c.end===u.end?o&&o.ready!==a&&n.set(i,{range:r,ready:a}):(n.set(i,{range:r,ready:a}),this.trigger(kd.TRACK_BUFFER_UPDATE,{nodeId:e,trackType:i,range:r})),!s&&a?this.trigger(kd.TRACK_READY,{nodeId:e,trackType:i,range:r}):s&&!a&&this.trigger(kd.TRACK_UNDERFLOW,{nodeId:e,trackType:i,range:r})}))}getTrackRange(t,e){const n=z(kN,this).get(t),i=null==n?void 0:n.get(e);return null==i?void 0:i.range}computeBuffered(t=[],e=0,n){if(!n||"function"!=typeof n.get)return;const i=Number.isFinite(e)?e:0;let r,o,s=!1;for(let e=0;e<t.length;e+=1){const a=L(wN,this,TN).call(this,n,t[e],i);if(!a||a.end<=i)continue;if(void 0===r){r=a.start,o=a.end,s=a.full;continue}const l=a.start<=o,c=s&&a.full;if(!l&&!c)break;o=Math.max(o,a.end),s=a.full}return void 0===r||void 0===o?{start:0,end:0}:{start:r,end:o}}get buffered(){return z(kN,this)}reset(){z(kN,this).clear()}onDispose(){z(kN,this).clear(),"function"==typeof this.off&&this.off()}}function _N(t,e=0){const n=Array.isArray(null==t?void 0:t.segments)?t.segments:[],i=[];for(let t=0;t<n.length;t+=1){const e=n[t];if(!e||e.isInit)continue;const r=Number(e.duration),o=Number(e.offset),s=Number(e.bufferedRatio);if(!Number.isFinite(r)||r<=0||!Number.isFinite(o)||s<=0)continue;const a=o+r*Math.min(1,s);!Number.isFinite(a)||a<=o||i.push({start:o,end:a})}if(!i.length)return;i.sort(((t,e)=>t.start-e.start));const r=[i[0]];for(let t=1;t<i.length;t+=1){const e=i[t],n=r[r.length-1];e.start<=n.end+.001?n.end=Math.max(n.end,e.end):r.push({...e})}const o=Number.isFinite(e)?e:0;for(let t=0;t<r.length;t+=1){const e=r[t];if(e.end>o+.001)return e}}function TN(t,e,n=0){var i,r;const o=Sm(e);if(!Number.isFinite(o))return;const s=t.get(e.nodeId);if(!s)return;const a=Array.isArray(s.tracks)?s.tracks:[];if(!a.length){const t=s.buffered;if(!t||!Number.isFinite(t.start)||!Number.isFinite(t.end))return;return L(wN,this,IN).call(this,s,t,o,e)}const l=s.mainTrackId,c=Number.isFinite(e.nodeOffsetOverride)?e.nodeOffsetOverride:0,u=Math.max(0,n-o+c);let d;l&&(d=a.find((t=>(null==t?void 0:t.id)===l))),(null===(i=d)||void 0===i?void 0:i.type)||(d=a.find((t=>null==t?void 0:t.type)));const h=L(wN,this,_N).call(this,d,u)||(null===(r=d)||void 0===r?void 0:r.buffered);return h&&Number.isFinite(h.start)&&Number.isFinite(h.end)?L(wN,this,IN).call(this,s,h,o,e):void 0}function IN(t,e,n,i){const r=Number.isFinite(i.nodeOffsetOverride)?i.nodeOffsetOverride:0;let o=e.start-r+n,s=e.end-r+n;const a=t.duration,l=Number.isFinite(i.nodeDurationOverride)?i.nodeDurationOverride:a;if(Number.isFinite(l)){const t=n+l;s=Math.min(s,t);const e=o<=n&&s>=t;if(o=Math.max(o,n),!(s>o))return;return{start:o,end:s,full:e}}if(o=Math.max(o,n),s>o)return{start:o,end:s,full:!1}}class EN{constructor(t={}){const{placementId:e,nodeId:n,offset:i,offsetPending:r=!1,offsetAnchorPlacementId:o,offsetEndSeconds:s,offsetAnchorEdge:a,offsetAnchorIsReference:l,nodeOffsetOverride:c,nodeDurationOverride:u,loop:d=!1,loopRootPlacementId:h,loopRootOffset:f}=t;if(!e)throw new Error("Placement requires placementId");if(!n)throw new Error("Placement requires nodeId");this.placementId=e,this.nodeId=n;const p=Number.isFinite(i)?i:0;this.offsetPending=!0===r,this.offsetAnchorPlacementId=o,this.offsetAnchorEdge=a,this.offsetAnchorIsReference=l,this.offsetEndSeconds=Number.isFinite(s)?s:void 0,this.offset=this.offsetPending?void 0:p,this.nodeOffsetOverride=c,this.nodeDurationOverride=u,this.loop=!0===d,this.loopRootPlacementId=h,this.loopRootOffset=f}}class SN extends md{constructor(t,e){super(e),this.timeline=t}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"handleDecodedFrame","handleClockTick","handleMainTrackBufferUpdate"])}enter(){}exit(){}play(){this.timeline.transitionTo(Pv)}pause(){this.timeline.transitionTo(Lv)}wait(){this.timeline.transitionTo(Rv)}reset(){this.timeline.transitionTo(zv)}seek(t){this.timeline.transitionTo(Bv,{targetTime:t,returnState:this.timeline.state})}getCurrentTime(){return this.timeline.currentTime}emitPlayerStateEvent(t,e={}){if(!t||!this.timeline||"function"!=typeof this.timeline.trigger)return;const n=Number.isFinite(null==e?void 0:e.time)?e.time:this.getCurrentTime(),i={...e,event:t};Number.isFinite(n)&&(i.time=n),this.timeline.trigger("player:state",i)}get buffered(){return this.timeline.computeBuffered(this.timeline.currentTime)}handleMainTrackUnderflow(t){this.wait()}handleMainTrackReady(t){const e=this.timeline.getLastStableState()||Lv;this.timeline.transitionTo(e)}handleMainTrackBufferUpdate(t){}handleDecodedFrame(t){}handleClockTick(t){}onDispose(){this.timeline=null}}const AN=24e3/1001;function NN(t,e=(null==t?void 0:t.currentTime)){return Number.isFinite(e)?e:Number.isFinite(null==t?void 0:t.currentTime)?t.currentTime:0}function MN(t){var e;const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return Number.isFinite(n)&&n>0?.5/n:.001}function FN(t){var e;const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let i;if(null!=t&&t.mainTrackId){const e=n.find((e=>(null==e?void 0:e.id)===t.mainTrackId));i=null==e?void 0:e.type}if(i||(i=null===(e=n.find((t=>null==t?void 0:t.type)))||void 0===e?void 0:e.type),"video"===i||"audio"===i||"image"===i)return i}function ON(t){const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];if(e.length){if(null!=t&&t.mainTrackId){const n=e.find((e=>(null==e?void 0:e.id)===t.mainTrackId));if("video"===(null==n?void 0:n.type)||"image"===(null==n?void 0:n.type))return n}return e.find((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)))}}function CN(t,e,n,i,r){var o,s;const a="function"==typeof(null==t?void 0:t.getDecodedVisualBuffer)?t.getDecodedVisualBuffer(e,n):void 0;if(!a)return"function"==typeof(null==t?void 0:t.hasDecodedFirstFrame)&&t.hasDecodedFirstFrame(e,i);const l=Array.isArray(a.frames)?a.frames:[];let c,u=Number.isFinite(null===(o=a.current)||void 0===o?void 0:o.presentationTime)?a.current:void 0;for(let t=0;t<l.length;t+=1){const e=l[t],n=Number(null==e?void 0:e.presentationTime);if(Number.isFinite(n)){if(!(n<=r)){c=n;break}u=e}}const d=Number(null===(s=u)||void 0===s?void 0:s.presentationTime);if(!Number.isFinite(d)||d>r)return!1;const h=function(t,e,n,i){const r=Number(null==n?void 0:n.duration);if(Number.isFinite(r)&&r>0)return e+r;const o=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return 2/(Number.isFinite(n)&&n>0?n:AN)}(t),s=Number.isFinite(i)&&i>e?i-e:o;return e+Math.min(s,o)}(t,d,u,c);return!!Number.isFinite(h)&&r<=h+MN(t)}function PN(t,e=(null==t?void 0:t.currentTime)){const n=NN(t,e),i="function"==typeof(null==t?void 0:t.getPlacementsActiveAtTime)?t.getPlacementsActiveAtTime(n):[];if(!i.length)return!1;for(let e=0;e<i.length;e+=1){const n=i[e],r=null==n?void 0:n.placementId;if(!r)return!0;const o="function"==typeof(null==t?void 0:t.getNode)?t.getNode(n.nodeId):void 0;if(!o)return!0;const s=FN(o);if(!s)return!0;if(!t.hasDecodedFirstFrame(r,s))return!0}return!1}function DN(t,e=(null==t?void 0:t.currentTime)){return PN(t,e)||function(t,e=(null==t?void 0:t.currentTime)){const n=NN(t,e),i="function"==typeof(null==t?void 0:t.getPlacementsActiveAtTime)?t.getPlacementsActiveAtTime(n):[];if(!i.length)return!1;for(let e=0;e<i.length;e+=1){const r=i[e],o=null==r?void 0:r.placementId;if(!o)return!0;const s="function"==typeof(null==t?void 0:t.getNode)?t.getNode(r.nodeId):void 0;if(!s)return!0;const a=ON(s);if(null!=a&&a.id&&!CN(t,o,a.id,a.type,n))return!0}return!1}(t,e)}function RN(t,e=(null==t?void 0:t.currentTime)){if("function"!=typeof(null==t?void 0:t.computeBuffered))return!1;const n=NN(t,e),i=t.computeBuffered(n),r=Number(null==i?void 0:i.start),o=Number(null==i?void 0:i.end);if(!Number.isFinite(r)||!Number.isFinite(o)||o<=r)return!1;const s=MN(t);if(!(r<=n+s))return!1;return o-n>=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.waitingBufferAheadSeconds);return!Number.isFinite(n)||n<0?3:n}(t)-s||function(t,e,n,i){const r=function(t){const e=Array.isArray(null==t?void 0:t.placements)?t.placements:[];let n;for(let i=0;i<e.length;i+=1){const r=e[i],o=Sm(r);if(!Number.isFinite(o))continue;const s="function"==typeof(null==t?void 0:t.getPlacementDuration)?t.getPlacementDuration(r):void 0;if(!Number.isFinite(s))continue;const a=o+s;Number.isFinite(a)&&(!Number.isFinite(n)||a>n)&&(n=a)}return n}(t);return!!Number.isFinite(r)&&(e>=r-i||n>=r-i)}(t,n,o,s)}const LN={[Cv]:class extends SN{get name(){return Cv}get defaults(){return{autoplay:rb("autoplay")}}enter(){this.timeline.recordStableState(Lv),this.timeline.stopPlaybackClock()}play(){const t=DN(this.timeline),e=t?Rv:this.timeline.getPlaybackStartState();if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(Pv),void this.timeline.transitionTo(Rv);this.timeline.transitionTo(e)}pause(){}handleDecodedFrame(t){if(!0!==this.settings.autoplay)return;if(!Array.isArray(this.timeline.placements)||!this.timeline.placements.length)return;if(DN(this.timeline))return;const e=this.timeline.getPlaybackStartState();this.log.info("[handleDecodedFrame] Autoplay enabled, starting playback!"),this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),this.timeline.transitionTo(e)}},[Dv]:class extends SN{get name(){return Dv}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(Pv),this.timeline.stopPlaybackClock(),this.emitPlayerStateEvent("canplay",{from:e,to:n})}play(){}handleMainTrackUnderflow(){}pause(){this.timeline.transitionTo(Lv)}},[Pv]:class extends SN{get name(){return Pv}enter(t={}){const{from:e,to:n,fromFirstFramePending:i}=t;this.timeline.recordStableState(Pv),this.timeline.startPlaybackClock(),!0!==i&&this.emitPlayerStateEvent("canplay",{from:e,to:n}),this.emitPlayerStateEvent("playing",{from:e,to:n})}play(){}pause(){this.timeline.transitionTo(Lv)}handleClockTick(t){const e=this.timeline.currentTime;DN(this.timeline,e)&&(this.timeline.recordStableState(Pv),this.timeline.transitionTo(Rv))}},[Rv]:(ln=new WeakMap,cn=new WeakMap,un=new WeakSet,class extends SN{constructor(...t){super(...t),U(this,un),W(this,ln,void 0),W(this,cn,null)}get name(){return Rv}enter(t={}){const{from:e,to:n}=t;this.timeline.stopPlaybackClock(),L(un,this,BN).call(this),L(un,this,WN).call(this),this.emitPlayerStateEvent("waiting",{from:e,to:n}),L(un,this,$N).call(this)}exit(){L(un,this,zN).call(this),L(un,this,jN).call(this)}play(){this.timeline.recordStableState(Pv);const t=L(un,this,UN).call(this),e=t?Rv:this.timeline.getPlaybackStartState();this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t||this.timeline.transitionTo(e)}pause(){this.timeline.transitionTo(Lv)}handleMainTrackReady(t){const e=this.timeline.getLastStableState()||Lv;e!==Pv?this.timeline.transitionTo(e):L(un,this,$N).call(this)}handleDecodedFrame(t){L(un,this,$N).call(this)}handleMainTrackBufferUpdate(t){L(un,this,$N).call(this)}}),[Lv]:class extends SN{get name(){return Lv}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(Lv),this.timeline.stopPlaybackClock(),this.emitPlayerStateEvent("pause",{from:e,to:n})}play(){const t=DN(this.timeline),e=t?Rv:this.timeline.getPlaybackStartState();if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(Pv),void this.timeline.transitionTo(Rv);this.timeline.transitionTo(e)}pause(){}},[Bv]:class extends SN{get name(){return Bv}enter(t={}){const{targetTime:e,returnState:n}=t;if(this.timeline&&"function"==typeof this.timeline.stopPlaybackClock&&this.timeline.stopPlaybackClock(),this.timeline&&"function"==typeof this.timeline.startSeeking)return void this.timeline.startSeeking(e,n);this.timeline.updateTime(e);const i=n===Pv||n===Dv,r=i&&"function"==typeof this.timeline.getPlaybackStartState?this.timeline.getPlaybackStartState(e):i?Pv:Lv;this.timeline.transitionTo(r,{fromSeeking:!0})}play(){var t;if(this.timeline&&"function"==typeof this.timeline.setSeekReturnState)return void this.timeline.setSeekReturnState(Pv);const e="function"==typeof(null===(t=this.timeline)||void 0===t?void 0:t.getPlaybackStartState)?this.timeline.getPlaybackStartState():Pv;this.timeline.transitionTo(e)}pause(){this.timeline&&"function"==typeof this.timeline.setSeekReturnState?this.timeline.setSeekReturnState(Lv):this.timeline.transitionTo(Lv)}handleDecodedFrame(t){this.timeline&&"function"==typeof this.timeline.maybeCompleteSeek&&this.timeline.maybeCompleteSeek(t)}},[zv]:class extends SN{get name(){return zv}enter(){this.timeline.resetClock(),this.timeline.transitionTo(Cv,{fromReset:!0})}play(){}pause(){}get buffered(){return{start:0,end:0}}}};function BN(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;e&&"function"==typeof e.on&&(j(ln,this,(t=>this.handleMainTrackBufferUpdate(t))),e.on(kd.TRACK_BUFFER_UPDATE,z(ln,this)))}function zN(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;z(ln,this)&&e&&"function"==typeof e.off?(e.off(kd.TRACK_BUFFER_UPDATE,z(ln,this)),j(ln,this,null)):j(ln,this,null)}function WN(){if(null!==z(cn,this))return;const t="function"==typeof(null==yd?void 0:yd.setInterval)?yd.setInterval.bind(yd):setInterval;j(cn,this,t((()=>{var t;(null===(t=this.timeline)||void 0===t?void 0:t.state)===Rv&&L(un,this,$N).call(this)}),200))}function jN(){null!==z(cn,this)&&(("function"==typeof(null==yd?void 0:yd.clearInterval)?yd.clearInterval.bind(yd):clearInterval)(z(cn,this)),j(cn,this,null))}function UN(t=(t=>null===(t=this.timeline)||void 0===t?void 0:t.currentTime)()){return function(t,e=(null==t?void 0:t.currentTime),n={}){return!!PN(t,e)||!0===n.skipBufferResume||!RN(t,e)}(this.timeline,t)}function $N(t=(t=>null===(t=this.timeline)||void 0===t?void 0:t.currentTime)()){return(this.timeline.getLastStableState()||Lv)===Pv&&!L(un,this,UN).call(this,t)&&(this.timeline.transitionTo(this.timeline.getPlaybackStartState(t)),!0)}function qN(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function VN(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).some((t=>"video"===(null==t?void 0:t.type)))}function GN(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).some((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)))}function HN(t){return t===Pv||t===Dv}var KN=new WeakMap,XN=new WeakMap,YN=new WeakMap,QN=new WeakMap,JN=new WeakMap,ZN=new WeakMap,tM=new WeakMap,eM=new WeakMap,nM=new WeakMap,iM=new WeakMap,rM=new WeakMap,oM=new WeakMap,sM=new WeakMap,aM=new WeakMap,lM=new WeakSet;class cM{constructor(t={}){U(this,lM),W(this,KN,void 0),W(this,XN,void 0),W(this,YN,void 0),W(this,QN,void 0),W(this,JN,void 0),W(this,ZN,void 0),W(this,tM,void 0),W(this,eM,void 0),W(this,nM,void 0),W(this,iM,null),W(this,rM,Lv),W(this,oM,[]),W(this,sM,new Set),W(this,aM,new Map),j(KN,this,t.getState),j(XN,this,t.getNode),j(YN,this,t.getPlacementsActiveAtTime),j(QN,this,t.getLastStableState),j(JN,this,t.getPlaybackStartState),j(ZN,this,t.clearVisualFrameBuffers),j(tM,this,t.updateTime),j(eM,this,t.transitionTo),j(nM,this,t.trigger)}start(t,e){const n=Number(t);if(!Number.isFinite(n))return;let i=e;i===Bv?i=z(rM,this):i===Rv&&"function"==typeof z(QN,this)&&(i=z(QN,this).call(this)),j(rM,this,HN(i)?Pv:Lv),j(iM,this,n),z(sM,this).clear(),z(aM,this).clear(),j(oM,this,"function"==typeof z(YN,this)?z(YN,this).call(this,n):[]),"function"==typeof z(ZN,this)&&z(ZN,this).call(this),"function"==typeof z(tM,this)&&z(tM,this).call(this,n,{source:"seek"}),"function"==typeof z(nM,this)&&z(nM,this).call(this,kd.TIMELINE_SEEKING,{targetTime:n,placements:z(oM,this).slice()}),this.maybeComplete()}setReturnState(t){j(rM,this,HN(t)?Pv:Lv)}maybeComplete(t){if(("function"==typeof z(KN,this)?z(KN,this).call(this):void 0)!==Bv)return;const e=z(iM,this);if(!Number.isFinite(e))return;const n=null==t?void 0:t.trackType,i=null==t?void 0:t.placementId;if(i&&"video"===n){const n=Number(null==t?void 0:t.pts);if(Number.isFinite(n)&&n>=e){z(sM,this).add(i);const t=z(aM,this).get(i);(!Number.isFinite(t)||n<t)&&z(aM,this).set(i,n)}}else i&&"image"===n&&function(t,e){const n=Number(null==t?void 0:t.pts),i=Number(null==t?void 0:t.duration);return!Number.isFinite(n)||(Number.isFinite(i)&&i>0?e>=n&&e<n+i:e>=n)}(t,e)&&z(sM,this).add(i);const r=Array.isArray(z(oM,this))?z(oM,this):[];if(r.length){if("function"==typeof z(XN,this)){for(let t=0;t<r.length;t+=1){const e=r[t],n=null==e?void 0:e.placementId;if(!n)return;const i=z(XN,this).call(this,e.nodeId);if(!qN(i))return;if(GN(i)&&!z(sM,this).has(n))return}L(lM,this,uM).call(this,e,r)}}else L(lM,this,uM).call(this,e,[])}dispose(){j(oM,this,[]),z(sM,this).clear(),z(aM,this).clear(),j(iM,this,null)}}function uM(t,e){const n=L(lM,this,dM).call(this,t,e);if("function"==typeof z(tM,this)&&z(tM,this).call(this,n,{source:"seek"}),j(iM,this,null),j(oM,this,[]),z(sM,this).clear(),z(aM,this).clear(),"function"==typeof z(nM,this)&&z(nM,this).call(this,kd.TIMELINE_SEEKED,{targetTime:t,placements:Array.isArray(e)?e.slice():[]}),"function"==typeof z(eM,this)){const t=z(rM,this)===Pv&&"function"==typeof z(JN,this)?z(JN,this).call(this,n):z(rM,this);z(eM,this).call(this,t,{fromSeeking:!0})}}function dM(t,e){const n=Number(t);if(!Number.isFinite(n))return t;if(!Array.isArray(e)||!e.length||"function"!=typeof z(XN,this))return n;let i=n;for(let t=0;t<e.length;t+=1){const n=e[t],r=null==n?void 0:n.placementId;if(!r)continue;if(!VN(z(XN,this).call(this,n.nodeId)))continue;const o=z(aM,this).get(r);Number.isFinite(o)&&o>i&&(i=o)}return i}function hM(t){if(t&&"function"==typeof t.close)try{t.close()}catch(t){}}function fM(t){if(!t)return;const e=Array.isArray(null==t?void 0:t.frames)?t.frames:[],n=null==t?void 0:t.current;(n?[n,...e]:e).forEach((t=>hM(null==t?void 0:t.frame)))}function pM(t){return Sm(t)}function mM(t){return Number.isFinite(null==t?void 0:t.loopRootOffset)?t.loopRootOffset:pM(t)}function vM(t,e){return"string"==typeof(null==t?void 0:t.loopRootPlacementId)&&t.loopRootPlacementId?t.loopRootPlacementId:e}function gM(t){if("string"!=typeof t)return Number.NaN;const e=t.match(/(\d+)/);return e?Number(e[1]):Number.NaN}function yM(t){if(!t)return;const e=[[t.displayWidth,t.displayHeight],[t.codedWidth,t.codedHeight],[t.videoWidth,t.videoHeight],[t.naturalWidth,t.naturalHeight],[t.width,t.height]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}const bM=1e-6;function kM(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function wM(t){const e=Number(t);return Number.isFinite(e)?e:0}function xM(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>"cue"===(null==t?void 0:t.type)&&Array.isArray(null==t?void 0:t.cues)))}function _M(t){return t&&"cue"===t.type&&Array.isArray(t.cues)?t.cues:[]}var TM=new WeakMap,IM=new WeakMap,EM=new WeakMap,SM=new WeakMap,AM=new WeakMap,NM=new WeakMap,MM=new WeakMap,FM=new WeakMap,OM=new WeakSet;class CM{constructor(t={}){U(this,OM),W(this,TM,void 0),W(this,IM,void 0),W(this,EM,void 0),W(this,SM,void 0),W(this,AM,void 0),W(this,NM,void 0),W(this,MM,-1e-6),W(this,FM,null),j(TM,this,t.getPlacements),j(IM,this,t.getPlacementsActiveAtTime),j(EM,this,t.getPlacementDuration),j(SM,this,t.getNode),j(AM,this,t.triggerTimeline),j(NM,this,t.triggerNode)}handleSeeking(t,e){const n=wM(t);j(FM,this,n)}handleSeeked(t){const e=wM(t),n=z(FM,this);j(FM,this,null),Number.isFinite(n)?(L(OM,this,DM).call(this,n,e),j(MM,this,e)):j(MM,this,e)}handleTimeUpdate(t,e={}){const n=wM(t),i=z(MM,this);!0===(null==e?void 0:e.isSeeking)?j(MM,this,n):Number.isFinite(i)?n<=i?n<i&&j(MM,this,n-bM):(L(OM,this,PM).call(this,i,n),j(MM,this,n)):j(MM,this,n)}dispose(){j(FM,this,null),j(MM,this,-1e-6)}}function PM(t,e){const n="function"==typeof z(TM,this)?z(TM,this).call(this):[];L(OM,this,RM).call(this,n,t,e,{onlySticky:!1})}function DM(t,e){if("function"!=typeof z(IM,this))return;const n=z(IM,this).call(this,e);L(OM,this,RM).call(this,n,t,e,{onlySticky:!0})}function RM(t,e,n,i={}){if("function"!=typeof z(SM,this)||"function"!=typeof z(AM,this))return;if(!Array.isArray(t)||!t.length)return;const r=!0===i.onlySticky,o=[];for(let i=0;i<t.length;i+=1){const s=t[i],a=null==s?void 0:s.placementId,l=null==s?void 0:s.nodeId;if(!a||!l)continue;const c=z(SM,this).call(this,l);if(!kM(c))continue;const u=xM(c);if(!u.length)continue;const d=Sm(s);if(!Number.isFinite(d))continue;const h=Number.isFinite(null==s?void 0:s.nodeOffsetOverride)?s.nodeOffsetOverride:0,f="function"==typeof z(EM,this)?z(EM,this).call(this,s):void 0,p="number"==typeof f&&Number.isFinite(f)?d+f:Number.POSITIVE_INFINITY,m=r?d-bM:e;for(let t=0;t<u.length;t+=1){const e=_M(u[t]);for(let i=0;i<e.length;i+=1){const s=e[i],c=wM(null==s?void 0:s.timestamp),u=d+Math.max(0,c-h);u<=p&&(r&&!0!==(null==s?void 0:s.isSticky)||u>m&&u<=n&&"string"==typeof(null==s?void 0:s.name)&&s.name&&o.push({time:u,placementOffset:d,placementId:a,nodeId:l,cuepoint:s,trackIndex:t,cueIndex:i}))}}}o.length&&(o.sort(((t,e)=>t.time!==e.time?t.time-e.time:t.placementOffset!==e.placementOffset?t.placementOffset-e.placementOffset:t.placementId!==e.placementId?t.placementId<e.placementId?-1:1:t.trackIndex!==e.trackIndex?t.trackIndex-e.trackIndex:t.cueIndex-e.cueIndex)),o.forEach((t=>{const e=t.cuepoint,n={time:t.time,nodeId:t.nodeId,placementId:t.placementId,cuepoint:e};z(AM,this).call(this,"cuepoint",n),z(AM,this).call(this,e.name,n),"function"==typeof z(NM,this)&&(z(NM,this).call(this,t.nodeId,"cuepoint",n),z(NM,this).call(this,t.nodeId,e.name,n))})))}class LM{#J;#Z=0;#tt=new Set;constructor(t){this.#J="string"==typeof t?t:""}claim(t){if(t)return this.#tt.add(t),t;let e;do{e=`${this.#J}${++this.#Z}`}while(this.#tt.has(e));return this.#tt.add(e),e}reset(){this.#Z=0,this.#tt.clear()}}const BM=24e3/1001;function zM(t){var e;const n=null==t?void 0:t.frame;if(!n||!0===n.__closed||!0===n.closed)return 0;if("function"==typeof n.allocationSize)try{const t=Number(n.allocationSize());if(Number.isFinite(t)&&t>0)return t}catch(t){}const i=Number(null==n?void 0:n.byteLength);if(Number.isFinite(i)&&i>0)return i;const r=Number(null==n||null===(e=n.data)||void 0===e?void 0:e.byteLength);if(Number.isFinite(r)&&r>0)return r;const o=function(t,e){const n=Number(null==t?void 0:t.width),i=Number(null==t?void 0:t.height);return Number.isFinite(n)&&Number.isFinite(i)&&n>0&&i>0?{width:n,height:i}:yM(e)}(t,n),s=Number(null==o?void 0:o.width),a=Number(null==o?void 0:o.height);return Number.isFinite(s)&&Number.isFinite(a)&&s>0&&a>0?s*a*4:0}var WM=new WeakMap,jM=new WeakMap,UM=new WeakMap,$M=new WeakMap,qM=new WeakMap,VM=new WeakMap,GM=new WeakMap,HM=new WeakMap,KM=new WeakMap,XM=new WeakMap,YM=new WeakMap,QM=new WeakMap,JM=new WeakMap,ZM=new WeakMap,tF=new WeakMap,eF=new WeakMap,nF=new WeakMap,iF=new WeakMap,rF=new WeakMap,oF=new WeakMap,sF=new WeakMap,aF=new WeakMap,lF=new WeakMap,cF=new WeakMap,uF=new WeakMap,dF=new WeakMap,hF=new WeakMap,fF=new WeakMap,pF=new WeakMap,mF=new WeakMap,vF=new WeakMap,gF=new WeakMap,yF=new WeakMap,bF=new WeakSet;class kF extends md{constructor(...t){super(...t),U(this,bF),W(this,WM,void 0),W(this,jM,void 0),W(this,UM,void 0),W(this,$M,void 0),W(this,qM,void 0),W(this,VM,!1),W(this,GM,[]),W(this,HM,new LM("placement-")),W(this,KM,[]),W(this,XM,new LM("renderplacement-")),W(this,YM,void 0),W(this,QM,void 0),W(this,JM,void 0),W(this,ZM,!1),W(this,tF,new Set),W(this,eF,new Set),W(this,nF,new Map),W(this,iF,[]),W(this,rF,0),W(this,oF,new Set),W(this,sF,new Set),W(this,aF,Number.NEGATIVE_INFINITY),W(this,lF,[]),W(this,cF,Number.NEGATIVE_INFINITY),W(this,uF,0),W(this,dF,void 0),W(this,hF,void 0),W(this,fF,new Map),W(this,pF,null),W(this,mF,void 0),W(this,vF,void 0),W(this,gF,void 0),W(this,yF,void 0);const[e,n={}]=t;j(WM,this,e),j(dF,this,n),j(qM,this,new vN(n)),j(YM,this,new xN(n)),j($M,this,Lv),L(bF,this,FF).call(this),L(bF,this,OF).call(this),j(mF,this,new cM({getState:()=>this.state,getNode:t=>z(WM,this)&&"function"==typeof z(WM,this).get?z(WM,this).get(t):void 0,getPlacementsActiveAtTime:t=>L(bF,this,dO).call(this,t,{endEpsilonSeconds:L(bF,this,kO).call(this)}),getLastStableState:()=>this.getLastStableState(),getPlaybackStartState:t=>this.getPlaybackStartState(t),clearVisualFrameBuffers:()=>L(bF,this,cO).call(this),updateTime:(t,e)=>this.updateTime(t,e),transitionTo:(t,e)=>this.transitionTo(t,e),trigger:(t,e)=>this.trigger(t,e)})),j(vF,this,new CM({getPlacements:()=>z(GM,this).slice(),getPlacementsActiveAtTime:t=>L(bF,this,dO).call(this,t),getPlacementDuration:t=>L(bF,this,GF).call(this,t),getNode:t=>z(WM,this)&&"function"==typeof z(WM,this).get?z(WM,this).get(t):void 0,triggerTimeline:(t,e)=>this.trigger(t,e),triggerNode:(t,e,n)=>{const i=z(WM,this)&&"function"==typeof z(WM,this).get?z(WM,this).get(t):void 0;i&&"function"==typeof i.trigger&&i.trigger(e,n)}})),j(gF,this,(()=>{var t,e;null===(t=z(vF,this))||void 0===t||null===(e=t.handleSeeked)||void 0===e||e.call(t,this.currentTime)})),this.on(kd.TIMELINE_SEEKED,z(gF,this)),j(yF,this,(t=>L(bF,this,zF).call(this,t))),this.on("nodestart",z(yF,this)),this.transitionTo(Cv)}get name(){return"Timeline"}get defaults(){return{snapToFps:BM,maxBufferedVideoFrames:24}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"computeBuffered","notifyDecodedFrame","getDecodedFrameStats","getActiveRenderPlacement","maybeCompleteSeek","getPlacementsActiveAtTime","hasDecodedFirstFrame","getDecodedVisualBuffer","getPlacementDuration","getNode"])}transitionTo(t,e={}){const n=z(UM,this),i=function(t,e,n={}){const i=LN[t];return i?new i(e,n):null}(t,this,z(dF,this)),r=e&&"object"==typeof e&&!Array.isArray(e)?{...e,from:n,to:t}:{from:n,to:t};i?(z(jM,this)&&"function"==typeof z(jM,this).exit&&z(jM,this).exit(),j(jM,this,i),j(UM,this,t),"function"==typeof i.enter&&i.enter(r),this.trigger(kd.TIMELINE_STATE_CHANGE,{from:n,to:t,options:e})):this.log.warn(`Unknown state "${t}"`)}recordStableState(t){j($M,this,t)}getLastStableState(){return z($M,this)}enableFirstFrameRenderedGate(){j(VM,this,!0)}getPlaybackStartState(t=this.currentTime){return this.shouldWaitForFirstRenderedFrame(t)?Dv:Pv}shouldWaitForFirstRenderedFrame(t=this.currentTime){if(!z(VM,this)||z(ZM,this))return!1;const e=Number.isFinite(t)?t:this.currentTime,n=L(bF,this,dO).call(this,e);return Array.isArray(n)&&n.length>0}notifyFirstFrameRendered(){z(ZM,this)||(j(ZM,this,!0),this.state===Dv&&this.transitionTo(Pv,{fromFirstFramePending:!0}))}get state(){return z(UM,this)}get paused(){return z(UM,this)===Cv||z(UM,this)===Lv}get currentTime(){return z(qM,this).currentTime}set currentTime(t){z(jM,this).seek(t)}get playbackRate(){return z(qM,this).playbackRate}set playbackRate(t){z(qM,this).playbackRate=t}play(){z(jM,this).play()}pause(){z(jM,this).pause()}reset(){z(jM,this).reset()}seekToPlacement(t){if(!t)throw new Error("Timeline.seekToPlacement requires placement id");L(bF,this,UF).call(this);const e=L(bF,this,vO).call(this,t);if(!e)throw new Error("Timeline.seekToPlacement requires placement id");const n=Sm(e);if(!Number.isFinite(n))throw new Error("Timeline.seekToPlacement requires resolved placement offset");return this.currentTime=n,n}updateTime(t,e={}){var n,i;L(bF,this,UF).call(this),L(bF,this,$F).call(this),z(qM,this).seek(t),L(bF,this,uO).call(this,this.currentTime),L(bF,this,hO).call(this);const r="string"==typeof(null==e?void 0:e.source)?e.source:"set";null!==(n=z(vF,this))&&void 0!==n&&null!==(i=n.handleTimeUpdate)&&void 0!==i&&i.call(n,this.currentTime,{isSeeking:this.state===Bv}),L(bF,this,WF).call(this,this.currentTime),L(bF,this,rO).call(this,this.currentTime),this.trigger(kd.TIMELINE_TIME_UPDATE,wd(this.currentTime,r))}startSeeking(t,e){var n,i;null!==(n=z(vF,this))&&void 0!==n&&null!==(i=n.handleSeeking)&&void 0!==i&&i.call(n,this.currentTime,t),z(mF,this)&&"function"==typeof z(mF,this).start&&z(mF,this).start(t,e)}setSeekReturnState(t){z(mF,this)&&"function"==typeof z(mF,this).setReturnState&&z(mF,this).setReturnState(t)}maybeCompleteSeek(t){z(mF,this)&&"function"==typeof z(mF,this).maybeComplete&&z(mF,this).maybeComplete(t)}startPlaybackClock(){z(qM,this).play()}stopPlaybackClock(){z(qM,this).pause()}resetClock(){var t,e;j(ZM,this,!1),z(qM,this).reset(),this.trigger(kd.TIMELINE_RESET,{reason:"reset"}),null===(t=z(vF,this))||void 0===t||null===(e=t.dispose)||void 0===e||e.call(t)}applyTimelineDefinition(t={}){const e=Array.isArray(null==t?void 0:t.placements)?t.placements:[],n=Array.isArray(null==t?void 0:t.renderPlacements)?t.renderPlacements:[];L(bF,this,wF).call(this),L(bF,this,xF).call(this,e),L(bF,this,_F).call(this,n),this.currentTime=0}placeOnTimeline(t,e,n={}){const i=t&&"object"==typeof t?t.id:t;if(!i)throw new Error("Timeline.placeOnTimeline requires node id");const r=z(HM,this).claim(n.placementId),o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=Cm(e);if("string"==typeof e&&e.includes("@")&&!a)throw new Error("Timeline.placeOnTimeline requires valid placement reference");const{wantsEndOffset:l,endOffsetSeconds:c}=a?{wantsEndOffset:!1}:Om(e,n);let u,d,h,f=!1;const p=null!==a;if(L(bF,this,UF).call(this),a){const t=z(GM,this).find((t=>(null==t?void 0:t.placementId)===a.placementId));if(!t)throw new Error("Timeline.placeOnTimeline requires valid placement reference");d=t.placementId,h=a.anchor;const e=Sm(t);if("start"===a.anchor)Number.isFinite(e)?u=L(bF,this,HF).call(this,e,{nodeOffsetOverride:o}):f=!0;else{const n=L(bF,this,GF).call(this,t);if(Number.isFinite(e)&&n>0){const t=e+n,i=L(bF,this,HF).call(this,t,{nodeOffsetOverride:o});u=Math.max(i,t)}else f=!0}}else if(l){const t=n.offsetAnchorPlacementId?z(GM,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):z(GM,this).length?z(GM,this)[z(GM,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=Sm(t),n=L(bF,this,GF).call(this,t);Number.isFinite(e)&&n>0?u=L(bF,this,HF).call(this,e+n-c,{nodeOffsetOverride:o}):(f=!0,h="end")}else u=L(bF,this,HF).call(this,-c,{nodeOffsetOverride:o})}else u=Fm(e),u=L(bF,this,HF).call(this,u,{...n,nodeOffsetOverride:o});const m=!0===n.loop?n.loopRootPlacementId||r:void 0,v=!0===n.loop&&Number.isFinite(n.loopRootOffset)?n.loopRootOffset:!0===n.loop?u:void 0,g=l?c:a&&"end"===a.anchor?0:void 0,y=new EN({placementId:r,nodeId:i,offset:u,offsetPending:f,offsetAnchorPlacementId:f?d:void 0,offsetAnchorEdge:f?h:void 0,offsetAnchorIsReference:f?p:void 0,offsetEndSeconds:g,nodeOffsetOverride:o,nodeDurationOverride:s,loop:!0===n.loop,loopRootPlacementId:m,loopRootOffset:v});if(z(GM,this).push(y),Nm(z(GM,this)),L(bF,this,nO).call(this,y),L(bF,this,tO).call(this),f&&d){const t=z(GM,this).find((t=>(null==t?void 0:t.placementId)===d));L(bF,this,XF).call(this,null==t?void 0:t.nodeId)}return this.trigger(kd.PLACEMENT_ADDED,y),r}placeRenderNodeOnTimeline(t,e,n,i={}){const r="string"==typeof t?t:null==t?void 0:t.type;if(!r||"string"!=typeof r)throw new Error("Timeline.placeRenderNodeOnTimeline requires render node type");const o=L(bF,this,KF).call(this,e,i),s=o.offset,a=!0===o.offsetPending,l=o.offsetAnchorPlacementId,c=o.offsetAnchorEdge,u=o.offsetAnchorIsReference,d=z(XM,this).claim(i.renderPlacementId),h=Number(n),f=h===Number.POSITIVE_INFINITY,p=Number.isFinite(h)&&h>0||f?h:void 0;if(!p)throw new Error("Timeline.placeRenderNodeOnTimeline requires a positive duration (seconds) or Infinity as 3rd argument");const m=i.params&&"object"==typeof i.params?i.params:void 0,v={renderPlacementId:d,type:r,offset:s,offsetPending:a,offsetAnchorPlacementId:l,offsetAnchorEdge:c,offsetAnchorIsReference:u,duration:p,params:m};if(!a){const t=s,e=s+p;Pm(z(KM,this),t,e,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements")}if(z(KM,this).push(v),Nm(z(KM,this)),a&&l){const t=z(GM,this).find((t=>(null==t?void 0:t.placementId)===l));L(bF,this,XF).call(this,null==t?void 0:t.nodeId)}return this.trigger(kd.RENDER_PLACEMENT_ADDED,v),d}get placements(){return z(GM,this).slice()}getPlacementsActiveAtTime(t){return L(bF,this,dO).call(this,t)}getNodesAtTime(t){const e=L(bF,this,gO).call(this,t);if(!Number.isFinite(e))return[];const n=L(bF,this,dO).call(this,e),i=[];return n.forEach((t=>{const e=this.getNode(null==t?void 0:t.nodeId);e&&i.push(e)})),i}getPlacementDuration(t){return L(bF,this,GF).call(this,t)}getNode(t){if(z(WM,this)&&"function"==typeof z(WM,this).get)return z(WM,this).get(t)}get renderPlacements(){return z(KM,this).slice()}get placementsAhead(){const t=this.currentTime;return z(GM,this).filter((e=>{const n=Sm(e);if(!Number.isFinite(n))return!1;const i=L(bF,this,GF).call(this,e);return"number"==typeof i?n+i>t:n>=t}))}get buffered(){return z(jM,this)?z(jM,this).buffered:{start:0,end:0}}get trackBuffers(){return z(YM,this)}onDispose(){L(bF,this,NF).call(this),z(eF,this)&&z(eF,this).clear(),z(vF,this)&&"function"==typeof z(vF,this).dispose&&z(vF,this).dispose(),j(vF,this,null),L(bF,this,AF).call(this),L(bF,this,MF).call(this),z(mF,this)&&"function"==typeof z(mF,this).dispose&&z(mF,this).dispose(),j(mF,this,null),z(qM,this)&&"function"==typeof z(qM,this).dispose&&(z(hF,this)&&"function"==typeof z(qM,this).off&&(z(qM,this).off("tick",z(hF,this)),j(hF,this,null)),z(qM,this).dispose(),j(qM,this,null)),L(bF,this,JF).call(this),j(jM,this,null),j(UM,this,null),j(GM,this,[]),j(KM,this,[]),L(bF,this,ZF).call(this),L(bF,this,tO).call(this),z(fF,this).clear(),j(pF,this,null)}notifyDecodedFrame(t={}){const e=null==t?void 0:t.placementId,n=null==t?void 0:t.trackType;if(!e||!n)return;const i=`${e}:${n}`;z(tF,this).add(i),L(bF,this,lO).call(this,t),L(bF,this,hO).call(this),z(jM,this)&&"function"==typeof z(jM,this).handleDecodedFrame&&z(jM,this).handleDecodedFrame(t)}getDecodedFrameStats(){return function(t){const e={totalBytes:0,frames:0,available:!1};if(!t||"function"!=typeof t.values)return e;for(const n of t.values()){const t=[];null!=n&&n.current&&t.push(n.current),Array.isArray(null==n?void 0:n.frames)&&t.push(...n.frames),t.forEach((t=>{const n=null==t?void 0:t.frame;if(!n||!0===n.__closed||!0===n.closed)return;e.frames+=1;const i=zM(t);Number.isFinite(i)&&i>0&&(e.totalBytes+=i)}))}return e.available=!0,e}(z(fF,this))}hasDecodedFirstFrame(t,e){return!(!t||!e)&&z(tF,this).has(`${t}:${e}`)}getDecodedVisualBuffer(t,e){if(t&&e)return z(fF,this).get(`${t}:${e}`)}computeBuffered(t){const e=z(WM,this);if(e&&"function"==typeof e.get)return z(YM,this).computeBuffered(z(GM,this),t,e)}getActiveRenderPlacement(t=this.currentTime){const e=Number.isFinite(t)?t:this.currentTime,n=Array.isArray(z(KM,this))?z(KM,this):[];if(!n.length)return;let i;for(let t=0;t<n.length;t+=1){const r=n[t];if(!0===(null==r?void 0:r.offsetPending))continue;const o="number"==typeof r.offset?r.offset:void 0;if(!Number.isFinite(o))continue;const s=r.duration;("number"==typeof s&&Number.isFinite(s)&&s>0?e>=o&&e<o+s:e>=o)&&(i=r)}return i}}function wF(){j(ZM,this,!1),this.trigger(kd.TIMELINE_RESET,{reason:"switch"}),L(bF,this,cO).call(this),z(YM,this)&&"function"==typeof z(YM,this).reset&&z(YM,this).reset(),z(eF,this)&&z(eF,this).clear(),j(GM,this,[]),j(KM,this,[]),L(bF,this,ZF).call(this),L(bF,this,tO).call(this),z(HM,this).reset(),z(XM,this).reset()}function xF(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.nodeId)continue;const i=L(bF,this,TF).call(this,n),r=L(bF,this,EF).call(this,n);this.placeOnTimeline(n.nodeId,r,i)}}function _F(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.type)continue;const i=L(bF,this,IF).call(this,n),r=L(bF,this,SF).call(this,n);this.placeRenderNodeOnTimeline(n.type,r,n.duration,i)}}function TF(t){const e={};return t.placementId&&(e.placementId=t.placementId),Number.isFinite(t.nodeOffsetOverride)&&(e.nodeOffsetOverride=t.nodeOffsetOverride),Number.isFinite(t.nodeDurationOverride)&&(e.nodeDurationOverride=t.nodeDurationOverride),!0===t.offsetPending&&(e.offsetPending=!0,t.offsetAnchorPlacementId&&(e.offsetAnchorPlacementId=t.offsetAnchorPlacementId),t.offsetAnchorEdge&&(e.offsetAnchorEdge=t.offsetAnchorEdge)),Number.isFinite(t.offsetEndSeconds)&&(e.offsetEndSeconds=t.offsetEndSeconds),!0===t.loop&&(e.loop=!0),t.loopRootPlacementId&&(e.loopRootPlacementId=t.loopRootPlacementId),Number.isFinite(t.loopRootOffset)&&(e.loopRootOffset=t.loopRootOffset),e}function IF(t){const e={};return t.renderPlacementId&&(e.renderPlacementId=t.renderPlacementId),t.params&&"object"==typeof t.params&&(e.params=t.params),e}function EF(t){if(!0===t.offsetPending&&t.offsetAnchorPlacementId&&t.offsetAnchorEdge){if(!0===t.offsetAnchorIsReference)return`${t.offsetAnchorPlacementId}@${t.offsetAnchorEdge}`;if("end"===t.offsetAnchorEdge)return Number.isFinite(t.offsetEndSeconds)&&t.offsetEndSeconds>0?-t.offsetEndSeconds:"end"}return"string"==typeof t.offset||Number.isFinite(t.offset)?t.offset:0}function SF(t){return!0===t.offsetPending&&t.offsetAnchorPlacementId&&t.offsetAnchorEdge&&!0===t.offsetAnchorIsReference?`${t.offsetAnchorPlacementId}@${t.offsetAnchorEdge}`:"string"==typeof t.offset||Number.isFinite(t.offset)?t.offset:0}function AF(){z(jM,this)&&"function"==typeof z(jM,this).exit&&z(jM,this).exit()}function NF(){z(gF,this)&&"function"==typeof this.off&&(this.off(kd.TIMELINE_SEEKED,z(gF,this)),j(gF,this,null)),z(yF,this)&&"function"==typeof this.off&&(this.off("nodestart",z(yF,this)),j(yF,this,null))}function MF(){z(YM,this)&&(z(QM,this)&&(z(YM,this).off("track:underflow",z(QM,this)),j(QM,this,null)),z(JM,this)&&(z(YM,this).off("track:ready",z(JM,this)),j(JM,this,null)),"function"==typeof z(YM,this).dispose&&z(YM,this).dispose(),j(YM,this,null))}function FF(){z(YM,this)&&"function"==typeof z(YM,this).on&&(j(QM,this,(t=>L(bF,this,PF).call(this,t))),j(JM,this,(t=>L(bF,this,DF).call(this,t))),z(YM,this).on(kd.TRACK_UNDERFLOW,z(QM,this)),z(YM,this).on(kd.TRACK_READY,z(JM,this)))}function OF(){z(qM,this)&&"function"==typeof z(qM,this).on&&(j(hF,this,(t=>L(bF,this,CF).call(this,t))),z(qM,this).on(kd.CLOCK_TICK,z(hF,this)))}function CF(t){var e,n;L(bF,this,UF).call(this),L(bF,this,hO).call(this),null!==(e=z(vF,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,this.currentTime,{isSeeking:!1}),L(bF,this,WF).call(this,this.currentTime),this.trigger(kd.TIMELINE_TIME_UPDATE,wd(this.currentTime,"clock")),z(jM,this)&&"function"==typeof z(jM,this).handleClockTick&&z(jM,this).handleClockTick(t)}function PF(t){L(bF,this,UF).call(this);const e=L(bF,this,RF).call(this);e&&(null==t?void 0:t.trackType)===e.trackType&&(z(jM,this)&&"function"==typeof z(jM,this).handleMainTrackUnderflow?z(jM,this).handleMainTrackUnderflow(t):this.transitionTo(Rv))}function DF(t){if(L(bF,this,UF).call(this),this.state!==Rv)return;const e=L(bF,this,RF).call(this);if(!e)return;if((null==t?void 0:t.trackType)!==e.trackType)return;if(z(jM,this)&&"function"==typeof z(jM,this).handleMainTrackReady)return void z(jM,this).handleMainTrackReady(t);const n=this.getLastStableState()||Lv;this.transitionTo(n)}function RF(t=this.currentTime){const e=L(bF,this,BF).call(this,t);if(!e)return;const n=z(WM,this)&&"function"==typeof z(WM,this).get?z(WM,this).get(e.nodeId):void 0;if(!n)return;const i=L(bF,this,LF).call(this,n);return i?{placement:e,trackType:i}:void 0}function LF(t){var e;const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let i;if(null!=t&&t.mainTrackId){const e=n.find((e=>(null==e?void 0:e.id)===t.mainTrackId));i=null==e?void 0:e.type}if(i||(i=null===(e=n.find((t=>null==t?void 0:t.type)))||void 0===e?void 0:e.type),"video"===i||"audio"===i||"image"===i)return i}function BF(t=this.currentTime){const e=z(GM,this)||[];let n;for(let i=0;i<e.length;i+=1){const r=e[i],o=Sm(r);if(!Number.isFinite(o))continue;const s=L(bF,this,GF).call(this,r);if(Number.isFinite(s)){if(t>=o&&t<o+s)return r}else if(t<=o)return r;!n&&t<o&&(n=r)}return n}function zF(t={}){if(this.state!==Pv)return;const e=null==t?void 0:t.placementId;if(!e)return;const n=L(bF,this,vO).call(this,e);n&&L(bF,this,jF).call(this,n)}function WF(t=this.currentTime){if(this.state!==Pv)return;const e=L(bF,this,dO).call(this,t);Array.isArray(e)&&e.length&&e.forEach((t=>L(bF,this,jF).call(this,t)))}function jF(t){const e=null==t?void 0:t.placementId;if(!e)return;if(z(eF,this).has(e))return;if(!t||!0!==t.loop)return;if(!t.nodeId)return;const n=L(bF,this,GF).call(this,t);if(!Number.isFinite(n)||n<=0)return;const i=Sm(t);if(!Number.isFinite(i))return;const r=i+n;if(!Number.isFinite(r))return;const o=t.loopRootPlacementId||t.placementId,s=Number.isFinite(t.loopRootOffset)?t.loopRootOffset:i;z(eF,this).add(e),this.placeOnTimeline(t.nodeId,r,{nodeOffsetOverride:t.nodeOffsetOverride,nodeDurationOverride:t.nodeDurationOverride,loop:!0,loopRootPlacementId:o,loopRootOffset:s})}function UF(){const t=Mm(z(GM,this),{getPlacementDuration:t=>L(bF,this,GF).call(this,t),snapPlacementOffset:(t,e)=>L(bF,this,HF).call(this,t,{nodeOffsetOverride:null==e?void 0:e.nodeOffsetOverride}),onResolvedPlacement:(t,e)=>{!0!==t.loop||Number.isFinite(t.loopRootOffset)||(t.loopRootOffset=t.offset),L(bF,this,YF).call(this,null==e?void 0:e.nodeId)}});return t.updated&&(L(bF,this,tO).call(this),t.resolvedPlacements.forEach((t=>{L(bF,this,nO).call(this,t),this.trigger(kd.PLACEMENT_ADDED,t)}))),t.updated}function $F(){if(!z(KM,this).length||!z(GM,this).length)return!1;const t=new Map;z(GM,this).forEach((e=>{(null==e?void 0:e.placementId)&&t.set(e.placementId,e)}));const e=z(KM,this).filter((t=>!0===(null==t?void 0:t.offsetPending)));if(!e.length)return!1;let n=!1;const i=[];for(let r=0;r<e.length;r+=1){const o=e[r];L(bF,this,qF).call(this,o,t)&&(n=!0,i.push(o))}return n&&(Nm(z(KM,this)),i.forEach((t=>{this.trigger(kd.RENDER_PLACEMENT_ADDED,t)}))),n}function qF(t,e){const n=null==t?void 0:t.offsetAnchorPlacementId,i=null==t?void 0:t.offsetAnchorEdge;if(!n||!i)return!1;const r=e.get(n);if(!r||!0===r.offsetPending)return!1;const o=L(bF,this,VF).call(this,r,t);if(!Number.isFinite(o))return!1;t.offset=o,t.offsetPending=!1,t.offsetAnchorPlacementId=void 0,t.offsetAnchorEdge=void 0,t.offsetAnchorIsReference=void 0;const s=t.offset,a=t.offset+t.duration;return Pm(z(KM,this).filter((e=>e!==t&&!0!==(null==e?void 0:e.offsetPending))),s,a,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements"),L(bF,this,YF).call(this,null==r?void 0:r.nodeId),!0}function VF(t,e){const n=Sm(t);if(!Number.isFinite(n))return;if("start"===e.offsetAnchorEdge)return L(bF,this,HF).call(this,n);const i=L(bF,this,GF).call(this,t);if(!(i>0))return;const r=n+i;if(!Number.isFinite(r))return;const o=L(bF,this,HF).call(this,r);return!0===e.offsetAnchorIsReference?Math.max(o,r):o}function GF(t){return Im(t,z(WM,this))}function HF(t,e={}){var n;return function(t,e={},n){const i=Number(n);if(!(i>0))return t;const r=Number(t);if(!Number.isFinite(r))return t;const o=Number.isFinite(null==e?void 0:e.nodeOffsetOverride)?e.nodeOffsetOverride:0,s=r-o;return Math.round(s*i)/i+o}(t,e,null===(n=this.settings)||void 0===n?void 0:n.snapToFps)}function KF(t,e={}){const n=Cm(t);if("string"==typeof t&&t.includes("@")&&!n)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");if(!n){const n=Fm(t);return{offset:L(bF,this,HF).call(this,n,e)}}const i=z(GM,this).find((t=>(null==t?void 0:t.placementId)===n.placementId));if(!i)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");const r=Sm(i);if("start"===n.anchor)return Number.isFinite(r)?{offset:L(bF,this,HF).call(this,r,e)}:{offset:void 0,offsetPending:!0,offsetAnchorPlacementId:i.placementId,offsetAnchorEdge:"start",offsetAnchorIsReference:!0};const o=L(bF,this,GF).call(this,i);if(!(Number.isFinite(r)&&o>0))return{offset:void 0,offsetPending:!0,offsetAnchorPlacementId:i.placementId,offsetAnchorEdge:"end",offsetAnchorIsReference:!0};const s=r+o,a=L(bF,this,HF).call(this,s,e);return{offset:Math.max(a,s)}}function XF(t){if(!t||!z(WM,this)||"function"!=typeof z(WM,this).get)return;if(z(nF,this).has(t))return;let e;try{e=z(WM,this).get(t)}catch(t){return}if(!e||"function"!=typeof e.on)return;if("ready"===e.state&&e.duration>0)return void this.updateTime(this.currentTime);const n=()=>{this.updateTime(this.currentTime),L(bF,this,YF).call(this,t)};e.on(kd.NODE_LOADED,n),z(nF,this).set(t,n)}function YF(t){if(!t)return;if(L(bF,this,QF).call(this,t))return;const e=z(nF,this).get(t);if(!e)return;let n;try{n=z(WM,this).get(t)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(kd.NODE_LOADED,e),z(nF,this).delete(t)}function QF(t){if(!t)return!1;const e=new Map;z(GM,this).forEach((t=>{(null==t?void 0:t.placementId)&&e.set(t.placementId,t)}));const n=n=>{if(null==n||!n.offsetPending||null==n||!n.offsetAnchorPlacementId)return!1;const i=e.get(n.offsetAnchorPlacementId);return(null==i?void 0:i.nodeId)===t};return!!z(GM,this).some((t=>n(t)))||!!z(KM,this).some((t=>n(t)))}function JF(){z(nF,this).size&&z(WM,this)?(z(nF,this).forEach(((t,e)=>{let n;try{n=z(WM,this).get(e)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(kd.NODE_LOADED,t)})),z(nF,this).clear()):z(nF,this).clear()}function ZF(){j(iF,this,[]),j(rF,this,0),z(oF,this).clear(),z(sF,this).clear(),j(aF,this,Number.NEGATIVE_INFINITY)}function tO(){j(lF,this,[]),j(uF,this,0),j(cF,this,Number.NEGATIVE_INFINITY)}function eO(t,e){const n=z(iF,this),i={placementId:t,endTime:e};if(!n.length||e>=n[n.length-1].endTime)return void n.push(i);const r=n.findIndex((t=>e<t.endTime)),o=-1===r?n.length:r;n.splice(o,0,i),o<z(rF,this)&&j(rF,this,z(rF,this)+1)}function nO(t){const e=null==t?void 0:t.placementId;if(!e||z(oF,this).has(e))return;const n=Sm(t),i=L(bF,this,GF).call(this,t);if(!Number.isFinite(n)||!Number.isFinite(i)||i<0)return void z(sF,this).add(e);const r=n+i;Number.isFinite(r)&&(z(oF,this).add(e),z(sF,this).delete(e),L(bF,this,eO).call(this,e,r))}function iO(){z(sF,this).size&&Array.from(z(sF,this)).forEach((t=>{const e=L(bF,this,vO).call(this,t);e?L(bF,this,nO).call(this,e):z(sF,this).delete(t)}))}function rO(t){const e=Number(t);if(!Number.isFinite(e))return;if(e<z(aF,this))return void j(aF,this,e);if(j(aF,this,e),L(bF,this,iO).call(this),!z(iF,this).length)return;const n=new Set;let i=z(rF,this);for(;i<z(iF,this).length;){const t=z(iF,this)[i];if(!t||!Number.isFinite(t.endTime)||t.endTime>e)break;t.placementId&&n.add(t.placementId),i+=1}i!==z(rF,this)&&(j(rF,this,i),n.size&&(L(bF,this,aO).call(this,n),L(bF,this,oO).call(this,n)))}function oO(t){if(t&&t.size)for(const e of z(tF,this)){const n=e.split(":")[0];t.has(n)&&z(tF,this).delete(e)}}function sO(t){const e=Array.isArray(null==t?void 0:t.frames)?t.frames:[],n=null==t?void 0:t.current;(n?[n,...e]:e).forEach((t=>{const e=null==t?void 0:t.frame;if(e&&"function"==typeof e.close)try{e.close()}catch(t){}}))}function aO(t){if(t&&t.size)for(const[e,n]of z(fF,this).entries())t.has(null==n?void 0:n.placementId)&&(L(bF,this,sO).call(this,n),z(fF,this).delete(e))}function lO(t={}){var e;const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId,r=null==t?void 0:t.trackId,o=null==t?void 0:t.segmentId,s=null==t?void 0:t.trackType;if(!(n&&i&&r&&o))return;if("video"!==s&&"image"!==s)return;const a=(null==t?void 0:t.frame)||(null==t?void 0:t.data);if(!a)return;"video"===s&&"object"==typeof a&&"function"==typeof a.close&&(a.__keepOpen=!0);const l=yM(a),c=Number.isFinite(null==l?void 0:l.width)?l.width:void 0,u=Number.isFinite(null==l?void 0:l.height)?l.height:void 0,d=Number.isFinite(null==t?void 0:t.pts)?t.pts:void 0;if(!Number.isFinite(d))return;const h=Number.isFinite(null==t?void 0:t.duration)?t.duration:void 0,f=`${n}:${r}`,p=z(fF,this).get(f),m=p||{placementId:n,nodeId:i,trackId:r,trackType:s,frames:[],current:void 0},v={placementId:n,nodeId:i,trackId:r,segmentId:o,frame:a,width:c,height:u,presentationTime:d,duration:h},g=m.frames,y=g.length?g[g.length-1]:void 0;if(!y||y.presentationTime<=v.presentationTime)g.push(v);else{let t=g.findIndex((t=>t.presentationTime>v.presentationTime));-1===t&&(t=g.length),g.splice(t,0,v)}const b=Number(null===(e=this.settings)||void 0===e?void 0:e.maxBufferedVideoFrames);if("video"===s&&Number.isFinite(b)&&b>0&&g.length>b){const t=g.length-b;for(let e=0;e<t;e+=1){const t=g.pop(),e=null==t?void 0:t.frame;if(e&&"function"==typeof e.close)try{e.close()}catch(t){}}}p||z(fF,this).set(f,m)}function cO(){for(const t of z(fF,this).values())L(bF,this,sO).call(this,t);z(fF,this).clear(),j(pF,this,null),z(tF,this).clear()}function uO(t){const e=Number.isFinite(t)?t:this.currentTime;if(!Number.isFinite(e))return;e<z(cF,this)&&(j(lF,this,[]),j(uF,this,0));const n=Array.isArray(z(GM,this))?z(GM,this):[],i=[],r=new Set;z(lF,this).forEach((t=>{L(bF,this,wO).call(this,t,e)&&(i.push(t),(null==t?void 0:t.placementId)&&r.add(t.placementId))}));let o=z(uF,this);for(;o<n.length;){const t=n[o],s=Sm(t);if(!Number.isFinite(s))break;if(s>e)break;if(L(bF,this,wO).call(this,t,e)){const e=null==t?void 0:t.placementId;e&&r.has(e)||(i.push(t),e&&r.add(e))}o+=1}j(lF,this,i),j(uF,this,o),j(cF,this,e)}function dO(t,e={}){const n=Number.isFinite(t)?t:this.currentTime,i=Number.isFinite(null==e?void 0:e.endEpsilonSeconds)?e.endEpsilonSeconds:0;return 0===i&&n===this.currentTime&&n===z(cF,this)?z(lF,this).slice():(Array.isArray(z(GM,this))?z(GM,this):[]).filter((t=>L(bF,this,wO).call(this,t,n,i)))}function hO(){const t=this.currentTime,e=L(bF,this,pO).call(this,t);if(!e.length)return void j(pF,this,null);const n=this.getActiveRenderPlacement(t),i=L(bF,this,mO).call(this,e,n);(i!==z(pF,this)||L(bF,this,fO).call(this,t,n))&&(j(pF,this,i),this.trigger(kd.VISUAL_FRAMES_AVAILABLE,{time:t,frames:e}))}function fO(t,e){const n=e||this.getActiveRenderPlacement(t);if(!n)return!1;if(!ov.doesRenderNodeTypeRequireFrameCadence(null==n?void 0:n.type))return!1;const i=n.duration;return"number"==typeof i&&i>0}function pO(t){return function(t={}){const e=t.buffers,n=t.time,i=t.getPlacementById,r=t.isPlacementActiveAtTime,o=t.getPlacementDuration,s=[];if(!e||"function"!=typeof e.entries)return[];const a=[];for(const[t,c]of e.entries()){const e=null==c?void 0:c.placementId,u="function"==typeof i?i(e):void 0;if(!u){fM(c),a.push(t);continue}if("function"==typeof r&&!r(u,n)){const e=pM(u),i="function"==typeof o?o(u):void 0;Number.isFinite(i)&&Number.isFinite(e)&&n>=e+i&&(fM(c),a.push(t));continue}const d=Array.isArray(null==c?void 0:c.frames)?c.frames:[];for(;d.length&&Number.isFinite(null===(l=d[0])||void 0===l?void 0:l.presentationTime)&&d[0].presentationTime<=n;){var l;const t=c.current,e=d.shift();c.current=e,t&&t!==e&&hM(null==t?void 0:t.frame)}if(!c.current)continue;const h={placementId:e,nodeId:c.current.nodeId,trackId:c.current.trackId,segmentId:c.current.segmentId,frame:c.current.frame,width:c.current.width,height:c.current.height,presentationTime:c.current.presentationTime,duration:c.current.duration};s.push({frame:h,placementId:e,placementOffset:pM(u),placementSortOffset:mM(u),placementSortId:vM(u,e)})}return a.forEach((t=>{e.delete(t)})),s.sort(((t,e)=>{const n=Number.isFinite(null==t?void 0:t.placementSortOffset)?t.placementSortOffset:Number.isFinite(null==t?void 0:t.placementOffset)?t.placementOffset:0,i=Number.isFinite(null==e?void 0:e.placementSortOffset)?e.placementSortOffset:Number.isFinite(null==e?void 0:e.placementOffset)?e.placementOffset:0;if(n!==i)return n-i;const r=(null==t?void 0:t.placementSortId)||(null==t?void 0:t.placementId),o=(null==e?void 0:e.placementSortId)||(null==e?void 0:e.placementId),s=gM(r),a=gM(o);return Number.isFinite(s)&&Number.isFinite(a)&&s!==a?s-a:r&&o&&r!==o?r<o?-1:1:function(t,e){const n=(null==t?void 0:t.frame)||{},i=(null==e?void 0:e.frame)||{};return n.trackId!==i.trackId?n.trackId<i.trackId?-1:1:n.nodeId!==i.nodeId?n.nodeId<i.nodeId?-1:1:n.segmentId!==i.segmentId?n.segmentId<i.segmentId?-1:1:("number"==typeof n.presentationTime?n.presentationTime:0)-("number"==typeof i.presentationTime?i.presentationTime:0)}(t,e)})),s.map((t=>t.frame))}({buffers:z(fF,this),time:t,getPlacementById:t=>L(bF,this,vO).call(this,t),isPlacementActiveAtTime:(t,e)=>L(bF,this,wO).call(this,t,e),getPlacementDuration:t=>L(bF,this,GF).call(this,t)})}function mO(t,e){return`${e?`render:${e.renderPlacementId||e.type||"unknown"}`:"render:default"}|${t.map((t=>`${t.nodeId}:${t.trackId}:${t.segmentId}@${t.presentationTime}`)).join("|")}`}function vO(t){if(t)return(z(GM,this)||[]).find((e=>(null==e?void 0:e.placementId)===t))}function gO(t){if("end"===t){const t=L(bF,this,yO).call(this);if(!Number.isFinite(t))return;const e=L(bF,this,bO).call(this);return Math.max(0,t-Math.min(t,e))}const e=Number(t);return Number.isFinite(e)?e:0}function yO(){let t;return(Array.isArray(z(GM,this))?z(GM,this):[]).forEach((e=>{const n=Sm(e);if(!Number.isFinite(n))return;const i=L(bF,this,GF).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}function bO(){const t=L(bF,this,kO).call(this);return t>0?t:.001}function kO(){var t;const e=Number(null===(t=this.settings)||void 0===t?void 0:t.snapToFps);return!Number.isFinite(e)||e<=0?0:.5/e}function wO(t,e,n=0){if(!Am(t,e,z(WM,this)))return!1;const i=Number(n);if(!Number.isFinite(i)||i<=0)return!0;const r=L(bF,this,GF).call(this,t);if(!Number.isFinite(r))return!0;const o=Sm(t);return!Number.isFinite(o)||e<o+r-i}var xO=new WeakMap,_O=new WeakMap,TO=new WeakMap,IO=new WeakMap,EO=new WeakMap,SO=new WeakMap,AO=new WeakMap,NO=new WeakMap,MO=new WeakMap,FO=new WeakMap,OO=new WeakMap,CO=new WeakMap,PO=new WeakMap,DO=new WeakMap,RO=new WeakMap,LO=new WeakMap,BO=new WeakMap,zO=new WeakSet;class WO extends md{get name(){return"QoE"}get defaults(){return{calcScoreInterval:1,streamQualityWeight:.8,fpsWeight:.2,fpsMathFuncType:"quad",bestFpsMobile:27,bestFpsDesktop:57,waitingMultiplier:1,statusFloors:{excellent:.98,good:.85,fair:.7,poor:0,alert:0},alertStatusCeil:.3,fpsGracePeriod:2,windowSeconds:30}}constructor(...t){super(...t),U(this,zO),W(this,xO,void 0),W(this,_O,void 0),W(this,TO,1),W(this,IO,1),W(this,EO,1),W(this,SO,""),W(this,AO,0),W(this,NO,[]),W(this,MO,null),W(this,FO,void 0),W(this,OO,[]),W(this,CO,null),W(this,PO,null),W(this,DO,0),W(this,RO,0),W(this,LO,0),W(this,BO,void 0);const[e]=t;j(xO,this,e),j(DO,this,jy()),j(BO,this,L(zO,this,jO).call(this)),L(zO,this,UO).call(this),L(zO,this,$O).call(this),L(zO,this,KO).call(this),L(zO,this,GO).call(this)}get publicAPI(){return z(BO,this)}calcScore(){L(zO,this,iC).call(this)}onDispose(){z(xO,this)&&z(_O,this)&&"function"==typeof z(xO,this).off&&z(xO,this).off(kd.TIMELINE_PLAYER_STATE,z(_O,this)),j(_O,this,null),L(zO,this,HO).call(this),L(zO,this,XO).call(this),j(xO,this,null),j(OO,this,[]),j(NO,this,[]),j(BO,this,null)}}function jO(){const t=this;return{get score(){return z(TO,t)},get status(){return z(SO,t)},get streamQualityScore(){return z(IO,t)},get fpsScore(){return z(EO,t)},get browserFps(){return z(AO,t)},get waitingSeconds(){return z(RO,t)/1e3},get playingSeconds(){return z(LO,t)/1e3}}}function UO(){Number(this.settings.streamQualityWeight)+Number(this.settings.fpsWeight)!==1&&(this.log.warn("QoE weights must sum to 1; resetting to legacy defaults."),this.settings.streamQualityWeight=.8,this.settings.fpsWeight=.2)}function $O(){z(xO,this)&&"function"==typeof z(xO,this).on&&(j(_O,this,(t=>L(zO,this,qO).call(this,t))),z(xO,this).on(kd.TIMELINE_PLAYER_STATE,z(_O,this)))}function qO(t={}){const e="string"==typeof(null==t?void 0:t.event)?t.event:"";"playing"!==e?"waiting"!==e?"pause"!==e&&"seeking"!==e&&"seeked"!==e&&"reset"!==e||L(zO,this,VO).call(this,null):L(zO,this,VO).call(this,"waiting"):L(zO,this,VO).call(this,"playing")}function VO(t){if(t===z(CO,this))return;const e=jy();z(CO,this)&&Number.isFinite(z(PO,this))&&z(OO,this).push({state:z(CO,this),startMs:z(PO,this),endMs:e}),j(CO,this,t),j(PO,this,t?e:null),L(zO,this,JO).call(this,e)}function GO(){const t=Number(this.settings.calcScoreInterval);!Number.isFinite(t)||t<=0||(j(FO,this,(()=>L(zO,this,iC).call(this))),Tw(z(FO,this),1e3*t))}function HO(){z(FO,this)&&Iw(z(FO,this)),j(FO,this,null)}function KO(){if("function"!=typeof pw)return;const t=()=>{if(this._disposed)return;const e=jy();j(AO,this,L(zO,this,YO).call(this,z(NO,this),e)),j(MO,this,pw(t))};j(MO,this,pw(t))}function XO(){z(MO,this)&&"function"==typeof mw&&mw(z(MO,this)),j(MO,this,null)}function YO(t,e){const n=L(zO,this,QO).call(this);for(t.push(e);t.length&&e-t[0]>n;)t.shift();if(t.length<2)return 0;const i=t[t.length-1]-t[0];return i<=0?0:1e3*(t.length-1)/i}function QO(){const t=Number(this.settings.windowSeconds);return!Number.isFinite(t)||t<=0?3e4:1e3*t}function JO(t){const e=t-L(zO,this,QO).call(this);for(;z(OO,this).length&&z(OO,this)[0].endMs<=e;)z(OO,this).shift()}function ZO(t){const e=t-L(zO,this,QO).call(this);let n=0,i=0;const r=(r,o,s)=>{const a=Math.max(o,e),l=Math.min(s,t);l<=a||("waiting"===r?n+=l-a:"playing"===r&&(i+=l-a))};return z(OO,this).forEach((t=>{r(t.state,t.startMs,t.endMs)})),z(CO,this)&&Number.isFinite(z(PO,this))&&r(z(CO,this),z(PO,this),t),j(RO,this,n),j(LO,this,i),{waitingMs:n,playingMs:i}}function tC(t,e){if(t<=0)return 1;if(t>e)return 0;const n=e||1;return _m(1-t*this.settings.waitingMultiplier/n)}function eC(){if(jy()-z(DO,this)<=1e3*this.settings.fpsGracePeriod)return 1;const t=Number(z(AO,this)),e=Fv.isDesktop()?this.settings.bestFpsDesktop:this.settings.bestFpsMobile,n=_m(e>0?t/e:0);return"quad"===this.settings.fpsMathFuncType?n*n:n}function nC(t,e){const n=this.settings.statusFloors||{};let i="";return t>=n.excellent?i="excellent":t>=n.good?i="good":t>=n.fair?i="fair":(i="poor",t<=this.settings.alertStatusCeil&&e>0&&(i="alert")),i}function iC(){const t=jy(),{waitingMs:e,playingMs:n}=L(zO,this,ZO).call(this,t),i=L(zO,this,tC).call(this,e,n),r=L(zO,this,eC).call(this),o=_m(i*this.settings.streamQualityWeight+r*this.settings.fpsWeight);o!==z(TO,this)&&(j(TO,this,o),this.trigger(kd.QOE_SCORE,o)),j(IO,this,i),j(EO,this,r);const s=L(zO,this,nC).call(this,o,e);s!==z(SO,this)&&(j(SO,this,s),this.trigger(kd.QOE_STATUS,s))}function rC(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function oC(t){const e=Number(t);return!Number.isFinite(e)||e<0?0:e}var sC=new WeakMap,aC=new WeakMap,lC=new WeakMap,cC=new WeakMap,uC=new WeakSet;class dC extends md{get name(){return"SegmentEvictionCoordinator"}get defaults(){return{enabled:rb("segmentEvictionEnabled"),bufferBehindSeconds:rb("segmentEvictionBufferBehindSeconds"),bufferAheadSeconds:rb("segmentEvictionBufferAheadSeconds"),maxRetainedBytes:rb("segmentEvictionMaxRetainedBytes")}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"evictAtTime"])}constructor(t,e,n={}){super(n),U(this,uC),W(this,sC,void 0),W(this,aC,void 0),W(this,lC,void 0),W(this,cC,void 0),j(sC,this,t),j(aC,this,e),j(lC,this,(t=>L(uC,this,hC).call(this,t))),j(cC,this,(t=>L(uC,this,fC).call(this,t))),z(sC,this)&&"function"==typeof z(sC,this).on&&(z(sC,this).on(kd.TIMELINE_TIME_UPDATE,z(lC,this)),z(sC,this).on(kd.TIMELINE_SEEKED,z(cC,this)))}onDispose(){z(sC,this)&&"function"==typeof z(sC,this).off&&(z(sC,this).off(kd.TIMELINE_TIME_UPDATE,z(lC,this)),z(sC,this).off(kd.TIMELINE_SEEKED,z(cC,this))),j(sC,this,null),j(aC,this,null),j(lC,this,null),j(cC,this,null)}evictAtTime(t){if(!0!==this.settings.enabled)return;const e=Number(t);if(!Number.isFinite(e))return;const n=oC(this.settings.bufferBehindSeconds),i=oC(this.settings.bufferAheadSeconds),r=e-n,o=e+i,s=L(uC,this,pC).call(this);if(!s.length)return;const a=Number(this.settings.maxRetainedBytes);if(Number.isFinite(a)&&a>0&&L(uC,this,mC).call(this,s)<=a)return;const l=new Map;s.forEach((t=>{const e=null==t?void 0:t.nodeId;if(!e)return;const n=Sm(t);if(!Number.isFinite(n))return;const i=l.get(e)||[];i.push(t),l.set(e,i)})),l.size&&l.forEach(((t,e)=>{const n=L(uC,this,vC).call(this,e);if(!n)return;const i=t.filter((t=>L(uC,this,gC).call(this,t,r,o)));i.length?L(uC,this,yC).call(this,n,i,r,o):"function"==typeof n.evict&&n.evict()}))}}function hC(t){var e,n;if(!0!==this.settings.enabled)return;if((null===(e=z(sC,this))||void 0===e?void 0:e.state)===Bv)return;const i=Number(null==t?void 0:t.time),r=Number.isFinite(i)?i:Number(null===(n=z(sC,this))||void 0===n?void 0:n.currentTime);this.evictAtTime(r)}function fC(t){var e;if(!0!==this.settings.enabled)return;const n=Number(null==t?void 0:t.targetTime),i=Number.isFinite(n)?n:Number(null===(e=z(sC,this))||void 0===e?void 0:e.currentTime);this.evictAtTime(i)}function pC(){var t;const e=null===(t=z(sC,this))||void 0===t?void 0:t.placements;return Array.isArray(e)?e:[]}function mC(t){if(!Array.isArray(t)||!t.length)return 0;const e=new Set;let n=0;return t.forEach((t=>{const i=null==t?void 0:t.nodeId;if(!i||e.has(i))return;e.add(i);const r=L(uC,this,vC).call(this,i),o=Number(null==r?void 0:r.retainedByteLength);my(o)?n+=o:(Array.isArray(null==r?void 0:r.tracks)?r.tracks:[]).forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{my(null==t?void 0:t.retainedByteLength)&&(n+=t.retainedByteLength)}))}))})),n}function vC(t){if(z(aC,this)&&"function"==typeof z(aC,this).get)return z(aC,this).get(t)}function gC(t,e,n){const i=Sm(t);if(!Number.isFinite(i))return!1;const r=Im(t,z(aC,this));return(Number.isFinite(r)?i+r:Number.POSITIVE_INFINITY)>e&&i<n}function yC(t,e,n,i){const r=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];r.length&&r.forEach((t=>{const r=Array.isArray(null==t?void 0:t.segments)?t.segments:[],o=rC(null==t?void 0:t.offset,0);r.forEach((t=>{if(!t||!my(null==(r=t)?void 0:r.retainedByteLength))return;var r;if(t.isInit)return;let s=!1;for(let r=0;r<e.length;r+=1){const a=e[r],l=Sm(a);if(!Number.isFinite(l))continue;const c=rC(null==a?void 0:a.nodeOffsetOverride,0),u=rC(null==t?void 0:t.offset,NaN);if(!Number.isFinite(u))continue;const d=rC(null==t?void 0:t.duration,0),h=l+o+u-c,f=h+(d>0?d:0),p=Im(a,z(aC,this)),m=Number.isFinite(p)?l+p:Number.POSITIVE_INFINITY;if(!(f<=l||h>=m||f<=n||h>=i)){s=!0;break}}s||t.evict()}))}))}var bC=new WeakMap,kC=new WeakMap,wC=new WeakMap,xC=new WeakSet;class _C extends md{get name(){return"DocumentVisibility"}get defaults(){return{autoPauseOnVisibilityChange:!0,autoResumeOnVisibilityChange:!0}}constructor(t,e={}){super(e),U(this,xC),W(this,bC,void 0),W(this,kC,null),W(this,wC,!1),j(bC,this,t),L(xC,this,TC).call(this)}onDispose(){L(xC,this,IC).call(this),j(bC,this,null),j(wC,this,!1)}}function TC(){const t=null==yd?void 0:yd.document;t&&"function"==typeof t.addEventListener&&(j(kC,this,(()=>L(xC,this,EC).call(this))),t.addEventListener("visibilitychange",z(kC,this)))}function IC(){const t=null==yd?void 0:yd.document;z(kC,this)&&t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",z(kC,this)),j(kC,this,null)}function EC(){const t=null==yd?void 0:yd.document,e=null==t?void 0:t.visibilityState;"string"==typeof e&&("hidden"!==e?"visible"===e&&L(xC,this,AC).call(this):L(xC,this,SC).call(this))}function SC(){var t;(null===(t=this.settings)||void 0===t?void 0:t.autoPauseOnVisibilityChange)&&z(bC,this)&&"function"==typeof z(bC,this).pause&&(z(bC,this).state===Pv?(this.log.info("[#handleHidden] Pausing timeline due to document visibility change"),z(bC,this).pause(),j(wC,this,!0)):j(wC,this,!1))}function AC(){var t;z(wC,this)&&(null===(t=this.settings)||void 0===t?void 0:t.autoResumeOnVisibilityChange)&&z(bC,this)&&"function"==typeof z(bC,this).play&&(z(bC,this).state!==Pv?(this.log.info("[#handleVisible] Resuming timeline due to document visibility change"),z(bC,this).play(),j(wC,this,!1)):j(wC,this,!1))}const NC=[{event:"canplay",once:!0,trackAs:"canplay"},{event:"playing",once:!0,trackAs:"startedplaying"},"seeked","canvas.webglcontextlost"];function MC(t,e=0){return Number.isFinite(t)?t:e}function FC(t){const e=null==t?void 0:t.exposedPlayerAPI;return e&&"object"==typeof e?e:t}const OC=[function(t){return{schema:"iglu:com.helloeko/player/jsonschema/1-0-7",match:/^.*$/,getData:()=>{var e,n,i;const r=function(t){const e=null==t?void 0:t.exposedPlayerAPI;return e&&"object"==typeof e?e:t}(t);return{playerversion:"string"==typeof(null==r?void 0:r.version)?r.version:"0.0.0",isautoplay:!(null==r||null===(e=r.options)||void 0===e||!e.autoplay),playerqoe:MC(null==r||null===(n=r.qoe)||void 0===n?void 0:n.score),playerqoestatus:"string"==typeof(null==r||null===(i=r.qoe)||void 0===i?void 0:i.status)?r.qoe.status:"",ismuted:!(null==r||!r.muted),playervolume:MC(null==r?void 0:r.volume),playercontainerwidth:MC(null==r?void 0:r.containerWidth),playercontainerheight:MC(null==r?void 0:r.containerHeight)}}}},function(t){return{schema:"iglu:com.helloeko/currentnode/jsonschema/1-0-2",match:/^.*$/,getData:()=>{var e;const n=FC(t),i=function(t){const e=FC(t);if(!e||"function"!=typeof e.getNodesAtTime)return null;const n=Number.isFinite(e.currentTime)?e.currentTime:0,i=e.getNodesAtTime(n);return Array.isArray(i)&&0!==i.length&&i[0]||null}(t);return{currentnodeid:"string"==typeof(null==i?void 0:i.id)?i.id:"",currentnodetime:Number.isFinite(null==n?void 0:n.currentTime)?n.currentTime:0,currentnodeduration:Number.isFinite(null==i?void 0:i.duration)?i.duration:0,currentnodeprofile:"string"==typeof(null==i||null===(e=i.metadata)||void 0===e?void 0:e.profile)?i.metadata.profile:""}}}},function(t){let e=0,n=0;const i=()=>{e||(e=Date.now(),n=0)},r=()=>{e&&!n&&(n=Date.now())};return t&&"function"==typeof t.on&&(t.on("seeking",i),t.on("seeked",r)),{schema:"iglu:com.helloeko/seeked/jsonschema/1-0-0",match:"seeked",getData:()=>{r();const t=e&&n&&n>=e?(n-e)/1e3:0;return e=0,n=0,{seekduration:t}},dispose:()=>{t&&"function"==typeof t.off&&(t.off("seeking",i),t.off("seeked",r))}}},function(){return{schema:"iglu:com.helloeko/environment/jsonschema/1-0-0",match:/^.*$/,getData:()=>{var t;const e=null==yd||null===(t=yd.eko)||void 0===t||null===(t=t.environment)||void 0===t?void 0:t.embeddingApp;return e?{embeddingapp:e}:{}}}}],CC=Object.freeze({once:!1,trackAs:""});var PC=new WeakMap,DC=new WeakMap,RC=new WeakMap,LC=new WeakMap,BC=new WeakMap,zC=new WeakMap,WC=new WeakSet;class jC extends md{get name(){return"Tracker"}get defaults(){return{tag:null,trackingEnabled:rb("trackingEnabled"),defaultForwarders:NC,defaultContextPackers:OC}}constructor(t,e={}){var n,i;super(e),U(this,WC),W(this,PC,void 0),W(this,DC,new Map),W(this,RC,[]),W(this,LC,!1),W(this,BC,void 0),W(this,zC,void 0),j(zC,this,!this.settings.tag),j(BC,this,this.settings.tag||(null===(n=crypto)||void 0===n||null===(i=n.randomUUID)||void 0===i?void 0:i.call(n))||`eko-player-${Date.now()}`),j(PC,this,t),L(WC,this,KC).call(this),L(WC,this,$C).call(this)}track(t,...e){if(!this.settings.trackingEnabled)return;if("string"!=typeof t||!t)return void this.log.warn("[track] Expected event to be a non-empty string.");const n=L(WC,this,YC).call(this);n&&n("track",t,...e,z(BC,this))}registerContextPacker(t){if(!t||"object"!=typeof t)return void this.log.warn("[registerContextPacker] Expected a packer object.");const e={tag:z(BC,this),schema:t.schema,match:t.match,getData:L(WC,this,UC).call(this,t.getData)};if("string"!=typeof e.schema||!e.schema)return void this.log.warn('[registerContextPacker] Expected "schema" to be a non-empty string.');if("function"!=typeof e.getData)return void this.log.warn('[registerContextPacker] Expected "getData" to be a function.');if(!this.settings.trackingEnabled)return;const n=L(WC,this,YC).call(this);n&&n("registerContextPacker",e)}onDispose(){if(L(WC,this,HC).call(this),L(WC,this,XC).call(this),j(PC,this,null),z(zC,this)){const t=L(WC,this,YC).call(this);t&&(t("reset",z(BC,this)),j(BC,this,null))}}}function UC(t){return"function"!=typeof t?null:(...e)=>e.pop()!==z(BC,this)?null:t(...e)}function $C(){(Array.isArray(this.settings.defaultForwarders)?this.settings.defaultForwarders:[]).forEach((t=>L(WC,this,qC).call(this,t)))}function qC(t){const e=L(WC,this,VC).call(this,t);if(!e)return void this.log.warn("[#addEventForwarder] Invalid forwarder input.",t);const n=z(PC,this);if(!n||"function"!=typeof n.on)return;const i=L(WC,this,GC).call(this,e);if(z(DC,this).has(i))return;const r=(...t)=>{e.once&&n&&"function"==typeof n.off&&n.off(e.event,r);const i=e.trackAs||e.event;this.track(i,...t)};n.on(e.event,r),z(DC,this).set(i,{event:e.event,listener:r})}function VC(t){return"string"==typeof t&&t?{event:t,...CC}:t&&"object"==typeof t&&"string"==typeof t.event&&t.event?{event:t.event,once:!!t.once,trackAs:"string"==typeof t.trackAs?t.trackAs:""}:null}function GC({event:t,once:e,trackAs:n}){return`${t}:${e}:${n}`}function HC(){const t=z(PC,this);t&&"function"==typeof t.off&&z(DC,this).forEach((({event:e,listener:n})=>{t.off(e,n)})),z(DC,this).clear()}function KC(){(Array.isArray(this.settings.defaultContextPackers)?this.settings.defaultContextPackers:[]).forEach((t=>{if("function"!=typeof t)return;const e=t(z(PC,this),this);e&&"object"==typeof e&&("function"==typeof e.dispose&&z(RC,this).push(e.dispose),e.disabled||this.registerContextPacker({schema:e.schema,match:e.match,getData:e.getData}))}))}function XC(){z(RC,this).forEach((t=>{try{t()}catch(t){this.log.warn("[#teardownContextPackers] Failed disposing context packer.",t)}})),j(RC,this,[])}function YC(){const t=null==yd?void 0:yd.EkoAnalytics;return"function"==typeof t?t:(L(WC,this,QC).call(this),null)}function QC(){this.settings.trackingEnabled&&!z(LC,this)&&(this.log.warn("EkoAnalytics not found on window."),j(LC,this,!0))}class JC{#et;#nt;#it;#rt;#ot;#st;#at;#lt;#ct;#ut;#dt;#ht;#ft;#pt;#mt;#vt;#gt;#yt;#bt;constructor(t,e={},n=null){this.#et=new Od(t,n,e),this.#nt=new $d(this.#et,e),this.#it=new sw(e),this.#rt=new db(e),this.#ot=new jk(this.#rt,e),this.#st=new Rk(this.#ot,this.#it,e),this.#at=new Xk(this.#st,e),this.#lt=new kF(this.#st,e),this.#ct=new _C(this.#lt,e),this.#yt=new dC(this.#lt,this.#st,e),this.#ut=new Gw(this.#st,this.#at,this.#it,this.#lt,e),this.#dt=new Ox(this.#st,this.#at,this.#lt,e),this.#ht=new UE(e),this.#ft=new fS(this.#st,this.#lt,this.#ht,e),this.#mt=new WO(this.#lt,e),this.#bt=new jC(n,e);const i=e&&"object"==typeof e?e.adapters:null,r=i&&"object"==typeof i&&"function"==typeof i.renderAdapterFactory?i.renderAdapterFactory:null,o=i&&"object"==typeof i&&"function"==typeof i.audioAdapterFactory?i.audioAdapterFactory:null;this.#vt=r?r({timeline:this.#lt,canvas:this.#et,containerSize:this.#nt,options:e}):new Ag(this.#lt,this.#et,this.#nt,e),this.#pt=o?o({timeline:this.#lt,decodeCoordinator:this.#ft,options:e}):new XA(this.#lt,this.#ft,e),this.#gt=new mA(this.#lt,this.#vt,e)}get canvas(){return this.#et}get containerSize(){return this.#nt}get assetsDeliveryService(){return this.#it}get downloadSpeed(){return this.#rt}get abrSelector(){return this.#ot}get nodeRepository(){return this.#st}get nodePrioritizer(){return this.#at}get timeline(){return this.#lt}get documentVisibility(){return this.#ct}get nodeResolver(){return this.#ut}get segmentLoadCoordinator(){return this.#dt}get decoderFactory(){return this.#ht}get parsingManager(){return this.#ft}get audioAdapter(){return this.#pt}get audioPlaybackManager(){return this.#pt}get qoe(){return this.#mt}get renderAdapter(){return this.#vt}get renderer(){return this.#vt}get transitionManager(){return this.#gt}get tracker(){return this.#bt}dispose(){[this.#bt,this.#lt,this.#ct,this.#dt,this.#ut,this.#at,this.#st,this.#it,this.#ot,this.#rt,this.#ft,this.#ht,this.#pt,this.#mt,this.#vt,this.#gt,this.#yt,this.#nt,this.#et].forEach((t=>{t&&"function"==typeof t.dispose&&t.dispose()})),this.#lt=null,this.#ct=null,this.#dt=null,this.#ut=null,this.#at=null,this.#st=null,this.#it=null,this.#ot=null,this.#rt=null,this.#ft=null,this.#ht=null,this.#pt=null,this.#mt=null,this.#vt=null,this.#gt=null,this.#yt=null,this.#et=null,this.#bt=null}}const ZC="devops.1196031";var tP={isPlainObject:ud,deepMerge:dd,get:Ly,set:By,ekoGlobalStore:zy,download:tb,isPositiveNumber:my,clamp01:_m,root:yd,now:jy,getFrameDimensions:yM,useragent:Ov,requestAnimationFrame:pw,cancelAnimationFrame:mw,start:Tw,stop:Iw,isTicking:Ew,predicator:function(t,e){const n=e||{};if("function"!=typeof t)return void vw.error("[predicator] Bad argument given to predicator, first argument must be a function.",arguments);if(t.apply())return vw.debug("[predicator] Invoking onFulfilled immediately."),void("function"==typeof n.onFulfilled&&n.onFulfilled.call(null,0));const i=n.timeout||1e4,r=n.interval,o=jy();let s,a,l,c,u;c=function(){t.apply()&&l()},l=function(){Iw(c),yd.clearTimeout(s),u=jy()-o,vw.debug("[predicator] Invoking onFulfilled after "+u+" ms."),"function"==typeof n.onFulfilled&&n.onFulfilled.call(null,u)},a=function(){Iw(c),u=jy()-o,vw.debug("[predicator] Invoking onTimeout after "+u+" ms."),"function"==typeof n.onTimeout&&n.onTimeout.call(null,u)},s=yd.setTimeout(a,i),Tw(c,r)},createThrottler:Sw,scheduleExecution:Aw},eP=new WeakMap,nP=new WeakMap,iP=new WeakMap,rP=new WeakMap,oP=new WeakMap,sP=new WeakMap,aP=new WeakMap,lP=new WeakSet;class cP{constructor(t){U(this,lP),W(this,eP,[]),W(this,nP,[]),W(this,iP,new LM("placement-")),W(this,rP,new LM("renderplacement-")),W(this,oP,void 0),W(this,sP,new Map),W(this,aP,void 0),j(oP,this,t),j(aP,this,{allowUnready:!0,getNode:t=>L(lP,this,uP).call(this,t)})}get placements(){return z(eP,this).slice()}get renderPlacements(){return z(nP,this).slice()}getNodesAtTime(t){L(lP,this,dP).call(this);const e=L(lP,this,fP).call(this,t);if(!Number.isFinite(e))return[];const n=z(eP,this).filter((t=>Am(t,e,null,z(aP,this)))),i=[];return n.forEach((t=>{const e=L(lP,this,uP).call(this,null==t?void 0:t.nodeId);e&&i.push(e)})),i}placeOnTimeline(t,e,n={}){const i=t&&"object"==typeof t?t:null,r=i?i.id:t;if(!r)throw new Error("TimelineDefinition.placeOnTimeline requires node id");i&&z(sP,this).set(r,i);const o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=Cm(e);if("string"==typeof e&&e.includes("@")&&!a)throw new Error("TimelineDefinition.placeOnTimeline requires valid placement reference");const{wantsEndOffset:l,endOffsetSeconds:c}=a?{wantsEndOffset:!1}:Om(e,n);let u,d,h,f=!1;const p=null!==a;if(a){const t=z(eP,this).find((t=>(null==t?void 0:t.placementId)===a.placementId));if(!t)throw new Error("TimelineDefinition.placeOnTimeline requires valid placement reference");d=t.placementId,h=a.anchor;const e=Sm(t);if("start"===a.anchor)Number.isFinite(e)?u=e:f=!0;else{const n=L(lP,this,hP).call(this,t);Number.isFinite(e)&&n>0?u=e+n:f=!0}}else if(l){const t=n.offsetAnchorPlacementId?z(eP,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):z(eP,this).length?z(eP,this)[z(eP,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=Sm(t),n=L(lP,this,hP).call(this,t);Number.isFinite(e)&&n>0?u=e+n-c:(f=!0,h="end")}else u=-c}else u=Fm(e);const m=z(iP,this).claim(n.placementId),v={placementId:m,nodeId:r,offset:u,offsetPending:f,offsetAnchorPlacementId:f?d:void 0,offsetAnchorEdge:f?h:void 0,offsetAnchorIsReference:f?p:void 0,offsetEndSeconds:l?c:a&&"end"===a.anchor?0:void 0,nodeOffsetOverride:o,nodeDurationOverride:s,loop:!0===n.loop};return z(eP,this).push(v),Nm(z(eP,this)),m}placeRenderNodeOnTimeline(t,e,n,i={}){const r="string"==typeof t?t:null==t?void 0:t.type;if(!r||"string"!=typeof r)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires render node type");let o,s,a,l=!1;const c=Cm(e);if("string"==typeof e&&e.includes("@")&&!c)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires valid placement reference");const u=null!==c;if(c){const t=z(eP,this).find((t=>(null==t?void 0:t.placementId)===c.placementId));if(!t)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires valid placement reference");s=t.placementId,a=c.anchor;const e=Sm(t);if("start"===c.anchor)Number.isFinite(e)?o=e:l=!0;else{const n=L(lP,this,hP).call(this,t);Number.isFinite(e)&&Number.isFinite(n)?o=e+n:l=!0}}else o=Fm(e);const d=z(rP,this).claim(i.renderPlacementId),h=Number(n),f=h===Number.POSITIVE_INFINITY,p=Number.isFinite(h)&&h>0||f?h:void 0;if(!p)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires a positive duration (seconds) or Infinity as 3rd argument");const m={renderPlacementId:d,type:r,offset:o,offsetPending:l,offsetAnchorPlacementId:l?s:void 0,offsetAnchorEdge:l?a:void 0,offsetAnchorIsReference:l?u:void 0,duration:p,params:i.params&&"object"==typeof i.params?i.params:void 0};if(!l){const t=o,e=o+p;Pm(z(nP,this),t,e,"TimelineDefinition.placeRenderNodeOnTimeline does not allow overlapping render nodes")}return z(nP,this).push(m),Nm(z(nP,this)),d}}function uP(t){if(t)return z(oP,this)&&"function"==typeof z(oP,this).get?z(oP,this).get(t):z(sP,this).get(t)}function dP(){return Mm(z(eP,this),{getPlacementDuration:t=>L(lP,this,hP).call(this,t)}).updated}function hP(t){return Im(t,null,z(aP,this))}function fP(t){if("end"===t){const t=L(lP,this,pP).call(this);if(!Number.isFinite(t))return;return Math.max(0,t-Math.min(t,.001))}const e=Number(t);return Number.isFinite(e)?e:0}function pP(){let t;return z(eP,this).forEach((e=>{const n=Sm(e);if(!Number.isFinite(n))return;const i=L(lP,this,hP).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}const mP=new Set(["canplay","play","playing","waiting","pause","seeking","seeked"]);var vP=new WeakMap,gP=new WeakMap,yP=new WeakMap,bP=new WeakMap,kP=new WeakMap,wP=new WeakMap,xP=new WeakMap,_P=new WeakMap,TP=new WeakMap,IP=new WeakMap,EP=new WeakMap,SP=new WeakMap,AP=new WeakMap,NP=new WeakMap,MP=new WeakMap,FP=new WeakMap,OP=new WeakMap,CP=new WeakMap,PP=new WeakMap,DP=new WeakMap,RP=new WeakMap,LP=new WeakMap,BP=new WeakMap,zP=new WeakMap,WP=new WeakMap,jP=new WeakSet;class UP extends md{get name(){return"EkoPlayer"}get exposedPlayerAPI(){return z(bP,this)}constructor(t,e={}){const{options:n,publicOptions:i}=function(t={}){const e=dd({},nb,t);Object.entries(eb).forEach((([t,{targetPaths:n}])=>{void 0!==e[t]&&n.forEach((n=>{void 0===Ly(e,n)&&By(e,n,e[t])}))}));const n=function(t){const e={};return Object.keys(eb).forEach((n=>{Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})),Object.freeze(e)}(e);return ib.info("Processed options:",e),ib.info("Public options:",n),{options:e,publicOptions:n}}(e);return super(n),U(this,jP),W(this,vP,void 0),W(this,gP,void 0),W(this,yP,void 0),W(this,bP,void 0),W(this,kP,void 0),W(this,wP,void 0),W(this,xP,void 0),W(this,_P,void 0),W(this,TP,void 0),W(this,IP,void 0),W(this,EP,void 0),W(this,SP,void 0),W(this,AP,void 0),W(this,NP,void 0),W(this,MP,void 0),W(this,FP,void 0),W(this,OP,void 0),W(this,CP,void 0),W(this,PP,void 0),W(this,DP,void 0),W(this,RP,void 0),W(this,LP,void 0),W(this,BP,void 0),W(this,zP,void 0),W(this,WP,0),j(yP,this,i),this.log.info("Initializing EkoPlayer with options:",i),j(SP,this,new JC(t,n,this)),L(jP,this,JP).call(this,z(SP,this)),j(MP,this,(t=>L(jP,this,$P).call(this,t))),z(gP,this)&&"function"==typeof z(gP,this).on&&z(gP,this).on(kd.TIMELINE_CUEPOINT,z(MP,this)),j(FP,this,null),j(CP,this,(t=>L(jP,this,qP).call(this,t))),j(PP,this,(t=>{const e=t&&"object"==typeof t?t:{};L(jP,this,qP).call(this,{...e,event:"seeking"})})),j(DP,this,(t=>{const e=t&&"object"==typeof t?t:{};L(jP,this,qP).call(this,{...e,event:"seeked"})})),z(gP,this)&&"function"==typeof z(gP,this).on&&(z(gP,this).on(kd.TIMELINE_PLAYER_STATE,z(CP,this)),z(gP,this).on(kd.TIMELINE_SEEKING,z(PP,this)),z(gP,this).on(kd.TIMELINE_SEEKED,z(DP,this))),j(BP,this,(t=>{const e=t&&"object"==typeof t?t:{};this.trigger(kd.CONTAINER_RESIZE,e)})),z(AP,this)&&"function"==typeof z(AP,this).on&&z(AP,this).on(kd.CONTAINER_RESIZE,z(BP,this)),L(jP,this,KP).call(this),L(jP,this,HP).call(this),j(bP,this,L(jP,this,QP).call(this)),z(bP,this)}onDispose(){z(gP,this)&&"function"==typeof z(gP,this).off&&z(MP,this)&&z(gP,this).off(kd.TIMELINE_CUEPOINT,z(MP,this)),j(MP,this,null),z(gP,this)&&"function"==typeof z(gP,this).off&&(z(CP,this)&&z(gP,this).off(kd.TIMELINE_PLAYER_STATE,z(CP,this)),z(PP,this)&&z(gP,this).off(kd.TIMELINE_SEEKING,z(PP,this)),z(DP,this)&&z(gP,this).off(kd.TIMELINE_SEEKED,z(DP,this))),j(CP,this,null),j(PP,this,null),j(DP,this,null),j(FP,this,null),z(AP,this)&&"function"==typeof z(AP,this).off&&z(BP,this)&&z(AP,this).off(kd.CONTAINER_RESIZE,z(BP,this)),j(BP,this,null),z(EP,this)&&"function"==typeof z(EP,this).off&&(z(RP,this)&&z(EP,this).off("qoescore",z(RP,this)),z(LP,this)&&z(EP,this).off("qoestatus",z(LP,this))),j(RP,this,null),j(LP,this,null),z(IP,this)&&"function"==typeof z(IP,this).off&&z(zP,this)&&z(IP,this).off(kd.DECODER_ERROR,z(zP,this)),j(zP,this,null),j(WP,this,0),z(NP,this)&&"function"==typeof z(NP,this).dispose&&z(NP,this).dispose(),j(NP,this,null),z(SP,this)&&"function"==typeof z(SP,this).dispose&&z(SP,this).dispose(),j(gP,this,null),j(vP,this,null),j(wP,this,null),j(xP,this,null),j(_P,this,null),j(TP,this,null),j(IP,this,null),j(EP,this,null),j(AP,this,null),j(kP,this,null),j(bP,this,null),j(SP,this,null)}}function $P(t={}){var e;this.trigger(kd.TIMELINE_CUEPOINT,t);const n="string"==typeof(null==t||null===(e=t.cuepoint)||void 0===e?void 0:e.name)?t.cuepoint.name:"";n&&this.trigger(n,t)}function qP(t={}){const e="string"==typeof(null==t?void 0:t.event)?t.event:"";if(!mP.has(e))return;if("playing"!==e||Number.isFinite(z(OP,this))||(j(OP,this,jy()),this.log.info(`[#handlePlayerStateEvent] Playback started @ ${(z(OP,this)/1e3).toFixed(3)}s (${Date.now()})`)),z(FP,this)===e)return;j(FP,this,e);const n=Number.isFinite(null==t?void 0:t.time)?t.time:z(gP,this)&&Number.isFinite(z(gP,this).currentTime)?z(gP,this).currentTime:0,i={};Number.isFinite(n)&&(i.time=n),"string"==typeof(null==t?void 0:t.from)&&(i.from=t.from),"string"==typeof(null==t?void 0:t.to)&&(i.to=t.to),Number.isFinite(null==t?void 0:t.targetTime)&&(i.targetTime=t.targetTime),Array.isArray(null==t?void 0:t.placements)&&(i.placements=t.placements.slice()),this.trigger(e,i)}function VP(){return new cP(z(vP,this))}function GP(t){if(!t||"object"!=typeof t)throw new Error("EkoPlayer.switchTimeline requires a timeline definition");if(!z(gP,this)||"function"!=typeof z(gP,this).applyTimelineDefinition)throw new Error("EkoPlayer.switchTimeline requires an active timeline");z(gP,this).applyTimelineDefinition(t),"function"==typeof z(gP,this).play&&z(gP,this).play()}function HP(){z(EP,this)&&"function"==typeof z(EP,this).on&&(j(RP,this,(t=>{this.trigger(kd.QOE_SCORE,t)})),j(LP,this,(t=>{this.trigger(kd.QOE_STATUS,t)})),z(EP,this).on(kd.QOE_SCORE,z(RP,this)),z(EP,this).on(kd.QOE_STATUS,z(LP,this)))}function KP(){z(IP,this)&&"function"==typeof z(IP,this).on&&(j(zP,this,(t=>{const e=t&&"object"==typeof t?t:{error:t};this.trigger(kd.DECODER_ERROR,e),L(jP,this,XP).call(this,e)})),z(IP,this).on(kd.DECODER_ERROR,z(zP,this)))}function XP(t={}){var e;const n=z(gP,this);if(!n||"number"!=typeof n.currentTime)return;const i=Date.now();if(i<z(WP,this))return;const r=Number(n.currentTime);if(!Number.isFinite(r))return;const o=Number(null==n||null===(e=n.settings)||void 0===e?void 0:e.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;j(WP,this,i+1500),this.log.warn("[#attemptDecoderRecoverySeek] decoder:error received, attempting seek recovery",null==t?void 0:t.error),n.currentTime=r+s}async function YP(t={}){var e;if(z(NP,this))return z(NP,this);const n=t&&"object"==typeof t&&!Array.isArray(t)?{...t}:{},i=z(kP,this)&&z(kP,this).element?z(kP,this).element:null;if(!i)throw new Error("Debug overlay requires an initialized player canvas and mount element.");const r=function({canvasElement:t,containerElement:e}={}){const n=t&&t.parentNode?t.parentNode:null;if(null==e)return n;const i=function(t,e=(null==yd?void 0:yd.document)){if(bd(t))return t;if("string"!=typeof t)return null;let n=t.trim();if("#"===n.charAt(0)&&(n=n.slice(1)),!n||!e||"function"!=typeof e.getElementById)return null;const i=e.getElementById(n);return bd(i)?i:null}(e,t&&t.ownerDocument?t.ownerDocument:null);if(i)return i;if("string"==typeof e){const t=e.trim(),n="#"===t.charAt(0)?t.slice(1):t;if(!n)throw new Error("Debug overlay containerElement id cannot be empty.");throw new Error(`Debug overlay containerElement id "${n}" was not found.`)}throw new Error("Debug overlay containerElement must be an element id string or DOM element.")}({canvasElement:i,containerElement:n.containerElement});if(!r)throw new Error("Debug overlay requires an initialized player canvas and mount element.");Object.prototype.hasOwnProperty.call(n,"containerElement")&&delete n.containerElement;const o=await import("./debug-overlay-B4njlEwZ.esm.js"),s=(null==o?void 0:o.createDebugOverlay)||(null==o?void 0:o.default);if("function"!=typeof s)throw new Error("Debug overlay bundle does not export createDebugOverlay().");return n.publicOptions=z(yP,this),n.playerVersion=ZC,j(NP,this,s({mountElement:r,canvasElement:i,timeline:z(gP,this),assetsDeliveryServiceUrl:null===(e=z(SP,this))||void 0===e||null===(e=e.assetsDeliveryService)||void 0===e||null===(e=e.settings)||void 0===e?void 0:e.assetsDeliveryServiceUrl,getNode:t=>z(vP,this)&&"function"==typeof z(vP,this).get?z(vP,this).get(t):void 0,listNodes:()=>z(vP,this)&&"function"==typeof z(vP,this).list?z(vP,this).list():[],downloadSpeed:z(SP,this)?z(SP,this).downloadSpeed:void 0,downloadEvents:Cy,qoe:z(EP,this)?z(EP,this).publicAPI:void 0,qoeEvents:this,options:n,playbackStartedAtMs:z(OP,this)})),z(NP,this)}function QP(){const t=this;return{createTimeline:()=>L(jP,t,VP).call(t),switchTimeline:e=>L(jP,t,GP).call(t,e),play:z(gP,this).play,pause:z(gP,this).pause,reset:z(gP,this).reset,placeOnTimeline:z(gP,this).placeOnTimeline,placeRenderNodeOnTimeline:z(gP,this).placeRenderNodeOnTimeline,addNode:z(vP,this).add,getNode:z(vP,this).get,listNodes:z(vP,this).list,getNodesAtTime:e=>z(gP,t).getNodesAtTime(e),dispose:this.dispose,on:t.on,off:t.off,once:t.once,trigger:t.trigger,transitionTo:(e,n)=>z(xP,t).transitionTo(e,n),track:(e,...n)=>{if(z(TP,t)&&"function"==typeof z(TP,t).track)return z(TP,t).track(e,...n)},seekToPlacement:e=>z(gP,t).seekToPlacement(e),get currentTime(){return z(gP,t).currentTime},set currentTime(e){z(gP,t).currentTime=e},get buffered(){return z(gP,t).buffered},get options(){return z(yP,t)},get containerWidth(){return z(AP,t)?z(AP,t).containerWidth:0},get containerHeight(){return z(AP,t)?z(AP,t).containerHeight:0},get playbackRate(){return z(gP,t).playbackRate},set playbackRate(e){z(gP,t).playbackRate=e},get paused(){return!!z(gP,t)&&!0===z(gP,t).paused},get muted(){return!!z(_P,t)&&z(_P,t).muted},set muted(e){z(_P,t)&&(z(_P,t).muted=e)},get volume(){return z(_P,t)?z(_P,t).volume:1},set volume(e){z(_P,t)&&(z(_P,t).volume=e)},get qoe(){return z(EP,t)?z(EP,t).publicAPI:void 0},get utils(){return tP},get version(){return ZC},loadDebugOverlay:(...e)=>L(jP,t,YP).call(t,...e)}}function JP(t){t&&(j(kP,this,t.canvas),j(vP,this,t.nodeRepository),j(gP,this,t.timeline),j(_P,this,t.audioAdapter||t.audioPlaybackManager),j(TP,this,t.tracker),j(IP,this,t.parsingManager),j(EP,this,t.qoe),j(wP,this,t.renderAdapter||t.renderer),j(xP,this,t.transitionManager),j(AP,this,t.containerSize))}class ZP{constructor({target:t,props:e}){if(!t)throw new Error("`options.target` is required");Io(this.#kt,e,!0),this.#kt.v.EkoPlayer=UP;const n=t.hasChildNodes()?fa:ha;this.#wt=n(qu,{target:t,props:this.#kt.v})}#wt;#kt=Di(_o(Fo({})),"EkoGallery.#props");destroy(t){if(this.#wt)return ga(this.#wt,t)}get props(){return qs(this.#kt)}}const tD=b("gallery-react");const eD=a(((t,i)=>{const{config:r,debug:a,ssrHtml:c,activeItem:u={index:0,step:0},forceMobile:d,videoAspectRatio:h,onEvent:f=()=>{}}=t,p=n(null),m=n({}),v=function(t){return void 0!==t}(r),g=n(u),y=n(c);m.current.initEventSent||(f("galleryinit"),m.current.initEventSent=!0);const b=o((t=>{m.current.state=t,t.activeItemIndex===g.current.index&&t.activeModuleIndex===g.current.step||f("activeitemchanged",{index:t.activeItemIndex,step:t.activeModuleIndex})}),[]),k=o((t=>{m.current.API=t,0===g.current.index&&0===g.current.step||t.selectItemAndStep(g.current.index,g.current.step),m.current.unsubscribe&&m.current.unsubscribe(),m.current.unsubscribe=t.subscribe(b)}),[]),w=o(((t,e)=>{f(t,e)}),[f]);return s((()=>(tD.setDataStorage("gallery-react",{config:r}),window.eko=window.eko||{},window.eko.config=r,window.eko.gallery={version:"devops/4.0.13"},()=>{window.eko.config=void 0})),[r]),l(i,(()=>({prev:()=>{var t;null===(t=m.current.API)||void 0===t||t.prev()},next:()=>{var t;null===(t=m.current.API)||void 0===t||t.next()}}))),s((()=>{if(null==p||!p.current)return;const t=p.current;return m.current.app=new ZP({target:t,props:{config:r,forceMobile:d,videoAspectRatio:h,hideNav:!0,onGalleryReady:k,onEvent:w}}),()=>{var t;null===(t=m.current.app)||void 0===t||t.destroy()}}),[]),s((()=>{m.current.app&&(m.current.app.props.config=r)}),[r]),s((()=>{m.current.app&&(m.current.app.props.debug=a,m.current.app.props.forceMobile=d,m.current.app.props.videoAspectRatio=h,m.current.app.props.onEvent=w)}),[a,d,h,w]),s((()=>{g.current=u,m.current.state&&(m.current.state.activeItemIndex===u.index&&m.current.state.activeModuleIndex===u.step||m.current.API.selectItemAndStep(u.index,u.step))}),[u]),v?e.createElement("div",q({style:{position:"relative",width:"100%",height:"100%"},ref:p},y.current?{dangerouslySetInnerHTML:{__html:y.current}}:{})):t.children}));eD.propTypes={className:Ct.string,config:Ct.object,variantId:Ct.string,onEvent:Ct.func,ssrHtml:Ct.string,videoAspectRatio:Ct.string,debug:Ct.bool,activeItem:Ct.shape({index:Ct.number,step:Ct.number}),forceMobile:Ct.bool,instanceId:Ct.string,children:Ct.node},eD.displayName="EkoGallerySvelte";const nD=d("v2"),iD=d("v1");export{dn as E,U as _,W as a,j as b,z as c,L as d,u as e,iD as f,nD as g,eD as h,R as w};
|