@ekolabs/eko-gallery-react 4.0.1 → 4.0.2

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.
@@ -11,4 +11,4 @@
11
11
  object-assign
12
12
  (c) Sindre Sorhus
13
13
  @license MIT
14
- */var ut=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]))lt.call(n,s)&&(r[s]=n[s]);if(at){i=at(n);for(var a=0;a<i.length;a++)ct.call(n,i[a])&&(r[i[a]]=n[i[a]])}}return r},dt="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",ht=Function.call.bind(Object.prototype.hasOwnProperty),ft=function(){};if("production"!==process.env.NODE_ENV){var pt=dt,mt={},gt=ht;ft=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}}}function vt(t,e,n,i,r){if("production"!==process.env.NODE_ENV)for(var o in t)if(gt(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,pt)}catch(t){s=t}if(!s||s instanceof Error||ft((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 mt)){mt[s.message]=!0;var l=r?r():"";ft("Failed "+n+" type: "+s.message+(null!=l?l:""))}}}vt.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&(mt={})};var yt=vt,bt=function(){};function kt(){return null}"production"!==process.env.NODE_ENV&&(bt=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}});var xt=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(kt),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+"]",dt);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 st.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(ht(s,c)){var u=t(s,c,i,r,o+"."+c,dt);if(u instanceof Error)return u}return null}))},oneOf:function(t){if(!Array.isArray(t))return"production"!==process.env.NODE_ENV&&bt(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."),kt;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&&bt("Invalid argument supplied to oneOfType, expected an instance of array."),kt;for(var e=0;e<t.length;e++){var n=t[e];if("function"!=typeof n)return bt("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+p(n)+" at index "+e+"."),kt}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,dt);if(null==c)return null;c.data&&ht(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,dt);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=ut({},e[n],t);for(var d in c){var p=t[d];if(ht(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,dt);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!==dt){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&&(bt("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=yt,o.resetWarningCache=yt.resetWarningCache,o.PropTypes=o,o};function wt(){}function _t(){}_t.resetWarningCache=wt;var Tt=D((function(t){if("production"!==process.env.NODE_ENV){var e=st;t.exports=xt(e.isElement,!0)}else t.exports=function(){function t(t,e,n,i,r,o){if(o!==dt){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:_t,resetWarningCache:wt};return n.PropTypes=n,n}()}));const It=/https?:\/\/(.*?\.)?eko.com/,Et={"eko.project.interaction":"interaction","eko.project.swipe":"swipe"};let St=null,Nt=null,At=[];function Mt(t){return e=>{var n;if(!It.test(e.origin)||"eko.embedapi"!==(null===(n=e.data)||void 0===n?void 0:n.source))return;const i=e.data,r=Et[i.type];r&&(t?t(r,i.data):At.push({type:r,data:i.data}))}}"undefined"!=typeof window&&(Nt=Mt(null),window.addEventListener("message",Nt));var Ft={subscribe:function(t){"function"==typeof t?St?console.warn("[eko-gallery-react] Ignoring events subscribe since already subscribed"):(St=t,Nt=Mt(t),window.addEventListener("message",Nt),function(t){At.forEach((e=>{t(e.type,e.data)})),At=[]}(t)):console.warn("[eko-gallery-react] Ignoring events subscribe since a callback function was not provided as argument")},unsubscribe:function(){Nt?(window.removeEventListener("message",Nt),Nt=null,St=null,At=[]):console.warn("[eko-gallery-react] Ignoring events unsubscribe since not subscribed")},send:function(t,e){St?St(t,e):At.push({type:t,data:e})}};const Ct=({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){S.track("gallery.interaction",{elementid:`thumbnail-${t}`,interactiontype:"click"}),Ft.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})`}}))))};Ct.propTypes={index:Tt.number,activeIndex:Tt.number,setActiveIndex:Tt.func.isRequired,item:Tt.object.isRequired,src:Tt.string,navItemRefs:Tt.object.isRequired,itemIcon:Tt.string};const Ot=({layout:t,nav:n,isVerticalNav:i,showPrevArrow:r,showNextArrow:o})=>{var s,a,l,c,u;const d=e.useRef(null),h=e.useRef(null),f="arrows"===(null==t||null===(s=t.mobile)||void 0===s||null===(s=s.config)||void 0===s||null===(s=s.navPagination)||void 0===s?void 0:s.type)?"eko-mobile-arrows":"",p="arrows"===(null!==(a=null==t||null===(l=t.desktop)||void 0===l||null===(l=l.config)||void 0===l||null===(l=l.navPagination)||void 0===l?void 0:l.type)&&void 0!==a?a:"arrows")?"eko-desktop-arrows":"",m=f||p,g=i?null==n||null===(c=n.current)||void 0===c?void 0:c.scrollHeight:null==n||null===(u=n.current)||void 0===u?void 0:u.scrollWidth;function v(t){const e=i?n.current.clientHeight:n.current.clientWidth,r=function(t,e){const n=i?e.scrollTop:e.scrollLeft;return Math.max(-n,Math.min(g-t-n,t))}("next"===t?e:-e,n.current);return{top:i?r:0,left:i?0:r,behavior:"smooth"}}function y(t){var e,i,r;const o=v(t),s="next"===t?null==h||null===(e=h.current)||void 0===e?void 0:e.id:null==d||null===(i=d.current)||void 0===i?void 0:i.id;var a,l;window.EkoAnalytics("track","gallery.interaction",{elementid:s,interactiontype:"click"}),null==n||null===(r=n.current)||void 0===r||r.scrollBy(o),a=s,l="click",S.track("gallery.interaction",{elementId:a,interactiontype:l}),Ft.send("interaction",{elementId:a,interactiontype:l})}return e.createElement(e.Fragment,null,m&&e.createElement(e.Fragment,null,e.createElement("button",R({type:"button","aria-label":"Go to previous item","aria-hidden":r?"false":"true",onClick:()=>y("prev"),ref:d,id:"eko-nav-prev-arrow",className:`eko-nav-arrow eko-prev-nav-button ${f} ${p} ${r?"":"eko-hidden-nav-button"}`},r?{}:{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",R({type:"button","aria-label":"Go to next item","aria-hidden":o?"false":"true",onClick:()=>y("next"),ref:h,className:`eko-nav-arrow eko-next-nav-button ${f} ${p} ${o?"":"eko-hidden-nav-button"}`,id:"eko-nav-next-arrow"},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:"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 Pt(t,e,n){let i;return function(){const n=this,r=arguments;clearTimeout(i),i=setTimeout((function(){i=null,t.apply(n,r)}),e)}}Ot.propTypes={layout:Tt.object.isRequired,nav:Tt.object.isRequired,isVerticalNav:Tt.bool.isRequired,showPrevArrow:Tt.bool.isRequired,showNextArrow:Tt.bool.isRequired};const Rt=({items:t,setActiveIndex:n,activeIndex:i,layout:r,carouselMounted:o,forceMobile:s})=>{const l=e.useRef(null),c=e.useRef(null),u=e.useRef([]),d=3,[h,f]=e.useState(null),[p,m]=e.useState(!1),[g,v]=e.useState(0),[y,b]=e.useState(!1),[k,x]=e.useState(!1);function w(){var t;const e=s||window.innerWidth<768?"mobile":"desktop",n=(null==r||null===(t=r[e])||void 0===t||null===(t=t.config)||void 0===t?void 0:t.orientation)||("desktop"===e?"left":"bottom");m("left"===n||"right"===n);const i=c.current.parentNode,a=o?".eko-smart-gallery-container iframe":".eko-carousel",l=i.querySelector(a);setTimeout((()=>{v(l.clientHeight)}),0)}function _(){var t,e;const n=s||a()?"mobile":"desktop",i=null!==(t=null==r||null===(e=r[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:d;!function(t=d){var e,n;const i=l.current;if(!i)return;const o="none"!==(null==r||null===(e=r.desktop)||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.navPagination)||void 0===e?void 0:e.type),c=(u=null==r||null===(n=r.mobile)||void 0===n||null===(n=n.config)||void 0===n||null===(n=n.navPagination)||void 0===n?void 0:n.type,"mask"===u||"arrows"===u);var u;if((s||a())&&!c)return void i.style.setProperty("-webkit-mask","none");if(!a()&&!o)return void i.style.setProperty("-webkit-mask","none");const h=i.scrollHeight-i.clientHeight,f=i.scrollTop>t?"85%":"100%",m=i.scrollTop<=h-t?"15%":"0%",g=i.scrollWidth-i.clientWidth,v=i.scrollLeft>t?"15%":"0%",y=i.scrollLeft<=g-t?"85%":"100%";p?i.style.setProperty("-webkit-mask",`linear-gradient(0deg,#0000,#000 ${m} ${f},#0000)`):i.style.setProperty("-webkit-mask",`linear-gradient(90deg,#0000,#000 ${v} ${y},#0000)`)}(i),function(t=d){var e,n,i,r,o,s;const a=p?null==l||null===(e=l.current)||void 0===e?void 0:e.scrollTop:null==l||null===(n=l.current)||void 0===n?void 0:n.scrollLeft,c=p?null==l||null===(i=l.current)||void 0===i?void 0:i.clientHeight:null==l||null===(r=l.current)||void 0===r?void 0:r.clientWidth,u=p?null==l||null===(o=l.current)||void 0===o?void 0:o.scrollHeight:null==l||null===(s=l.current)||void 0===s?void 0:s.scrollWidth;u-t<c?(b(!1),x(!1)):a<=t?(b(!1),x(!0)):a+c>u-t?(b(!0),x(!1)):a+t>0&&a<u-t&&(b(!0),x(!0))}(i)}u.current=null==t?void 0:t.map(((t,n)=>{var i,r;return null!==(i=null==u||null===(r=u.current)||void 0===r?void 0:r[n])&&void 0!==i?i:e.createRef()}));const T=Pt((t=>{var e;e=t,S.track("gallery.interaction",{elementid:"nav",interactiontype:e}),Ft.send("interaction",{elementid:"nav",interactiontype:e})}),200);const I=e.useCallback((t=>{n({index:t,step:0,source:"nav"})}),[]);return e.useEffect((()=>{var t;f(null===(t=u.current)||void 0===t?void 0:t[i])}),[i]),e.useEffect((()=>{if(null!=h&&h.current&&null!=l&&l.current){const t=h.current,e=l.current.clientWidth/2,n=t.clientWidth/2,i=l.current.clientHeight/2,r=t.clientHeight/2;l.current.scrollTo({left:t.offsetLeft-e+n,top:t.offsetTop-i+r,behavior:"smooth"})}}),[h]),e.useEffect((()=>{w()}),[]),e.useEffect((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[c,o,s]),e.useEffect((()=>{v(0),w()}),[t,c,o,s]),e.useEffect((()=>{_();const t=new ResizeObserver(_);return t.observe(l.current),()=>{t.disconnect()}}),[t,s,p]),e.createElement("div",{className:"eko-nav-container",ref:c,style:{opacity:g>0?1:0,height:""+(g&&p?g+"px":"auto")}},e.createElement(Ot,{layout:r,nav:l,isVerticalNav:p,showPrevArrow:y,showNextArrow:k}),e.createElement("ul",{className:`eko-nav eko-mobile-nav-selected-${null!==(E=null==r||null===(N=r.mobile)||void 0===N||null===(N=N.config)||void 0===N?void 0:N.navItemsSelectedType)&&void 0!==E?E:"underline"} eko-desktop-nav-selected-${null!==(A=null==r||null===(M=r.desktop)||void 0===M||null===(M=M.config)||void 0===M?void 0:M.navItemsSelectedType)&&void 0!==A?A:"underline"}`,ref:l,onScroll:function(){_()},onWheel:function(){T("wheel")},onTouchMove:function(){T("swipe")}},null==t?void 0:t.map(((t,n)=>{var r;const o=(null==t||null===(r=t.media)||void 0===r?void 0:r.url)||(null==t?void 0:t.media)||"";return e.createElement(Ct,{key:o+n,index:n,activeIndex:i,setActiveIndex:I,item:t,src:o,navItemRefs:u,itemIcon:null==t?void 0:t.icon})}))));var E,N,A,M};Rt.propTypes={items:Tt.array.isRequired,activeIndex:Tt.number,setActiveIndex:Tt.func.isRequired,layout:Tt.object,carouselMounted:Tt.bool,forceMobile:Tt.bool};function Dt(){S.track("gallery.cover.displayed"),Ft.send("gallerycoverdisplayed")}function Bt(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 Lt=({item:t,src:n,srcset:i,sizes:r,isCoverElement:o})=>{const s=e.useRef(null);return e.useEffect((()=>{var t;if(o){if(null===(t=s.current)||void 0===t||!t.complete)return s.current.addEventListener("load",Dt,{once:!0}),()=>{var t;null===(t=s.current)||void 0===t||t.removeEventListener("load",Dt,{once:!0})};Dt()}}),[]),e.createElement("img",{ref:s,src:Bt(n),srcSet:i,sizes:r,alt:t.name,fetchPriority:o?"high":"auto",loading:o?"eager":"lazy",style:{width:"100%",height:"100%"}})};Lt.propTypes={item:Tt.object.isRequired,src:Tt.string,srcset:Tt.string,sizes:Tt.string,isCoverElement:Tt.bool};const zt=Pt((t=>{var e;e=t,S.track("gallery.interaction",{elementid:"carousel",interactiontype:e}),Ft.send("interaction",{elementid:"carousel",interactiontype:e})}),200);function Wt(){zt("wheel")}const Ut=e.forwardRef((({items:t,setActiveIndex:n,activeIndex:i,showSmartLoaders:r},o)=>{const s=e.useRef(null),a=e.useRef([]);a.current=null==t?void 0:t.map(((t,n)=>{var i,r;return null!==(i=null==a||null===(r=a.current)||void 0===r?void 0:r[n])&&void 0!==i?i:e.createRef()}));const[l,c]=e.useState(),[u,d]=e.useState(),h=e.useRef(i),f=e.useRef(!1);function p(){const e=function(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}(s.current)*(null==t?void 0:t.length)/100,i=Math.min(Math.trunc(e),(null==t?void 0:t.length)-1),r=h.current;"nav"!==r.source&&"external-nav"!==r.source?(f.current&&i!==r.index&&(f.current=!1),f.current||(i>(null==t?void 0:t.length)-1?n({index:(null==t?void 0:t.length)-1,source:"carousel"}):n({index:i,source:"carousel"}))):i===r.index?f.current=!0:f.current&&i!==r.index&&(f.current=!1,n({index:i,source:"carousel"}))}return e.useImperativeHandle(o,(()=>({prev:()=>{n({index:Math.max(0,h.current.index-1),source:"carousel"})},next:()=>{n({index:Math.min((null==t?void 0:t.length)-1,h.current.index+1),source:"carousel"})}}))),e.useEffect((()=>{const t=s.current;if(t)return t.addEventListener("scroll",p),()=>{t.removeEventListener("scroll",p)}}),[t]),e.useEffect((()=>{var t;let e=null===(t=a.current)||void 0===t?void 0:t[i.index];if(e&&("nav"===i.source||"external-nav"===i.source)){const t=e.current,n=s.current.clientWidth/2,i=(null==t?void 0:t.clientWidth)/2,r=(null==t?void 0:t.offsetLeft)-n+i;s.current.scrollTo({left:r,behavior:"smooth"})}}),[i]),e.useEffect((()=>{h.current=i,"nav"!==i.source&&"external-nav"!==i.source||(f.current=!1)}),[i]),e.createElement("ul",{className:"eko-carousel",ref:s,onScroll:p,onWheel:Wt,onTouchMove:function(t){d(t.targetTouches[0].clientX)},onTouchStart:function(t){c(t.targetTouches[0].clientX),d(null)},onTouchEnd:function(){u&&l&&(l-u>75||l-u<-75)&&zt("swipe")}},null==t?void 0:t.map(((t,n)=>{const i=(null==t?void 0:t.cover)||(null==t?void 0:t.media),o=(null==i?void 0:i.url)||i;return e.createElement("li",{className:"eko-carousel-item",key:o+n,ref:a.current[n]},e.createElement(Lt,{item:t,src:o,srcset:null==i?void 0:i.srcset,sizes:null==i?void 0:i.sizes,isCoverElement:0===n}),r&&"image"!==t.type&&e.createElement("div",{className:"eko-smart-loading"},e.createElement("div",null),e.createElement("p",null,"Loading video experience")))})))}));function $t(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)}Ut.propTypes={items:Tt.array.isRequired,setActiveIndex:Tt.func.isRequired,activeIndex:Tt.object,showSmartLoaders:Tt.bool},Ut.displayName="CarouselLoop";const jt="eko.project.invoke",qt="eko.block.invoke";function Vt(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 Ht(t){return`#variantId=${encodeURIComponent(t)}`}const Gt=e.forwardRef((({config:t,instanceId:n,setActiveItem:i,activeItem:r,variantId:o,smartGalleryLoaded:s,onLoad:l,forceMobile:c},u)=>{var d,h,f;const p=null!==(d=null===(h=t.options)||void 0===h?void 0:h.galleryEnv)&&void 0!==d?d:"",m=null===(f=t.__autoGenerated)||void 0===f||null===(f=f.publishItem)||void 0===f?void 0:f.id,g=function(t={}){let e="";return Object.entries(t).forEach((([t,n])=>{e+=`&${t}=${n}`})),e}(null==t?void 0:t.qp),v=function(t,e,n){return`https://${t}play.eko.com/embed?${n?`id=${n}`:`piid=${e}`}&nocover=true&galleryBlockMode=gallery&eko_pixel=true`}(p,m,n),y=e.useRef(null),b=e.useRef(null),k=e.useRef(!1),[x,w]=e.useState(Ht(o||"ekonovar")),[_,T]=e.useState(v+g+x);let I;function E(){S.track("gallery.project.display"),l(),Ft.send("galleryloaded")}return e.useImperativeHandle(u,(()=>({prev:()=>{Vt(null==b?void 0:b.current,qt,{action:"onPrevModule"})},next:()=>{Vt(null==b?void 0:b.current,qt,{action:"onNextModule"})}}))),e.useEffect((()=>{k.current?Vt(null==b?void 0:b.current,jt,{action:"updateVariant",args:{id:o}}):w(Ht(o))}),[o]),e.useEffect((()=>{Vt(null==b?void 0:b.current,qt,{action:"updateActiveModule",args:{activeItemIndex:null==r?void 0:r.index,activeModuleIndex:null==r?void 0:r.step}})}),[r]),e.useEffect((()=>{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))&&!k.current)return e=t.data.data.blockType,k.current=!0,void("GalleryBlock"===e?Vt(null==b?void 0:b.current,qt,{action:"updateActiveModule",args:{activeItemIndex:null==r?void 0:r.index,activeModuleIndex:null==r?void 0:r.step}}):E());var e;if(k.current){if(function(t){var e;return $t(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==r?void 0:r.index)&&n===(null==r?void 0:r.step)||i({index:e,step:n,source:"carousel"})}(t);(function(t){var e;return $t(t)&&"activeModuleChangeDone"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.name)})(t)&&!s&&E()}}return I=c||a()?"mobile":"desktop",function(t,e={}){window.addEventListener("message",t,e)}(t),()=>{!function(t,e={}){window.removeEventListener("message",t,e)}(t)}}),[r]),e.useEffect((()=>{k.current||Vt(null==b?void 0:b.current,jt,{action:"queryProjectStarted"})}),[r,s]),e.useEffect((()=>{k.current=!1}),[t]),e.useEffect((()=>{T(v+g+x)}),[x]),e.createElement("div",{className:"eko-smart-gallery-container "+(s?"":"eko-project-not-ready"),ref:y,"data-type":"smart-gallery","data-qp":g,"data-variant":o,"data-device":I},e.createElement("iframe",{allow:"autoplay; fullscreen",title:"eko gallery",src:_,style:{border:0},ref:b}))}));Gt.propTypes={config:Tt.object.isRequired,instanceId:Tt.string,setActiveItem:Tt.func.isRequired,activeItem:Tt.object.isRequired,variantId:Tt.string,smartGalleryLoaded:Tt.bool,onLoad:Tt.func,forceMobile:Tt.bool},Gt.displayName="SmartGallery";const Kt=()=>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}'),Xt=({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")}}`)};Xt.propTypes={layout:Tt.object,style:Tt.object},u("experiment");const Yt=({activeVariantId:t,activeElementId:n,hasInteractive:i,experiments:r,publishItem:o})=>{const s="gallery",a=e.useRef(t),l=e.useRef(n),c=e.useRef(i),u=e.useRef(r),d=e.useRef(o);e.useEffect((()=>{a.current=t,l.current=n,c.current=i,u.current=r,d.current=o}),[t,n,i,r,o]);const h={publishItemPacker:{tag:s,schema:"iglu:com.helloeko/publishitem/jsonschema/1-0-0",match:/.*/,getData:function(){const t=d.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:s,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:s,schema:"iglu:com.helloeko/gallery/jsonschema/1-0-2",match:/^gallery.*/,getData:function(){var t;return{activeitemid:l.current.toString(),activevariantid:a.current,hasinteractive:c.current,version:(null===(t=window.eko)||void 0===t||null===(t=t.gallery)||void 0===t?void 0:t.version)||""}}},activeVariantIdPacker:{tag:s,schema:"iglu:com.helloeko/variant/jsonschema/1-0-1",match:/.*/,getData:function(){if(a.current)return{id:a.current}}},experimentPacker:{tag:s,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}(u.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 e.useEffect((()=>(Object.values(h).forEach((t=>{window.EkoAnalytics("registerContextPacker",t)})),()=>{window.EkoAnalytics("reset",s)})),[]),null};Yt.propTypes={activeVariantId:Tt.string,activeElementId:Tt.number,hasInteractive:Tt.bool,experiments:Tt.array,publishItem:Tt.object};const Qt=({variantId:t,activeItem:n,hasInteractive:i,activeIndex:r,experiments:o,publishItem:s})=>{const a=e.useRef(!0);return e.useEffect((()=>{a.current||t&&S.track("gallery.variant.change")}),[t]),e.useEffect((()=>{a.current||S.track("gallery.element.change",{activeIndex:r})}),[r]),e.useEffect((()=>{a.current||n&&null!=s&&s.id&&S.track("gallery.asset.view",{publishitemid:s.id,type:n.type,name:n.name})}),[n]),e.useEffect((()=>{a.current=!1}),[]),e.createElement(Yt,{activeVariantId:t||"ekonovar",activeElementId:r,hasInteractive:i,experiments:o,publishItem:s})};Qt.propTypes={variantId:Tt.string,activeItem:Tt.object,hasInteractive:Tt.bool,activeIndex:Tt.number,experiments:Tt.array,publishItem:Tt.object};const Jt="eko-gallery-react";function Zt(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 te=e.forwardRef((({className:t,config:n,instanceId:i,variantId:r,activeItem:o={index:0,step:0},onEvent:s,forceMobile:a},l)=>{var c,u,d,h,f,p;const m=null!==(c=null===(u=n.options)||void 0===u?void 0:u.loadingTimeout)&&void 0!==c?c:12,g=null===(d=null===(h=n.options)||void 0===h?void 0:h.showCoverLoadAnimation)||void 0===d||d,[v,y]=e.useState(Zt(n,r)),[b,k]=e.useState({index:o.index,step:o.step,source:"external-nav"}),[x,w]=e.useState(!1),[_,T]=e.useState(!1),[I,E]=e.useState("eko-desktop"),N=e.useRef(!1),A=e.useRef(!1),M=e.useRef(o),F=e.useRef(null),C=e.useRef(r);function O(){const t=a||window.innerWidth<768?"eko-mobile":"eko-desktop";E(t)}return A.current||(Ft.send("galleryinit"),A.current=!0),e.useEffect((()=>{const t=C.current!==r;C.current=r,y(Zt(n,r)),t&&!N.current&&k({index:0,step:0,source:"external-nav"})}),[n,r]),e.useEffect((()=>{if(s)return Ft.subscribe(s),()=>{Ft.unsubscribe()}}),[s]),e.useEffect((()=>{N.current=_}),[_]),e.useEffect((()=>{w(!1),T(!1);const t=setTimeout((()=>{N.current||(w(!0),S.track("gallery.load.timeout"))}),1e3*m);return()=>{clearTimeout(t)}}),[n]),e.useEffect((()=>{O()}),[a]),e.useEffect((()=>(window.addEventListener("resize",O),O(),()=>{window.removeEventListener("resize",O)})),[a]),e.useEffect((()=>(window.EkoAnalytics("trackElementVisibility",F.current,Jt),()=>{window.EkoAnalytics("stopTrackingElementVisibility",Jt)})),[]),e.useEffect((()=>{!("carousel"===(null==b?void 0:b.source)||"nav"===(null==b?void 0:b.source))||(null==b?void 0:b.index)===o.index&&(null==b?void 0:b.step)===o.step||Ft.send("activeitemchanged",{index:null==b?void 0:b.index,step:null==b?void 0:b.step})}),[b,o]),e.useEffect((()=>{M.current.index===o.index&&M.current.step===o.step||(M.current=o,k({index:o.index,step:o.step,source:"external-nav"}))}),[o]),e.createElement(e.Fragment,null,e.createElement(Kt,null),e.createElement(Xt,{layout:n.layout,style:n.style,forceMobile:a}),e.createElement(Qt,{variantId:r,activeItem:null==v||null===(f=v.items)||void 0===f?void 0:f[b.index],activeIndex:b.index,hasInteractive:_,experiments:n.experiments,publishItem:null==n||null===(p=n.__autoGenerated)||void 0===p?void 0:p.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}(n.layout)} ${null!=t?t:""}`.trim()} ${I}`,"aria-controls":"main-content",ref:F},e.createElement(Rt,{items:(null==v?void 0:v.items)||[],setActiveIndex:k,activeIndex:b.index,layout:n.layout,carouselMounted:_,forceMobile:a}),!_&&e.createElement(Ut,{ref:l,items:(null==v?void 0:v.items)||[],setActiveIndex:k,activeIndex:{index:b.index,source:null==b?void 0:b.source},showSmartLoaders:!x&&g}),!x&&e.createElement(Gt,{ref:l,config:n,instanceId:i,activeItem:b,setActiveItem:k,variantId:null==v?void 0:v.variantId,smartGalleryLoaded:_,forceMobile:a,onLoad:function(){T(!0)}})))}));te.propTypes={className:Tt.string,config:Tt.object.isRequired,instanceId:Tt.string,variantId:Tt.string,activeItem:Tt.object,onEvent:Tt.func,forceMobile:Tt.bool,onPrev:Tt.func,onNext:Tt.func},te.displayName="EkoGallery";var ee=e.memo(te);const ne=u("gallery-react");const ie=e.forwardRef(((t,n)=>{var i;e.useEffect((()=>(ne.setDataStorage("gallery-react",{config:t.config}),window.eko=window.eko||{},window.eko.config=t.config,window.eko.gallery={version:"4.0.1"},()=>{window.eko.config=void 0})),[t.config]);const{children:r,...o}=t;return void 0!==t.config?e.createElement(ee,R({ref:n},o,{key:null===(i=t.config.__autoGenerated)||void 0===i||null===(i=i.publishItem)||void 0===i?void 0:i.id})):r}));ie.propTypes={className:Tt.string,config:Tt.object,variantId:Tt.string,onEvent:Tt.func,instanceId:Tt.string,children:Tt.node},ie.displayName="EkoGalleryWrapper";var re,oe,se,ae,le,ce,ue,de,he,fe,pe,me,ge,ve,ye,be,ke,xe,we,_e,Te,Ie,Ee,Se,Ne,Ae,Me,Fe,Ce,Oe,Pe,Re,De,Be,Le,ze,We,Ue,$e,je,qe,Ve,He,Ge,Ke,Xe,Ye,Qe,Je,Ze,tn,en,nn,rn=e.memo(ie);const on=1,sn=2,an=4,ln=8,cn=16,un=1,dn=4,hn=8,fn=16,pn="[",mn="[!",gn="]",vn={},yn=Symbol(),bn="http://www.w3.org/1999/xhtml",kn=!1;var xn=Array.isArray,wn=Array.prototype.indexOf,_n=Array.from,Tn=Object.defineProperty,In=Object.getOwnPropertyDescriptor,En=Object.getOwnPropertyDescriptors,Sn=Object.prototype,Nn=Array.prototype,An=Object.getPrototypeOf,Mn=Object.isExtensible;function Fn(){var t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}}const Cn=2,On=4,Pn=8,Rn=1<<24,Dn=16,Bn=32,Ln=64,zn=128,Wn=512,Un=1024,$n=2048,jn=4096,qn=8192,Vn=16384,Hn=32768,Gn=65536,Kn=1<<17,Xn=1<<18,Yn=1<<19,Qn=1<<20,Jn=1<<25,Zn=32768,ti=1<<21,ei=1<<22,ni=1<<23,ii=Symbol("$state"),ri=Symbol("legacy props"),oi=Symbol(""),si=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ai=3,li=8;function ci(t){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function ui(t){console.warn("https://svelte.dev/e/hydration_mismatch")}let di,hi=!1;function fi(t){hi=t}function pi(t){if(null===t)throw ui(),vn;return di=t}function mi(){return pi(ho(di))}function gi(t){if(hi){if(null!==ho(di))throw ui(),vn;di=t}}function vi(t=!0){for(var e=0,n=di;;){if(n.nodeType===li){var i=n.data;if(i===gn){if(0===e)return n;e-=1}else i!==pn&&i!==mn||(e+=1)}var r=ho(n);t&&n.remove(),n=r}}function yi(t){if(!t||t.nodeType!==li)throw ui(),vn;return t.data}function bi(t){return t===this.v}function ki(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 xi=!1,wi=null;function _i(t){wi=t}function Ti(t){return Si().get(t)}function Ii(t,e=!1,n){wi={p:wi,i:!1,c:null,e:null,s:t,x:null,l:null}}function Ei(t){var e=wi,n=e.e;if(null!==n)for(var i of(e.e=null,n))_o(i);return e.i=!0,wi=e.p,{}}function Si(t){var e,n;return null===wi&&ci(),null!==(n=(e=wi).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}(wi)||void 0)}let Ni=[];function Ai(){var t=Ni;Ni=[],function(t){for(var e=0;e<t.length;e++)t[e]()}(t)}function Mi(t){if(0===Ni.length&&!Vi){var e=Ni;queueMicrotask((()=>{e===Ni&&Ai()}))}Ni.push(t)}function Fi(){for(;Ni.length>0;)Ai()}function Ci(t){var e=Vo;if(null===e)return $o.f|=ni,t;if(e.f&Hn)Oi(t,e);else{if(!(e.f&zn))throw t;e.b.error(t)}}function Oi(t,e){for(;null!==e;){if(e.f&zn)try{return void e.b.error(t)}catch(e){t=e}e=e.parent}throw t}const Pi=-7169;function Ri(t,e){t.f=t.f&Pi|e}function Di(t){t.f&Wn||null===t.deps?Ri(t,Un):Ri(t,jn)}function Bi(t){if(null!==t)for(const e of t)e.f&Cn&&e.f&Zn&&(e.f^=Zn,Bi(e.deps))}function Li(t,e,n){t.f&$n?e.add(t):t.f&jn&&n.add(t),Bi(t.deps),Ri(t,Un)}const zi=new Set;let Wi=null,Ui=null,$i=[],ji=null,qi=!1,Vi=!1;var Hi=new WeakMap,Gi=new WeakMap,Ki=new WeakMap,Xi=new WeakMap,Yi=new WeakMap,Qi=new WeakMap,Ji=new WeakMap,Zi=new WeakSet;class tr{constructor(){O(this,Zi),P(this,"committed",!1),P(this,"current",new Map),P(this,"previous",new Map),F(this,Hi,new Set),F(this,Gi,new Set),F(this,Ki,0),F(this,Xi,0),F(this,Yi,null),F(this,Qi,new Set),F(this,Ji,new Set),P(this,"skipped_effects",new Set),P(this,"is_fork",!1)}is_deferred(){return this.is_fork||M(Xi,this)>0}process(t){$i=[],this.apply();var e,n=[],i=[];for(const e of t)N(Zi,this,er).call(this,e,n,i);(this.is_fork||N(Zi,this,ir).call(this),this.is_deferred())?(N(Zi,this,nr).call(this,i),N(Zi,this,nr).call(this,n)):(Wi=null,lr(i),lr(n),null===(e=M(Yi,this))||void 0===e||e.resolve());Ui=null}capture(t,e){var n;(e===yn||this.previous.has(t)||this.previous.set(t,e),t.f&ni)||(this.current.set(t,t.v),null===(n=Ui)||void 0===n||n.set(t,t.v))}activate(){Wi=this,this.apply()}deactivate(){Wi===this&&(Wi=null,Ui=null)}flush(){if(this.activate(),$i.length>0){if(or(),null!==Wi&&Wi!==this)return}else 0===M(Ki,this)&&this.process([]);this.deactivate()}discard(){for(const t of M(Gi,this))t(this);M(Gi,this).clear()}increment(t){C(Ki,this,M(Ki,this)+1),t&&C(Xi,this,M(Xi,this)+1)}decrement(t){C(Ki,this,M(Ki,this)-1),t&&C(Xi,this,M(Xi,this)-1),this.revive()}revive(){for(const t of M(Qi,this))M(Ji,this).delete(t),Ri(t,$n),dr(t);for(const t of M(Ji,this))Ri(t,jn),dr(t);this.flush()}oncommit(t){M(Hi,this).add(t)}ondiscard(t){M(Gi,this).add(t)}settled(){var t;return(null!==(t=M(Yi,this))&&void 0!==t?t:C(Yi,this,Fn())).promise}static ensure(){if(null===Wi){const t=Wi=new tr;zi.add(Wi),Vi||tr.enqueue((()=>{Wi===t&&t.flush()}))}return Wi}static enqueue(t){Mi(t)}apply(){}}function er(t,e,n){t.f^=Un;for(var i=t.first,r=null;null!==i;){var o=i.f,s=!!(o&(Bn|Ln));if(!(s&&!!(o&Un)||!!(o&qn)||this.skipped_effects.has(i))&&null!==i.fn){s?i.f^=Un:null!==r&&o&(On|Pn|Rn)?r.b.defer_effect(i):o&On?e.push(i):is(i)&&(o&Dn&&M(Qi,this).add(i),ls(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 nr(t){for(var e=0;e<t.length;e+=1)Li(t[e],M(Qi,this),M(Ji,this))}function ir(){if(0===M(Xi,this)){for(const t of M(Hi,this))t();M(Hi,this).clear()}0===M(Ki,this)&&N(Zi,this,rr).call(this)}function rr(){if(zi.size>1){this.previous.clear();var t=Ui,e=!0;for(const t of zi){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=$i;$i=[];const e=new Set,o=new Map;for(const t of i)cr(t,r,e,o);if($i.length>0){Wi=t,t.apply();for(const e of $i)N(Zi,t,er).call(t,e,[],[]);t.deactivate()}$i=n}}Wi=null,Ui=t}this.committed=!0,zi.delete(this)}function or(){var t=Lo;qi=!0;try{var e=0;for(zo(!0);$i.length>0;){var n=tr.ensure();if(e++>1e3)sr();n.process($i),Kr.clear()}}finally{qi=!1,zo(t),ji=null}}function sr(){try{!function(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}()}catch(t){Oi(t,ji)}}let ar=null;function lr(t){var e=t.length;if(0!==e){for(var n=0;n<e;){var i,r=t[n++];if(!(r.f&(Vn|qn))&&is(r))if(ar=new Set,ls(r),null===r.deps&&null===r.first&&null===r.nodes&&(null===r.teardown&&null===r.ac?Co(r):r.fn=null),(null===(i=ar)||void 0===i?void 0:i.size)>0){Kr.clear();for(const t of ar){if(t.f&(Vn|qn))continue;const e=[t];let n=t.parent;for(;null!==n;)ar.has(n)&&(ar.delete(n),e.push(n)),n=n.parent;for(let t=e.length-1;t>=0;t--){const n=e[t];n.f&(Vn|qn)||ls(n)}}ar.clear()}}ar=null}}function cr(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&Cn?cr(r,e,n,i):t&(ei|Dn)&&!(t&$n)&&ur(r,e,i)&&(Ri(r,$n),dr(r))}}function ur(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&Cn&&ur(i,e,n))return n.set(i,!0),!0}return n.set(t,!1),!1}function dr(t){for(var e=ji=t;null!==e.parent;){var n=(e=e.parent).f;if(qi&&e===Vo&&n&Dn&&!(n&Xn))return;if(n&(Ln|Bn)){if(!(n&Un))return;e.f^=Un}}$i.push(e)}var hr=Gn|Yn|zn;var fr=new WeakMap,pr=new WeakMap,mr=new WeakMap,gr=new WeakMap,vr=new WeakMap,yr=new WeakMap,br=new WeakMap,kr=new WeakMap,xr=new WeakMap,wr=new WeakMap,_r=new WeakMap,Tr=new WeakMap,Ir=new WeakMap,Er=new WeakMap,Sr=new WeakMap,Nr=new WeakMap,Ar=new WeakMap,Mr=new WeakSet;class Fr{constructor(t,e,n){O(this,Mr),P(this,"parent",void 0),P(this,"is_pending",!1),F(this,fr,void 0),F(this,pr,hi?di:null),F(this,mr,void 0),F(this,gr,void 0),F(this,vr,void 0),F(this,yr,null),F(this,br,null),F(this,kr,null),F(this,xr,null),F(this,wr,null),F(this,_r,0),F(this,Tr,0),F(this,Ir,!1),F(this,Er,new Set),F(this,Sr,new Set),F(this,Nr,null),F(this,Ar,function(t){let e,n=0,i=Yr(0);return()=>{ko()&&(us(i),Io((()=>(0===n&&(e=fs((()=>t((()=>eo(i)))))),n+=1,()=>{Mi((()=>{var t;n-=1,0===n&&(null===(t=e)||void 0===t||t(),e=void 0,eo(i))}))}))))}}((()=>(C(Nr,this,Yr(M(_r,this))),()=>{C(Nr,this,null)})))),C(fr,this,t),C(mr,this,e),C(gr,this,n),this.parent=Vo.b,this.is_pending=!!M(mr,this).pending,C(vr,this,So((()=>{if(Vo.b=this,hi){const t=M(pr,this);mi();t.nodeType===li&&t.data===mn?N(Mr,this,Or).call(this):(N(Mr,this,Cr).call(this),0===M(Tr,this)&&(this.is_pending=!1))}else{var t=N(Mr,this,Pr).call(this);try{C(yr,this,No((()=>n(t))))}catch(t){this.error(t)}M(Tr,this)>0?N(Mr,this,Dr).call(this):this.is_pending=!1}return()=>{var t;null===(t=M(wr,this))||void 0===t||t.remove()}}),hr)),hi&&C(fr,this,di)}defer_effect(t){Li(t,M(Er,this),M(Sr,this))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!M(mr,this).pending}update_pending_count(t){N(Mr,this,Br).call(this,t),C(_r,this,M(_r,this)+t),M(Nr,this)&&to(M(Nr,this),M(_r,this))}get_effect_pending(){return M(Ar,this).call(this),us(M(Nr,this))}error(t){var e=M(mr,this).onerror;let n=M(mr,this).failed;if(M(Ir,this)||!e&&!n)throw t;M(yr,this)&&(Fo(M(yr,this)),C(yr,this,null)),M(br,this)&&(Fo(M(br,this)),C(br,this,null)),M(kr,this)&&(Fo(M(kr,this)),C(kr,this,null)),hi&&(pi(M(pr,this)),function(t=1){if(hi){for(var e=t,n=di;e--;)n=ho(n);di=n}}(),pi(vi()));var i=!1,r=!1;const o=()=>{i?console.warn("https://svelte.dev/e/svelte_boundary_reset_noop"):(i=!0,r&&function(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}(),tr.ensure(),C(_r,this,0),null!==M(kr,this)&&Oo(M(kr,this),(()=>{C(kr,this,null)})),this.is_pending=this.has_pending_snippet(),C(yr,this,N(Mr,this,Rr).call(this,(()=>(C(Ir,this,!1),No((()=>M(gr,this).call(this,M(fr,this)))))))),M(Tr,this)>0?N(Mr,this,Dr).call(this):this.is_pending=!1)};var s=$o;try{qo(null),r=!0,null==e||e(t,o),r=!1}catch(t){Oi(t,M(vr,this)&&M(vr,this).parent)}finally{qo(s)}n&&Mi((()=>{C(kr,this,N(Mr,this,Rr).call(this,(()=>{tr.ensure(),C(Ir,this,!0);try{return No((()=>{n(M(fr,this),(()=>t),(()=>o))}))}catch(t){return Oi(t,M(vr,this).parent),null}finally{C(Ir,this,!1)}})))}))}}function Cr(){try{C(yr,this,No((()=>M(gr,this).call(this,M(fr,this)))))}catch(t){this.error(t)}}function Or(){const t=M(mr,this).pending;t&&(C(br,this,No((()=>t(M(fr,this))))),tr.enqueue((()=>{var t=N(Mr,this,Pr).call(this);C(yr,this,N(Mr,this,Rr).call(this,(()=>(tr.ensure(),No((()=>M(gr,this).call(this,t))))))),M(Tr,this)>0?N(Mr,this,Dr).call(this):(Oo(M(br,this),(()=>{C(br,this,null)})),this.is_pending=!1)})))}function Pr(){var t=M(fr,this);return this.is_pending&&(C(wr,this,co()),M(fr,this).before(M(wr,this)),t=M(wr,this)),t}function Rr(t){var e=Vo,n=$o,i=wi;Ho(M(vr,this)),qo(M(vr,this)),_i(M(vr,this).ctx);try{return t()}catch(t){return Ci(t),null}finally{Ho(e),qo(n),_i(i)}}function Dr(){const t=M(mr,this).pending;null!==M(yr,this)&&(C(xr,this,document.createDocumentFragment()),M(xr,this).append(M(wr,this)),Bo(M(yr,this),M(xr,this))),null===M(br,this)&&C(br,this,No((()=>t(M(fr,this)))))}function Br(t){var e;if(this.has_pending_snippet()){if(C(Tr,this,M(Tr,this)+t),0===M(Tr,this)){this.is_pending=!1;for(const t of M(Er,this))Ri(t,$n),dr(t);for(const t of M(Sr,this))Ri(t,jn),dr(t);M(Er,this).clear(),M(Sr,this).clear(),M(br,this)&&Oo(M(br,this),(()=>{C(br,this,null)})),M(xr,this)&&(M(fr,this).before(M(xr,this)),C(xr,this,null))}}else this.parent&&N(Mr,e=this.parent,Br).call(e,t)}function Lr(t,e,n,i){const r=Wr;if(0!==n.length||0!==t.length){var o,s,a,l,c=Wi,u=Vo,d=(o=Vo,s=$o,a=wi,l=Wi,function(t=!0){Ho(o),qo(s),_i(a),t&&(null==l||l.activate())});t.length>0?Promise.all(t).then((()=>{d();try{return h()}finally{null==c||c.deactivate(),zr()}})):h()}else i(e.map(r));function h(){Promise.all(n.map((t=>Ur(t)))).then((t=>{d();try{i([...e.map(r),...t])}catch(t){u.f&Vn||Oi(t,u)}null==c||c.deactivate(),zr()})).catch((t=>{Oi(t,u)}))}}function zr(){Ho(null),qo(null),_i(null)}function Wr(t){var e=Cn|$n,n=null!==$o&&$o.f&Cn?$o:null;null!==Vo&&(Vo.f|=Yn);return{ctx:wi,deps:null,effects:null,equals:bi,f:e,fn:t,reactions:null,rv:0,v:yn,wv:0,parent:null!=n?n:Vo,ac:null}}function Ur(t,e,n){let i=Vo;null===i&&function(){throw new Error("https://svelte.dev/e/async_derived_orphan")}();var r=i.b,o=void 0,s=Yr(yn),a=!$o,l=new Map;return function(t){bo(ei|Yn,t,!0)}((()=>{var e=Fn();o=e.promise;try{Promise.resolve(t()).then(e.resolve,e.reject).then((()=>{n===Wi&&n.committed&&n.deactivate(),zr()}))}catch(t){e.reject(t),zr()}var n=Wi;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(si),l.delete(n),l.set(n,e)}const u=(t,e=void 0)=>{if(n.activate(),e)e!==si&&(s.f|=ni,to(s,e));else{s.f&ni&&(s.f^=ni),to(s,t);for(const[t,e]of l){if(l.delete(t),t===n)break;e.reject(si)}}a&&(r.update_pending_count(-1),n.decrement(c))};e.promise.then(u,(t=>u(null,t||"unknown")))})),xo((()=>{for(const t of l.values())t.reject(si)})),new Promise((t=>{!function e(n){function i(){n===o?t(s):e(o)}n.then(i,i)}(o)}))}function $r(t){const e=Wr(t);return Ko(e),e}function jr(t){const e=Wr(t);return e.equals=ki,e}function qr(t){var e=t.effects;if(null!==e){t.effects=null;for(var n=0;n<e.length;n+=1)Fo(e[n])}}function Vr(t){var e,n=Vo;Ho(function(t){for(var e=t.parent;null!==e;){if(!(e.f&Cn))return e.f&Vn?null:e;e=e.parent}return null}(t));try{t.f&=~Zn,qr(t),e=os(t)}finally{Ho(n)}return e}function Hr(t){var e,n,i=Vr(t);if(!t.equals(i)&&(t.wv=ns(),(null===(e=Wi)||void 0===e||!e.is_fork||null===t.deps)&&(t.v=i,null===t.deps)))return void Ri(t,Un);Wo||(null!==Ui?(ko()||null!==(n=Wi)&&void 0!==n&&n.is_fork)&&Ui.set(t,i):Di(t))}let Gr=new Set;const Kr=new Map;let Xr=!1;function Yr(t,e){return{f:0,v:t,reactions:null,equals:bi,rv:0,wv:0}}function Qr(t,e){const n=Yr(t);return Ko(n),n}function Jr(t,e=!1,n=!0){const i=Yr(t);return e||(i.equals=ki),i}function Zr(t,e,n=!1){var i;return null!==$o&&(!jo||$o.f&Kn)&&$o.f&(Cn|Dn|ei|Kn)&&(null===(i=Go)||void 0===i||!i.includes(t))&&function(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}(),to(t,n?io(e):e)}function to(t,e){if(!t.equals(e)){var n=t.v;Wo?Kr.set(t,e):Kr.set(t,n),t.v=e;var i=tr.ensure();if(i.capture(t,n),t.f&Cn){const e=t;t.f&$n&&Vr(e),Di(e)}t.wv=ns(),no(t,$n),null!==Vo&&Vo.f&Un&&!(Vo.f&(Bn|Ln))&&(null===Qo?function(t){Qo=t}([t]):Qo.push(t)),!i.is_fork&&Gr.size>0&&!Xr&&function(){Xr=!1;var t=Lo;zo(!0);const e=Array.from(Gr);try{for(const t of e)t.f&Un&&Ri(t,jn),is(t)&&ls(t)}finally{zo(t)}Gr.clear()}()}return e}function eo(t){Zr(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,a=!(s&$n);if(a&&Ri(o,e),s&Cn){var l,c=o;null===(l=Ui)||void 0===l||l.delete(c),s&Zn||(s&Wn&&(o.f|=Zn),no(c,jn))}else a&&(s&Dn&&null!==ar&&ar.add(o),dr(o))}}function io(t){if("object"!=typeof t||null===t||ii in t)return t;const e=An(t);if(e!==Sn&&e!==Nn)return t;var n=new Map,i=xn(t),r=Qr(0),o=ts,s=t=>{if(ts===o)return t();var e=$o,n=ts;qo(null),es(o);var i=t();return qo(e),es(n),i};return i&&n.set("length",Qr(t.length)),new Proxy(t,{defineProperty(t,e,i){"value"in i&&!1!==i.configurable&&!1!==i.enumerable&&!1!==i.writable||function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}();var r=n.get(e);return void 0===r?r=s((()=>{var t=Qr(i.value);return n.set(e,t),t})):Zr(r,i.value,!0),!0},deleteProperty(t,e){var i=n.get(e);if(void 0===i){if(e in t){const t=s((()=>Qr(yn)));n.set(e,t),eo(r)}}else Zr(i,yn),eo(r);return!0},get(e,i,r){var o;if(i===ii)return t;var a=n.get(i),l=i in e;if(void 0===a&&(!l||null!==(o=In(e,i))&&void 0!==o&&o.writable)&&(a=s((()=>Qr(io(l?e[i]:yn)))),n.set(i,a)),void 0!==a){var c=us(a);return c===yn?void 0:c}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=us(r))}else if(void 0===i){var o=n.get(e),s=null==o?void 0:o.v;if(void 0!==o&&s!==yn)return{enumerable:!0,configurable:!0,value:s,writable:!0}}return i},has(t,e){var i;if(e===ii)return!0;var r=n.get(e),o=void 0!==r&&r.v!==yn||Reflect.has(t,e);if((void 0!==r||null!==Vo&&(!o||null!==(i=In(t,e))&&void 0!==i&&i.writable))&&(void 0===r&&(r=s((()=>Qr(o?io(t[e]):yn))),n.set(e,r)),us(r)===yn))return!1;return o},set(t,e,o,a){var l,c=n.get(e),u=e in t;if(i&&"length"===e)for(var d=o;d<c.v;d+=1){var h=n.get(d+"");void 0!==h?Zr(h,yn):d in t&&(h=s((()=>Qr(yn))),n.set(d+"",h))}void 0===c?(!u||null!==(l=In(t,e))&&void 0!==l&&l.writable)&&(Zr(c=s((()=>Qr(void 0))),io(o)),n.set(e,c)):(u=c.v!==yn,Zr(c,s((()=>io(o)))));var f=Reflect.getOwnPropertyDescriptor(t,e);if(null!=f&&f.set&&f.set.call(a,o),!u){if(i&&"string"==typeof e){var p=n.get("length"),m=Number(e);Number.isInteger(m)&&m>=p.v&&Zr(p,m+1)}eo(r)}return!0},ownKeys(t){us(r);var e=Reflect.ownKeys(t).filter((t=>{var e=n.get(t);return void 0===e||e.v!==yn}));for(var[i,o]of n)o.v===yn||i in t||e.push(i);return e},setPrototypeOf(){!function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}()}})}var ro,oo,so,ao;function lo(){if(void 0===ro){ro=window,oo=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,n=Text.prototype;so=In(e,"firstChild").get,ao=In(e,"nextSibling").get,Mn(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),Mn(n)&&(n.__t=void 0)}}function co(t=""){return document.createTextNode(t)}function uo(t){return so.call(t)}function ho(t){return ao.call(t)}function fo(t,e){if(!hi)return uo(t);var n=uo(di);if(null===n)n=di.appendChild(co());else if(e&&n.nodeType!==ai){var i,r=co();return null===(i=n)||void 0===i||i.before(r),pi(r),r}return pi(n),n}function po(t,e=!1){var n;if(!hi){var i=uo(t);return i instanceof Comment&&""===i.data?ho(i):i}if(e&&(null===(n=di)||void 0===n?void 0:n.nodeType)!==ai){var r,o=co();return null===(r=di)||void 0===r||r.before(o),pi(o),o}return di}function mo(t,e=1,n=!1){var i;let r=hi?di:t;for(var o;e--;)o=r,r=ho(r);if(!hi)return r;if(n&&(null===(i=r)||void 0===i?void 0:i.nodeType)!==ai){var s,a=co();if(null===r)null===(s=o)||void 0===s||s.after(a);else r.before(a);return pi(a),a}return pi(r),r}function go(t){t.textContent=""}function vo(t){var e=$o,n=Vo;qo(null),Ho(null);try{return t()}finally{qo(e),Ho(n)}}function yo(t){null===Vo&&(null===$o&&function(){throw new Error("https://svelte.dev/e/effect_orphan")}(),function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}()),Wo&&function(){throw new Error("https://svelte.dev/e/effect_in_teardown")}()}function bo(t,e,n){var i=Vo;null!==i&&i.f&qn&&(t|=qn);var r={ctx:wi,deps:null,nodes:null,f:t|$n|Wn,first:null,fn:e,last:null,next:null,parent:i,b:i&&i.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{ls(r),r.f|=Hn}catch(t){throw Fo(r),t}else null!==e&&dr(r);var o=r;if(!n||null!==o.deps||null!==o.teardown||null!==o.nodes||o.first!==o.last||o.f&Yn||(o=o.first,t&Dn&&t&Gn&&null!==o&&(o.f|=Gn)),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!==$o&&$o.f&Cn&&!(t&Ln))){var s,a=$o;(null!==(s=a.effects)&&void 0!==s?s:a.effects=[]).push(o)}return r}function ko(){return null!==$o&&!jo}function xo(t){const e=bo(Pn,null,!1);return Ri(e,Un),e.teardown=t,e}function wo(t){yo();var e=Vo.f;if(!!($o||!(e&Bn)||e&Hn))return _o(t);var n,i=wi;(null!==(n=i.e)&&void 0!==n?n:i.e=[]).push(t)}function _o(t){return bo(On|Qn,t,!1)}function To(t){return bo(On,t,!1)}function Io(t,e=0){return bo(Pn|e,t,!0)}function Eo(t,e=[],n=[],i=[]){Lr(i,e,n,(e=>{bo(Pn,(()=>t(...e.map(us))),!0)}))}function So(t,e=0){return bo(Dn|e,t,!0)}function No(t){return bo(Bn|Yn,t,!0)}function Ao(t){var e=t.teardown;if(null!==e){const t=Wo,n=$o;Uo(!0),qo(null);try{e.call(null)}finally{Uo(t),qo(n)}}}function Mo(t,e=!1){var n=t.first;for(t.first=t.last=null;null!==n;){const t=n.ac;null!==t&&vo((()=>{t.abort(si)}));var i=n.next;n.f&Ln?n.parent=null:Fo(n,e),n=i}}function Fo(t,e=!0){var n=!1;(e||t.f&Xn)&&null!==t.nodes&&null!==t.nodes.end&&(!function(t,e){for(;null!==t;){var n=t===e?null:ho(t);t.remove(),t=n}}(t.nodes.start,t.nodes.end),n=!0),Mo(t,e&&!n),as(t,0),Ri(t,Vn);var i=t.nodes&&t.nodes.t;if(null!==i)for(const t of i)t.stop();Ao(t);var r=t.parent;null!==r&&null!==r.first&&Co(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=null}function Co(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 Oo(t,e,n=!0){var i=[];Po(t,i,!0);var r=()=>{n&&Fo(t),e&&e()},o=i.length;if(o>0){var s=()=>--o||r();for(var a of i)a.out(s)}else r()}function Po(t,e,n){if(!(t.f&qn)){t.f^=qn;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;Po(r,e,!!(!!(r.f&Gn)||!!(r.f&Bn)&&!!(t.f&Dn))&&n),r=o}}}function Ro(t){Do(t,!0)}function Do(t,e){if(t.f&qn){t.f^=qn,t.f&Un||(Ri(t,$n),dr(t));for(var n=t.first;null!==n;){var i=n.next;Do(n,!!(!!(n.f&Gn)||!!(n.f&Bn))&&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 Bo(t,e){if(t.nodes)for(var n=t.nodes.start,i=t.nodes.end;null!==n;){var r=n===i?null:ho(n);e.append(n),n=r}}let Lo=!1;function zo(t){Lo=t}let Wo=!1;function Uo(t){Wo=t}let $o=null,jo=!1;function qo(t){$o=t}let Vo=null;function Ho(t){Vo=t}let Go=null;function Ko(t){null!==$o&&(null===Go?Go=[t]:Go.push(t))}let Xo=null,Yo=0,Qo=null;let Jo=1,Zo=0,ts=Zo;function es(t){ts=t}function ns(){return++Jo}function is(t){var e=t.f;if(e&$n)return!0;if(e&Cn&&(t.f&=~Zn),e&jn){for(var n=t.deps,i=n.length,r=0;r<i;r++){var o=n[r];if(is(o)&&Hr(o),o.wv>t.wv)return!0}e&Wn&&null===Ui&&Ri(t,Un)}return!1}function rs(t,e,n=!0){var i,r=t.reactions;if(null!==r&&(null===(i=Go)||void 0===i||!i.includes(t)))for(var o=0;o<r.length;o++){var s=r[o];s.f&Cn?rs(s,e,!1):e===s&&(n?Ri(s,$n):s.f&Un&&Ri(s,jn),dr(s))}}function os(t){var e=Xo,n=Yo,i=Qo,r=$o,o=Go,s=wi,a=jo,l=ts,c=t.f;Xo=null,Yo=0,Qo=null,$o=c&(Bn|Ln)?null:t,Go=null,_i(t.ctx),jo=!1,ts=++Zo,null!==t.ac&&(vo((()=>{t.ac.abort(si)})),t.ac=null);try{t.f|=ti;var u=(0,t.fn)(),d=t.deps;if(null!==Xo){var h;if(as(t,Yo),null!==d&&Yo>0)for(d.length=Yo+Xo.length,h=0;h<Xo.length;h++)d[Yo+h]=Xo[h];else t.deps=d=Xo;if(ko()&&t.f&Wn)for(h=Yo;h<d.length;h++){var f,p;(null!==(p=(f=d[h]).reactions)&&void 0!==p?p:f.reactions=[]).push(t)}}else null!==d&&Yo<d.length&&(as(t,Yo),d.length=Yo);if(!(null===Qo||jo||null===d||t.f&(Cn|jn|$n)))for(h=0;h<Qo.length;h++)rs(Qo[h],t);return null!==r&&r!==t&&(Zo++,null!==Qo&&(null===i?i=Qo:i.push(...Qo))),t.f&ni&&(t.f^=ni),u}catch(t){return Ci(t)}finally{t.f^=ti,Xo=e,Yo=n,Qo=i,$o=r,Go=o,_i(s),jo=a,ts=l}}function ss(t,e){let n=e.reactions;if(null!==n){var i=wn.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&Cn&&(null===Xo||!Xo.includes(e))){var o=e;o.f&Wn&&(o.f^=Wn,o.f&=~Zn),Di(o),qr(o),as(o,0)}}function as(t,e){var n=t.deps;if(null!==n)for(var i=e;i<n.length;i++)ss(t,n[i])}function ls(t){var e=t.f;if(!(e&Vn)){Ri(t,Un);var n=Vo,i=Lo;Vo=t,Lo=!0;try{e&(Dn|Rn)?function(t){for(var e=t.first;null!==e;){var n=e.next;e.f&Bn||Fo(e),e=n}}(t):Mo(t),Ao(t);var r=os(t);t.teardown="function"==typeof r?r:null,t.wv=Jo,kn&&xi&&t.f&$n&&t.deps}finally{Lo=i,Vo=n}}}async function cs(){await Promise.resolve(),function(){var t=Vi;Vi=!0;try{for(;;){var e;if(Fi(),0===$i.length&&(null===(e=Wi)||void 0===e||e.flush(),0===$i.length))return void(ji=null);or()}}finally{Vi=t}}()}function us(t){var e,n,i=!!(t.f&Cn);if(null!==$o&&!jo&&!(null!==Vo&&!!(Vo.f&Vn)||null!==(n=Go)&&void 0!==n&&n.includes(t))){var r=$o.deps;if($o.f&ti)t.rv<Zo&&(t.rv=Zo,null===Xo&&null!==r&&r[Yo]===t?Yo++:null===Xo?Xo=[t]:Xo.includes(t)||Xo.push(t));else{var o,s;(null!==(s=(o=$o).deps)&&void 0!==s?s:o.deps=[]).push(t);var a=t.reactions;null===a?t.reactions=[$o]:a.includes($o)||a.push($o)}}if(Wo&&Kr.has(t))return Kr.get(t);if(i){var l=t;if(Wo){var c=l.v;return(l.f&Un||null===l.reactions)&&!hs(l)||(c=Vr(l)),Kr.set(l,c),c}var u=!(l.f&Wn)&&!jo&&null!==$o&&(Lo||!!($o.f&Wn)),d=null===l.deps;is(l)&&(u&&(l.f|=Wn),Hr(l)),u&&!d&&ds(l)}if(null!==(e=Ui)&&void 0!==e&&e.has(t))return Ui.get(t);if(t.f&ni)throw t.v;return t.v}function ds(t){if(null!==t.deps){t.f|=Wn;for(const n of t.deps){var e;(null!==(e=n.reactions)&&void 0!==e?e:n.reactions=[]).push(t),n.f&Cn&&!(n.f&Wn)&&ds(n)}}}function hs(t){if(t.v===yn)return!0;if(null===t.deps)return!1;for(const e of t.deps){if(Kr.has(e))return!0;if(e.f&Cn&&hs(e))return!0}return!1}function fs(t){var e=jo;try{return jo=!0,t()}finally{jo=e}}const ps=new Set,ms=new Set;function gs(t,e,n,i,r){var o={capture:i,passive:r},s=function(t,e,n,i={}){function r(t){if(i.capture||bs.call(e,t),!t.cancelBubble)return vo((()=>null==n?void 0:n.call(this,t)))}return t.startsWith("pointer")||t.startsWith("touch")||"wheel"===t?Mi((()=>{e.addEventListener(t,r,i)})):e.addEventListener(t,r,i),r}(t,e,n,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&xo((()=>{e.removeEventListener(t,s,o)}))}function vs(t){for(var e=0;e<t.length;e++)ps.add(t[e]);for(var n of ms)n(t)}let ys=null;function bs(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;ys=t;var a=0,l=ys===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){Tn(t,"currentTarget",{configurable:!0,get:()=>s||i});var d=$o,h=Vo;qo(null),Ho(null);try{for(var f,p=[];null!==s;){var m=s.assignedSlot||s.parentNode||s.host||null;try{var g=s["__"+r];null==g||s.disabled&&t.target!==s||g.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,qo(d),Ho(h)}}}function ks(t,e){var n=Vo;null===n.nodes&&(n.nodes={start:t,end:e,a:null,t:null})}function xs(t,e){var n,i=!!(1&e),r=!!(2&e),o=!t.startsWith("<!>");return()=>{if(hi)return ks(di,null),di;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||oo?document.importNode(n,!0):n.cloneNode(!0);i?ks(uo(a),a.lastChild):ks(a,a);return a}}function ws(){if(hi)return ks(di,null),di;var t=document.createDocumentFragment(),e=document.createComment(""),n=co();return t.append(e,n),ks(e,n),t}function _s(t,e){if(hi){var n=Vo;return n.f&Hn&&null!==n.nodes.end||(n.nodes.end=di),void mi()}null!==t&&t.before(e)}const Ts=["touchstart","touchmove"];function Is(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 Es(t,e){return As(t,e)}function Ss(t,e){var n;lo(),e.intro=null!==(n=e.intro)&&void 0!==n&&n;const i=e.target,r=hi,o=di;try{for(var s=uo(i);s&&(s.nodeType!==li||s.data!==pn);)s=ho(s);if(!s)throw vn;fi(!0),pi(s);const n=As(t,{...e,anchor:s});return fi(!1),n}catch(n){if(n instanceof Error&&n.message.split("\n").some((t=>t.startsWith("https://svelte.dev/e/"))))throw n;return n!==vn&&console.warn("Failed to hydrate: ",n),!1===e.recover&&function(){throw new Error("https://svelte.dev/e/hydration_failed")}(),lo(),go(i),fi(!1),Es(t,e)}finally{fi(r),pi(o)}}const Ns=new Map;function As(t,{target:e,anchor:n,props:i={},events:r,context:o,intro:s=!0}){lo();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,Ts.includes(s));e.addEventListener(i,bs,{passive:r});var o=Ns.get(i);void 0===o?(document.addEventListener(i,bs,{passive:r}),Ns.set(i,1)):Ns.set(i,o+1)}}var s};l(_n(ps)),ms.add(l);var c=void 0,u=function(t){tr.ensure();const e=bo(Ln|Yn,t,!0);return(t={})=>new Promise((n=>{t.outro?Oo(e,(()=>{Fo(e),n(void 0)})):(Fo(e),n(void 0))}))}((()=>{var s=null!=n?n:e.appendChild(co());return function(t,e,n){new Fr(t,e,n)}(s,{pending:()=>{}},(e=>{o&&(Ii({}),wi.c=o);if(r&&(i.$$events=r),hi&&ks(e,null),c=t(e,i)||{},hi&&(Vo.nodes.end=di,null===di||di.nodeType!==li||di.data!==gn))throw ui(),vn;o&&Ei()})),()=>{for(var t of a){e.removeEventListener(t,bs);var i=Ns.get(t);0==--i?(document.removeEventListener(t,bs),Ns.delete(t)):Ns.set(t,i)}var r;(ms.delete(l),s!==n)&&(null===(r=s.parentNode)||void 0===r||r.removeChild(s))}}));return Ms.set(c,u),c}let Ms=new WeakMap;class Fs{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=Wi;if(this.#t.has(t)){var e=this.#t.get(t),n=this.#e.get(e);if(n)Ro(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&&(Fo(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();Bo(i,e),e.append(co()),this.#n.set(t,{effect:i,fragment:e})}else Fo(i);this.#i.delete(t),this.#e.delete(t)};this.#r||!n?(this.#i.add(t),Oo(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)||(Fo(n.effect),this.#n.delete(t))};ensure(t,e){var n=Wi;!e||this.#e.has(t)||this.#n.has(t)||this.#e.set(t,No((()=>e(this.anchor)))),this.#t.set(n,t),hi&&(this.anchor=di),this.#o()}}function Cs(t,e,n=!1){hi&&mi();var i=new Fs(t);function r(e,n){if(hi){if(e===(yi(t)===mn)){var r=vi();return pi(r),i.anchor=r,fi(!1),i.ensure(e,n),void fi(!0)}}i.ensure(e,n)}So((()=>{var t=!1;e(((e,n=!0)=>{t=!0,r(n,e)})),t||r(!1,null)}),n?Gn:0)}function Os(t,e){return e}function Ps(t,e=!0){for(var n=0;n<t.length;n++)Fo(t[n],e)}var Rs;function Ds(t,e,n,i,r,o=null){var s=t,a=new Map;if(!!(e&an)){var l=t;s=hi?pi(uo(l)):l.appendChild(co())}hi&&mi();var c,u=null,d=jr((()=>{var t=n();return xn(t)?t:null==t?[]:_n(t)})),h=!0;function f(){m.fallback=u,function(t,e,n,i,r){var o,s,a,l,c,u=!!(i&ln),d=e.length,h=t.items,f=t.effect.first,p=null,m=[],g=[];if(u)for(c=0;c<d;c+=1){var v,y;if(a=r(e[c],c),!((l=h.get(a).e).f&Jn))null===(v=l.nodes)||void 0===v||null===(v=v.a)||void 0===v||v.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&Jn){if(l.f^=Jn,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),zs(t,p,l),zs(t,l,b),Ls(l,b,n),m=[],g=[],f=(p=l).next;continue}Ls(l,null,n)}var k,x;if(l.f&qn)if(Ro(l),u)null===(k=l.nodes)||void 0===k||null===(k=k.a)||void 0===k||k.unfix(),(null!==(x=s)&&void 0!==x?x:s=new Set).delete(l);if(l!==f){if(void 0!==o&&o.has(l)){if(m.length<g.length){var w,_=g[0];p=_.prev;var T=m[0],I=m[m.length-1];for(w=0;w<m.length;w+=1)Ls(m[w],_,n);for(w=0;w<g.length;w+=1)o.delete(g[w]);zs(t,T.prev,I.next),zs(t,p,T),zs(t,I,_),f=_,p=I,c-=1,m=[],g=[]}else o.delete(l),Ls(l,f,n),zs(t,l.prev,l.next),zs(t,l,null===p?t.effect.first:p.next),zs(t,p,l),p=l;continue}for(m=[],g=[];null!==f&&f!==l;){var E;(null!==(E=o)&&void 0!==E?E:o=new Set).add(f),g.push(f),f=f.next}if(null===f)continue}l.f&Jn||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)Ps(_n(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 N=[];if(void 0!==o)for(l of o)l.f&qn||N.push(l);for(;null!==f;)f.f&qn||f===t.fallback||N.push(f),f=f.next;var A=N.length;if(A>0){var M=i&an&&0===d?n:null;if(u){for(c=0;c<A;c+=1){var F;null===(F=N[c].nodes)||void 0===F||null===(F=F.a)||void 0===F||F.measure()}for(c=0;c<A;c+=1){var C;null===(C=N[c].nodes)||void 0===C||null===(C=C.a)||void 0===C||C.fix()}}!function(t,e,n){for(var i,r=e.length,o=e.length,s=0;s<r;s++){let n=e[s];Oo(n,(()=>{if(i){if(i.pending.delete(n),i.done.add(n),0===i.pending.size){var e=t.outrogroups;Ps(_n(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;go(c),c.append(l),t.items.clear()}Ps(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,N,M)}}u&&Mi((()=>{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&Jn?(u.f^=Jn,Ls(u,null,s)):Ro(u):Oo(u,(()=>{u=null})))}var p=So((()=>{var t=(c=us(d)).length;let l=!1;hi&&(yi(s)===mn!==(0===t)&&(pi(s=vi()),fi(!1),l=!0));for(var p=new Set,m=0;m<t;m+=1){hi&&di.nodeType===li&&di.data===gn&&(s=di,l=!0,fi(!1));var g,v=c[m],y=i(v,m),b=h?null:a.get(y);if(b)b.v&&to(b.v,v),b.i&&to(b.i,m);else b=Bs(a,h?s:null!==(g=Rs)&&void 0!==g?g:Rs=co(),v,y,m,r,e,n),h||(b.e.f|=Jn),a.set(y,b);p.add(y)}0===t&&o&&!u&&(h?u=No((()=>o(s))):(u=No((()=>{var t;return o(null!==(t=Rs)&&void 0!==t?t:Rs=co())}))).f|=Jn),hi&&t>0&&pi(vi()),h||f(),l&&fi(!0),us(d)})),m={effect:p,items:a,outrogroups:null,fallback:u};h=!1,hi&&(s=di)}function Bs(t,e,n,i,r,o,s,a){var l=s&on?s&cn?Yr(n):Jr(n,!1,!1):null,c=s&sn?Yr(r):null;return{v:l,i:c,e:No((()=>(o(e,null!=l?l:n,null!=c?c:r,a),()=>{t.delete(i)})))}}function Ls(t,e,n){if(t.nodes)for(var i=t.nodes.start,r=t.nodes.end,o=!e||e.f&Jn?n:e.nodes.start;null!==i;){var s=ho(i);if(o.before(i),i===r)return;i=s}}function zs(t,e,n){null===e?t.effect.first=n:e.next=n,null===n?t.effect.last=e:n.prev=e}const Ws=[..." \t\n\r\f \v\ufeff"];function Us(t,e,n,i,r,o){var s=t.__className;if(hi||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&&!Ws.includes(i[s-1])||a!==i.length&&!Ws.includes(i[a])?s=a:i=(0===s?"":i.substring(0,s))+i.substring(a+1)}return""===i?null:i}(n,i,o);hi&&a===t.getAttribute("class")||(null==a?t.removeAttribute("class"):t.className=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 $s(t,e,n,i){var r=t.__style;if(hi||r!==e){var o=function(t){return null==t?null:String(t)}(e);hi&&o===t.getAttribute("style")||(null==o?t.removeAttribute("style"):t.style.cssText=o),t.__style=e}return i}const js=Symbol("is custom element"),qs=Symbol("is html");function Vs(t,e,n,i){var r=function(t){var e;return null!==(e=t.__attributes)&&void 0!==e?e:t.__attributes={[js]:t.nodeName.includes("-"),[qs]:t.namespaceURI===bn}}(t);hi&&(r[e]=t.getAttribute(e),"src"===e||"srcset"===e||"href"===e&&"LINK"===t.nodeName)||r[e]!==(r[e]=n)&&("loading"===e&&(t[oi]=n),null==n?t.removeAttribute(e):"string"!=typeof n&&function(t){var e,n=t.getAttribute("is")||t.nodeName,i=Hs.get(n);if(i)return i;Hs.set(n,i=[]);var r=t,o=Element.prototype;for(;o!==r;){for(var s in e=En(r))e[s].set&&i.push(s);r=An(r)}return i}(t).includes(e)?t[e]=n:t.setAttribute(e,n))}var Hs=new Map;var Gs=new WeakMap,Ks=new WeakMap,Xs=new WeakMap,Ys=new WeakSet;class Qs{constructor(t){O(this,Ys),F(this,Gs,new WeakMap),F(this,Ks,void 0),F(this,Xs,void 0),C(Xs,this,t)}observe(t,e){var n=M(Gs,this).get(t)||new Set;return n.add(e),M(Gs,this).set(t,n),N(Ys,this,Js).call(this).observe(t,M(Xs,this)),()=>{var n=M(Gs,this).get(t);n.delete(e),0===n.size&&(M(Gs,this).delete(t),M(Ks,this).unobserve(t))}}}function Js(){var t;return null!==(t=M(Ks,this))&&void 0!==t?t:C(Ks,this,new ResizeObserver((t=>{for(var e of t)for(var n of(re.entries.set(e.target,e),M(Gs,this).get(e.target)||[]))n(e)})))}re=Qs,P(Qs,"entries",new WeakMap);var Zs=new Qs({box:"content-box"}),ta=new Qs({box:"border-box"});function ea(t,e,n){xo(Zs.observe(t,(t=>n(t[e]))))}function na(t,e,n){var i=ta.observe(t,(()=>n(t[e])));To((()=>(fs((()=>n(t[e]))),i)))}function ia(t,e){return t===e||(null==t?void 0:t[ii])===e}function ra(t={},e,n,i){return To((()=>{var i,r;return Io((()=>{i=r,r=[],fs((()=>{t!==n(...r)&&(e(t,...r),i&&ia(n(...i),t)&&e(null,...i))}))})),()=>{Mi((()=>{r&&ia(n(...r),t)&&e(null,...r)}))}})),t}let oa=!1;function sa(t,e,n,i){var r,o,s=!!(n&hn),a=!!(n&fn),l=i,c=!0,u=()=>(c&&(c=!1,l=a?fs(i):i),l);if(s){var d,h,f=ii in t||ri in t;r=null!==(d=null===(h=In(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=oa;try{return oa=!1,[t(),oa]}finally{oa=e}}((()=>t[e])):o=t[e],void 0===o&&void 0!==i&&(o=u(),r&&(!function(){throw new Error("https://svelte.dev/e/props_invalid_value")}(),r(o))),p=()=>{var n=t[e];return void 0===n?u():(c=!0,n)},!(n&dn))return p;if(r){var g=t.$$legacy;return function(t,e){return arguments.length>0?((!e||g||m)&&r(e?p():t),t):p()}}var v=!1,y=(n&un?Wr:jr)((()=>(v=!1,p())));s&&us(y);var b=Vo;return function(t,e){if(arguments.length>0){const n=e?us(y):s?io(t):t;return Zr(y,n),v=!0,void 0!==l&&(l=n),t}return Wo&&v||b.f&Vn?y.v:us(y)}}var aa,la,ca,ua;"undefined"!=typeof window&&(null!==(la=(aa=null!==(ua=(ca=window).__svelte)&&void 0!==ua?ua:ca.__svelte={}).v)&&void 0!==la?la:aa.v=new Set).add("5");function da(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}class ha{constructor({position:t,galleryState:e,config:n}){this.config=n,this.position=t,this.galleryState=e,this.name=n.name;const{variantId:i,itemIndex:r,moduleIndex:o}=t;this.id=`${n.itemType}_${i}_${r}_${o}`,da(this)}#a=Qr(io({}));#l=Qr(null);#c=Qr(null);id;player;position;config;timeline;moduleEndListener;hasDuration=!1;coverAssets=[];get state(){return us(this.#a)}set state(t){Zr(this.#a,t,!0)}get cover(){return us(this.#l)}set cover(t){Zr(this.#l,t)}get Component(){return us(this.#c)}set Component(t){Zr(this.#c,t)}emitModuleEnd(){var t;null===(t=this.moduleEndListener)||void 0===t||t.call(this)}start(t){this.player=t}setPosition(){this.galleryState.playingModulePosition=this.position}play(){this.timeline.getNodesAtTime(0)[0].once("nodestart",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}}function fa(t,e,n){return n.addNode({id:t,manifestRef:{type:"assets-delivery-service",assetId:e.entity.entityId,assetRevision:e.entity.entityRevision,availableEncodeProfiles:e.availableEncodeProfiles}})}var pa=xs('<h3 class="svelte-17x2i38"> </h3>'),ma=xs('<p class="svelte-17x2i38"> </p>'),ga=xs('<span class="svelte-17x2i38"> </span>'),va=xs('<div><button class="svelte-17x2i38"><!> <!> <!></button></div>'),ya=xs('<div class="textBoxDescriptionBox svelte-17x2i38" aria-roledescription="Feature description box"><!></div>');function ba(t,e){const n=$r((()=>e.state.textBox));!function(t,e){Ii(e,!0);let n=sa(e,"textBox",3,null),i=sa(e,"isMobile",3,!1),r=Qr(!1),o=Qr(0),s=Qr(null),a=Qr(null),l=Qr(null),c=$r((()=>{var t;return(null===(t=us(l))||void 0===t?void 0:t.blockSize)||20})),u=$r((()=>{var t,e,n,i;return(null===(t=us(a))||void 0===t?void 0:t.inlineSize)-us(c)>(null===(e=us(s))||void 0===e?void 0:e.clientWidth)||(null===(n=us(s))||void 0===n?void 0:n.scrollHeight)>(null===(i=us(s))||void 0===i?void 0:i.clientHeight)}));function d(){Zr(r,!us(r))}var h=ws(),f=po(h),p=t=>{var e=ya(),c=fo(e),h=t=>{var e=va(),c=fo(e);c.__click=d;var h=fo(c),f=t=>{var e=pa(),i=fo(e,!0);gi(e),Eo((()=>Is(i,n().title))),_s(t,e)};Cs(h,(t=>{var e;i()&&null!==(e=n())&&void 0!==e&&e.title&&t(f)}));var p=mo(h,2),m=t=>{var e=ma(),i=fo(e,!0);gi(e),ra(e,(t=>Zr(s,t)),(()=>us(s))),Eo((()=>Is(i,n().description))),ea(e,"contentBoxSize",(t=>Zr(a,t))),_s(t,e)};Cs(p,(t=>{(!i()||i()&&us(r))&&t(m)}));var g=mo(p,2),v=t=>{var e=ga(),n=fo(e);gi(e),Eo((()=>Is(n,"Read "+(us(r)?"less":"more")))),ea(e,"contentBoxSize",(t=>Zr(l,t))),_s(t,e)};Cs(g,(t=>{(i()||!i()&&(us(u)||us(r)))&&t(v)})),gi(c),gi(e),Eo((()=>{var t;Us(e,0,"step-description "+(us(r)?"expanded":""),"svelte-17x2i38"),$s(e,`height: ${null!==(t=us(o))&&void 0!==t?t:""}px`)})),na(c,"clientHeight",(t=>Zr(o,t))),_s(t,e)};Cs(c,(t=>{var e;null!==(e=n())&&void 0!==e&&e.description&&t(h)})),gi(e),Eo((()=>$s(e,`padding: ${i()?"8px 16px":"16px 16px 56px 16px"};`))),_s(t,e)};Cs(f,(t=>{var e,i;(null!==(e=n())&&void 0!==e&&e.title||null!==(i=n())&&void 0!==i&&i.description)&&t(p)})),_s(t,h),Ei()}(t,{get textBox(){return us(n)},get isMobile(){return e.isMobile}})}vs(["click"]);var ka=xs('<div class="toggle-option-container svelte-16pmvvn"><button> </button></div>'),xa=xs('<div class="toggle-container svelte-16pmvvn"><div></div></div>');function wa(t,e){const n=$r((()=>e.state.options)),i=$r((()=>e.state.currentOptionIndex)),r=$r((()=>e.state.onOptionClicked));var o=xa(),s=fo(o);Ds(s,21,(()=>us(n)),Os,((t,e,n)=>{var o=ka();$s(o,`--button-index: ${n};`);var s=fo(o);let a;s.__click=()=>us(r)(n);var l=fo(s,!0);gi(s),gi(o),Eo((()=>{a=Us(s,0,"toggle-option-button svelte-16pmvvn",null,a,{selected:us(i)===n}),Is(l,us(e).label)})),_s(t,o)})),gi(s),gi(o),Eo((()=>{var t;return Us(s,0,`toggle-options selected-${null!==(t=us(i))&&void 0!==t?t:""}`,"svelte-16pmvvn")})),_s(t,o)}vs(["click"]);var _a=new WeakSet;function Ta(t){var e,n;t!==this.state.currentOptionIndex&&(this.state.currentOptionIndex=t,this.cover=this.coverAssets[t],this.synced?this.switchTo(t):(this.timeline=null===(e=this.timelines)||void 0===e?void 0:e[t],null===(n=this.player)||void 0===n||n.switchTimeline(this.timeline)))}const Ia=(t,e,n)=>n>e?e:n<t?t:n;function Ea(t,e){return e?`${t}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${e}`:t}let Sa=()=>{},Na=()=>{};function Aa(t){let e;return()=>(void 0===e&&(e=t()),e)}"undefined"!=typeof process&&"production"!==(null===(oe=process.env)||void 0===oe?void 0:oe.NODE_ENV)&&(Sa=(t,e,n)=>{t||"undefined"==typeof console||console.warn(Ea(e,n))},Na=(t,e,n)=>{if(!t)throw new Error(Ea(e,n))});const Ma=t=>t,Fa=t=>1e3*t,Ca=t=>t/1e3;const Oa=t=>Array.isArray(t)&&"number"==typeof t[0],Pa=(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)})`},Ra=2e4;function Da(t){let e=0;let n=t.next(e);for(;!n.done&&e<Ra;)e+=50,n=t.next(e);return e>=Ra?1/0:e}const Ba=5;const La={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},za=.001;function Wa({duration:t=La.duration,bounce:e=La.bounce,velocity:n=La.velocity,mass:i=La.mass}){let r,o;Sa(t<=Fa(La.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let s=1-e;s=Ia(La.minDamping,La.maxDamping,s),t=Ia(La.minDuration,La.maxDuration,Ca(t)),s<1?(r=e=>{const i=e*s,r=i*t,o=i-n,a=$a(e,s),l=Math.exp(-r);return za-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=$a(Math.pow(e,2),s);return(-r(e)+za>0?-1:1)*((o-a)*l)/c}):(r=e=>Math.exp(-e*t)*((e-n)*t+1)-za,o=e=>Math.exp(-e*t)*(t*t*(n-e)));const a=function(t,e,n){let i=n;for(let n=1;n<Ua;n++)i-=t(i)/e(i);return i}(r,o,5/t);if(t=Fa(t),isNaN(a))return{stiffness:La.stiffness,damping:La.damping,duration:t};{const e=Math.pow(a,2)*i;return{stiffness:e,damping:2*s*Math.sqrt(i*e),duration:t}}}const Ua=12;function $a(t,e){return t*Math.sqrt(1-e*e)}const ja=["duration","bounce"],qa=["stiffness","damping","mass"];function Va(t,e){return e.some((e=>void 0!==t[e]))}function Ha(t=La.visualDuration,e=La.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:La.velocity,stiffness:La.stiffness,damping:La.damping,mass:La.mass,isResolvedFromDuration:!1,...t};if(!Va(t,qa)&&Va(t,ja))if(t.visualDuration){const n=t.visualDuration,i=2*Math.PI/(1.2*n),r=i*i,o=2*Ia(.05,1,1-(t.bounce||0))*Math.sqrt(r);e={...e,mass:La.mass,stiffness:r,damping:o}}else{const n=Wa(t);e={...e,...n,mass:La.mass},e.isResolvedFromDuration=!0}return e}({...n,velocity:-Ca(n.velocity||0)}),p=h||0,m=c/(2*Math.sqrt(l*u)),g=s-o,v=Ca(Math.sqrt(l/u)),y=Math.abs(g)<5;let b;if(i||(i=y?La.restSpeed.granular:La.restSpeed.default),r||(r=y?La.restDelta.granular:La.restDelta.default),m<1){const t=$a(v,m);b=e=>{const n=Math.exp(-m*v*e);return s-n*((p+m*v*g)/t*Math.sin(t*e)+g*Math.cos(t*e))}}else if(1===m)b=t=>s-Math.exp(-v*t)*(g+(p+v*g)*t);else{const t=v*Math.sqrt(m*m-1);b=e=>{const n=Math.exp(-m*v*e),i=Math.min(t*e,300);return s-n*((p+m*v*g)*Math.sinh(i)+t*g*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?Fa(p):function(t,e,n){const i=Math.max(e-Ba,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(Da(k),Ra),e=Pa((e=>k.next(t*e).value),t,30);return t+"ms "+e},toTransition:()=>{}};return k}Ha.applyToOptions=t=>{const e=function(t,e=100,n){const i=n({...t,keyframes:[0,e]}),r=Math.min(Da(i),Ra);return{type:"keyframes",ease:t=>i.next(r*t).value/e,duration:Ca(r)}}(t,100,Ha);return t.ease=e.ease,t.duration=Fa(e.duration),t.type="keyframes",t};const Ga=t=>null!==t;class Ka{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 Xa(t){for(let n=1;n<t.length;n++){var e;null!==(e=t[n])&&void 0!==e||(t[n]=t[n-1])}}const Ya=t=>t.startsWith("--");const Qa=Aa((()=>void 0!==window.ScrollTimeline)),Ja={};function Za(t,e){const n=Aa(t);return()=>{var t;return null!==(t=Ja[e])&&void 0!==t?t:n()}}const tl=Za((()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0}),"linearEasing"),el=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`,nl={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:el([0,.65,.55,1]),circOut:el([.55,0,1,.45]),backIn:el([.31,.01,.66,-.59]),backOut:el([.33,1.53,.69,.99])};function il(t,e){return t?"function"==typeof t?tl()?Pa(t,e):"ease-out":Oa(t)?el(t):Array.isArray(t)?t.map((t=>il(t,e)||nl.easeOut)):nl[t]:void 0}function rl(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=il(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 ol extends Ka{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,Na("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)&&tl()?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=rl(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(Ga),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){Ya(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 Ca(Number(n))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Ca(t)}get time(){return Ca(Number(this.animation.currentTime)||0)}set time(t){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Fa(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&&Qa()?(this.animation.timeline=t,Ma):e(this)}}class sl{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 al(this.animations,"duration")}get iterationDuration(){return al(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 al(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 ll extends sl{then(t,e){return this.finished.finally(t).then((()=>{}))}}const cl=new WeakMap,ul=(t,e="")=>`${t}:${e}`;function dl(t){const e=cl.get(t)||new Map;return cl.set(t,e),e}function hl(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 fl=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 pl(t,e){for(let n=0;n<t.length;n++)"number"==typeof t[n]&&fl.has(e)&&(t[n]=t[n]+"px")}function ml(t,e){const n=window.getComputedStyle(t);return Ya(e)?n.getPropertyValue(e):n[e]}function gl(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;Na(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={...hl(a,t)};r.duration&&(r.duration=Fa(r.duration)),r.delay&&(r.delay=Fa(r.delay));const o=dl(i),l=ul(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]=ml(i,r)),Xa(e),pl(e,r),!o&&e.length<2&&e.unshift(ml(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 ol(i);e.set(n,r),r.finished.finally((()=>e.delete(n))),a.push(r)}return a}const vl=(()=>function(t,e,n){return new ll(gl(t,e,n))})();var yl=xs('<button class="svelte-16kucsb"><div class="svelte-16kucsb"> </div></button>'),bl=xs('<div class="tryIt-container svelte-16kucsb"><!></div>');function kl(t,e){Ii(e,!0);const n=$r((()=>e.state.ctaText)),i=$r((()=>e.state.animationConfig)),r=$r((()=>e.state.showCta)),o=$r((()=>e.state.onCtaClick));let s=null,a=null,l=Qr(!1),c=!1;function u(){c&&vl(s,{transform:"scale(1.05)"},{type:Ha,mass:1.5,stiffness:400,damping:30})}function d(){c&&vl(s,{transform:"scale(1)"},{type:Ha,mass:1.5,stiffness:400,damping:30})}function h(){c&&vl(s,{transform:"scale(0.95)"},{type:Ha,mass:1,stiffness:600,damping:30})}wo((()=>{const{mass:t,stiffness:e,damping:n,delay:o}=us(i);let u;return us(r)&&(u=setTimeout((async()=>{Zr(l,!0),u=null,vl(s,{transform:["translateY(40px) scale(0, 0.2)","translateY(0) scale(1, 1)"],opacity:1},{type:Ha,mass:t,stiffness:e,damping:n}),await vl(a,{transform:["translateY(20px) scale(0.8)","translateY(0) scale(1)"],opacity:1},{type:Ha,mass:t,stiffness:e,damping:n,delay:.15}),c=!0}),o)),()=>{u&&clearTimeout(u)}}));var f=bl(),p=fo(f),m=t=>{var e=yl();e.__mousedown=h,e.__touchstart=h,e.__click=function(...t){var e;null===(e=us(o))||void 0===e||e.apply(this,t)};var i=fo(e),r=fo(i,!0);gi(i),ra(i,(t=>a=t),(()=>a)),gi(e),ra(e,(t=>s=t),(()=>s)),Eo((()=>{$s(e,"pointer-events: "+(us(l)?"auto":"none")),Is(r,us(n))})),gs("mouseenter",e,u),gs("mouseleave",e,d),_s(t,e)};Cs(p,(t=>{us(r)&&t(m)})),gi(f),_s(t,f),Ei()}vs(["mousedown","touchstart","click"]);var xl=new WeakSet;function wl(){this.mainTimeline?this.player.switchTimeline(this.mainTimeline):this.emitModuleEnd(),this.state.showCta=!1}const _l={videoModule:class extends ha{constructor({config:t,...e}){var n;super({...e,config:t}),this.Component=ba,this.hasDuration=!t.loop,da(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(fa(`${this.id}_intro`,e.intro,t),"end");const n=fa(this.id,e.video,t);this.timeline.placeOnTimeline(n,"end",{loop:e.loop}),e.loop||n.on("nodeend",this.emitModuleEnd)}},toggleModule:class extends ha{constructor({config:t,...e}){super({...e,config:t}),O(this,_a),this.Component=wa,this.synced=t.sync,this.switchTo=()=>{},da(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:N(_a,this,Ta).bind(this)}}start(t){super.start(t),this.synced?(this.timeline=t.createTimeline(),this.config.options.forEach(((e,n)=>{this.timeline.placeOnTimeline(fa(`${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(fa(`${this.id}_option_${n}_intro`,e.intro,t),"end"),i.placeOnTimeline(fa(`${this.id}_option_${n}`,e.video,t),"end",{loop:!0}),i})),this.timeline=this.timelines[this.state.currentOptionIndex])}},tryItModule:class extends ha{constructor({config:t,...e}){var n;super({...e,config:t}),O(this,xl),da(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:N(xl,this,wl).bind(this)}}start(t){super.start(t),this.Component=kl,this.timeline=t.createTimeline();const{introVideo:e,mainVideo:n}=this.config;if(e.intro&&this.timeline.placeOnTimeline(fa(`${this.id}_intro_intro`,e.intro,t)),this.timeline.placeOnTimeline(fa(`${this.id}_intro_loop`,e.loop,t),"end",{loop:!0}),n){this.mainTimeline=t.createTimeline(),n.intro&&this.mainTimeline.placeOnTimeline(fa(`${this.id}_main_intro`,n.intro,t));const e=fa(`${this.id}_main_loop`,n.loop,t);this.mainTimeline.placeOnTimeline(e,"end",{loop:!0})}}play(){this.state.showCta=!0,super.play()}}};class Tl{#u=Qr({});#d=Qr("ekonovar");#h=Qr(0);#f=Qr(0);#p=Qr(io({itemIndex:0,moduleIndex:0}));#m=$r((()=>{var t;return null===(t=us(this.#u))||void 0===t?void 0:t[us(this.#d)]}));#g=$r((()=>{var t;return null===(t=us(this.#m))||void 0===t?void 0:t[us(this.#h)]}));#v=$r((()=>{var t,e;return us(this.#y)?null===(e=us(this.#m))||void 0===e?void 0:e[us(this.#p).itemIndex].modules[us(this.#p).moduleIndex]:null===(t=us(this.#g))||void 0===t?void 0:t.modules[us(this.#f)]}));#b=$r((()=>{var t;return(null===(t=us(this.#m))||void 0===t?void 0:t.flatMap((t=>t.modules)))||[]}));#k=Qr(!1);#y=Qr(!1);#x=$r((()=>!(us(this.#p).itemIndex===this.activeItemIndex&&us(this.#p).moduleIndex===this.activeModuleIndex)));set variants(t){Zr(this.#u,t)}set activeVariant(t){Zr(this.#d,t,!0)}set activeItemIndex(t){Zr(this.#h,t,!0)}set activeModuleIndex(t){Zr(this.#f,t,!0)}set playingModulePosition(t){Zr(this.#p,t,!0)}set paused(t){Zr(this.#k,t,!0)}set startedPlaying(t){Zr(this.#y,t,!0)}get variants(){return us(this.#u)}get activeVariant(){return us(this.#d)}get activeItemIndex(){return us(this.#h)}get activeModuleIndex(){return us(this.#f)}get playingModulePosition(){return us(this.#p)}get currentItemsList(){return us(this.#m)}get currentItem(){return us(this.#g)}get currentModule(){return us(this.#v)}get paused(){return us(this.#k)}get startedPlaying(){return us(this.#y)}get seeking(){return us(this.#x)}get currentModulesList(){return us(this.#b)}}var Il="https://assets.eko.com";const El=2,Sl=5,Nl=["activeItemIndex","activeModuleIndex","paused","startedPlaying"],Al=["version","selectItem","selectItemAndStep","next","prev","subscribe"];var Ml=new WeakMap,Fl=new WeakMap,Cl=new WeakMap,Ol=new WeakSet;class Pl{constructor(t){var e;O(this,Ol),F(this,Ml,void 0),F(this,Fl,void 0),F(this,Cl,void 0),P(this,"public",void 0),P(this,"version","0.0.6"),da(this),C(Cl,this,t),C(Ml,this,new Tl),C(Fl,this,[]);const n=null==t||null===(e=t.instance)||void 0===e||null===(e=e.data)||void 0===e||null===(e=e.blocks)||void 0===e||null===(e=e.blocksArr)||void 0===e||null===(e=e.find((t=>"GalleryBlock"===t.blockType)))||void 0===e?void 0:e.config;var i;n?(N(Ol,this,Rl).call(this,n.items),N(Ol,this,Dl).call(this,n.items)):console.warn("[eko-gallery-app] Gallery initiated without an instance, results will be empty"),this.public=(i=this,Al.reduce(((t,e)=>{if(!(e in i))throw new Error(`[eko-gallery-app] Public API member "${e}" does not exist on GalleryLogic`);const n=i[e];return t[e]="function"==typeof n?n.bind(i):n,t}),{}))}start(t){M(Fl,this).forEach((e=>{e.start(t)})),C(Fl,this,null),N(Ol,this,Bl).call(this,t),M(Ml,this).currentModule.play()}selectItem(t){const e=M(Ml,this);t!==e.activeItemIndex&&(e.activeItemIndex=t,e.activeModuleIndex=0)}selectItemAndStep(t,e){const n=M(Ml,this);t===n.activeItemIndex&&e===n.activeModuleIndex||(n.activeItemIndex=t,n.activeModuleIndex=e)}next(){const t=M(Ml,this);t.seeking||(t.startedPlaying?N(Ol,this,zl).call(this):t.activeItemIndex=(t.activeItemIndex+1)%t.currentItemsList.length)}prev(){const t=M(Ml,this);if(!t.seeking)if(t.startedPlaying){if(t.activeModuleIndex=t.activeModuleIndex-1,!t.currentItem.modules[t.activeModuleIndex]){t.activeItemIndex=(t.activeItemIndex-1+t.currentItemsList.length)%t.currentItemsList.length;const e=t.currentItemsList[t.activeItemIndex];t.activeModuleIndex=e.modules.length-1}}else t.activeItemIndex=(t.activeItemIndex-1+t.currentItemsList.length)%t.currentItemsList.length}subscribe(t){const e=M(Ml,this);return function(t){tr.ensure();const e=bo(Ln|Yn,t,!0);return()=>{Fo(e)}}((()=>{wo((()=>{const n=Nl.reduce(((t,n)=>(t[n]=e[n],t)),{});t(n)}))}))}getCoverUrl(t,e){var n,i;const r=null==t||null===(n=t.entity)||void 0===n?void 0:n.entityId;if(!r)throw new Error("[getCoverUrl] No assetId found.");let o;var s;return null!==(i=M(Cl,this))&&void 0!==i&&null!==(i=i.coverAssetsMap)&&void 0!==i&&i[r]?(o=new URL(M(Cl,this).coverAssetsMap[r]),/^[a-z0-9]*assets.eko.com$/.test(o.host)&&e&&(o.pathname=o.pathname.replace(".png",".webp"))):(s=t,o=new URL(`${Il}/image/${s.entity.entityId}/${s.entity.entityRevision}?startOffset=0`),o.pathname+=e?".webp":".png"),e&&o.searchParams.set("width",e),o.href}get currentConfig(){return M(Cl,this)}get state(){return M(Ml,this)}}function Rl(t){const e={};for(let n of t)for(let t of Object.keys(n.variants||{}))e[t]=[];e.ekonovar=[],M(Ml,this).variants=e}function Dl(t){const e=(t=[],e)=>{const n=[];for(let[i,r]of t.entries()){if(!_l[r.itemType])throw new Error(`Unknown module type ${r.itemType}`);const t=new _l[r.itemType]({position:{...e,moduleIndex:i},config:r,galleryState:M(Ml,this)});t.moduleEndListener=N(Ol,this,Ll).bind(this),n.push(t)}return n};for(const[i,r]of t.entries())if("galleryItemV2"===r.itemType){const{modules:t,...o}=r;for(const[s,a]of Object.entries(M(Ml,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}),C(Fl,this,[...M(Fl,this),...n.modules]),a.push(n)}}}}function Bl(t){for(const[,e]of Object.entries(M(Ml,this).variants))for(const[n,i]of e.entries()){const r=i.modules,o=e.filter((t=>t!==i)).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=>t!==a)).map((t=>t.timeline.getNodesAtTime(0)[0])),u=[{nodeId:l.id,weight:El},...c.map((t=>({nodeId:t.id,weight:Sl})))];for(const e of s.timeline.placements){t.getNode(e.nodeId).setChildren(u)}}}}function Ll(){const t=M(Ml,this),e=t.currentItem.modules;e.length>1&&t.activeModuleIndex===e.length-1?t.activeModuleIndex=0:N(Ol,this,zl).call(this)}function zl(){const t=M(Ml,this);t.activeModuleIndex=t.activeModuleIndex+1,t.currentItem.modules[t.activeModuleIndex]||(t.activeItemIndex=(t.activeItemIndex+1)%t.currentItemsList.length,t.activeModuleIndex=0)}var Wl=xs('<button><span class="svelte-er27y2"> </span></button>'),Ul=xs('<div class="nav-buttons-container svelte-er27y2"><div class="nav-buttons svelte-er27y2"></div></div>');vs(["click"]);const $l="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 jl=xs('<button><img class="svelte-1al44kl"/></button>');function ql(t,e){const n=sa(e,"hidden",3,!1);var i=jl();let r;i.__click=function(...t){var n;null===(n=e.onClick)||void 0===n||n.apply(this,t)};var o=fo(i);gi(i),Eo((()=>{var t;r=Us(i,0,`nav-button ${null!==(t=e.type)&&void 0!==t?t:""}`,"svelte-1al44kl",r,{hidden:n()}),Vs(i,"aria-label",e.type),Vs(o,"src",$l),Vs(o,"alt",e.type)})),_s(t,i)}vs(["click"]);var Vl=xs('<button><span class="svelte-1mxltt0"> </span></button>'),Hl=xs('<div class="steps-indicator-container svelte-1mxltt0"><button aria-label="Scroll to previous steps"><img alt="Previous steps button" class="svelte-1mxltt0"/></button> <div role="group" aria-roledescription="Sequence navigation buttons"></div> <button aria-label="Scroll to next steps"><img alt="Next steps button" class="svelte-1mxltt0"/></button></div>');function Gl(t,e){Ii(e,!0);const n=16,i=32,r=Ti("state");let o=Qr(null),s=Qr(null),a=Qr(!1),l=Qr(!1);const c=$r((()=>{let t=[];return t=r().currentItem.modules.map(((t,e)=>({index:e,type:e===r().activeModuleIndex?"active":"",name:t.name}))),t}));function u(){us(o)&&(Zr(a,us(o).scrollLeft>3),Zr(l,us(o).scrollLeft+us(o).clientWidth<us(o).scrollWidth-3))}function d(t){us(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(us(o).querySelectorAll(".step-button")).find((t=>{const e=t.getBoundingClientRect(),n=us(o).getBoundingClientRect();return e.left>n.left+i}));if(t){const e=t.previousElementSibling;e&&h(us(o),e)}}function p(){const t=Array.from(us(o).querySelectorAll(".step-button")).reverse().find((t=>{const e=t.getBoundingClientRect(),n=us(o).getBoundingClientRect();return e.right<n.right-i}));if(t){const e=t.nextElementSibling;e&&h(us(o),e)}}wo((()=>{if(us(o)){u();const t=new MutationObserver((()=>{const t=us(o).querySelector(".step-button.active");t&&Zr(s,t,!0)}));return t.observe(us(o),{attributes:!0,attributeFilter:["class"],subtree:!0}),()=>{t.disconnect()}}})),wo((()=>{us(s)&&us(o)&&h(us(o),us(s))}));var m=ws();gs("resize",ro,u),function(t,e,n){hi&&mi();var i=new Fs(t);So((()=>{var t=e();i.ensure(t,n)}))}(po(m),(()=>r().activeItemIndex),(t=>{var e=Hl(),n=fo(e);let i;n.__click=f;var s=fo(n);gi(n);var d=mo(n,2);let m;Ds(d,21,(()=>us(c)),Os,((t,e)=>{var n=Vl();let i;n.__click=t=>{return n=t.currentTarget,i=us(e).index,r().activeModuleIndex=i,void h(us(o),n);var n,i};var s=fo(n),a=fo(s,!0);gi(s),gi(n),Eo((()=>{i=Us(n,0,"step-button svelte-1mxltt0",null,i,{active:"active"===us(e).type}),Vs(n,"aria-label",`Go to step $${us(e).index+1}`),Is(a,us(e).name)})),_s(t,n)})),gi(d),ra(d,(t=>Zr(o,t)),(()=>us(o)));var g=mo(d,2);let v;g.__click=p;var y=fo(g);gi(g),gi(e),Eo(((t,e)=>{i=Us(n,0,"step-arrow step-arrow-prev svelte-1mxltt0",null,i,{visible:us(a)}),Vs(s,"src",$l),m=Us(d,0,"steps-indicator svelte-1mxltt0",null,m,t),$s(d,`--stepDuration: ${null!=e?e:""}s`),v=Us(g,0,"step-arrow step-arrow-next svelte-1mxltt0",null,v,{visible:us(l)}),Vs(y,"src",$l)}),[()=>({"with-duration":r().currentModule.hasDuration,paused:r().paused}),()=>r().currentModule.duration]),gs("scroll",d,u),_s(t,e)})),_s(t,m),Ei()}vs(["click"]);const Kl="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",Xl="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 Yl=xs('<img alt="Play" class="svelte-a3r6re"/>'),Ql=xs('<img alt="Pause" class="svelte-a3r6re"/>'),Jl=xs('<button class="pause-button svelte-a3r6re"><!></button>');vs(["click"]);var Zl,tc,ec="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function nc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var ic=function(){if(tc)return Zl;tc=1;var t=NaN,e="[object Symbol]",n=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,o=/^0o[0-7]+$/i,s=parseInt,a="object"==typeof ec&&ec&&ec.Object===Object&&ec,l="object"==typeof self&&self&&self.Object===Object&&self,c=a||l||Function("return this")(),u=Object.prototype.toString,d=Math.max,h=Math.min,f=function(){return c.Date.now()};function p(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function m(a){if("number"==typeof a)return a;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&u.call(t)==e}(a))return t;if(p(a)){var l="function"==typeof a.valueOf?a.valueOf():a;a=p(l)?l+"":l}if("string"!=typeof a)return 0===a?a:+a;a=a.replace(n,"");var c=r.test(a);return c||o.test(a)?s(a.slice(2),c?2:8):i.test(a)?t:+a}return Zl=function(t,e,n){var i,r,o,s,a,l,c=0,u=!1,g=!1,v=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=i,o=r;return i=r=void 0,c=e,s=t.apply(o,n)}function b(t){var n=t-l;return void 0===l||n>=e||n<0||g&&t-c>=o}function k(){var t=f();if(b(t))return x(t);a=setTimeout(k,function(t){var n=e-(t-l);return g?h(n,o-(t-c)):n}(t))}function x(t){return a=void 0,v&&i?y(t):(i=r=void 0,s)}function w(){var t=f(),n=b(t);if(i=arguments,r=this,l=t,n){if(void 0===a)return function(t){return c=t,a=setTimeout(k,e),u?y(t):s}(l);if(g)return a=setTimeout(k,e),y(l)}return void 0===a&&(a=setTimeout(k,e)),s}return e=m(e)||0,p(n)&&(u=!!n.leading,o=(g="maxWait"in n)?d(m(n.maxWait)||0,e):o,v="trailing"in n?!!n.trailing:v),w.cancel=function(){void 0!==a&&clearTimeout(a),c=0,i=l=r=a=void 0},w.flush=function(){return void 0===a?s:x(f())},w},Zl}();const rc=nc(ic);var oc=xs("<img/>"),sc=xs('<div class="ui-container svelte-1rvgxfc"><!></div>'),ac=xs('<div class="cover-container svelte-1rvgxfc"><!> <!></div>'),lc=xs('<div class="covers-container svelte-1rvgxfc" style="scroll-behavior: smooth;"></div>');function cc(t,e){Ii(e,!0);const n=[375,768,1024,1400,1920];let i=sa(e,"scrollOffset",15),r=sa(e,"isMobile",3,!1);const o=Ti("state");let s,a=Qr(void 0),l=Qr(1920),c=$r((()=>o().playingModulePosition)),u=null,d=null,h=$r((()=>o().startedPlaying)),f=$r((()=>o().currentModulesList)),p=$r((()=>us(f).findIndex((t=>v(o().playingModulePosition,t.position)))));const m=rc((t=>{let e=n.find((e=>e>t));e||(e=n[n.length-1]),Zr(l,e,!0)}),300);async function g(){o().seeking&&(o().startedPlaying?o().currentItemsList[o().activeItemIndex].modules[o().activeModuleIndex].play():o().playingModulePosition=us(c),i(0))}function v(t,e){return t.itemIndex===e.itemIndex&&t.moduleIndex===e.moduleIndex}function y(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}function b({target:t}){var e;const n=y(t),r=(null===(e=us(f))||void 0===e?void 0:e.length)||1,a=100/(r-1||1),l=Math.round(n/a);let h=Math.min(l,r-1);const m=us(f)[h],b={itemIndex:o().activeItemIndex,moduleIndex:o().activeModuleIndex};null!==u||v(m.position,b)||(o().activeItemIndex=m.position.itemIndex,o().activeModuleIndex=m.position.moduleIndex),Zr(c,m.position);const k=s.children[us(p)],x=s.getBoundingClientRect(),w=k.getBoundingClientRect();i(w.x-x.x),d&&clearTimeout(d),d=setTimeout((()=>{const e=y(t);Math.abs(e-l*a)<.25&&(null!==u?v(m.position,u)&&(u=null,g()):g())}),150)}wo((()=>{const{activeItemIndex:t,activeModuleIndex:e}=o();t===us(c).itemIndex&&e===us(c).moduleIndex||fs((()=>{var n;const i=us(f).findIndex((n=>{const{itemIndex:i,moduleIndex:r}=n.position;return t===i&&e===r}));u=(null===(n=us(f)[i])||void 0===n?void 0:n.position)||null;const r=s.children[i];null==r||r.scrollIntoView()}))})),wo((()=>m(us(a)*window.devicePixelRatio)));var k=ws(),x=po(k),w=t=>{var n=lc();Ds(n,23,(()=>us(f)),(t=>t.id),((t,n,i)=>{var o=ac(),s=fo(o),a=t=>{var r=oc();let o;Eo((t=>{o=Us(r,0,"cover-image svelte-1rvgxfc",null,o,{active:us(h)&&us(i)===us(p)}),Vs(r,"src",t),Vs(r,"alt",us(n).name),Vs(r,"fetchpriority",0===us(i)?"high":"auto")}),[()=>e.getCoverUrl(us(n).cover,us(l))]),_s(t,r)};Cs(s,(t=>{us(l)&&t(a)}));var c=mo(s,2),u=t=>{var e=sc();!function(t,e,n){hi&&mi();var i=new Fs(t);So((()=>{var t,r=null!==(t=e())&&void 0!==t?t:null;i.ensure(r,r&&(t=>n(t,r)))}),Gn)}(fo(e),(()=>us(n).Component),((t,e)=>{e(t,{get state(){return us(n).state},get isMobile(){return r()}})})),gi(e),_s(t,e)};Cs(c,(t=>{var e;null!==(e=us(n))&&void 0!==e&&e.Component&&t(u)})),gi(o),_s(t,o)})),gi(n),ra(n,(t=>s=t),(()=>s)),gs("scroll",n,b),na(n,"clientWidth",(t=>Zr(a,t))),_s(t,n)};Cs(x,(t=>{us(f)&&t(w)})),_s(t,k),Ei()}const uc="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};let dc;function hc(){const t=uc&&uc.navigator&&(uc.navigator.userAgent||uc.navigator.platform||uc.navigator.vendor)||"";if(dc&&dc.ua===t)return dc;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 dc={ua:t,isMobile:r},dc}var fc=xs('<div class="absolute-full paging-buttons svelte-1n46o8q"><!> <!></div>'),pc=xs("<div></div>"),mc=xs("<!> <!>",1),gc=xs('<div class="player-container svelte-1n46o8q"><div class="absolute-full swipable svelte-1n46o8q"></div> <!> <!> <!> <!></div> <!>',1),vc=xs('<div class="eko-gallery-app svelte-1n46o8q"><!></div>');function yc(t,e){Ii(e,!0);const n=sa(e,"config",19,(()=>({}))),i=sa(e,"forceMobile",3,!1),r=sa(e,"onGalleryReady",3,(()=>{}));let o,s=Qr(io(new Pl(n()))),a=Qr(null),l=$r((()=>i()||hc().isMobile)),c=Qr(0),u=Qr(void 0),d=Qr(!0);var h,f,p;function m(){Zr(a,new e.EkoPlayer(o,e.playerOptions)),us(a).on("playing",(()=>{us(s).state.paused=!1})),us(a).on("pause",(()=>{us(s).state.paused=!0})),us(a).once("playing",(()=>{us(s).state.startedPlaying=!0}))}function g(t){var e;null===(e=us(s))||void 0===e||e.selectItem(t)}function v(){var t;null===(t=us(s))||void 0===t||t.next()}function y(){var t;null===(t=us(s))||void 0===t||t.prev()}function b(){us(a).paused?us(a).play():us(a).pause()}h="state",f=()=>us(s).state,Si().set(h,f),p=()=>(n()&&e.EkoPlayer&&(m(),us(s).start(us(a))),r()(us(s).public),()=>{var t;null===(t=us(a))||void 0===t||t.dispose()}),null===wi&&ci(),wo((()=>{const t=fs(p);if("function"==typeof t)return t})),wo((()=>{var t;n()&&n()!==us(s).currentConfig&&(Zr(s,new Pl(n()),!0),null===(t=us(a))||void 0===t||t.dispose(),Zr(d,!1),cs().then((()=>(Zr(d,!0),cs()))).then((()=>{m(),us(s).start(us(a)),r()(us(s).public)})))})),wo((()=>{us(u)&&us(a)&&us(a).loadDebugOverlay({containerElement:us(u)})}));var k=vc(),x=fo(k),w=t=>{var n=gc(),i=po(n),r=fo(i);ra(r,(t=>o=t),(()=>o));var a=mo(r,2);cc(a,{get isMobile(){return us(l)},get getCoverUrl(){return us(s).getCoverUrl},get scrollOffset(){return us(c)},set scrollOffset(t){Zr(c,t,!0)}});var d=mo(a,2),h=t=>{var e=fc(),n=fo(e);ql(n,{type:"prev",onClick:y}),ql(mo(n,2),{type:"next",onClick:v}),gi(e),_s(t,e)};Cs(d,(t=>{us(l)||e.hideNav||t(h)}));var f=mo(d,2),p=t=>{Gl(t,{})};Cs(f,(t=>{var e;!us(l)&&(null===(e=us(s).state.currentItem)||void 0===e?void 0:e.modules.length)>1&&t(p)}));var m=mo(f,2),k=t=>{var n=mc(),i=po(n);!function(t,e){Ii(e,!0);const n=Ti("state");var i=Jl();i.__click=function(...t){var n;null===(n=e.onPauseClick)||void 0===n||n.apply(this,t)};var r=fo(i),o=t=>{var e=Yl();Eo((()=>Vs(e,"src",Kl))),_s(t,e)},s=t=>{var e=Ql();Eo((()=>Vs(e,"src",Xl))),_s(t,e)};Cs(r,(t=>{n().paused?t(o):t(s,!1)})),gi(i),Eo((t=>Vs(i,"aria-label",t)),[()=>n().paused?"Play":"Pause"]),_s(t,i),Ei()}(i,{onPauseClick:b});var r=mo(i,2),o=t=>{var e=pc();ra(e,(t=>Zr(u,t)),(()=>us(u))),_s(t,e)};Cs(r,(t=>{e.debug&&t(o)})),_s(t,n)};Cs(m,(t=>{us(s).state.startedPlaying&&t(k)})),gi(i);var x=mo(i,2),w=t=>{!function(t,e){Ii(e,!0);let n=sa(e,"onNavItemClick",3,(()=>{}));const i=Ti("state");var r=Ul(),o=fo(r);Ds(o,23,(()=>i().currentItemsList),(t=>t.id),((t,e,r)=>{var o=Wl();let s;o.__click=()=>n()(us(r));var a=fo(o),l=fo(a,!0);gi(a),gi(o),Eo((t=>{s=Us(o,0,"nav-button svelte-er27y2",null,s,t),Is(l,us(e).name)}),[()=>({selected:us(r)===i().activeItemIndex})]),_s(t,o)})),gi(o),gi(r),_s(t,r),Ei()}(t,{onNavItemClick:g})};Cs(x,(t=>{e.hideNav||t(w)})),Eo((()=>{var t;return $s(i,`--uiTranformX: ${null!==(t=us(c))&&void 0!==t?t:""}px`)})),_s(t,n)};Cs(x,(t=>{n()&&us(d)&&t(w)})),gi(k),_s(t,k),Ei()}function bc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var kc,xc,wc,_c,Tc={exports:{}},Ic=bc((kc||(kc=1,wc=Tc.exports,_c=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},(xc=Tc).exports?xc.exports=_c():wc.log=_c()),Tc.exports));const Ec=()=>{},Sc=["trace","log","debug","info","warn","error","getLevel","setLevel"],Nc=["trace","debug","info","warn","error","silent"],Ac={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;"},Mc="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global;let Fc={level:"trace",appName:""},Cc=[];const Oc="object"==typeof Mc&&Mc.performance&&"function"==typeof Mc.performance.now?Mc.performance.now.bind(Mc.performance):Date.now.bind(Date),Pc=t=>t&&"string"==typeof t?t.toLowerCase().trim():"",Rc=(()=>{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[Pc(e)]=Pc(i)||"trace"})),n}catch(t){return{}}})(),Dc=(t,e="")=>{const n=Pc(t),i=Ic.getLogger(n);if(i.__ekologger)return i.__ekologger;e||Rc[n]||Rc["*"]||(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)=>(Oc()/1e3).toFixed(e))()}] %c[${s}] ${Fc.appName?`[${Fc.appName}] `:""}[${t}]`,Ac[s],...e)}},e=Rc[n]||Rc["*"]||e||Fc.level,i.setLevel(e,!1);const o=(...t)=>i.log(...t);return Sc.forEach((t=>{o[t]=(...e)=>(Cc.forEach((n=>{n[t](...e)})),i[t](...e))})),i.__ekologger=o,o};Dc.setDefaults=({appName:t="",level:e})=>{t&&"string"==typeof t&&(Fc.appName=t),(e=Pc(e))&&Nc.includes(e)&&(Fc.level=e,Object.values(Ic.getLoggers()).filter((t=>t.__noExplicitLevel)).forEach((t=>t.setLevel(Fc.level,!1))))},Dc.installDriver=t=>{const e={...Sc.reduce(((e,n)=>(e[n]="function"==typeof(null==t?void 0:t[n])?t[n]:Ec,e)),{})};Cc.push(e)};let Bc=class{#w=new Map;on(t,e){if("function"!=typeof e)return this;const n=this.#w.get(t)||new Set;return n.add(e),this.#w.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.#w.clear(),this;const n=this.#w.get(t);return n?e?(n.delete(e),0===n.size&&this.#w.delete(t),this):(this.#w.delete(t),this):this}trigger(t,...e){const n=this.#w.get(t);return n?(n.forEach((t=>t(...e))),this):this}};function Lc(t){return"[object Object]"===Object.prototype.toString.call(t)}function zc(t,...e){const n=Lc(t)?{...t}:{};return e.forEach((t=>{Lc(t)&&Object.keys(t).forEach((e=>{const i=t[e],r=n[e];Lc(i)&&Lc(r)?n[e]=zc(r,i):Array.isArray(i)?n[e]=i.slice():n[e]=i}))})),n}function Wc(t){if("string"==typeof t)return`'${t}'`;if(Array.isArray(t))return`[${t.map((t=>Wc(t))).join(", ")}]`;if(Lc(t))try{return JSON.stringify(t)}catch(t){return"[object Object]"}return null===t?"null":void 0===t?"undefined":String(t)}function Uc(t){return Array.from(t).map((t=>Wc(t))).join(", ")}var $c=new WeakSet;let jc=class extends Bc{constructor(...t){super(),O(this,$c);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=Dc(n,this.loglevel);const i=Lc(this.defaults)?this.defaults:{},r=Lc(e)&&Lc(e[n])?e[n]:{};this.settings=zc({},i,r),N($c,this,qc).call(this),N($c,this,Vc).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 qc(){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}(${Uc(t)})`),a(...t)):a,t.add(o)}n=Object.getPrototypeOf(n)}}function Vc(){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 Hc="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};function Gc(t){return Boolean(t)&&"object"==typeof t&&1===t.nodeType&&"function"==typeof t.appendChild}let Kc=class extends jc{#_;#T;#I;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);const[i]=t,r=function(t,e=(null==Hc?void 0:Hc.document)){if(Gc(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 Gc(i)?i:null}(i);if(!r)throw new Error("Canvas requires a valid mount target (HTMLElement or selector string).");this.#_=r;const o=null==Hc?void 0:Hc.document;if(!o||"function"!=typeof o.createElement)throw new Error("Canvas requires document.createElement.");var s,a;this.#T=o.createElement("canvas"),s=this.#T,a=null===(e=this.settings)||void 0===e?void 0:e.style,s&&a&&"object"==typeof a&&!Array.isArray(a)&&Object.keys(a).forEach((t=>{const e=a[t];null!=e&&(s.style[t]=String(e))})),this.#_.appendChild(this.#T);const l=null===(n=this.settings)||void 0===n?void 0:n.contextAttributes,c=l&&"object"==typeof l&&!Array.isArray(l)?l:void 0;if(this.#I=this.#T.getContext("webgl2",c),!this.#I)throw new Error("Canvas WebGL2 context is not available.")}get name(){return"Canvas"}get element(){return this.#T}get gl(){return this.#I}onDispose(){this.#T&&this.#T.parentNode&&this.#T.parentNode.removeChild(this.#T),this.#I=null,this.#T=null,this.#_=null}};var Xc=new WeakMap,Yc=new WeakMap,Qc=new WeakMap,Jc=new WeakMap,Zc=new WeakMap,tu=new WeakMap,eu=new WeakSet;let nu=class extends jc{get name(){return"ContainerSize"}get containerWidth(){return M(Yc,this)}get containerHeight(){return M(Qc,this)}get width(){return M(Yc,this)}get height(){return M(Qc,this)}constructor(...t){super(...t),O(this,eu),F(this,Xc,void 0),F(this,Yc,0),F(this,Qc,0),F(this,Jc,null),F(this,Zc,null),F(this,tu,null);const[e]=t;var n;C(Xc,this,(n=e)&&n.element&&Gc(n.element)?n.element:Gc(n)?n:null),M(Xc,this)&&(N(eu,this,ru).call(this,!0),N(eu,this,iu).call(this))}onDispose(){M(Jc,this)&&"function"==typeof M(Jc,this).disconnect&&M(Jc,this).disconnect(),C(Jc,this,null),M(tu,this)&&"function"==typeof(null==Hc?void 0:Hc.removeEventListener)&&Hc.removeEventListener("resize",M(tu,this)),C(tu,this,null),M(Zc,this)&&((null==Hc?void 0:Hc.clearInterval)||clearInterval)(M(Zc,this)),C(Zc,this,null),C(Xc,this,null)}};function iu(){if(!M(Xc,this))return;const t=null==Hc?void 0:Hc.ResizeObserver;if("function"==typeof t)return C(Jc,this,new t((()=>N(eu,this,ru).call(this)))),void M(Jc,this).observe(M(Xc,this));C(tu,this,(()=>N(eu,this,ru).call(this))),"function"==typeof(null==Hc?void 0:Hc.addEventListener)&&Hc.addEventListener("resize",M(tu,this));const e=(null==Hc?void 0:Hc.setInterval)||setInterval;C(Zc,this,e((()=>N(eu,this,ru).call(this)),250))}function ru(t=!1){if(!M(Xc,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}}(M(Xc,this));(t||e!==M(Yc,this)||n!==M(Qc,this))&&(C(Yc,this,e),C(Qc,this,n),this.trigger("containerresize",{width:e,height:n}))}var ou={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"}};let su=class{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;return{contextType:e||"webgl",contextAttributes:Object.prototype.hasOwnProperty.call(t,"contextAttributes")?n:r}}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 au,lu={exports:{}},cu=(au||(au=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}(lu)),lu.exports),uu=bc(cu);let du=class extends su{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 uu;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);const a={contextType:r};s&&void 0!==o&&(a.contextAttributes=o),t.initPlugin("canvas",a);const l={drawFrame:this.canvasDrawFrameFn.bind(this),resize:n,contextType:r,offscreenVideoCanvasEnabled:!1,viewportModeEnabled:!0,fps:0};return s&&void 0!==o&&(l.contextAttributes=o),t.canvas.init(l),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)}},hu=class extends su{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)}},fu=class extends su{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 pu=function(t){let e;return e="string"==typeof t?new hu(t):t&&t.src&&t.dest?new fu(t):new du(t),e};function mu(t){return Array.isArray(t)||(t=[t]),t}let gu=class{constructor(t){this.store=t?{...t.get()}:{}}reset(){this.store={}}get(t){if(!t)return this.store;const e=(t=mu(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=mu(t),e=mu(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]}))}},vu=class{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 yu=Dc("frame","warn");let bu=!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");bu=e||n}function ku(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))}let xu=class extends vu{fill(t){if(bu&&(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?ku(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,ku(t,e)):t.__useSubImage=!0))}(this,t,e);const i=(performance.now()-n)/1e3;i>=.1&&yu.warn(`[fill] texImage2D() took ${i.toFixed(3)} seconds to execute.`),"function"==typeof t.close&&!0!==t.__keepOpen&&(t.close(),t.__closed=!0)}},wu=class extends vu{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 _u=function(t,e,n,i,r){let o;switch(t){case"frame":o=new xu(e,n,i,r);break;case"pixel":o=new wu(e,n,i,r);break;default:throw new Error(`cant recognize type ${t}`)}return o};let Tu=class{constructor(t){return this.gl=t.gl,this.textureObjectPool=[],this.textureUnitsPool=new Set(Array(20).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=_u(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(20).keys()),t.forEach((t=>{this.textureUnitsPool.delete(t)}))}};const Iu=ou.VIDEO_SOURCE_PREFIX,Eu=ou.TEXTURE_SOURCE_PREFIX,Su=ou.PREVIOUS_OUTPUT_PREFIX,Nu=ou.SAVED_FRAME_PREFIX;function Au(t,e,n){t.set(`${Iu}${n}`,e)}function Mu(t,e,n){t.set(`${Su}${n}`,e)}function Fu(t,e,n){t.set(`${Nu}${n}`,e)}let Cu=class{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()))Au(t,n,e),Mu(t,n,e);for(const[e,n]of Object.entries(this.capturedFramesManager.getSavedFrames()))Fu(t,n,e)}setTextureSource(t,e,n){t.set(`${Eu}${n}`,e)}getInput(t,e){return t.get(e)}getPrevOutput(t,e){return e=Number.isInteger(e)?e:0,t.get(`${Su}${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)=>{Mu(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))}))}},Ou=class{constructor(t){this.context=t}bind(){throw new Error("impl in concrete")}},Pu=100,Ru=100;function Du(t,e){Pu=t,Ru=e}let Bu=class extends Ou{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),Du(i,r)),t}},Lu=class extends Ou{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),!1!==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 zu{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===ou.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS?new Bu({gl:this.gl}):new Lu({gl:this.gl,textureManager:this.textureManager,frameBufferObject:this.getFrameBufferObject(),useCanvasSizedFilterTargets:this.useCanvasSizedFilterTargets}),e}}function Wu(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 Uu=function(t,e){return Wu(t,t.VERTEX_SHADER,e)},$u=function(t,e){return Wu(t,t.FRAGMENT_SHADER,e)};const ju={position_3d:0,texture_coordinate_2d:1};var qu=function(t,e,n){const i=t.createProgram();if(t.attachShader(i,e),t.attachShader(i,n),Object.entries(ju).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)},Vu=[-1,-1,1,1,-1,1,-1,1,1,1,1,1],Hu=[0,1,2,2,1,3],Gu=[0,0,1,0,0,1,1,1];const Ku=96,Xu=[new Float32Array(new ArrayBuffer(Ku)),new Float32Array(new ArrayBuffer(Ku)),new Float32Array(new ArrayBuffer(Ku)),new Float32Array(new ArrayBuffer(Ku)),new Float32Array(new ArrayBuffer(Ku)),new Float32Array(new ArrayBuffer(Ku))],Yu=[new Int16Array(6),new Int16Array(6),new Int16Array(6)];class Qu{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=Xu[this.floatBufferCounter],this.floatBufferCounter=this.floatBufferCounter++%Xu.length;break;case this.gl.ELEMENT_ARRAY_BUFFER:t=Yu[this.unit16BufferCounter],this.unit16BufferCounter=this.unit16BufferCounter++%Yu.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 Ju={position_3d:class extends Qu{getPointerData(){return{size:3,type:this.gl.FLOAT,normalize:!1,stride:0,offset:0}}},position_indexes:class extends Qu{setPointer(){}getPointerData(){}enable(){}},texture_coordinate_2d:class extends Qu{getPointerData(){return{size:2,type:this.gl.FLOAT,normalize:!0,stride:0,offset:0}}}};var Zu=function(t,e,n){const i=Ju[t];if(!i)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(Ju)}`);return new i(t,e,n)};class td{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}}let ed=class extends td{set(t){this.gl.uniform1fv(this.location,t)}};class nd extends td{set(t){t&&(t.beforeUse(),this.gl.uniform1i(this.location,t.getUnit()))}}const id="first_texture_dimensions",rd="viewport_dimensions",od="time",sd={RUNTIME_OPTIONS:"runtimeOptions[0]",STATIC_OPTIONS:"staticOptions[0]",FIRST_TEXTURE:"first_texture",SECOND_TEXTURE:"second_texture",FIRST_MATRIX:"first_mat4"},ad={[sd.FIRST_TEXTURE]:nd,[sd.SECOND_TEXTURE]:nd,[sd.FIRST_MATRIX]:class extends td{set(t){this.gl.uniformMatrix4fv(this.location,!1,t)}},[sd.STATIC_OPTIONS]:ed,[sd.RUNTIME_OPTIONS]:ed};var ld=function(t,e){const n=ad[t];if(!n)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(ad)}`);return new n(t,e)},cd=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 ud="position_3d",dd="position_indexes",hd="texture_coordinate_2d";class fd{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=Uu(this.gl,e.vertex),this.fragmentShader=$u(this.gl,e.fragment),this.program=qu(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:ud,bindPoint:e.gl.ARRAY_BUFFER},{id:dd,bindPoint:e.gl.ELEMENT_ARRAY_BUFFER},{id:hd,bindPoint:e.gl.ARRAY_BUFFER}].concat(t)).forEach((t=>{const i=t.id;n[i]=Zu(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]=ld(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:sd.RUNTIME_OPTIONS},{id:sd.STATIC_OPTIONS}];return(t.getUniformList||fd.getUniformList)().forEach((t=>{Object.values(sd).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||fd.getUniformList)().forEach((t=>{switch(t){case sd.FIRST_TEXTURE:this.uniforms[sd.FIRST_TEXTURE].set(r[0]);break;case sd.SECOND_TEXTURE:this.uniforms[sd.SECOND_TEXTURE].set(r[1]);break;case id:o=[...o,r[0].getWidth(),r[0].getHeight()];break;case rd:o=[...o,i.width,i.height];break;case od:{const t=cd(e.startTime,e.duration);o=[...o,t];break}}})),o.length>0&&this.uniforms[sd.RUNTIME_OPTIONS].set(o)}static getUniformList(){return[sd.FIRST_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(){}handleAttributes(){this.attributes[ud].fillBuffer(Vu),this.attributes[ud].setPointer(),this.attributes[dd].fillBuffer(Hu),this.attributes[hd].fillBuffer(Gu),this.attributes[hd].setPointer()}disposeAttributes(){Object.values(this.attributes).forEach((t=>{t.dispose()}))}render(t,e){const n=this.frameBuffer.bind(t);let i={width:Pu,height:Ru};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 pd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(pd)};super(pd.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 md,gd="undefined"!=typeof Float32Array?Float32Array:Array;function vd(){var t=new gd(3);return gd!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function yd(t,e,n){var i=new gd(3);return i[0]=t,i[1]=e,i[2]=n,i}function bd(){var t=new gd(4);return gd!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}vd(),function(){var t;t=new gd(4),gd!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}(),vd(),yd(1,0,0),yd(0,1,0),bd(),bd(),md=new gd(9),gd!=Float32Array&&(md[1]=0,md[2]=0,md[3]=0,md[5]=0,md[6]=0,md[7]=0),md[0]=1,md[4]=1,md[8]=1;class kd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(kd)};super(kd.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:kd.getInitialOptions().translate.x},{properties:["translate","y"],type:"slider",minValue:-2,maxValue:2,step:.001,initialValue:kd.getInitialOptions().translate.y},{properties:["scale","x"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:kd.getInitialOptions().scale.x},{properties:["scale","y"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:kd.getInitialOptions().scale.y},{properties:["rotate"],type:"slider",minValue:-360,maxValue:360,step:1,initialValue:kd.getInitialOptions().rotate}]}static getUniformList(){return[sd.FIRST_TEXTURE,sd.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,g=s*u,v=a*l,y=a*c,b=a*u,k=i[0],x=i[1],w=i[2];return t[0]=(1-(p+g))*k,t[1]=(h+b)*k,t[2]=(f-y)*k,t[3]=0,t[4]=(h-b)*x,t[5]=(1-(d+g))*x,t[6]=(m+v)*x,t[7]=0,t[8]=(f+y)*w,t[9]=(m-v)*w,t[10]=(1-(d+p))*w,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}((s=new gd(16),gd!=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}(bd(),0,0,o),yd(e,n,0),yd(i,r,1)),this.uniforms[sd.FIRST_MATRIX].set(this.transformMatrix)}}class xd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(xd)};super(xd.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[sd.FIRST_TEXTURE,id]}}class wd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(wd)};super(wd.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[sd.FIRST_TEXTURE,id]}}class _d extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(_d)};super(_d.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[sd.FIRST_TEXTURE,id,rd]}handleStaticUniforms(t){var e;const n=(null!==(e=Number.parseFloat(t.offsetDist))&&void 0!==e?e:4).toFixed(3);this.uniforms[sd.STATIC_OPTIONS].set([n])}}class Td extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Td)};super(Td.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[sd.FIRST_TEXTURE,id,rd]}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[sd.STATIC_OPTIONS].set([i,r])}}class Id extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Id)};super(Id.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[sd.STATIC_OPTIONS].set([e])}}class Ed extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Ed)};super(Ed.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[sd.FIRST_TEXTURE,id,sd.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[sd.STATIC_OPTIONS].set([e,n,i,r,o,s,a])}}class Sd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Sd)};super(Sd.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[sd.FIRST_TEXTURE,sd.SECOND_TEXTURE]}}class Nd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Nd)};super(Nd.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[sd.FIRST_TEXTURE,sd.SECOND_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(t){const e=Number.parseFloat(t.lutSize).toFixed(1);this.uniforms[sd.STATIC_OPTIONS].set([e])}}var Ad="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",Md='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:Fd,cos:Cd,sin:Od,acos:Pd,atan2:Rd,sqrt:Dd,pow:Bd}=Math;function Ld(t){return t<0?-Bd(-t,1/3):Bd(t,1/3)}const zd=Math.PI,Wd=2*zd,Ud=zd/2,$d=Number.MAX_SAFE_INTEGER||9007199254740991,jd=Number.MIN_SAFE_INTEGER||-9007199254740991,qd={x:0,y:0,z:0},Vd={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),Dd(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],qd],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||Vd.approximately(t,e)||Vd.approximately(t,n)},approximately:function(t,e,n){return Fd(t-e)<=(n||1e-6)},length:function(t){const e=Vd.Tvalues.length;let n=0;for(let i,r=0;r<e;r++)i=.5*Vd.Tvalues[r]+.5,n+=Vd.Cvalues[r]*Vd.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(Vd.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 Rd(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 Dd(n*n+i*i)},closest:function(t,e){let n,i,r=Bd(2,63);return t.forEach((function(t,o){i=Vd.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=Bd(t,e)+Bd(1-t,e);return Fd((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=Bd(1-t,e);return n/(Bd(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 Vd.lli8(r,o,s,a,l,c,u,d)},lli:function(t,e){return Vd.lli4(t,t.c,e,e.c)},makeline:function(t,e){return new eh(t.x,t.y,(t.x+e.x)/2,(t.y+e.y)/2,e.x,e.y)},findbbox:function(t){let e=$d,n=$d,i=jd,r=jd;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(!Vd.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=Vd.makeline(e.points[i-1],t.points[0]),s=Vd.makeline(t.points[r-1],e.points[0]),a={startcap:o,forward:t,back:e,endcap:s,bbox:Vd.findbbox([o,t,e,s]),intersections:function(t){return Vd.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=$d,s=jd;-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=-Rd(e.p2.y-i,e.p2.x-n);return t.map((function(t){return{x:(t.x-n)*Cd(r)-(t.y-i)*Od(r),y:(t.x-n)*Od(r)+(t.y-i)*Cd(r)}}))},roots:function(t,e){e=e||{p1:{x:0,y:0},p2:{x:1,y:0}};const n=t.length-1,i=Vd.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=-Dd(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(Vd.approximately(l,0)){if(Vd.approximately(c,0))return Vd.approximately(u,0)?[]:[-d/u].filter(r);const t=Dd(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,g=m*m+f*f*f;let v,y,b,k,x;if(g<0){const t=-h/3,e=Dd(t*t*t),n=-p/(2*e),i=Pd(n<-1?-1:n>1?1:n),o=2*Ld(e);return b=o*Cd(i/3)-c/3,k=o*Cd((i+Wd)/3)-c/3,x=o*Cd((i+2*Wd)/3)-c/3,[b,k,x].filter(r)}if(0===g)return v=m<0?Ld(-m):-Ld(m),b=2*v-c/3,k=-v-c/3,[b,k].filter(r);{const t=Dd(g);return v=Ld(-m+t),y=Ld(m+t),[v-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=-Dd(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=Vd.compute(t,e),h=Vd.compute(t,n),f=d.x*d.x+d.y*d.y;if(i?(o=Dd(Bd(d.y*h.z-h.y*d.z,2)+Bd(d.z*h.x-h.z*d.x,2)+Bd(d.x*h.y-h.x*d.y,2)),s=Bd(f+d.z*d.z,1.5)):(o=d.x*h.y-d.y*h.x,s=Bd(f,1.5)),0===o||0===s)return{k:0,r:0};if(c=o/s,u=s/o,!r){const r=Vd.curvature(t-.001,e,n,i,!0).k,o=Vd.curvature(t+.001,e,n,i,!0).k;l=(o-c+(c-r))/2,a=(Fd(o-c)+Fd(c-r))/2}return{k:c,r:u,dk:l,adk:a}},inflections:function(t){if(t.length<4)return[];const e=Vd.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(Vd.approximately(o,0)){if(!Vd.approximately(s,0)){let t=-a/s;if(0<=t&&t<=1)return[t]}return[]}const l=2*o;if(Vd.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,Fd(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 Vd.bboxoverlap(t.left.bbox(),t.right.bbox())}));let u=[];return 0===c.length||(c.forEach((function(t){u=u.concat(Vd.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*Cd(Ud)-r*Od(Ud),l=i*Od(Ud)+r*Cd(Ud),c=o*Cd(Ud)-s*Od(Ud),u=o*Od(Ud)+s*Cd(Ud),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,g=h+l,v=f+c,y=p+u,b=Vd.lli8(d,h,m,g,f,p,v,y),k=Vd.dist(b,t);let x,w=Rd(t.y-b.y,t.x-b.x),_=Rd(e.y-b.y,e.x-b.x),T=Rd(n.y-b.y,n.x-b.x);return w<T?((w>_||_>T)&&(w+=Wd),w>T&&(x=T,T=w,w=x)):T<_&&_<w?(x=T,T=w,w=x):T+=Wd,b.s=w,b.e=T,b.r=k,b},numberSort:function(t,e){return t-e}};class Hd{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 Vd.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++)Vd.expandbox(e,t[n].bbox());return e}offset(t){const e=[];return this.curves.forEach((function(n){e.push(...n.offset(t))})),new Hd(e)}}const{abs:Gd,min:Kd,max:Xd,cos:Yd,sin:Qd,acos:Jd,sqrt:Zd}=Math,th=Math.PI;let eh=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=Vd.align(s,{p1:s[0],p2:s[l]}),d=Vd.dist(s[0],s[l]);this._linear=u.reduce(((t,e)=>t+Gd(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=Vd.dist(n,s.C));const a=o*(1-r)/r,l=Vd.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,g=n.y-h,v=n.x+f,y=n.y+p,b=s.A,k=b.x+(m-b.x)/(1-r),x=b.y+(g-b.y)/(1-r),w=b.x+(v-b.x)/r,_=b.y+(y-b.y)/r,T={x:t.x+(k-t.x)/r,y:t.y+(x-t.y)/r},I={x:i.x+(w-i.x)/(1-r),y:i.y+(_-i.y)/(1-r)};return new e(t,T,I,i)}static getUtils(){return Vd}getUtils(){return e.getUtils()}static get PolyBezier(){return Hd}valueOf(){return this.toString()}toString(){return Vd.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=Vd.derive(this.points,this._3d),this.computedirection()}computedirection(){const t=this.points,e=Vd.angle(t[0],t[this.order],t[1]);this.clockwise=e>0}length(){return Vd.length(this.derivative.bind(this))}static getABC(t=2,e,n,i,r=.5){const o=Vd.projectionratio(r,t),s=1-o,a={x:o*e.x+s*i.x,y:o*e.y+s*i.y},l=Vd.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],Vd.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=Vd.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=Vd.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?Vd.computeWithRatios(t,this.points,this.ratios,this._3d):Vd.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 Vd.compute(t,this.dpoints[0],this._3d)}dderivative(t){return Vd.compute(t,this.dpoints[1],this._3d)}align(){let t=this.points;return new e(Vd.align(t,{p1:t[0],p2:t[t.length-1]}))}curvature(t){return Vd.curvature(t,this.dpoints[0],this.dpoints[1],this._3d)}inflections(){return Vd.inflections(this.points)}normal(t){return this._3d?this.__normal3(t):this.__normal2(t)}__normal2(t){const e=this.derivative(t),n=Zd(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=Zd(e.x*e.x+e.y*e.y+e.z*e.z),r=Zd(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=Zd(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=Vd.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=Vd.map(0,0,1,this._t1,this._t2),r.left._t2=Vd.map(t,0,1,this._t1,this._t2),r.right._t1=Vd.map(t,0,1,this._t1,this._t2),r.right._t2=Vd.map(1,0,1,this._t1,this._t2),n?(n=Vd.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]=Vd.droots(r),3===this.order&&(r=this.dpoints[1].map(i),t[n]=t[n].concat(Vd.droots(r))),t[n]=t[n].filter((function(t){return t>=0&&t<=1})),e=e.concat(t[n].sort(Vd.numberSort))}.bind(this)),t.values=e.sort(Vd.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]=Vd.getminmax(this,n,t[n])}.bind(this)),e}overlaps(t){const e=this.bbox(),n=t.bbox();return Vd.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=Vd.angle(this.points[0],this.points[3],this.points[1]),e=Vd.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),Gd(Jd(n))<th/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,Gd(n-i)<r)return[];e=t.split(n,i),e._t1=Vd.map(n,0,1,t._t1,t._t2),e._t2=Vd.map(i,0,1,t._t1,t._t2),s.push(e),n=i;break}n<1&&(e=t.split(n,1),e._t1=Vd.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=Vd.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]=Vd.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=Zd(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]=Vd.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=Vd.makeline(h[2],d[0]),p=Vd.makeline(d[2],h[0]),m=[f,new e(d),p,new e(h)];return new Hd(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 Vd.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],g=c[s-1].points[c[s-1].points.length-1],v=c[0].points[0],y=Vd.makeline(g,p),b=Vd.makeline(m,v),k=[y].concat(a).concat([b]).concat(c);return new Hd(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=Vd.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=Kd(t.p1.x,t.p2.x),n=Kd(t.p1.y,t.p2.y),i=Xd(t.p1.x,t.p2.x),r=Xd(t.p1.y,t.p2.y);return Vd.roots(this.points,t).filter((t=>{var o=this.get(t);return Vd.between(o.x,e,i)&&Vd.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=Vd.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=Vd.dist(t,e),l=Vd.dist(t,o),c=Vd.dist(t,s);return Gd(l-a)+Gd(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=Vd.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*Yd(a.e),y:a.y+a.r*Qd(a.e)};a.e+=Vd.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 nh={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 eh({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 eh(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 eh(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 ih{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{rh(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 rh(t,e,n){let i=t[e];t[e]=t[n],t[n]=i}function oh(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 sh={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 ih(n,i);let o=[];for(let n=0;n<e;n++)o.push(oh(n/(e-1),r,t));return o}};function ah(t,e=256,n={}){return"bezier"===n.type?nh.pointsToCurve(t,e,n):sh.pointsToCurve(t,e)}const lh=[];for(let t=0;t<256;t++)lh[t]=t;class ch extends fd{constructor(t){const e={vertex:Ad,fragment:Md},n={uniforms:fd.getUniformInfo(ch)};super(ch.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,ah(n,256).map((t=>255*t))):lh],this.uniforms[sd.STATIC_OPTIONS].set(e)}}function uh(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 dh extends fd{constructor(t){const e={vertex:Ad,fragment:Md},n={uniforms:fd.getUniformInfo(dh)};super(dh.getFilterType(),e,n,t)}static getFilterType(){return"levels"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=[...uh(t.black,t.white,t.gamma)];this.uniforms[sd.STATIC_OPTIONS].set(e)}}const hh=360,fh=[];for(let t=0;t<hh;t++)fh[t]=t;class ph extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(ph)};super(ph.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 ah(t,hh,{type:"bezier"}).map((t=>{return e=t,((Math.round(e.x*hh)+180)%hh+(1-e.y-.5)*hh+hh)%hh;var e}))}(t.points)||fh;this.uniforms[sd.STATIC_OPTIONS].set(e)}}class mh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(mh)};super(mh.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[sd.STATIC_OPTIONS].set([e,n])}}class gh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(gh)};super(gh.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[sd.STATIC_OPTIONS].set([e,n,i,r])}}class vh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(vh)};super(vh.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[sd.STATIC_OPTIONS].set([e])}}class yh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(yh)};super(yh.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[sd.FIRST_TEXTURE,id,rd]}handleStaticUniforms(t){let e={...yh.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[sd.STATIC_OPTIONS].set([n,i,r,o,s,a,l,c,h,f,d,u])}}class bh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(bh)};super(bh.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[sd.STATIC_OPTIONS].set([n,i,r,o])}}class kh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(kh)};super(kh.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 xh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(xh)};super(xh.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[sd.STATIC_OPTIONS].set([e,n])}}class wh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(wh)};super(wh.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[sd.STATIC_OPTIONS].set([e])}}var _h,Th,Ih,Eh,Sh,Nh,Ah,Mh;function Fh(){if(Eh)return Ih;Eh=1;const t=Th?_h:(Th=1,_h={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"]}};Ih=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]},Ih}function Ch(){if(Nh)return Sh;Nh=1;const t=Fh();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 Sh=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 Oh=function(){if(Mh)return Ah;Mh=1;const t=Fh(),e=Ch(),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)}))})),Ah=n}(),Ph=bc(Oh);class Rh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Rh)};super(Rh.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=Ph.hex.rgb(t.color).map((t=>t/255));this.uniforms[sd.STATIC_OPTIONS].set([e[0],e[1],e[2]])}}class Dh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Dh)};super(Dh.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[sd.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[sd.FIRST_TEXTURE,od]}}class Bh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Bh)};super(Bh.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[sd.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[sd.FIRST_TEXTURE,od]}}class Lh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Lh)};super(Lh.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[sd.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[sd.FIRST_TEXTURE,od]}}class zh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(zh)};super(zh.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[sd.STATIC_OPTIONS].set([e.from,e.to,...e.ease,n.x,n.y])}static getUniformList(){return[sd.FIRST_TEXTURE,od,id]}}class Wh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Wh)};super(Wh.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=Ph.hex.rgb(n).map((t=>t/255));this.uniforms[sd.STATIC_OPTIONS].set([e.from,e.to,...e.ease,i[0],i[1],i[2]])}static getUniformList(){return[sd.FIRST_TEXTURE,od]}}var Uh=Object.freeze({__proto__:null,Crop:yh,Curves:ch,Default:pd,DipToBlackTransition:Bh,DirectionalBlur:Td,Exposure:wh,ExposureTransition:Dh,FadeToColorTransition:Wh,FastBlur:_d,HardLight:Rh,HorizontalBlur:xd,Hue:ph,Lab:xh,Levels:dh,Lut:Nd,MotionBlurTransition:zh,Opacity:Id,Saturation:vh,ShapeComposite:Sd,ShapeCompositeMask:Ed,Solid:bh,SolidImage:kh,Transform:kd,TransformTransition:Lh,VerticalBlur:wd,Vibrance:gh,WhiteBalance:mh});const $h=Object.values(Uh).reduce(((t,e)=>(t[e.getFilterType()]=e,t)),{});class jh{constructor(t){this.context=t}static getFilterClass(t){return $h[t]}getFilterIds(){return Object.keys(this.filterTypeToInstanceMap)}create(t,e){this.context={...this.context,options:e.options};const n=new $h[t](this.context);if(!n)throw new Error(`${t} is not a atom filter, atomFilter list: `,this.getFilterIds());return n}}const qh=ou.PREVIOUS_OUTPUT_PREFIX,Vh=Object.values(Uh).reduce(((t,e)=>(t[e.getFilterType()]={type:e.getFilterType(),options:e.getInitialOptions(),inputs:[...Array(e.getInputsCount())].map(((t,e)=>`${qh}${e}`)),outputs:[]},t)),{});var Hh,Gh,Kh=function(){if(Gh)return Hh;Gh=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)}),{})},Hh=s}(),Xh=bc(Kh),Yh=function(t,e){return Xh(t,e,{arrayMerge:(t,e)=>e})};const Qh=ou.MESSAGES.UPDATE_OPTIONS;let Jh=class{constructor(t,e){this.eventEmitter=new uu,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(Qh,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 Zh extends Jh{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=Yh(this.options,t),this.filter.updateStaticUniforms(this.options)}dispose(){this.filter.dispose()}}const tf=ou.MESSAGES.UPDATE_OPTIONS;class ef extends Zh{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}baseNodeUpdateOptions(t){this.options=Yh(this.options,t),this.filter.updateStaticUniforms(this.options)}registerListeners(){this.baseNode.getEventEmitter().on(tf,this.baseNodeUpdateOptions,this)}dispose(){this.filter.dispose(),this.baseNode.getEventEmitter().off(tf,this.baseNodeUpdateOptions,this)}}function nf(t){return null!==t&&"object"==typeof t}function rf(t){if(!nf(t)||(e=t,Array.isArray(e)))return t;var e;const n=Object.keys(t).sort(),i={};return n.forEach((e=>{i[e]=rf(t[e])})),i}function of(t,e){return null!=t&&t.id&&null!=e&&e.id?t.type===e.type&&t.id===e.id:t.type===e.type}function sf(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)),nf(i=n)&&nf(r)?JSON.stringify(rf(i))===JSON.stringify(rf(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]&&of(a,c[l])?l:c.findIndex((t=>of(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 af(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=bf.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 lf=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 af(sf(r,o),r,n,i)};class cf extends Jh{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=>bf.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 gu(e),r=[];this.nodes.forEach(((e,o)=>{const s={ioStore:t,graphIOManager:n};i=e.render(s),o!==this.nodes.length-1&&r.push(i)})),n.disposeTextures(r,i)}return n.setOutputs(e,r,i),i}getOptionsDisplay(){return[]}_updateOptions(t){this.nodes=lf(t,this.options,this.nodes,this.context),this.options=t}dispose(){this.nodes.forEach((t=>{t.dispose()}))}}const uf=ou.MESSAGES.UPDATE_OPTIONS;class df extends cf{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}registerListeners(){this.baseNode.getEventEmitter().on(uf,this.updateOptions,this)}dispose(){this.nodes.forEach((t=>{t.dispose()})),this.baseNode.getEventEmitter().off(uf,this.updateOptions,this)}}const hf=ou.SYSTEM_NODES.TAGS.ATOM,ff=ou.SYSTEM_NODES.TAGS.FILTER,pf=ou.SYSTEM_NODES.TAGS.COMPOSITE_FILTER,mf=ou.SYSTEM_NODES.TAGS.TRANSITION_FILTER,gf=ou.PREVIOUS_OUTPUT_PREFIX,vf=Object.keys(Vh);function yf(t,e){const n=(i=t.type,Vh[i]);var i;return t=Yh(n,t),new Zh(t.type,t,e)}var bf={create:function(t,e){let n;switch(function(t){let e;return n=t,e=vf.includes(n)?hf:t===pf?pf:t===mf?mf:ff,e;var n}((t=JSON.parse(JSON.stringify(t))).type)){case hf:n=yf(t,e);break;case ff: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=Yh(r,t),e={...e,baseNode:n},o=i===pf?new df(i,t,e):new ef(i,t,e),o}(t,e);break;case pf:n=function(t,e){const n=t.type;return t=Yh({inputs:[`${gf}0`]},t),new cf(n,t,e)}(t,e);break;case mf: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`,yf(t,e)}(t,e);break;default:throw new Error("cant create node",t.type)}return n}};const kf=ou.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS;var xf=function(t){const e={[kf]:Vh[kf]};for(const[n,i]of Object.entries(e)){const e=bf.create(i,t);t.nodeStore.set(n,e)}},wf=function(t,e){for(const[n,i]of Object.entries(t)){const t=bf.create(i,e);e.nodeStore.set(n,t)}};const _f=ou.CAPTURED_FRAME_PREFIX;class Tf{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=`${_f}${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 If=Dc("ShaderGraphApplication","warn"),Ef=ou.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS,Sf=Object.freeze({useCanvasSizedFilterTargets:!1,rebindAttributesOnProgramSwitch:!0,forwardContextAttributes:!0});function Nf(t={}){const e=null==t?void 0:t.performanceToggles;return e&&"object"==typeof e?{...Sf,...e}:{...Sf}}class Af{constructor(t,e={}){return this.glSource=t,this.config=e,this.performanceToggles=Nf(e),this.isContextLost=!1,this.isRecovering=!1,this.isDisposed=!1,this.pendingNodeOptionUpdates=new Map,this.doInit(t,e)}doInit(t,e){this.source=pu(t),this.performanceToggles=Nf(e),this.isDisposed=!1,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=Sf){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(),"undefined"!=typeof window&&(window.ekoShaderGraph=this),this.selectedRenderNode=null,this.activeTextures=this.activeTextures||new Set,this.textureManager=new Tu({gl:this.gl,activeTextures:this.activeTextures}),this.capturedFramesManager=new Tf({textureManager:this.textureManager}),this.graphIOManager=new Cu({glSource:t,gl:this.gl,textureManager:this.textureManager,capturedFramesManager:this.capturedFramesManager}),this.frameBufferFactory=new zu({gl:this.gl,textureManager:this.textureManager,useCanvasSizedFilterTargets:this.performanceToggles.useCanvasSizedFilterTargets}),this.filterFactory=new jh({gl:this.gl,frameBufferFactory:this.frameBufferFactory,rebindAttributesOnProgramSwitch:this.performanceToggles.rebindAttributesOnProgramSwitch}),this.nodeStore=new gu,this.ioStore=new gu,xf({nodeStore:this.nodeStore,filterFactory:this.filterFactory}),this.addClientNodes(e.nodes,this.isRecovering),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)}}getNodes(){return If.debug("[getNodes]"),this.nodeStore.get()}addClientNodes(t,e=!1){if(If.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));wf(n,{nodeStore:this.nodeStore,filterFactory:this.filterFactory})}addTexture(t,e,n){if(If.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){If.debug("[releaseTexture]",t),this.isContextUnavailable()||this.textureManager.releaseTexture(t)}selectNode(t){if(If.debug("[selectNode]",t),!this.isContextUnavailable())return this.nodeStore.get(t)||If.warn("Missing render node",t),void(this.selectedRenderNodeId=t);this.selectedRenderNodeId=t}captureTexture(){return If.debug("[captureTexture]"),this.isContextUnavailable()?null:this.capturedFramesManager.createCaptureId()}disposeTexture(t){return If.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}}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){If.error("Failed to apply pending node options",e,t),this.queueNodeOptionUpdate(e,n)}return}this.updateOptions(e,n)}catch(t){If.error("Failed to apply pending node options",e,t)}}))}render(t={}){var e,n;const{noRaf:i=!1}=t;if(this.isContextUnavailable())return;if(this.dirtyCanvasSize){let{width:t=this.gl.canvas.width,height:e=this.gl.canvas.height}=this.dirtyCanvasSize;Du(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}const r=null===(e=this.gl)||void 0===e||null===(e=e.canvas)||void 0===e?void 0:e.width,o=null===(n=this.gl)||void 0===n||null===(n=n.canvas)||void 0===n?void 0:n.height;Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0&&(Du(r,o),this.gl.viewport(0,0,r,o)),this.graphIOManager.setVideoSources(this.ioStore);let s={ioStore:this.ioStore,graphIOManager:this.graphIOManager};this.renderSelectedNode(s),this.config.onPreRenderToScreen&&this.config.onPreRenderToScreen(),this.renderToCanvas(s),this.config.onPostRenderToScreen&&this.config.onPostRenderToScreen(),this.graphIOManager.disposeAllStore(this.ioStore),s=null,!i&&!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):(If.warn("Missing selected render node",this.selectedRenderNodeId),this.selectedRenderNodeId=null)}renderToCanvas(t){const e=this.nodeStore.get(Ef);e&&"function"==typeof e.render?e.render(t):If.warn("Missing render-to-canvas node")}updateOptions(t,e){if(If.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){If.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(){If.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),If.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=>{If.debug("Re-adding client nodes",t),this.addClientNodes(t,!0)})),Object.entries(e).forEach((([t,e])=>{If.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&&(If.debug("Recovering glSource (i.e. seeking/resetting player)"),await this.source.recover()),this.isContextLost=!1,this.isRecovering=!1,o&&this.render()}catch(t){If.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 Mf{constructor(t={}){this.options=t}get type(){return"stage"}getSignature(){return this.type}build({inputs:t=[]}={}){return{graph:[],outputs:t,signature:this.getSignature()}}}function Ff(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 Cf extends Mf{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:Ff(a)}),o.push(l)}return{graph:r,outputs:o,signature:this.getSignature()}}}class Of{#E=new Map;constructor(){this.register("retarget",Cf)}register(t,e){t&&"function"==typeof e&&this.#E.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.#E.get(e);return n?new n((null==t?void 0:t.options)||{}):null}}class Pf{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 Rf extends Pf{#S=null;#N=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=Rf.buildLayoutGraph({inputs:t}),r=e.signature;this.#S!==r&&(i.updateOptions(o,{graph:e.graph}),this.#S=r),this.#N!==o&&(i.selectNode(o),this.#N=o),i.render({noRaf:!0})}catch(t){}}}var Df=new WeakMap,Bf=new WeakMap,Lf=new WeakSet;class zf extends Pf{constructor(...t){super(...t),O(this,Lf),F(this,Df,null),F(this,Bf,null)}static get type(){return"side-by-side"}static get aliases(){return["SideBySideRenderNode","side-by-side","sidebyside"]}static get requiresFrameCadence(){return!1}static get panAndScanTarget(){return"skip"}static buildLayoutGraph({inputs:t=[]}={}){const e=t.length;if(e<=1)return super.buildDefaultLayoutGraph(t);const n=1/e,i=[],r=t.map(((t,e)=>{const r=(e+.5)*n,o=`slice-${e}`;return i.push({id:`side-by-side-crop-${e}`,type:"crop",inputs:[t],outputs:[o],options:{source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:r,y:.5},width:n,height:1},fitType:"fill",cornerRadius:0,edgeSoftness:0}}),o}));let o=r[0];for(let t=1;t<e;t+=1){const e=(t+.5)*n*2-1;i.push({id:`side-by-side-mask-${t}`,type:"shapeCompositeMask",inputs:[r[t],o],outputs:["accum"],options:{type:"box",center:{x:e,y:0},area:{width:n,height:1},radius:0,edgeSoftness:0}}),o="accum"}return{type:zf.type,signature:`${zf.type}:${t.length}`,isDynamic:!1,graph:i}}static prepareRenderFrames({frames:t,state:e}={}){const n=Array.isArray(t)?t:[],i=e&&"object"==typeof e?e:{},r=Array.isArray(i.frames)?i.frames:[];if(!n.length&&!r.length)return i.frames=[],i!==e&&e&&"object"==typeof e&&Object.assign(e,i),[];const o=Math.max(n.length,r.length,2),s=Array.from({length:o}),a=n[0]||r[0];for(let t=0;t<o;t+=1)s[t]=n[t]||r[t]||a;return i.frames=s,i!==e&&e&&"object"==typeof e&&Object.assign(e,i),s}static resetRenderState(t){t&&"object"==typeof t&&(t.frames=null)}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.sideBySide;if(o){if(1===n.length){const t=null==r?void 0:r.default;try{N(Lf,this,Wf).call(this,i,t)}catch(t){}return}try{N(Lf,this,Uf).call(this,i,o,n)}catch(t){}}}}function Wf(t,e){if(!e)return;const n=se.buildLayoutGraph({inputs:["__SRC_TEXTURE:0"]}),i=n.signature;M(Df,this)!==i&&(t.updateOptions(e,{graph:n.graph}),C(Df,this,i)),M(Bf,this)!==e&&(t.selectNode(e),C(Bf,this,e)),t.render({noRaf:!0})}function Uf(t,e,n){const i=Array.isArray(n)?n.length:0;if(!e||!i||i<2)return;const r=n.map(((t,e)=>t?`__SRC_TEXTURE:${e}`:null)).filter(Boolean),o=se.buildLayoutGraph({inputs:r}),s=o.signature;M(Df,this)!==s&&(t.updateOptions(e,{graph:o.graph}),C(Df,this,s)),M(Bf,this)!==e&&(t.selectNode(e),C(Bf,this,e)),t.render({noRaf:!0})}function $f(t){const e=Number(t);return Number.isFinite(e)?e<=0?0:e>=1?1:e:0}se=zf;class jf extends Pf{#S=null;#N=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=$f(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:jf.type,signature:`${jf.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=$f((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.#S!==e){const n=jf.buildLayoutGraph({inputs:["__SRC_TEXTURE:0"]});i.updateOptions(t,{graph:n.graph}),this.#S=e}this.#N!==t&&(i.selectNode(t),this.#N=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=jf.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.#S===r&&this.#A===a||(i.updateOptions(o,{graph:n.graph}),this.#S=r,this.#A=a),this.#N!==o&&(i.selectNode(o),this.#N=o),i.render({noRaf:!0})}catch(t){}}}function qf(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 Vf(t){return!(!t||!0===t.offsetPending)&&Number.isFinite(t.offset)}function Hf(t){return Vf(t)?t.offset:void 0}function Gf(t,e,n,i={}){if(!t)return!1;const r=Hf(t);if(!Number.isFinite(r))return!1;const o=qf(t,n,i);return Number.isFinite(o)?e>=r&&e<r+o:e>=r}function Kf(t=[]){if(!Array.isArray(t))return t;const e=[],n=[];return t.forEach((t=>{Vf(t)?e.push(t):n.push(t)})),e.sort(((t,e)=>t.offset-e.offset)),t.splice(0,t.length,...e,...n),t}function Xf(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=Hf(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&&Kf(t),{updated:a,resolvedPlacements:l}}function Yf(t){const e=Number(t);return Number.isFinite(e)?e:0}function Qf(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 Jf(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 Zf(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 tp(t){const e=Number(t);return Number.isFinite(e)&&e>0?e:0}function ep(t){return(null==t?void 0:t.id)||(null==t?void 0:t.nodeId)||null}function np(t,e){return Array.isArray(t)&&e?t.findIndex((t=>ep(t)===e)):-1}function ip(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=np(e,n);return t>=0?(t+1)%i:0}if("prev"===t){const t=np(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)?ep(e[i]):null}function rp(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=Hf(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)=>Hf(t)-Hf(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 op(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 sp(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 ap(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(op(n,r,t))return r}return null}function lp(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 cp extends Pf{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=$f(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:cp.type,signature:`${cp.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:$f(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&&(lp(a),a.activeRenderPlacementId=l);const c=null==r?void 0:r.initSwitching,u=rp(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=sp(a.placements,a.selectedPlacementId),i=ip(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=ip(Number.isInteger(t)&&t>=0?t:0,a.nodes,null);let n=null;if(e&&(n=ap(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&&op(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=ap(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=tp(a.pendingSwitch.crossfadeSeconds),s=tp(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=$f(t/a.switchDuration))}a.switchNormalizedTime=Number.isFinite(p)?p:void 0;const m=sp(a.placements,a.selectedPlacementId),g=op(s,a.selectedPlacementId,m)||s[0];let v=null;if(Number.isFinite(a.switchNormalizedTime)&&a.previousPlacementId){const t=sp(a.placements,a.previousPlacementId),e=sp(a.placements,a.selectedPlacementId),n=op(s,a.previousPlacementId,t),i=op(s,a.selectedPlacementId,e);n&&i&&(v=[n,i])}return v||(v=g?[g]:s),v}static resetRenderState(t){t&&"object"==typeof t&&lp(t)}}const up=[Rf,zf,jf,cp],dp=new Map;function hp(t){if("string"!=typeof t)return null;const e=t.trim();return e?e.toLowerCase():null}function fp(t){const e=hp(t);return e&&dp.get(e)||null}function pp(t){return fp(t)||Rf}up.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=hp(e);n&&dp.set(n,t)}))}(t)));class mp{static get defaultType(){return Rf.type||"default"}static getRenderNodeClass(t){return fp(t)}static normalizeType(t){const e=fp(t);return e?e.type:null}static doesRenderNodeTypeRequireFrameCadence(t){const e=fp(t);return!!e&&!0===e.requiresFrameCadence}static buildLayoutGraph({type:t,inputs:e=[],normalizedTime:n}={}){const i=pp(t);return i&&"function"==typeof i.buildLayoutGraph?i.buildLayoutGraph({inputs:e,normalizedTime:n}):Rf.buildLayoutGraph({inputs:e,normalizedTime:n})}static getPanAndScanTarget(t){const e=pp(t);return"post"===(n=null==e?void 0:e.panAndScanTarget)||"skip"===n?n:"pre";var n}static prepareRenderFrames({type:t,frames:e,timelineTime:n,timeline:i,active:r,renderNodeParams:o,state:s}={}){const a=pp(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=pp(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=pp(t);n&&"function"==typeof n.resetRenderState&&n.resetRenderState(e)}static resetAllRenderStates(t){t&&"function"==typeof t.forEach&&t.forEach(((t,e)=>{mp.resetRenderState(e,t)}))}create(t,e){return t&&"function"==typeof t.render?t:new(pp(t))(e)}}function gp(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function vp(t,e){return t&&"function"==typeof t.getSignature?t.getSignature():(null==e?void 0:e.type)||"stage"}class yp{#M;constructor(t){this.#M=t||new Of}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=mp.normalizeType(null==t?void 0:t.layoutType)||mp.defaultType,r=null==t?void 0:t.normalizedTime,o=gp(null==t?void 0:t.preStages),s=gp(null==t?void 0:t.postStages),a=[],l=[`layout:${i}`,`inputs:${e}`];let c=n;o.forEach(((e,n)=>{const i=this.#M.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(vp(i,e))}));const u=mp.buildLayoutGraph({type:i,inputs:c,normalizedTime:r}),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.#M.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(vp(i,e))})),{graph:a,signature:l.join("|"),isDynamic:d}}}const bp=[0,0,1,1],kp="zoomInExposure",xp=["transform","exposure","fadeToColor","dipToBlack"],wp={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 _p(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function Tp(t,e=bp){return Array.isArray(t)&&t.length>=4?t:e}function Ip(t){return"string"==typeof t&&t.trim()?t.trim():"#ffffff"}function Ep(t,e){const n=null==t?void 0:t[e];return!1===n||null==n?null:Lc(n)?n:{}}function Sp(t={}){let e=0;return xp.forEach((n=>{const i=Ep(t,n);if(!i)return;const r=_p(null==i?void 0:i.duration);r>e&&(e=r)})),e}function Np(t,e,n,i,r){const o=[];return xp.forEach((s=>{const a=Ep(t,s);if(!a)return;const l=function(t,e,n){const i=_p(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=Tp(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=Tp(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:_p(null==n?void 0:n.from,0),to:_p(null==n?void 0:n.to,1),ease:t},o.options.properties.color=Ip((null==e?void 0:e.color)||r),o}if("exposure"===t||"dipToBlack"===t){const t=Tp(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:_p(null==n?void 0:n.from,0),to:_p(null==n?void 0:n.to,1),ease:t},o}return null}(s,a,e,l,r);c&&o.push(c)})),o}function Ap(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 Mp{#F=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(Lc(null==t?void 0:t.transition))return t.transition;if("string"==typeof(null==t?void 0:t.transition))return wp[t.transition]||wp[kp];if(Lc(null==t?void 0:t.filters)||Lc(null==t?void 0:t.reverseFilters))return{filters:t.filters||{},reverseFilters:t.reverseFilters||{}};if("string"==typeof(null==t?void 0:t.filter)){const e=_p(t.duration)>0?1e3*t.duration:500;return{filters:{[t.filter]:{duration:e,power:{from:0,to:1}}},reverseFilters:{}}}return wp[kp]}(t),n=zc({},(null==e?void 0:e.filters)||{},Lc(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(Lc(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=zc({},(null==e?void 0:e.reverseFilters)||{},Lc(null==t?void 0:t.reverseFilters)?t.reverseFilters:{});return{baseFilters:n,reverseFilters:zc({},i,r)}}(t),r=_p(null==t?void 0:t.duration),o=r>0?1e3*r:null,s=Sp(n),a=Sp(i),l=o&&s>0?o/s:1,c=o&&a>0?o/a:1,u=o||s||500,d=o||a||u,h=Ip(null==t?void 0:t.color),f=e.captureTexture(),p=Date.now(),m=Np(n,p,l,o,h);return this.#F={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:Ap(m),inGraph:null,inSignature:null},{captureId:f,outDurationMs:u,inDurationMs:d}}beginIncoming(){if(!this.#F)return;const t=Date.now(),e=Np(this.#F.reverseFilters,t,this.#F.inScale,this.#F.durationOverrideMs,this.#F.color);this.#F={...this.#F,phase:"in",startTime:t,inGraph:e,inSignature:Ap(e)}}reset(t){var e;t&&"function"==typeof t.disposeTexture&&null!==(e=this.#F)&&void 0!==e&&e.captureId&&t.disposeTexture(this.#F.captureId),this.#F=null}getState(){return this.#F}buildOutgoingGraph(){const t=this.#F;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.#F;return t&&"in"===t.phase&&Array.isArray(t.inGraph)&&t.inGraph.length?{signature:`transition:in:${t.inSignature||""}`,forceUpdate:!1,graph:t.inGraph}:null}}let Fp;const Cp=[/firefox\/(\d+)/,/edg\/(\d+)/,/opr\/(\d+)/,/chrome\/(\d+)/];function Op(){const t=Hc&&Hc.navigator&&(Hc.navigator.userAgent||Hc.navigator.platform||Hc.navigator.vendor)||"";if(Fp&&Fp.ua===t)return Fp;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<Cp.length;e+=1){const n=Cp[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 Fp={ua:t,lowerUA:e,isAndroid:n,isiOS:i,isMobile:r,isDesktop:o,isFirefox:s,browserMajorVersion:a},Fp}function Pp(){return Op().ua}function Rp(){return Op().isAndroid}function Dp(){return Op().isiOS}function Bp(){return Op().isMobile}function Lp(){return Op().isDesktop}function zp(){return Op().isFirefox}function Wp(){return Op().browserMajorVersion}var Up={getUserAgent:Pp,isAndroid:Rp,isiOS:Dp,isMobile:Bp,isDesktop:Lp,isFirefox:zp,getBrowserMajorVersion:Wp},$p=Object.freeze({__proto__:null,default:Up,getBrowserMajorVersion:Wp,getUserAgent:Pp,isAndroid:Rp,isDesktop:Lp,isFirefox:zp,isMobile:Bp,isiOS:Dp});const jp=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"});function qp(t,e){const n={};return Number.isFinite(t)&&(n.time=t),"string"==typeof e&&(n.source=e),n}function Vp({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 Hp({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}const Gp="Idle",Kp="Playing",Xp="Waiting",Yp="Paused",Qp="Seeking",Jp="Resetting";function Zp(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function tm(t,e){return!!Array.isArray(t)&&t.some((t=>(null==t?void 0:t.type)===e))}function em(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 nm(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 im=2073600;function rm(t,e){const n=Number(t);return Number.isFinite(n)&&n>0?n:e}function om(t,e){if(null==t)return e;const n=Number(t);return Number.isFinite(n)?n:e}var sm=new WeakMap,am=new WeakMap,lm=new WeakMap,cm=new WeakMap,um=new WeakMap,dm=new WeakMap,hm=new WeakMap,fm=new WeakMap,pm=new WeakMap,mm=new WeakMap,gm=new WeakMap,vm=new WeakMap,ym=new WeakMap,bm=new WeakMap,km=new WeakMap,xm=new WeakMap,wm=new WeakMap,_m=new WeakMap,Tm=new WeakMap,Im=new WeakMap,Em=new WeakMap,Sm=new WeakMap,Nm=new WeakMap,Am=new WeakMap,Mm=new WeakMap,Fm=new WeakSet;class Cm extends jc{static get pipelineNodeId(){return"ekoplayer-render-pipeline"}get defaults(){return{defaultRenderParams:void 0,resourceLimits:{enabled:!0,maxCanvasPixels:im,maxDevicePixelRatio:1,renderScale:1,transitionMinFrameIntervalMs:33}}}constructor(...t){super(...t),O(this,Fm),F(this,sm,void 0),F(this,am,void 0),F(this,lm,void 0),F(this,cm,void 0),F(this,um,void 0),F(this,dm,void 0),F(this,hm,void 0),F(this,fm,void 0),F(this,pm,void 0),F(this,mm,null),F(this,gm,null),F(this,vm,void 0),F(this,ym,void 0),F(this,bm,void 0),F(this,km,[]),F(this,xm,[]),F(this,wm,null),F(this,_m,null),F(this,Tm,null),F(this,Im,null),F(this,Em,null),F(this,Sm,null),F(this,Nm,new Map),F(this,Am,null),F(this,Mm,null);const[e,n,i]=t;C(sm,this,e),C(am,this,n),C(lm,this,i),C(pm,this,new yp),C(vm,this,new Mp),C(ym,this,null),C(bm,this,null),C(Tm,this,null),C(cm,this,(t=>N(Fm,this,sg).call(this,t))),M(sm,this)&&"function"==typeof M(sm,this).on&&(M(sm,this).on(jp.VISUAL_FRAMES_AVAILABLE,M(cm,this)),C(um,this,(()=>{var t,e,n,i;N(Fm,this,eg).call(this,0),C(xm,this,[]),C(wm,this,null),C(mm,this,null),C(gm,this,null),N(Fm,this,Vm).call(this),C(Am,this,null);(null===(t=M(vm,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t))||null===(n=M(vm,this))||void 0===n||null===(i=n.reset)||void 0===i||i.call(n,M(ym,this))})),M(sm,this).on(jp.TIMELINE_SEEKING,M(um,this)),C(fm,this,(()=>N(Fm,this,Xm).call(this))),M(sm,this).on(jp.TIMELINE_TIME_UPDATE,M(fm,this)),C(dm,this,(()=>{N(Fm,this,ag).call(this)&&M(_m,this)&&N(Fm,this,sg).call(this,M(_m,this))})),M(sm,this).on(jp.TIMELINE_STATE_CHANGE,M(dm,this))),C(hm,this,(()=>{C(wm,this,null),M(_m,this)&&N(Fm,this,ag).call(this)&&N(Fm,this,sg).call(this,M(_m,this))})),M(lm,this)&&"function"==typeof M(lm,this).on&&M(lm,this).on(jp.CONTAINER_RESIZE,M(hm,this))}get name(){return"Renderer"}onDispose(){M(sm,this)&&M(cm,this)&&"function"==typeof M(sm,this).off&&M(sm,this).off(jp.VISUAL_FRAMES_AVAILABLE,M(cm,this)),M(sm,this)&&M(um,this)&&"function"==typeof M(sm,this).off&&M(sm,this).off(jp.TIMELINE_SEEKING,M(um,this)),M(sm,this)&&M(fm,this)&&"function"==typeof M(sm,this).off&&M(sm,this).off(jp.TIMELINE_TIME_UPDATE,M(fm,this)),M(sm,this)&&M(dm,this)&&"function"==typeof M(sm,this).off&&M(sm,this).off(jp.TIMELINE_STATE_CHANGE,M(dm,this)),M(lm,this)&&M(hm,this)&&"function"==typeof M(lm,this).off&&M(lm,this).off(jp.CONTAINER_RESIZE,M(hm,this)),N(Fm,this,Om).call(this),C(cm,this,null),C(um,this,null),C(fm,this,null),C(dm,this,null),C(hm,this,null),C(pm,this,null),C(vm,this,null),C(Nm,this,null),C(Am,this,null),C(am,this,null),C(lm,this,null),C(sm,this,null)}startTransition(t={}){var e;const n=null===(e=M(am,this))||void 0===e?void 0:e.element;if(!n)return null;if(N(Fm,this,Pm).call(this,n),!M(ym,this))return null;const i=M(vm,this).start({shaderGraph:M(ym,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 C(Tm,this,M(_m,this)||null),N(Fm,this,ig).call(this),i}beginTransitionIn(t={}){var e,n;null!==(e=M(vm,this))&&void 0!==e&&null!==(n=e.beginIncoming)&&void 0!==n&&n.call(e,t),C(Tm,this,null),N(Fm,this,ig).call(this)}resetTransition(){var t,e;null!==(t=M(vm,this))&&void 0!==t&&null!==(e=t.reset)&&void 0!==e&&e.call(t,M(ym,this)),C(Tm,this,null),N(Fm,this,rg).call(this)}}function Om(){if(M(vm,this)&&"function"==typeof M(vm,this).reset&&M(vm,this).reset(M(ym,this)),N(Fm,this,eg).call(this,0),M(ym,this)&&"function"==typeof M(ym,this).dispose)try{M(ym,this).dispose()}catch(t){}C(ym,this,null),C(bm,this,null),C(km,this,[]),C(xm,this,[]),C(wm,this,null),C(mm,this,null),C(gm,this,null),C(_m,this,null),C(Tm,this,null),N(Fm,this,rg).call(this),N(Fm,this,Vm).call(this),C(Am,this,null)}function Pm(t){if(M(ym,this)||!t)return;const e=this,n={dest:t,src:(t,n)=>{C(bm,e,n)}};C(ym,e,new Af(n,{userWillCallRender:!0,glOptions:{contextType:"webgl2"},performanceToggles:{useCanvasSizedFilterTargets:!0}})),M(ym,e)&&"function"==typeof M(ym,e).addNodes&&M(ym,e).addNodes({[ae.pipelineNodeId]:{type:"composite",options:{graph:[]}}})}function Rm(){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 Dm(){const t=N(Fm,this,Rm).call(this).enabled;return!0===t||!1!==t&&Dp()}function Bm(){if(!N(Fm,this,Dm).call(this))return 0;const t=om(N(Fm,this,Rm).call(this).transitionMinFrameIntervalMs,33);return Number.isFinite(t)&&t>0?t:0}function Lm(t,e){if(!N(Fm,this,Dm).call(this))return{width:t,height:e};const n=N(Fm,this,Rm).call(this),i=om(n.maxCanvasPixels,im),r=om(n.maxDevicePixelRatio,1),o=rm(n.renderScale,1),s=rm(null==Hc?void 0:Hc.devicePixelRatio,1),a=o*(r>0?Math.min(s,r):s);let l=Math.max(1,Math.round(t*a)),c=Math.max(1,Math.round(e*a));if(i>0){const t=l*c;if(t>i){const e=Math.sqrt(i/t);l=Math.max(1,Math.floor(l*e)),c=Math.max(1,Math.floor(c*e))}}return{width:l,height:c}}function zm(t=[],e={}){var n;const i=null===(n=M(am,this))||void 0===n?void 0:n.element,r=M(bm,this);if(!i||"function"!=typeof r)return!1;let o=0,s=0;if(!0===(null==e?void 0:e.useViewportSize)){var a,l,c,u,d,h;const t=Number(null!==(a=null===(l=M(lm,this))||void 0===l?void 0:l.containerWidth)&&void 0!==a?a:null===(c=M(lm,this))||void 0===c?void 0:c.width),e=Number(null!==(u=null===(d=M(lm,this))||void 0===d?void 0:d.containerHeight)&&void 0!==u?u:null===(h=M(lm,this))||void 0===h?void 0:h.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 f;const n=null===(f=t[e])||void 0===f?void 0:f.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 p=N(Fm,this,Lm).call(this,o,s),m=p.width,g=p.height,v=M(wm,this);return!(v&&v.width===m&&v.height===g||(C(wm,this,{width:m,height:g}),r(null,null,m,g),0))}function Wm(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 Um(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=N(Fm,this,$m).call(this,t),s=N(Fm,this,jm).call(this,o);return mp.getRenderTiming({type:o,timing:{duration:i,normalizedTime:r},timelineTime:e,active:t,renderNodeParams:n,state:s})}function $m(t){return mp.normalizeType(null==t?void 0:t.type)||mp.defaultType}function jm(t){if(!t||!M(Nm,this))return null;let e=M(Nm,this).get(t);return e||(e={},M(Nm,this).set(t,e)),e}function qm(t){if(!t||!M(Nm,this))return;const e=M(Nm,this).get(t);e&&mp.resetRenderState(t,e),M(Nm,this).delete(t)}function Vm(){M(Nm,this)&&(mp.resetAllRenderStates(M(Nm,this)),M(Nm,this).clear())}function Hm(t,e,n,i){const r=N(Fm,this,$m).call(this,t);M(Am,this)&&M(Am,this)!==r&&N(Fm,this,qm).call(this,M(Am,this)),C(Am,this,r);const o=N(Fm,this,jm).call(this,r);return mp.prepareRenderFrames({type:r,frames:e,timelineTime:n,timeline:M(sm,this),active:t,renderNodeParams:i,state:o})}function Gm(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 Km(t){return t?String(t.renderPlacementId||t.type||"unknown"):"default"}function Xm(){if(!M(sm,this)||!M(_m,this))return;const t=M(sm,this).currentTime,e=M(sm,this).getActiveRenderPlacement(t),n=N(Fm,this,Km).call(this,e);n!==M(Mm,this)&&(C(Mm,this,n),N(Fm,this,sg).call(this,{...M(_m,this),time:t}))}function Ym(t){return!t||"object"!=typeof t||!Object.prototype.hasOwnProperty.call(t,"panAndScan")||!1!==t.panAndScan}function Qm(t,e){const n=N(Fm,this,Gm).call(this,t),i=null==n?void 0:n.stages;let r=Zp(null==i?void 0:i.pre),o=Zp(null==i?void 0:i.post);const s=N(Fm,this,Ym).call(this,n),a=N(Fm,this,$m).call(this,t),l=tm(r,"retarget")||tm(o,"retarget");if(s&&!l){const t=mp.getPanAndScanTarget(a);if("pre"===t){const t=em(Array.isArray(e)?e.length:0);t&&(r=[t,...r])}else if("post"===t){const t=em(1);t&&(o=[...o,t])}}else s||(r=nm(r),o=nm(o));return{preStages:r,postStages:o,renderNodeParams:n}}function Jm(t,e,n,i,r){const o=r||N(Fm,this,Um).call(this,t,n,i),s=N(Fm,this,Qm).call(this,t,e);return M(pm,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,timelineTime:n})}function Zm(){var t,e;const n=null===(t=M(vm,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t);return"out"===(null==n?void 0:n.phase)?M(vm,this).buildOutgoingGraph():"in"===(null==n?void 0:n.phase)?M(vm,this).buildIncomingGraph():null}function tg(t,e,n,i){const r=n||e!==M(mm,this),o=r||i;r&&M(ym,this)&&"function"==typeof M(ym,this).updateOptions&&(M(ym,this).updateOptions(ae.pipelineNodeId,{graph:t}),C(mm,this,e)),M(ym,this)&&"function"==typeof M(ym,this).selectNode&&M(gm,this)!==ae.pipelineNodeId&&(M(ym,this).selectNode(ae.pipelineNodeId),C(gm,this,ae.pipelineNodeId)),o&&M(ym,this)&&"function"==typeof M(ym,this).render&&M(ym,this).render({noRaf:!0})}function eg(t){if(!Array.isArray(M(km,this))||!M(km,this).length)return;const e=Number.isFinite(t)?Math.max(0,t):0;if(!(M(km,this).length<=e)){for(let t=e;t<M(km,this).length;t+=1){const e=M(km,this)[t];if(e&&M(ym,this)&&"function"==typeof M(ym,this).releaseTexture)try{M(ym,this).releaseTexture(e)}catch(t){}}M(km,this).length=e,M(xm,this).length=e}}function ng(t=[]){if(!M(ym,this)||"function"!=typeof M(ym,this).addTexture)return!1;if("function"==typeof M(ym,this).isContextUnavailable&&M(ym,this).isContextUnavailable())return!1;if(!Array.isArray(t)||!t.length)return N(Fm,this,eg).call(this,0),!1;N(Fm,this,eg).call(this,t.length);let e=!1;for(let i=0;i<t.length;i+=1){var n;M(km,this)[i]||"function"!=typeof M(ym,this).addTexture||(M(km,this)[i]=M(ym,this).addTexture(null,"frame",i));const r=N(Fm,this,Wm).call(this,t[i]),o=null===(n=t[i])||void 0===n?void 0:n.frame;if(M(km,this)[i]&&o&&(!r||r!==M(xm,this)[i]))try{M(km,this)[i].fill(o),M(xm,this)[i]=r,e=!0}catch(t){}}return e}function ig(){if(M(Im,this))return;const t="function"==typeof Hc.requestAnimationFrame?t=>Hc.requestAnimationFrame(t):t=>setTimeout(t,16),e="function"==typeof Hc.cancelAnimationFrame?t=>Hc.cancelAnimationFrame(t):clearTimeout;C(Em,this,e);const n=()=>{var e,i;if(null!==(e=M(vm,this))&&void 0!==e&&null!==(i=e.getState)&&void 0!==i&&i.call(e)){if(M(_m,this)){const t=N(Fm,this,Bm).call(this),e=Date.now();(!t||!M(Sm,this)||e-M(Sm,this)>=t)&&(C(Sm,this,e),N(Fm,this,sg).call(this,M(_m,this)))}C(Im,this,t(n))}else C(Im,this,null)};C(Im,this,t(n))}function rg(){M(Im,this)&&M(Em,this)&&M(Em,this).call(this,M(Im,this)),C(Im,this,null),C(Em,this,null),C(Sm,this,null)}function og(t){var e,n;const i=null===(e=M(vm,this))||void 0===e||null===(n=e.getState)||void 0===n?void 0:n.call(e);return"out"===(null==i?void 0:i.phase)&&M(Tm,this)?M(Tm,this):t}function sg(t={}){var e,n;const i=null===(e=M(am,this))||void 0===e?void 0:e.element,r=null===(n=M(am,this))||void 0===n?void 0:n.gl;if(!i||!r)return;if(t&&C(_m,this,t),!N(Fm,this,ag).call(this))return;const o=N(Fm,this,og).call(this,t),s=Number.isFinite(null==o?void 0:o.time)?o.time:void 0;if(!Number.isFinite(s))return;if(N(Fm,this,Pm).call(this,i),!M(ym,this))return;const a=M(sm,this)&&"function"==typeof M(sm,this).getActiveRenderPlacement?M(sm,this).getActiveRenderPlacement(s):void 0,l=N(Fm,this,Km).call(this,a);l!==M(Mm,this)&&C(Mm,this,l);const c=Array.isArray(null==o?void 0:o.frames)?o.frames:[],u=N(Fm,this,Gm).call(this,a),d=N(Fm,this,Ym).call(this,u),h=N(Fm,this,Hm).call(this,a,c,s,u),f=N(Fm,this,Um).call(this,a,s,u),p=N(Fm,this,zm).call(this,h,{useViewportSize:d}),m=N(Fm,this,ng).call(this,h),g=N(Fm,this,Jm).call(this,a,h,s,u,f),v=N(Fm,this,Zm).call(this);let y=g.graph,b=g.signature,k=!!g.isDynamic;v&&Array.isArray(v.graph)&&v.graph.length&&(y=y.concat(v.graph),b=`${b}|${v.signature||"transition"}`,k=k||!!v.forceUpdate);const x=p||m||k||v&&Array.isArray(v.graph)&&v.graph.length;N(Fm,this,tg).call(this,y,b,k,x)}function ag(){var t;const e=null===(t=M(sm,this))||void 0===t?void 0:t.state;return e===Gp||e===Kp||e===Yp}function lg(t){return"number"==typeof t&&Number.isFinite(t)&&t>0}function cg(t){return t&&"resource"===t.entryType&&t.transferSize>0&&t.duration>0&&t.responseEnd>=t.requestStart}function ug(t){return Array.isArray(t)&&0!==t.length?t.reduce(((t,e)=>t+e),0)/t.length:NaN}ae=Cm;var dg=new WeakMap,hg=new WeakMap,fg=new WeakMap,pg=new WeakMap,mg=new WeakSet;class gg extends jc{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),O(this,mg),F(this,dg,void 0),F(this,hg,void 0),F(this,fg,void 0),F(this,pg,void 0),C(dg,this,!!(Hc&&Hc.navigator&&Hc.navigator.connection)),C(hg,this,!(!Hc||!Hc.performance||"function"!=typeof Hc.performance.getEntriesByType)),C(fg,this,N(mg,this,yg).call(this)),C(pg,this,N(mg,this,_g).call(this))}guesstimate(){const t=N(mg,this,Ig).call(this);this.log.debug("[guesstimate] Data:",t);const e=N(mg,this,Tg).call(this,t),n=lg(e)?e:t.defaultKbps;return N(mg,this,bg).call(this,n),this.log.info(`[guesstimate] Result: ${n} kbps`),n}update(t){lg(t)&&N(mg,this,bg).call(this,t)}onDispose(){C(fg,this,void 0),C(pg,this,void 0)}}function vg(){return Math.round(Date.now()/1e3)}function yg(){try{if(!Hc||!Hc.localStorage||"function"!=typeof Hc.localStorage.getItem)return}catch(t){return}const t=this.settings.persistentStorage.key,e=Hc.localStorage.getItem(t);if(e)try{const t=JSON.parse(e),n=this.settings.persistentStorage.ttl,i=N(mg,this,vg).call(this)-t.timestamp;if("number"==typeof n&&n>=0&&i>n)return null;if(!lg(t.value))return;return t.value}catch(t){return}}function bg(t){if(!lg(t))return;try{if(!Hc||!Hc.localStorage||"function"!=typeof Hc.localStorage.setItem)return}catch(t){return}const e=this.settings.persistentStorage.key,n=JSON.stringify({value:t,timestamp:N(mg,this,vg).call(this)});try{Hc.localStorage.setItem(e,n),C(fg,this,t)}catch(t){}}function kg(){return Hc&&Hc.performance&&"function"==typeof Hc.performance.getEntriesByType?ug(Hc.performance.getEntriesByType("resource").filter(cg).map((t=>8*t.transferSize/t.duration))):NaN}function xg(){if(!Hc||!Hc.navigator||!Hc.navigator.connection)return NaN;const t=Hc.navigator.connection.downlink;return lg(t)?1e3*t:NaN}function wg(){if(!M(dg,this))return NaN;const t=Hc.navigator.connection,e=t.effectiveType||t.type,n=this.settings.connectionType||{};return e&&Object.prototype.hasOwnProperty.call(n,e)?n[e]:NaN}function _g(){const t=this.settings.ua||{};return Rp()?t.android:Dp()?t.ios:t.desktop}function Tg(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=>lg(t)));if(r.length===i.length)return this.log.debug("[#selectFromPriorities] Selected from priorities:",i,"with values:",r),ug(r)}return NaN}function Ig(){const t=this.settings.testOverrides||{},e=lg(t.resourceTiming)?t.resourceTiming:N(mg,this,kg).call(this),n=lg(t.downlink)?t.downlink:N(mg,this,xg).call(this),i=lg(t.persistentValue)?t.persistentValue:M(fg,this),r=lg(t.connectionType)?t.connectionType:N(mg,this,wg).call(this),o=lg(t.ua)?t.ua:M(pg,this);return{defaultKbps:this.settings.defaultKbps,resourceTiming:e,downlink:n,connectionType:r,persistentValue:i,ua:o}}const Eg=new Bc;function Sg(t){return"string"!=typeof t||0===t.length?[]:t.split(".").filter((t=>t.length>0))}function Ng(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 Ag(t){return null!==t&&"object"==typeof t}function Mg(t,e,n){const i=Sg(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 Fg(t,e,n){if(!Ag(t))return t;const i=Sg(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}Ag(r[e])||(r[e]=Ng(i[t+1])?[]:{}),r=r[e]}return t}const Cg={get:(t,e)=>Hc&&Hc.eko?Mg(Hc.eko,t,e):e,set(t,e){if(Hc)return Hc.eko&&"object"==typeof Hc.eko||(Hc.eko={}),Fg(Hc.eko,t,e),Hc.eko}},Og=Hc&&Hc.performance,Pg=Og&&"function"==typeof Og.now?()=>Og.now():()=>Date.now();function Rg(){return"undefined"==typeof AbortController?null:new AbortController}function Dg(){const t=new Error("The operation was aborted");return t.name="AbortError",t.code="ABORT_ERR",t}function Bg(t,e){return!(!e||!e.aborted)||!!t&&("AbortError"===t.name||"ABORT_ERR"===t.code||20===t.code)}const Lg=2,zg=100,Wg=2,Ug="runtime.downloadSpeedSamples",$g=Dc("download","warn");function jg(t){return new Promise((e=>{setTimeout(e,t)}))}function qg(t){return t>=500}function Vg(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 Hg(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=Cg.get(r);t||(t=[],Cg.set(r,t)),t.push(s)}catch(t){}return s}async function Gg(t,e={}){const{method:n="GET",headers:i,body:r,retries:o=Lg,retryDelay:s=zg,backoffFactor:a=Wg,samplesTargetPath:l=Ug,fetch:c,loglevel:u="warn",cache:d,signal:h,onProgress:f,returnType:p="default"}=e;$g.setLevel(u);const m=function(t){if(t)return t;if(Hc&&"function"==typeof Hc.fetch)return Hc.fetch.bind(Hc);throw new Error("fetch is not available in this environment")}(c);let g=0,v=s;for(;;){if(h&&h.aborted)throw Dg();const e=Pg();try{const s=await m(t,{method:n,headers:i,body:r,cache:d,mode:"cors",signal:h});if(h&&h.aborted)throw Dg();if(!s.ok){if(g<o&&qg(s.status)){g+=1,$g.warn(`[${t}] Download attempt #${g} failed with status ${s.status}, retrying in ${v}ms...`),await jg(v),v*=a;continue}$g.error(`[${t}] Download attempt #${g} 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=Pg();const u=Vg(s),y="arrayBuffer"===p||"bytes"===p,b=y&&"function"==typeof f;let k,x,w,_,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 Dg();const{done:n,value:i}=await t.read();if(n)break;if(i&&i.length){const t=Pg();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=Pg()}else if(y){const t=await s.arrayBuffer();k=new Uint8Array(t),I=k.length,c=Pg()}else"text"===p?(x=await s.text(),c=Pg()):"json"===p&&(w=await s.json(),c=Pg());if(h&&h.aborted)throw Dg();const E=y?k?k.length:I:("text"===p&&"string"==typeof x?x.length:0)||("json"===p&&w?JSON.stringify(w).length:0),S=u||E||0;let N=e,A=c;Number.isFinite(_)&&(N=_,Number.isFinite(T)&&(A=Math.max(T,c))),(!Number.isFinite(N)||!Number.isFinite(A)||A<N)&&(N=e,A=c);const M=Math.max(0,A-N),F=Hg(S,M,N,A,l,t);try{Eg.trigger("download:sample",F)}catch(t){}const C={response:s,bytes:S,durationMs:M,kbps:F.kbps,startTime:F.startTime,endTime:F.endTime};if("default"===p)return C;if("arrayBuffer"===p||"bytes"===p){const t=k||new Uint8Array(await s.arrayBuffer());return"arrayBuffer"===p?t.buffer:t}return"text"===p?x:"json"===p?w:C}catch(e){if(Bg(e,h))throw"AbortError"===e.name?e:Dg();if(!(g<o)||e.status&&!qg(e.status))throw $g.error(`[${t}] Download attempt #${g} failed with error ${e}, no more retries.`),e;g+=1,$g.warn(`[${t}] Download attempt #${g} failed with error ${e}, retrying in ${v}ms...`),await jg(v),v*=a}}}const Kg={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"]}},Xg=Object.freeze(Object.entries(Kg).reduce(((t,[e,n])=>(Object.prototype.hasOwnProperty.call(n,"default")&&(t[e]=n.default),t)),{})),Yg=Dc("config","warn");function Qg(t){return Xg[t]}var Jg=new WeakMap,Zg=new WeakMap,tv=new WeakMap,ev=new WeakMap,nv=new WeakMap,iv=new WeakSet;class rv extends jc{get name(){return"DownloadSpeed"}get defaults(){return{alpha:.3,maxSamples:30,minBytesPerSample:1024,minDurationMs:5,maxSampleKbpsCap:void 0,ignoreCacheHits:!0,samplesPath:"runtime.downloadSpeedSamples",initialKbps:Qg("initialKbps"),probeUrl:void 0,defaultKbps:2500}}constructor(...t){super(...t),O(this,iv),F(this,Jg,void 0),F(this,Zg,void 0),F(this,tv,void 0),F(this,ev,void 0),F(this,nv,void 0),C(tv,this,[]),C(Zg,this,0),C(Jg,this,N(iv,this,av).call(this)),C(nv,this,Rg()),C(ev,this,(t=>{N(iv,this,fv).call(this,t,"event")})),N(iv,this,lv).call(this),Eg.on("download:sample",M(ev,this)),N(iv,this,cv).call(this),this.log.debug(`[#constructor] Initial estimate: ${M(Jg,this)} kbps`)}getKbps(){return M(Jg,this)}addSample(t){N(iv,this,fv).call(this,t,"manual")}reset(){C(tv,this,[]),C(Zg,this,0),C(Jg,this,N(iv,this,av).call(this))}onDispose(){M(nv,this)&&M(nv,this).abort(),C(nv,this,null),Eg.off("download:sample",M(ev,this)),C(tv,this,[]),C(Zg,this,0),C(Jg,this,void 0),C(ev,this,null)}}function ov(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 sv(t){if(!t||"object"!=typeof t)return null;const e=Number(t.bytes),n=Number(t.durationMs);let i=lg(t.kbps)?Number(t.kbps):NaN;return!lg(i)&&n>0&&lg(e)&&(i=8*e/n),lg(i)?e<=this.settings.minBytesPerSample||n<=this.settings.minDurationMs||N(iv,this,ov).call(this,t,e)?null:(lg(this.settings.maxSampleKbpsCap)&&i>this.settings.maxSampleKbpsCap&&(i=this.settings.maxSampleKbpsCap),{...t,bytes:e,durationMs:n,kbps:i}):null}function av(){const t=this.settings.initialKbps;if(lg(t))return t;if("auto"===t)try{const t=(new gg).guesstimate();if(lg(t))return t}catch(t){}return this.settings.defaultKbps}function lv(){const t=Cg.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)N(iv,this,fv).call(this,e[t],"replay",{emit:!1})}async function cv(){if(!this.settings.probeUrl||M(Zg,this)>0)return;const t=M(nv,this)?M(nv,this).signal:void 0;if(!t||!t.aborted)try{await Gg(this.settings.probeUrl,{cache:"no-store",samplesTargetPath:this.settings.samplesPath,signal:t})}catch(t){}}function uv(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 dv(t,e){if(!N(iv,this,uv).call(this,t)||!N(iv,this,uv).call(this,e))return 0;const n=Math.max(t.startTime,e.startTime);return Math.min(t.endTime,e.endTime)-n}function hv(t){if(!N(iv,this,uv).call(this,t))return t;const e=[];for(let n=0;n<M(tv,this).length;n+=1){const i=M(tv,this)[n];N(iv,this,uv).call(this,i)&&(N(iv,this,dv).call(this,t,i)>0&&e.push(i))}if(0===e.length)return t;C(tv,this,M(tv,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(!lg(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 N(iv,this,sv).call(this,a)}function fv(t,e,{emit:n=!0}={}){const i=N(iv,this,sv).call(this,t);if(!i)return;const r=N(iv,this,hv).call(this,i);if(!r)return;C(Zg,this,M(Zg,this)+1),M(tv,this).push(r),M(tv,this).length>this.settings.maxSamples&&M(tv,this).shift();const o=this.defaults.alpha,s="number"==typeof this.settings.alpha?this.settings.alpha:o,a=lg(M(Jg,this)),l=a?M(Jg,this):r.kbps,c=a||1!==M(Zg,this)?s*r.kbps+(1-s)*l:r.kbps;C(Jg,this,c),this.log.debug(`[#ingestSample] Next estimate: ${c} kbps`),n&&this.trigger("download:speed",{kbps:M(Jg,this),sample:r,source:e,samplesCount:M(Zg,this)})}class pv{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),lg(s)&&(this.bandwidth=s),lg(a)&&(this.timescale=a),lg(l)&&(this.sizeBytes=l),Object.assign(this,c)}}class mv{#C=new Map;#O;#P;#R=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 pv?t:new pv(t))),this.representations=this.originalRepresentations.map((t=>t)),this.appliedFilters=[],this.loadAttempts=0,this.loadError=void 0}setRepresentationBuffer(t,e){t&&e&&this.#C.set(t,e)}setDownloadProgress(t,e){const n=Number(t);Number.isFinite(n)&&n>=0&&(this.#R=Math.max(this.#R,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.#C.size<=1))for(const t of this.#C.keys())t!==e&&this.#C.delete(t)}setABRDecisionSnapshot(t){if(!t||"object"!=typeof t)return void(this.#P=void 0);const e={...t};Array.isArray(t.availableRepresentations)&&(e.availableRepresentations=t.availableRepresentations.map((t=>({...t})))),this.#P=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.#C.get(t)}get chosenRepresentation(){return this.#O}get abrDecision(){return this.#P}get arrayBuffer(){return this.#O?this.#C.get(this.#O.id):void 0}get retainedByteLength(){let t=0;for(const e of this.#C.values())e&&"number"==typeof e.byteLength&&(t+=e.byteLength);return t}get bufferedRatio(){var t;const e=lg(this.#D)?this.#D:null===(t=this.#O)||void 0===t?void 0:t.sizeBytes;return lg(e)?Math.min(1,Math.max(0,this.#R/e)):this.retainedByteLength>0?1:0}get isLoaded(){return this.retainedByteLength>0}evict(){this.#O=void 0,this.#P=void 0,this.#C.clear(),this.#R=0,this.#D=void 0}}class gv{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 vv(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 yv(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=vv(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 bv=new Set(["video","audio","image","cue","data","bbox"]);class kv{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(!bv.has(n))throw new Error(`Track type must be one of ${Array.from(bv).join("|")}`);this.id=e,this.type=n,this.offset=i,this.duration=lg(r)?r:void 0,this.source=o,"cue"===n?(this._cues=a.map((t=>t instanceof gv?t:new gv(t))),this._segments=[]):(this._segments=s.map((t=>t instanceof mv?t:new mv(t))),this._cues=void 0)}get segments(){return this._segments.slice()}get cues(){if("cue"===this.type)return this._cues.slice()}get endTime(){if(lg(this.duration))return this.offset+this.duration;if(!this._segments.length)return;const t=this._segments.reduce(((t,e)=>{const n=lg(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:lg(null==t?void 0:t.duration)?t.duration:0,offset:lg(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 yv(this._segments,t,e)}setSegments(t=[]){if("cue"===this.type)return;const e=Array.isArray(t)?t:[];this._segments=e.map((t=>t instanceof mv?t:new mv(t)))}}function xv(t){return"string"==typeof t?t:t&&"object"==typeof t?t.nodeId||t.nodeIdOrRef||t.id:void 0}function wv(t){const e=xv(t);let n=1;if(t&&"object"==typeof t&&lg(t.weight)&&(n=t.weight),!e)throw new Error("Child entry requires a nodeId");return{nodeId:e,weight:n}}function _v(t){return(Array.isArray(t)?t:[]).map((t=>wv(t)))}function Tv(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 Iv(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 Ev(t,e){if(e)try{var n;return new URL(e,t||(null==Hc||null===(n=Hc.location)||void 0===n?void 0:n.href)||void 0).toString()}catch(t){return e}}const Sv=new Map;class Nv{static register(t,e){if(!t||"function"!=typeof e)throw new Error("ManifestFactory.register requires type and parser function");Sv.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=Nv.inferType(t);if(!e||!Sv.has(e))throw new Error("Unsupported manifest type");return Sv.get(e)(t)}}Nv.register("dash",(function(t={}){const{body:e,url:n}=t,i=function(){if(Hc&&"function"==typeof Hc.DOMParser)return new Hc.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=Tv(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=Tv(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:Tv(a&&a.getAttribute("timescale"))||Tv(e&&e.getAttribute("timescale"),1)||1,startNumber:Tv(a&&a.getAttribute("startNumber"))||Tv(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=Tv(n.getAttribute("t")),s=Tv(n.getAttribute("d")),a=Tv(n.getAttribute("r"),0);if(!lg(s))continue;lg(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:Ev(n,Iv(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:Ev(n,Iv(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}})),Nv.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:lg(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=>lg(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+(lg(e.duration)?e.duration:0)),0),l=lg(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}})),Nv.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=lg(null==t?void 0:t.duration)?t.duration:30,i=lg(null==t?void 0:t.width)?t.width:void 0,r=lg(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};lg(i)&&lg(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 Av=["video/mp4"];function Mv(t){return Av.includes(t.mime)}var Fv={name:"containers",fn:function(t=[]){return t.filter(Mv)},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}};const Cv=new(le=new WeakMap,ce=new WeakSet,class extends jc{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),O(this,ce),F(this,le,void 0),C(le,this,new Map)}onDispose(){M(le,this)&&M(le,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 N(ce,this,Bv).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 Ov(){return!!(Hc&&Hc.navigator&&Hc.navigator.mediaCapabilities&&"function"==typeof Hc.navigator.mediaCapabilities.decodingInfo)}function Pv(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 Rv(t){return t?JSON.stringify(t):"invalid"}async function Dv(t){if(!this.settings.enabled||!N(ce,this,Ov).call(this)||!t)return this.log.debug("[#queryCapabilities] Not supported, returning false",t),{supported:!1,smooth:!1,powerEfficient:!1};const e=N(ce,this,Rv).call(this,t),n=M(le,this).get(e);if(n)return n;let i;try{i=await Hc.navigator.mediaCapabilities.decodingInfo(t)}catch(t){i={supported:!1,smooth:!1,powerEfficient:!1}}return this.log.debug("[#queryCapabilities] Config:",t,"\nDecoding info result:",i),M(le,this).set(e,i),i}async function Bv(t){if(N(ce,this,zv).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=N(ce,this,Pv).call(this,t),n=await N(ce,this,Dv).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 Lv(){if(!zp())return!1;const t=Wp();return!Number.isFinite(t)||t<150}function zv(t){if(!N(ce,this,Lv).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 Wv=[],Uv=()=>!0;[Fv,{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 Cv.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:Uv;Wv.push({name:t,fn:e,isRelevantForTrack:i})}(t,e,{isRelevantForTrack:n})}));const $v=Dc("Node","warn"),jv={start:0,end:0},qv=.001;function Vv(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)<=qv&&Math.abs(t.duration-n.duration)<=qv))?{offset:n.start,duration:n.duration}:void 0}var Hv=new WeakMap,Gv=new WeakMap,Kv=new WeakMap,Xv=new WeakMap,Yv=new WeakMap,Qv=new WeakMap,Jv=new WeakMap,Zv=new WeakMap,ty=new WeakMap,ey=new WeakMap,ny=new WeakSet;class iy extends Bc{constructor(t={},e={}){super(),O(this,ny),F(this,Hv,void 0),F(this,Gv,void 0),F(this,Kv,void 0),F(this,Xv,void 0),F(this,Yv,void 0),F(this,Qv,void 0),F(this,Jv,void 0),F(this,Zv,void 0),F(this,ty,void 0),F(this,ey,[]);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,C(Jv,this,!0===e.forceImageFallback),C(Hv,this,e.abrSelector),C(Gv,this,e.assetsDeliveryService),C(Xv,this,lg(r)?r:void 0),C(Yv,this,lg(o)?o:void 0),C(Qv,this,lg(s)?s:void 0),C(Zv,this,e&&"object"==typeof e.mediaHostRewriteMap?e.mediaHostRewriteMap:void 0),C(ty,this,lg(e.maxManifestLoadAttempts)?e.maxManifestLoadAttempts:1/0),this.manifestLoadAttempts=0,this.manifestLoadError=void 0,C(ey,this,_v(l))}setChildren(t){const e=_v(t);return N(ny,this,by).call(this,e,{emit:!0})}addChild(t){const e=wv(t),n=M(ey,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 N(ny,this,by).call(this,n,{emit:!0})}removeChild(t){const e=xv(t);if(!e)return this.children;const n=M(ey,this).filter((t=>(null==t?void 0:t.nodeId)!==e));return n.length===M(ey,this).length?this.children:N(ny,this,by).call(this,n,{emit:!0})}async load(t={}){const{loadingMode:e="full",signal:n}=t;$v.info(`[load] [${this.id}] Loading node in '${e}' mode`);try{if(n&&n.aborted)throw Dg();"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})=>N(ny,this,my).call(this,t,e,n))),l=s?N(ny,this,gy).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 N(ny,this,gy).call(this,t.segment,t.track,n);if(n&&n.aborted)throw Dg();return this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:e}),this}catch(t){if(Bg(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($v.info(`[loadMediaSegmentsAtOffset] [${this.id}] Loading media segments at offset ${n}`),!Number.isFinite(n))return;const{signal:i}=e;if(i&&i.aborted)throw Dg();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(N(ny,this,my).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)<=qv&&!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})=>N(ny,this,gy).call(this,t,e,i)))),i&&i.aborted)throw Dg();this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:"segment-offset",offsetSeconds:n})}}async resolve(t={}){if("ready"===this.state)return this;if("resolving"===this.state)return M(Kv,this);const{signal:e,manifestOverride:n}=t;if(e&&e.aborted)throw Dg();if(this.hasExceededManifestLoadAttempts()){const t=this.manifestLoadError||new Error("Manifest load retry limit reached");throw this.state="failed",this.error=t,t}const i=this.state;return this.state="resolving",this.error=void 0,C(Kv,this,(async()=>{try{const t=await N(ny,this,vy).call(this,{signal:e,manifestOverride:n});if(e&&e.aborted)throw Dg();let i=Nv.parse(t);return i=N(ny,this,cy).call(this,i),this.tracks=(i.tracks||[]).map((t=>t instanceof kv?t:new kv(t))),this.mainTrackId=i.mainTrackId||this.mainTrackId,this.metadata=i.metadata||this.metadata,N(ny,this,xy).call(this),N(ny,this,ky).call(this),await N(ny,this,yy).call(this),this.state="ready",this}catch(t){if(Bg(t,e))throw this.state=i,this.error=void 0,t;throw this.state="failed",this.error=t,t}})()),M(Kv,this)}evict(){this.tracks.forEach((t=>{(t.segments||[]).forEach((t=>{t.evict()}))}))}get children(){return M(ey,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?lg(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+=lg(e.retainedByteLength)?e.retainedByteLength:0}))})),t}get buffered(){if("ready"!==this.state)return jv;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||!lg(e))return jv;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 jv;if(n.length===this.tracks.length&&n.every((({track:t,range:e})=>{const n=t.endTime,i=lg(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 jv;const r=Math.min(i,e);return r>0?{start:0,end:r}:jv}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(M(ty,this))||M(ty,this)<=0)return!1;if(!this.manifestLoadError)return!1;const t=Number(this.manifestLoadAttempts);return Number.isFinite(t)&&t>=M(ty,this)}}function ry(t){return function(t,e){if(!t||"string"!=typeof t)return t;if(!e||"object"!=typeof e)return t;const n=Hc&&"function"==typeof Hc.URL?Hc.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,M(Zv,this))}function oy(){return M(Jv,this)||void 0===Hc.VideoDecoder}function sy(){return this.manifestRef&&"object"==typeof this.manifestRef&&"assets-delivery-service"===this.manifestRef.type}function ay(t){if(!N(ny,this,sy).call(this))return!1;if(!N(ny,this,oy).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 ly(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 lg(n)?n:lg(M(Xv,this))?M(Xv,this):void 0}function cy(t){if(this.imageFallbackActive=!1,!N(ny,this,ay).call(this,t))return t;if(!M(Gv,this)||"function"!=typeof M(Gv,this).resolveImageOne)return t;const e=M(Gv,this).resolveImageOne(this.manifestRef),n=N(ny,this,ry).call(this,null==e?void 0:e.url);if(!n)return t;const i={typeHint:"image",url:n,duration:N(ny,this,ly).call(this,t),width:M(Yv,this),height:M(Qv,this)},r=Nv.parse(i);return t&&"object"==typeof t.metadata&&!Array.isArray(t.metadata)&&(r.metadata=t.metadata),this.imageFallbackActive=!0,r}function uy(){const t=Number(this.manifestLoadAttempts);this.manifestLoadAttempts=Number.isFinite(t)&&t>0?t+1:1,this.manifestLoadError=void 0}function dy(t){this.manifestLoadError=t||new Error("Manifest load failed")}function hy(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 fy(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 py(t,e){t&&("function"!=typeof t.setLoadError?t.loadError=e||new Error("Segment load failed"):t.setLoadError(e))}async function my(t,e,n){const i=N(ny,this,hy).call(this,e);try{const i=e.representations.map((async i=>{const r=N(ny,this,ry).call(this,i.url),o=await Gg(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(Bg(t,n))throw N(ny,this,fy).call(this,e,i),t;throw N(ny,this,py).call(this,e,t),t}}async function gy(t,e,n){const i=M(Hv,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=N(ny,this,hy).call(this,t);try{const i=N(ny,this,ry).call(this,s.url),r=await Gg(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(Bg(e,n))throw N(ny,this,fy).call(this,t,a),e;throw N(ny,this,py).call(this,t,e),e}}async function vy(t={}){const{signal:e,manifestOverride:n}=t;if(e&&e.aborted)throw Dg();N(ny,this,uy).call(this);try{let t=this.manifestRef;if(n&&"object"==typeof n){if(N(ny,this,sy).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=N(ny,this,ry).call(this,n.url);return{typeHint:n.typeHint,url:t,mimeType:n.mimeType,body:n.body,duration:M(Xv,this),width:M(Yv,this),height:M(Qv,this)}}"string"==typeof n.url&&n.url&&(t=n)}if(t&&"object"==typeof t&&"assets-delivery-service"===t.type){if(!M(Gv,this)||"function"!=typeof M(Gv,this).resolveOne)throw new Error("AssetsDeliveryService is required for assets-delivery-service manifestRef");const n=await M(Gv,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=N(ny,this,ry).call(this,n.url),o=n.mimeType,s=n.body;if(r||s||o)return{typeHint:i,url:r,mimeType:o,body:s,duration:M(Xv,this),width:M(Yv,this),height:M(Qv,this)};throw new Error("AssetsDeliveryService returned unsupported manifest shape")}if(t&&"object"==typeof t){const e=N(ny,this,ry).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=N(ny,this,ry).call(this,n),r="object"==typeof t?t.typeHint:void 0,o="object"==typeof t?t.mimeType:void 0;if("image"===Nv.inferType({typeHint:r,url:i,mimeType:o})){const e="object"==typeof t&&lg(t.duration)?t.duration:M(Xv,this);return{typeHint:"image",url:i,mimeType:o,duration:e,width:"object"==typeof t&&lg(t.width)?t.width:M(Yv,this),height:"object"==typeof t&&lg(t.height)?t.height:M(Qv,this)}}const s=await Gg(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){throw N(ny,this,dy).call(this,t),t}}async function yy(){const t=Wv.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=Vv(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 by(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}(M(ey,this),t)||(C(ey,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 ky(){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 xy(){if(!Array.isArray(this.tracks)||!this.tracks.length)return;const t=this.duration;if(!lg(t))return;const e=[new gv({name:"nodestart",timestamp:0,data:{id:this.id},isSticky:!0}),new gv({name:"nodeend",timestamp:t,data:{id:this.id}})],n=new kv({id:`${this.id}-auto-cue`,type:"cue",cues:e,offset:0,duration:t});this.tracks.push(n)}var wy=new WeakMap,_y=new WeakMap,Ty=new WeakMap,Iy=new WeakMap,Ey=new WeakSet;class Sy extends jc{constructor(...t){super(...t),O(this,Ey),F(this,wy,new Map),F(this,_y,new Map),F(this,Ty,void 0),F(this,Iy,void 0);const[e,n]=t;C(Ty,this,e),C(Iy,this,n)}get name(){return"NodeRepository"}get defaults(){return{enabledRepFilters:["containers","force-video-codec","media-capabilities"],disabledTracks:Qg("disabledTracks"),forceVideoCodec:Qg("forceVideoCodec"),forceImageFallback:Qg("forceImageFallback"),mediaHostRewriteMap:Qg("mediaHostRewriteMap"),maxManifestLoadAttempts:3}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"get","list"])}onDispose(){M(wy,this).forEach(((t,e)=>{const n=M(_y,this).get(e);n&&t&&"function"==typeof t.off&&t.off(jp.NODE_CHILDREN_CHANGED,n)})),M(_y,this).clear(),M(wy,this).clear()}add(t){const e=t instanceof iy?t:new iy(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:M(Ty,this),assetsDeliveryService:M(Iy,this)});if(!e.id)throw new Error("NodeRepository.add requires node with id");if(M(wy,this).has(e.id))throw new Error(`NodeRepository.add: node with id ${e.id} already exists`);return M(wy,this).set(e.id,e),N(Ey,this,Ny).call(this,e),this.trigger(jp.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 M(wy,this).get(e)}list(){return Array.from(M(wy,this).values())}}function Ny(t){if(!t||"function"!=typeof t.on||!t.id)return;const e=t=>{this.trigger(jp.NODE_CHILDREN_CHANGED,t)};t.on(jp.NODE_CHILDREN_CHANGED,e),M(_y,this).set(t.id,e)}var Ay=new WeakMap,My=new WeakMap,Fy=new WeakSet;class Cy extends jc{constructor(...t){super(...t),O(this,Fy),F(this,Ay,void 0),F(this,My,new Map);const[e]=t;C(Ay,this,e)}get name(){return"ABRSelector"}get defaults(){return{safetyMargin:.35,minBufferForUpgrade:5,minBufferCritical:1,hysteresisRatio:1.1,abrStrategy:Qg("abrStrategy")}}select(t={}){var e;const{representations:n=[],bufferSeconds:i}=t;if(!Array.isArray(n)||0===n.length)return;const r=M(Ay,this)&&"function"==typeof M(Ay,this).getKbps?M(Ay,this).getKbps():void 0,o=N(Fy,this,Oy).call(this,n[0]),s=M(My,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)=>N(Fy,this,Py).call(this,t.bandwidth)-N(Fy,this,Py).call(this,e.bandwidth)));if("bottom"===a){const e=l[0];return N(Fy,this,By).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 N(Fy,this,By).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 N(Fy,this,By).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=lg(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),N(Fy,this,By).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=>N(Fy,this,Py).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&&lg(e.bandwidth)&&lg(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 N(Fy,this,By).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(){M(My,this).clear(),C(Ay,this,null)}}function Oy(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 Py(t){return lg(t)?t/1e3:0}function Ry(t){return lg(t)?t/1e3:void 0}function Dy(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:N(Fy,this,Ry).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:N(Fy,this,Ry).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 By(t,e,n={}){if(!t)return;const i=N(Fy,this,Dy).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=N(Fy,this,Oy).call(this,t);M(My,this).set(r,t.id)}var Ly=new WeakMap,zy=new WeakSet;class Wy extends jc{constructor(...t){super(...t),O(this,zy),F(this,Ly,void 0);const[e]=t;if(C(Ly,this,e),!M(Ly,this)||"function"!=typeof M(Ly,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(){C(Ly,this,null)}getPrioritizationSnapshot(t){const e=M(Ly,this).list();if(!e.length)return{orderedIds:[],reachableIds:[]};const{levels:n,weights:i}=N(zy,this,Uy).call(this,e,t);return{orderedIds:N(zy,this,$y).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 Uy(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=lg(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 $y(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 jy(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 qy(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 Vy(t){return"string"==typeof t&&t.startsWith("cmaf:")}function Hy(t){return"image"===(null==t?void 0:t.assetType)?"image":"ivd"}function Gy(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 Ky=new WeakMap,Xy=new WeakMap,Yy=new WeakSet;class Qy extends jc{constructor(...t){super(...t),O(this,Yy),F(this,Ky,void 0),F(this,Xy,void 0);const[,e={}]=t;C(Ky,this,"function"==typeof e.fetchFn?e.fetchFn:void 0),C(Xy,this,Rg())}get name(){return"AssetsDeliveryService"}get defaults(){return{assetsDeliveryServiceUrl:"https://assets.eko.com",profile:Qg("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(!N(Yy,this,Zy).call(this,t))return;const e=jy(t,this.settings.profile),n=function(t,e,n){const i=(t||"").replace(/\/$/,""),r=null==e?void 0:e.assetId,o=null==e?void 0:e.assetRevision;if(!i||"string"!=typeof r||"number"!=typeof o)return;const s=`${i}/image/${encodeURIComponent(r)}/${o}`,a=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 a?`${s}?${a}`:s}(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=>N(Yy,this,Zy).call(this,t)));if(!n.length)return[];const i=N(Yy,this,Jy).call(this,e);if(i&&i.aborted)return[];const r=[],o=this.settings.profile;n.forEach((t=>{if("image"!==Hy(t))return;const e=this.resolveImageOne(t);e&&e.url&&r.push({manifestRef:qy(t,e.encodeProfile),manifest:{typeHint:"image",url:e.url}})}));const s=n.filter((t=>"image"!==Hy(t))).map((t=>function(t,e){const n=jy(t,e);return{ref:t,profile:n,route:Vy(n)?"dash":"ivd"}}(t,o))),a=N(Yy,this,eb).call(this,s);for(const{refs:t,route:e}of a){if(i&&i.aborted)return r;const{url:n}=N(Yy,this,nb).call(this,t,e),o=await N(Yy,this,ib).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:qy(t,e),manifest:Gy(i)})}))}return r}onDispose(){M(Xy,this)&&M(Xy,this).abort(),C(Xy,this,null),C(Ky,this,null)}}function Jy(t){return t&&t.signal?t.signal:M(Xy,this)?M(Xy,this).signal:void 0}function Zy(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 tb(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 eb(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=>{N(Yy,this,tb).call(this,t.refs,this.settings.maxBatchSize).forEach((e=>{n.push({route:t.route,refs:e})}))})),n}function nb(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 ib(t,e){return M(Ky,this)?M(Ky,this).call(this,t,e):await Gg(t,{returnType:"json",method:(null==e?void 0:e.method)||"GET",signal:null==e?void 0:e.signal})}function rb({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 ob=(Hc.requestAnimationFrame||Hc.mozRequestAnimationFrame||Hc.webkitRequestAnimationFrame||Hc.msRequestAnimationFrame||(t=>Hc.setTimeout(t,1e3/60))).bind(Hc),sb=(Hc.cancelAnimationFrame||Hc.mozCancelAnimationFrame||Hc.webkitCancelAnimationFrame||Hc.msCancelAnimationFrame||(t=>Hc.clearTimeout(t))).bind(Hc),ab=Dc("ticker","warn");let lb,cb=[],ub=null,db=Pg();function hb(){db=Pg();const t=[];let e,n;for(n=cb.length-1;n>=0;--n)e=cb[n],db>=e.lastTick+e.interval&&t.push(e);for(n=t.length-1;n>=0;--n)if(e=t[n],!e.stopped){e.lastTick=db;try{e.callback()}catch(t){console&&"function"==typeof console.error?console.error(t):ab.error(t)}}lb=ob(hb)}function fb(){Pg()-db>=200&&(sb(lb),hb())}function pb(t){let e=-1;for(let n=0;n<cb.length;n+=1)if(cb[n].callback===t){e=n;break}return e}function mb(t,e=0){if(!t||"function"!=typeof t||"number"!=typeof e||e<0)return void ab.error("[start] Invalid arguments given to start method.",arguments);const n=pb(t);return-1!==n?(ab.debug("[start] Callback already exists, overriding interval.",arguments),cb[n].interval=e,t):(cb.push({callback:t,interval:e,lastTick:Pg()}),1===cb.length&&(lb=ob(hb),ub||(ub=Hc.setInterval(fb,1e3))),t)}function gb(t){const e=pb(t);-1!==e?(cb[e].stopped=!0,cb.splice(e,1),cb.length||(sb(lb),Hc.clearInterval(ub),ub=null)):ab.debug("[stop] Callback not found, doing nothing.",arguments)}function vb(t){return-1!==pb(t)}function yb(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 ab.error("[createThrottler] Bad argument given to createThrottler, first argument must be a function.",arguments);ab.debug("[createThrottler] Creating a new throttler instance.",arguments);const s=[];function a(){ab.debug("[onThrottlerTick] Calling callback with "+s.length+" queued items.");const e=s.slice(0);s.length=0,gb(a),t(e)}const l={push:function(t){ab.debug("[push] Queuing argument:",t),0===s.length&&mb(a,e),s.push(t),o+=1,(o<=r||s.length>=i)&&a()},flush:function(){ab.debug("[flush] Flushing queue."),0!==s.length&&a()},dispose:function(){ab.debug("[dispose] Disposing of throttler.");const t=s.slice(0);return s.length=0,gb(a),t}};return Object.defineProperty(l,"interval",{enumerable:!0,get:function(){return e},set:function(t){"number"==typeof t&&(e=t)}}),l}function bb(t,e){if(t&&"function"==typeof t)return t.__tickerThrottler||(t.__tickerThrottler=yb((function(){t()}),e)),"number"==typeof e&&(t.__tickerThrottler.interval=e),t.__tickerThrottler.push(),t.__tickerThrottler;ab.error("[scheduleExecution] Bad argument given to scheduleExecution, first argument must be a function.",arguments)}var kb=new WeakMap,xb=new WeakMap,wb=new WeakMap,_b=new WeakMap,Tb=new WeakMap,Ib=new WeakMap,Eb=new WeakMap,Sb=new WeakMap,Nb=new WeakMap,Ab=new WeakMap,Mb=new WeakMap,Fb=new WeakMap,Cb=new WeakMap,Ob=new WeakMap,Pb=new WeakMap,Rb=new WeakMap,Db=new WeakSet;class Bb extends jc{constructor(...t){super(...t),O(this,Db),F(this,kb,void 0),F(this,xb,void 0),F(this,wb,void 0),F(this,_b,void 0),F(this,Tb,[]),F(this,Ib,[]),F(this,Eb,new Set),F(this,Sb,new Set),F(this,Nb,!1),F(this,Ab,void 0),F(this,Mb,void 0),F(this,Fb,void 0),F(this,Cb,void 0),F(this,Ob,void 0),F(this,Pb,void 0),F(this,Rb,void 0);const[e,n,i,r]=t;C(kb,this,e),C(xb,this,n),C(wb,this,i),C(_b,this,r),C(Ab,this,Rg());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),C(Rb,this,(()=>N(Db,this,Kb).call(this))),N(Db,this,Ub).call(this),N(Db,this,Wb).call(this)}get name(){return"NodeResolver"}get defaults(){return{maxConcurrent:5}}onDispose(){var t;M(Ab,this)&&M(Ab,this).abort(),C(Ab,this,null),M(_b,this)&&"function"==typeof M(_b,this).off&&M(Fb,this)&&M(_b,this).off(jp.PLACEMENT_ADDED,M(Fb,this)),M(_b,this)&&"function"==typeof M(_b,this).off&&M(Pb,this)&&M(_b,this).off(jp.TIMELINE_RESET,M(Pb,this)),M(kb,this)&&"function"==typeof M(kb,this).off&&M(Cb,this)&&M(kb,this).off(jp.NODE_ADD,M(Cb,this)),M(kb,this)&&"function"==typeof M(kb,this).off&&M(Ob,this)&&M(kb,this).off(jp.NODE_CHILDREN_CHANGED,M(Ob,this)),C(Fb,this,null),C(Cb,this,null),C(Ob,this,null),C(Pb,this,null),C(Tb,this,[]),C(Ib,this,[]),M(Eb,this).clear(),M(Sb,this).clear(),C(Nb,this,!1),C(Mb,this,void 0),null!==(t=M(Rb,this))&&void 0!==t&&t.__tickerThrottler&&M(Rb,this).__tickerThrottler.dispose(),C(Rb,this,null)}}function Lb(){return M(Ab,this)?M(Ab,this).signal:void 0}function zb(){return this._disposed||M(Ab,this)&&M(Ab,this).signal.aborted}function Wb(){M(_b,this)&&"function"==typeof M(_b,this).on&&(C(Fb,this,(t=>{N(Db,this,jb).call(this,null==t?void 0:t.nodeId)})),M(_b,this).on(jp.PLACEMENT_ADDED,M(Fb,this)),C(Pb,this,(()=>N(Db,this,$b).call(this))),M(_b,this).on(jp.TIMELINE_RESET,M(Pb,this))),M(kb,this)&&"function"==typeof M(kb,this).on&&(C(Cb,this,(({node:t})=>{(null==t?void 0:t.id)&&N(Db,this,jb).call(this,t.id,{fromRepoAdd:!0})})),M(kb,this).on(jp.NODE_ADD,M(Cb,this)),C(Ob,this,(()=>{bb(M(Rb,this),100)})),M(kb,this).on(jp.NODE_CHILDREN_CHANGED,M(Ob,this)))}function Ub(){const t=M(_b,this)&&Array.isArray(M(_b,this).placements)?M(_b,this).placements:[];t.forEach((t=>N(Db,this,jb).call(this,t.nodeId)));const e=t.length?t[t.length-1]:void 0;e&&e.nodeId&&C(Mb,this,e.nodeId)}function $b(){M(Ab,this)&&M(Ab,this).abort(),C(Ab,this,Rg()),C(Tb,this,[]),C(Ib,this,[]),M(Eb,this).clear(),C(Nb,this,!1),C(Mb,this,void 0)}function jb(t,{fromRepoAdd:e=!1}={}){N(Db,this,zb).call(this)||t&&(M(Sb,this).has(t)||M(Eb,this).has(t)||(M(Tb,this).push(t),M(Mb,this)||e||C(Mb,this,t),!M(Nb,this)&&e||N(Db,this,qb).call(this)))}function qb(){if(M(Nb,this))return void N(Db,this,Vb).call(this);if(0===M(Tb,this).length)return;C(Nb,this,!0);const t=M(Tb,this).shift();N(Db,this,Xb).call(this,t).finally((()=>{N(Db,this,Vb).call(this)}))}async function Vb(){if(!N(Db,this,zb).call(this))for(M(Tb,this).length||M(Ib,this).length||C(Ib,this,N(Db,this,Hb).call(this));M(Eb,this).size<this.settings.maxConcurrent;){const t=this.settings.maxConcurrent-M(Eb,this).size;if(t<=0)break;const e=[];for(;e.length<t&&(M(Tb,this).length||M(Ib,this).length);){let t=M(Tb,this).shift();t||(t=M(Ib,this).shift()),t&&e.push(t)}if(!e.length)break;const n=N(Db,this,Yb).call(this,e);n.length&&M(wb,this)&&"function"==typeof M(wb,this).resolve&&N(Db,this,Qb).call(this,n).finally((()=>N(Db,this,Vb).call(this))),e.filter((t=>!n.find((e=>e.nodeId===t)))).forEach((t=>{N(Db,this,Xb).call(this,t).finally((()=>N(Db,this,Vb).call(this)))}))}}function Hb(){const t=new Set([...M(Sb,this),...M(Eb,this),...M(Tb,this)]);return N(Db,this,Gb).call(this,t)}function Gb(t){const e=M(_b,this)&&Array.isArray(M(_b,this).placements)?M(_b,this).placements:[],n=(e.length?e[e.length-1].nodeId:void 0)||M(Mb,this);return rb({prioritizer:M(xb,this),repository:M(kb,this),startNodeId:n,pendingIds:t,fallbackToRepository:!1})}function Kb(){N(Db,this,zb).call(this)||(M(Nb,this)||0!==M(Tb,this).length)&&(C(Ib,this,N(Db,this,Hb).call(this)),M(Nb,this)&&N(Db,this,Vb).call(this))}async function Xb(t,e){if(!t||M(Sb,this).has(t)||M(Eb,this).has(t))return;const n=N(Db,this,Lb).call(this);if(n&&n.aborted)return;const i=M(kb,this)&&"function"==typeof M(kb,this).get?M(kb,this).get(t):void 0;if(i&&"function"==typeof i.resolve)if("function"==typeof i.hasExceededManifestLoadAttempts&&i.hasExceededManifestLoadAttempts())M(Sb,this).add(t);else{M(Eb,this).add(t);try{const r={signal:n};e&&(r.manifestOverride=e),await i.resolve(r),M(Sb,this).add(t)}catch(e){if(Bg(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()&&M(Sb,this).add(t)}finally{M(Eb,this).delete(t)}}}function Yb(t){const e=[];return t.forEach((t=>{const n=M(kb,this)&&"function"==typeof M(kb,this).get?M(kb,this).get(t):void 0;n&&n.manifestRef&&"assets-delivery-service"===n.manifestRef.type&&e.push({nodeId:t,ref:n.manifestRef})})),e}async function Qb(t){const e=N(Db,this,Lb).call(this);if(!e||!e.aborted){t.forEach((({nodeId:t})=>M(Eb,this).add(t)));try{const n=t.map((t=>t.ref)),i=await M(wb,this).resolve(n,{signal:e});t.forEach((({nodeId:t,ref:e})=>{var n;const r=M(kb,this)&&"function"==typeof M(kb,this).get?M(kb,this).get(t):void 0;if(M(Eb,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?N(Db,this,Jb).call(this,o.manifest,s):void 0;N(Db,this,Xb).call(this,t,a)}))}catch(n){Bg(n,e)||this.log.warn(`NodeResolver ADS batch failed: ${(null==n?void 0:n.message)||n}`),t.forEach((({nodeId:t})=>M(Eb,this).delete(t)))}}}function Jb(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 Zb=.001,tk="priority";function ek(t){const e=Number(t);return Number.isFinite(e)?e:0}var nk=new WeakMap,ik=new WeakMap,rk=new WeakMap,ok=new WeakMap,sk=new WeakMap,ak=new WeakMap,lk=new WeakMap,ck=new WeakMap,uk=new WeakMap,dk=new WeakMap,hk=new WeakMap,fk=new WeakMap,pk=new WeakMap,mk=new WeakMap,gk=new WeakMap,vk=new WeakMap,yk=new WeakMap,bk=new WeakMap,kk=new WeakMap,xk=new WeakSet;class wk extends jc{constructor(...t){super(...t),O(this,xk),F(this,nk,void 0),F(this,ik,void 0),F(this,rk,void 0),F(this,ok,new Map),F(this,sk,new Map),F(this,ak,[]),F(this,lk,new Set),F(this,ck,new Map),F(this,uk,!1),F(this,dk,void 0),F(this,hk,void 0),F(this,fk,void 0),F(this,pk,void 0),F(this,mk,void 0),F(this,gk,void 0),F(this,vk,void 0),F(this,yk,!1),F(this,bk,[]),F(this,kk,void 0);const[e,n,i]=t;C(nk,this,e),C(ik,this,n),C(rk,this,i),C(hk,this,Rg()),C(kk,this,(()=>N(xk,this,Jk).call(this))),N(xk,this,Ok).call(this)}get name(){return"SegmentLoadCoordinator"}get defaults(){return{maxConcurrentLoads:3,maxSegmentLoadAttempts:3}}onDispose(){var t;M(hk,this)&&M(hk,this).abort(),C(hk,this,null),M(ck,this).size&&M(ck,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),M(ck,this).clear(),M(rk,this)&&"function"==typeof M(rk,this).off&&(M(fk,this)&&M(rk,this).off(jp.PLACEMENT_ADDED,M(fk,this)),M(mk,this)&&M(rk,this).off(jp.TIMELINE_SEEKING,M(mk,this)),M(gk,this)&&M(rk,this).off(jp.TIMELINE_SEEKED,M(gk,this)),M(vk,this)&&M(rk,this).off(jp.TIMELINE_RESET,M(vk,this))),M(nk,this)&&"function"==typeof M(nk,this).off&&M(pk,this)&&M(nk,this).off(jp.NODE_CHILDREN_CHANGED,M(pk,this)),C(fk,this,null),C(pk,this,null),C(mk,this,null),C(gk,this,null),C(vk,this,null),M(ok,this).clear(),M(sk,this).clear(),C(ak,this,[]),M(lk,this).clear(),M(ck,this).clear(),C(uk,this,!1),C(dk,this,void 0),C(yk,this,!1),C(bk,this,[]),null!==(t=M(kk,this))&&void 0!==t&&t.__tickerThrottler&&M(kk,this).__tickerThrottler.dispose(),C(kk,this,null)}}function _k(){return M(hk,this)?M(hk,this).signal:void 0}function Tk(){return this._disposed||M(hk,this)&&M(hk,this).signal.aborted}function Ik(){const t=Number(this.settings.maxSegmentLoadAttempts);return Number.isFinite(t)&&t>0?t:1/0}function Ek(t){const e=N(xk,this,Ik).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 Sk(t){if(!t)return!1;if(N(xk,this,Ek).call(this,t))return!0;if("boolean"==typeof t.isLoaded)return t.isLoaded;const e=Number(t.retainedByteLength);return Number.isFinite(e)&&e>0}function Nk(t,{allowSeekKeep:e=!1,segmentOffset:n}={}){const i=Rg(),r=i?i.signal:N(xk,this,_k).call(this);return t&&M(ck,this).set(t,{controller:i,allowSeekKeep:!!e,segmentOffset:n}),{signal:r,controller:i}}function Ak(t,e,n={}){const i=M(ck,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 Mk(t,e){const n=M(ck,this).get(t);n&&(e&&n.controller!==e||M(ck,this).delete(t))}function Fk(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=M(nk,this)&&"function"==typeof M(nk,this).get?M(nk,this).get(i):void 0;if(!r)return;const o=N(xk,this,$k).call(this,r,t,e);Number.isFinite(o)&&n.add(`${i}:${o}`)})),n}function Ck(t){M(ck,this).size&&M(ck,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 Ok(){M(rk,this)&&"function"==typeof M(rk,this).on&&(C(fk,this,(t=>{N(xk,this,Bk).call(this,t)})),M(rk,this).on(jp.PLACEMENT_ADDED,M(fk,this)),C(mk,this,(t=>N(xk,this,Pk).call(this,t))),M(rk,this).on(jp.TIMELINE_SEEKING,M(mk,this)),C(gk,this,(t=>N(xk,this,Rk).call(this,t))),M(rk,this).on(jp.TIMELINE_SEEKED,M(gk,this)),C(vk,this,(()=>N(xk,this,Dk).call(this))),M(rk,this).on(jp.TIMELINE_RESET,M(vk,this))),M(nk,this)&&"function"==typeof M(nk,this).on&&(C(pk,this,(()=>{bb(M(kk,this),100)})),M(nk,this).on(jp.NODE_CHILDREN_CHANGED,M(pk,this)))}function Pk(t={}){if(N(xk,this,Tk).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=N(xk,this,Fk).call(this,n,e);N(xk,this,Ck).call(this,i),C(yk,this,!0),C(bk,this,n.map((t=>{const n=null==t?void 0:t.nodeId;if(n)return{nodeId:n,placement:t,targetTime:e}})).filter(Boolean)),setTimeout((()=>N(xk,this,zk).call(this)),0)}function Rk(t={}){var e,n;if(N(xk,this,Tk).call(this))return;C(yk,this,!1),C(bk,this,[]);const i=Number.isFinite(null==t?void 0:t.targetTime)?Number(t.targetTime):Number(null===(e=M(rk,this))||void 0===e?void 0:e.currentTime);(Array.isArray(null===(n=M(rk,this))||void 0===n?void 0:n.placements)?M(rk,this).placements:[]).forEach((t=>{if(!t)return;const e=Hf(t);if(Number.isFinite(e)){if(Number.isFinite(i)){if(e>=i)return void N(xk,this,Bk).call(this,t);const n=qf(t,M(nk,this));return Number.isFinite(n)?void(e+n>i&&N(xk,this,Bk).call(this,t)):void(e<=i&&N(xk,this,Bk).call(this,t))}N(xk,this,Bk).call(this,t)}})),setTimeout((()=>N(xk,this,zk).call(this)),0)}function Dk(){M(hk,this)&&M(hk,this).abort(),C(hk,this,Rg()),M(ck,this).size&&M(ck,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),M(ck,this).clear(),M(ok,this).clear(),M(sk,this).clear(),C(ak,this,[]),M(lk,this).clear(),C(uk,this,!1),C(dk,this,void 0),C(yk,this,!1),C(bk,this,[])}function Bk(t){if(N(xk,this,Tk).call(this))return;const e=null==t?void 0:t.nodeId;if(!e)return;const n=M(ok,this).get(e);if(n){const i=Hf(n),r=Hf(t);Number.isFinite(i)?Number.isFinite(r)&&r<i&&M(ok,this).set(e,t):Number.isFinite(r)&&M(ok,this).set(e,t)}else M(ok,this).set(e,t);const i=M(dk,this);C(dk,this,e),i&&i!==e&&C(ak,this,[]),M(uk,this)?setTimeout((()=>N(xk,this,zk).call(this)),0):N(xk,this,Lk).call(this)}function Lk(){M(uk,this)||M(ok,this).size&&(C(uk,this,!0),N(xk,this,zk).call(this))}async function zk(){if(N(xk,this,Tk).call(this))return;if(M(lk,this).size>=this.settings.maxConcurrentLoads)return;if(M(yk,this))return void(M(bk,this).length&&N(xk,this,Wk).call(this));const t=N(xk,this,Vk).call(this);if(t.hasPending)N(xk,this,Hk).call(this,t);else for(M(ak,this).length||C(ak,this,N(xk,this,Yk).call(this));M(lk,this).size<this.settings.maxConcurrentLoads&&M(ak,this).length;){const t=M(ak,this).shift();N(xk,this,Zk).call(this,t,"partial").finally((()=>{setTimeout((()=>N(xk,this,zk).call(this)),0)}))}}function Wk(){if(N(xk,this,Tk).call(this))return;const t=Math.max(0,this.settings.maxConcurrentLoads-M(lk,this).size);if(!t||!M(bk,this).length)return;const e=[],n=[];for(let i=0;i<M(bk,this).length;i+=1){const r=M(bk,this)[i];(null==r?void 0:r.nodeId)&&(e.length<t&&!M(lk,this).has(r.nodeId)?e.push(r):n.push(r))}C(bk,this,n),e.forEach((t=>{N(xk,this,Uk).call(this,t).finally((()=>{setTimeout((()=>N(xk,this,zk).call(this)),0)}))}))}async function Uk(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(M(lk,this).has(e))return;const{signal:r,controller:o}=N(xk,this,Nk).call(this,e);if(r&&r.aborted)N(xk,this,Mk).call(this,e,o);else{M(lk,this).add(e);try{const t=M(nk,this)&&"function"==typeof M(nk,this).get?M(nk,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=N(xk,this,$k).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}`),N(xk,this,Ak).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){Bg(t,r)||this.log.warn(`[#loadSeekWork] SegmentLoadCoordinator failed to seek-load node ${e}: ${(null==t?void 0:t.message)||t}`)}finally{M(lk,this).delete(e),N(xk,this,Mk).call(this,e,o)}}}function $k(t,e,n){var i;const r=Hf(e);if(!Number.isFinite(r))return;const o=ek(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=ek(null===(i=l)||void 0===i?void 0:i.offset),d=yv(c,Math.max(0,s-u),{preferRepresentationTime:!0}),h=Number(null==d?void 0:d.offset);return Number.isFinite(h)?h:void 0}function jk(t,e,n=(t=>null===(t=M(rk,this))||void 0===t?void 0:t.currentTime)()){var i;const r=(Array.isArray(null===(i=M(rk,this))||void 0===i?void 0:i.placements)?M(rk,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(Hf(e)))).sort(((t,e)=>Hf(t)-Hf(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=Hf(e);if(!Number.isFinite(n))continue;const i=qf(e,M(nk,this)),l=Number.isFinite(i)&&i>=0;(!a&&n>=o-Zb&&(a=e),l)?o+Zb>=n&&o<n+i-Zb&&(s=e):o+Zb>=n&&(s=e)}return s||a||r[r.length-1]}function qk(t,e){var n;const i=Number(Hf(e));if(!Number.isFinite(i))return;const r=qf(e,M(nk,this)),o=Number.isFinite(r)&&r>=0?i+r:void 0,s=(Array.isArray(null===(n=M(rk,this))||void 0===n?void 0:n.placements)?M(rk,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(Hf(e)))).sort(((t,e)=>Hf(t)-Hf(e)));for(let t=0;t<s.length;t+=1){const e=s[t],n=Number(Hf(e));if(Number.isFinite(n)&&!(n<=i+Zb)){if(Number.isFinite(o)&&n>o+Zb)return;return e}}}function Vk(){const t=[];let e=!1,n=1/0;if(M(ok,this).forEach(((i,r)=>{if(!r||!i)return;const o=M(sk,this).get(r);if(o)return e=!0,void(n=Math.min(n,ek(o.timelineStart)));const s=N(xk,this,Gk).call(this,r,i);s&&(e=!0,n=Math.min(n,ek(s.timelineStart)),t.push(s))})),!e||!Number.isFinite(n))return{hasPending:!1,waveTime:void 0,startable:[]};const i=t.filter((t=>ek(t.timelineStart)===n&&!M(lk,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 Hk({waveTime:t,startable:e}){const n=Math.max(0,this.settings.maxConcurrentLoads-M(lk,this).size);n&&e.length&&e.slice(0,n).forEach((e=>{N(xk,this,Xk).call(this,e,t).finally((()=>{setTimeout((()=>N(xk,this,zk).call(this)),0)}))}))}function Gk(t,e){var n,i;const r=M(nk,this)&&"function"==typeof M(nk,this).get?M(nk,this).get(t):void 0;if(!r)return;if("function"==typeof r.hasExceededManifestLoadAttempts&&r.hasExceededManifestLoadAttempts())return void M(ok,this).delete(t);const o=N(xk,this,jk).call(this,t,e,null===(n=M(rk,this))||void 0===n?void 0:n.currentTime),s=Number(Hf(o)),a=ek(null===(i=M(rk,this))||void 0===i?void 0:i.currentTime),l="function"==typeof r.loadMediaSegmentsAtOffset,c="function"==typeof r.load;if(!l&&!c)return void M(ok,this).delete(t);if(r.isLoaded)return void M(ok,this).delete(t);if("ready"!==r.state){if(!Number.isFinite(s))return;return{nodeId:t,segmentOffset:0,timelineStart:s}}if(!N(xk,this,tx).call(this,r))return void M(ok,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&&!N(xk,this,Sk).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/Zb)*Zb;h.add(t)}}))}));const f=Array.from(h).sort(((t,e)=>t-e)),p=e=>{const n=Number(Hf(e));if(!Number.isFinite(n))return{status:"none"};const i=ek(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+Zb;t+=1)s=t;const l=f.slice(s);if(!l.some((t=>N(xk,this,Kk).call(this,r,t))))return{status:f.slice(0,s).some((t=>N(xk,this,Kk).call(this,r,t)))?"beforeOnly":"none"};const c=l.find((t=>N(xk,this,Kk).call(this,r,t))),u=Math.max(0,ek(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};M(ok,this).delete(t)}else{const e=N(xk,this,qk).call(this,t,o);if(e){const t=p(e);if("work"===t.status)return t.work}}}function Kk(t,e){const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],i=ek(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)<=Zb&&!N(xk,this,Sk).call(this,t)}))))}async function Xk(t,e){const n=null==t?void 0:t.nodeId,i=null==t?void 0:t.segmentOffset;if(this.log.debug(`[#loadP0Work] Loading ${tk} node [${n}] at segmentOffset=${i} wave=${e}`),!n)return;const r=M(nk,this)&&"function"==typeof M(nk,this).get?M(nk,this).get(n):void 0;if(!r)return void M(ok,this).delete(n);const o="function"==typeof r.loadMediaSegmentsAtOffset&&Number.isFinite(i),{signal:s,controller:a}=N(xk,this,Nk).call(this,n,{allowSeekKeep:o,segmentOffset:i});if(s&&s.aborted)N(xk,this,Mk).call(this,n,a);else{M(lk,this).add(n),M(sk,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(Bg(t,s))return;const e=`[#loadP0Work] SegmentLoadCoordinator failed to load ${tk} work for node ${n}: ${(null==t?void 0:t.message)||t}`;this.log.warn(e)}finally{this.log.debug(`[#loadP0Work] Finished ${tk} work for node [${n}]`),M(sk,this).delete(n),M(lk,this).delete(n),N(xk,this,Mk).call(this,n,a)}}}function Yk(){const t=new Set([...M(ok,this).keys(),...M(lk,this)]),e=N(xk,this,Qk).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&&N(xk,this,ex).call(this,t));if(i){const e=rb({prioritizer:M(ik,this),repository:M(nk,this),startNodeId:M(dk,this),prioritizedIds:n,pendingIds:t,allowedIds:i,filter:r});if(e.length)return e}return rb({prioritizer:M(ik,this),repository:M(nk,this),startNodeId:M(dk,this),prioritizedIds:n,pendingIds:t,filter:r})}function Qk(){return M(ik,this)&&M(dk,this)?"function"==typeof M(ik,this).getPrioritizationSnapshot?M(ik,this).getPrioritizationSnapshot(M(dk,this)):{orderedIds:"function"==typeof M(ik,this).sortNodes?M(ik,this).sortNodes(M(dk,this)):[],reachableIds:"function"==typeof M(ik,this).getReachableNodeIds?M(ik,this).getReachableNodeIds(M(dk,this)):[]}:null}function Jk(){N(xk,this,Tk).call(this)||(M(uk,this)||M(ok,this).size)&&(C(ak,this,N(xk,this,Yk).call(this)),M(uk,this)&&!M(yk,this)&&N(xk,this,zk).call(this))}async function Zk(t,e){if(this.log.debug(`[#loadNode] Loading node [${t}] in '${e}' mode`),!t)return;const n=M(nk,this)&&"function"==typeof M(nk,this).get?M(nk,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}=N(xk,this,Nk).call(this,t,{allowSeekKeep:!1});if(i&&i.aborted)N(xk,this,Mk).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&&N(xk,this,ex).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: partial already loaded`);if(!N(xk,this,tx).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: no loadable tracks`);M(lk,this).add(t),await n.load({loadingMode:e,signal:i})}catch(e){if(Bg(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}]`),M(lk,this).delete(t),N(xk,this,Mk).call(this,t,r)}}function tx(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 ex(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&&!N(xk,this,Sk).call(this,n)||i&&!N(xk,this,Sk).call(this,i))}))}class nx extends jc{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 ix(t){if(!t)throw new Error("Assertion failed.")}const rx=t=>t&&t[t.length-1],ox=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)},sx=t=>t.constructor===Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),ax=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),lx=new TextDecoder,cx=t=>Object.fromEntries(Object.entries(t).map((([t,e])=>[e,t]))),ux={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},dx=cx(ux),hx={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},fx=cx(hx),px={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},mx=cx(px),gx=t=>[...t].map((t=>t.toString(16).padStart(2,"0"))).join(""),vx=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,yx=(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},bx=(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},kx=()=>{let t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}},xx=(t,e,n)=>t.getUint8(e)<<16|t.getUint8(e+1)<<8|t.getUint8(e+2),wx=(t,e,n)=>Math.max(e,Math.min(n,t)),_x=/^[a-z]{3}$/,Tx=1e6*(1+Number.EPSILON);let Ix=null;let Ex=null;const Sx=()=>{if(null!==Ex)return Ex;if("undefined"==typeof navigator)return null;const t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?Ex=Number(t[1]):null},Nx=t=>"number"==typeof t&&!Number.isNaN(t);class Ax{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 Mx={default:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1};class Fx{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 Fx(this.bytes);return t.pos=this.pos,t}}const Cx=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Ox=[-1,1,2,3,4,5,6,8],Px=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");const e=new Fx(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<Cx.length&&(r=Cx[i]);const o=e.readBits(4);let s=null;return o>=1&&o<=7&&(s=Ox[o]),{objectType:n,frequencyIndex:i,sampleRate:r,channelConfiguration:o,numberOfChannels:s}},Rx=["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"],Dx=[{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}],Bx=t=>{const{codec:e,codecDescription:n,colorSpace:i,avcCodecInfo:r,hevcCodecInfo:o,vp9CodecInfo:s,av1CodecInfo:a}=t;if("avc"===e){if(ix(null!==t.avcType),r){const e=new Uint8Array([r.avcProfileIndication,r.profileCompatibility,r.avcLevelIndication]);return`avc${t.avcType}.${gx(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}.${gx(n.subarray(1,4))}`}if("hevc"===e){let t,e,i,r,s,a;if(o)t=o.generalProfileSpace,e=o.generalProfileIdc,i=vx(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=ax(n),l=o.getUint8(1);t=l>>6&3,e=31&l,i=vx(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=rx(Dx).level;for(const t of Dx)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=rx(Dx).level;for(const t of Dx)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?ux[i.primaries]:1,u=null!=i&&i.transfer?hx[i.transfer]:1,d=null!=i&&i.matrix?px[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}'.`)},Lx=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:Px(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&&Rx.includes(e))return e;throw new TypeError(`Unhandled codec '${e}'.`)},zx=/^pcm-([usf])(\d+)+(be)?$/,Wx=[48e3,44100,32e3],Ux=[24e3,22050,16e3];var $x,jx;!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"}($x||($x={})),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"}(jx||(jx={}));const qx=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})},Vx=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=xx(i,n):(ix(4===e),t=i.getUint32(n,!1)),n+=e,yield{offset:n,length:t},n+=t}},Hx=t=>31&t,Gx=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)},Kx=t=>t>>1&63,Xx=function*(t){const e=new Fx(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);ix(e.pos%8==0),yield{type:i,data:t.subarray(e.pos/8,e.pos/8+s)},e.skipBits(8*s)}};var Yx;!function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"}(Yx||(Yx={}));const Qx=[2,1,2,3,3,4,4,5];class Jx{constructor(t){this.input=t}}const Zx=[],tw=[],ew=new Uint8Array(0);class nw{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===ew&&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===ew}get microsecondTimestamp(){return Math.trunc(Tx*this.timestamp)}get microsecondDuration(){return Math.trunc(Tx*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 nw(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 nw(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 iw=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.")},rw=t=>{if(!Nx(t))throw new TypeError("timestamp must be a number.")},ow=(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 sw{constructor(t){if(!(t instanceof aw))throw new TypeError("track must be an InputTrack.");this._track=t}getFirstPacket(t={}){if(iw(t),this._track.input._disposed)throw new Ow;return ow(this._track,this._track._backing.getFirstPacket(t),t)}async getFirstKeyPacket(t={}){iw(t);const e=await this.getFirstPacket(t);return e?"key"===e.type?e:this.getNextKeyPacket(e,t):null}getPacket(t,e={}){if(rw(t),iw(e),this._track.input._disposed)throw new Ow;return ow(this._track,this._track._backing.getPacket(t,e),e)}getNextPacket(t,e={}){if(!(t instanceof nw))throw new TypeError("packet must be an EncodedPacket.");if(iw(e),this._track.input._disposed)throw new Ow;return ow(this._track,this._track._backing.getNextPacket(t,e),e)}async getKeyPacket(t,e={}){if(rw(t),iw(e),this._track.input._disposed)throw new Ow;if(!e.verifyKeyPackets)return this._track._backing.getKeyPacket(t,e);const n=await this._track._backing.getKeyPacket(t,e);return n?(ix("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 nw))throw new TypeError("packet must be an EncodedPacket.");if(iw(e),this._track.input._disposed)throw new Ow;if(!e.verifyKeyPackets)return this._track._backing.getNextKeyPacket(t,e);const n=await this._track._backing.getNextKeyPacket(t,e);return n?(ix("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 nw))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 nw))throw new TypeError("endPacket must be an EncodedPacket.");if(iw(n),this._track.input._disposed)throw new Ow;const i=[];let{promise:r,resolve:o}=kx(),{promise:s,resolve:a}=kx(),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}=kx()),await s):(i.push(u),o(),({promise:r,resolve:o}=kx()),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 Ow;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 aw{constructor(t,e){this.input=t,this._backing=e}isVideoTrack(){return this instanceof lw}isAudioTrack(){return this instanceof cw}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 sw(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 lw extends aw{constructor(t,e){super(t,e),this._backing=e,this.pixelAspectRatio=(t=>{ix(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 ix(null!==e),Zx.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 nw))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 ix(e),((t,e,n)=>{switch(t){case"avc":for(const t of((t,e)=>{if(e.description){const n=3&sx(e.description)[4];return Vx(t,n+1)}return qx(t)})(n,e)){const e=n[t.offset],r=Hx(e);if(r>=$x.NON_IDR_SLICE&&r<=$x.SLICE_DPC)return"delta";if(r===$x.IDR)return"key";if(r===$x.SEI&&(i=void 0,!(null!==Ix?Ix:Ix=!("undefined"==typeof navigator||(null===(i=navigator.vendor)||void 0===i||!i.includes("Google Inc"))&&!/Chrome/.test(navigator.userAgent)))||Sx()>=144)){const e=n.subarray(t.offset,t.offset+t.length),i=Gx(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 Fx(i);t.pos=8*r;const e=ox(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&sx(e.description)[21];return Vx(t,n+1)}return qx(t)})(n,e)){const e=Kx(n[t.offset]);if(e<jx.BLA_W_LP)return"delta";if(e<=jx.RSV_IRAP_VCL23)return"key"}return"delta";case"vp8":return 1&n[0]?"delta":"key";case"vp9":{const t=new Fx(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 Xx(n))if(1===e){const e=new Fx(i);e.skipBits(4),t=!!e.readBits(1)}else if(3===e||6===e||7===e){if(t)return"key";const e=new Fx(i);return e.readBits(1)?null:0===e.readBits(2)?"key":"delta"}return null}default:(t=>{throw new Error(`Unexpected value: ${t}`)})(t),ix(!1)}var i})(this.codec,e,t.data)}}class cw extends aw{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 ix(null!==e),tw.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 nw))throw new TypeError("packet must be an EncodedPacket.");return null===this.codec?null:"key"}}const uw=t=>{let e=$w(t);const n=Gw(t,4);let i=8;1===e&&(e=qw(t),i=16);const r=e-i;return r<0?null:{name:n,totalSize:e,headerSize:i,contentSize:r}},dw=t=>jw(t)/65536,hw=t=>jw(t)/1073741824,fw=t=>{let e=0;for(let n=0;n<4;n++){e<<=7;const n=Lw(t);if(e|=127&n,!(128&n))break}return e},pw=t=>{let e=zw(t);return t.skip(2),e=Math.min(e,t.remainingLength),lx.decode(Bw(t,e))},mw=t=>{const e=uw(t);if(!e||"data"!==e.name)return null;if(t.remainingLength<8)return null;const n=$w(t);t.skip(4);const i=Bw(t,e.contentSize-8);switch(n){case 1:return lx.decode(i);case 2:return new TextDecoder("utf-16be").decode(i);case 13:return new Ax(i,"image/jpeg");case 14:return new Ax(i,"image/png");case 27:return new Ax(i,"image/bmp");default:return i}};class gw extends Jx{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=uw(e);if(!i)break;if("ftyp"===i.name){const t=Gw(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),ix(t);const e=$w(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=uw(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,ix(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&&Rx.includes(t.info.codec)&&0===n.sampleCompositionTimeOffsets.length){var r;ix("audio"===(null===(r=t.info)||void 0===r?void 0:r.type));const e=(t=>{if(ix(Rx.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=zx.exec(t);let n;return ix(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=bx(n.sampleTimingEntries,a,(t=>t.startIndex)),u=n.sampleTimingEntries[c],d=bx(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=rx(i);m&&m.delta===p?m.count++:i.push({startIndex:s.startChunkIndex+r,startDecodeTimestamp:f,count:1,delta:p});const g=s.samplesPerChunk*e.sampleSize*t.info.numberOfChannels;o.push(g)}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),ix(n);const i=uw(n);ix("moof"===(null==i?void 0:i.name));let r=this.reader.requestSlice(t,i.totalSize);r instanceof Promise&&(r=await r),ix(r),this.traverseBox(r);const o=this.lastReadFragment;ix(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)Tw(t,i.timestamp);else{const e=bx(n,o.moofOffset-1,(t=>t.moofOffset));if(-1!==e){const i=n[e];Tw(t,i.endTimestamp)}}t.startTimestampIsFinal=!0}const i=bx(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=uw(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,g,v,y,b,k,x,w,_,T,I,E,S,N,A,M,F,C,O,P,R,D;const B=t.filePos,L=uw(t);if(!L)return!1;const z=t.filePos,W=B+L.totalSize;switch(L.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"wave":this.readContiguousBoxes(t.slice(z,L.contentSize));break;case"mvhd":{const e=Lw(t);t.skip(3),1===e?(t.skip(16),this.movieTimescale=$w(t),this.movieDurationInTimescale=qw(t)):(t.skip(8),this.movieTimescale=$w(t),this.movieDurationInTimescale=$w(t))}break;case"trak":{const e={id:-1,demuxer:this,inputTrack:null,disposition:{...Mx},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,L.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 lw(this.input,new yw(t)),this.tracks.push(e)}else if("audio"===e.info.type&&-1!==e.info.numberOfChannels){const t=e;e.inputTrack=new cw(this.input,new bw(t)),this.tracks.push(e)}this.currentTrack=null}break;case"tkhd":{const e=this.currentTrack;if(!e)break;const n=Lw(t),i=!!(1&Ww(t));if(e.disposition.default=i,0===n)t.skip(8),e.id=$w(t),t.skip(4),e.durationInMovieTimescale=$w(t);else{if(1!==n)throw new Error(`Incorrect track header version ${n}.`);t.skip(16),e.id=$w(t),t.skip(4),e.durationInMovieTimescale=qw(t)}t.skip(16);const r=[dw(t),dw(t),hw(t),dw(t),dw(t),hw(t),dw(t),dw(t),hw(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}.`)})((Ct=Iw(r),90*Math.round(Ct/90)));ix(0===o||90===o||180===o||270===o),e.rotation=o}break;case"elst":{const e=this.currentTrack;if(!e)break;const n=Lw(t);t.skip(3);let i=!1,r=0;const o=$w(t);for(let s=0;s<o;s++){const o=1===n?qw(t):$w(t),s=1===n?Vw(t):jw(t),a=dw(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=Lw(t);t.skip(3),0===n?(t.skip(8),e.timescale=$w(t),e.durationInMediaTimescale=$w(t)):1===n&&(t.skip(16),e.timescale=$w(t),e.durationInMediaTimescale=qw(t));let i=zw(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,_x.test(Ft)||(e.languageCode="und")}}break;case"hdlr":{const e=this.currentTrack;if(!e)break;t.skip(8);const n=Gw(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=B,this.readContiguousBoxes(t.slice(z,L.contentSize))}break;case"stsd":{const e=this.currentTrack;if(!e)break;if(null===e.info||e.sampleTable)break;const n=Lw(t);t.skip(3);const i=$w(t);for(let r=0;r<i;r++){const i=t.filePos,r=uw(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=zw(t),e.info.height=zw(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=zw(t);t.skip(6);let a=zw(t),l=zw(t);t.skip(4);let c=$w(t)/65536;if(0===n&&s>0)if(1===s)t.skip(4),l=8*$w(t),t.skip(8);else if(2===s){t.skip(4),c=Hw(t),a=$w(t),t.skip(4),l=$w(t);const n=$w(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;ix(e.info),e.info.codecDescription=Bw(t,L.contentSize)}break;case"hvcC":{const e=this.currentTrack;if(!e)break;ix(e.info),e.info.codecDescription=Bw(t,L.contentSize)}break;case"vpcC":{var U;const e=this.currentTrack;if(!e)break;ix("video"===(null===(U=e.info)||void 0===U?void 0:U.type)),t.skip(4);const n=Lw(t),i=Lw(t),r=Lw(t),o=r>>4,s=r>>1&7,a=1&r,l=Lw(t),c=Lw(t),u=Lw(t);e.info.vp9CodecInfo={profile:n,level:i,bitDepth:o,chromaSubsampling:s,videoFullRangeFlag:a,colourPrimaries:l,transferCharacteristics:c,matrixCoefficients:u}}break;case"av1C":{var $;const e=this.currentTrack;if(!e)break;ix("video"===(null===($=e.info)||void 0===$?void 0:$.type)),t.skip(1);const n=Lw(t),i=n>>5,r=31&n,o=Lw(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 j;const e=this.currentTrack;if(!e)break;if(ix("video"===(null===(j=e.info)||void 0===j?void 0:j.type)),"nclx"!==Gw(t,4))break;const n=zw(t),i=zw(t),r=zw(t),o=Boolean(128&Lw(t));e.info.colorSpace={primaries:dx[n],transfer:fx[i],matrix:mx[r],fullRange:o}}break;case"pasp":{var q;const e=this.currentTrack;if(!e)break;ix("video"===(null===(q=e.info)||void 0===q?void 0:q.type));const n=$w(t),i=$w(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;ix("audio"===(null===(V=e.info)||void 0===V?void 0:V.type)),t.skip(4),ix(3===Lw(t)),fw(t),t.skip(2);const n=Lw(t),i=!!(64&n),r=!!(32&n);if(!!(128&n)&&t.skip(2),i){const e=Lw(t);t.skip(e)}r&&t.skip(2),ix(4===Lw(t));const o=fw(t),s=t.filePos,a=Lw(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){ix(5===Lw(t));const n=fw(t);if(e.info.codecDescription=Bw(t,n),"aac"===e.info.codec){const t=Px(e.info.codecDescription);null!==t.numberOfChannels&&(e.info.numberOfChannels=t.numberOfChannels),null!==t.sampleRate&&(e.info.sampleRate=t.sampleRate)}}}break;case"enda":{var H;const e=this.currentTrack;if(!e)break;ix("audio"===(null===(H=e.info)||void 0===H?void 0:H.type)),255&zw(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 G;const e=this.currentTrack;if(!e)break;ix("audio"===(null===(G=e.info)||void 0===G?void 0:G.type)),t.skip(4);const n=Lw(t),i=Boolean(1&n),r=Lw(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;ix("audio"===(null===(K=e.info)||void 0===K?void 0:K.type)),t.skip(1);const n=Lw(t),i=zw(t),r=$w(t),o=Uw(t),s=Lw(t);let a;a=0!==s?Bw(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;ix("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=Lw(t),o=Ww(t);if((r&n)===Yx.STREAMINFO){t.skip(10);const n=$w(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=Bw(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;ix("audio"===(null===(Y=e.info)||void 0===Y?void 0:Y.type));const n=Bw(t,3),i=new Fx(n),r=i.readBits(2);i.skipBits(8);const o=i.readBits(3),s=i.readBits(1);r<3&&(e.info.sampleRate=Wx[r]),e.info.numberOfChannels=Qx[o]+s}break;case"dec3":{var Q;const e=this.currentTrack;if(!e)break;ix("audio"===(null===(Q=e.info)||void 0===Q?void 0:Q.type));const n=(t=>{if(t.length<2)return null;const e=new Fx(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}})(Bw(t,L.contentSize));if(!n){console.warn("Invalid dec3 box contents, ignoring.");break}const i=(t=>{const e=t.substreams[0];return ix(e),e.fscod<3?Wx[e.fscod]:null!==e.fscod2&&e.fscod2<3?Ux[e.fscod2]:null})(n);null!==i&&(e.info.sampleRate=i),e.info.numberOfChannels=(t=>{const e=t.substreams[0];ix(e);let n=Qx[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=$w(t);let i=0,r=0;for(let o=0;o<n;o++){const n=$w(t),o=$w(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=$w(t);let i=0;for(let r=0;r<n;r++){const n=$w(t),r=jw(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=$w(t),i=$w(t);if(0===n)for(let n=0;n<i;n++){const n=$w(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=Lw(t),i=$w(t),r=Bw(t,Math.ceil(i*n/8)),o=new Fx(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=$w(t);for(let i=0;i<n;i++){const n=$w(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=$w(t);for(let i=0;i<n;i++){const n=$w(t)-1,i=$w(t),r=$w(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=$w(t);for(let i=0;i<n;i++){const n=$w(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=$w(t);for(let i=0;i<n;i++){const n=qw(t);e.sampleTable.chunkOffsets.push(n)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.slice(z,L.contentSize));break;case"mehd":{const e=Lw(t);t.skip(3);const n=1===e?qw(t):$w(t);this.movieDurationInTimescale=n}break;case"trex":{t.skip(4);const e=$w(t),n=$w(t),i=$w(t),r=$w(t),o=$w(t);this.fragmentTrackDefaults.push({trackId:e,defaultSampleDescriptionIndex:n,defaultSampleDuration:i,defaultSampleSize:r,defaultSampleFlags:o})}break;case"tfra":{const e=Lw(t);t.skip(3);const n=$w(t),i=this.tracks.find((t=>t.id===n));if(!i)break;const r=$w(t),o=(12&r)>>2,s=3&r,a=[Lw,zw,Ww,$w],l=a[(48&r)>>4],c=a[o],u=a[s],d=$w(t);for(let n=0;n<d;n++){const n=1===e?qw(t):$w(t),r=1===e?qw(t):$w(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:B,moofSize:L.totalSize,implicitBaseDataOffset:B,trackData:new Map},this.readContiguousBoxes(t.slice(z,L.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if(ix(this.currentFragment),this.readContiguousBoxes(t.slice(z,L.contentSize)),this.currentTrack){const t=this.currentFragment.trackData.get(this.currentTrack.id);if(t){const{currentFragmentState:e}=this.currentTrack;ix(e),null!==e.startTimestamp&&(Tw(t,e.startTimestamp),t.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{var J,Z,tt,et;ix(this.currentFragment),t.skip(1);const e=Ww(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=$w(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=qw(t):l&&(u.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),i&&(u.currentFragmentState.sampleDescriptionIndex=$w(t)),r&&(u.currentFragmentState.defaultSampleDuration=$w(t)),o&&(u.currentFragmentState.defaultSampleSize=$w(t)),s&&(u.currentFragmentState.defaultSampleFlags=$w(t)),a&&(u.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{const e=this.currentTrack;if(!e)break;ix(e.currentFragmentState);const n=Lw(t);t.skip(3);const i=0===n?$w(t):qw(t);e.currentFragmentState.startTimestamp=i}break;case"trun":{const e=this.currentTrack;if(!e)break;if(ix(this.currentFragment),ix(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=Lw(t),i=Ww(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=$w(t);let d=e.currentFragmentState.baseDataOffset;r&&(d+=jw(t));let h=null;o&&(h=$w(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=$w(t):(ix(null!==e.currentFragmentState.defaultSampleDuration),r=e.currentFragmentState.defaultSampleDuration),a?o=$w(t):(ix(null!==e.currentFragmentState.defaultSampleSize),o=e.currentFragmentState.defaultSampleSize),l?u=$w(t):(ix(null!==e.currentFragmentState.defaultSampleFlags),u=e.currentFragmentState.defaultSampleFlags),0===i&&null!==h&&(u=h);let d=0;c&&(d=0===n?$w(t):jw(t));const g=!(65536&u);m.samples.push({presentationTimestamp:p+d,duration:r,byteOffset:f,byteSize:o,isKeyFrame:g}),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 g=m.samples[m.presentationTimestamps[0].sampleIndex],v=m.samples[rx(m.presentationTimestamps).sampleIndex];m.startTimestamp=g.presentationTimestamp,m.endTimestamp=v.presentationTimestamp+v.duration,this.currentFragment.implicitBaseDataOffset=f}break;case"udta":{const v=this.iterateContiguousBoxes(t.slice(z,L.contentSize));for(const{boxInfo:t,slice:y}of v){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]=pw(y)):null!==(ct=(at=this.metadataTags.raw)[lt=t.name])&&void 0!==ct||(at[lt]=Bw(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=lx.decode(Bw(y,t.contentSize)):null!==(n=(e=this.metadataTags).title)&&void 0!==n||(e.title=pw(y));break;case"©des":this.currentTrack||null!==(r=(i=this.metadataTags).description)&&void 0!==r||(i.description=pw(y));break;case"©ART":this.currentTrack||null!==(s=(o=this.metadataTags).artist)&&void 0!==s||(o.artist=pw(y));break;case"©alb":this.currentTrack||null!==(l=(a=this.metadataTags).album)&&void 0!==l||(a.album=pw(y));break;case"albr":this.currentTrack||null!==(u=(c=this.metadataTags).albumArtist)&&void 0!==u||(c.albumArtist=pw(y));break;case"©gen":this.currentTrack||null!==(h=(d=this.metadataTags).genre)&&void 0!==h||(d.genre=pw(y));break;case"©day":if(!this.currentTrack){var ut,dt;const t=new Date(pw(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=pw(y));break;case"©lyr":this.currentTrack||null!==(g=(m=this.metadataTags).lyrics)&&void 0!==g||(m.lyrics=pw(y))}}}break;case"meta":{if(this.currentTrack)break;const e=0!==$w(t);this.currentMetadataKeys=new Map,e?this.readContiguousBoxes(t.slice(z,L.contentSize)):this.readContiguousBoxes(t.slice(z+4,L.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;t.skip(4);const e=$w(t);for(let n=0;n<e;n++){const e=$w(t);t.skip(4);const i=lx.decode(Bw(t,e-8));this.currentMetadataKeys.set(n+1,i)}}break;case"ilst":{if(!this.currentMetadataKeys)break;const e=this.iterateContiguousBoxes(t.slice(z,L.contentSize));for(const{boxInfo:t,slice:n}of e){var ht,ft,pt,mt,gt;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=mw(n);switch(null!==(ft=(ht=this.metadataTags).raw)&&void 0!==ft||(ht.raw={}),null!==(gt=(pt=this.metadataTags.raw)[mt=e])&&void 0!==gt||(pt[mt]=r),e){case"©nam":case"titl":case"com.apple.quicktime.title":case"title":"string"==typeof r&&(null!==(y=(v=this.metadataTags).title)&&void 0!==y||(v.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!==(w=(x=this.metadataTags).artist)&&void 0!==w||(x.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!==(N=(S=this.metadataTags).comment)&&void 0!==N||(S.comment=r));break;case"©gen":case"gnre":case"com.apple.quicktime.genre":case"genre":"string"==typeof r&&(null!==(M=(A=this.metadataTags).genre)&&void 0!==M||(A.genre=r));break;case"©lyr":case"lyrics":"string"==typeof r&&(null!==(C=(F=this.metadataTags).lyrics)&&void 0!==C||(F.lyrics=r));break;case"©day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if("string"==typeof r){var vt,yt;const t=new Date(r);Number.isNaN(t.getTime())||null!==(yt=(vt=this.metadataTags).date)&&void 0!==yt||(vt.date=t)}break;case"covr":case"com.apple.quicktime.artwork":r instanceof Ax?(null!==(P=(O=this.metadataTags).images)&&void 0!==P||(O.images=[]),this.metadataTags.images.push({data:r.data,kind:"coverFront",mimeType:r.mimeType})):r instanceof Uint8Array&&(null!==(D=(R=this.metadataTags).images)&&void 0!==D||(R.images=[]),this.metadataTags.images.push({data:r,kind:"coverFront",mimeType:"image/*"}));break;case"track":if("string"==typeof r){var bt,kt,xt,wt;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!==(wt=(xt=this.metadataTags).tracksTotal)&&void 0!==wt||(xt.tracksTotal=n))}break;case"trkn":if(r instanceof Uint8Array&&r.length>=6){var _t,Tt,It,Et;const t=ax(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,Nt,At,Mt;const t=ax(r),e=t.getUint16(2,!1),n=t.getUint16(4,!1);e>0&&(null!==(Nt=(St=this.metadataTags).discNumber)&&void 0!==Nt||(St.discNumber=e)),n>0&&(null!==(Mt=(At=this.metadataTags).discsTotal)&&void 0!==Mt||(At.discsTotal=n))}}}}}var Ft,Ct;return t.filePos=W,!0}}class vw{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=kw(i,n),o=await this.fetchPacketForSampleIndex(r,e);return Ew(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=bx(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=xw(i,n),o=await this.fetchPacketForSampleIndex(r,e);return Ew(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=_w(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 ix(-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=ww(n,t);if(!i)return null;let r;if(e.metadataOnly)r=ew;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.sampleOffset,i.sampleSize);t instanceof Promise&&(t=await t),ix(t),r=Bw(t,i.sampleSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new nw(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(ix(i),n.metadataOnly)r=ew;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.byteOffset,i.byteSize);t instanceof Promise&&(t=await t),ix(t),r=Bw(t,i.byteSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new nw(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=bx(this.internalTrack.fragmentLookupTable,n,(t=>t.timestamp)),h=-1!==d?this.internalTrack.fragmentLookupTable[d]:null,f=bx(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 g;for(t?null===m||t.moofOffset>=m?(g=t.moofOffset+t.moofSize,l=t):g=m:g=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(g,8,16);if(t instanceof Promise&&(t=await t),!t)break;const n=g,o=uw(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)}g=n+o.totalSize}if(h&&(!c||c.moofOffset<h.moofOffset)){var v;const t=this.internalTrack.fragmentLookupTable[d-1];ix(!t||t.timestamp<h.timestamp);const n=null!==(v=null==t?void 0:t.timestamp)&&void 0!==v?v:-1/0;return this.performFragmentedLookup(null,e,n,i,r)}return c?this.fetchPacketInFragment(c,u,r):null}}class yw extends vw{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 Xx(t)){if(1!==e)continue;const t=new Fx(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 g=1,v=1,y=0;return m||(0===i?(g=1,v=1):1===i?(g=0,v=0):12===p&&(g=t.readBits(1),g&&(v=t.readBits(1))),g&&v&&(y=t.readBits(2))),{profile:i,level:o,tier:s,bitDepth:p,monochrome:m,chromaSubsamplingX:g,chromaSubsamplingY:v,chromaSamplePosition:y}}return null})(t.data)}}else{const t=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=t&&(t=>{const e=new Fx(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=rx(Dx).level;for(const t of Dx)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:Bx(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 bw extends vw{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:Lx(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 kw=(t,e)=>{if(t.presentationTimestamps){const n=bx(t.presentationTimestamps,e,(t=>t.presentationTimestamp));return-1===n?-1:t.presentationTimestamps[n].sampleIndex}{const n=bx(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)}},xw=(t,e)=>{if(!t.keySampleIndices)return kw(t,e);if(t.presentationTimestamps){const n=bx(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!==yx(t.keySampleIndices,n,(t=>t)))return n}return-1}{var n;const i=kw(t,e),r=bx(t.keySampleIndices,i,(t=>t));return null!==(n=t.keySampleIndices[r])&&void 0!==n?n:-1}},ww=(t,e)=>{const n=bx(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=bx(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=bx(t.sampleToChunk,e,(t=>t.startSampleIndex)),c=t.sampleToChunk[l];ix(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];ix(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!==yx(t.keySampleIndices,e,(t=>t))}},_w=(t,e)=>{var n;if(!t.keySampleIndices)return e+1;const i=bx(t.keySampleIndices,e,(t=>t));return null!==(n=t.keySampleIndices[i+1])&&void 0!==n?n:-1},Tw=(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},Iw=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},Ew=t=>0===t.sampleSizes.length;class Sw{}class Nw extends Sw{async _getMajorBrand(t){let e=t._reader.requestSlice(0,12);return e instanceof Promise&&(e=await e),e?(e.skip(4),"ftyp"!==Gw(e,4)?null:Gw(e,4)):null}_createDemuxer(t){return new gw(t)}}const Aw=new class extends Nw{async _canReadInput(t){const e=await this._getMajorBrand(t);return!!e&&"qt "!==e}get name(){return"MP4"}get mimeType(){return"video/mp4"}};class Mw{constructor(){this._disposed=!1,this._sizePromise=null,this.onread=null}async getSizeOrNull(){var t;if(this._disposed)throw new Ow;return null!==(t=this._sizePromise)&&void 0!==t?t:this._sizePromise=Promise.resolve(this._retrieveSize())}async getSize(){if(this._disposed)throw new Ow;const t=await this.getSizeOrNull();if(null===t)throw new Error("Cannot determine the size of an unsized source.");return t}}class Fw extends Mw{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&&(!Nx(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=bx(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:ax(o),offset:t};this._currentIndex>r&&this._throwDueToCacheMiss();const{promise:s,resolve:a,reject:l}=kx();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:ax(e.bytes),offset:e.start}),this._pendingSlices.splice(t,1),t--))}for(this._cache.push({start:i,end:r,bytes:n,view:ax(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!==(ue=Symbol.dispose)&&void 0!==ue||(Symbol.dispose=Symbol("Symbol.dispose"));class Cw{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 Sw))))throw new TypeError("options.formats must be an array of InputFormat.");if(!(t.source instanceof Mw))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 Pw(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(),ix(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 Ow extends Error{constructor(t="Input has been disposed."){super(t),this.name="InputDisposedError"}}class Pw{constructor(t){this.source=t}requestSlice(t,e){if(this.source._disposed)throw new Ow;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 Rw(e.bytes,e.view,e.offset,t,n):null)):i?new Rw(i.bytes,i.view,i.offset,t,n):null}requestSliceRange(t,e,n){if(this.source._disposed)throw new Ow;if(t<0)return null;if(null!==this.fileSize)return this.requestSlice(t,wx(this.fileSize-t,e,n));{const i=this.requestSlice(t,n),r=i=>{if(i)return i;const r=i=>(ix(null!==i),this.requestSlice(t,wx(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 Rw{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 Rw(t,ax(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 Rw(this.bytes,this.view,this.offset,t,t+e)}}const Dw=(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.`)},Bw=(t,e)=>{Dw(t,e);const n=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,n},Lw=t=>(Dw(t,1),t.view.getUint8(t.bufferPos++)),zw=t=>{Dw(t,2);const e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},Ww=t=>{Dw(t,3);const e=xx(t.view,t.bufferPos);return t.bufferPos+=3,e},Uw=t=>{Dw(t,2);const e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},$w=t=>{Dw(t,4);const e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},jw=t=>{Dw(t,4);const e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},qw=t=>4294967296*$w(t)+$w(t),Vw=t=>4294967296*jw(t)+$w(t),Hw=t=>{Dw(t,8);const e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},Gw=(t,e)=>{Dw(t,e);let n="";for(let i=0;i<e;i++)n+=String.fromCharCode(t.bytes[t.bufferPos++]);return n};var Kw=new WeakMap,Xw=new WeakMap,Yw=new WeakMap,Qw=new WeakMap,Jw=new WeakMap,Zw=new WeakMap,t_=new WeakMap,e_=new WeakMap,n_=new WeakMap,i_=new WeakMap,r_=new WeakMap,o_=new WeakMap,s_=new WeakMap,a_=new WeakMap,l_=new WeakMap,c_=new WeakSet;class u_ extends jc{constructor(...t){super(...t),O(this,c_),F(this,Kw,null),F(this,Xw,null),F(this,Yw,null),F(this,Qw,null),F(this,Jw,!1),F(this,Zw,!1),F(this,t_,!1),F(this,e_,!1),F(this,n_,void 0),F(this,i_,null),F(this,r_,null),F(this,o_,!1),F(this,s_,!1),F(this,a_,null),F(this,l_,!1)}get name(){return"FMP4Demuxer"}get defaults(){return{}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"pushChunk","endOfStream"])}pushChunk(t,e={}){if(M(t_,this)||M(e_,this))return;const n=t instanceof Uint8Array?t:new Uint8Array(t),i=!!e.isInit;C(i_,this,N(c_,this,g_).call(this,n,e,i)),i&&(C(n_,this,n),C(r_,this,null),this.trigger("demux:init",{data:n})),N(c_,this,m_).call(this);try{var r;const t=null===(r=M(Kw,this))||void 0===r?void 0:r.write(n);t&&"function"==typeof t.catch&&t.catch((t=>{N(c_,this,v_).call(this,t)}))}catch(t){if(M(t_,this)||N(c_,this,d_).call(this,t))return;return this.log.warn("[FMP4Demuxer] mediabunny demux failed",t),void N(c_,this,v_).call(this,t)}const o=N(c_,this,k_).call(this);o&&"function"==typeof o.catch&&o.catch((t=>{N(c_,this,v_).call(this,t)}))}endOfStream(){if(M(e_,this))return;if(M(o_,this))return;let t;C(o_,this,!0),C(s_,this,!1),C(l_,this,!1);try{var e;t=null===(e=M(Kw,this))||void 0===e?void 0:e.close()}catch(e){t=Promise.resolve()}let n=!1;N(c_,this,f_).call(this),C(a_,this,setTimeout((()=>{C(a_,this,null),n||M(s_,this)||M(e_,this)||N(c_,this,p_).call(this)}),20)),Promise.resolve(t).catch((()=>{})).finally((()=>{n=!0,N(c_,this,f_).call(this),N(c_,this,p_).call(this)}))}onDispose(){super.onDispose(),C(e_,this,!0);try{var t,e;null===(t=M(Yw,this))||void 0===t||null===(e=t.close)||void 0===e||e.call(t)}catch(t){}this.endOfStream();try{var n,i;null===(n=M(Xw,this))||void 0===n||null===(i=n.dispose)||void 0===i||i.call(n)}catch(t){}C(Yw,this,null),C(Xw,this,null),C(t_,this,!1),C(i_,this,null),C(Qw,this,null),C(Jw,this,!1),C(Zw,this,!1),C(o_,this,!1),C(s_,this,!1),C(l_,this,!1),N(c_,this,f_).call(this)}}function d_(t){return!!M(e_,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 h_(){try{var t,e;const n=null===(t=M(Kw,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){}C(Kw,this,null)}function f_(){null!==M(a_,this)&&(clearTimeout(M(a_,this)),C(a_,this,null))}function p_(){if(M(s_,this)||M(e_,this)||M(t_,this))return;if(C(s_,this,!0),M(Zw,this))return void C(l_,this,!0);C(l_,this,!1);const t=N(c_,this,k_).call(this);t&&"function"==typeof t.catch&&t.catch((t=>{N(c_,this,v_).call(this,t)}))}function m_(){if(M(Xw,this)&&M(Kw,this))return;const t=Hc.TransformStream;if(void 0===t)throw new Error("TransformStream is not available in this environment");const{readable:e,writable:n}=new t;C(Kw,this,n.getWriter()),C(Xw,this,new Cw({source:new Fw(e),formats:[Aw]})),C(Jw,this,!1)}function g_(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 v_(t){if(M(t_,this)||N(c_,this,d_).call(this,t))return;if(N(c_,this,b_).call(this,t))return void C(Jw,this,!1);C(t_,this,!0),N(c_,this,h_).call(this);try{var e,n;null===(e=M(Yw,this))||void 0===e||null===(n=e.close)||void 0===n||n.call(e)}catch(t){}C(Yw,this,null);try{var i,r;null===(i=M(Xw,this))||void 0===i||null===(r=i.dispose)||void 0===r||r.call(i)}catch(t){}C(Xw,this,null);const o={error:t,recoverable:!1,severity:"fatal",streamClosed:M(o_,this),streamFinalized:M(s_,this)};M(i_,this)&&(o.context={...M(i_,this)}),this.trigger("demux:error",o)}function y_(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 b_(t){return!!N(c_,this,y_).call(this,t)&&(!M(s_,this)||M(l_,this))}async function k_(){if(!(M(e_,this)||M(t_,this)||M(Jw,this)||M(Zw,this))){C(Zw,this,!0);try{N(c_,this,m_).call(this);const t=await M(Xw,this).getPrimaryVideoTrack(),e=t?null:await M(Xw,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 M(Xw,this).getMimeType();this.trigger("demux:init",{...M(n_,this)?{data:M(n_,this)}:{},decoderConfig:i,codec:r,mimeType:o}),C(Yw,this,new sw(n)),C(Jw,this,!0),C(Qw,this,(async()=>{try{for await(const t of M(Yw,this).packets()){if(M(e_,this))break;const e="number"==typeof t.timestamp?t.timestamp:0;null===M(r_,this)&&C(r_,this,e);let n=e-M(r_,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){N(c_,this,v_).call(this,t)}})())}catch(t){if(N(c_,this,b_).call(this,t))return;throw t}finally{C(Zw,this,!1),!M(l_,this)||M(t_,this)||M(e_,this)||N(c_,this,p_).call(this)}}}const x_=1e6,w_=24e3/1001,__=new Uint8Array;function T_(t){return t?t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):__:__}let I_=null;const E_={video:(de=new WeakMap,he=new WeakMap,fe=new WeakMap,pe=new WeakMap,me=new WeakMap,ge=new WeakMap,ve=new WeakMap,ye=new WeakMap,be=new WeakMap,ke=new WeakMap,xe=new WeakMap,we=new WeakMap,_e=new WeakMap,Te=new WeakMap,Ie=new WeakMap,Ee=new WeakMap,Se=new WeakMap,Ne=new WeakMap,Ae=new WeakMap,Me=new WeakMap,Fe=new WeakMap,Ce=new WeakMap,Oe=new WeakMap,Pe=new WeakMap,Re=new WeakMap,De=new WeakMap,Be=new WeakMap,Le=new WeakMap,ze=new WeakMap,We=new WeakMap,Ue=new WeakMap,$e=new WeakMap,je=new WeakMap,qe=new WeakMap,Ve=new WeakSet,class extends nx{get name(){return"WebCodecsSegmentDecoder"}get defaults(){return{decodedHorizonSeconds:1,maxDecodedFrames:24,maxDecodeQueueSize:4,convertFramesToBitmapsOnAndroid:!0,androidFixEndOfSegmentDelta:.2}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"decodeChunk"])}constructor(...t){super(...t),O(this,Ve),F(this,de,void 0),F(this,he,[]),F(this,fe,void 0),F(this,pe,void 0),F(this,me,void 0),F(this,ge,void 0),F(this,ve,[]),F(this,ye,void 0),F(this,be,new Map),F(this,ke,!0),F(this,xe,!1),F(this,we,!1),F(this,_e,!1),F(this,Te,void 0),F(this,Ie,!1),F(this,Ee,!1),F(this,Se,0),F(this,Ne,void 0),F(this,Ae,void 0),F(this,Me,{}),F(this,Fe,void 0),F(this,Ce,0),F(this,Oe,null),F(this,Pe,!1),F(this,Re,null),F(this,De,void 0),F(this,Be,0),F(this,Le,0),F(this,ze,0),F(this,We,0),F(this,Ue,!1),F(this,$e,!1),F(this,je,.2),F(this,qe,Promise.resolve()),C(fe,this,this.settings.decodedHorizonSeconds||1),C(pe,this,N(Ve,this,gT).call(this,this.settings.maxDecodedFrames)),C(me,this,N(Ve,this,yT).call(this,this.settings.maxDecodeQueueSize)),C(Ue,this,Rp()),C($e,this,N(Ve,this,lT).call(this,this.settings.convertFramesToBitmapsOnAndroid)),C(je,this,N(Ve,this,cT).call(this,this.settings.androidFixEndOfSegmentDelta)),C(ge,this,(()=>0)),C(ye,this,(()=>N(Ve,this,Z_).call(this)));const e=this.settings.demuxerOptions?{FMP4Demuxer:this.settings.demuxerOptions}:{};C(de,this,new u_(e)),M(de,this).on("demux:init",(t=>N(Ve,this,j_).call(this,t))),M(de,this).on("demux:sample",(t=>N(Ve,this,q_).call(this,t))),M(de,this).on("demux:complete",(()=>N(Ve,this,V_).call(this))),M(de,this).on("demux:error",(t=>N(Ve,this,C_).call(this,t)))}setCurrentTimeProvider(t){"function"==typeof t&&C(ge,this,t)}setTimeOffsetSeconds(t){const e=Number(t);C(Ce,this,Number.isFinite(e)?e:0)}setSeekTargetTimeSeconds(t){const e=Number(t);C(Oe,this,Number.isFinite(e)?e:null),C(Pe,this,!1),C(Re,this,null)}endOfStream(){M(de,this)&&"function"==typeof M(de,this).endOfStream&&M(de,this).endOfStream()}configure(t){super.configure(t),C(Me,this,{codec:N(Ve,this,kT).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)}),C(Ne,this,M(Me,this).codec)}setSegment(t){this.lastSegment=t,N(Ve,this,z_).call(this)}setNodeId(t){C(De,this,t)}decode(t){this.setSegment(t);const e=null==t?void 0:t.arrayBuffer;e&&M(de,this).pushChunk(e,{isInit:!(null==t||!t.isInit)})}async decodeChunk(t,e={}){await M(de,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 M(he,this).slice()}onDispose(){if(super.onDispose(),N(Ve,this,nT).call(this),M(de,this)&&"function"==typeof M(de,this).dispose&&M(de,this).dispose(),C(he,this,[]),C(ve,this,[]),M(be,this).clear(),C(Re,this,null),M(Te,this)&&"function"==typeof M(Te,this).close)try{M(Te,this).close()}catch(t){}C(Te,this,null),C(Ie,this,!1),C(Ae,this,null),C(Ne,this,null),C(De,this,null),C(qe,this,Promise.resolve()),N(Ve,this,z_).call(this)}}),audio:(He=new WeakMap,Ge=new WeakMap,Ke=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,Qe=new WeakMap,Je=new WeakMap,Ze=new WeakSet,class extends nx{constructor(...t){super(...t),O(this,Ze),F(this,He,void 0),F(this,Ge,[]),F(this,Ke,0),F(this,Xe,!1),F(this,Ye,!1),F(this,Qe,void 0),F(this,Je,0)}get name(){return"WebAudioDecoder"}setSegment(t){C(Qe,this,t)}setTimeOffsetSeconds(t){const e=Number(t);C(Je,this,Number.isFinite(e)?e:0)}decode(t){if(this.lastSegment=t,!t)return;if(t.isInit)return void C(He,this,T_(t.arrayBuffer));const e=t.arrayBuffer;e&&N(Ze,this,A_).call(this,T_(e),!0)}decodeChunk(t,e={}){if(!t)return;if(e.isInit)return void C(He,this,T_(t));const n=T_(t);if(!n.length)return;M(Ge,this).push(n),C(Ke,this,M(Ke,this)+n.length);const i=Number(e.loaded),r=Number(e.total);Number.isFinite(i)&&Number.isFinite(r)&&r>0&&i>=r&&N(Ze,this,S_).call(this)}endOfStream(){N(Ze,this,S_).call(this)}onDispose(){super.onDispose(),C(He,this,void 0),C(Ge,this,[]),C(Ke,this,0),C(Xe,this,!1),C(Ye,this,!1),C(Qe,this,void 0)}}),image:class extends nx{#B;#L=0;#z=[];#W=0;#U;get name(){return"ImageDecoder"}setSegment(t){this.#B=t}setTimeOffsetSeconds(t){const e=Number(t);this.#L=Number.isFinite(e)?e:0}decode(t){super.decode(t),t&&(this.#B=t);const e=null==t?void 0:t.arrayBuffer;e instanceof ArrayBuffer&&(this.#z=[new Uint8Array(e)],this.#W=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.#z.push(n),this.#W+=n.length)}async endOfStream(){var t,e,n;if(this.#U)return;if(!(this.#z.length&&this.#W>0))return;const i=new Uint8Array(this.#W);let r=0;for(let t=0;t<this.#z.length;t+=1){const e=this.#z[t];i.set(e,r),r+=e.length}const o=null===(t=this.#B)||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 Hc.Blob)return;const n="string"==typeof e?e:"";return new Hc.Blob([t],n?{type:n}:void 0)}(t,e);if(!n)throw new Error("Image decode requires Blob support");let i;if("function"==typeof Hc.Image&&Hc.URL&&"function"==typeof Hc.URL.createObjectURL&&"function"==typeof Hc.URL.revokeObjectURL){const t=Hc.URL.createObjectURL(n);try{const e=new Hc.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{Hc.URL.revokeObjectURL(t)}}if("function"==typeof Hc.createImageBitmap)try{return Hc.createImageBitmap(n)}catch(t){i=t}if(i)throw i;throw new Error("No supported image decode mechanism")}(i,s);this.#U=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&&(lg(o.width)||(o.width=e.width),lg(o.height)||(o.height=e.height)),this.trigger("decoder:frame",{pts:this.#L,duration:lg(null===(a=this.#B)||void 0===a?void 0:a.duration)?this.#B.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.#U&&"function"==typeof this.#U.close)try{this.#U.close()}catch(t){}this.#U=null,this.#z=[],this.#W=0,this.#B=null}}};function S_(){if(M(Xe,this)||M(Ye,this))return;if(!M(Ke,this))return;const t=N(Ze,this,N_).call(this);t.length&&N(Ze,this,A_).call(this,t,!1)}function N_(){const t=M(He,this),e=t?t.length:0,n=e+M(Ke,this);if(!n)return __;const i=new Uint8Array(n);let r=0;e&&(i.set(t,r),r+=e);for(let t=0;t<M(Ge,this).length;t+=1){const e=M(Ge,this)[t];e&&e.length&&(i.set(e,r),r+=e.length)}return i}function A_(t,e){if(M(Xe,this)||M(Ye,this))return;const n=e?N(Ze,this,M_).call(this,t):t;if(!n||!n.length)return;const i=function(){if(I_)return I_;const t=Hc.AudioContext||Hc.webkitAudioContext;return t?(I_=new t,I_):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);C(Ye,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;C(Xe,this,!0);const n=Number.isFinite(null==t?void 0:t.duration)?t.duration:Number(null===(e=M(Qe,this))||void 0===e?void 0:e.duration)||void 0;this.trigger("decoder:audio",{audioBuffer:t,pts:M(Je,this),duration:n})})).catch((t=>{this.trigger("decoder:error",{error:t})})).finally((()=>{C(Ge,this,[]),C(Ke,this,0),C(Ye,this,!1)}))}function M_(t){const e=M(He,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 F_(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:M(De,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=M(Me,this))||void 0===r?void 0:r.codec)||M(Ne,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 C_(t){const e=(null==t?void 0:t.error)||t,n=N(Ve,this,F_).call(this,t,e);if(N(Ve,this,O_).call(this,t,e))return this.log.warn("[onDemuxError] recoverable demux error",n),void N(Ve,this,V_).call(this);const i=N(Ve,this,$_).call(this,t),r=N(Ve,this,P_).call(this,i);if(i&&0===i.missingFrames)return this.log.warn(`[onDemuxError] ignoring demux error (no missing frames)${r}`,{...n,missingFrameStats:i}),void N(Ve,this,V_).call(this);let o=n;i&&(o={...n,missingFrameStats:i}),this.log.warn(`[onDemuxError] demux error${r}`,o),this.trigger("decoder:error",t)}function O_(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 P_(t){return t?` expectedFrames=${N(Ve,this,R_).call(this,t.expectedFrames)} demuxedFrames=${N(Ve,this,R_).call(this,t.demuxedFrames)} missingFrames=${N(Ve,this,R_).call(this,t.missingFrames)}`:""}function R_(t){if(null==t)return"unknown";const e=Number(t);return Number.isFinite(e)?String(e):"unknown"}function D_(t,e={}){return{expectedFrames:null,demuxedFrames:M(Be,this),missingFrames:null,reason:t,...e}}function B_(t){const e=Number(t);return Number.isFinite(e)?e:null}function L_(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 N(Ve,this,D_).call(this,"segment_duration_unavailable",{segmentDurationSeconds:N(Ve,this,B_).call(this,s),demuxedCoverageSeconds:M(We,this),frameDurationSeconds:null});const a=N(Ve,this,U_).call(this);if(!Number.isFinite(a)||a<=0){const t=Math.max(1,Math.round(s*w_));return{expectedFrames:t,demuxedFrames:M(Be,this),missingFrames:Math.max(0,t-M(Be,this)),reason:"fallback_fps",fallbackFps:w_,segmentDurationSeconds:s,demuxedCoverageSeconds:M(We,this),frameDurationSeconds:N(Ve,this,B_).call(this,a)}}const l=Math.min(.5*a,.02),c=Math.max(0,s-M(We,this)),u=c<=l?0:c,d=Math.max(1,Math.floor((s+l)/a)),h=Math.max(0,d-M(Be,this)),f=u>0?Math.ceil(u/a):0;return{expectedFrames:d,demuxedFrames:M(Be,this),missingFrames:Math.max(h,f),segmentDurationSeconds:s,demuxedCoverageSeconds:M(We,this),frameDurationSeconds:a}}function z_(){C(Be,this,0),C(Le,this,0),C(ze,this,0),C(We,this,0)}function W_(t){C(Be,this,M(Be,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&&(C(Le,this,M(Le,this)+n),C(ze,this,M(ze,this)+1)),!Number.isFinite(e))return;const i=Number.isFinite(n)&&n>0?e+n:e;Number.isFinite(i)&&i>M(We,this)&&C(We,this,i)}function U_(){return M(ze,this)>0?M(Le,this)/M(ze,this):M(Be,this)>0&&M(We,this)>0?M(We,this)/M(Be,this):null}function $_(t){return N(Ve,this,L_).call(this,t)}function j_(t){(null==t?void 0:t.data)instanceof Uint8Array&&(C(Ae,this,t.data.buffer),N(Ve,this,rT).call(this)),null!=t&&t.decoderConfig&&(C(Fe,this,t.decoderConfig),C(Ne,this,t.decoderConfig.codec||M(Ne,this)),N(Ve,this,rT).call(this)),this.trigger("decoder:init",t)}function q_(t){N(Ve,this,W_).call(this,t),M(ve,this).push(t),N(Ve,this,Z_).call(this)}function V_(){C(xe,this,!0),N(Ve,this,oT).call(this)}function H_(t){const e="number"==typeof(null==t?void 0:t.pts)?t.pts:void 0;if(Number.isFinite(e))return M(Ce,this)+e}function G_(t){return M(ve,this).some((e=>{const n=N(Ve,this,H_).call(this,e);return Number.isFinite(n)&&n>=t}))}function K_(t){let e=-1,n=null;for(let i=0;i<M(ve,this).length;i+=1){const r=M(ve,this)[i],o=N(Ve,this,H_).call(this,r);Number.isFinite(o)&&(null==r?void 0:r.isKey)&&o<=t&&(e=i,n=o)}return{chosenIndex:e,chosenPtsSeconds:n}}function X_(t){let e=-1,n=null;for(let i=0;i<M(ve,this).length;i+=1){const r=M(ve,this)[i],o=N(Ve,this,H_).call(this,r);if(Number.isFinite(o)&&null!=r&&r.isKey&&(e=i,n=o,o>=t))break}return{chosenIndex:e,chosenPtsSeconds:n}}function Y_(t){const e=t+M(fe,this),n=M(Oe,this);if(!Number.isFinite(n))return e;const i=Number.isFinite(M(Re,this))?M(Re,this):null;if(Number.isFinite(i))return Math.max(e,i);const{chosenPtsSeconds:r}=N(Ve,this,X_).call(this,n);return Number.isFinite(r)?Math.max(e,r):e}function Q_(t){const e=M(Oe,this);Number.isFinite(e)&&Number.isFinite(t)&&t>=e&&(C(Oe,this,null),C(Re,this,null))}function J_(){const t=M(Oe,this);if(!Number.isFinite(t)||M(Pe,this))return!0;if(!N(Ve,this,G_).call(this,t)&&!M(xe,this))return!1;const e=N(Ve,this,K_).call(this,t);let n=e;if(-1===e.chosenIndex&&(n=N(Ve,this,X_).call(this,t)),n.chosenIndex>0){const t=`[#maybeAlignToSeekKeyframe] Dropping ${n.chosenIndex} samples before keyframe @ ${n.chosenPtsSeconds}`;this.log.debug(t),M(ve,this).splice(0,n.chosenIndex)}return C(ke,this,!0),Number.isFinite(n.chosenPtsSeconds)&&C(Re,this,n.chosenPtsSeconds),C(Pe,this,!0),!0}function Z_(){const t=M(ge,this)?M(ge,this).call(this):0,e=N(Ve,this,Y_).call(this,t);if(N(Ve,this,pT).call(this,t),N(Ve,this,mT).call(this),!N(Ve,this,J_).call(this))return void N(Ve,this,eT).call(this);const n=void 0!==Hc.VideoDecoder&&void 0!==Hc.EncodedVideoChunk;for(n&&!M(Ie,this)&&M(Fe,this)&&N(Ve,this,rT).call(this);M(ve,this).length&&!N(Ve,this,vT).call(this)&&!(n&&M(Te,this)&&N(Ve,this,bT).call(this));){const t=M(ve,this)[0],i="number"==typeof(null==t?void 0:t.pts)?t.pts:0,r=M(Ce,this)+i;if(r>e)break;if(null!=t&&t.raw)M(ve,this).shift(),N(Ve,this,tT).call(this,t);else{if(n){if(!M(Ie,this)||!M(Te,this))break;if(M(ke,this)&&!t.isKey){M(ve,this).shift();continue}M(ve,this).shift();const e=Math.max(0,Math.round(r*x_));M(be,this).set(e,!!t.isKey);try{const n=new Hc.EncodedVideoChunk({type:t.isKey?"key":"delta",timestamp:e,duration:t.duration?Math.round(t.duration*x_):void 0,data:t.data instanceof Uint8Array?t.data:new Uint8Array(t.data)});M(Te,this).decode(n),t.isKey&&C(ke,this,!1);continue}catch(t){M(be,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")){C(ke,this,!0);continue}this.log.warn("[#drainDecodeQueue] decode failed, falling back to placeholder",t)}}M(ve,this).shift(),N(Ve,this,tT).call(this,t)}}N(Ve,this,oT).call(this),N(Ve,this,eT).call(this)}function tT(t){const e=M(ge,this)?M(ge,this).call(this):0,n=N(Ve,this,Y_).call(this,e),i=M(Ce,this)+("number"==typeof t.pts?t.pts:0);if(i<e||i>n)return;N(Ve,this,pT).call(this,e);const r={pts:i,duration:t.duration,data:t.data,isKey:t.isKey};M(he,this).push(r),N(Ve,this,mT).call(this),this.trigger("decoder:frame",r),N(Ve,this,Q_).call(this,i)}function eT(){if(M(ve,this).length>0&&void 0!==Hc.VideoDecoder){if(vb(M(ye,this)))return;mb(M(ye,this),50)}else N(Ve,this,nT).call(this)}function nT(){M(ye,this)&&vb(M(ye,this))&&gb(M(ye,this))}function iT(){return null!=Hc&&Hc.performance&&"function"==typeof Hc.performance.now?Hc.performance.now():Date.now()}function rT(){if(M(Ie,this))return;if(void 0===Hc.VideoDecoder)return;if(!M(Fe,this))return;if(M(Ee,this)&&N(Ve,this,iT).call(this)<M(Se,this))return;const t={...M(Fe,this)};!t.codec&&M(Ne,this)&&(t.codec=M(Ne,this)),M(Ae,this)&&!t.description&&(t.description=M(Ae,this)),M(Me,this).width&&!t.codedWidth&&(t.codedWidth=M(Me,this).width),M(Me,this).height&&!t.codedHeight&&(t.codedHeight=M(Me,this).height);try{C(Te,this,new Hc.VideoDecoder({output:t=>N(Ve,this,aT).call(this,t),error:t=>N(Ve,this,sT).call(this,t)})),M(Te,this).configure(t),C(Ie,this,!0),C(ke,this,!0),C(Ee,this,!1),C(Se,this,0),N(Ve,this,Z_).call(this)}catch(t){this.log.warn("[#maybeConfigureDecoder] configure failed, falling back to placeholder decode",t),C(Te,this,null),C(Ie,this,!1),C(Fe,this,null)}}function oT(){void 0!==Hc.VideoDecoder&&void 0!==Hc.EncodedVideoChunk&&(M(Ee,this)||!M(xe,this)||M(_e,this)||M(we,this)||M(Ie,this)&&M(Te,this)&&"function"==typeof M(Te,this).flush&&(M(ve,this).length||(C(we,this,!0),Promise.resolve().then((()=>M(Te,this).flush())).then((()=>{C(_e,this,!0),C(ke,this,!0)})).catch((t=>{"AbortError"!==(null==t?void 0:t.name)&&this.log.warn("[#maybeFlushDecoder] flush failed",t)})).finally((()=>{C(we,this,!1)})))))}function sT(t){if(this.log.warn("[#handleDecoderError] decoder error",t),this.trigger("decoder:error",{error:t}),M(Te,this)&&"function"==typeof M(Te,this).close)try{M(Te,this).close()}catch(t){}C(Te,this,null),C(Ie,this,!1),C(we,this,!1),C(_e,this,!1),C(ke,this,!0),M(be,this).clear(),C(Ee,this,!0),C(Se,this,N(Ve,this,iT).call(this)+1e3)}function aT(t){C(qe,this,M(qe,this).then((()=>{var e;if(!this._disposed)return N(Ve,this,fT).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 lT(t){return"boolean"!=typeof t||t}function cT(t){const e=Number(t);return!Number.isFinite(e)||e<0?.2:e}function uT(){return!!M($e,this)&&"function"==typeof Hc.createImageBitmap&&M(Ue,this)}function dT(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(M(Ce,this));return!!Number.isFinite(i)&&t>=i+n-M(je,this)}async function hT(t,e){try{var n;const i=N(Ve,this,dT).call(this,e),r=await Hc.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 fT(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/x_:M(ge,this)?M(ge,this).call(this):0,s="number"==typeof t.duration?t.duration/x_:void 0;let a;void 0!==r&&(a=M(be,this).get(r),M(be,this).delete(r));try{var l,c,u,d;let e=M(ge,this)?M(ge,this).call(this):0,n=N(Ve,this,Y_).call(this,e);if(o<e||o>n)return void(null===(l=(c=i).close)||void 0===l||l.call(c));if(N(Ve,this,uT).call(this)){var h,f,p,m;if(i=await N(Ve,this,hT).call(this,t,o),this._disposed)return void(null===(h=(f=i).close)||void 0===h||h.call(f));if(e=M(ge,this)?M(ge,this).call(this):0,n=N(Ve,this,Y_).call(this,e),o<e||o>n)return void(null===(p=(m=i).close)||void 0===p||p.call(m))}if(N(Ve,this,pT).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};M(he,this).push(r),N(Ve,this,mT).call(this),this.trigger("decoder:frame",r),N(Ve,this,Q_).call(this,o),this.log.debug(`[#handleDecodedFrame] [${M(Me,this).codec}] Decoded frame:`,r)}catch(t){this.log.warn(`[#handleDecodedFrame] [${M(Me,this).codec}] Failed to handle decoded frame`,t);try{var g,v;null===(g=(v=i).close)||void 0===g||g.call(v)}catch(t){}}}function pT(t){const e=N(Ve,this,Y_).call(this,t),n=[];M(he,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)})),C(he,this,n)}function mT(){const t=M(pe,this);if(!Number.isFinite(t)||t<=0)return;if(M(he,this).length<=t)return;const e=M(he,this).length-t;M(he,this).splice(0,e)}function gT(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function vT(){const t=M(pe,this);return!(!Number.isFinite(t)||t<=0)&&M(he,this).length>=t}function yT(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function bT(){var t;const e=M(me,this);if(!Number.isFinite(e)||e<=0)return!1;const n=Number(null===(t=M(Te,this))||void 0===t?void 0:t.decodeQueueSize);return!!Number.isFinite(n)&&n>=e}function kT(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}}let xT=class extends jc{get name(){return"DecoderFactory"}create(t,e){if(!t||!t.type)return new nx(e);const n=E_[t.type];return n?(this.log.debug(`[#create] [${t.type}] Creating decoder:`,n),new n(e)):new nx(e)}};class wT{#$;#j;#q;#V;constructor(t={}){this.#$=t.getActiveRenderPlacement,this.#j=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.#j?this.#j:()=>[],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 _T{#H;#G;#K;#X;#Y;#Q;constructor(t={}){this.#H=t.getNode,this.#G=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.#H?this.#H(i):void 0;if(!r)return;const o="function"==typeof this.#G?this.#G(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 TT=new Set(["video","audio","image"]);function IT(t){const e=Number(t);return Number.isFinite(e)?e:0}var ET=new WeakMap,ST=new WeakMap,NT=new WeakMap,AT=new WeakMap,MT=new WeakMap,FT=new WeakMap,CT=new WeakMap,OT=new WeakMap,PT=new WeakMap,RT=new WeakMap,DT=new WeakMap,BT=new WeakMap,LT=new WeakMap,zT=new WeakMap,WT=new WeakMap,UT=new WeakMap,$T=new WeakMap,jT=new WeakMap,qT=new WeakMap,VT=new WeakSet;class HT extends jc{constructor(...t){super(...t),O(this,VT),F(this,ET,void 0),F(this,ST,void 0),F(this,NT,void 0),F(this,AT,void 0),F(this,MT,void 0),F(this,FT,void 0),F(this,CT,void 0),F(this,OT,void 0),F(this,PT,void 0),F(this,RT,void 0),F(this,DT,void 0),F(this,BT,new Map),F(this,LT,new Map),F(this,zT,new Map),F(this,WT,new Map),F(this,UT,new Set),F(this,$T,0),F(this,jT,!1),F(this,qT,null);const[e,n,i]=t;C(ET,this,e),C(ST,this,n),C(NT,this,i||new xT),C(AT,this,new _T({getNode:t=>N(VT,this,gI).call(this,t),getPlacementState:t=>M(BT,this).get(t),getDecodeTracks:t=>N(VT,this,dI).call(this,t),getSegmentIdForTrackAtTime:(t,e,n)=>N(VT,this,tI).call(this,t,e,n),decodeLoadedMediaSegment:(t,e,n)=>{N(VT,this,DI).call(this,t,e,n)},decodeLoadedMediaSegmentsAfter:(t,e,n)=>{N(VT,this,NI).call(this,t,e,n)}})),C(MT,this,new wT({getActiveRenderPlacement:t=>{var e,n;return null===(e=M(ST,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=M(ST,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=M(AT,this))||void 0===n||null===(i=n.ensureDecodedForPlacementAtTime)||void 0===i||i.call(n,t,e)}})),N(VT,this,GT).call(this),N(VT,this,lI).call(this)}get name(){return"DecodeCoordinator"}onDispose(){var t,e;M(ST,this)&&"function"==typeof M(ST,this).off&&M(FT,this)&&M(ST,this).off(jp.PLACEMENT_ADDED,M(FT,this)),M(ST,this)&&"function"==typeof M(ST,this).off&&M(CT,this)&&M(ST,this).off(jp.TIMELINE_SEEKING,M(CT,this)),M(ST,this)&&"function"==typeof M(ST,this).off&&M(OT,this)&&M(ST,this).off(jp.TIMELINE_SEEKED,M(OT,this)),M(ST,this)&&"function"==typeof M(ST,this).off&&M(PT,this)&&M(ST,this).off(jp.TIMELINE_TIME_UPDATE,M(PT,this)),M(ST,this)&&"function"==typeof M(ST,this).off&&M(RT,this)&&M(ST,this).off(jp.TIMELINE_RESET,M(RT,this)),N(VT,this,KT).call(this),C(FT,this,null),C(CT,this,null),C(OT,this,null),C(PT,this,null),C(RT,this,null),null!==(t=M(AT,this))&&void 0!==t&&null!==(e=t.dispose)&&void 0!==e&&e.call(t),C(AT,this,null),M(MT,this)&&"function"==typeof M(MT,this).dispose&&M(MT,this).dispose(),C(MT,this,null),M(LT,this).forEach(((t,e)=>{const n=N(VT,this,gI).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),M(LT,this).clear(),M(zT,this).forEach(((t,e)=>{const n=N(VT,this,gI).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),M(zT,this).clear(),M(WT,this).clear(),M(UT,this).clear(),N(VT,this,oI).call(this),M(BT,this).forEach((({trackStates:t})=>{t&&t.forEach((t=>{N(VT,this,kI).call(this,t)}))})),M(BT,this).clear()}}function GT(){M(ST,this)&&"function"==typeof M(ST,this).on&&(C(FT,this,(t=>{N(VT,this,cI).call(this,t)})),M(ST,this).on(jp.PLACEMENT_ADDED,M(FT,this)),C(CT,this,(t=>N(VT,this,XT).call(this,t))),M(ST,this).on(jp.TIMELINE_SEEKING,M(CT,this)),C(OT,this,(()=>N(VT,this,YT).call(this))),M(ST,this).on(jp.TIMELINE_SEEKED,M(OT,this)),C(PT,this,(t=>N(VT,this,QT).call(this,t))),M(ST,this).on(jp.TIMELINE_TIME_UPDATE,M(PT,this)),C(RT,this,(()=>N(VT,this,JT).call(this))),M(ST,this).on(jp.TIMELINE_RESET,M(RT,this))),(null==Hc?void 0:Hc.document)&&"function"==typeof Hc.document.addEventListener&&(C(DT,this,(()=>{N(VT,this,sI).call(this)})),Hc.document.addEventListener("visibilitychange",M(DT,this)))}function KT(){M(DT,this)&&null!=Hc&&Hc.document&&"function"==typeof Hc.document.removeEventListener&&Hc.document.removeEventListener("visibilitychange",M(DT,this)),C(DT,this,null)}function XT(t={}){const e=Number(null==t?void 0:t.targetTime);Number.isFinite(e)&&(M(BT,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||(N(VT,this,ZT).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=M(BT,this).get(n);if(!r||!r.trackStates)return;const o=N(VT,this,gI).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||N(VT,this,ZT).call(this,n,r.placement||t,e)})),N(VT,this,SI).call(this,r.placement||t,o))})))}function YT(){M(BT,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 QT(t={}){var e,n;N(VT,this,EI).call(this,null==t?void 0:t.time),null!==(e=M(MT,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,t),N(VT,this,sI).call(this),N(VT,this,xI).call(this,null==t?void 0:t.time)}function JT(){M(LT,this).forEach(((t,e)=>{const n=N(VT,this,gI).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),M(LT,this).clear(),M(zT,this).forEach(((t,e)=>{const n=N(VT,this,gI).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),M(zT,this).clear(),M(WT,this).clear(),M(UT,this).clear(),M(BT,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()}))}))})),M(BT,this).clear()}function ZT(t,e,n){t&&(N(VT,this,kI).call(this,t),t.seekSegmentId=N(VT,this,tI).call(this,t.track,e,n))}function tI(t,e,n){if(!t||!e||!Array.isArray(t.segments))return null;const i=Hf(e);if(!Number.isFinite(i))return null;const r=IT(null==e?void 0:e.nodeOffsetOverride),o=Math.max(0,n-i+r),s=IT(null==t?void 0:t.offset),a=Math.max(0,o-s),l="function"==typeof t.getMediaSegmentAtTime?t.getMediaSegmentAtTime(a,{preferRepresentationTime:!0}):yv(t.segments,a,{preferRepresentationTime:!0});return(null==l?void 0:l.id)||null}function eI(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 nI(){const t=null==Hc?void 0:Hc.document;return!t||"string"!=typeof t.visibilityState||"visible"===t.visibilityState}function iI(){var t;const e=M(ST,this);if(!e||"number"!=typeof e.currentTime)return!1;if(e.state===Qp)return!1;const n=Date.now();if(n<M($T,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=N(VT,this,rI).call(this,i),!Number.isFinite(a))return!1;return C($T,this,n+1500),this.log.warn("[DecodeCoordinator] attempting decoder recovery seek"),e.currentTime=a,!0}function rI(t){var e;const n=M(ST,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=Hf(t);if(!Number.isFinite(e))return;(!Number.isFinite(d)||e<d)&&(d=e);const n=qf(t,M(ET,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 oI(){C(jT,this,!1),C(qT,this,null)}function sI(){M(jT,this)&&N(VT,this,nI).call(this)&&N(VT,this,iI).call(this)}function aI(t){if(!N(VT,this,eI).call(this,t))return;const e=M(ST,this);e&&"number"==typeof e.currentTime&&(C(jT,this,!0),C(qT,this,t),N(VT,this,nI).call(this)&&N(VT,this,iI).call(this))}function lI(t){var e;(Array.isArray(null===(e=M(ST,this))||void 0===e?void 0:e.placements)?[...M(ST,this).placements]:[]).filter((e=>"function"!=typeof t||t(e))).sort(((t,e)=>{const n=Hf(t),i=Hf(e);return(Number.isFinite(n)?n:Number.POSITIVE_INFINITY)-(Number.isFinite(i)?i:Number.POSITIVE_INFINITY)})).forEach((t=>{N(VT,this,cI).call(this,t)}))}async function cI(t){if(!t||!t.placementId||M(BT,this).has(t.placementId))return;const e=t.nodeId;if(!e||!M(ET,this)||"function"!=typeof M(ET,this).get)return;const n=N(VT,this,gI).call(this,e);if(n){if(n.state&&"ready"!==n.state){if("function"==typeof n.resolve)try{await n.resolve()}catch(t){return void this.log.warn(`[#processPlacement] Failed to resolve node ${e}`,t)}if("ready"!==n.state)return}if(N(VT,this,II).call(this,t))return N(VT,this,TI).call(this,t,n),void M(UT,this).add(t.placementId);N(VT,this,_I).call(this,t,n)}}function uI(t){return N(VT,this,dI).call(this,t).every((t=>N(VT,this,wI).call(this,t)))}function dI(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>TT.has(null==t?void 0:t.type)))}function hI(t){if(!t||!t.id||"function"!=typeof t.on)return;if(M(LT,this).has(t.id))return;const e=()=>{N(VT,this,AI).call(this,t.id)};t.on("node:loaded",e),M(LT,this).set(t.id,e)}function fI(t){if(!t||!t.id||"function"!=typeof t.on)return;if(M(zT,this).has(t.id))return;const e=t=>N(VT,this,MI).call(this,t);t.on("segment:chunk",e),M(zT,this).set(t.id,e)}function pI(t,e){if(!t||!e)return;const n=M(WT,this).get(t)||new Set;n.add(e),M(WT,this).set(t,n)}function mI(t){return M(WT,this).get(t)||new Set}function gI(t){if(t&&M(ET,this)&&"function"==typeof M(ET,this).get)return M(ET,this).get(t)}function vI(t){if(!t)return;const e=t.fullBufferRetryTimer;null!=e&&("function"==typeof(null==Hc?void 0:Hc.clearTimeout)?Hc.clearTimeout.bind(Hc):clearTimeout)(e),t.fullBufferRetryTimer=null,t.fullBufferDecodeScheduled=!1,t.fullBufferRetryAttempts=0}function yI(t){const e=null==t?void 0:t.segmentStates;e&&"function"==typeof e.forEach&&e.forEach((t=>{N(VT,this,vI).call(this,t)}))}function bI(t,e,n,i){var r,o;if(!(t&&e&&n&&i))return!1;const s=M(BT,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 kI(t){if(!t)return;N(VT,this,yI).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 xI(t){const e=IT(t);if(!Number.isFinite(e))return;const n=e-2;Number.isFinite(n)&&M(BT,this).forEach((t=>{const e=null==t?void 0:t.placement;if(!e)return;const i=Hf(e),r=qf(e,M(ET,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||N(VT,this,kI).call(this,t)}))}))}function wI(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 _I(t,e){if(this.log.debug(`[#startDecode] [${t.placementId}] [${e.id}] Starting decode`),N(VT,this,TI).call(this,t,e)){if(N(VT,this,pI).call(this,e.id,t.placementId),!N(VT,this,uI).call(this,e))return N(VT,this,hI).call(this,e),void N(VT,this,fI).call(this,e);N(VT,this,SI).call(this,t,e),N(VT,this,fI).call(this,e)}}function TI(t,e){if(!t||!t.placementId||!e)return;const n=M(BT,this).get(t.placementId);if(n)return n.placement=t,n;const i=N(VT,this,dI).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(jp.DECODE_ERROR,Hp({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 M(BT,this).set(t.placementId,o),o}function II(t){var e;const n=Hf(t),i=IT(null===(e=M(ST,this))||void 0===e?void 0:e.currentTime);return!Number.isFinite(n)||!!Number.isFinite(i)&&n-i>2}function EI(t){if(!M(UT,this).size)return;const e=IT(t);if(!Number.isFinite(e))return;const n=[];M(UT,this).forEach((t=>{const i=M(BT,this).get(t),r=null==i?void 0:i.placement;if(!r)return void n.push(t);const o=Hf(r);Number.isFinite(o)&&o-e<=2&&n.push(t)})),n.forEach((t=>{M(UT,this).delete(t);const e=M(BT,this).get(t),n=null==e?void 0:e.placement;if(!n)return;const i=N(VT,this,gI).call(this,n.nodeId);i&&N(VT,this,_I).call(this,n,i)}))}function SI(t,e){const n=M(BT,this).get(t.placementId);n&&N(VT,this,dI).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;N(VT,this,DI).call(this,t,i,n),r.seekSegmentId&&"video"===(null==i?void 0:i.type)&&N(VT,this,NI).call(this,t,i,n),r.ready=!0,this.trigger(jp.DECODE_READY,Vp({placementId:t.placementId,nodeId:e.id,trackId:i.id,trackType:i.type}))}catch(n){this.trigger(jp.DECODE_ERROR,Hp({placementId:t.placementId,nodeId:e.id,trackId:null==i?void 0:i.id,trackType:null==i?void 0:i.type,error:n}))}}))}function NI(t,e,n){var i;if(!(t&&e&&n&&Array.isArray(e.segments)))return;const r=null==t?void 0:t.placementId,o=r?M(BT,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(N(VT,this,DI).call(this,t,e,i),u+=1,u>=2)break}}function AI(t){const e=N(VT,this,gI).call(this,t);e&&N(VT,this,uI).call(this,e)&&N(VT,this,mI).call(this,t).forEach((t=>{const n=M(BT,this).get(t);N(VT,this,SI).call(this,(null==n?void 0:n.placement)||{placementId:t},e)}))}function MI(t){t&&t.nodeId&&t.trackId&&t.chunk&&N(VT,this,mI).call(this,t.nodeId).forEach((e=>N(VT,this,FI).call(this,e,t)))}function FI(t,e){const n=M(BT,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&&N(VT,this,DI).call(this,n.placement,s,a)&&(i.ready=!0,this.trigger(jp.DECODE_READY,Vp({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType}))));if((null===(o=M(ST,this))||void 0===o?void 0:o.state)===Qp&&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=N(VT,this,PI).call(this,n.placement,s,a);if(!u||"function"!=typeof u.decodeChunk)return;if(i.hasInit&&!c.initSent){const t=N(VT,this,RI).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;N(VT,this,CI).call(this,c,e)?d&&!c.ended&&N(VT,this,OI).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(jp.DECODE_READY,Vp({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType})))}catch(n){this.trigger(jp.DECODE_ERROR,Hp({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType,error:n}))}}function CI(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 OI(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==Hc?void 0:Hc.setTimeout)?Hc.setTimeout.bind(Hc):setTimeout;i.fullBufferDecodeScheduled=!0,i.fullBufferRetryAttempts=0;const l=()=>{if(!N(VT,this,bI).call(this,r,o,s,i)||i.ended)return void N(VT,this,vI).call(this,i);if(N(VT,this,DI).call(this,t,e,n))return void N(VT,this,vI).call(this,i);i.fullBufferRetryAttempts+=1;const c=i.fullBufferRetryAttempts<=8?0:50;i.fullBufferRetryTimer=a((()=>{l()}),c)};i.fullBufferRetryTimer=a((()=>{l()}),0)}function PI(t,e,n){var i,r;const o=null==t?void 0:t.placementId;if(!o||!e||!n)return;const s=M(BT,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=M(NT,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=M(ST,this))||void 0===t?void 0:t.currentTime)?M(ST,this).currentTime:0})),c&&"function"==typeof c.setTimeOffsetSeconds){var u,d;const i=Hf(t),r=IT(null==e?void 0:e.offset),o=IT(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=M(ST,this))||void 0===r?void 0:r.state)===Qp&&"video"===(null==e?void 0:e.type)&&c.setSeekTargetTimeSeconds(M(ST,this).currentTime),c&&"function"==typeof c.on&&(c.on(jp.DECODER_FRAME,(i=>{i&&(!M(jT,this)||"video"!==(null==e?void 0:e.type)&&"image"!==(null==e?void 0:e.type)||(C(jT,this,!1),C(qT,this,null)),M(ST,this)&&"function"==typeof M(ST,this).notifyDecodedFrame&&(i.frame||i.data)&&M(ST,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(jp.DECODER_AUDIO,(i=>{i&&i.audioBuffer&&this.trigger(jp.DECODER_AUDIO,Vp({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(jp.DECODER_ERROR,(i=>{const r=(null==i?void 0:i.error)||i;this.trigger(jp.DECODER_ERROR,Hp({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})),N(VT,this,aI).call(this,r)}))),a.segmentDecoders.set(n.id,c),c}function RI(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 DI(t,e,n){var i;if(!t||!e||!n)return!1;const r=t.placementId,o=M(BT,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=N(VT,this,PI).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 N(VT,this,vI).call(this,l),!0;if(s.hasInit&&!l.initSent){const t=N(VT,this,RI).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()),N(VT,this,vI).call(this,l),0))}const BI=1e-6;var LI=new WeakMap,zI=new WeakMap,WI=new WeakMap,UI=new WeakMap,$I=new WeakMap,jI=new WeakMap,qI=new WeakMap,VI=new WeakMap,HI=new WeakSet;class GI extends jc{get name(){return"TransitionManager"}get defaults(){return{durationSeconds:.5}}constructor(t,e,n){super(n),O(this,HI),F(this,LI,void 0),F(this,zI,void 0),F(this,WI,null),F(this,UI,null),F(this,$I,null),F(this,jI,0),F(this,qI,[]),F(this,VI,null),C(LI,this,t),C(zI,this,e),M(LI,this)&&"function"==typeof M(LI,this).on&&(C(VI,this,(()=>N(HI,this,nE).call(this))),M(LI,this).on(jp.TIMELINE_RESET,M(VI,this)))}transitionTo(t,e={}){const n=Number(t);if(!Number.isFinite(n))throw new Error("TransitionManager.transitionTo requires a numeric time");N(HI,this,nE).call(this);const i=N(HI,this,KI).call(this),r=N(HI,this,JI).call(this,n,e);return r?N(HI,this,ZI).call(this,n,e,i,r):Promise.resolve()}onDispose(){M(LI,this)&&"function"==typeof M(LI,this).off&&M(VI,this)&&M(LI,this).off(jp.TIMELINE_RESET,M(VI,this)),C(VI,this,null),N(HI,this,nE).call(this),C(zI,this,null),C(LI,this,null)}}function KI(){return C(jI,this,M(jI,this)+1),M(jI,this)}function XI(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 YI(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 QI(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 JI(t,e={}){var n;const i=M(zI,this),r=N(HI,this,XI).call(this,e);if(!i||"function"!=typeof i.startTransition)return M(LI,this).currentTime=t,null;if(!(r>0))return M(LI,this).currentTime=t,null!==(n=i.resetTransition)&&void 0!==n&&n.call(i),null;const o=N(HI,this,YI).call(this,e,r);"function"==typeof(null==e?void 0:e.onTransitionInStart)&&e.onTransitionInStart();const s=i.startTransition(o),{outDurationMs:a,inDurationMs:l}=N(HI,this,QI).call(this,r,s);return{renderer:i,transitionOptions:o,outDurationMs:a,inDurationMs:l,shouldWaitForFrames:!1!==(null==e?void 0:e.waitForVisualFrames)}}function ZI(t,e={},n,i){const{renderer:r,transitionOptions:o,outDurationMs:s,inDurationMs:a,shouldWaitForFrames:l}=i,c=N(HI,this,aE).call(this,t,e,n),u=l?N(HI,this,lE).call(this,t,n):Promise.resolve();let d=!1,h=!1,f=!1,p=!l;const m=()=>{var t;N(HI,this,iE).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),C(UI,this,setTimeout((()=>{var t;N(HI,this,iE).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),"function"==typeof(null==e?void 0:e.onTransitionOutEnd)&&e.onTransitionOutEnd(),N(HI,this,tE).call(this))}),a)))};return C(WI,this,setTimeout((()=>{d=!0,m()}),s)),c.then((()=>{h=!0,m()})).catch((()=>{var t;N(HI,this,iE).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),N(HI,this,tE).call(this))})),u.then((()=>{p=!0,m()})).catch((()=>{p=!0,m()})),M(LI,this).currentTime=t,new Promise((t=>{C($I,this,t)}))}function tE(){const t=M($I,this);C($I,this,null),N(HI,this,eE).call(this),N(HI,this,sE).call(this),t&&t()}function eE(){M(WI,this)&&clearTimeout(M(WI,this)),M(UI,this)&&clearTimeout(M(UI,this)),C(WI,this,null),C(UI,this,null)}function nE(){var t,e;M(zI,this)&&null!==(t=(e=M(zI,this)).resetTransition)&&void 0!==t&&t.call(e),N(HI,this,eE).call(this),N(HI,this,sE).call(this),M($I,this)&&(M($I,this).call(this),C($I,this,null))}function iE(t){return M(jI,this)===t}function rE(t,e){M(LI,this)&&"function"==typeof M(LI,this).on&&(M(LI,this).on(t,e),M(qI,this).push({eventName:t,handler:e}))}function oE(t,e){M(LI,this)&&"function"==typeof M(LI,this).off&&(M(LI,this).off(t,e),C(qI,this,M(qI,this).filter((n=>n.eventName!==t||n.handler!==e))))}function sE(){M(LI,this)&&"function"==typeof M(LI,this).off?(M(qI,this).forEach((t=>{M(LI,this).off(t.eventName,t.handler)})),C(qI,this,[])):C(qI,this,[])}function aE(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(!M(LI,this)||"function"!=typeof M(LI,this).on)return Promise.resolve();const r=N(HI,this,cE).call(this);return new Promise((e=>{let i=!1;const o=r?jp.TIMELINE_SEEKED:"nodestart";let s,a;const l=()=>{N(HI,this,oE).call(this,jp.TIMELINE_SEEKING,s),N(HI,this,oE).call(this,o,a),e()};s=(e={})=>{N(HI,this,iE).call(this,n)?N(HI,this,uE).call(this,e,t)&&(i=!0):l()},a=(e={})=>{N(HI,this,iE).call(this,n)?(o!==jp.TIMELINE_SEEKED||N(HI,this,uE).call(this,e,t))&&(o===jp.TIMELINE_SEEKED||i)&&l():l()},N(HI,this,rE).call(this,jp.TIMELINE_SEEKING,s),N(HI,this,rE).call(this,o,a)}))}function lE(t,e){if(!M(LI,this)||"function"!=typeof M(LI,this).on)return Promise.resolve();const n=Number(t);return new Promise((t=>{const i=(r={})=>{if(!N(HI,this,iE).call(this,e))return N(HI,this,oE).call(this,jp.VISUAL_FRAMES_AVAILABLE,i),void t();const o=Number(null==r?void 0:r.time);Number.isFinite(n)&&Number.isFinite(o)&&o+BI<n||(Array.isArray(null==r?void 0:r.frames)?r.frames:[]).length&&(N(HI,this,oE).call(this,jp.VISUAL_FRAMES_AVAILABLE,i),t())};N(HI,this,rE).call(this,jp.VISUAL_FRAMES_AVAILABLE,i)}))}function cE(){var t,e;const n=null===(t=M(LI,this))||void 0===t?void 0:t.state;if(n===Yp||n===Gp)return!0;const i=null===(e=M(LI,this))||void 0===e?void 0:e.placements;return!Array.isArray(i)||0===i.length}function uE(t,e){const n=Number(null==t?void 0:t.targetTime);return!Number.isFinite(n)||Math.abs(n-e)<BI}function dE(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}var hE=new WeakMap,fE=new WeakMap,pE=new WeakMap,mE=new WeakMap,gE=new WeakMap,vE=new WeakMap,yE=new WeakMap,bE=new WeakMap,kE=new WeakMap,xE=new WeakMap,wE=new WeakMap,_E=new WeakMap,TE=new WeakMap,IE=new WeakMap,EE=new WeakSet;class SE extends jc{get name(){return"AudioPlaybackManager"}get defaults(){return{muted:!1,volume:1,lookaheadSeconds:1}}constructor(t,e,n){super(n),O(this,EE),F(this,hE,void 0),F(this,fE,void 0),F(this,pE,null),F(this,mE,null),F(this,gE,[]),F(this,vE,new Set),F(this,yE,new Map),F(this,bE,!1),F(this,kE,1),F(this,xE,!0),F(this,wE,null),F(this,_E,null),F(this,TE,null),F(this,IE,null),C(hE,this,t),C(fE,this,e),C(bE,this,!!this.settings.muted),C(kE,this,$f(this.settings.volume));const i=Array.isArray(null==n?void 0:n.disabledTracks)?n.disabledTracks:[];C(xE,this,!i.includes("audio")),N(EE,this,NE).call(this)}get muted(){return M(bE,this)}set muted(t){C(bE,this,!!t),N(EE,this,zE).call(this)}get volume(){return M(kE,this)}set volume(t){C(kE,this,$f(t)),N(EE,this,zE).call(this)}handleDecodedAudio(t={}){if(!M(xE,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=dE(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}`;M(vE,this).has(s)||(M(gE,this).push({key:s,placementId:n,pts:r,duration:o,audioBuffer:e}),M(gE,this).sort(((t,e)=>t.pts-e.pts)),N(EE,this,OE).call(this))}onDispose(){N(EE,this,AE).call(this),N(EE,this,BE).call(this,!0),M(pE,this)&&"function"==typeof M(pE,this).close&&M(pE,this).close(),C(pE,this,null),C(mE,this,null),C(hE,this,null),C(fE,this,null)}}function NE(){M(hE,this)&&"function"==typeof M(hE,this).on&&(C(wE,this,(t=>N(EE,this,ME).call(this,t))),M(hE,this).on(jp.TIMELINE_TIME_UPDATE,M(wE,this)),C(_E,this,(t=>N(EE,this,FE).call(this,t))),M(hE,this).on(jp.TIMELINE_STATE_CHANGE,M(_E,this)),C(IE,this,(()=>N(EE,this,CE).call(this))),M(hE,this).on(jp.TIMELINE_RESET,M(IE,this))),M(fE,this)&&"function"==typeof M(fE,this).on&&(C(TE,this,(t=>this.handleDecodedAudio(t))),M(fE,this).on(jp.DECODER_AUDIO,M(TE,this)))}function AE(){M(hE,this)&&"function"==typeof M(hE,this).off&&(M(wE,this)&&M(hE,this).off(jp.TIMELINE_TIME_UPDATE,M(wE,this)),M(_E,this)&&M(hE,this).off(jp.TIMELINE_STATE_CHANGE,M(_E,this)),M(IE,this)&&M(hE,this).off(jp.TIMELINE_RESET,M(IE,this))),M(fE,this)&&"function"==typeof M(fE,this).off&&M(TE,this)&&M(fE,this).off(jp.DECODER_AUDIO,M(TE,this)),C(wE,this,null),C(_E,this,null),C(TE,this,null),C(IE,this,null)}function ME(){N(EE,this,OE).call(this)}function FE(t={}){const e=null==t?void 0:t.to;if(e)return e===Kp?(N(EE,this,WE).call(this),void N(EE,this,OE).call(this)):void(e!==Yp&&e!==Xp?e!==Qp&&e!==Jp||N(EE,this,CE).call(this):N(EE,this,UE).call(this))}function CE(){N(EE,this,UE).call(this),N(EE,this,BE).call(this,!0),C(gE,this,[])}function OE(){if(!M(xE,this)||!M(hE,this))return;if(M(hE,this).state!==Kp)return;const t=N(EE,this,LE).call(this);if(!t)return;const e=dE(M(hE,this).currentTime,0),n=e+Math.max(0,dE(this.settings.lookaheadSeconds,1)),i=[];for(let r=0;r<M(gE,this).length;r+=1){const o=M(gE,this)[r];o&&(o.pts>n?i.push(o):N(EE,this,PE).call(this,o)&&N(EE,this,DE).call(this,o,t,e))}C(gE,this,i)}function PE(t){if(!t||!M(hE,this))return!1;const e=N(EE,this,RE).call(this,t.pts);return!(!e||e!==t.placementId)}function RE(t){if(!M(hE,this)||"function"!=typeof M(hE,this).getPlacementsActiveAtTime)return null;const e=M(hE,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 DE(t,e,n){const i=t.key;if(M(vE,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(M(mE,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)}M(vE,this).add(i),M(yE,this).set(i,l),l.onended=()=>{M(yE,this).delete(i)}}function BE(t){M(yE,this).forEach(((t,e)=>{if(t&&"function"==typeof t.stop)try{t.stop()}catch(t){}M(yE,this).delete(e)})),t&&M(vE,this).clear()}function LE(){if(M(pE,this))return M(pE,this);const t=Hc.AudioContext||Hc.webkitAudioContext;if(!t)return this.log.warn("[AudioPlaybackManager] AudioContext is not available."),null;try{return C(pE,this,new t),C(mE,this,M(pE,this).createGain()),M(mE,this).connect(M(pE,this).destination),N(EE,this,zE).call(this),M(pE,this)}catch(t){return this.log.warn("[AudioPlaybackManager] Failed to initialize AudioContext",t),C(pE,this,null),C(mE,this,null),null}}function zE(){if(!M(mE,this))return;const t=M(bE,this)?0:M(kE,this);M(mE,this).gain.value=t}function WE(){M(pE,this)&&"function"==typeof M(pE,this).resume&&"suspended"===M(pE,this).state&&M(pE,this).resume().catch((()=>{}))}function UE(){M(pE,this)&&"function"==typeof M(pE,this).suspend&&"running"===M(pE,this).state&&M(pE,this).suspend().catch((()=>{}))}var $E=new WeakMap,jE=new WeakMap,qE=new WeakMap,VE=new WeakMap,HE=new WeakMap,GE=new WeakSet;class KE extends jc{constructor(...t){super(...t),O(this,GE),F(this,$E,void 0),F(this,jE,void 0),F(this,qE,void 0),F(this,VE,void 0),F(this,HE,void 0),C($E,this,N(GE,this,YE).call(this,this.settings.currentTime)),C(jE,this,N(GE,this,QE).call(this,this.settings.playbackRate)),C(qE,this,null),C(VE,this,!1),C(HE,this,N(GE,this,XE).bind(this))}get name(){return"PlaybackClock"}get defaults(){return{currentTime:0,playbackRate:Qg("playbackRate")}}get currentTime(){return M($E,this)}get playbackRate(){return M(jE,this)}set playbackRate(t){C(jE,this,N(GE,this,QE).call(this,t))}play(){M(VE,this)||(C(VE,this,!0),C(qE,this,Pg()),mb(M(HE,this),0))}pause(){M(VE,this)&&(C(VE,this,!1),gb(M(HE,this)))}seek(t){C($E,this,N(GE,this,YE).call(this,t)),C(qE,this,Pg())}reset(){this.pause(),C($E,this,0),C(qE,this,null)}onDispose(){this.pause(),C(HE,this,null)}}function XE(){const t=Pg();if(null===M(qE,this))return C(qE,this,t),void this.trigger(jp.CLOCK_TICK,{currentTime:M($E,this)});const e=t-M(qE,this);C(qE,this,t);const n=e/1e3;C($E,this,M($E,this)+n*M(jE,this)),this.trigger(jp.CLOCK_TICK,{currentTime:M($E,this)})}function YE(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<0?0:t}function QE(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<=0?M(jE,this)||1:t}var JE=new WeakMap,ZE=new WeakSet;class tS extends jc{constructor(...t){super(...t),O(this,ZE),F(this,JE,new Map)}get name(){return"TrackBuffers"}get defaults(){return{}}refreshNode(t){if(!t||!Array.isArray(t.tracks))return;const e=t.id,n=M(JE,this).get(e)||new Map;M(JE,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(jp.TRACK_BUFFER_UPDATE,{nodeId:e,trackType:i,range:r})),!s&&a?this.trigger(jp.TRACK_READY,{nodeId:e,trackType:i,range:r}):s&&!a&&this.trigger(jp.TRACK_UNDERFLOW,{nodeId:e,trackType:i,range:r})}))}getTrackRange(t,e){const n=M(JE,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=N(ZE,this,nS).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 M(JE,this)}reset(){M(JE,this).clear()}onDispose(){M(JE,this).clear(),"function"==typeof this.off&&this.off()}}function eS(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 nS(t,e,n=0){var i,r;const o=Hf(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 N(ZE,this,iS).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=N(ZE,this,eS).call(this,d,u)||(null===(r=d)||void 0===r?void 0:r.buffered);return h&&Number.isFinite(h.start)&&Number.isFinite(h.end)?N(ZE,this,iS).call(this,s,h,o,e):void 0}function iS(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 rS{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 oS extends jc{constructor(t,e){super(e),this.timeline=t}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"handleDecodedFrame","handleClockTick","handleMainTrackBufferUpdate"])}enter(){}exit(){}play(){this.timeline.transitionTo(Kp)}pause(){this.timeline.transitionTo(Yp)}wait(){this.timeline.transitionTo(Xp)}reset(){this.timeline.transitionTo(Jp)}seek(t){this.timeline.transitionTo(Qp,{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()||Yp;this.timeline.transitionTo(e)}handleMainTrackBufferUpdate(t){}handleDecodedFrame(t){}handleClockTick(t){}onDispose(){this.timeline=null}}const sS=24e3/1001;function aS(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 lS(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 cS(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 uS(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 dS(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:sS)}(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+lS(t)}function hS(t,e=(null==t?void 0:t.currentTime)){const n=aS(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=cS(o);if(!s)return!0;if(!t.hasDecodedFirstFrame(r,s))return!0}return!1}function fS(t,e=(null==t?void 0:t.currentTime)){return hS(t,e)||function(t,e=(null==t?void 0:t.currentTime)){const n=aS(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=uS(s);if(null!=a&&a.id&&!dS(t,o,a.id,a.type,n))return!0}return!1}(t,e)}function pS(t,e=(null==t?void 0:t.currentTime)){if("function"!=typeof(null==t?void 0:t.computeBuffered))return!1;const n=aS(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=lS(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=Hf(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 mS={[Gp]:class extends oS{get name(){return Gp}get defaults(){return{autoplay:Qg("autoplay")}}enter(){this.timeline.recordStableState(Yp),this.timeline.stopPlaybackClock()}play(){const t=fS(this.timeline),e=t?Xp:Kp;if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(Kp),void this.timeline.transitionTo(Xp);this.timeline.transitionTo(Kp)}pause(){}handleDecodedFrame(t){!0===this.settings.autoplay&&Array.isArray(this.timeline.placements)&&this.timeline.placements.length&&(fS(this.timeline)||(this.log.info("[handleDecodedFrame] Autoplay enabled, transitioning to Playing!"),this.emitPlayerStateEvent("play",{from:this.timeline.state,to:Kp}),this.timeline.transitionTo(Kp)))}},[Kp]:class extends oS{get name(){return Kp}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(Kp),this.timeline.startPlaybackClock(),this.emitPlayerStateEvent("canplay",{from:e,to:n}),this.emitPlayerStateEvent("playing",{from:e,to:n})}play(){}pause(){this.timeline.transitionTo(Yp)}handleClockTick(t){const e=this.timeline.currentTime;fS(this.timeline,e)&&(this.timeline.recordStableState(Kp),this.timeline.transitionTo(Xp))}},[Xp]:(tn=new WeakMap,en=new WeakMap,nn=new WeakSet,class extends oS{constructor(...t){super(...t),O(this,nn),F(this,tn,void 0),F(this,en,null)}get name(){return Xp}enter(t={}){const{from:e,to:n}=t;this.timeline.stopPlaybackClock(),N(nn,this,gS).call(this),N(nn,this,yS).call(this),this.emitPlayerStateEvent("waiting",{from:e,to:n}),N(nn,this,xS).call(this)}exit(){N(nn,this,vS).call(this),N(nn,this,bS).call(this)}play(){this.timeline.recordStableState(Kp);const t=N(nn,this,kS).call(this),e=t?Xp:Kp;this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t||this.timeline.transitionTo(Kp)}pause(){this.timeline.transitionTo(Yp)}handleMainTrackReady(t){const e=this.timeline.getLastStableState()||Yp;e!==Kp?this.timeline.transitionTo(e):N(nn,this,xS).call(this)}handleDecodedFrame(t){N(nn,this,xS).call(this)}handleMainTrackBufferUpdate(t){N(nn,this,xS).call(this)}}),[Yp]:class extends oS{get name(){return Yp}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(Yp),this.timeline.stopPlaybackClock(),this.emitPlayerStateEvent("pause",{from:e,to:n})}play(){const t=fS(this.timeline),e=t?Xp:Kp;if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(Kp),void this.timeline.transitionTo(Xp);this.timeline.transitionTo(Kp)}pause(){}},[Qp]:class extends oS{get name(){return Qp}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===Kp?Kp:Yp;this.timeline.transitionTo(i,{fromSeeking:!0})}play(){this.timeline&&"function"==typeof this.timeline.setSeekReturnState?this.timeline.setSeekReturnState(Kp):this.timeline.transitionTo(Kp)}pause(){this.timeline&&"function"==typeof this.timeline.setSeekReturnState?this.timeline.setSeekReturnState(Yp):this.timeline.transitionTo(Yp)}handleDecodedFrame(t){this.timeline&&"function"==typeof this.timeline.maybeCompleteSeek&&this.timeline.maybeCompleteSeek(t)}},[Jp]:class extends oS{get name(){return Jp}enter(){this.timeline.resetClock(),this.timeline.transitionTo(Gp,{fromReset:!0})}play(){}pause(){}get buffered(){return{start:0,end:0}}}};function gS(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;e&&"function"==typeof e.on&&(C(tn,this,(t=>this.handleMainTrackBufferUpdate(t))),e.on(jp.TRACK_BUFFER_UPDATE,M(tn,this)))}function vS(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;M(tn,this)&&e&&"function"==typeof e.off?(e.off(jp.TRACK_BUFFER_UPDATE,M(tn,this)),C(tn,this,null)):C(tn,this,null)}function yS(){if(null!==M(en,this))return;const t="function"==typeof(null==Hc?void 0:Hc.setInterval)?Hc.setInterval.bind(Hc):setInterval;C(en,this,t((()=>{var t;(null===(t=this.timeline)||void 0===t?void 0:t.state)===Xp&&N(nn,this,xS).call(this)}),200))}function bS(){null!==M(en,this)&&(("function"==typeof(null==Hc?void 0:Hc.clearInterval)?Hc.clearInterval.bind(Hc):clearInterval)(M(en,this)),C(en,this,null))}function kS(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!!hS(t,e)||!0===n.skipBufferResume||!pS(t,e)}(this.timeline,t)}function xS(t=(t=>null===(t=this.timeline)||void 0===t?void 0:t.currentTime)()){return(this.timeline.getLastStableState()||Yp)===Kp&&!N(nn,this,kS).call(this,t)&&(this.timeline.transitionTo(Kp),!0)}function wS(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function _S(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).some((t=>"video"===(null==t?void 0:t.type)))}function TS(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)))}var IS=new WeakMap,ES=new WeakMap,SS=new WeakMap,NS=new WeakMap,AS=new WeakMap,MS=new WeakMap,FS=new WeakMap,CS=new WeakMap,OS=new WeakMap,PS=new WeakMap,RS=new WeakMap,DS=new WeakMap,BS=new WeakMap,LS=new WeakSet;class zS{constructor(t={}){O(this,LS),F(this,IS,void 0),F(this,ES,void 0),F(this,SS,void 0),F(this,NS,void 0),F(this,AS,void 0),F(this,MS,void 0),F(this,FS,void 0),F(this,CS,void 0),F(this,OS,null),F(this,PS,Yp),F(this,RS,[]),F(this,DS,new Set),F(this,BS,new Map),C(IS,this,t.getState),C(ES,this,t.getNode),C(SS,this,t.getPlacementsActiveAtTime),C(NS,this,t.getLastStableState),C(AS,this,t.clearVisualFrameBuffers),C(MS,this,t.updateTime),C(FS,this,t.transitionTo),C(CS,this,t.trigger)}start(t,e){const n=Number(t);if(!Number.isFinite(n))return;let i=e;i===Qp?i=M(PS,this):i===Xp&&"function"==typeof M(NS,this)&&(i=M(NS,this).call(this)),C(PS,this,i===Kp?Kp:Yp),C(OS,this,n),M(DS,this).clear(),M(BS,this).clear(),C(RS,this,"function"==typeof M(SS,this)?M(SS,this).call(this,n):[]),"function"==typeof M(AS,this)&&M(AS,this).call(this),"function"==typeof M(MS,this)&&M(MS,this).call(this,n,{source:"seek"}),"function"==typeof M(CS,this)&&M(CS,this).call(this,jp.TIMELINE_SEEKING,{targetTime:n,placements:M(RS,this).slice()}),this.maybeComplete()}setReturnState(t){C(PS,this,t===Kp?Kp:Yp)}maybeComplete(t){if(("function"==typeof M(IS,this)?M(IS,this).call(this):void 0)!==Qp)return;const e=M(OS,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){M(DS,this).add(i);const t=M(BS,this).get(i);(!Number.isFinite(t)||n<t)&&M(BS,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)&&M(DS,this).add(i);const r=Array.isArray(M(RS,this))?M(RS,this):[];if(r.length){if("function"==typeof M(ES,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=M(ES,this).call(this,e.nodeId);if(!wS(i))return;if(TS(i)&&!M(DS,this).has(n))return}N(LS,this,WS).call(this,e,r)}}else N(LS,this,WS).call(this,e,[])}dispose(){C(RS,this,[]),M(DS,this).clear(),M(BS,this).clear(),C(OS,this,null)}}function WS(t,e){const n=N(LS,this,US).call(this,t,e);"function"==typeof M(MS,this)&&M(MS,this).call(this,n,{source:"seek"}),C(OS,this,null),C(RS,this,[]),M(DS,this).clear(),M(BS,this).clear(),"function"==typeof M(CS,this)&&M(CS,this).call(this,jp.TIMELINE_SEEKED,{targetTime:t,placements:Array.isArray(e)?e.slice():[]}),"function"==typeof M(FS,this)&&M(FS,this).call(this,M(PS,this),{fromSeeking:!0})}function US(t,e){const n=Number(t);if(!Number.isFinite(n))return t;if(!Array.isArray(e)||!e.length||"function"!=typeof M(ES,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(!_S(M(ES,this).call(this,n.nodeId)))continue;const o=M(BS,this).get(r);Number.isFinite(o)&&o>i&&(i=o)}return i}function $S(t){if(t&&"function"==typeof t.close)try{t.close()}catch(t){}}function jS(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=>$S(null==t?void 0:t.frame)))}function qS(t){return Hf(t)}function VS(t){return Number.isFinite(null==t?void 0:t.loopRootOffset)?t.loopRootOffset:qS(t)}function HS(t,e){return"string"==typeof(null==t?void 0:t.loopRootPlacementId)&&t.loopRootPlacementId?t.loopRootPlacementId:e}function GS(t){if("string"!=typeof t)return Number.NaN;const e=t.match(/(\d+)/);return e?Number(e[1]):Number.NaN}function KS(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 XS=1e-6;function YS(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function QS(t){const e=Number(t);return Number.isFinite(e)?e:0}function JS(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 ZS(t){return t&&"cue"===t.type&&Array.isArray(t.cues)?t.cues:[]}var tN=new WeakMap,eN=new WeakMap,nN=new WeakMap,iN=new WeakMap,rN=new WeakMap,oN=new WeakMap,sN=new WeakMap,aN=new WeakMap,lN=new WeakSet;class cN{constructor(t={}){O(this,lN),F(this,tN,void 0),F(this,eN,void 0),F(this,nN,void 0),F(this,iN,void 0),F(this,rN,void 0),F(this,oN,void 0),F(this,sN,-1e-6),F(this,aN,null),C(tN,this,t.getPlacements),C(eN,this,t.getPlacementsActiveAtTime),C(nN,this,t.getPlacementDuration),C(iN,this,t.getNode),C(rN,this,t.triggerTimeline),C(oN,this,t.triggerNode)}handleSeeking(t,e){const n=QS(t);C(aN,this,n)}handleSeeked(t){const e=QS(t),n=M(aN,this);C(aN,this,null),Number.isFinite(n)?(N(lN,this,dN).call(this,n,e),C(sN,this,e)):C(sN,this,e)}handleTimeUpdate(t,e={}){const n=QS(t),i=M(sN,this);!0===(null==e?void 0:e.isSeeking)?C(sN,this,n):Number.isFinite(i)?n<=i?n<i&&C(sN,this,n-XS):(N(lN,this,uN).call(this,i,n),C(sN,this,n)):C(sN,this,n)}dispose(){C(aN,this,null),C(sN,this,-1e-6)}}function uN(t,e){const n="function"==typeof M(tN,this)?M(tN,this).call(this):[];N(lN,this,hN).call(this,n,t,e,{onlySticky:!1})}function dN(t,e){if("function"!=typeof M(eN,this))return;const n=M(eN,this).call(this,e);N(lN,this,hN).call(this,n,t,e,{onlySticky:!0})}function hN(t,e,n,i={}){if("function"!=typeof M(iN,this)||"function"!=typeof M(rN,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=M(iN,this).call(this,l);if(!YS(c))continue;const u=JS(c);if(!u.length)continue;const d=Hf(s);if(!Number.isFinite(d))continue;const h=Number.isFinite(null==s?void 0:s.nodeOffsetOverride)?s.nodeOffsetOverride:0,f="function"==typeof M(nN,this)?M(nN,this).call(this,s):void 0,p="number"==typeof f&&Number.isFinite(f)?d+f:Number.POSITIVE_INFINITY,m=r?d-XS:e;for(let t=0;t<u.length;t+=1){const e=ZS(u[t]);for(let i=0;i<e.length;i+=1){const s=e[i],c=QS(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};M(rN,this).call(this,"cuepoint",n),M(rN,this).call(this,e.name,n),"function"==typeof M(oN,this)&&(M(oN,this).call(this,t.nodeId,"cuepoint",n),M(oN,this).call(this,t.nodeId,e.name,n))})))}class fN{#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 pN=24e3/1001;function mN(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}:KS(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 gN=new WeakMap,vN=new WeakMap,yN=new WeakMap,bN=new WeakMap,kN=new WeakMap,xN=new WeakMap,wN=new WeakMap,_N=new WeakMap,TN=new WeakMap,IN=new WeakMap,EN=new WeakMap,SN=new WeakMap,NN=new WeakMap,AN=new WeakMap,MN=new WeakMap,FN=new WeakMap,CN=new WeakMap,ON=new WeakMap,PN=new WeakMap,RN=new WeakMap,DN=new WeakMap,BN=new WeakMap,LN=new WeakMap,zN=new WeakMap,WN=new WeakMap,UN=new WeakMap,$N=new WeakMap,jN=new WeakMap,qN=new WeakMap,VN=new WeakMap,HN=new WeakMap,GN=new WeakSet;class KN extends jc{constructor(...t){super(...t),O(this,GN),F(this,gN,void 0),F(this,vN,void 0),F(this,yN,void 0),F(this,bN,void 0),F(this,kN,void 0),F(this,xN,[]),F(this,wN,new fN("placement-")),F(this,_N,[]),F(this,TN,new fN("renderplacement-")),F(this,IN,void 0),F(this,EN,void 0),F(this,SN,void 0),F(this,NN,new Set),F(this,AN,new Set),F(this,MN,new Map),F(this,FN,[]),F(this,CN,0),F(this,ON,new Set),F(this,PN,new Set),F(this,RN,Number.NEGATIVE_INFINITY),F(this,DN,[]),F(this,BN,Number.NEGATIVE_INFINITY),F(this,LN,0),F(this,zN,void 0),F(this,WN,void 0),F(this,UN,new Map),F(this,$N,null),F(this,jN,void 0),F(this,qN,void 0),F(this,VN,void 0),F(this,HN,void 0);const[e,n={}]=t;C(gN,this,e),C(zN,this,n),C(kN,this,new KE(n)),C(IN,this,new tS(n)),C(bN,this,Yp),N(GN,this,oA).call(this),N(GN,this,sA).call(this),C(jN,this,new zS({getState:()=>this.state,getNode:t=>M(gN,this)&&"function"==typeof M(gN,this).get?M(gN,this).get(t):void 0,getPlacementsActiveAtTime:t=>N(GN,this,zA).call(this,t,{endEpsilonSeconds:N(GN,this,KA).call(this)}),getLastStableState:()=>this.getLastStableState(),clearVisualFrameBuffers:()=>N(GN,this,BA).call(this),updateTime:(t,e)=>this.updateTime(t,e),transitionTo:(t,e)=>this.transitionTo(t,e),trigger:(t,e)=>this.trigger(t,e)})),C(qN,this,new cN({getPlacements:()=>M(xN,this).slice(),getPlacementsActiveAtTime:t=>N(GN,this,zA).call(this,t),getPlacementDuration:t=>N(GN,this,kA).call(this,t),getNode:t=>M(gN,this)&&"function"==typeof M(gN,this).get?M(gN,this).get(t):void 0,triggerTimeline:(t,e)=>this.trigger(t,e),triggerNode:(t,e,n)=>{const i=M(gN,this)&&"function"==typeof M(gN,this).get?M(gN,this).get(t):void 0;i&&"function"==typeof i.trigger&&i.trigger(e,n)}})),C(VN,this,(()=>{var t,e;null===(t=M(qN,this))||void 0===t||null===(e=t.handleSeeked)||void 0===e||e.call(t,this.currentTime)})),this.on(jp.TIMELINE_SEEKED,M(VN,this)),C(HN,this,(t=>N(GN,this,fA).call(this,t))),this.on("nodestart",M(HN,this)),this.transitionTo(Gp)}get name(){return"Timeline"}get defaults(){return{snapToFps:pN,maxBufferedVideoFrames:24}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"computeBuffered","notifyDecodedFrame","getDecodedFrameStats","getActiveRenderPlacement","maybeCompleteSeek","getPlacementsActiveAtTime","hasDecodedFirstFrame","getDecodedVisualBuffer","getPlacementDuration","getNode"])}transitionTo(t,e={}){const n=M(yN,this),i=function(t,e,n={}){const i=mS[t];return i?new i(e,n):null}(t,this,M(zN,this)),r=e&&"object"==typeof e&&!Array.isArray(e)?{...e,from:n,to:t}:{from:n,to:t};i?(M(vN,this)&&"function"==typeof M(vN,this).exit&&M(vN,this).exit(),C(vN,this,i),C(yN,this,t),"function"==typeof i.enter&&i.enter(r),this.trigger(jp.TIMELINE_STATE_CHANGE,{from:n,to:t,options:e})):this.log.warn(`Unknown state "${t}"`)}recordStableState(t){C(bN,this,t)}getLastStableState(){return M(bN,this)}get state(){return M(yN,this)}get paused(){return M(yN,this)===Gp||M(yN,this)===Yp}get currentTime(){return M(kN,this).currentTime}set currentTime(t){M(vN,this).seek(t)}get playbackRate(){return M(kN,this).playbackRate}set playbackRate(t){M(kN,this).playbackRate=t}play(){M(vN,this).play()}pause(){M(vN,this).pause()}reset(){M(vN,this).reset()}seekToPlacement(t){if(!t)throw new Error("Timeline.seekToPlacement requires placement id");N(GN,this,gA).call(this);const e=N(GN,this,qA).call(this,t);if(!e)throw new Error("Timeline.seekToPlacement requires placement id");const n=Hf(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;N(GN,this,gA).call(this),N(GN,this,vA).call(this),M(kN,this).seek(t),N(GN,this,LA).call(this,this.currentTime),N(GN,this,WA).call(this);const r="string"==typeof(null==e?void 0:e.source)?e.source:"set";null!==(n=M(qN,this))&&void 0!==n&&null!==(i=n.handleTimeUpdate)&&void 0!==i&&i.call(n,this.currentTime,{isSeeking:this.state===Qp}),N(GN,this,pA).call(this,this.currentTime),N(GN,this,CA).call(this,this.currentTime),this.trigger(jp.TIMELINE_TIME_UPDATE,qp(this.currentTime,r))}startSeeking(t,e){var n,i;null!==(n=M(qN,this))&&void 0!==n&&null!==(i=n.handleSeeking)&&void 0!==i&&i.call(n,this.currentTime,t),M(jN,this)&&"function"==typeof M(jN,this).start&&M(jN,this).start(t,e)}setSeekReturnState(t){M(jN,this)&&"function"==typeof M(jN,this).setReturnState&&M(jN,this).setReturnState(t)}maybeCompleteSeek(t){M(jN,this)&&"function"==typeof M(jN,this).maybeComplete&&M(jN,this).maybeComplete(t)}startPlaybackClock(){M(kN,this).play()}stopPlaybackClock(){M(kN,this).pause()}resetClock(){var t,e;M(kN,this).reset(),null===(t=M(qN,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:[];N(GN,this,XN).call(this),N(GN,this,YN).call(this,e),N(GN,this,QN).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=M(wN,this).claim(n.placementId),o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=Jf(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}:Qf(e,n);let u,d,h,f=!1;const p=null!==a;if(N(GN,this,gA).call(this),a){const t=M(xN,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=Hf(t);if("start"===a.anchor)Number.isFinite(e)?u=N(GN,this,xA).call(this,e,{nodeOffsetOverride:o}):f=!0;else{const n=N(GN,this,kA).call(this,t);if(Number.isFinite(e)&&n>0){const t=e+n,i=N(GN,this,xA).call(this,t,{nodeOffsetOverride:o});u=Math.max(i,t)}else f=!0}}else if(l){const t=n.offsetAnchorPlacementId?M(xN,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):M(xN,this).length?M(xN,this)[M(xN,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=Hf(t),n=N(GN,this,kA).call(this,t);Number.isFinite(e)&&n>0?u=N(GN,this,xA).call(this,e+n-c,{nodeOffsetOverride:o}):(f=!0,h="end")}else u=N(GN,this,xA).call(this,-c,{nodeOffsetOverride:o})}else u=Yf(e),u=N(GN,this,xA).call(this,u,{...n,nodeOffsetOverride:o});const m=!0===n.loop?n.loopRootPlacementId||r:void 0,g=!0===n.loop&&Number.isFinite(n.loopRootOffset)?n.loopRootOffset:!0===n.loop?u:void 0,v=l?c:a&&"end"===a.anchor?0:void 0,y=new rS({placementId:r,nodeId:i,offset:u,offsetPending:f,offsetAnchorPlacementId:f?d:void 0,offsetAnchorEdge:f?h:void 0,offsetAnchorIsReference:f?p:void 0,offsetEndSeconds:v,nodeOffsetOverride:o,nodeDurationOverride:s,loop:!0===n.loop,loopRootPlacementId:m,loopRootOffset:g});if(M(xN,this).push(y),Kf(M(xN,this)),N(GN,this,MA).call(this,y),N(GN,this,NA).call(this),f&&d){const t=M(xN,this).find((t=>(null==t?void 0:t.placementId)===d));N(GN,this,_A).call(this,null==t?void 0:t.nodeId)}return this.trigger(jp.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=N(GN,this,wA).call(this,e,i),s=o.offset,a=!0===o.offsetPending,l=o.offsetAnchorPlacementId,c=o.offsetAnchorEdge,u=o.offsetAnchorIsReference,d=M(TN,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,g={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;Zf(M(_N,this),t,e,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements")}if(M(_N,this).push(g),Kf(M(_N,this)),a&&l){const t=M(xN,this).find((t=>(null==t?void 0:t.placementId)===l));N(GN,this,_A).call(this,null==t?void 0:t.nodeId)}return this.trigger(jp.RENDER_PLACEMENT_ADDED,g),d}get placements(){return M(xN,this).slice()}getPlacementsActiveAtTime(t){return N(GN,this,zA).call(this,t)}getNodesAtTime(t){const e=N(GN,this,VA).call(this,t);if(!Number.isFinite(e))return[];const n=N(GN,this,zA).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 N(GN,this,kA).call(this,t)}getNode(t){if(M(gN,this)&&"function"==typeof M(gN,this).get)return M(gN,this).get(t)}get renderPlacements(){return M(_N,this).slice()}get placementsAhead(){const t=this.currentTime;return M(xN,this).filter((e=>{const n=Hf(e);if(!Number.isFinite(n))return!1;const i=N(GN,this,kA).call(this,e);return"number"==typeof i?n+i>t:n>=t}))}get buffered(){return M(vN,this)?M(vN,this).buffered:{start:0,end:0}}get trackBuffers(){return M(IN,this)}onDispose(){N(GN,this,iA).call(this),M(AN,this)&&M(AN,this).clear(),M(qN,this)&&"function"==typeof M(qN,this).dispose&&M(qN,this).dispose(),C(qN,this,null),N(GN,this,nA).call(this),N(GN,this,rA).call(this),M(jN,this)&&"function"==typeof M(jN,this).dispose&&M(jN,this).dispose(),C(jN,this,null),M(kN,this)&&"function"==typeof M(kN,this).dispose&&(M(WN,this)&&"function"==typeof M(kN,this).off&&(M(kN,this).off("tick",M(WN,this)),C(WN,this,null)),M(kN,this).dispose(),C(kN,this,null)),N(GN,this,EA).call(this),C(vN,this,null),C(yN,this,null),C(xN,this,[]),C(_N,this,[]),N(GN,this,SA).call(this),N(GN,this,NA).call(this),M(UN,this).clear(),C($N,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}`;M(NN,this).add(i),N(GN,this,DA).call(this,t),N(GN,this,WA).call(this),M(vN,this)&&"function"==typeof M(vN,this).handleDecodedFrame&&M(vN,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=mN(t);Number.isFinite(i)&&i>0&&(e.totalBytes+=i)}))}return e.available=!0,e}(M(UN,this))}hasDecodedFirstFrame(t,e){return!(!t||!e)&&M(NN,this).has(`${t}:${e}`)}getDecodedVisualBuffer(t,e){if(t&&e)return M(UN,this).get(`${t}:${e}`)}computeBuffered(t){const e=M(gN,this);if(e&&"function"==typeof e.get)return M(IN,this).computeBuffered(M(xN,this),t,e)}getActiveRenderPlacement(t=this.currentTime){const e=Number.isFinite(t)?t:this.currentTime,n=Array.isArray(M(_N,this))?M(_N,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 XN(){this.trigger(jp.TIMELINE_RESET,{reason:"switch"}),N(GN,this,BA).call(this),M(IN,this)&&"function"==typeof M(IN,this).reset&&M(IN,this).reset(),M(AN,this)&&M(AN,this).clear(),C(xN,this,[]),C(_N,this,[]),N(GN,this,SA).call(this),N(GN,this,NA).call(this),M(wN,this).reset(),M(TN,this).reset()}function YN(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.nodeId)continue;const i=N(GN,this,JN).call(this,n),r=N(GN,this,tA).call(this,n);this.placeOnTimeline(n.nodeId,r,i)}}function QN(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.type)continue;const i=N(GN,this,ZN).call(this,n),r=N(GN,this,eA).call(this,n);this.placeRenderNodeOnTimeline(n.type,r,n.duration,i)}}function JN(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 ZN(t){const e={};return t.renderPlacementId&&(e.renderPlacementId=t.renderPlacementId),t.params&&"object"==typeof t.params&&(e.params=t.params),e}function tA(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 eA(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 nA(){M(vN,this)&&"function"==typeof M(vN,this).exit&&M(vN,this).exit()}function iA(){M(VN,this)&&"function"==typeof this.off&&(this.off(jp.TIMELINE_SEEKED,M(VN,this)),C(VN,this,null)),M(HN,this)&&"function"==typeof this.off&&(this.off("nodestart",M(HN,this)),C(HN,this,null))}function rA(){M(IN,this)&&(M(EN,this)&&(M(IN,this).off("track:underflow",M(EN,this)),C(EN,this,null)),M(SN,this)&&(M(IN,this).off("track:ready",M(SN,this)),C(SN,this,null)),"function"==typeof M(IN,this).dispose&&M(IN,this).dispose(),C(IN,this,null))}function oA(){M(IN,this)&&"function"==typeof M(IN,this).on&&(C(EN,this,(t=>N(GN,this,lA).call(this,t))),C(SN,this,(t=>N(GN,this,cA).call(this,t))),M(IN,this).on(jp.TRACK_UNDERFLOW,M(EN,this)),M(IN,this).on(jp.TRACK_READY,M(SN,this)))}function sA(){M(kN,this)&&"function"==typeof M(kN,this).on&&(C(WN,this,(t=>N(GN,this,aA).call(this,t))),M(kN,this).on(jp.CLOCK_TICK,M(WN,this)))}function aA(t){var e,n;N(GN,this,gA).call(this),N(GN,this,WA).call(this),null!==(e=M(qN,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,this.currentTime,{isSeeking:!1}),N(GN,this,pA).call(this,this.currentTime),this.trigger(jp.TIMELINE_TIME_UPDATE,qp(this.currentTime,"clock")),M(vN,this)&&"function"==typeof M(vN,this).handleClockTick&&M(vN,this).handleClockTick(t)}function lA(t){N(GN,this,gA).call(this);const e=N(GN,this,uA).call(this);e&&(null==t?void 0:t.trackType)===e.trackType&&(M(vN,this)&&"function"==typeof M(vN,this).handleMainTrackUnderflow?M(vN,this).handleMainTrackUnderflow(t):this.transitionTo(Xp))}function cA(t){if(N(GN,this,gA).call(this),this.state!==Xp)return;const e=N(GN,this,uA).call(this);if(!e)return;if((null==t?void 0:t.trackType)!==e.trackType)return;if(M(vN,this)&&"function"==typeof M(vN,this).handleMainTrackReady)return void M(vN,this).handleMainTrackReady(t);const n=this.getLastStableState()||Yp;this.transitionTo(n)}function uA(t=this.currentTime){const e=N(GN,this,hA).call(this,t);if(!e)return;const n=M(gN,this)&&"function"==typeof M(gN,this).get?M(gN,this).get(e.nodeId):void 0;if(!n)return;const i=N(GN,this,dA).call(this,n);return i?{placement:e,trackType:i}:void 0}function dA(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 hA(t=this.currentTime){const e=M(xN,this)||[];let n;for(let i=0;i<e.length;i+=1){const r=e[i],o=Hf(r);if(!Number.isFinite(o))continue;const s=N(GN,this,kA).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 fA(t={}){if(this.state!==Kp)return;const e=null==t?void 0:t.placementId;if(!e)return;const n=N(GN,this,qA).call(this,e);n&&N(GN,this,mA).call(this,n)}function pA(t=this.currentTime){if(this.state!==Kp)return;const e=N(GN,this,zA).call(this,t);Array.isArray(e)&&e.length&&e.forEach((t=>N(GN,this,mA).call(this,t)))}function mA(t){const e=null==t?void 0:t.placementId;if(!e)return;if(M(AN,this).has(e))return;if(!t||!0!==t.loop)return;if(!t.nodeId)return;const n=N(GN,this,kA).call(this,t);if(!Number.isFinite(n)||n<=0)return;const i=Hf(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;M(AN,this).add(e),this.placeOnTimeline(t.nodeId,r,{nodeOffsetOverride:t.nodeOffsetOverride,nodeDurationOverride:t.nodeDurationOverride,loop:!0,loopRootPlacementId:o,loopRootOffset:s})}function gA(){const t=Xf(M(xN,this),{getPlacementDuration:t=>N(GN,this,kA).call(this,t),snapPlacementOffset:(t,e)=>N(GN,this,xA).call(this,t,{nodeOffsetOverride:null==e?void 0:e.nodeOffsetOverride}),onResolvedPlacement:(t,e)=>{!0!==t.loop||Number.isFinite(t.loopRootOffset)||(t.loopRootOffset=t.offset),N(GN,this,TA).call(this,null==e?void 0:e.nodeId)}});return t.updated&&(N(GN,this,NA).call(this),t.resolvedPlacements.forEach((t=>{N(GN,this,MA).call(this,t),this.trigger(jp.PLACEMENT_ADDED,t)}))),t.updated}function vA(){if(!M(_N,this).length||!M(xN,this).length)return!1;const t=new Map;M(xN,this).forEach((e=>{(null==e?void 0:e.placementId)&&t.set(e.placementId,e)}));const e=M(_N,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];N(GN,this,yA).call(this,o,t)&&(n=!0,i.push(o))}return n&&(Kf(M(_N,this)),i.forEach((t=>{this.trigger(jp.RENDER_PLACEMENT_ADDED,t)}))),n}function yA(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=N(GN,this,bA).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 Zf(M(_N,this).filter((e=>e!==t&&!0!==(null==e?void 0:e.offsetPending))),s,a,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements"),N(GN,this,TA).call(this,null==r?void 0:r.nodeId),!0}function bA(t,e){const n=Hf(t);if(!Number.isFinite(n))return;if("start"===e.offsetAnchorEdge)return N(GN,this,xA).call(this,n);const i=N(GN,this,kA).call(this,t);if(!(i>0))return;const r=n+i;if(!Number.isFinite(r))return;const o=N(GN,this,xA).call(this,r);return!0===e.offsetAnchorIsReference?Math.max(o,r):o}function kA(t){return qf(t,M(gN,this))}function xA(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 wA(t,e={}){const n=Jf(t);if("string"==typeof t&&t.includes("@")&&!n)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");if(!n){const n=Yf(t);return{offset:N(GN,this,xA).call(this,n,e)}}const i=M(xN,this).find((t=>(null==t?void 0:t.placementId)===n.placementId));if(!i)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");const r=Hf(i);if("start"===n.anchor)return Number.isFinite(r)?{offset:N(GN,this,xA).call(this,r,e)}:{offset:void 0,offsetPending:!0,offsetAnchorPlacementId:i.placementId,offsetAnchorEdge:"start",offsetAnchorIsReference:!0};const o=N(GN,this,kA).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=N(GN,this,xA).call(this,s,e);return{offset:Math.max(a,s)}}function _A(t){if(!t||!M(gN,this)||"function"!=typeof M(gN,this).get)return;if(M(MN,this).has(t))return;let e;try{e=M(gN,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),N(GN,this,TA).call(this,t)};e.on(jp.NODE_LOADED,n),M(MN,this).set(t,n)}function TA(t){if(!t)return;if(N(GN,this,IA).call(this,t))return;const e=M(MN,this).get(t);if(!e)return;let n;try{n=M(gN,this).get(t)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(jp.NODE_LOADED,e),M(MN,this).delete(t)}function IA(t){if(!t)return!1;const e=new Map;M(xN,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!!M(xN,this).some((t=>n(t)))||!!M(_N,this).some((t=>n(t)))}function EA(){M(MN,this).size&&M(gN,this)?(M(MN,this).forEach(((t,e)=>{let n;try{n=M(gN,this).get(e)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(jp.NODE_LOADED,t)})),M(MN,this).clear()):M(MN,this).clear()}function SA(){C(FN,this,[]),C(CN,this,0),M(ON,this).clear(),M(PN,this).clear(),C(RN,this,Number.NEGATIVE_INFINITY)}function NA(){C(DN,this,[]),C(LN,this,0),C(BN,this,Number.NEGATIVE_INFINITY)}function AA(t,e){const n=M(FN,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<M(CN,this)&&C(CN,this,M(CN,this)+1)}function MA(t){const e=null==t?void 0:t.placementId;if(!e||M(ON,this).has(e))return;const n=Hf(t),i=N(GN,this,kA).call(this,t);if(!Number.isFinite(n)||!Number.isFinite(i)||i<0)return void M(PN,this).add(e);const r=n+i;Number.isFinite(r)&&(M(ON,this).add(e),M(PN,this).delete(e),N(GN,this,AA).call(this,e,r))}function FA(){M(PN,this).size&&Array.from(M(PN,this)).forEach((t=>{const e=N(GN,this,qA).call(this,t);e?N(GN,this,MA).call(this,e):M(PN,this).delete(t)}))}function CA(t){const e=Number(t);if(!Number.isFinite(e))return;if(e<M(RN,this))return void C(RN,this,e);if(C(RN,this,e),N(GN,this,FA).call(this),!M(FN,this).length)return;const n=new Set;let i=M(CN,this);for(;i<M(FN,this).length;){const t=M(FN,this)[i];if(!t||!Number.isFinite(t.endTime)||t.endTime>e)break;t.placementId&&n.add(t.placementId),i+=1}i!==M(CN,this)&&(C(CN,this,i),n.size&&(N(GN,this,RA).call(this,n),N(GN,this,OA).call(this,n)))}function OA(t){if(t&&t.size)for(const e of M(NN,this)){const n=e.split(":")[0];t.has(n)&&M(NN,this).delete(e)}}function PA(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 RA(t){if(t&&t.size)for(const[e,n]of M(UN,this).entries())t.has(null==n?void 0:n.placementId)&&(N(GN,this,PA).call(this,n),M(UN,this).delete(e))}function DA(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=KS(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=M(UN,this).get(f),m=p||{placementId:n,nodeId:i,trackId:r,trackType:s,frames:[],current:void 0},g={placementId:n,nodeId:i,trackId:r,segmentId:o,frame:a,width:c,height:u,presentationTime:d,duration:h},v=m.frames,y=v.length?v[v.length-1]:void 0;if(!y||y.presentationTime<=g.presentationTime)v.push(g);else{let t=v.findIndex((t=>t.presentationTime>g.presentationTime));-1===t&&(t=v.length),v.splice(t,0,g)}const b=Number(null===(e=this.settings)||void 0===e?void 0:e.maxBufferedVideoFrames);if("video"===s&&Number.isFinite(b)&&b>0&&v.length>b){const t=v.length-b;for(let e=0;e<t;e+=1){const t=v.pop(),e=null==t?void 0:t.frame;if(e&&"function"==typeof e.close)try{e.close()}catch(t){}}}p||M(UN,this).set(f,m)}function BA(){for(const t of M(UN,this).values())N(GN,this,PA).call(this,t);M(UN,this).clear(),C($N,this,null),M(NN,this).clear()}function LA(t){const e=Number.isFinite(t)?t:this.currentTime;if(!Number.isFinite(e))return;e<M(BN,this)&&(C(DN,this,[]),C(LN,this,0));const n=Array.isArray(M(xN,this))?M(xN,this):[],i=[],r=new Set;M(DN,this).forEach((t=>{N(GN,this,XA).call(this,t,e)&&(i.push(t),(null==t?void 0:t.placementId)&&r.add(t.placementId))}));let o=M(LN,this);for(;o<n.length;){const t=n[o],s=Hf(t);if(!Number.isFinite(s))break;if(s>e)break;if(N(GN,this,XA).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}C(DN,this,i),C(LN,this,o),C(BN,this,e)}function zA(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===M(BN,this)?M(DN,this).slice():(Array.isArray(M(xN,this))?M(xN,this):[]).filter((t=>N(GN,this,XA).call(this,t,n,i)))}function WA(){const t=this.currentTime,e=N(GN,this,$A).call(this,t);if(!e.length)return void C($N,this,null);const n=this.getActiveRenderPlacement(t),i=N(GN,this,jA).call(this,e,n);(i!==M($N,this)||N(GN,this,UA).call(this,t,n))&&(C($N,this,i),this.trigger(jp.VISUAL_FRAMES_AVAILABLE,{time:t,frames:e}))}function UA(t,e){const n=e||this.getActiveRenderPlacement(t);if(!n)return!1;if(!mp.doesRenderNodeTypeRequireFrameCadence(null==n?void 0:n.type))return!1;const i=n.duration;return"number"==typeof i&&i>0}function $A(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){jS(c),a.push(t);continue}if("function"==typeof r&&!r(u,n)){const e=qS(u),i="function"==typeof o?o(u):void 0;Number.isFinite(i)&&Number.isFinite(e)&&n>=e+i&&(jS(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&&$S(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:qS(u),placementSortOffset:VS(u),placementSortId:HS(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=GS(r),a=GS(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:M(UN,this),time:t,getPlacementById:t=>N(GN,this,qA).call(this,t),isPlacementActiveAtTime:(t,e)=>N(GN,this,XA).call(this,t,e),getPlacementDuration:t=>N(GN,this,kA).call(this,t)})}function jA(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 qA(t){if(t)return(M(xN,this)||[]).find((e=>(null==e?void 0:e.placementId)===t))}function VA(t){if("end"===t){const t=N(GN,this,HA).call(this);if(!Number.isFinite(t))return;const e=N(GN,this,GA).call(this);return Math.max(0,t-Math.min(t,e))}const e=Number(t);return Number.isFinite(e)?e:0}function HA(){let t;return(Array.isArray(M(xN,this))?M(xN,this):[]).forEach((e=>{const n=Hf(e);if(!Number.isFinite(n))return;const i=N(GN,this,kA).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}function GA(){const t=N(GN,this,KA).call(this);return t>0?t:.001}function KA(){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 XA(t,e,n=0){if(!Gf(t,e,M(gN,this)))return!1;const i=Number(n);if(!Number.isFinite(i)||i<=0)return!0;const r=N(GN,this,kA).call(this,t);if(!Number.isFinite(r))return!0;const o=Hf(t);return!Number.isFinite(o)||e<o+r-i}var YA=new WeakMap,QA=new WeakMap,JA=new WeakMap,ZA=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 WeakMap,cM=new WeakMap,uM=new WeakMap,dM=new WeakMap,hM=new WeakMap,fM=new WeakSet;class pM extends jc{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),O(this,fM),F(this,YA,void 0),F(this,QA,void 0),F(this,JA,1),F(this,ZA,1),F(this,tM,1),F(this,eM,""),F(this,nM,0),F(this,iM,[]),F(this,rM,null),F(this,oM,void 0),F(this,sM,[]),F(this,aM,null),F(this,lM,null),F(this,cM,0),F(this,uM,0),F(this,dM,0),F(this,hM,void 0);const[e]=t;C(YA,this,e),C(cM,this,Pg()),C(hM,this,N(fM,this,mM).call(this)),N(fM,this,gM).call(this),N(fM,this,vM).call(this),N(fM,this,wM).call(this),N(fM,this,kM).call(this)}get publicAPI(){return M(hM,this)}calcScore(){N(fM,this,FM).call(this)}onDispose(){M(YA,this)&&M(QA,this)&&"function"==typeof M(YA,this).off&&M(YA,this).off(jp.TIMELINE_PLAYER_STATE,M(QA,this)),C(QA,this,null),N(fM,this,xM).call(this),N(fM,this,_M).call(this),C(YA,this,null),C(sM,this,[]),C(iM,this,[]),C(hM,this,null)}}function mM(){const t=this;return{get score(){return M(JA,t)},get status(){return M(eM,t)},get streamQualityScore(){return M(ZA,t)},get fpsScore(){return M(tM,t)},get browserFps(){return M(nM,t)},get waitingSeconds(){return M(uM,t)/1e3},get playingSeconds(){return M(dM,t)/1e3}}}function gM(){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 vM(){M(YA,this)&&"function"==typeof M(YA,this).on&&(C(QA,this,(t=>N(fM,this,yM).call(this,t))),M(YA,this).on(jp.TIMELINE_PLAYER_STATE,M(QA,this)))}function yM(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||N(fM,this,bM).call(this,null):N(fM,this,bM).call(this,"waiting"):N(fM,this,bM).call(this,"playing")}function bM(t){if(t===M(aM,this))return;const e=Pg();M(aM,this)&&Number.isFinite(M(lM,this))&&M(sM,this).push({state:M(aM,this),startMs:M(lM,this),endMs:e}),C(aM,this,t),C(lM,this,t?e:null),N(fM,this,EM).call(this,e)}function kM(){const t=Number(this.settings.calcScoreInterval);!Number.isFinite(t)||t<=0||(C(oM,this,(()=>N(fM,this,FM).call(this))),mb(M(oM,this),1e3*t))}function xM(){M(oM,this)&&gb(M(oM,this)),C(oM,this,null)}function wM(){if("function"!=typeof ob)return;const t=()=>{if(this._disposed)return;const e=Pg();C(nM,this,N(fM,this,TM).call(this,M(iM,this),e)),C(rM,this,ob(t))};C(rM,this,ob(t))}function _M(){M(rM,this)&&"function"==typeof sb&&sb(M(rM,this)),C(rM,this,null)}function TM(t,e){const n=N(fM,this,IM).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 IM(){const t=Number(this.settings.windowSeconds);return!Number.isFinite(t)||t<=0?3e4:1e3*t}function EM(t){const e=t-N(fM,this,IM).call(this);for(;M(sM,this).length&&M(sM,this)[0].endMs<=e;)M(sM,this).shift()}function SM(t){const e=t-N(fM,this,IM).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 M(sM,this).forEach((t=>{r(t.state,t.startMs,t.endMs)})),M(aM,this)&&Number.isFinite(M(lM,this))&&r(M(aM,this),M(lM,this),t),C(uM,this,n),C(dM,this,i),{waitingMs:n,playingMs:i}}function NM(t,e){if(t<=0)return 1;if(t>e)return 0;const n=e||1;return $f(1-t*this.settings.waitingMultiplier/n)}function AM(){if(Pg()-M(cM,this)<=1e3*this.settings.fpsGracePeriod)return 1;const t=Number(M(nM,this)),e=Up.isDesktop()?this.settings.bestFpsDesktop:this.settings.bestFpsMobile,n=$f(e>0?t/e:0);return"quad"===this.settings.fpsMathFuncType?n*n:n}function MM(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 FM(){const t=Pg(),{waitingMs:e,playingMs:n}=N(fM,this,SM).call(this,t),i=N(fM,this,NM).call(this,e,n),r=N(fM,this,AM).call(this),o=$f(i*this.settings.streamQualityWeight+r*this.settings.fpsWeight);o!==M(JA,this)&&(C(JA,this,o),this.trigger(jp.QOE_SCORE,o)),C(ZA,this,i),C(tM,this,r);const s=N(fM,this,MM).call(this,o,e);s!==M(eM,this)&&(C(eM,this,s),this.trigger(jp.QOE_STATUS,s))}function CM(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function OM(t){const e=Number(t);return!Number.isFinite(e)||e<0?0:e}var PM=new WeakMap,RM=new WeakMap,DM=new WeakMap,BM=new WeakMap,LM=new WeakSet;class zM extends jc{get name(){return"SegmentEvictionCoordinator"}get defaults(){return{enabled:Qg("segmentEvictionEnabled"),bufferBehindSeconds:Qg("segmentEvictionBufferBehindSeconds"),bufferAheadSeconds:Qg("segmentEvictionBufferAheadSeconds"),maxRetainedBytes:Qg("segmentEvictionMaxRetainedBytes")}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"evictAtTime"])}constructor(t,e,n={}){super(n),O(this,LM),F(this,PM,void 0),F(this,RM,void 0),F(this,DM,void 0),F(this,BM,void 0),C(PM,this,t),C(RM,this,e),C(DM,this,(t=>N(LM,this,WM).call(this,t))),C(BM,this,(t=>N(LM,this,UM).call(this,t))),M(PM,this)&&"function"==typeof M(PM,this).on&&(M(PM,this).on(jp.TIMELINE_TIME_UPDATE,M(DM,this)),M(PM,this).on(jp.TIMELINE_SEEKED,M(BM,this)))}onDispose(){M(PM,this)&&"function"==typeof M(PM,this).off&&(M(PM,this).off(jp.TIMELINE_TIME_UPDATE,M(DM,this)),M(PM,this).off(jp.TIMELINE_SEEKED,M(BM,this))),C(PM,this,null),C(RM,this,null),C(DM,this,null),C(BM,this,null)}evictAtTime(t){if(!0!==this.settings.enabled)return;const e=Number(t);if(!Number.isFinite(e))return;const n=OM(this.settings.bufferBehindSeconds),i=OM(this.settings.bufferAheadSeconds),r=e-n,o=e+i,s=N(LM,this,$M).call(this);if(!s.length)return;const a=Number(this.settings.maxRetainedBytes);if(Number.isFinite(a)&&a>0&&N(LM,this,jM).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=Hf(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=N(LM,this,qM).call(this,e);if(!n)return;const i=t.filter((t=>N(LM,this,VM).call(this,t,r,o)));i.length?N(LM,this,HM).call(this,n,i,r,o):"function"==typeof n.evict&&n.evict()}))}}function WM(t){var e,n;if(!0!==this.settings.enabled)return;if((null===(e=M(PM,this))||void 0===e?void 0:e.state)===Qp)return;const i=Number(null==t?void 0:t.time),r=Number.isFinite(i)?i:Number(null===(n=M(PM,this))||void 0===n?void 0:n.currentTime);this.evictAtTime(r)}function UM(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=M(PM,this))||void 0===e?void 0:e.currentTime);this.evictAtTime(i)}function $M(){var t;const e=null===(t=M(PM,this))||void 0===t?void 0:t.placements;return Array.isArray(e)?e:[]}function jM(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=N(LM,this,qM).call(this,i),o=Number(null==r?void 0:r.retainedByteLength);lg(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=>{lg(null==t?void 0:t.retainedByteLength)&&(n+=t.retainedByteLength)}))}))})),n}function qM(t){if(M(RM,this)&&"function"==typeof M(RM,this).get)return M(RM,this).get(t)}function VM(t,e,n){const i=Hf(t);if(!Number.isFinite(i))return!1;const r=qf(t,M(RM,this));return(Number.isFinite(r)?i+r:Number.POSITIVE_INFINITY)>e&&i<n}function HM(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=CM(null==t?void 0:t.offset,0);r.forEach((t=>{if(!t||!lg(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=Hf(a);if(!Number.isFinite(l))continue;const c=CM(null==a?void 0:a.nodeOffsetOverride,0),u=CM(null==t?void 0:t.offset,NaN);if(!Number.isFinite(u))continue;const d=CM(null==t?void 0:t.duration,0),h=l+o+u-c,f=h+(d>0?d:0),p=qf(a,M(RM,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 GM=new WeakMap,KM=new WeakMap,XM=new WeakMap,YM=new WeakSet;class QM extends jc{get name(){return"DocumentVisibility"}get defaults(){return{autoPauseOnVisibilityChange:!0,autoResumeOnVisibilityChange:!0}}constructor(t,e={}){super(e),O(this,YM),F(this,GM,void 0),F(this,KM,null),F(this,XM,!1),C(GM,this,t),N(YM,this,JM).call(this)}onDispose(){N(YM,this,ZM).call(this),C(GM,this,null),C(XM,this,!1)}}function JM(){const t=null==Hc?void 0:Hc.document;t&&"function"==typeof t.addEventListener&&(C(KM,this,(()=>N(YM,this,tF).call(this))),t.addEventListener("visibilitychange",M(KM,this)))}function ZM(){const t=null==Hc?void 0:Hc.document;M(KM,this)&&t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",M(KM,this)),C(KM,this,null)}function tF(){const t=null==Hc?void 0:Hc.document,e=null==t?void 0:t.visibilityState;"string"==typeof e&&("hidden"!==e?"visible"===e&&N(YM,this,nF).call(this):N(YM,this,eF).call(this))}function eF(){var t;(null===(t=this.settings)||void 0===t?void 0:t.autoPauseOnVisibilityChange)&&M(GM,this)&&"function"==typeof M(GM,this).pause&&(M(GM,this).state===Kp?(this.log.info("[#handleHidden] Pausing timeline due to document visibility change"),M(GM,this).pause(),C(XM,this,!0)):C(XM,this,!1))}function nF(){var t;M(XM,this)&&(null===(t=this.settings)||void 0===t?void 0:t.autoResumeOnVisibilityChange)&&M(GM,this)&&"function"==typeof M(GM,this).play&&(M(GM,this).state!==Kp?(this.log.info("[#handleVisible] Resuming timeline due to document visibility change"),M(GM,this).play(),C(XM,this,!1)):C(XM,this,!1))}const iF=[{event:"canplay",once:!0,trackAs:"canplay"},{event:"playing",once:!0,trackAs:"startedplaying"},"play","playing","waiting","pause","seeking","seeked","nodestart","nodeend"];function rF(t,e=0){return Number.isFinite(t)?t:e}function oF(t){const e=null==t?void 0:t.exposedPlayerAPI;return e&&"object"==typeof e?e:t}const sF=[function(t){return{schema:"iglu:com.helloeko/player/jsonschema/1-0-6",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:rF(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:rF(null==r?void 0:r.volume),playercontainerwidth:rF(null==r?void 0:r.containerWidth),playercontainerheight:rF(null==r?void 0:r.containerHeight)}}}},function(t){return{schema:"iglu:com.helloeko/currentnode/jsonschema/1-0-1",match:/^.*$/,getData:()=>{var e;const n=oF(t),i=function(t){const e=oF(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==Hc||null===(t=Hc.eko)||void 0===t||null===(t=t.environment)||void 0===t?void 0:t.embeddingApp;return e?{embeddingapp:e}:{}}}}],aF=Object.freeze({once:!1,trackAs:""});var lF=new WeakMap,cF=new WeakMap,uF=new WeakMap,dF=new WeakMap,hF=new WeakSet;class fF extends jc{get name(){return"Tracker"}get defaults(){return{trackingEnabled:Qg("trackingEnabled"),defaultForwarders:iF,defaultContextPackers:sF}}constructor(t,e={}){super(e),O(this,hF),F(this,lF,void 0),F(this,cF,new Map),F(this,uF,[]),F(this,dF,!1),C(lF,this,t),N(hF,this,bF).call(this),N(hF,this,pF).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=N(hF,this,xF).call(this);n&&n("track",t,...e)}registerContextPacker(t){if(!t||"object"!=typeof t)return void this.log.warn("[registerContextPacker] Expected a packer object.");const e={schema:t.schema,match:t.match,getData: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=N(hF,this,xF).call(this);n&&n("registerContextPacker",e)}onDispose(){N(hF,this,yF).call(this),N(hF,this,kF).call(this),C(lF,this,null),C(dF,this,!1)}}function pF(){(Array.isArray(this.settings.defaultForwarders)?this.settings.defaultForwarders:[]).forEach((t=>N(hF,this,mF).call(this,t)))}function mF(t){const e=N(hF,this,gF).call(this,t);if(!e)return void this.log.warn("[#addEventForwarder] Invalid forwarder input.",t);const n=M(lF,this);if(!n||"function"!=typeof n.on)return;const i=N(hF,this,vF).call(this,e);if(M(cF,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),M(cF,this).set(i,{event:e.event,listener:r})}function gF(t){return"string"==typeof t&&t?{event:t,...aF}: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 vF({event:t,once:e,trackAs:n}){return`${t}:${e}:${n}`}function yF(){const t=M(lF,this);t&&"function"==typeof t.off&&M(cF,this).forEach((({event:e,listener:n})=>{t.off(e,n)})),M(cF,this).clear()}function bF(){(Array.isArray(this.settings.defaultContextPackers)?this.settings.defaultContextPackers:[]).forEach((t=>{if("function"!=typeof t)return;const e=t(M(lF,this),this);e&&"object"==typeof e&&("function"==typeof e.dispose&&M(uF,this).push(e.dispose),e.disabled||this.registerContextPacker({schema:e.schema,match:e.match,getData:e.getData}))}))}function kF(){M(uF,this).forEach((t=>{try{t()}catch(t){this.log.warn("[#teardownContextPackers] Failed disposing context packer.",t)}})),C(uF,this,[])}function xF(){const t=null==Hc?void 0:Hc.EkoAnalytics;return"function"==typeof t?t:(N(hF,this,wF).call(this),null)}function wF(){this.settings.trackingEnabled&&!M(dF,this)&&(this.log.warn("EkoAnalytics not found on window."),C(dF,this,!0))}class _F{#T;#et;#nt;#it;#rt;#ot;#st;#at;#lt;#ct;#ut;#dt;#ht;#ft;#pt;#mt;#gt;#vt;#yt;constructor(t,e={},n=null){this.#T=new Kc(t,e),this.#et=new nu(this.#T,e),this.#nt=new Qy(e),this.#it=new rv(e),this.#rt=new Cy(this.#it,e),this.#ot=new Sy(this.#rt,this.#nt,e),this.#st=new Wy(this.#ot,e),this.#at=new KN(this.#ot,e),this.#lt=new QM(this.#at,e),this.#vt=new zM(this.#at,this.#ot,e),this.#ct=new Bb(this.#ot,this.#st,this.#nt,this.#at,e),this.#ut=new wk(this.#ot,this.#st,this.#at,e),this.#dt=new xT(e),this.#ht=new HT(this.#ot,this.#at,this.#dt,e),this.#pt=new pM(this.#at,e),this.#yt=new fF(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.#mt=r?r({timeline:this.#at,canvas:this.#T,containerSize:this.#et,options:e}):new Cm(this.#at,this.#T,this.#et,e),this.#ft=o?o({timeline:this.#at,decodeCoordinator:this.#ht,options:e}):new SE(this.#at,this.#ht,e),this.#gt=new GI(this.#at,this.#mt,e)}get canvas(){return this.#T}get containerSize(){return this.#et}get assetsDeliveryService(){return this.#nt}get downloadSpeed(){return this.#it}get abrSelector(){return this.#rt}get nodeRepository(){return this.#ot}get nodePrioritizer(){return this.#st}get timeline(){return this.#at}get documentVisibility(){return this.#lt}get nodeResolver(){return this.#ct}get segmentLoadCoordinator(){return this.#ut}get decoderFactory(){return this.#dt}get parsingManager(){return this.#ht}get audioAdapter(){return this.#ft}get audioPlaybackManager(){return this.#ft}get qoe(){return this.#pt}get renderAdapter(){return this.#mt}get renderer(){return this.#mt}get transitionManager(){return this.#gt}get tracker(){return this.#yt}dispose(){[this.#yt,this.#at,this.#lt,this.#ut,this.#ct,this.#st,this.#ot,this.#nt,this.#rt,this.#it,this.#ht,this.#dt,this.#ft,this.#pt,this.#mt,this.#gt,this.#vt,this.#et,this.#T].forEach((t=>{t&&"function"==typeof t.dispose&&t.dispose()})),this.#at=null,this.#lt=null,this.#ut=null,this.#ct=null,this.#st=null,this.#ot=null,this.#nt=null,this.#rt=null,this.#it=null,this.#ht=null,this.#dt=null,this.#ft=null,this.#pt=null,this.#mt=null,this.#gt=null,this.#vt=null,this.#T=null,this.#yt=null}}const TF="main.1146573";var IF={isPlainObject:Lc,deepMerge:zc,get:Mg,set:Fg,ekoGlobalStore:Cg,download:Gg,isPositiveNumber:lg,clamp01:$f,root:Hc,now:Pg,getFrameDimensions:KS,useragent:$p,requestAnimationFrame:ob,cancelAnimationFrame:sb,start:mb,stop:gb,isTicking:vb,predicator:function(t,e){const n=e||{};if("function"!=typeof t)return void ab.error("[predicator] Bad argument given to predicator, first argument must be a function.",arguments);if(t.apply())return ab.debug("[predicator] Invoking onFulfilled immediately."),void("function"==typeof n.onFulfilled&&n.onFulfilled.call(null,0));const i=n.timeout||1e4,r=n.interval,o=Pg();let s,a,l,c,u;c=function(){t.apply()&&l()},l=function(){gb(c),Hc.clearTimeout(s),u=Pg()-o,ab.debug("[predicator] Invoking onFulfilled after "+u+" ms."),"function"==typeof n.onFulfilled&&n.onFulfilled.call(null,u)},a=function(){gb(c),u=Pg()-o,ab.debug("[predicator] Invoking onTimeout after "+u+" ms."),"function"==typeof n.onTimeout&&n.onTimeout.call(null,u)},s=Hc.setTimeout(a,i),mb(c,r)},createThrottler:yb,scheduleExecution:bb},EF=new WeakMap,SF=new WeakMap,NF=new WeakMap,AF=new WeakMap,MF=new WeakMap,FF=new WeakMap,CF=new WeakMap,OF=new WeakSet;class PF{constructor(t){O(this,OF),F(this,EF,[]),F(this,SF,[]),F(this,NF,new fN("placement-")),F(this,AF,new fN("renderplacement-")),F(this,MF,void 0),F(this,FF,new Map),F(this,CF,void 0),C(MF,this,t),C(CF,this,{allowUnready:!0,getNode:t=>N(OF,this,RF).call(this,t)})}get placements(){return M(EF,this).slice()}get renderPlacements(){return M(SF,this).slice()}getNodesAtTime(t){N(OF,this,DF).call(this);const e=N(OF,this,LF).call(this,t);if(!Number.isFinite(e))return[];const n=M(EF,this).filter((t=>Gf(t,e,null,M(CF,this)))),i=[];return n.forEach((t=>{const e=N(OF,this,RF).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&&M(FF,this).set(r,i);const o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=Jf(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}:Qf(e,n);let u,d,h,f=!1;const p=null!==a;if(a){const t=M(EF,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=Hf(t);if("start"===a.anchor)Number.isFinite(e)?u=e:f=!0;else{const n=N(OF,this,BF).call(this,t);Number.isFinite(e)&&n>0?u=e+n:f=!0}}else if(l){const t=n.offsetAnchorPlacementId?M(EF,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):M(EF,this).length?M(EF,this)[M(EF,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=Hf(t),n=N(OF,this,BF).call(this,t);Number.isFinite(e)&&n>0?u=e+n-c:(f=!0,h="end")}else u=-c}else u=Yf(e);const m=M(NF,this).claim(n.placementId),g={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 M(EF,this).push(g),Kf(M(EF,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=Jf(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=M(EF,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=Hf(t);if("start"===c.anchor)Number.isFinite(e)?o=e:l=!0;else{const n=N(OF,this,BF).call(this,t);Number.isFinite(e)&&Number.isFinite(n)?o=e+n:l=!0}}else o=Yf(e);const d=M(AF,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;Zf(M(SF,this),t,e,"TimelineDefinition.placeRenderNodeOnTimeline does not allow overlapping render nodes")}return M(SF,this).push(m),Kf(M(SF,this)),d}}function RF(t){if(t)return M(MF,this)&&"function"==typeof M(MF,this).get?M(MF,this).get(t):M(FF,this).get(t)}function DF(){return Xf(M(EF,this),{getPlacementDuration:t=>N(OF,this,BF).call(this,t)}).updated}function BF(t){return qf(t,null,M(CF,this))}function LF(t){if("end"===t){const t=N(OF,this,zF).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 zF(){let t;return M(EF,this).forEach((e=>{const n=Hf(e);if(!Number.isFinite(n))return;const i=N(OF,this,BF).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}const WF=new Set(["canplay","play","playing","waiting","pause","seeking","seeked"]);var UF=new WeakMap,$F=new WeakMap,jF=new WeakMap,qF=new WeakMap,VF=new WeakMap,HF=new WeakMap,GF=new WeakMap,KF=new WeakMap,XF=new WeakMap,YF=new WeakMap,QF=new WeakMap,JF=new WeakMap,ZF=new WeakMap,tC=new WeakMap,eC=new WeakMap,nC=new WeakMap,iC=new WeakMap,rC=new WeakMap,oC=new WeakMap,sC=new WeakMap,aC=new WeakMap,lC=new WeakMap,cC=new WeakMap,uC=new WeakMap,dC=new WeakMap,hC=new WeakSet;class fC extends jc{get name(){return"EkoPlayer"}get exposedPlayerAPI(){return M(qF,this)}constructor(t,e={}){const{options:n,publicOptions:i}=function(t={}){const e=zc({},Xg,t);Object.entries(Kg).forEach((([t,{targetPaths:n}])=>{void 0!==e[t]&&n.forEach((n=>{void 0===Mg(e,n)&&Fg(e,n,e[t])}))}));const n=function(t){const e={};return Object.keys(Kg).forEach((n=>{Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})),Object.freeze(e)}(e);return Yg.info("Processed options:",e),Yg.info("Public options:",n),{options:e,publicOptions:n}}(e);return super(n),O(this,hC),F(this,UF,void 0),F(this,$F,void 0),F(this,jF,void 0),F(this,qF,void 0),F(this,VF,void 0),F(this,HF,void 0),F(this,GF,void 0),F(this,KF,void 0),F(this,XF,void 0),F(this,YF,void 0),F(this,QF,void 0),F(this,JF,void 0),F(this,ZF,void 0),F(this,tC,void 0),F(this,eC,void 0),F(this,nC,void 0),F(this,iC,void 0),F(this,rC,void 0),F(this,oC,void 0),F(this,sC,void 0),F(this,aC,void 0),F(this,lC,void 0),F(this,cC,void 0),F(this,uC,void 0),F(this,dC,0),C(jF,this,i),this.log.info("Initializing EkoPlayer with options:",i),C(JF,this,new _F(t,n,this)),N(hC,this,_C).call(this,M(JF,this)),C(eC,this,(t=>N(hC,this,pC).call(this,t))),M($F,this)&&"function"==typeof M($F,this).on&&M($F,this).on(jp.TIMELINE_CUEPOINT,M(eC,this)),C(nC,this,null),C(rC,this,(t=>N(hC,this,mC).call(this,t))),C(oC,this,(t=>{const e=t&&"object"==typeof t?t:{};N(hC,this,mC).call(this,{...e,event:"seeking"})})),C(sC,this,(t=>{const e=t&&"object"==typeof t?t:{};N(hC,this,mC).call(this,{...e,event:"seeked"})})),M($F,this)&&"function"==typeof M($F,this).on&&(M($F,this).on(jp.TIMELINE_PLAYER_STATE,M(rC,this)),M($F,this).on(jp.TIMELINE_SEEKING,M(oC,this)),M($F,this).on(jp.TIMELINE_SEEKED,M(sC,this))),C(cC,this,(t=>{const e=t&&"object"==typeof t?t:{};this.trigger(jp.CONTAINER_RESIZE,e)})),M(ZF,this)&&"function"==typeof M(ZF,this).on&&M(ZF,this).on(jp.CONTAINER_RESIZE,M(cC,this)),N(hC,this,bC).call(this),N(hC,this,yC).call(this),C(qF,this,N(hC,this,wC).call(this)),M(qF,this)}onDispose(){M($F,this)&&"function"==typeof M($F,this).off&&M(eC,this)&&M($F,this).off(jp.TIMELINE_CUEPOINT,M(eC,this)),C(eC,this,null),M($F,this)&&"function"==typeof M($F,this).off&&(M(rC,this)&&M($F,this).off(jp.TIMELINE_PLAYER_STATE,M(rC,this)),M(oC,this)&&M($F,this).off(jp.TIMELINE_SEEKING,M(oC,this)),M(sC,this)&&M($F,this).off(jp.TIMELINE_SEEKED,M(sC,this))),C(rC,this,null),C(oC,this,null),C(sC,this,null),C(nC,this,null),M(ZF,this)&&"function"==typeof M(ZF,this).off&&M(cC,this)&&M(ZF,this).off(jp.CONTAINER_RESIZE,M(cC,this)),C(cC,this,null),M(QF,this)&&"function"==typeof M(QF,this).off&&(M(aC,this)&&M(QF,this).off("qoescore",M(aC,this)),M(lC,this)&&M(QF,this).off("qoestatus",M(lC,this))),C(aC,this,null),C(lC,this,null),M(YF,this)&&"function"==typeof M(YF,this).off&&M(uC,this)&&M(YF,this).off(jp.DECODER_ERROR,M(uC,this)),C(uC,this,null),C(dC,this,0),M(tC,this)&&"function"==typeof M(tC,this).dispose&&M(tC,this).dispose(),C(tC,this,null),M(JF,this)&&"function"==typeof M(JF,this).dispose&&M(JF,this).dispose(),C($F,this,null),C(UF,this,null),C(HF,this,null),C(GF,this,null),C(KF,this,null),C(XF,this,null),C(YF,this,null),C(QF,this,null),C(ZF,this,null),C(VF,this,null),C(qF,this,null),C(JF,this,null)}}function pC(t={}){var e;this.trigger(jp.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 mC(t={}){const e="string"==typeof(null==t?void 0:t.event)?t.event:"";if(!WF.has(e))return;if("playing"!==e||Number.isFinite(M(iC,this))||C(iC,this,Pg()),M(nC,this)===e)return;C(nC,this,e);const n=Number.isFinite(null==t?void 0:t.time)?t.time:M($F,this)&&Number.isFinite(M($F,this).currentTime)?M($F,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 gC(){return new PF(M(UF,this))}function vC(t){if(!t||"object"!=typeof t)throw new Error("EkoPlayer.switchTimeline requires a timeline definition");if(!M($F,this)||"function"!=typeof M($F,this).applyTimelineDefinition)throw new Error("EkoPlayer.switchTimeline requires an active timeline");M($F,this).applyTimelineDefinition(t),"function"==typeof M($F,this).play&&M($F,this).play()}function yC(){M(QF,this)&&"function"==typeof M(QF,this).on&&(C(aC,this,(t=>{this.trigger(jp.QOE_SCORE,t)})),C(lC,this,(t=>{this.trigger(jp.QOE_STATUS,t)})),M(QF,this).on(jp.QOE_SCORE,M(aC,this)),M(QF,this).on(jp.QOE_STATUS,M(lC,this)))}function bC(){M(YF,this)&&"function"==typeof M(YF,this).on&&(C(uC,this,(t=>{const e=t&&"object"==typeof t?t:{error:t};this.trigger(jp.DECODER_ERROR,e),N(hC,this,kC).call(this,e)})),M(YF,this).on(jp.DECODER_ERROR,M(uC,this)))}function kC(t={}){var e;const n=M($F,this);if(!n||"number"!=typeof n.currentTime)return;const i=Date.now();if(i<M(dC,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;C(dC,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 xC(t={}){if(M(tC,this))return M(tC,this);const e=t&&"object"==typeof t&&!Array.isArray(t)?{...t}:{},n=M(VF,this)&&M(VF,this).element?M(VF,this).element:null;if(!n)throw new Error("Debug overlay requires an initialized player canvas and mount element.");const i=function({canvasElement:t,containerElement:e}={}){const n=t&&t.parentNode?t.parentNode:null;if(null==e)return n;const i=function(t,e=(null==Hc?void 0:Hc.document)){if(Gc(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 Gc(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:n,containerElement:e.containerElement});if(!i)throw new Error("Debug overlay requires an initialized player canvas and mount element.");Object.prototype.hasOwnProperty.call(e,"containerElement")&&delete e.containerElement;const r=await Promise.resolve().then((function(){return GO})),o=(null==r?void 0:r.createDebugOverlay)||(null==r?void 0:r.default);if("function"!=typeof o)throw new Error("Debug overlay bundle does not export createDebugOverlay().");return e.publicOptions=M(jF,this),e.playerVersion=TF,C(tC,this,o({mountElement:i,canvasElement:n,timeline:M($F,this),getNode:t=>M(UF,this)&&"function"==typeof M(UF,this).get?M(UF,this).get(t):void 0,listNodes:()=>M(UF,this)&&"function"==typeof M(UF,this).list?M(UF,this).list():[],downloadSpeed:M(JF,this)?M(JF,this).downloadSpeed:void 0,downloadEvents:Eg,qoe:M(QF,this)?M(QF,this).publicAPI:void 0,qoeEvents:this,options:e,playbackStartedAtMs:M(iC,this)})),M(tC,this)}function wC(){const t=this;return{createTimeline:()=>N(hC,t,gC).call(t),switchTimeline:e=>N(hC,t,vC).call(t,e),play:M($F,this).play,pause:M($F,this).pause,reset:M($F,this).reset,placeOnTimeline:M($F,this).placeOnTimeline,placeRenderNodeOnTimeline:M($F,this).placeRenderNodeOnTimeline,addNode:M(UF,this).add,getNode:M(UF,this).get,listNodes:M(UF,this).list,getNodesAtTime:e=>M($F,t).getNodesAtTime(e),dispose:this.dispose,on:t.on,off:t.off,once:t.once,trigger:t.trigger,transitionTo:(e,n)=>M(GF,t).transitionTo(e,n),track:(e,...n)=>{if(M(XF,t)&&"function"==typeof M(XF,t).track)return M(XF,t).track(e,...n)},seekToPlacement:e=>M($F,t).seekToPlacement(e),get currentTime(){return M($F,t).currentTime},set currentTime(e){M($F,t).currentTime=e},get buffered(){return M($F,t).buffered},get options(){return M(jF,t)},get containerWidth(){return M(ZF,t)?M(ZF,t).containerWidth:0},get containerHeight(){return M(ZF,t)?M(ZF,t).containerHeight:0},get playbackRate(){return M($F,t).playbackRate},set playbackRate(e){M($F,t).playbackRate=e},get paused(){return!!M($F,t)&&!0===M($F,t).paused},get muted(){return!!M(KF,t)&&M(KF,t).muted},set muted(e){M(KF,t)&&(M(KF,t).muted=e)},get volume(){return M(KF,t)?M(KF,t).volume:1},set volume(e){M(KF,t)&&(M(KF,t).volume=e)},get qoe(){return M(QF,t)?M(QF,t).publicAPI:void 0},get utils(){return IF},get version(){return TF},loadDebugOverlay:(...e)=>N(hC,t,xC).call(t,...e)}}function _C(t){t&&(C(VF,this,t.canvas),C(UF,this,t.nodeRepository),C($F,this,t.timeline),C(KF,this,t.audioAdapter||t.audioPlaybackManager),C(XF,this,t.tracker),C(YF,this,t.parsingManager),C(QF,this,t.qoe),C(HF,this,t.renderAdapter||t.renderer),C(GF,this,t.transitionManager),C(ZF,this,t.containerSize))}class TC{constructor({target:t,props:e}){if(!t)throw new Error("`options.target` is required");Zr(this.#bt,e,!0),this.#bt.v.EkoPlayer=fC;const n=t.hasChildNodes()?Ss:Es;this.#kt=n(yc,{target:t,props:this.#bt.v})}#kt;#bt=Qr(io({}));destroy(t){if(this.#kt)return function(t,e){const n=Ms.get(t);return n?(Ms.delete(t),n(e)):Promise.resolve()}(this.#kt,t)}get props(){return us(this.#bt)}}const IC=()=>e.createElement("style",{suppressHydrationWarning:!0},'\n .textBoxDescriptionBox.svelte-17x2i38 {\n width: 100%;\n position: absolute;\n bottom: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n box-sizing: border-box;\n 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 );\n }\n\n .step-description.svelte-17x2i38 {\n overflow: hidden;\n position: relative;\n transition: all 0.4s cubic-bezier(0, 1, 0.25, 1);\n font-size: 12px;\n font-weight: 400;\n font-style: normal;\n line-height: 16px;\n letter-spacing: 0px;\n color: #000;\n display: flex;\n flex-direction: column;\n transition: height 0.2s ease;\n interpolate-size: allow-keywords;\n\n > button:where(.svelte-17x2i38) {\n display: flex;\n justify-content: space-between;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n line-height: 18px;\n gap: 8px;\n font-weight: 400;\n letter-spacing: 0%;\n }\n\n &.expanded {\n > button:where(.svelte-17x2i38) {\n flex-direction: column;\n align-items: flex-start;\n }\n\n p:where(.svelte-17x2i38) {\n -webkit-mask-image: none;\n mask-image: none;\n }\n }\n\n &:not(.expanded) {\n p:where(.svelte-17x2i38) {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n line-clamp: 1;\n }\n }\n\n h3:where(.svelte-17x2i38) {\n margin: 0;\n font-size: 16px;\n font-weight: 500;\n color: #030303;\n }\n\n p:where(.svelte-17x2i38) {\n margin: 0;\n text-align: left;\n }\n\n span:where(.svelte-17x2i38) {\n color: #014FD3;\n font-size: 12px;\n font-weight: 600;\n flex-shrink: 0;\n }\n }\n.eko-gallery-app {\n --toggleModule_gap: 8px;\n --toggleModule_padding: 10px 58px 0 0;\n --toggleModule_options_padding: 0;\n --toggleModule_options_height: auto;\n --toggleModule_options_width: 100%;\n --toggleModule_options_gap: 8px;\n --toggleModule_button_backgroundColor: #FFFFFF;\n --toggleModule_button_padding: 8px 12px;\n --toggleModule_button_boxShadow: 0px 2px 8px 2px rgba(0, 0, 0, 0.07);\n --toggleModule_button_text_fontFamily: var(--fontName);\n --toggleModule_button_text_fontSize: 12px;\n --toggleModule_button_text_fontWeight: 400;\n --toggleModule_button_text_fontStyle: normal;\n --toggleModule_button_text_lineHeight: 16px;\n --toggleModule_button_text_letterSpacing: -0.2px;\n --toggleModule_button_text_color: #000;\n --toggleModule_button_border_radius: 100px;\n --toggleModule_title_fontFamily: var(--fontName);\n --toggleModule_title_fontSize: 13px;\n --toggleModule_title_fontWeight: 400;\n --toggleModule_title_fontStyle: normal;\n --toggleModule_title_lineHeight: 120%;\n --toggleModule_title_letterSpacing: 0;\n --toggleModule_title_color: #666;\n --toggleModule_title_textAlignment: center;\n --toggleModule_note_fontFamily: var(--fontName);\n --toggleModule_note_fontSize: 12px;\n --toggleModule_note_fontWeight: 400;\n --toggleModule_note_fontStyle: normal;\n --toggleModule_note_lineHeight: 120%;\n --toggleModule_note_letterSpacing: 0;\n --toggleModule_note_color: #888;\n --toggleModule_note_topMargin: 4px;\n}\n\n.toggle-container.svelte-16pmvvn {\n position: absolute;\n top: 0;\n padding: var(--toggleModule_padding);\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--toggleModule_gap);\n pointer-events: auto;\n box-sizing: border-box;\n}\n\n.toggle-options.svelte-16pmvvn {\n width: var(--toggleModule_options_width);\n height: var(--toggleModule_options_height);\n padding: var(--toggleModule_options_padding);\n gap: var(--toggleModule_options_gap);\n display: flex;\n justify-content: end;\n margin: 0;\n}\n\n.toggle-option-container.svelte-16pmvvn {\n position: relative;\n min-width: 0;\n}\n/* (unused) .toggle-option-container:has(button.selected) .option-note {\n animation: optionNoteIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards 0.3s;\n}*/\n\n.toggle-option-button.svelte-16pmvvn {\n border-radius: var(--toggleModule_button_borderRadius);\n font-family: var(--toggleModule_button_text_fontFamily);\n font-size: var(--toggleModule_button_text_fontSize);\n font-weight: var(--toggleModule_button_text_fontWeight);\n font-style: var(--toggleModule_button_text_fontStyle);\n line-height: var(--toggleModule_button_text_lineHeight);\n letter-spacing: var(--toggleModule_button_text_letterSpacing);\n color: var(--toggleModule_button_text_color);\n padding: var(--toggleModule_button_padding);\n border: #E4E5E8 solid 1px;\n background: #FBFBFB;\n display: flex;\n width: 100%;\n height: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n cursor: pointer;\n position: relative;\n transition: all 0.3s ease-in-out;\n animation-duration: 0.5s;\n animation-timing-function: cubic-bezier(0.36, 0, 0, 1);\n animation-fill-mode: both;\n animation-delay: calc(var(--button-index) * 90ms);\n animation-name: svelte-16pmvvn-button-back-appear-anim;\n transform-origin: bottom center;\n border-radius: var(--toggleModule_button_border_radius);\n}\n.toggle-option-button.selected.svelte-16pmvvn {\n box-shadow: none;\n color: #FFFFFF;\n background: #014FD3;\n border-color: #014FD3;\n}\n.toggle-option-button.svelte-16pmvvn:hover:not(.selected) {\n background: #F3F4F6;\n}\n.toggle-option-button.svelte-16pmvvn:active:not(.selected) {\n background: #E4E5E8;\n}\n.toggle-option-button.svelte-16pmvvn:focus {\n outline-offset: 4px;\n outline-width: 2px;\n}\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}.eko-gallery-app {\n --tryItModule_justifyContent: center;\n --tryItModule_alignItems: flex-end;\n --tryItModule_padding: 16px 20px 48px 20px;\n --tryItModule_button_padding: 16px 32px;\n --tryItModule_button_textAlign: center;\n --tryItModule_button_borderRadius: 100px;\n --tryItModule_button_border: 0;\n --tryItModule_button_boxShadow: 0 4px 24px 2px rgba(0, 0, 0, 0.12);\n --tryItModule_button_background: #FFFFFF;\n --tryItModule_button_text_fontFamily: var(--fontName);\n --tryItModule_button_text_fontSize: 18px;\n --tryItModule_button_text_color: #222;\n --tryItModule_button_text_weight: 500;\n --tryItModule_button_text_lineHeight: 120%;\n --tryItModule_button_text_letterSpacing: -0.1px;\n}\n\n.tryIt-container.svelte-16kucsb {\n position: relative;\n padding: var(--tryItModule_padding);\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: flex;\n justify-content: var(--tryItModule_justifyContent);\n align-items: var(--tryItModule_alignItems);\n}\n.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) {\n padding: var(--tryItModule_button_padding);\n text-align: var(--tryItModule_button_textAlign);\n border-radius: var(--tryItModule_button_borderRadius);\n border: var(--tryItModule_button_border);\n background: var(--tryItModule_button_background);\n box-shadow: var(--tryItModule_button_boxShadow);\n font-family: var(--tryItModule_button_text_fontFamily);\n font-size: var(--tryItModule_button_text_fontSize);\n color: var(--tryItModule_button_text_color);\n font-weight: var(--tryItModule_button_text_weight);\n line-height: var(--tryItModule_button_text_lineHeight);\n letter-spacing: var(--tryItModule_button_text_letterSpacing);\n cursor: pointer;\n opacity: 0;\n overflow: hidden;\n}\n.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) div:where(.svelte-16kucsb) {\n opacity: 0;\n}.eko-gallery-app {\n --nav_gap: 10px;\n --nav_padding: 12px 16px;\n --nav_bgColor: #FFFFFF;\n --nav_justifyContent: center;\n --nav_button_width: fit-content;\n --nav_button_bgColor: #FFFFFF;\n --nav_button_borderRadius: 100px;\n --nav_button_paddingTop: 8px;\n --nav_button_paddingBottom: var(--nav_button_paddingTop);\n --nav_button_paddingLeft: 12px;\n --nav_button_paddingRight: var(--nav_button_paddingLeft);\n --nav_button_boxShadow: 0 0 0 1px #E7E7E7;\n --nav_button_gap: 2px;\n --nav_button_selected_boxShadow: 0 0 0 1px #000000;\n --nav_button_selected_bgColor: var(--nav_button_bgColor);\n --nav_button_text_color: #000000;\n --nav_button_text_fontSize: 14px;\n --nav_button_text_fontWeight: 500;\n --nav_button_text_fontFamily: var(--fontName);\n --nav_button_text_lineHeight: 120%;\n --nav_button_text_letterSpacing: 0px;\n --nav_button_text_align: center;\n --nav_button_selected_text_color: var(--nav_button_text_color);\n --nav_button_selected_text_fontWeight: var(--nav_button_text_fontWeight);\n --nav_button_image_borderRadius: calc(var(--nav_button_borderRadius) - var(--nav_button_paddingTop));\n --nav_arrow_color: var(--secondaryColor);\n --nav_arrow_bgColor: var(--primaryColor);\n --nav_arrow_padding: 9px;\n --nav_arrow_size: 28px;\n --nav_arrow_boxShadow: 0 0 8px 0 rgba(0, 0, 0, 0.3);\n}\n\n.nav-buttons-container.svelte-er27y2 {\n width: 100%;\n background-color: var(--nav_bgColor);\n height: var(--buttonsContainerHeight);\n display: flex;\n box-sizing: border-box;\n text-align: center;\n justify-content: var(--nav_justifyContent);\n align-items: center;\n position: relative;\n flex-shrink: 0;\n}\n\n.nav-buttons.svelte-er27y2 {\n display: flex;\n margin: 0;\n gap: var(--nav_gap);\n height: 100%;\n align-items: center;\n padding: var(--nav_padding);\n box-sizing: border-box;\n overflow-x: auto;\n scrollbar-width: none;\n max-width: 100%;\n width: fit-content;\n overflow-y: hidden;\n overscroll-behavior-y: none;\n}\n\n.nav-button.svelte-er27y2 {\n display: flex;\n outline: none;\n flex-shrink: 0;\n height: 100%;\n width: var(--nav_button_width);\n border: none;\n cursor: pointer;\n align-items: center;\n gap: var(--nav_button_gap);\n transition: all 0.2s ease-in-out;\n background-color: var(--nav_button_bgColor);\n border-radius: var(--nav_button_borderRadius);\n /* eslint-disable-next-line max-len */\n padding: var(--nav_button_paddingTop) var(--nav_button_paddingRight) var(--nav_button_paddingBottom) var(--nav_button_paddingLeft);\n box-shadow: var(--nav_button_boxShadow);\n}\n.nav-button.svelte-er27y2 span:where(.svelte-er27y2) {\n flex: 1 0 0;\n transition: color 0.2s ease-in-out;\n color: var(--nav_button_text_color);\n font-weight: var(--nav_button_text_fontWeight);\n font-size: var(--nav_button_text_fontSize);\n font-family: var(--nav_button_text_fontFamily);\n line-height: var(--nav_button_text_lineHeight);\n letter-spacing: var(--nav_button_text_letterSpacing);\n text-align: var(--nav_button_text_align);\n}\n.nav-button.selected.svelte-er27y2 {\n background-color: var(--nav_button_selected_bgColor);\n box-shadow: var(--nav_button_selected_boxShadow);\n}\n.nav-button.selected.svelte-er27y2 span:where(.svelte-er27y2) {\n color: var(--nav_button_selected_text_color);\n font-weight: var(--nav_button_selected_text_fontWeight);\n}.nav-button.svelte-1al44kl {\n height: 30px;\n width: 30px;\n border-radius: 100%;\n background-color: transparent;\n padding: 9px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n border: 0;\n opacity: 100%;\n cursor: pointer;\n transition-property: background-color, box-shadow, opacity;\n position: relative;\n}\n.nav-button.prev.svelte-1al44kl {\n transform: rotate(180deg);\n}\n.nav-button.hidden.svelte-1al44kl {\n opacity: 0;\n pointer-events: none;\n}\n.nav-button.svelte-1al44kl::before {\n content: "";\n position: absolute;\n top: -8px;\n right: -8px;\n bottom: -8px;\n left: -8px;\n}\n.nav-button.svelte-1al44kl img:where(.svelte-1al44kl) {\n height: 100%;\n}.steps-indicator-container.svelte-1mxltt0 {\n width: calc(100% - 32px);\n position: absolute;\n bottom: 12px;\n left: 16px;\n animation-duration: 0.75s;\n animation-timing-function: cubic-bezier(0.36, 0, 0, 1);\n animation-fill-mode: both;\n animation-delay: 0.15s;\n animation-name: svelte-1mxltt0-gallery-steps-appear-anim;\n}\n\n.steps-indicator.svelte-1mxltt0 {\n --stepSize: 6px;\n --stepPadding: 7px;\n gap: 8px;\n padding: 4px 0px;\n display: flex;\n align-items: center;\n overflow-x: auto;\n pointer-events: all;\n scrollbar-width: none;\n}\n.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0) {\n position: relative;\n overflow: hidden;\n}\n.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0):after {\n transition: 0.3s ease-in-out;\n transition-property: opacity, width;\n}\n/* (unused) .steps-indicator.with-duration.paused .step-button span.active:after {\n animation-play-state: paused;\n}*/\n\n.step-button.svelte-1mxltt0 {\n padding: 8px 12px;\n border: #E4E5E8 solid 1px;\n background-color: #FBFBFB;\n cursor: pointer;\n pointer-events: all;\n flex-shrink: 0;\n border-radius: 100px;\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n color: #030303;\n transition: all 0.3s ease-in-out;\n outline-color: #3191fc;\n}\n.step-button.active.svelte-1mxltt0 {\n background-color: #014FD3;\n color: #FFFFFF;\n box-shadow: none;\n border-color: #014FD3;\n}\n.step-button.active.svelte-1mxltt0:after {\n opacity: 100%;\n animation: svelte-1mxltt0-stepDurationAnimation var(--stepDuration) linear forwards;\n animation-play-state: running;\n}\n.step-button.svelte-1mxltt0:hover:not(.active) {\n background: #F3F4F6;\n}\n.step-button.svelte-1mxltt0:active:not(.active) {\n background: #E4E5E8;\n}\n.step-button.svelte-1mxltt0:focus {\n outline-offset: 4px;\n outline-width: 2px;\n}\n/* (unused) .step-button:has(> .tiny) {\n pointer-events: none;\n cursor: default;\n}*/\n.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0) {\n display: block;\n box-sizing: border-box;\n pointer-events: none;\n white-space: nowrap;\n}\n/* (unused) .step-button span.tiny {\n width: calc(var(--stepSize) / 2);\n height: calc(var(--stepSize) / 2);\n}*/\n.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0):after {\n content: "";\n background-color: rgba(0, 0, 0, 0.6);\n position: absolute;\n border-radius: var(--stepSize);\n width: 0;\n height: 100%;\n top: 0;\n left: -100%;\n opacity: 0;\n transform: translateX(0);\n animation-play-state: paused;\n}\n\n.step-arrow.svelte-1mxltt0 {\n width: 32px;\n height: 34px;\n position: absolute;\n z-index: 10;\n bottom: 4px;\n border: none;\n background-color: #FBFBFB;\n padding: 10px;\n pointer-events: none;\n cursor: pointer;\n opacity: 0;\n}\n.step-arrow.svelte-1mxltt0:hover {\n background: #F6F6F7;\n}\n.step-arrow.svelte-1mxltt0:active {\n background: #E4E5E8;\n}\n\n.step-arrow-prev.svelte-1mxltt0 {\n left: 0;\n transform: translateX(-100%);\n animation: svelte-1mxltt0-arrow-left-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;\n}\n.step-arrow-prev.visible.svelte-1mxltt0 {\n pointer-events: auto;\n animation: svelte-1mxltt0-arrow-left-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;\n}\n.step-arrow-prev.svelte-1mxltt0 img:where(.svelte-1mxltt0) {\n transform: rotate(180deg);\n}\n\n.step-arrow-next.svelte-1mxltt0 {\n right: 0;\n transform: translateX(100%);\n animation: svelte-1mxltt0-arrow-right-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;\n}\n.step-arrow-next.visible.svelte-1mxltt0 {\n pointer-events: auto;\n animation: svelte-1mxltt0-arrow-right-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;\n}\n\nimg.svelte-1mxltt0 {\n height: 100%;\n}\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}.pause-button.svelte-a3r6re {\n position: absolute;\n top: 10px;\n right: 10px;\n background: #FFFFFF;\n border-radius: 100%;\n border: 1px #C4C8CF solid;\n padding: 0;\n width: 32px;\n height: 32px;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: auto;\n transition: background 0.2s ease-in-out;\n cursor: pointer;\n outline-color: #3191fc;\n}\n.pause-button.svelte-a3r6re:hover {\n background: #F6F6F7;\n}\n.pause-button.svelte-a3r6re:active {\n background: #E4E5E8;\n}\n.pause-button.svelte-a3r6re:focus {\n outline-offset: 8px;\n outline-width: 2px;\n}\n.pause-button.svelte-a3r6re img:where(.svelte-a3r6re) {\n width: 16px;\n height: 16px;\n pointer-events: none;\n}.covers-container.svelte-1rvgxfc {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-snap-type: x mandatory;\n display: flex;\n pointer-events: auto;\n}\n.covers-container.svelte-1rvgxfc::-webkit-scrollbar {\n display: none;\n}\n\n.cover-container.svelte-1rvgxfc {\n position: relative;\n width: 100%;\n height: 100%;\n flex-shrink: 0;\n scroll-snap-align: center;\n user-select: none;\n}\n\n.cover-image.svelte-1rvgxfc {\n width: 100%;\n height: 100%;\n object-fit: cover;\n pointer-events: none;\n}\n.cover-image.active.svelte-1rvgxfc {\n opacity: 0;\n}\n\n.ui-container.svelte-1rvgxfc {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}.eko-gallery-app.svelte-1n46o8q {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n user-select: none;\n box-sizing: border-box;\n}\n.eko-gallery-app.svelte-1n46o8q:hover .paging-buttons:where(.svelte-1n46o8q) .nav-button {\n background-color: #FFFFFF;\n box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.12);\n}\n.eko-gallery-app.svelte-1n46o8q * {\n box-sizing: border-box;\n}\n\n.player-container.svelte-1n46o8q {\n position: relative;\n flex: 1;\n width: 100%;\n pointer-events: none;\n overflow: hidden;\n}\n\n.absolute-full.svelte-1n46o8q {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}\n\n.swipable.svelte-1n46o8q {\n will-change: transform;\n transform: translate3d(var(--uiTranformX, 0), 0, 0);\n}\n\n.paging-buttons.svelte-1n46o8q {\n display: flex;\n justify-content: space-between;\n align-items: center;\n pointer-events: none;\n padding: 0 12px;\n}\n.paging-buttons.svelte-1n46o8q .nav-button {\n transition: 0.2s ease-in-out;\n box-shadow: none;\n}\n.paging-buttons.svelte-1n46o8q .nav-button img {\n opacity: 0.6;\n}'),EC=u("gallery-react");const SC=e.forwardRef(((t,n)=>{const i=e.useRef(null),r=e.useRef({}),{config:o,debug:s,ssrHtml:a,activeItem:l={index:0,step:0},onEvent:c=()=>{}}=t,u=function(t){return void 0!==t}(o),d=e.useRef(l),h=e.useRef(a),f=e.useCallback((t=>{r.current.state=t,t.activeItemIndex===d.current.index&&t.activeModuleIndex===d.current.step||c("activeitemchanged",{index:t.activeItemIndex,step:t.activeModuleIndex})}),[]),p=e.useCallback((t=>{r.current.API=t,r.current.unsubscribe&&r.current.unsubscribe(),r.current.unsubscribe=t.subscribe(f)}),[]);return e.useEffect((()=>(EC.setDataStorage("gallery-react",{config:o}),window.eko=window.eko||{},window.eko.config=o,window.eko.gallery={version:"4.0.1"},()=>{window.eko.config=void 0})),[o]),e.useImperativeHandle(n,(()=>({prev:()=>{var t;null===(t=r.current.API)||void 0===t||t.prev()},next:()=>{var t;null===(t=r.current.API)||void 0===t||t.next()}}))),e.useEffect((()=>{if(null==i||!i.current)return;const t=i.current;return r.current.app=new TC({target:t,props:{config:o,hideNav:!0,onGalleryReady:p}}),()=>{var t;null===(t=r.current.app)||void 0===t||t.destroy()}}),[]),e.useEffect((()=>{r.current.app&&(r.current.app.props.config=o)}),[o]),e.useEffect((()=>{r.current.app&&(r.current.app.props.debug=s)}),[s]),e.useEffect((()=>{d.current=l,r.current.state&&(r.current.state.activeItemIndex===l.index&&r.current.state.activeModuleIndex===l.step||r.current.API.selectItemAndStep(l.index,l.step))}),[l]),u?e.createElement(e.Fragment,null,e.createElement(IC,null),e.createElement("div",R({style:{position:"relative",width:"100%",height:"100%"},ref:i},h.current?{dangerouslySetInnerHTML:{__html:h.current}}:{}))):t.children}));SC.propTypes={className:Tt.string,config:Tt.object,variantId:Tt.string,onEvent:Tt.func,ssrHtml:Tt.string,debug:Tt.bool,activeItem:Tt.shape({index:Tt.number,step:Tt.number}),instanceId:Tt.string,children:Tt.node},SC.displayName="EkoGallerySvelte";const NC=n("v2"),AC=n("v1"),MC="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{},FC=MC&&MC.performance,CC=FC&&"function"==typeof FC.now?()=>FC.now():()=>Date.now(),OC=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"}),PC=["ui-monospace,","SFMono-Regular,","Menlo,","Monaco,","Consolas,",'"Liberation Mono",','"Courier New",',"monospace"].join(" "),RC=`11px ${PC}`,DC=`12px ${PC}`;function BC(t){return"number"==typeof t&&Number.isFinite(t)}function LC(t){return BC(t)&&t>0}function zC(t){return BC(t)?Math.min(1,Math.max(0,t)):0}function WC(t,e=3){return BC(t)?t.toFixed(e):String(t)}function UC(t,e){const n=Number(t),i=Number(e);return!Number.isFinite(n)||!Number.isFinite(i)||n<=0||i<=0?"n/a":`${Math.round(n)}x${Math.round(i)}`}var $C=new WeakMap,jC=new WeakMap,qC=new WeakMap,VC=new WeakMap,HC=new WeakMap,GC=new WeakMap,KC=new WeakMap,XC=new WeakSet;class YC{constructor({width:t=220,height:e=48,windowMs:n=6e4,maxValue:i=60,autoScale:r=!1,formatValue:o}={}){O(this,XC),F(this,$C,void 0),F(this,jC,void 0),F(this,qC,[]),F(this,VC,void 0),F(this,HC,void 0),F(this,GC,void 0),F(this,KC,void 0);const s=null==MC?void 0:MC.document;if(!s||"function"!=typeof s.createElement)throw new Error("Debug overlay graph requires document.createElement.");C($C,this,s.createElement("canvas")),M($C,this).width=t,M($C,this).height=e,M($C,this).style.width=`${t}px`,M($C,this).style.height=`${e}px`,M($C,this).style.borderRadius="6px",M($C,this).style.background="#111",C(jC,this,M($C,this).getContext("2d")),C(VC,this,n),C(HC,this,i),C(GC,this,!!r),C(KC,this,"function"==typeof o?o:null)}get element(){return M($C,this)}push(t,e){if(M($C,this)&&M(jC,this)&&Number.isFinite(t)&&Number.isFinite(e)){for(M(qC,this).push({t:e,v:t});M(qC,this).length&&e-M(qC,this)[0].t>M(VC,this);)M(qC,this).shift();N(XC,this,QC).call(this)}}dispose(){C(qC,this,[]),C(jC,this,null),C($C,this,null)}}function QC(){const t=M(jC,this),e=M($C,this);if(!t||!e)return;const n=e.width,i=e.height;if(!n||!i)return;if(t.clearRect(0,0,n,i),t.fillStyle="#111",t.fillRect(0,0,n,i),!M(qC,this).length)return;const r=M(qC,this)[0].t;if(!(M(qC,this)[M(qC,this).length-1].t>r))return;const o=M(GC,this)?M(qC,this).reduce(((t,e)=>e.v>t?e.v:t),0):M(HC,this),s=o>0?o:M(HC,this);t.strokeStyle="#0f0",t.lineWidth=2,t.beginPath();for(let e=0;e<M(qC,this).length;e+=1){const o=M(qC,this)[e],a=(o.t-r)/M(VC,this)*n,l=i-(s>0?Math.min(1,Math.max(0,o.v/s)):0)*i;0===e?t.moveTo(a,l):t.lineTo(a,l)}t.stroke();const a=M(qC,this).length?M(qC,this)[M(qC,this).length-1]:null,l=Number.isFinite(null==a?void 0:a.v)?a.v:null;if(null===l)return;const c=M(KC,this)?M(KC,this).call(this,l):l.toFixed(1);if("string"!=typeof c||!c)return;t.font=RC,t.textAlign="right",t.textBaseline="top";const u=t.measureText(c),d=Math.ceil(u.width)+8,h=n-d-2;t.fillStyle="rgba(0,0,0,0.55)",t.fillRect(h,2,d,14),t.fillStyle="#fff",t.fillText(c,n-2-4,4)}const JC=new Intl.NumberFormat("en-US");function ZC(t,e){const n=(null==t?void 0:t.trackId)||"",i=(null==e?void 0:e.trackId)||"";if(n!==i)return n<i?-1:1;const r=(null==t?void 0:t.nodeId)||"",o=(null==e?void 0:e.nodeId)||"";if(r!==o)return r<o?-1:1;const s=(null==t?void 0:t.segmentId)||"",a=(null==e?void 0:e.segmentId)||"";return s!==a?s<a?-1:1:("number"==typeof(null==t?void 0:t.presentationTime)?t.presentationTime:0)-("number"==typeof(null==e?void 0:e.presentationTime)?e.presentationTime:0)}function tO(t,e){for(t.push(e);t.length&&e-t[0]>1e3;)t.shift();if(t.length<2)return 0;const n=t[t.length-1]-t[0];return n<=0?0:1e3*(t.length-1)/n}function eO(t,e){if("function"!=typeof t||!e)return;const n=t(e.nodeId),i=null==n?void 0:n.tracks;if(!Array.isArray(i))return;const r=i.find((t=>(null==t?void 0:t.id)===e.trackId)),o=null==r?void 0:r.segments;return Array.isArray(o)?o.find((t=>(null==t?void 0:t.id)===e.segmentId)):void 0}function nO(t,e){var n;const i=eO(t,e);return(null==i?void 0:i.abrDecision)||(null==i||null===(n=i.chosenRepresentation)||void 0===n?void 0:n.abrDecision)}function iO(t){const e=Number(t);return!Number.isFinite(e)||e<=0?"n/a":`${JC.format(Math.round(e))}kbps`}function rO(t){const e=Number(t);return!Number.isFinite(e)||e<=0?"n/a":`${JC.format(Math.round(e/1e3))}kbps`}function oO(t,e=3){const n=Number(t);return Number.isFinite(n)?n.toLocaleString("en-US",{minimumFractionDigits:e,maximumFractionDigits:e}):String(t)}function sO(t,e){var n;if("function"!=typeof t||!e)return;const i=t(e.nodeId),r=null==i||null===(n=i.manifestRef)||void 0===n?void 0:n.encodeProfile;return"string"==typeof r&&r?r:void 0}function aO(t,e){if("function"!=typeof t||!e)return;const n=t(e.nodeId);return!0===(null==n?void 0:n.imageFallbackActive)?"image":void 0}function lO(t,e){const n=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}}}(null==e?void 0:e.frame)||{},i=Number.isFinite(null==e?void 0:e.width)?e.width:n.width,r=Number.isFinite(null==e?void 0:e.height)?e.height:n.height,o=function(t,e,n){return null===(n=eO(t,e))||void 0===n?void 0:n.chosenRepresentation}(t,e);if(!o)return BC(i)&&BC(r)?{width:i,height:r}:null;const s=o.width||o.codedWidth||i,a=o.height||o.codedHeight||r;return{id:o.id,codecs:o.codecs,mime:o.mime,bandwidth:o.bandwidth,width:s,height:a}}function cO(t){const e=Number(t);if(Number.isFinite(e)&&!(e<=0))return e/1e3}function uO(t,e){const n=Number(null==t?void 0:t.bandwidthKbps),i=Number(null==e?void 0:e.bandwidthKbps),r=Number.isFinite(n)&&n>0,o=Number.isFinite(i)&&i>0;if(r&&o&&n!==i)return n-i;if(r!==o)return r?-1:1;const s=(null==t?void 0:t.id)||"",a=(null==e?void 0:e.id)||"";return s===a?0:s<a?-1:1}function dO(t,e,n,i){const r=[];if(Array.isArray(null==i?void 0:i.availableRepresentations)&&i.availableRepresentations.forEach((t=>{const e="string"==typeof(null==t?void 0:t.id)&&t.id?t.id:void 0;if(!e)return;const n=Number(null==t?void 0:t.bandwidthKbps);r.push({id:e,bandwidthKbps:Number.isFinite(n)&&n>0?n:void 0})})),!r.length){const n=eO(t,e);(Array.isArray(null==n?void 0:n.representations)?n.representations:[]).forEach((t=>{const e="string"==typeof(null==t?void 0:t.id)&&t.id?t.id:void 0;e&&r.push({id:e,bandwidthKbps:cO(null==t?void 0:t.bandwidth)})}))}!r.length&&(null==n?void 0:n.id)&&r.push({id:n.id,bandwidthKbps:cO(n.bandwidth)});const o=new Map;return r.forEach((t=>{const e=null==t?void 0:t.id;e&&!o.has(e)&&o.set(e,t)})),Array.from(o.values()).sort(uO)}const hO=1024,fO=1048576,pO=1073741824;function mO(t){return BC(t)?t>=1e3?`${WC(t/1e3,1)} Mbps`:`${WC(t,1)} kbps`:"n/a"}function gO({downloadSpeed:t,downloadEvents:e}={}){const n=MC.document,i="function"==typeof(null==t?void 0:t.getKbps)?t.getKbps():void 0;let r=0;const{metricsRow:o,setInitial:s,setTotal:a}=function(t){const e=t.createElement("div");e.style.display="grid",e.style.gridTemplateColumns="1fr 1fr",e.style.gap="8px",e.style.font=DC;const n=t.createElement("div"),i=t.createElement("div");return e.appendChild(n),e.appendChild(i),{metricsRow:e,setInitial:t=>{n.textContent=`initial=${mO(t)}`},setTotal:t=>{var e;i.textContent="total="+(BC(e=t)?e<hO?`${Math.round(e)} B`:e<fO?`${WC(e/hO,1)} KB`:e<pO?`${WC(e/fO,2)} MB`:`${WC(e/pO,2)} GB`:"n/a")}}}(n),{graphWrap:l,speedGraph:c}=function(t,e){const n=t.createElement("div");n.style.marginTop="10px";const i=t.createElement("div");i.textContent="download speed",i.style.font=RC,i.style.opacity="0.9";const r=BC(e)&&e>0?e:1,o=new YC({autoScale:!0,maxValue:r,formatValue:mO});return n.appendChild(i),n.appendChild(o.element),{graphWrap:n,speedGraph:o}}(n,i);s(i),a(r);const u=t=>{const e=Number(null==t?void 0:t.kbps);Number.isFinite(e)&&c.push(e,null!=MC&&MC.performance&&"function"==typeof MC.performance.now?MC.performance.now():Date.now())},d=t=>{const e=Number(null==t?void 0:t.bytes);Number.isFinite(e)&&(r+=e,a(r))};return t&&"function"==typeof t.on&&t.on("download:speed",u),e&&"function"==typeof e.on&&e.on("download:sample",d),{id:"downloads",title:"Downloads",render:t=>{t.appendChild(o),t.appendChild(l)},dispose:()=>{t&&"function"==typeof t.off&&t.off("download:speed",u),e&&"function"==typeof e.off&&e.off("download:sample",d),c.dispose()}}}function vO(t){return BC(t)?WC(t,3):"n/a"}function yO(){return null!=MC&&MC.performance&&"function"==typeof MC.performance.now?MC.performance.now():Date.now()}const bO=18,kO="rgba(83,170,255,0.9)",xO={pending:"rgba(255,255,255,0.55)",resolving:"rgba(255,200,87,0.9)",ready:"rgba(102,214,141,0.9)",failed:"rgba(255,92,92,0.9)",missing:"rgba(160,160,160,0.9)"};function wO(t,e){if(LC(null==t?void 0:t.nodeDurationOverride))return t.nodeDurationOverride;if("function"!=typeof e)return null;const n=e(null==t?void 0:t.nodeId),i=null==n?void 0:n.duration;return LC(i)?i:null}function _O(t){const e=Number(null==t?void 0:t.duration);return e===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:LC(e)?e:null}function TO(t){return t===Number.POSITIVE_INFINITY}function IO(t){return BC(t)?String(t):""}function EO(t=[],e=[],n){const i=function(t=[],e){return Array.isArray(t)&&t.length?t.map((t=>t?["string"==typeof t.placementId?t.placementId:"","string"==typeof t.nodeId?t.nodeId:"",IO(t.offset),IO(wO(t,e)),!0===t.offsetPending?"1":"0",IO(t.nodeOffsetOverride),IO(t.nodeDurationOverride)].join("|"):"null")).join(";"):""}(t,n);return`${i}::${function(t=[]){return Array.isArray(t)&&t.length?t.map((t=>{if(!t)return"null";const e="string"==typeof t.renderPlacementId?t.renderPlacementId:"",n="string"==typeof t.type?t.type:"",i=IO(t.offset),r=_O(t);return[e,n,i,r===Number.POSITIVE_INFINITY?"inf":IO(r),!0===t.offsetPending?"1":"0"].join("|")})).join(";"):""}(e)}`}function SO(t=[],e){if(!Array.isArray(t)||!t.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n];if(!i||!0===i.offsetPending)continue;if(LC(i.nodeDurationOverride))continue;if("function"!=typeof e)return!0;const r=e(i.nodeId);if(!LC(null==r?void 0:r.duration))return!0}return!1}function NO(t=[]){return!(!Array.isArray(t)||!t.length)&&t.some((t=>!0===(null==t?void 0:t.offsetPending)))}function AO(t=[],e=[]){return NO(t)||NO(e)}function MO(t,e=[],n){if(!t||!Array.isArray(e)||!e.length)return;const i=t.querySelector('[data-segment-boundary="true"]');e.forEach((e=>{if(!e||!BC(e.startRatio)||!BC(e.endRatio))return;const r=zC(e.startRatio),o=zC(e.endRatio);if(!(o>r))return;const s=MC.document.createElement("div");s.dataset.bufferedSegment="true",s.style.position="absolute",s.style.top="0",s.style.bottom="0",s.style.left=100*r+"%",s.style.width=100*(o-r)+"%",s.style.background=n,s.style.opacity="0.8",s.style.pointerEvents="none",s.style.zIndex="0",i?t.insertBefore(s,i):t.appendChild(s)}))}function FO(t,e){if(!t)return;const n=t.querySelector('[data-active-highlight="true"]');if(!e)return void(n&&n.remove());if(n)return;const i=MC.document.createElement("div");i.dataset.activeHighlight="true",i.style.position="absolute",i.style.top="0",i.style.bottom="0",i.style.left="0",i.style.right="0",i.style.border="1px solid rgba(255,255,255,0.9)",i.style.borderRadius="4px",i.style.pointerEvents="none",i.style.zIndex="1",t.appendChild(i)}function CO({timeline:t,getNode:e}={}){const n=null==MC?void 0:MC.document;if(!n||"function"!=typeof n.createElement)throw new Error("Debug overlay timeline tab requires document.createElement.");const i=n.createElement("div");i.style.display="flex",i.style.flexDirection="column",i.style.gap="8px",i.style.position="relative";const r=n.createElement("div");r.style.position="absolute",r.style.display="none",r.style.pointerEvents="none",r.style.zIndex="2",r.style.padding="4px 6px",r.style.borderRadius="6px",r.style.background="rgba(0,0,0,0.8)",r.style.border="1px solid rgba(255,255,255,0.2)",r.style.color="#fff",r.style.font=RC,r.style.maxWidth="220px",r.style.whiteSpace="nowrap",r.style.overflow="hidden",r.style.textOverflow="ellipsis";const o=n.createElement("div");o.dataset.timelineHoverDetails="true",o.style.position="absolute",o.style.display="none",o.style.pointerEvents="none",o.style.zIndex="3",o.style.padding="6px 8px",o.style.borderRadius="8px",o.style.background="rgba(0,0,0,0.85)",o.style.border="1px solid rgba(255,255,255,0.25)",o.style.color="#fff",o.style.font=RC,o.style.maxWidth="260px",o.style.flexDirection="column",o.style.gap="6px";const s=n.createElement("div");s.style.font=DC,s.style.opacity="0.95";const a=n.createElement("div");a.style.font=RC,a.style.opacity="0.7",a.style.textTransform="uppercase",a.style.marginTop="4px";const l=n.createElement("div");l.style.display="flex",l.style.flexDirection="column",l.style.gap="4px",o.appendChild(s),o.appendChild(a),o.appendChild(l);const c=n.createElement("div");c.style.display="flex",c.style.justifyContent="space-between",c.style.alignItems="center";const u=n.createElement("div");u.style.display="flex",u.style.alignItems="baseline",u.style.gap="10px";const d=n.createElement("div");d.style.font=DC,d.style.opacity="0.9";const h=n.createElement("div");h.style.font=RC,h.style.opacity="0.65",u.appendChild(d),u.appendChild(h);const f=n.createElement("label");f.style.display="inline-flex",f.style.alignItems="center",f.style.gap="6px",f.style.font=RC,f.style.cursor="pointer";const p=n.createElement("input");p.type="checkbox",p.checked=!1;const m=n.createElement("span");m.textContent="Click to seek",f.appendChild(p),f.appendChild(m),c.appendChild(u),c.appendChild(f);const g=n.createElement("div");function v(t,e,{alignTop:i=!1}={}){const r=n.createElement("div");r.style.display="grid",r.style.gridTemplateColumns="64px 1fr",r.style.alignItems=i?"start":"center",r.style.gap="8px";const o=n.createElement("div");o.textContent=t,o.style.font=RC,o.style.opacity="0.8",i&&(o.style.paddingTop="2px");const s=n.createElement("div");s.style.position="relative",s.style.borderRadius="6px",s.style.background="rgba(255,255,255,0.08)",s.style.overflow="hidden",e&&(s.dataset.timelineLane=e);const a=n.createElement("div");return a.style.position="absolute",a.style.top="0",a.style.bottom="0",a.style.width="2px",a.style.background="rgba(255,255,255,0.8)",s.appendChild(a),r.appendChild(o),r.appendChild(s),g.appendChild(r),{track:s,indicator:a}}g.style.display="grid",g.style.gridTemplateRows="auto auto",g.style.gap="8px",i.appendChild(c),i.appendChild(g),i.appendChild(r),i.appendChild(o);const y=v("Nodes","nodes",{alignTop:!0}),b=v("Render","render");let k=[],x=[],w=0,_=!1,T=1;const I=new Map,E=new Map,S=new Map,N=new Map;let A=new Set,M=null,F=!1,C="",O=!1,P=0,R=0,D=null;function B(t){for(;t.childNodes.length>1;)t.removeChild(t.lastChild)}function L(){D&&(clearTimeout(D),D=null)}function z(){return!!O||!!t&&(Array.isArray(t.placements)||Array.isArray(t.renderPlacements))}function W(){if(!t)return!1;const e=Array.isArray(t.placements),n=Array.isArray(t.renderPlacements);if(!e&&!n)return!1;const i=e?t.placements:[],r=n?t.renderPlacements:[];return(i.length!==P||r.length!==R)&&(et(i,r),!0)}function U(){if(!O)return!1;const t=EO(k,x,e);return t!==C&&(C=t,Q(),tt(),!0)}function $(){z()?D=function({shouldSchedule:t,isScheduled:e,intervalMs:n,onTick:i}){return e?null:setTimeout(i,n)}({shouldSchedule:!0,isScheduled:!!D,intervalMs:O?100:250,onTick:()=>{D=null,z()&&(W()||U()||$())}}):L()}function j(t,e){const n=e>0?w/e:0;t.style.left=100*zC(n)+"%",t.style.transform="translateX(-1px)"}function q(){r.style.display="none"}function V(t,e){if(!t)return void q();r.textContent=t,r.style.display="block";const n=i.getBoundingClientRect(),o=r.getBoundingClientRect(),s=((null==e?void 0:e.clientX)||0)-n.left+12,a=((null==e?void 0:e.clientY)||0)-n.top+12,l=n.width-o.width-8,c=n.height-o.height-8,u=Math.max(8,Math.min(s,l)),d=Math.max(8,Math.min(a,c));r.style.left=`${u}px`,r.style.top=`${d}px`}function H(){o.style.display="none"}function G(t,r){const c="function"==typeof e&&t?e(t):null,u=Array.isArray(null==c?void 0:c.children)?c.children:[];if(!u.length)return void H();if(s.textContent=t,a.textContent="children",function(){for(;l.firstChild;)l.removeChild(l.firstChild)}(),u.forEach((t=>{t&&t.nodeId&&l.appendChild(function(t){const i=n.createElement("div");i.style.display="grid",i.style.gridTemplateColumns="10px 1fr auto auto",i.style.alignItems="center",i.style.gap="6px";const r="string"==typeof(null==t?void 0:t.nodeId)?t.nodeId:"",o=LC(null==t?void 0:t.weight)?t.weight:1,s=function(t){if(!t||"function"!=typeof e)return"missing";const n=e(t);if(!n)return"missing";const i="string"==typeof n.state?n.state.trim().toLowerCase():"";return"pending"===i||"resolving"===i||"ready"===i||"failed"===i?i:"pending"}(r);i.dataset.childId=r,i.dataset.childStatus=s;const a=n.createElement("span");a.dataset.statusIndicator=s,a.style.width="8px",a.style.height="8px",a.style.borderRadius="999px",a.style.background=xO[s]||xO.pending,a.style.display="inline-block";const l=n.createElement("span");l.textContent=r||"unknown",l.style.overflow="hidden",l.style.textOverflow="ellipsis",l.style.whiteSpace="nowrap";const c=n.createElement("span");c.textContent=`w=${WC(o,0)}`,c.style.opacity="0.8";const u=n.createElement("span");return u.textContent=s,u.style.opacity="0.75",i.appendChild(a),i.appendChild(l),i.appendChild(c),i.appendChild(u),i}(t))})),!l.childNodes.length)return void H();o.style.display="flex";const d=i.getBoundingClientRect(),h=o.getBoundingClientRect(),f=((null==r?void 0:r.clientX)||0)-d.left+12,p=((null==r?void 0:r.clientY)||0)-d.top+12,m=d.width-h.width-8,g=d.height-h.height-8,v=Math.max(8,Math.min(f,m)),y=Math.max(8,Math.min(p,g));o.style.left=`${v}px`,o.style.top=`${y}px`}function K(){const e=w;if(t&&"function"==typeof t.getPlacementsActiveAtTime){const n=t.getPlacementsActiveAtTime(e),i=new Set(n.map((t=>null==t?void 0:t.placementId)).filter((t=>"string"==typeof t&&t.length)));A.forEach((t=>{i.has(t)||FO(S.get(t),!1)})),i.forEach((t=>{A.has(t)||FO(S.get(t),!0)})),A=i}else y.track.querySelectorAll('[data-timeline-item="nodes"]').forEach((t=>{const n="true"===t.dataset.hasDuration,i=Number(t.dataset.start),r=Number(t.dataset.end);FO(t,n&&BC(e)&&e>=i&&e<r)}));if(t&&"function"==typeof t.getActiveRenderPlacement){const n=t.getActiveRenderPlacement(e),i=null==n?void 0:n.renderPlacementId;M&&M!==i&&FO(N.get(M),!1),i&&M!==i&&FO(N.get(i),!0),M=i||null}else b.track.querySelectorAll('[data-timeline-item="render"]').forEach((t=>{const n="true"===t.dataset.hasDuration,i=Number(t.dataset.start),r=Number(t.dataset.end);FO(t,n&&BC(e)&&e>=i&&e<r)}))}function X(t){const n=wO(t,e);if(!LC(n)||"function"!=typeof e)return{boundaries:[],buffered:[]};const i=e(null==t?void 0:t.nodeId),r=function(t){const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];if(!e.length)return null;if(null!=t&&t.mainTrackId){const n=e.find((e=>(null==e?void 0:e.id)===t.mainTrackId));if(n)return n}return e.find((t=>Array.isArray(null==t?void 0:t.segments)&&t.segments.length))||null}(i);if(!r)return{boundaries:[],buffered:[]};const o=t=>{if(!t)return 0;const e=Number(null==t?void 0:t.bufferedRatio);if(Number.isFinite(e))return zC(e);const n=Number(null==t?void 0:t.retainedByteLength);if(!LC(n))return 0;const i=null==t?void 0:t.chosenRepresentation,r=LC(null==i?void 0:i.sizeBytes)?i.sizeBytes:null;return LC(r)?zC(n/r):1},s=Array.isArray(r.segments)?r.segments:[],a=BC(null==r?void 0:r.offset)?r.offset:0,l=BC(null==t?void 0:t.nodeOffsetOverride)?t.nodeOffsetOverride:0;if(!s.length){const t=null==i?void 0:i.buffered,e=BC(null==t?void 0:t.start)?t.start-l:0,r=BC(null==t?void 0:t.end)?t.end-l:0,o=Math.max(0,e),s=Math.min(n,r);return s>o?{boundaries:[],buffered:[{startRatio:o/n,endRatio:s/n}]}:{boundaries:[],buffered:[]}}if("image"===(null==r?void 0:r.type)){const t=s.find((t=>t&&!t.isInit))||s[0],e=t?o(t):0;return e>0?{boundaries:[],buffered:[{startRatio:0,endRatio:zC(e)}]}:{boundaries:[],buffered:[]}}return function(t,e,n,i,r){const o=[],s=[];let a=0;return t.forEach((t=>{if(null!=t&&t.isInit)return;BC(null==t?void 0:t.offset)&&(a=t.offset);const l=a;if(!BC(l))return;const c=BC(null==t?void 0:t.duration)?t.duration:0,u=n+l-i,d=n+(l+c)-i;u>0&&u<e&&o.push(u/e);const h="function"==typeof r?r(t):0;if(c>0&&d>0&&u<e&&h>0){const t=Math.max(0,u),n=Math.min(e,d);if(n>t){const i=t+(n-t)*zC(h);s.push({startRatio:t/e,endRatio:i/e})}}c>0&&(BC(null==t?void 0:t.offset)?a=t.offset+c:a+=c)})),{boundaries:o,buffered:s}}(s,n,a,l,o)}function Y(){const t=Array.isArray(k)?k:[],e=new Map(t.map((t=>[null==t?void 0:t.placementId,t])));for(const[t,n]of S.entries()){if(!t)continue;const i=e.get(t);i&&(n.querySelectorAll('[data-buffered-segment="true"]').forEach((t=>t.remove())),MO(n,X(i).buffered,kO))}}function Q(){const t=new Set(k.map((t=>null==t?void 0:t.nodeId)).filter((t=>"string"==typeof t&&t.length)));t.forEach((t=>{if(E.has(t))return;const n="function"==typeof e?e(t):null;if(!n||"function"!=typeof n.on)return;const i=t=>function(t={}){if(!t||t.isInit)return;const e=null==t?void 0:t.nodeId,n=null==t?void 0:t.segmentId,i=Number(null==t?void 0:t.loaded),r=Number(null==t?void 0:t.total);if(!e||!n||!BC(i))return;const o=`${e}:${n}`,s=I.get(o)||{},a={loaded:Math.max(BC(s.loaded)?s.loaded:0,i),total:LC(r)?r:s.total};I.set(o,a),function(){if(F)return;F=!0;const t=null==MC?void 0:MC.requestAnimationFrame;"function"!=typeof t?((null==MC?void 0:MC.setTimeout)||setTimeout)((()=>{F=!1,Y()}),0):t((()=>{F=!1,Y()}))}()}(t);n.on("segment:chunk",i),E.set(t,{node:n,handler:i})}));for(const[e,n]of E.entries())t.has(e)||(null!=n&&n.node&&"function"==typeof n.node.off&&n.node.off("segment:chunk",n.handler),E.delete(e))}function J({track:t,color:e,start:i,duration:r,startTime:o,durationSeconds:s,segmentRatios:a,bufferedSegments:l,placementId:c,nodeId:u,label:d,rowIndex:h=0,rowHeight:f=18,rowGap:p=0,laneId:m,isClickable:g,isActive:v,tooltip:y,hoverDetailsNodeId:b,showLabel:k,onClick:x}){const w=n.createElement("div");var _,T;T=e,(_=w).style.position="absolute",_.style.borderRadius="4px",_.style.background=T,_.style.opacity="0.9",_.style.font=RC,_.style.color="#fff",_.style.display="flex",_.style.alignItems="center",_.style.whiteSpace="nowrap",_.style.overflow="hidden",_.style.textOverflow="ellipsis",function(t,{startRatio:e,durationRatio:n,rowIndex:i=0,rowHeight:r=18,rowGap:o=0}={}){const s=i*(r+o)+2,a=Math.max(1,r-4);t.style.top=`${s}px`,t.style.height=`${a}px`;const l=zC(e);if(LC(n)){const e=Math.max(0,Math.min(n,1-l));return t.style.left=100*l+"%",t.style.width=100*e+"%",void(t.style.padding="0 4px")}t.style.left=100*l+"%",t.style.width="2px",t.style.padding="0"}(w,{startRatio:i,durationRatio:r,rowIndex:h,rowHeight:f,rowGap:p}),function(t,{laneId:e,label:n,isClickable:i,shouldShowLabel:r,onClick:o}={}){if(e&&(t.dataset.timelineItem=e),r&&n){const e=MC.document.createElement("span");e.textContent=n,e.style.position="relative",e.style.zIndex="2",e.style.pointerEvents="none",t.appendChild(e)}i&&(t.style.cursor="pointer"),"function"==typeof o&&t.addEventListener("click",o)}(w,{laneId:m,label:d,isClickable:g,shouldShowLabel:"boolean"==typeof k?k:LC(r),onClick:x}),y&&(w.title=y),BC(o)&&(w.dataset.start=String(o)),LC(s)||TO(s)?(w.dataset.end=String(o+s),w.dataset.hasDuration="true"):(w.dataset.end="",w.dataset.hasDuration="false"),c&&(w.dataset.placementId=c),u&&(w.dataset.nodeId=u),w.style.pointerEvents="auto",MO(w,l,kO),function(t,e=[]){t&&Array.isArray(e)&&e.length&&e.forEach((e=>{if(!BC(e)||e<=0||e>=1)return;const n=MC.document.createElement("div");n.dataset.segmentBoundary="true",n.style.position="absolute",n.style.top="2px",n.style.bottom="2px",n.style.width="1px",n.style.left=100*zC(e)+"%",n.style.transform="translateX(-0.5px)",n.style.background="rgba(255,255,255,0.35)",n.style.pointerEvents="none",n.style.zIndex="1",t.appendChild(n)}))}(w,a),FO(w,v),y&&(w.addEventListener("mouseenter",(t=>V(y,t))),w.addEventListener("mousemove",(t=>V(y,t))),w.addEventListener("mouseleave",q)),b&&(w.addEventListener("mouseenter",(t=>G(b,t))),w.addEventListener("mousemove",(t=>G(b,t))),w.addEventListener("mouseleave",H)),t.appendChild(w),"nodes"===m&&c?S.set(c,w):"render"===m&&c&&N.set(c,w)}function Z(){let t=0;const n=Array.isArray(k)?k:[],i=Array.isArray(x)?x.filter((t=>!0!==(null==t?void 0:t.offsetPending))):[];return n.forEach((n=>{if(!0===(null==n?void 0:n.offsetPending))return;const i=BC(null==n?void 0:n.offset)?n.offset:void 0;if(!BC(i))return;const r=wO(n,e);t=LC(r)?Math.max(t,i+r):Math.max(t,i)})),i.forEach((e=>{const n=BC(null==e?void 0:e.offset)?e.offset:0,i=_O(e);t=LC(i)?Math.max(t,n+i):Math.max(t,n)})),LC(t)?t:1}function tt(){const n=Z();T=n,d.textContent=`t=${WC(w)}s`,h.textContent=`range=0-${WC(n)}s`,q(),H(),B(y.track),B(b.track),S.clear(),N.clear(),A=new Set,M=null,F=!1;const i=Array.isArray(k)?k:[],r=Array.isArray(x)?x:[],o=function(n){const i=(Array.isArray(n)?n.slice():[]).map((t=>{if(!0===(null==t?void 0:t.offsetPending))return null;const n=BC(null==t?void 0:t.offset)?t.offset:void 0;if(!BC(n))return null;const i=wO(t,e);return{placement:t,offset:n,duration:i,end:LC(i)?n+i:n,rowIndex:0}})).filter(Boolean).sort(((t,e)=>{var n,i,r,o;const s=t.offset-e.offset;if(0!==s)return s;const a="string"==typeof(null===(n=t.placement)||void 0===n?void 0:n.nodeId)?t.placement.nodeId:"",l="string"==typeof(null===(i=e.placement)||void 0===i?void 0:i.nodeId)?e.placement.nodeId:"";if(a!==l)return a.localeCompare(l);const c="string"==typeof(null===(r=t.placement)||void 0===r?void 0:r.placementId)?t.placement.placementId:"",u="string"==typeof(null===(o=e.placement)||void 0===o?void 0:o.placementId)?e.placement.placementId:"";return c.localeCompare(u)})),r=[],o=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);return i.forEach((t=>{const e=t.offset,n=BC(t.end)?t.end:e;let i=-1;for(let t=0;t<r.length;t+=1)if(r[t]<=e+o){i=t;break}-1===i?(i=r.length,r.push(n)):r[i]=Math.max(r[i],n),t.rowIndex=i})),{items:i,rowCount:Math.max(1,r.length)}}(i);var s;!function(t){const e=t.rowCount*bO+4*(t.rowCount-1);y.track.style.height=`${e}px`,b.track.style.height="18px",y.track.style.cursor=_?"pointer":"default",y.track.style.pointerEvents="auto",b.track.style.pointerEvents="auto"}(o),s=n,o.items.forEach((t=>{const e=t.placement,n=t.offset,i=t.duration,r=(null==e?void 0:e.nodeId)||(null==e?void 0:e.placementId)||"node",o=!!BC(w)&&w>=n&&(!LC(i)||w<n+i),a=X(e);J({track:y.track,color:"rgba(255,255,255,0.16)",start:zC(n/s),duration:LC(i)?zC(i/s):null,startTime:n,durationSeconds:i,segmentRatios:a.boundaries,bufferedSegments:a.buffered,placementId:null==e?void 0:e.placementId,nodeId:null==e?void 0:e.nodeId,label:r,rowIndex:t.rowIndex,rowHeight:bO,rowGap:4,laneId:"nodes",isClickable:_,isActive:o,tooltip:(null==e?void 0:e.nodeId)||(null==e?void 0:e.placementId),hoverDetailsNodeId:null==e?void 0:e.nodeId})})),function(t,e){t.forEach((t=>{const n=BC(null==t?void 0:t.offset)?t.offset:void 0;if(!BC(n))return;const i=_O(t),r=TO(i),o=(null==t?void 0:t.type)||(null==t?void 0:t.renderPlacementId)||"render",s=function(t){const e="string"==typeof t?t.trim().toLowerCase():"";return"switch"===e||"switching"===e||"switchingrendernode"===e}(null==t?void 0:t.type),a=s?()=>{"function"==typeof(null==MC?void 0:MC.switchTo)&&MC.switchTo("next")}:void 0;let l=!1;BC(w)&&(r?l=w>=n:LC(i)&&(l=w>=n&&w<n+i));const c=r&&LC(e)?zC((e-n)/e):LC(i)?zC(i/e):null;J({track:b.track,color:"rgba(248,162,62,0.9)",start:zC(n/e),duration:c,startTime:n,durationSeconds:i,label:o,placementId:null==t?void 0:t.renderPlacementId,rowIndex:0,rowHeight:bO,rowGap:0,laneId:"render",isClickable:!!s,isActive:l,tooltip:(null==t?void 0:t.type)||(null==t?void 0:t.renderPlacementId),showLabel:LC(i)||r,onClick:a})}))}(r,n),j(y.indicator,n),j(b.indicator,n),K(),Y(),O=AO(k,x)||SO(k,e),C=O?EO(k,x,e):"",P=Array.isArray(k)?k.length:0,R=Array.isArray(x)?x.length:0,$()}function et(t,n){k=Array.isArray(t)?t.slice():[],x=Array.isArray(n)?n.slice():[],O=AO(k,x)||SO(k,e),Q(),tt()}return p.addEventListener("change",(()=>{_=p.checked,tt()})),y.track.addEventListener("click",(e=>{!function(e,n,i){if(!_||!t)return;if(!LC(n)||!i)return;const r="function"==typeof i.getBoundingClientRect?i.getBoundingClientRect():null,o=LC(null==r?void 0:r.width)?r.width:i.clientWidth;if(!LC(o))return;const s=BC(null==r?void 0:r.left)?r.left:0,a=zC(((BC(null==e?void 0:e.clientX)?e.clientX:0)-s)/o)*n;BC(a)&&(t.currentTime=a)}(e,Z(),y.track)})),{id:"timeline",title:"Timeline",render:t=>{t.appendChild(i),tt()},updatePlacements:et,updateTime:function(t){if(w=BC(t)?t:w,W())return;if(O&&U())return;const e=T;BC(e)&&(d.textContent=`t=${WC(w)}s`,h.textContent=`range=0-${WC(e)}s`,j(y.indicator,e),j(b.indicator,e),K())},refresh:()=>tt(),dispose:()=>{L();for(const t of E.values())(null==t?void 0:t.node)&&"function"==typeof t.node.off&&t.node.off("segment:chunk",t.handler);E.clear(),I.clear()}}}const OO=1024,PO=1048576,RO=1073741824;function DO(t){return BC(t)?t<OO?`${Math.round(t)} B`:t<PO?`${WC(t/OO,1)} KB`:t<RO?`${WC(t/PO,2)} MB`:`${WC(t/RO,2)} GB`:"n/a"}const BO="ekoplayer-debug-overlay";var LO=new WeakMap,zO=new WeakMap,WO=new WeakMap,UO=new WeakMap,$O=new WeakSet;class jO{constructor({tabBarEl:t,contentEl:e}){O(this,$O),F(this,LO,[]),F(this,zO,void 0),F(this,WO,void 0),F(this,UO,void 0),C(WO,this,t),C(UO,this,e)}registerTab(t){t&&"string"==typeof t.id&&"string"==typeof t.title&&"function"==typeof t.render&&(M(LO,this).some((e=>e.id===t.id))||(M(LO,this).push(t),N($O,this,qO).call(this),M(zO,this)||this.selectTab(t.id)))}selectTab(t){M(LO,this).find((e=>e.id===t))&&(C(zO,this,t),N($O,this,qO).call(this),N($O,this,VO).call(this))}dispose(){M(WO,this)&&(M(WO,this).innerHTML=""),M(UO,this)&&(M(UO,this).innerHTML=""),C(LO,this,[]),C(WO,this,null),C(UO,this,null)}}function qO(){const t=M(WO,this);t&&(t.innerHTML="",M(LO,this).forEach((e=>{const n=MC.document.createElement("button");n.type="button",n.textContent=e.title,n.style.cursor="pointer",n.style.padding="6px 10px",n.style.borderRadius="6px",n.style.border="1px solid rgba(255,255,255,0.2)",n.style.background=e.id===M(zO,this)?"rgba(255,255,255,0.18)":"rgba(0,0,0,0.2)",n.style.color="#fff",n.style.font=DC,n.addEventListener("click",(()=>this.selectTab(e.id))),t.appendChild(n)})))}function VO(){const t=M(UO,this);if(!t)return;t.innerHTML="";const e=M(LO,this).find((t=>t.id===M(zO,this)));e&&e.render(t)}function HO({mountElement:t,canvasElement:e,timeline:n,getNode:i,listNodes:r,downloadSpeed:o,downloadEvents:s,qoe:a,qoeEvents:l,options:c={},playbackStartedAtMs:u,playerVersion:d}={}){if(!t)throw new Error("Debug overlay requires mountElement.");if(!n||"function"!=typeof n.on)throw new Error("Debug overlay requires a Timeline with .on/.off.");!function(t){if(!t||!t.style)return;const e=null==MC?void 0:MC.window,n=e&&"function"==typeof e.getComputedStyle?e.getComputedStyle(t):null,i=n?n.position:t.style.position;i&&"static"!==i||(t.style.position="relative")}(t);const h=MC.document.getElementById(BO);h&&h.parentNode&&h.parentNode.removeChild(h);const f=function({mountElement:t,playerVersion:e}){const n=null==MC?void 0:MC.document;if(!n||"function"!=typeof n.createElement)throw new Error("Debug overlay requires document.createElement.");const i=n.createElement("div");i.id=BO,i.style.position="absolute",i.style.inset="0",i.style.zIndex="999999",i.style.pointerEvents="none";const r=n.createElement("div");r.style.position="absolute",r.style.top="8px",r.style.left="8px",r.style.width="460px",r.style.maxWidth="calc(100% - 16px)",r.style.background="rgba(0,0,0,0.65)",r.style.border="1px solid rgba(255,255,255,0.18)",r.style.borderRadius="10px",r.style.padding="10px",r.style.color="#fff",r.style.pointerEvents="auto",r.style.backdropFilter="blur(6px)";const o=n.createElement("div");o.style.display="flex",o.style.justifyContent="space-between",o.style.alignItems="center",o.style.gap="10px";const s=n.createElement("div");s.textContent="EkoPlayer Debug",s.style.font="600 13px ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial";const a=n.createElement("button");a.type="button",a.textContent="Hide",a.style.cursor="pointer",a.style.padding="6px 10px",a.style.borderRadius="8px",a.style.border="1px solid rgba(255,255,255,0.2)",a.style.background="rgba(0,0,0,0.2)",a.style.color="#fff",o.appendChild(s),o.appendChild(a);const l=n.createElement("div");l.style.display="flex",l.style.gap="8px",l.style.marginTop="10px";const c=n.createElement("div");c.style.marginTop="10px";const u=n.createElement("div");u.style.marginTop="10px",u.style.font=RC,u.style.display="flex",u.style.justifyContent="space-between",u.style.alignItems="center",u.style.gap="10px";const d=n.createElement("div");d.style.color="rgba(140, 224, 255, 0.9)",d.textContent="Playback started @ --";const h=n.createElement("div");h.style.opacity="0.7",h.style.marginLeft="auto",h.textContent=e?`version ${e}`:"version n/a",u.appendChild(d),u.appendChild(h);const f=n.createElement("button");return f.type="button",f.textContent="Debug",f.style.position="absolute",f.style.top="8px",f.style.left="8px",f.style.cursor="pointer",f.style.padding="6px 10px",f.style.borderRadius="10px",f.style.border="1px solid rgba(255,255,255,0.25)",f.style.background="rgba(0,0,0,0.55)",f.style.color="#fff",f.style.pointerEvents="auto",f.style.display="none",r.appendChild(o),r.appendChild(l),r.appendChild(c),r.appendChild(u),i.appendChild(r),i.appendChild(f),t.appendChild(i),{overlayRoot:i,panel:r,tabBar:l,content:c,hideBtn:a,showBtn:f,footerPlayback:d}}({mountElement:t,playerVersion:d||(null==c?void 0:c.playerVersion)}),p=new jO({tabBarEl:f.tabBar,contentEl:f.content});let m=!0;function g(){m=!1,f.panel.style.display="none",f.showBtn.style.display="inline-block"}function v(){m=!0,f.panel.style.display="block",f.showBtn.style.display="none"}f.hideBtn.addEventListener("click",g),f.showBtn.addEventListener("click",v);const y=CO({timeline:n,getNode:i}),b=function({getNode:t}){const e=MC.document,n=e.createElement("pre");n.style.margin="0",n.style.whiteSpace="pre-wrap",n.style.font=DC,n.style.lineHeight="1.35";const i=e.createElement("div");i.style.display="flex",i.style.flexDirection="column",i.style.gap="8px",i.style.marginTop="6px";const r=e.createElement("div");r.style.display="flex",r.style.gap="10px",r.style.marginTop="10px",r.style.alignItems="center",r.style.flexWrap="wrap";const o=new YC({maxValue:60}),s=new YC({maxValue:60}),a=e.createElement("div"),l=e.createElement("div");l.textContent="browserfps",l.style.font=RC,l.style.opacity="0.9",a.appendChild(l),a.appendChild(o.element);const c=e.createElement("div"),u=e.createElement("div");return u.textContent="fps",u.style.font=l.style.font,u.style.opacity="0.9",c.appendChild(u),c.appendChild(s.element),r.appendChild(a),r.appendChild(c),{id:"frames",title:"Frames",render:t=>{t.appendChild(n),t.appendChild(i),t.appendChild(r)},pushBrowserFps:(t,e)=>o.push(t,e),pushVisualFps:(t,e)=>s.push(t,e),updateInfo:function({time:r,entries:o}){const s=Array.isArray(o)?o.slice().sort(ZC):[];if(!s.length)return n.textContent="",void(i.innerHTML="");n.textContent=`t=${oO(r)}s tracks=${s.length}`,i.innerHTML="";for(let n=0;n<s.length;n+=1){const r=s[n],o=lO(t,r),a=(null==o?void 0:o.id)||"n/a",l=(null==o?void 0:o.codecs)||(null==o?void 0:o.mime)||"n/a",c=rO(null==o?void 0:o.bandwidth),u=UC(null==o?void 0:o.width,null==o?void 0:o.height),d=sO(t,r)||"n/a",h=aO(t,r),f=h?` fallback=${h}`:"",p=nO(t,r),m=(null==p?void 0:p.strategy)||"n/a",g=(null==p?void 0:p.decisionReason)||"n/a",v=iO(null==p?void 0:p.measuredDownloadSpeedKbps),y=iO(null==p?void 0:p.safeBandwidthKbps),b=e.createElement("div");b.style.display="flex",b.style.flexDirection="column",b.style.gap="2px";const k=e.createElement("pre");k.style.margin="0",k.style.whiteSpace="pre-wrap",k.style.font=DC,k.style.lineHeight="1.35",k.textContent=[`${(null==r?void 0:r.nodeId)||"?"} ${(null==r?void 0:r.trackId)||"?"} ${(null==r?void 0:r.segmentId)||"?"} pts=${oO(null==r?void 0:r.presentationTime)}s`,`rep=${a} encodeProfile=${d}${f} res=${u} codec=${l} repBW=${c}`,`abr=strategy:${m} reason:${g} measuredBW:${v} safeBW:${y}`].join("\n"),b.appendChild(k);const x=(null==p?void 0:p.selectedRepresentationId)||(null==o?void 0:o.id),w=dO(t,r,o,p);if(w.length){const t=e.createElement("div");t.style.display="flex",t.style.alignItems="center",t.dataset.abrLadderRow="true",t.dataset.trackId=(null==r?void 0:r.trackId)||"",t.dataset.segmentId=(null==r?void 0:r.segmentId)||"";const n=e.createElement("div");n.style.display="inline-flex",n.style.alignItems="center",n.style.gap="2px",n.dataset.abrLadder="true",w.forEach((t=>{const i=e.createElement("span"),r=!!x&&t.id===x;i.dataset.abrLadderBlock="true",i.dataset.repId=t.id||"",i.dataset.selected=r?"true":"false",i.style.display="inline-block",i.style.width="10px",i.style.height="8px",i.style.borderRadius="2px",i.style.border="1px solid rgba(255,255,255,0.35)",i.style.background=r?"rgba(74, 222, 128, 0.95)":"rgba(156, 163, 175, 0.55)",i.title=`${t.id||"?"} ${iO(t.bandwidthKbps)}`,n.appendChild(i)})),t.appendChild(n),b.appendChild(t)}i.appendChild(b)}},dispose:()=>{o.dispose(),s.dispose()}}}({getNode:i}),k=gO({downloadSpeed:o,downloadEvents:s}),x=function({qoe:t,qoeEvents:e}={}){const n=null==MC?void 0:MC.document;if(!n||"function"!=typeof n.createElement)throw new Error("Debug overlay QoE tab requires document.createElement.");const i=n.createElement("pre");i.style.margin="0",i.style.whiteSpace="pre-wrap",i.style.font=DC;const{graphWrap:r,graph:o}=function(t){const e=t.createElement("div");e.style.marginTop="10px";const n=t.createElement("div");n.textContent="qoe score",n.style.font=RC,n.style.opacity="0.9";const i=new YC({maxValue:1,windowMs:3e4,formatValue:t=>vO(t)});return e.appendChild(n),e.appendChild(i.element),{graphWrap:e,graph:i}}(n);let s=null;const a=()=>{i.textContent=function(t){if(!t)return"QoE unavailable";const e="string"==typeof t.status?t.status:"n/a";return[`score=${vO(t.score)}`,`status=${e}`,`streamQualityScore=${vO(t.streamQualityScore)}`,`fpsScore=${vO(t.fpsScore)}`,`browserFps=${vO(t.browserFps)}`,`waitingSeconds=${vO(t.waitingSeconds)}`,`playingSeconds=${vO(t.playingSeconds)}`].join("\n")}(t)},l=()=>{if(!t)return;const e=Number(t.score);Number.isFinite(e)&&o.push(e,yO())},c=t=>{const e=Number(t);Number.isFinite(e)&&o.push(e,yO()),a()},u=()=>{a()};if(a(),l(),e&&"function"==typeof e.on&&(e.on("qoescore",c),e.on("qoestatus",u)),t){const t="function"==typeof(null==MC?void 0:MC.setInterval)?MC.setInterval:setInterval;s=t((()=>{l(),a()}),1e3)}return{id:"qoe",title:"QoE",render:t=>{t.appendChild(i),t.appendChild(r)},dispose:()=>{e&&"function"==typeof e.off&&(e.off("qoescore",c),e.off("qoestatus",u)),s&&(("function"==typeof(null==MC?void 0:MC.clearInterval)?MC.clearInterval:clearInterval)(s),s=null),o.dispose()}}}({qoe:a,qoeEvents:l}),w=function({timeline:t,getNode:e,listNodes:n,options:i}={}){const r=null==MC?void 0:MC.document;if(!r||"function"!=typeof r.createElement)throw new Error("Debug overlay Memory tab requires document.createElement.");const o=r.createElement("pre");o.style.margin="0",o.style.whiteSpace="pre-wrap",o.style.font=DC;const s=r.createElement("div");s.textContent="nodes",s.style.marginTop="10px",s.style.font=RC,s.style.opacity="0.9";const a=r.createElement("pre");a.style.margin="6px 0 0 0",a.style.whiteSpace="pre-wrap",a.style.font=DC;let l=null;const c=()=>{const r=function({timeline:t,getNode:e,listNodes:n}){const i=[];let r=0;if("function"==typeof n){let t;try{t=n()}catch(e){t=null}if(Array.isArray(t))return t.forEach((t=>{const e=null==t?void 0:t.id;if("string"!=typeof e||!e.length)return;const n=Number(null==t?void 0:t.retainedByteLength);Number.isFinite(n)&&(r+=n,i.push({nodeId:e,bytes:n}))})),i.sort(((t,e)=>e.bytes-t.bytes)),{totalBytes:r,nodes:i,available:!0}}if(!t||"function"!=typeof e)return{totalBytes:0,nodes:[],available:!1};const o=Array.isArray(t.placements)?t.placements:[];return new Set(o.map((t=>null==t?void 0:t.nodeId)).filter((t=>"string"==typeof t&&t.length))).forEach((t=>{const n=e(t),o=Number(null==n?void 0:n.retainedByteLength);Number.isFinite(o)&&(r+=o,i.push({nodeId:t,bytes:o}))})),i.sort(((t,e)=>e.bytes-t.bytes)),{totalBytes:r,nodes:i,available:!0}}({timeline:t,getNode:e,listNodes:n}),s=function({timeline:t}){if(!t||"function"!=typeof t.getDecodedFrameStats)return{totalBytes:0,frames:0,available:!1};try{const e=t.getDecodedFrameStats(),n=Number(null==e?void 0:e.totalBytes),i=Number(null==e?void 0:e.frames);return{totalBytes:Number.isFinite(n)?n:0,frames:Number.isFinite(i)?i:0,available:!1!==(null==e?void 0:e.available)}}catch(t){return{totalBytes:0,frames:0,available:!1}}}({timeline:t}),l=function(t,e,n,i){const r=Number(null!==(n=null==t||null===(i=t.publicOptions)||void 0===i?void 0:i.segmentEvictionMaxRetainedBytes)&&void 0!==n?n:null==t?void 0:t.segmentEvictionMaxRetainedBytes),o=BC(r)&&r>=0,s=o?DO(r):"n/a";return{active:o&&BC(e)&&e>r,thresholdLabel:s}}(i,r.available?r.totalBytes:NaN),c=l.active?"on":"off",u=s.available?DO(s.totalBytes):"n/a",d=s.available?s.frames:"n/a";if(!r.available)return o.textContent=[`decoded=${u} decodedFrames=${d}`,`retained=n/a eviction=${c} threshold=${l.thresholdLabel}`].join("\n"),void(a.textContent="");if(o.textContent=[`decoded=${u} decodedFrames=${d}`,[`retained=${DO(r.totalBytes)}`,`nodes=${r.nodes.length}`,`eviction=${c}`,`threshold=${l.thresholdLabel}`].join(" ")].join("\n"),!r.nodes.length)return void(a.textContent="none");const h=r.nodes.slice(0,8).map((t=>`${t.nodeId}: ${DO(t.bytes)}`));a.textContent=h.join("\n")};c();const u="function"==typeof(null==MC?void 0:MC.setInterval)?MC.setInterval:setInterval;return l=u(c,1e3),{id:"memory",title:"Memory",render:t=>{t.appendChild(o),t.appendChild(s),t.appendChild(a)},refresh:c,dispose:()=>{l&&(("function"==typeof(null==MC?void 0:MC.clearInterval)?MC.clearInterval:clearInterval)(l),l=null)}}}({timeline:n,getNode:i,listNodes:r,options:c});p.registerTab(y),p.registerTab(b),p.registerTab(k),p.registerTab(x),p.registerTab(w),p.registerTab(function({options:t}={}){const e=null==MC?void 0:MC.document;if(!e||"function"!=typeof e.createElement)throw new Error("Debug overlay options tab requires document.createElement.");const n=e.createElement("pre");n.style.margin="0",n.style.font=DC,n.style.whiteSpace="pre-wrap",n.style.wordBreak="break-word";const i=null==t?void 0:t.publicOptions,r=i&&"object"==typeof i?Object.keys(i):[];if(r.length){const t=r.map((t=>`${t}=${function(t){if(null===t)return"null";if(void 0===t)return"undefined";const e=typeof t;if("string"===e)return t;if("number"===e||"boolean"===e)return String(t);try{return JSON.stringify(t)}catch(e){return String(t)}}(i[t])}`));n.textContent=t.join("\n")}else n.textContent="publicOptions unavailable";return{id:"options",title:"Options",render:t=>{t.appendChild(n)}}}({options:c}));const _=[],T=[];let I=0,E=0,S=null,N=!1,A=0,M=null;function F(t){const e=Number(t);Number.isFinite(e)&&(e-A<250||(A=e,b.pushBrowserFps(I,e),b.pushVisualFps(E,e)))}MC.window&&"function"==typeof MC.window.requestAnimationFrame&&(S=MC.window.requestAnimationFrame((function t(e){N||(I=tO(_,e),F(e),S=MC.window.requestAnimationFrame(t))})));const C=(t={})=>{if(N||!m)return;const e=Array.isArray(t.frames)?t.frames:[];if(!e.length)return void(M=null);const n=null!=MC&&MC.performance&&"function"==typeof MC.performance.now?MC.performance.now():Date.now(),i=e.map((t=>`${null==t?void 0:t.nodeId}:${null==t?void 0:t.trackId}:${null==t?void 0:t.segmentId}@${null==t?void 0:t.presentationTime}`)).join("|");i!==M&&(E=tO(T,n),M=i),b.updateInfo({time:t.time,entries:e}),F(n)};let O=Number.isFinite(u)?u:void 0;if(Number.isFinite(O)&&f.footerPlayback){const t=O/1e3;f.footerPlayback.textContent=`Playback started @ ${WC(t)}s`}const P=(t={})=>{if(!N&&void 0===O&&"playing"===(null==t?void 0:t.event)&&(O=CC(),f.footerPlayback)){const t=O/1e3;f.footerPlayback.textContent=`Playback started @ ${WC(t)}s`}},R=()=>{const t=Array.isArray(null==n?void 0:n.placements)?n.placements:[],e=Array.isArray(null==n?void 0:n.renderPlacements)?n.renderPlacements:[];y.updatePlacements(t,e)},D=(t={})=>{if(N)return;const e=Number.isFinite(null==t?void 0:t.time)?t.time:null==n?void 0:n.currentTime;y.updateTime(e),w&&"function"==typeof w.refresh&&w.refresh()},B=()=>{N||R()},L=()=>{N||R()},z=null==n?void 0:n.trackBuffers,W=()=>{N||("function"==typeof y.refresh?y.refresh():R(),w&&"function"==typeof w.refresh&&w.refresh())};return n.on(OC.VISUAL_FRAMES_AVAILABLE,C),n.on(OC.TIMELINE_TIME_UPDATE,D),n.on(OC.PLACEMENT_ADDED,B),n.on(OC.RENDER_PLACEMENT_ADDED,L),n.on(OC.TIMELINE_PLAYER_STATE,P),z&&"function"==typeof z.on&&z.on("track:bufferupdate",W),R(),y.updateTime(null==n?void 0:n.currentTime),{show:v,hide:g,dispose:function(){N||(N=!0,S&&MC.window&&"function"==typeof MC.window.cancelAnimationFrame&&MC.window.cancelAnimationFrame(S),S=null,n&&"function"==typeof n.off&&(n.off(OC.VISUAL_FRAMES_AVAILABLE,C),n.off(OC.TIMELINE_TIME_UPDATE,D),n.off(OC.PLACEMENT_ADDED,B),n.off(OC.RENDER_PLACEMENT_ADDED,L),n.off(OC.TIMELINE_PLAYER_STATE,P)),z&&"function"==typeof z.off&&z.off("track:bufferupdate",W),b&&"function"==typeof b.dispose&&b.dispose(),y&&"function"==typeof y.dispose&&y.dispose(),k&&"function"==typeof k.dispose&&k.dispose(),x&&"function"==typeof x.dispose&&x.dispose(),w&&"function"==typeof w.dispose&&w.dispose(),p.dispose(),f.overlayRoot&&f.overlayRoot.parentNode&&f.overlayRoot.parentNode.removeChild(f.overlayRoot))},registerTab:function(t){p.registerTab(t)},selectTab:function(t){p.selectTab(t)}}}var GO=Object.freeze({__proto__:null,createDebugOverlay:HO,default:HO});exports.EkoGallery=SC,exports.EkoGalleryLegacy=rn,exports.ekoWebPixel=S,exports.getEkoAnalyticsSnippet=function(t){return`if (!window.EkoAnalytics) {\n !function () {\n var t, a, e, s, n;\n 'undefined' == typeof window || window.EkoAnalytics || (t = window, a = 'EkoAnalytics', e = document, s = 'script', t[a] || (t[a] = function () {\n t[a].f ? (t[a].q.push(arguments), t[a].ts.push(Date.now())) : t[a].apply(t, arguments);\n }, t[a].f = !0, t[a].q = t[a].q || [], t[a].ts = t[a].ts || [], t[a].t = Number(new Date), t[a].sa = [], t[a].cb = [], t[a].init = function (ids) {\n t[a].id = ids;\n }, t[a].childRequestIdsCallback = function (e) {\n e.data && 'ea-ids-request' === e.data.type && t[a].sa.push(e.source);\n }, t.addEventListener('message', t[a].childRequestIdsCallback)));\n }();\n\n window.EkoAnalytics.cb.push(() => {\n let setCookie = (key, value, additionalProperties = '') => {\n let hostname = window.location.hostname;\n let domain = hostname;\n \n let parts = hostname.split('.');\n if (parts.length > 2) {\n domain = parts.slice(-2).join('.');\n }\n\n // "samesite=lax" is needed for cross-site situations (like NZXT getting checkout url attributes from lambda).\n window.document.cookie = \`\${key}=\${value}; domain=.\${domain}; path=/; secure; samesite=lax; \${additionalProperties}\`;\n };\n\n setCookie('easid', encodeURIComponent(window.EkoAnalytics('getSid')));\n setCookie('eauid', encodeURIComponent(window.EkoAnalytics('getUid')), 'max-age=2147483647');\n });\n\n window.EkoAnalytics('configure', {\n snowplow: {\n options: {\n appId: 'ekoGalleryReact',\n },\n },\n ekoEnv: '${t?"production":"development"}',\n env: 'website',\n });\n window.EkoAnalytics('track', 'PageView');\n }`},exports.getEkoProductConfigUrl=NC,exports.getEkoProductConfigUrlLegacy=AC;
14
+ */var ut=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]))lt.call(n,s)&&(r[s]=n[s]);if(at){i=at(n);for(var a=0;a<i.length;a++)ct.call(n,i[a])&&(r[i[a]]=n[i[a]])}}return r},dt="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",ht=Function.call.bind(Object.prototype.hasOwnProperty),ft=function(){};if("production"!==process.env.NODE_ENV){var pt=dt,mt={},gt=ht;ft=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}}}function vt(t,e,n,i,r){if("production"!==process.env.NODE_ENV)for(var o in t)if(gt(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,pt)}catch(t){s=t}if(!s||s instanceof Error||ft((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 mt)){mt[s.message]=!0;var l=r?r():"";ft("Failed "+n+" type: "+s.message+(null!=l?l:""))}}}vt.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&(mt={})};var yt=vt,bt=function(){};function kt(){return null}"production"!==process.env.NODE_ENV&&(bt=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}});var xt=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(kt),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+"]",dt);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 st.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(ht(s,c)){var u=t(s,c,i,r,o+"."+c,dt);if(u instanceof Error)return u}return null}))},oneOf:function(t){if(!Array.isArray(t))return"production"!==process.env.NODE_ENV&&bt(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."),kt;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&&bt("Invalid argument supplied to oneOfType, expected an instance of array."),kt;for(var e=0;e<t.length;e++){var n=t[e];if("function"!=typeof n)return bt("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+p(n)+" at index "+e+"."),kt}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,dt);if(null==c)return null;c.data&&ht(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,dt);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=ut({},e[n],t);for(var d in c){var p=t[d];if(ht(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,dt);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!==dt){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&&(bt("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=yt,o.resetWarningCache=yt.resetWarningCache,o.PropTypes=o,o};function wt(){}function _t(){}_t.resetWarningCache=wt;var Tt=D((function(t){if("production"!==process.env.NODE_ENV){var e=st;t.exports=xt(e.isElement,!0)}else t.exports=function(){function t(t,e,n,i,r,o){if(o!==dt){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:_t,resetWarningCache:wt};return n.PropTypes=n,n}()}));const It=/https?:\/\/(.*?\.)?eko.com/,Et={"eko.project.interaction":"interaction","eko.project.swipe":"swipe"};let St=null,Nt=null,At=[];function Mt(t){return e=>{var n;if(!It.test(e.origin)||"eko.embedapi"!==(null===(n=e.data)||void 0===n?void 0:n.source))return;const i=e.data,r=Et[i.type];r&&(t?t(r,i.data):At.push({type:r,data:i.data}))}}"undefined"!=typeof window&&(Nt=Mt(null),window.addEventListener("message",Nt));var Ft={subscribe:function(t){"function"==typeof t?St?console.warn("[eko-gallery-react] Ignoring events subscribe since already subscribed"):(St=t,Nt=Mt(t),window.addEventListener("message",Nt),function(t){At.forEach((e=>{t(e.type,e.data)})),At=[]}(t)):console.warn("[eko-gallery-react] Ignoring events subscribe since a callback function was not provided as argument")},unsubscribe:function(){Nt?(window.removeEventListener("message",Nt),Nt=null,St=null,At=[]):console.warn("[eko-gallery-react] Ignoring events unsubscribe since not subscribed")},send:function(t,e){St?St(t,e):At.push({type:t,data:e})}};const Ct=({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){S.track("gallery.interaction",{elementid:`thumbnail-${t}`,interactiontype:"click"}),Ft.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})`}}))))};Ct.propTypes={index:Tt.number,activeIndex:Tt.number,setActiveIndex:Tt.func.isRequired,item:Tt.object.isRequired,src:Tt.string,navItemRefs:Tt.object.isRequired,itemIcon:Tt.string};const Ot=({layout:t,nav:n,isVerticalNav:i,showPrevArrow:r,showNextArrow:o})=>{var s,a,l,c,u;const d=e.useRef(null),h=e.useRef(null),f="arrows"===(null==t||null===(s=t.mobile)||void 0===s||null===(s=s.config)||void 0===s||null===(s=s.navPagination)||void 0===s?void 0:s.type)?"eko-mobile-arrows":"",p="arrows"===(null!==(a=null==t||null===(l=t.desktop)||void 0===l||null===(l=l.config)||void 0===l||null===(l=l.navPagination)||void 0===l?void 0:l.type)&&void 0!==a?a:"arrows")?"eko-desktop-arrows":"",m=f||p,g=i?null==n||null===(c=n.current)||void 0===c?void 0:c.scrollHeight:null==n||null===(u=n.current)||void 0===u?void 0:u.scrollWidth;function v(t){const e=i?n.current.clientHeight:n.current.clientWidth,r=function(t,e){const n=i?e.scrollTop:e.scrollLeft;return Math.max(-n,Math.min(g-t-n,t))}("next"===t?e:-e,n.current);return{top:i?r:0,left:i?0:r,behavior:"smooth"}}function y(t){var e,i,r;const o=v(t),s="next"===t?null==h||null===(e=h.current)||void 0===e?void 0:e.id:null==d||null===(i=d.current)||void 0===i?void 0:i.id;var a,l;window.EkoAnalytics("track","gallery.interaction",{elementid:s,interactiontype:"click"}),null==n||null===(r=n.current)||void 0===r||r.scrollBy(o),a=s,l="click",S.track("gallery.interaction",{elementId:a,interactiontype:l}),Ft.send("interaction",{elementId:a,interactiontype:l})}return e.createElement(e.Fragment,null,m&&e.createElement(e.Fragment,null,e.createElement("button",R({type:"button","aria-label":"Go to previous item","aria-hidden":r?"false":"true",onClick:()=>y("prev"),ref:d,id:"eko-nav-prev-arrow",className:`eko-nav-arrow eko-prev-nav-button ${f} ${p} ${r?"":"eko-hidden-nav-button"}`},r?{}:{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",R({type:"button","aria-label":"Go to next item","aria-hidden":o?"false":"true",onClick:()=>y("next"),ref:h,className:`eko-nav-arrow eko-next-nav-button ${f} ${p} ${o?"":"eko-hidden-nav-button"}`,id:"eko-nav-next-arrow"},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:"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 Pt(t,e,n){let i;return function(){const n=this,r=arguments;clearTimeout(i),i=setTimeout((function(){i=null,t.apply(n,r)}),e)}}Ot.propTypes={layout:Tt.object.isRequired,nav:Tt.object.isRequired,isVerticalNav:Tt.bool.isRequired,showPrevArrow:Tt.bool.isRequired,showNextArrow:Tt.bool.isRequired};const Rt=({items:t,setActiveIndex:n,activeIndex:i,layout:r,carouselMounted:o,forceMobile:s})=>{const l=e.useRef(null),c=e.useRef(null),u=e.useRef([]),d=3,[h,f]=e.useState(null),[p,m]=e.useState(!1),[g,v]=e.useState(0),[y,b]=e.useState(!1),[k,x]=e.useState(!1);function w(){var t;const e=s||window.innerWidth<768?"mobile":"desktop",n=(null==r||null===(t=r[e])||void 0===t||null===(t=t.config)||void 0===t?void 0:t.orientation)||("desktop"===e?"left":"bottom");m("left"===n||"right"===n);const i=c.current.parentNode,a=o?".eko-smart-gallery-container iframe":".eko-carousel",l=i.querySelector(a);setTimeout((()=>{v(l.clientHeight)}),0)}function _(){var t,e;const n=s||a()?"mobile":"desktop",i=null!==(t=null==r||null===(e=r[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:d;!function(t=d){var e,n;const i=l.current;if(!i)return;const o="none"!==(null==r||null===(e=r.desktop)||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.navPagination)||void 0===e?void 0:e.type),c=(u=null==r||null===(n=r.mobile)||void 0===n||null===(n=n.config)||void 0===n||null===(n=n.navPagination)||void 0===n?void 0:n.type,"mask"===u||"arrows"===u);var u;if((s||a())&&!c)return void i.style.setProperty("-webkit-mask","none");if(!a()&&!o)return void i.style.setProperty("-webkit-mask","none");const h=i.scrollHeight-i.clientHeight,f=i.scrollTop>t?"85%":"100%",m=i.scrollTop<=h-t?"15%":"0%",g=i.scrollWidth-i.clientWidth,v=i.scrollLeft>t?"15%":"0%",y=i.scrollLeft<=g-t?"85%":"100%";p?i.style.setProperty("-webkit-mask",`linear-gradient(0deg,#0000,#000 ${m} ${f},#0000)`):i.style.setProperty("-webkit-mask",`linear-gradient(90deg,#0000,#000 ${v} ${y},#0000)`)}(i),function(t=d){var e,n,i,r,o,s;const a=p?null==l||null===(e=l.current)||void 0===e?void 0:e.scrollTop:null==l||null===(n=l.current)||void 0===n?void 0:n.scrollLeft,c=p?null==l||null===(i=l.current)||void 0===i?void 0:i.clientHeight:null==l||null===(r=l.current)||void 0===r?void 0:r.clientWidth,u=p?null==l||null===(o=l.current)||void 0===o?void 0:o.scrollHeight:null==l||null===(s=l.current)||void 0===s?void 0:s.scrollWidth;u-t<c?(b(!1),x(!1)):a<=t?(b(!1),x(!0)):a+c>u-t?(b(!0),x(!1)):a+t>0&&a<u-t&&(b(!0),x(!0))}(i)}u.current=null==t?void 0:t.map(((t,n)=>{var i,r;return null!==(i=null==u||null===(r=u.current)||void 0===r?void 0:r[n])&&void 0!==i?i:e.createRef()}));const T=Pt((t=>{var e;e=t,S.track("gallery.interaction",{elementid:"nav",interactiontype:e}),Ft.send("interaction",{elementid:"nav",interactiontype:e})}),200);const I=e.useCallback((t=>{n({index:t,step:0,source:"nav"})}),[]);return e.useEffect((()=>{var t;f(null===(t=u.current)||void 0===t?void 0:t[i])}),[i]),e.useEffect((()=>{if(null!=h&&h.current&&null!=l&&l.current){const t=h.current,e=l.current.clientWidth/2,n=t.clientWidth/2,i=l.current.clientHeight/2,r=t.clientHeight/2;l.current.scrollTo({left:t.offsetLeft-e+n,top:t.offsetTop-i+r,behavior:"smooth"})}}),[h]),e.useEffect((()=>{w()}),[]),e.useEffect((()=>(window.addEventListener("resize",w),()=>{window.removeEventListener("resize",w)})),[c,o,s]),e.useEffect((()=>{v(0),w()}),[t,c,o,s]),e.useEffect((()=>{_();const t=new ResizeObserver(_);return t.observe(l.current),()=>{t.disconnect()}}),[t,s,p]),e.createElement("div",{className:"eko-nav-container",ref:c,style:{opacity:g>0?1:0,height:""+(g&&p?g+"px":"auto")}},e.createElement(Ot,{layout:r,nav:l,isVerticalNav:p,showPrevArrow:y,showNextArrow:k}),e.createElement("ul",{className:`eko-nav eko-mobile-nav-selected-${null!==(E=null==r||null===(N=r.mobile)||void 0===N||null===(N=N.config)||void 0===N?void 0:N.navItemsSelectedType)&&void 0!==E?E:"underline"} eko-desktop-nav-selected-${null!==(A=null==r||null===(M=r.desktop)||void 0===M||null===(M=M.config)||void 0===M?void 0:M.navItemsSelectedType)&&void 0!==A?A:"underline"}`,ref:l,onScroll:function(){_()},onWheel:function(){T("wheel")},onTouchMove:function(){T("swipe")}},null==t?void 0:t.map(((t,n)=>{var r;const o=(null==t||null===(r=t.media)||void 0===r?void 0:r.url)||(null==t?void 0:t.media)||"";return e.createElement(Ct,{key:o+n,index:n,activeIndex:i,setActiveIndex:I,item:t,src:o,navItemRefs:u,itemIcon:null==t?void 0:t.icon})}))));var E,N,A,M};Rt.propTypes={items:Tt.array.isRequired,activeIndex:Tt.number,setActiveIndex:Tt.func.isRequired,layout:Tt.object,carouselMounted:Tt.bool,forceMobile:Tt.bool};function Dt(){S.track("gallery.cover.displayed"),Ft.send("gallerycoverdisplayed")}function Bt(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 Lt=({item:t,src:n,srcset:i,sizes:r,isCoverElement:o})=>{const s=e.useRef(null);return e.useEffect((()=>{var t;if(o){if(null===(t=s.current)||void 0===t||!t.complete)return s.current.addEventListener("load",Dt,{once:!0}),()=>{var t;null===(t=s.current)||void 0===t||t.removeEventListener("load",Dt,{once:!0})};Dt()}}),[]),e.createElement("img",{ref:s,src:Bt(n),srcSet:i,sizes:r,alt:t.name,fetchPriority:o?"high":"auto",loading:o?"eager":"lazy",style:{width:"100%",height:"100%"}})};Lt.propTypes={item:Tt.object.isRequired,src:Tt.string,srcset:Tt.string,sizes:Tt.string,isCoverElement:Tt.bool};const zt=Pt((t=>{var e;e=t,S.track("gallery.interaction",{elementid:"carousel",interactiontype:e}),Ft.send("interaction",{elementid:"carousel",interactiontype:e})}),200);function Wt(){zt("wheel")}const Ut=e.forwardRef((({items:t,setActiveIndex:n,activeIndex:i,showSmartLoaders:r},o)=>{const s=e.useRef(null),a=e.useRef([]);a.current=null==t?void 0:t.map(((t,n)=>{var i,r;return null!==(i=null==a||null===(r=a.current)||void 0===r?void 0:r[n])&&void 0!==i?i:e.createRef()}));const[l,c]=e.useState(),[u,d]=e.useState(),h=e.useRef(i),f=e.useRef(!1);function p(){const e=function(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}(s.current)*(null==t?void 0:t.length)/100,i=Math.min(Math.trunc(e),(null==t?void 0:t.length)-1),r=h.current;"nav"!==r.source&&"external-nav"!==r.source?(f.current&&i!==r.index&&(f.current=!1),f.current||(i>(null==t?void 0:t.length)-1?n({index:(null==t?void 0:t.length)-1,source:"carousel"}):n({index:i,source:"carousel"}))):i===r.index?f.current=!0:f.current&&i!==r.index&&(f.current=!1,n({index:i,source:"carousel"}))}return e.useImperativeHandle(o,(()=>({prev:()=>{n({index:Math.max(0,h.current.index-1),source:"carousel"})},next:()=>{n({index:Math.min((null==t?void 0:t.length)-1,h.current.index+1),source:"carousel"})}}))),e.useEffect((()=>{const t=s.current;if(t)return t.addEventListener("scroll",p),()=>{t.removeEventListener("scroll",p)}}),[t]),e.useEffect((()=>{var t;let e=null===(t=a.current)||void 0===t?void 0:t[i.index];if(e&&("nav"===i.source||"external-nav"===i.source)){const t=e.current,n=s.current.clientWidth/2,i=(null==t?void 0:t.clientWidth)/2,r=(null==t?void 0:t.offsetLeft)-n+i;s.current.scrollTo({left:r,behavior:"smooth"})}}),[i]),e.useEffect((()=>{h.current=i,"nav"!==i.source&&"external-nav"!==i.source||(f.current=!1)}),[i]),e.createElement("ul",{className:"eko-carousel",ref:s,onScroll:p,onWheel:Wt,onTouchMove:function(t){d(t.targetTouches[0].clientX)},onTouchStart:function(t){c(t.targetTouches[0].clientX),d(null)},onTouchEnd:function(){u&&l&&(l-u>75||l-u<-75)&&zt("swipe")}},null==t?void 0:t.map(((t,n)=>{const i=(null==t?void 0:t.cover)||(null==t?void 0:t.media),o=(null==i?void 0:i.url)||i;return e.createElement("li",{className:"eko-carousel-item",key:o+n,ref:a.current[n]},e.createElement(Lt,{item:t,src:o,srcset:null==i?void 0:i.srcset,sizes:null==i?void 0:i.sizes,isCoverElement:0===n}),r&&"image"!==t.type&&e.createElement("div",{className:"eko-smart-loading"},e.createElement("div",null),e.createElement("p",null,"Loading video experience")))})))}));function $t(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)}Ut.propTypes={items:Tt.array.isRequired,setActiveIndex:Tt.func.isRequired,activeIndex:Tt.object,showSmartLoaders:Tt.bool},Ut.displayName="CarouselLoop";const jt="eko.project.invoke",qt="eko.block.invoke";function Vt(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 Ht(t){return`#variantId=${encodeURIComponent(t)}`}const Gt=e.forwardRef((({config:t,instanceId:n,setActiveItem:i,activeItem:r,variantId:o,smartGalleryLoaded:s,onLoad:l,forceMobile:c},u)=>{var d,h,f;const p=null!==(d=null===(h=t.options)||void 0===h?void 0:h.galleryEnv)&&void 0!==d?d:"",m=null===(f=t.__autoGenerated)||void 0===f||null===(f=f.publishItem)||void 0===f?void 0:f.id,g=function(t={}){let e="";return Object.entries(t).forEach((([t,n])=>{e+=`&${t}=${n}`})),e}(null==t?void 0:t.qp),v=function(t,e,n){return`https://${t}play.eko.com/embed?${n?`id=${n}`:`piid=${e}`}&nocover=true&galleryBlockMode=gallery&eko_pixel=true`}(p,m,n),y=e.useRef(null),b=e.useRef(null),k=e.useRef(!1),[x,w]=e.useState(Ht(o||"ekonovar")),[_,T]=e.useState(v+g+x);let I;function E(){S.track("gallery.project.display"),l(),Ft.send("galleryloaded")}return e.useImperativeHandle(u,(()=>({prev:()=>{Vt(null==b?void 0:b.current,qt,{action:"onPrevModule"})},next:()=>{Vt(null==b?void 0:b.current,qt,{action:"onNextModule"})}}))),e.useEffect((()=>{k.current?Vt(null==b?void 0:b.current,jt,{action:"updateVariant",args:{id:o}}):w(Ht(o))}),[o]),e.useEffect((()=>{Vt(null==b?void 0:b.current,qt,{action:"updateActiveModule",args:{activeItemIndex:null==r?void 0:r.index,activeModuleIndex:null==r?void 0:r.step}})}),[r]),e.useEffect((()=>{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))&&!k.current)return e=t.data.data.blockType,k.current=!0,void("GalleryBlock"===e?Vt(null==b?void 0:b.current,qt,{action:"updateActiveModule",args:{activeItemIndex:null==r?void 0:r.index,activeModuleIndex:null==r?void 0:r.step}}):E());var e;if(k.current){if(function(t){var e;return $t(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==r?void 0:r.index)&&n===(null==r?void 0:r.step)||i({index:e,step:n,source:"carousel"})}(t);(function(t){var e;return $t(t)&&"activeModuleChangeDone"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.name)})(t)&&!s&&E()}}return I=c||a()?"mobile":"desktop",function(t,e={}){window.addEventListener("message",t,e)}(t),()=>{!function(t,e={}){window.removeEventListener("message",t,e)}(t)}}),[r]),e.useEffect((()=>{k.current||Vt(null==b?void 0:b.current,jt,{action:"queryProjectStarted"})}),[r,s]),e.useEffect((()=>{k.current=!1}),[t]),e.useEffect((()=>{T(v+g+x)}),[x]),e.createElement("div",{className:"eko-smart-gallery-container "+(s?"":"eko-project-not-ready"),ref:y,"data-type":"smart-gallery","data-qp":g,"data-variant":o,"data-device":I},e.createElement("iframe",{allow:"autoplay; fullscreen",title:"eko gallery",src:_,style:{border:0},ref:b}))}));Gt.propTypes={config:Tt.object.isRequired,instanceId:Tt.string,setActiveItem:Tt.func.isRequired,activeItem:Tt.object.isRequired,variantId:Tt.string,smartGalleryLoaded:Tt.bool,onLoad:Tt.func,forceMobile:Tt.bool},Gt.displayName="SmartGallery";const Kt=()=>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}'),Xt=({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")}}`)};Xt.propTypes={layout:Tt.object,style:Tt.object},u("experiment");const Yt=({activeVariantId:t,activeElementId:n,hasInteractive:i,experiments:r,publishItem:o})=>{const s="gallery",a=e.useRef(t),l=e.useRef(n),c=e.useRef(i),u=e.useRef(r),d=e.useRef(o);e.useEffect((()=>{a.current=t,l.current=n,c.current=i,u.current=r,d.current=o}),[t,n,i,r,o]);const h={publishItemPacker:{tag:s,schema:"iglu:com.helloeko/publishitem/jsonschema/1-0-0",match:/.*/,getData:function(){const t=d.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:s,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:s,schema:"iglu:com.helloeko/gallery/jsonschema/1-0-2",match:/^gallery.*/,getData:function(){var t;return{activeitemid:l.current.toString(),activevariantid:a.current,hasinteractive:c.current,version:(null===(t=window.eko)||void 0===t||null===(t=t.gallery)||void 0===t?void 0:t.version)||""}}},activeVariantIdPacker:{tag:s,schema:"iglu:com.helloeko/variant/jsonschema/1-0-1",match:/.*/,getData:function(){if(a.current)return{id:a.current}}},experimentPacker:{tag:s,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}(u.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 e.useEffect((()=>(Object.values(h).forEach((t=>{window.EkoAnalytics("registerContextPacker",t)})),()=>{window.EkoAnalytics("reset",s)})),[]),null};Yt.propTypes={activeVariantId:Tt.string,activeElementId:Tt.number,hasInteractive:Tt.bool,experiments:Tt.array,publishItem:Tt.object};const Qt=({variantId:t,activeItem:n,hasInteractive:i,activeIndex:r,experiments:o,publishItem:s})=>{const a=e.useRef(!0);return e.useEffect((()=>{a.current||t&&S.track("gallery.variant.change")}),[t]),e.useEffect((()=>{a.current||S.track("gallery.element.change",{activeIndex:r})}),[r]),e.useEffect((()=>{a.current||n&&null!=s&&s.id&&S.track("gallery.asset.view",{publishitemid:s.id,type:n.type,name:n.name})}),[n]),e.useEffect((()=>{a.current=!1}),[]),e.createElement(Yt,{activeVariantId:t||"ekonovar",activeElementId:r,hasInteractive:i,experiments:o,publishItem:s})};Qt.propTypes={variantId:Tt.string,activeItem:Tt.object,hasInteractive:Tt.bool,activeIndex:Tt.number,experiments:Tt.array,publishItem:Tt.object};const Jt="eko-gallery-react";function Zt(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 te=e.forwardRef((({className:t,config:n,instanceId:i,variantId:r,activeItem:o={index:0,step:0},onEvent:s,forceMobile:a},l)=>{var c,u,d,h,f,p;const m=null!==(c=null===(u=n.options)||void 0===u?void 0:u.loadingTimeout)&&void 0!==c?c:12,g=null===(d=null===(h=n.options)||void 0===h?void 0:h.showCoverLoadAnimation)||void 0===d||d,[v,y]=e.useState(Zt(n,r)),[b,k]=e.useState({index:o.index,step:o.step,source:"external-nav"}),[x,w]=e.useState(!1),[_,T]=e.useState(!1),[I,E]=e.useState("eko-desktop"),N=e.useRef(!1),A=e.useRef(!1),M=e.useRef(o),F=e.useRef(null),C=e.useRef(r);function O(){const t=a||window.innerWidth<768?"eko-mobile":"eko-desktop";E(t)}return A.current||(Ft.send("galleryinit"),A.current=!0),e.useEffect((()=>{const t=C.current!==r;C.current=r,y(Zt(n,r)),t&&!N.current&&k({index:0,step:0,source:"external-nav"})}),[n,r]),e.useEffect((()=>{if(s)return Ft.subscribe(s),()=>{Ft.unsubscribe()}}),[s]),e.useEffect((()=>{N.current=_}),[_]),e.useEffect((()=>{w(!1),T(!1);const t=setTimeout((()=>{N.current||(w(!0),S.track("gallery.load.timeout"))}),1e3*m);return()=>{clearTimeout(t)}}),[n]),e.useEffect((()=>{O()}),[a]),e.useEffect((()=>(window.addEventListener("resize",O),O(),()=>{window.removeEventListener("resize",O)})),[a]),e.useEffect((()=>(window.EkoAnalytics("trackElementVisibility",F.current,Jt),()=>{window.EkoAnalytics("stopTrackingElementVisibility",Jt)})),[]),e.useEffect((()=>{!("carousel"===(null==b?void 0:b.source)||"nav"===(null==b?void 0:b.source))||(null==b?void 0:b.index)===o.index&&(null==b?void 0:b.step)===o.step||Ft.send("activeitemchanged",{index:null==b?void 0:b.index,step:null==b?void 0:b.step})}),[b,o]),e.useEffect((()=>{M.current.index===o.index&&M.current.step===o.step||(M.current=o,k({index:o.index,step:o.step,source:"external-nav"}))}),[o]),e.createElement(e.Fragment,null,e.createElement(Kt,null),e.createElement(Xt,{layout:n.layout,style:n.style,forceMobile:a}),e.createElement(Qt,{variantId:r,activeItem:null==v||null===(f=v.items)||void 0===f?void 0:f[b.index],activeIndex:b.index,hasInteractive:_,experiments:n.experiments,publishItem:null==n||null===(p=n.__autoGenerated)||void 0===p?void 0:p.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}(n.layout)} ${null!=t?t:""}`.trim()} ${I}`,"aria-controls":"main-content",ref:F},e.createElement(Rt,{items:(null==v?void 0:v.items)||[],setActiveIndex:k,activeIndex:b.index,layout:n.layout,carouselMounted:_,forceMobile:a}),!_&&e.createElement(Ut,{ref:l,items:(null==v?void 0:v.items)||[],setActiveIndex:k,activeIndex:{index:b.index,source:null==b?void 0:b.source},showSmartLoaders:!x&&g}),!x&&e.createElement(Gt,{ref:l,config:n,instanceId:i,activeItem:b,setActiveItem:k,variantId:null==v?void 0:v.variantId,smartGalleryLoaded:_,forceMobile:a,onLoad:function(){T(!0)}})))}));te.propTypes={className:Tt.string,config:Tt.object.isRequired,instanceId:Tt.string,variantId:Tt.string,activeItem:Tt.object,onEvent:Tt.func,forceMobile:Tt.bool,onPrev:Tt.func,onNext:Tt.func},te.displayName="EkoGallery";var ee=e.memo(te);const ne=u("gallery-react");const ie=e.forwardRef(((t,n)=>{var i;e.useEffect((()=>(ne.setDataStorage("gallery-react",{config:t.config}),window.eko=window.eko||{},window.eko.config=t.config,window.eko.gallery={version:"4.0.2"},()=>{window.eko.config=void 0})),[t.config]);const{children:r,...o}=t;return void 0!==t.config?e.createElement(ee,R({ref:n},o,{key:null===(i=t.config.__autoGenerated)||void 0===i||null===(i=i.publishItem)||void 0===i?void 0:i.id})):r}));ie.propTypes={className:Tt.string,config:Tt.object,variantId:Tt.string,onEvent:Tt.func,instanceId:Tt.string,children:Tt.node},ie.displayName="EkoGalleryWrapper";var re,oe,se,ae,le,ce,ue,de,he,fe,pe,me,ge,ve,ye,be,ke,xe,we,_e,Te,Ie,Ee,Se,Ne,Ae,Me,Fe,Ce,Oe,Pe,Re,De,Be,Le,ze,We,Ue,$e,je,qe,Ve,He,Ge,Ke,Xe,Ye,Qe,Je,Ze,tn,en,nn,rn=e.memo(ie);const on=1,sn=2,an=4,ln=8,cn=16,un=1,dn=4,hn=8,fn=16,pn="[",mn="[!",gn="]",vn={},yn=Symbol(),bn="http://www.w3.org/1999/xhtml",kn=!1;var xn=Array.isArray,wn=Array.prototype.indexOf,_n=Array.from,Tn=Object.defineProperty,In=Object.getOwnPropertyDescriptor,En=Object.getOwnPropertyDescriptors,Sn=Object.prototype,Nn=Array.prototype,An=Object.getPrototypeOf,Mn=Object.isExtensible;function Fn(){var t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}}const Cn=2,On=4,Pn=8,Rn=1<<24,Dn=16,Bn=32,Ln=64,zn=128,Wn=512,Un=1024,$n=2048,jn=4096,qn=8192,Vn=16384,Hn=32768,Gn=65536,Kn=1<<17,Xn=1<<18,Yn=1<<19,Qn=1<<20,Jn=1<<25,Zn=32768,ti=1<<21,ei=1<<22,ni=1<<23,ii=Symbol("$state"),ri=Symbol("legacy props"),oi=Symbol(""),si=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},ai=3,li=8;function ci(t){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function ui(t){console.warn("https://svelte.dev/e/hydration_mismatch")}let di,hi=!1;function fi(t){hi=t}function pi(t){if(null===t)throw ui(),vn;return di=t}function mi(){return pi(ho(di))}function gi(t){if(hi){if(null!==ho(di))throw ui(),vn;di=t}}function vi(t=!0){for(var e=0,n=di;;){if(n.nodeType===li){var i=n.data;if(i===gn){if(0===e)return n;e-=1}else i!==pn&&i!==mn||(e+=1)}var r=ho(n);t&&n.remove(),n=r}}function yi(t){if(!t||t.nodeType!==li)throw ui(),vn;return t.data}function bi(t){return t===this.v}function ki(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 xi=!1,wi=null;function _i(t){wi=t}function Ti(t){return Si().get(t)}function Ii(t,e=!1,n){wi={p:wi,i:!1,c:null,e:null,s:t,x:null,l:null}}function Ei(t){var e=wi,n=e.e;if(null!==n)for(var i of(e.e=null,n))_o(i);return e.i=!0,wi=e.p,{}}function Si(t){var e,n;return null===wi&&ci(),null!==(n=(e=wi).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}(wi)||void 0)}let Ni=[];function Ai(){var t=Ni;Ni=[],function(t){for(var e=0;e<t.length;e++)t[e]()}(t)}function Mi(t){if(0===Ni.length&&!Vi){var e=Ni;queueMicrotask((()=>{e===Ni&&Ai()}))}Ni.push(t)}function Fi(){for(;Ni.length>0;)Ai()}function Ci(t){var e=Vo;if(null===e)return $o.f|=ni,t;if(e.f&Hn)Oi(t,e);else{if(!(e.f&zn))throw t;e.b.error(t)}}function Oi(t,e){for(;null!==e;){if(e.f&zn)try{return void e.b.error(t)}catch(e){t=e}e=e.parent}throw t}const Pi=-7169;function Ri(t,e){t.f=t.f&Pi|e}function Di(t){t.f&Wn||null===t.deps?Ri(t,Un):Ri(t,jn)}function Bi(t){if(null!==t)for(const e of t)e.f&Cn&&e.f&Zn&&(e.f^=Zn,Bi(e.deps))}function Li(t,e,n){t.f&$n?e.add(t):t.f&jn&&n.add(t),Bi(t.deps),Ri(t,Un)}const zi=new Set;let Wi=null,Ui=null,$i=[],ji=null,qi=!1,Vi=!1;var Hi=new WeakMap,Gi=new WeakMap,Ki=new WeakMap,Xi=new WeakMap,Yi=new WeakMap,Qi=new WeakMap,Ji=new WeakMap,Zi=new WeakSet;class tr{constructor(){O(this,Zi),P(this,"committed",!1),P(this,"current",new Map),P(this,"previous",new Map),F(this,Hi,new Set),F(this,Gi,new Set),F(this,Ki,0),F(this,Xi,0),F(this,Yi,null),F(this,Qi,new Set),F(this,Ji,new Set),P(this,"skipped_effects",new Set),P(this,"is_fork",!1)}is_deferred(){return this.is_fork||M(Xi,this)>0}process(t){$i=[],this.apply();var e,n=[],i=[];for(const e of t)N(Zi,this,er).call(this,e,n,i);(this.is_fork||N(Zi,this,ir).call(this),this.is_deferred())?(N(Zi,this,nr).call(this,i),N(Zi,this,nr).call(this,n)):(Wi=null,lr(i),lr(n),null===(e=M(Yi,this))||void 0===e||e.resolve());Ui=null}capture(t,e){var n;(e===yn||this.previous.has(t)||this.previous.set(t,e),t.f&ni)||(this.current.set(t,t.v),null===(n=Ui)||void 0===n||n.set(t,t.v))}activate(){Wi=this,this.apply()}deactivate(){Wi===this&&(Wi=null,Ui=null)}flush(){if(this.activate(),$i.length>0){if(or(),null!==Wi&&Wi!==this)return}else 0===M(Ki,this)&&this.process([]);this.deactivate()}discard(){for(const t of M(Gi,this))t(this);M(Gi,this).clear()}increment(t){C(Ki,this,M(Ki,this)+1),t&&C(Xi,this,M(Xi,this)+1)}decrement(t){C(Ki,this,M(Ki,this)-1),t&&C(Xi,this,M(Xi,this)-1),this.revive()}revive(){for(const t of M(Qi,this))M(Ji,this).delete(t),Ri(t,$n),dr(t);for(const t of M(Ji,this))Ri(t,jn),dr(t);this.flush()}oncommit(t){M(Hi,this).add(t)}ondiscard(t){M(Gi,this).add(t)}settled(){var t;return(null!==(t=M(Yi,this))&&void 0!==t?t:C(Yi,this,Fn())).promise}static ensure(){if(null===Wi){const t=Wi=new tr;zi.add(Wi),Vi||tr.enqueue((()=>{Wi===t&&t.flush()}))}return Wi}static enqueue(t){Mi(t)}apply(){}}function er(t,e,n){t.f^=Un;for(var i=t.first,r=null;null!==i;){var o=i.f,s=!!(o&(Bn|Ln));if(!(s&&!!(o&Un)||!!(o&qn)||this.skipped_effects.has(i))&&null!==i.fn){s?i.f^=Un:null!==r&&o&(On|Pn|Rn)?r.b.defer_effect(i):o&On?e.push(i):is(i)&&(o&Dn&&M(Qi,this).add(i),ls(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 nr(t){for(var e=0;e<t.length;e+=1)Li(t[e],M(Qi,this),M(Ji,this))}function ir(){if(0===M(Xi,this)){for(const t of M(Hi,this))t();M(Hi,this).clear()}0===M(Ki,this)&&N(Zi,this,rr).call(this)}function rr(){if(zi.size>1){this.previous.clear();var t=Ui,e=!0;for(const t of zi){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=$i;$i=[];const e=new Set,o=new Map;for(const t of i)cr(t,r,e,o);if($i.length>0){Wi=t,t.apply();for(const e of $i)N(Zi,t,er).call(t,e,[],[]);t.deactivate()}$i=n}}Wi=null,Ui=t}this.committed=!0,zi.delete(this)}function or(){var t=Lo;qi=!0;try{var e=0;for(zo(!0);$i.length>0;){var n=tr.ensure();if(e++>1e3)sr();n.process($i),Kr.clear()}}finally{qi=!1,zo(t),ji=null}}function sr(){try{!function(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}()}catch(t){Oi(t,ji)}}let ar=null;function lr(t){var e=t.length;if(0!==e){for(var n=0;n<e;){var i,r=t[n++];if(!(r.f&(Vn|qn))&&is(r))if(ar=new Set,ls(r),null===r.deps&&null===r.first&&null===r.nodes&&(null===r.teardown&&null===r.ac?Co(r):r.fn=null),(null===(i=ar)||void 0===i?void 0:i.size)>0){Kr.clear();for(const t of ar){if(t.f&(Vn|qn))continue;const e=[t];let n=t.parent;for(;null!==n;)ar.has(n)&&(ar.delete(n),e.push(n)),n=n.parent;for(let t=e.length-1;t>=0;t--){const n=e[t];n.f&(Vn|qn)||ls(n)}}ar.clear()}}ar=null}}function cr(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&Cn?cr(r,e,n,i):t&(ei|Dn)&&!(t&$n)&&ur(r,e,i)&&(Ri(r,$n),dr(r))}}function ur(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&Cn&&ur(i,e,n))return n.set(i,!0),!0}return n.set(t,!1),!1}function dr(t){for(var e=ji=t;null!==e.parent;){var n=(e=e.parent).f;if(qi&&e===Vo&&n&Dn&&!(n&Xn))return;if(n&(Ln|Bn)){if(!(n&Un))return;e.f^=Un}}$i.push(e)}var hr=Gn|Yn|zn;var fr=new WeakMap,pr=new WeakMap,mr=new WeakMap,gr=new WeakMap,vr=new WeakMap,yr=new WeakMap,br=new WeakMap,kr=new WeakMap,xr=new WeakMap,wr=new WeakMap,_r=new WeakMap,Tr=new WeakMap,Ir=new WeakMap,Er=new WeakMap,Sr=new WeakMap,Nr=new WeakMap,Ar=new WeakMap,Mr=new WeakSet;class Fr{constructor(t,e,n){O(this,Mr),P(this,"parent",void 0),P(this,"is_pending",!1),F(this,fr,void 0),F(this,pr,hi?di:null),F(this,mr,void 0),F(this,gr,void 0),F(this,vr,void 0),F(this,yr,null),F(this,br,null),F(this,kr,null),F(this,xr,null),F(this,wr,null),F(this,_r,0),F(this,Tr,0),F(this,Ir,!1),F(this,Er,new Set),F(this,Sr,new Set),F(this,Nr,null),F(this,Ar,function(t){let e,n=0,i=Yr(0);return()=>{ko()&&(us(i),Io((()=>(0===n&&(e=fs((()=>t((()=>eo(i)))))),n+=1,()=>{Mi((()=>{var t;n-=1,0===n&&(null===(t=e)||void 0===t||t(),e=void 0,eo(i))}))}))))}}((()=>(C(Nr,this,Yr(M(_r,this))),()=>{C(Nr,this,null)})))),C(fr,this,t),C(mr,this,e),C(gr,this,n),this.parent=Vo.b,this.is_pending=!!M(mr,this).pending,C(vr,this,So((()=>{if(Vo.b=this,hi){const t=M(pr,this);mi();t.nodeType===li&&t.data===mn?N(Mr,this,Or).call(this):(N(Mr,this,Cr).call(this),0===M(Tr,this)&&(this.is_pending=!1))}else{var t=N(Mr,this,Pr).call(this);try{C(yr,this,No((()=>n(t))))}catch(t){this.error(t)}M(Tr,this)>0?N(Mr,this,Dr).call(this):this.is_pending=!1}return()=>{var t;null===(t=M(wr,this))||void 0===t||t.remove()}}),hr)),hi&&C(fr,this,di)}defer_effect(t){Li(t,M(Er,this),M(Sr,this))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!M(mr,this).pending}update_pending_count(t){N(Mr,this,Br).call(this,t),C(_r,this,M(_r,this)+t),M(Nr,this)&&to(M(Nr,this),M(_r,this))}get_effect_pending(){return M(Ar,this).call(this),us(M(Nr,this))}error(t){var e=M(mr,this).onerror;let n=M(mr,this).failed;if(M(Ir,this)||!e&&!n)throw t;M(yr,this)&&(Fo(M(yr,this)),C(yr,this,null)),M(br,this)&&(Fo(M(br,this)),C(br,this,null)),M(kr,this)&&(Fo(M(kr,this)),C(kr,this,null)),hi&&(pi(M(pr,this)),function(t=1){if(hi){for(var e=t,n=di;e--;)n=ho(n);di=n}}(),pi(vi()));var i=!1,r=!1;const o=()=>{i?console.warn("https://svelte.dev/e/svelte_boundary_reset_noop"):(i=!0,r&&function(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}(),tr.ensure(),C(_r,this,0),null!==M(kr,this)&&Oo(M(kr,this),(()=>{C(kr,this,null)})),this.is_pending=this.has_pending_snippet(),C(yr,this,N(Mr,this,Rr).call(this,(()=>(C(Ir,this,!1),No((()=>M(gr,this).call(this,M(fr,this)))))))),M(Tr,this)>0?N(Mr,this,Dr).call(this):this.is_pending=!1)};var s=$o;try{qo(null),r=!0,null==e||e(t,o),r=!1}catch(t){Oi(t,M(vr,this)&&M(vr,this).parent)}finally{qo(s)}n&&Mi((()=>{C(kr,this,N(Mr,this,Rr).call(this,(()=>{tr.ensure(),C(Ir,this,!0);try{return No((()=>{n(M(fr,this),(()=>t),(()=>o))}))}catch(t){return Oi(t,M(vr,this).parent),null}finally{C(Ir,this,!1)}})))}))}}function Cr(){try{C(yr,this,No((()=>M(gr,this).call(this,M(fr,this)))))}catch(t){this.error(t)}}function Or(){const t=M(mr,this).pending;t&&(C(br,this,No((()=>t(M(fr,this))))),tr.enqueue((()=>{var t=N(Mr,this,Pr).call(this);C(yr,this,N(Mr,this,Rr).call(this,(()=>(tr.ensure(),No((()=>M(gr,this).call(this,t))))))),M(Tr,this)>0?N(Mr,this,Dr).call(this):(Oo(M(br,this),(()=>{C(br,this,null)})),this.is_pending=!1)})))}function Pr(){var t=M(fr,this);return this.is_pending&&(C(wr,this,co()),M(fr,this).before(M(wr,this)),t=M(wr,this)),t}function Rr(t){var e=Vo,n=$o,i=wi;Ho(M(vr,this)),qo(M(vr,this)),_i(M(vr,this).ctx);try{return t()}catch(t){return Ci(t),null}finally{Ho(e),qo(n),_i(i)}}function Dr(){const t=M(mr,this).pending;null!==M(yr,this)&&(C(xr,this,document.createDocumentFragment()),M(xr,this).append(M(wr,this)),Bo(M(yr,this),M(xr,this))),null===M(br,this)&&C(br,this,No((()=>t(M(fr,this)))))}function Br(t){var e;if(this.has_pending_snippet()){if(C(Tr,this,M(Tr,this)+t),0===M(Tr,this)){this.is_pending=!1;for(const t of M(Er,this))Ri(t,$n),dr(t);for(const t of M(Sr,this))Ri(t,jn),dr(t);M(Er,this).clear(),M(Sr,this).clear(),M(br,this)&&Oo(M(br,this),(()=>{C(br,this,null)})),M(xr,this)&&(M(fr,this).before(M(xr,this)),C(xr,this,null))}}else this.parent&&N(Mr,e=this.parent,Br).call(e,t)}function Lr(t,e,n,i){const r=Wr;if(0!==n.length||0!==t.length){var o,s,a,l,c=Wi,u=Vo,d=(o=Vo,s=$o,a=wi,l=Wi,function(t=!0){Ho(o),qo(s),_i(a),t&&(null==l||l.activate())});t.length>0?Promise.all(t).then((()=>{d();try{return h()}finally{null==c||c.deactivate(),zr()}})):h()}else i(e.map(r));function h(){Promise.all(n.map((t=>Ur(t)))).then((t=>{d();try{i([...e.map(r),...t])}catch(t){u.f&Vn||Oi(t,u)}null==c||c.deactivate(),zr()})).catch((t=>{Oi(t,u)}))}}function zr(){Ho(null),qo(null),_i(null)}function Wr(t){var e=Cn|$n,n=null!==$o&&$o.f&Cn?$o:null;null!==Vo&&(Vo.f|=Yn);return{ctx:wi,deps:null,effects:null,equals:bi,f:e,fn:t,reactions:null,rv:0,v:yn,wv:0,parent:null!=n?n:Vo,ac:null}}function Ur(t,e,n){let i=Vo;null===i&&function(){throw new Error("https://svelte.dev/e/async_derived_orphan")}();var r=i.b,o=void 0,s=Yr(yn),a=!$o,l=new Map;return function(t){bo(ei|Yn,t,!0)}((()=>{var e=Fn();o=e.promise;try{Promise.resolve(t()).then(e.resolve,e.reject).then((()=>{n===Wi&&n.committed&&n.deactivate(),zr()}))}catch(t){e.reject(t),zr()}var n=Wi;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(si),l.delete(n),l.set(n,e)}const u=(t,e=void 0)=>{if(n.activate(),e)e!==si&&(s.f|=ni,to(s,e));else{s.f&ni&&(s.f^=ni),to(s,t);for(const[t,e]of l){if(l.delete(t),t===n)break;e.reject(si)}}a&&(r.update_pending_count(-1),n.decrement(c))};e.promise.then(u,(t=>u(null,t||"unknown")))})),xo((()=>{for(const t of l.values())t.reject(si)})),new Promise((t=>{!function e(n){function i(){n===o?t(s):e(o)}n.then(i,i)}(o)}))}function $r(t){const e=Wr(t);return Ko(e),e}function jr(t){const e=Wr(t);return e.equals=ki,e}function qr(t){var e=t.effects;if(null!==e){t.effects=null;for(var n=0;n<e.length;n+=1)Fo(e[n])}}function Vr(t){var e,n=Vo;Ho(function(t){for(var e=t.parent;null!==e;){if(!(e.f&Cn))return e.f&Vn?null:e;e=e.parent}return null}(t));try{t.f&=~Zn,qr(t),e=os(t)}finally{Ho(n)}return e}function Hr(t){var e,n,i=Vr(t);if(!t.equals(i)&&(t.wv=ns(),(null===(e=Wi)||void 0===e||!e.is_fork||null===t.deps)&&(t.v=i,null===t.deps)))return void Ri(t,Un);Wo||(null!==Ui?(ko()||null!==(n=Wi)&&void 0!==n&&n.is_fork)&&Ui.set(t,i):Di(t))}let Gr=new Set;const Kr=new Map;let Xr=!1;function Yr(t,e){return{f:0,v:t,reactions:null,equals:bi,rv:0,wv:0}}function Qr(t,e){const n=Yr(t);return Ko(n),n}function Jr(t,e=!1,n=!0){const i=Yr(t);return e||(i.equals=ki),i}function Zr(t,e,n=!1){var i;return null!==$o&&(!jo||$o.f&Kn)&&$o.f&(Cn|Dn|ei|Kn)&&(null===(i=Go)||void 0===i||!i.includes(t))&&function(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}(),to(t,n?io(e):e)}function to(t,e){if(!t.equals(e)){var n=t.v;Wo?Kr.set(t,e):Kr.set(t,n),t.v=e;var i=tr.ensure();if(i.capture(t,n),t.f&Cn){const e=t;t.f&$n&&Vr(e),Di(e)}t.wv=ns(),no(t,$n),null!==Vo&&Vo.f&Un&&!(Vo.f&(Bn|Ln))&&(null===Qo?function(t){Qo=t}([t]):Qo.push(t)),!i.is_fork&&Gr.size>0&&!Xr&&function(){Xr=!1;var t=Lo;zo(!0);const e=Array.from(Gr);try{for(const t of e)t.f&Un&&Ri(t,jn),is(t)&&ls(t)}finally{zo(t)}Gr.clear()}()}return e}function eo(t){Zr(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,a=!(s&$n);if(a&&Ri(o,e),s&Cn){var l,c=o;null===(l=Ui)||void 0===l||l.delete(c),s&Zn||(s&Wn&&(o.f|=Zn),no(c,jn))}else a&&(s&Dn&&null!==ar&&ar.add(o),dr(o))}}function io(t){if("object"!=typeof t||null===t||ii in t)return t;const e=An(t);if(e!==Sn&&e!==Nn)return t;var n=new Map,i=xn(t),r=Qr(0),o=ts,s=t=>{if(ts===o)return t();var e=$o,n=ts;qo(null),es(o);var i=t();return qo(e),es(n),i};return i&&n.set("length",Qr(t.length)),new Proxy(t,{defineProperty(t,e,i){"value"in i&&!1!==i.configurable&&!1!==i.enumerable&&!1!==i.writable||function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}();var r=n.get(e);return void 0===r?r=s((()=>{var t=Qr(i.value);return n.set(e,t),t})):Zr(r,i.value,!0),!0},deleteProperty(t,e){var i=n.get(e);if(void 0===i){if(e in t){const t=s((()=>Qr(yn)));n.set(e,t),eo(r)}}else Zr(i,yn),eo(r);return!0},get(e,i,r){var o;if(i===ii)return t;var a=n.get(i),l=i in e;if(void 0===a&&(!l||null!==(o=In(e,i))&&void 0!==o&&o.writable)&&(a=s((()=>Qr(io(l?e[i]:yn)))),n.set(i,a)),void 0!==a){var c=us(a);return c===yn?void 0:c}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=us(r))}else if(void 0===i){var o=n.get(e),s=null==o?void 0:o.v;if(void 0!==o&&s!==yn)return{enumerable:!0,configurable:!0,value:s,writable:!0}}return i},has(t,e){var i;if(e===ii)return!0;var r=n.get(e),o=void 0!==r&&r.v!==yn||Reflect.has(t,e);if((void 0!==r||null!==Vo&&(!o||null!==(i=In(t,e))&&void 0!==i&&i.writable))&&(void 0===r&&(r=s((()=>Qr(o?io(t[e]):yn))),n.set(e,r)),us(r)===yn))return!1;return o},set(t,e,o,a){var l,c=n.get(e),u=e in t;if(i&&"length"===e)for(var d=o;d<c.v;d+=1){var h=n.get(d+"");void 0!==h?Zr(h,yn):d in t&&(h=s((()=>Qr(yn))),n.set(d+"",h))}void 0===c?(!u||null!==(l=In(t,e))&&void 0!==l&&l.writable)&&(Zr(c=s((()=>Qr(void 0))),io(o)),n.set(e,c)):(u=c.v!==yn,Zr(c,s((()=>io(o)))));var f=Reflect.getOwnPropertyDescriptor(t,e);if(null!=f&&f.set&&f.set.call(a,o),!u){if(i&&"string"==typeof e){var p=n.get("length"),m=Number(e);Number.isInteger(m)&&m>=p.v&&Zr(p,m+1)}eo(r)}return!0},ownKeys(t){us(r);var e=Reflect.ownKeys(t).filter((t=>{var e=n.get(t);return void 0===e||e.v!==yn}));for(var[i,o]of n)o.v===yn||i in t||e.push(i);return e},setPrototypeOf(){!function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}()}})}var ro,oo,so,ao;function lo(){if(void 0===ro){ro=window,oo=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,n=Text.prototype;so=In(e,"firstChild").get,ao=In(e,"nextSibling").get,Mn(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),Mn(n)&&(n.__t=void 0)}}function co(t=""){return document.createTextNode(t)}function uo(t){return so.call(t)}function ho(t){return ao.call(t)}function fo(t,e){if(!hi)return uo(t);var n=uo(di);if(null===n)n=di.appendChild(co());else if(e&&n.nodeType!==ai){var i,r=co();return null===(i=n)||void 0===i||i.before(r),pi(r),r}return pi(n),n}function po(t,e=!1){var n;if(!hi){var i=uo(t);return i instanceof Comment&&""===i.data?ho(i):i}if(e&&(null===(n=di)||void 0===n?void 0:n.nodeType)!==ai){var r,o=co();return null===(r=di)||void 0===r||r.before(o),pi(o),o}return di}function mo(t,e=1,n=!1){var i;let r=hi?di:t;for(var o;e--;)o=r,r=ho(r);if(!hi)return r;if(n&&(null===(i=r)||void 0===i?void 0:i.nodeType)!==ai){var s,a=co();if(null===r)null===(s=o)||void 0===s||s.after(a);else r.before(a);return pi(a),a}return pi(r),r}function go(t){t.textContent=""}function vo(t){var e=$o,n=Vo;qo(null),Ho(null);try{return t()}finally{qo(e),Ho(n)}}function yo(t){null===Vo&&(null===$o&&function(){throw new Error("https://svelte.dev/e/effect_orphan")}(),function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}()),Wo&&function(){throw new Error("https://svelte.dev/e/effect_in_teardown")}()}function bo(t,e,n){var i=Vo;null!==i&&i.f&qn&&(t|=qn);var r={ctx:wi,deps:null,nodes:null,f:t|$n|Wn,first:null,fn:e,last:null,next:null,parent:i,b:i&&i.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{ls(r),r.f|=Hn}catch(t){throw Fo(r),t}else null!==e&&dr(r);var o=r;if(!n||null!==o.deps||null!==o.teardown||null!==o.nodes||o.first!==o.last||o.f&Yn||(o=o.first,t&Dn&&t&Gn&&null!==o&&(o.f|=Gn)),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!==$o&&$o.f&Cn&&!(t&Ln))){var s,a=$o;(null!==(s=a.effects)&&void 0!==s?s:a.effects=[]).push(o)}return r}function ko(){return null!==$o&&!jo}function xo(t){const e=bo(Pn,null,!1);return Ri(e,Un),e.teardown=t,e}function wo(t){yo();var e=Vo.f;if(!!($o||!(e&Bn)||e&Hn))return _o(t);var n,i=wi;(null!==(n=i.e)&&void 0!==n?n:i.e=[]).push(t)}function _o(t){return bo(On|Qn,t,!1)}function To(t){return bo(On,t,!1)}function Io(t,e=0){return bo(Pn|e,t,!0)}function Eo(t,e=[],n=[],i=[]){Lr(i,e,n,(e=>{bo(Pn,(()=>t(...e.map(us))),!0)}))}function So(t,e=0){return bo(Dn|e,t,!0)}function No(t){return bo(Bn|Yn,t,!0)}function Ao(t){var e=t.teardown;if(null!==e){const t=Wo,n=$o;Uo(!0),qo(null);try{e.call(null)}finally{Uo(t),qo(n)}}}function Mo(t,e=!1){var n=t.first;for(t.first=t.last=null;null!==n;){const t=n.ac;null!==t&&vo((()=>{t.abort(si)}));var i=n.next;n.f&Ln?n.parent=null:Fo(n,e),n=i}}function Fo(t,e=!0){var n=!1;(e||t.f&Xn)&&null!==t.nodes&&null!==t.nodes.end&&(!function(t,e){for(;null!==t;){var n=t===e?null:ho(t);t.remove(),t=n}}(t.nodes.start,t.nodes.end),n=!0),Mo(t,e&&!n),as(t,0),Ri(t,Vn);var i=t.nodes&&t.nodes.t;if(null!==i)for(const t of i)t.stop();Ao(t);var r=t.parent;null!==r&&null!==r.first&&Co(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=null}function Co(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 Oo(t,e,n=!0){var i=[];Po(t,i,!0);var r=()=>{n&&Fo(t),e&&e()},o=i.length;if(o>0){var s=()=>--o||r();for(var a of i)a.out(s)}else r()}function Po(t,e,n){if(!(t.f&qn)){t.f^=qn;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;Po(r,e,!!(!!(r.f&Gn)||!!(r.f&Bn)&&!!(t.f&Dn))&&n),r=o}}}function Ro(t){Do(t,!0)}function Do(t,e){if(t.f&qn){t.f^=qn,t.f&Un||(Ri(t,$n),dr(t));for(var n=t.first;null!==n;){var i=n.next;Do(n,!!(!!(n.f&Gn)||!!(n.f&Bn))&&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 Bo(t,e){if(t.nodes)for(var n=t.nodes.start,i=t.nodes.end;null!==n;){var r=n===i?null:ho(n);e.append(n),n=r}}let Lo=!1;function zo(t){Lo=t}let Wo=!1;function Uo(t){Wo=t}let $o=null,jo=!1;function qo(t){$o=t}let Vo=null;function Ho(t){Vo=t}let Go=null;function Ko(t){null!==$o&&(null===Go?Go=[t]:Go.push(t))}let Xo=null,Yo=0,Qo=null;let Jo=1,Zo=0,ts=Zo;function es(t){ts=t}function ns(){return++Jo}function is(t){var e=t.f;if(e&$n)return!0;if(e&Cn&&(t.f&=~Zn),e&jn){for(var n=t.deps,i=n.length,r=0;r<i;r++){var o=n[r];if(is(o)&&Hr(o),o.wv>t.wv)return!0}e&Wn&&null===Ui&&Ri(t,Un)}return!1}function rs(t,e,n=!0){var i,r=t.reactions;if(null!==r&&(null===(i=Go)||void 0===i||!i.includes(t)))for(var o=0;o<r.length;o++){var s=r[o];s.f&Cn?rs(s,e,!1):e===s&&(n?Ri(s,$n):s.f&Un&&Ri(s,jn),dr(s))}}function os(t){var e=Xo,n=Yo,i=Qo,r=$o,o=Go,s=wi,a=jo,l=ts,c=t.f;Xo=null,Yo=0,Qo=null,$o=c&(Bn|Ln)?null:t,Go=null,_i(t.ctx),jo=!1,ts=++Zo,null!==t.ac&&(vo((()=>{t.ac.abort(si)})),t.ac=null);try{t.f|=ti;var u=(0,t.fn)(),d=t.deps;if(null!==Xo){var h;if(as(t,Yo),null!==d&&Yo>0)for(d.length=Yo+Xo.length,h=0;h<Xo.length;h++)d[Yo+h]=Xo[h];else t.deps=d=Xo;if(ko()&&t.f&Wn)for(h=Yo;h<d.length;h++){var f,p;(null!==(p=(f=d[h]).reactions)&&void 0!==p?p:f.reactions=[]).push(t)}}else null!==d&&Yo<d.length&&(as(t,Yo),d.length=Yo);if(!(null===Qo||jo||null===d||t.f&(Cn|jn|$n)))for(h=0;h<Qo.length;h++)rs(Qo[h],t);return null!==r&&r!==t&&(Zo++,null!==Qo&&(null===i?i=Qo:i.push(...Qo))),t.f&ni&&(t.f^=ni),u}catch(t){return Ci(t)}finally{t.f^=ti,Xo=e,Yo=n,Qo=i,$o=r,Go=o,_i(s),jo=a,ts=l}}function ss(t,e){let n=e.reactions;if(null!==n){var i=wn.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&Cn&&(null===Xo||!Xo.includes(e))){var o=e;o.f&Wn&&(o.f^=Wn,o.f&=~Zn),Di(o),qr(o),as(o,0)}}function as(t,e){var n=t.deps;if(null!==n)for(var i=e;i<n.length;i++)ss(t,n[i])}function ls(t){var e=t.f;if(!(e&Vn)){Ri(t,Un);var n=Vo,i=Lo;Vo=t,Lo=!0;try{e&(Dn|Rn)?function(t){for(var e=t.first;null!==e;){var n=e.next;e.f&Bn||Fo(e),e=n}}(t):Mo(t),Ao(t);var r=os(t);t.teardown="function"==typeof r?r:null,t.wv=Jo,kn&&xi&&t.f&$n&&t.deps}finally{Lo=i,Vo=n}}}async function cs(){await Promise.resolve(),function(){var t=Vi;Vi=!0;try{for(;;){var e;if(Fi(),0===$i.length&&(null===(e=Wi)||void 0===e||e.flush(),0===$i.length))return void(ji=null);or()}}finally{Vi=t}}()}function us(t){var e,n,i=!!(t.f&Cn);if(null!==$o&&!jo&&!(null!==Vo&&!!(Vo.f&Vn)||null!==(n=Go)&&void 0!==n&&n.includes(t))){var r=$o.deps;if($o.f&ti)t.rv<Zo&&(t.rv=Zo,null===Xo&&null!==r&&r[Yo]===t?Yo++:null===Xo?Xo=[t]:Xo.includes(t)||Xo.push(t));else{var o,s;(null!==(s=(o=$o).deps)&&void 0!==s?s:o.deps=[]).push(t);var a=t.reactions;null===a?t.reactions=[$o]:a.includes($o)||a.push($o)}}if(Wo&&Kr.has(t))return Kr.get(t);if(i){var l=t;if(Wo){var c=l.v;return(l.f&Un||null===l.reactions)&&!hs(l)||(c=Vr(l)),Kr.set(l,c),c}var u=!(l.f&Wn)&&!jo&&null!==$o&&(Lo||!!($o.f&Wn)),d=null===l.deps;is(l)&&(u&&(l.f|=Wn),Hr(l)),u&&!d&&ds(l)}if(null!==(e=Ui)&&void 0!==e&&e.has(t))return Ui.get(t);if(t.f&ni)throw t.v;return t.v}function ds(t){if(null!==t.deps){t.f|=Wn;for(const n of t.deps){var e;(null!==(e=n.reactions)&&void 0!==e?e:n.reactions=[]).push(t),n.f&Cn&&!(n.f&Wn)&&ds(n)}}}function hs(t){if(t.v===yn)return!0;if(null===t.deps)return!1;for(const e of t.deps){if(Kr.has(e))return!0;if(e.f&Cn&&hs(e))return!0}return!1}function fs(t){var e=jo;try{return jo=!0,t()}finally{jo=e}}const ps=new Set,ms=new Set;function gs(t,e,n,i,r){var o={capture:i,passive:r},s=function(t,e,n,i={}){function r(t){if(i.capture||bs.call(e,t),!t.cancelBubble)return vo((()=>null==n?void 0:n.call(this,t)))}return t.startsWith("pointer")||t.startsWith("touch")||"wheel"===t?Mi((()=>{e.addEventListener(t,r,i)})):e.addEventListener(t,r,i),r}(t,e,n,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&xo((()=>{e.removeEventListener(t,s,o)}))}function vs(t){for(var e=0;e<t.length;e++)ps.add(t[e]);for(var n of ms)n(t)}let ys=null;function bs(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;ys=t;var a=0,l=ys===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){Tn(t,"currentTarget",{configurable:!0,get:()=>s||i});var d=$o,h=Vo;qo(null),Ho(null);try{for(var f,p=[];null!==s;){var m=s.assignedSlot||s.parentNode||s.host||null;try{var g=s["__"+r];null==g||s.disabled&&t.target!==s||g.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,qo(d),Ho(h)}}}function ks(t,e){var n=Vo;null===n.nodes&&(n.nodes={start:t,end:e,a:null,t:null})}function xs(t,e){var n,i=!!(1&e),r=!!(2&e),o=!t.startsWith("<!>");return()=>{if(hi)return ks(di,null),di;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||oo?document.importNode(n,!0):n.cloneNode(!0);i?ks(uo(a),a.lastChild):ks(a,a);return a}}function ws(){if(hi)return ks(di,null),di;var t=document.createDocumentFragment(),e=document.createComment(""),n=co();return t.append(e,n),ks(e,n),t}function _s(t,e){if(hi){var n=Vo;return n.f&Hn&&null!==n.nodes.end||(n.nodes.end=di),void mi()}null!==t&&t.before(e)}const Ts=["touchstart","touchmove"];function Is(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 Es(t,e){return As(t,e)}function Ss(t,e){var n;lo(),e.intro=null!==(n=e.intro)&&void 0!==n&&n;const i=e.target,r=hi,o=di;try{for(var s=uo(i);s&&(s.nodeType!==li||s.data!==pn);)s=ho(s);if(!s)throw vn;fi(!0),pi(s);const n=As(t,{...e,anchor:s});return fi(!1),n}catch(n){if(n instanceof Error&&n.message.split("\n").some((t=>t.startsWith("https://svelte.dev/e/"))))throw n;return n!==vn&&console.warn("Failed to hydrate: ",n),!1===e.recover&&function(){throw new Error("https://svelte.dev/e/hydration_failed")}(),lo(),go(i),fi(!1),Es(t,e)}finally{fi(r),pi(o)}}const Ns=new Map;function As(t,{target:e,anchor:n,props:i={},events:r,context:o,intro:s=!0}){lo();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,Ts.includes(s));e.addEventListener(i,bs,{passive:r});var o=Ns.get(i);void 0===o?(document.addEventListener(i,bs,{passive:r}),Ns.set(i,1)):Ns.set(i,o+1)}}var s};l(_n(ps)),ms.add(l);var c=void 0,u=function(t){tr.ensure();const e=bo(Ln|Yn,t,!0);return(t={})=>new Promise((n=>{t.outro?Oo(e,(()=>{Fo(e),n(void 0)})):(Fo(e),n(void 0))}))}((()=>{var s=null!=n?n:e.appendChild(co());return function(t,e,n){new Fr(t,e,n)}(s,{pending:()=>{}},(e=>{o&&(Ii({}),wi.c=o);if(r&&(i.$$events=r),hi&&ks(e,null),c=t(e,i)||{},hi&&(Vo.nodes.end=di,null===di||di.nodeType!==li||di.data!==gn))throw ui(),vn;o&&Ei()})),()=>{for(var t of a){e.removeEventListener(t,bs);var i=Ns.get(t);0==--i?(document.removeEventListener(t,bs),Ns.delete(t)):Ns.set(t,i)}var r;(ms.delete(l),s!==n)&&(null===(r=s.parentNode)||void 0===r||r.removeChild(s))}}));return Ms.set(c,u),c}let Ms=new WeakMap;class Fs{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=Wi;if(this.#t.has(t)){var e=this.#t.get(t),n=this.#e.get(e);if(n)Ro(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&&(Fo(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();Bo(i,e),e.append(co()),this.#n.set(t,{effect:i,fragment:e})}else Fo(i);this.#i.delete(t),this.#e.delete(t)};this.#r||!n?(this.#i.add(t),Oo(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)||(Fo(n.effect),this.#n.delete(t))};ensure(t,e){var n=Wi;!e||this.#e.has(t)||this.#n.has(t)||this.#e.set(t,No((()=>e(this.anchor)))),this.#t.set(n,t),hi&&(this.anchor=di),this.#o()}}function Cs(t,e,n=!1){hi&&mi();var i=new Fs(t);function r(e,n){if(hi){if(e===(yi(t)===mn)){var r=vi();return pi(r),i.anchor=r,fi(!1),i.ensure(e,n),void fi(!0)}}i.ensure(e,n)}So((()=>{var t=!1;e(((e,n=!0)=>{t=!0,r(n,e)})),t||r(!1,null)}),n?Gn:0)}function Os(t,e){return e}function Ps(t,e=!0){for(var n=0;n<t.length;n++)Fo(t[n],e)}var Rs;function Ds(t,e,n,i,r,o=null){var s=t,a=new Map;if(!!(e&an)){var l=t;s=hi?pi(uo(l)):l.appendChild(co())}hi&&mi();var c,u=null,d=jr((()=>{var t=n();return xn(t)?t:null==t?[]:_n(t)})),h=!0;function f(){m.fallback=u,function(t,e,n,i,r){var o,s,a,l,c,u=!!(i&ln),d=e.length,h=t.items,f=t.effect.first,p=null,m=[],g=[];if(u)for(c=0;c<d;c+=1){var v,y;if(a=r(e[c],c),!((l=h.get(a).e).f&Jn))null===(v=l.nodes)||void 0===v||null===(v=v.a)||void 0===v||v.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&Jn){if(l.f^=Jn,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),zs(t,p,l),zs(t,l,b),Ls(l,b,n),m=[],g=[],f=(p=l).next;continue}Ls(l,null,n)}var k,x;if(l.f&qn)if(Ro(l),u)null===(k=l.nodes)||void 0===k||null===(k=k.a)||void 0===k||k.unfix(),(null!==(x=s)&&void 0!==x?x:s=new Set).delete(l);if(l!==f){if(void 0!==o&&o.has(l)){if(m.length<g.length){var w,_=g[0];p=_.prev;var T=m[0],I=m[m.length-1];for(w=0;w<m.length;w+=1)Ls(m[w],_,n);for(w=0;w<g.length;w+=1)o.delete(g[w]);zs(t,T.prev,I.next),zs(t,p,T),zs(t,I,_),f=_,p=I,c-=1,m=[],g=[]}else o.delete(l),Ls(l,f,n),zs(t,l.prev,l.next),zs(t,l,null===p?t.effect.first:p.next),zs(t,p,l),p=l;continue}for(m=[],g=[];null!==f&&f!==l;){var E;(null!==(E=o)&&void 0!==E?E:o=new Set).add(f),g.push(f),f=f.next}if(null===f)continue}l.f&Jn||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)Ps(_n(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 N=[];if(void 0!==o)for(l of o)l.f&qn||N.push(l);for(;null!==f;)f.f&qn||f===t.fallback||N.push(f),f=f.next;var A=N.length;if(A>0){var M=i&an&&0===d?n:null;if(u){for(c=0;c<A;c+=1){var F;null===(F=N[c].nodes)||void 0===F||null===(F=F.a)||void 0===F||F.measure()}for(c=0;c<A;c+=1){var C;null===(C=N[c].nodes)||void 0===C||null===(C=C.a)||void 0===C||C.fix()}}!function(t,e,n){for(var i,r=e.length,o=e.length,s=0;s<r;s++){let n=e[s];Oo(n,(()=>{if(i){if(i.pending.delete(n),i.done.add(n),0===i.pending.size){var e=t.outrogroups;Ps(_n(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;go(c),c.append(l),t.items.clear()}Ps(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,N,M)}}u&&Mi((()=>{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&Jn?(u.f^=Jn,Ls(u,null,s)):Ro(u):Oo(u,(()=>{u=null})))}var p=So((()=>{var t=(c=us(d)).length;let l=!1;hi&&(yi(s)===mn!==(0===t)&&(pi(s=vi()),fi(!1),l=!0));for(var p=new Set,m=0;m<t;m+=1){hi&&di.nodeType===li&&di.data===gn&&(s=di,l=!0,fi(!1));var g,v=c[m],y=i(v,m),b=h?null:a.get(y);if(b)b.v&&to(b.v,v),b.i&&to(b.i,m);else b=Bs(a,h?s:null!==(g=Rs)&&void 0!==g?g:Rs=co(),v,y,m,r,e,n),h||(b.e.f|=Jn),a.set(y,b);p.add(y)}0===t&&o&&!u&&(h?u=No((()=>o(s))):(u=No((()=>{var t;return o(null!==(t=Rs)&&void 0!==t?t:Rs=co())}))).f|=Jn),hi&&t>0&&pi(vi()),h||f(),l&&fi(!0),us(d)})),m={effect:p,items:a,outrogroups:null,fallback:u};h=!1,hi&&(s=di)}function Bs(t,e,n,i,r,o,s,a){var l=s&on?s&cn?Yr(n):Jr(n,!1,!1):null,c=s&sn?Yr(r):null;return{v:l,i:c,e:No((()=>(o(e,null!=l?l:n,null!=c?c:r,a),()=>{t.delete(i)})))}}function Ls(t,e,n){if(t.nodes)for(var i=t.nodes.start,r=t.nodes.end,o=!e||e.f&Jn?n:e.nodes.start;null!==i;){var s=ho(i);if(o.before(i),i===r)return;i=s}}function zs(t,e,n){null===e?t.effect.first=n:e.next=n,null===n?t.effect.last=e:n.prev=e}const Ws=[..." \t\n\r\f \v\ufeff"];function Us(t,e,n,i,r,o){var s=t.__className;if(hi||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&&!Ws.includes(i[s-1])||a!==i.length&&!Ws.includes(i[a])?s=a:i=(0===s?"":i.substring(0,s))+i.substring(a+1)}return""===i?null:i}(n,i,o);hi&&a===t.getAttribute("class")||(null==a?t.removeAttribute("class"):t.className=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 $s(t,e,n,i){var r=t.__style;if(hi||r!==e){var o=function(t){return null==t?null:String(t)}(e);hi&&o===t.getAttribute("style")||(null==o?t.removeAttribute("style"):t.style.cssText=o),t.__style=e}return i}const js=Symbol("is custom element"),qs=Symbol("is html");function Vs(t,e,n,i){var r=function(t){var e;return null!==(e=t.__attributes)&&void 0!==e?e:t.__attributes={[js]:t.nodeName.includes("-"),[qs]:t.namespaceURI===bn}}(t);hi&&(r[e]=t.getAttribute(e),"src"===e||"srcset"===e||"href"===e&&"LINK"===t.nodeName)||r[e]!==(r[e]=n)&&("loading"===e&&(t[oi]=n),null==n?t.removeAttribute(e):"string"!=typeof n&&function(t){var e,n=t.getAttribute("is")||t.nodeName,i=Hs.get(n);if(i)return i;Hs.set(n,i=[]);var r=t,o=Element.prototype;for(;o!==r;){for(var s in e=En(r))e[s].set&&i.push(s);r=An(r)}return i}(t).includes(e)?t[e]=n:t.setAttribute(e,n))}var Hs=new Map;var Gs=new WeakMap,Ks=new WeakMap,Xs=new WeakMap,Ys=new WeakSet;class Qs{constructor(t){O(this,Ys),F(this,Gs,new WeakMap),F(this,Ks,void 0),F(this,Xs,void 0),C(Xs,this,t)}observe(t,e){var n=M(Gs,this).get(t)||new Set;return n.add(e),M(Gs,this).set(t,n),N(Ys,this,Js).call(this).observe(t,M(Xs,this)),()=>{var n=M(Gs,this).get(t);n.delete(e),0===n.size&&(M(Gs,this).delete(t),M(Ks,this).unobserve(t))}}}function Js(){var t;return null!==(t=M(Ks,this))&&void 0!==t?t:C(Ks,this,new ResizeObserver((t=>{for(var e of t)for(var n of(re.entries.set(e.target,e),M(Gs,this).get(e.target)||[]))n(e)})))}re=Qs,P(Qs,"entries",new WeakMap);var Zs=new Qs({box:"content-box"}),ta=new Qs({box:"border-box"});function ea(t,e,n){xo(Zs.observe(t,(t=>n(t[e]))))}function na(t,e,n){var i=ta.observe(t,(()=>n(t[e])));To((()=>(fs((()=>n(t[e]))),i)))}function ia(t,e){return t===e||(null==t?void 0:t[ii])===e}function ra(t={},e,n,i){return To((()=>{var i,r;return Io((()=>{i=r,r=[],fs((()=>{t!==n(...r)&&(e(t,...r),i&&ia(n(...i),t)&&e(null,...i))}))})),()=>{Mi((()=>{r&&ia(n(...r),t)&&e(null,...r)}))}})),t}let oa=!1;function sa(t,e,n,i){var r,o,s=!!(n&hn),a=!!(n&fn),l=i,c=!0,u=()=>(c&&(c=!1,l=a?fs(i):i),l);if(s){var d,h,f=ii in t||ri in t;r=null!==(d=null===(h=In(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=oa;try{return oa=!1,[t(),oa]}finally{oa=e}}((()=>t[e])):o=t[e],void 0===o&&void 0!==i&&(o=u(),r&&(!function(){throw new Error("https://svelte.dev/e/props_invalid_value")}(),r(o))),p=()=>{var n=t[e];return void 0===n?u():(c=!0,n)},!(n&dn))return p;if(r){var g=t.$$legacy;return function(t,e){return arguments.length>0?((!e||g||m)&&r(e?p():t),t):p()}}var v=!1,y=(n&un?Wr:jr)((()=>(v=!1,p())));s&&us(y);var b=Vo;return function(t,e){if(arguments.length>0){const n=e?us(y):s?io(t):t;return Zr(y,n),v=!0,void 0!==l&&(l=n),t}return Wo&&v||b.f&Vn?y.v:us(y)}}var aa,la,ca,ua;"undefined"!=typeof window&&(null!==(la=(aa=null!==(ua=(ca=window).__svelte)&&void 0!==ua?ua:ca.__svelte={}).v)&&void 0!==la?la:aa.v=new Set).add("5");function da(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}class ha{constructor({position:t,galleryState:e,config:n}){this.config=n,this.position=t,this.galleryState=e,this.name=n.name;const{variantId:i,itemIndex:r,moduleIndex:o}=t;this.id=`${n.itemType}_${i}_${r}_${o}`,da(this)}#a=Qr(io({}));#l=Qr(null);#c=Qr(null);id;player;position;config;timeline;moduleEndListener;hasDuration=!1;coverAssets=[];get state(){return us(this.#a)}set state(t){Zr(this.#a,t,!0)}get cover(){return us(this.#l)}set cover(t){Zr(this.#l,t)}get Component(){return us(this.#c)}set Component(t){Zr(this.#c,t)}emitModuleEnd(){var t;null===(t=this.moduleEndListener)||void 0===t||t.call(this)}start(t){this.player=t}setPosition(){this.galleryState.playingModulePosition=this.position}play(){this.timeline.getNodesAtTime(0)[0].once("nodestart",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}}function fa(t,e,n){return n.addNode({id:t,manifestRef:{type:"assets-delivery-service",assetId:e.entity.entityId,assetRevision:e.entity.entityRevision,availableEncodeProfiles:e.availableEncodeProfiles}})}var pa=xs('<h3 class="svelte-17x2i38"> </h3>'),ma=xs('<p class="svelte-17x2i38"> </p>'),ga=xs('<span class="svelte-17x2i38"> </span>'),va=xs('<div><button class="svelte-17x2i38"><!> <!> <!></button></div>'),ya=xs('<div class="textBoxDescriptionBox svelte-17x2i38" aria-roledescription="Feature description box"><!></div>');function ba(t,e){const n=$r((()=>e.state.textBox));!function(t,e){Ii(e,!0);let n=sa(e,"textBox",3,null),i=sa(e,"isMobile",3,!1),r=Qr(!1),o=Qr(0),s=Qr(null),a=Qr(null),l=Qr(null),c=$r((()=>{var t;return(null===(t=us(l))||void 0===t?void 0:t.blockSize)||20})),u=$r((()=>{var t,e,n,i;return(null===(t=us(a))||void 0===t?void 0:t.inlineSize)-us(c)>(null===(e=us(s))||void 0===e?void 0:e.clientWidth)||(null===(n=us(s))||void 0===n?void 0:n.scrollHeight)>(null===(i=us(s))||void 0===i?void 0:i.clientHeight)}));function d(){Zr(r,!us(r))}var h=ws(),f=po(h),p=t=>{var e=ya(),c=fo(e),h=t=>{var e=va(),c=fo(e);c.__click=d;var h=fo(c),f=t=>{var e=pa(),i=fo(e,!0);gi(e),Eo((()=>Is(i,n().title))),_s(t,e)};Cs(h,(t=>{var e;i()&&null!==(e=n())&&void 0!==e&&e.title&&t(f)}));var p=mo(h,2),m=t=>{var e=ma(),i=fo(e,!0);gi(e),ra(e,(t=>Zr(s,t)),(()=>us(s))),Eo((()=>Is(i,n().description))),ea(e,"contentBoxSize",(t=>Zr(a,t))),_s(t,e)};Cs(p,(t=>{(!i()||i()&&us(r))&&t(m)}));var g=mo(p,2),v=t=>{var e=ga(),n=fo(e);gi(e),Eo((()=>Is(n,"Read "+(us(r)?"less":"more")))),ea(e,"contentBoxSize",(t=>Zr(l,t))),_s(t,e)};Cs(g,(t=>{(i()||!i()&&(us(u)||us(r)))&&t(v)})),gi(c),gi(e),Eo((()=>{var t;Us(e,0,"step-description "+(us(r)?"expanded":""),"svelte-17x2i38"),$s(e,`height: ${null!==(t=us(o))&&void 0!==t?t:""}px`)})),na(c,"clientHeight",(t=>Zr(o,t))),_s(t,e)};Cs(c,(t=>{var e;null!==(e=n())&&void 0!==e&&e.description&&t(h)})),gi(e),Eo((()=>$s(e,`padding: ${i()?"8px 16px":"16px 16px 56px 16px"};`))),_s(t,e)};Cs(f,(t=>{var e,i;(null!==(e=n())&&void 0!==e&&e.title||null!==(i=n())&&void 0!==i&&i.description)&&t(p)})),_s(t,h),Ei()}(t,{get textBox(){return us(n)},get isMobile(){return e.isMobile}})}vs(["click"]);var ka=xs('<div class="toggle-option-container svelte-16pmvvn"><button> </button></div>'),xa=xs('<div class="toggle-container svelte-16pmvvn"><div></div></div>');function wa(t,e){const n=$r((()=>e.state.options)),i=$r((()=>e.state.currentOptionIndex)),r=$r((()=>e.state.onOptionClicked));var o=xa(),s=fo(o);Ds(s,21,(()=>us(n)),Os,((t,e,n)=>{var o=ka();$s(o,`--button-index: ${n};`);var s=fo(o);let a;s.__click=()=>us(r)(n);var l=fo(s,!0);gi(s),gi(o),Eo((()=>{a=Us(s,0,"toggle-option-button svelte-16pmvvn",null,a,{selected:us(i)===n}),Is(l,us(e).label)})),_s(t,o)})),gi(s),gi(o),Eo((()=>{var t;return Us(s,0,`toggle-options selected-${null!==(t=us(i))&&void 0!==t?t:""}`,"svelte-16pmvvn")})),_s(t,o)}vs(["click"]);var _a=new WeakSet;function Ta(t){var e,n;t!==this.state.currentOptionIndex&&(this.state.currentOptionIndex=t,this.cover=this.coverAssets[t],this.synced?this.switchTo(t):(this.timeline=null===(e=this.timelines)||void 0===e?void 0:e[t],null===(n=this.player)||void 0===n||n.switchTimeline(this.timeline)))}const Ia=(t,e,n)=>n>e?e:n<t?t:n;function Ea(t,e){return e?`${t}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${e}`:t}let Sa=()=>{},Na=()=>{};function Aa(t){let e;return()=>(void 0===e&&(e=t()),e)}"undefined"!=typeof process&&"production"!==(null===(oe=process.env)||void 0===oe?void 0:oe.NODE_ENV)&&(Sa=(t,e,n)=>{t||"undefined"==typeof console||console.warn(Ea(e,n))},Na=(t,e,n)=>{if(!t)throw new Error(Ea(e,n))});const Ma=t=>t,Fa=t=>1e3*t,Ca=t=>t/1e3;const Oa=t=>Array.isArray(t)&&"number"==typeof t[0],Pa=(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)})`},Ra=2e4;function Da(t){let e=0;let n=t.next(e);for(;!n.done&&e<Ra;)e+=50,n=t.next(e);return e>=Ra?1/0:e}const Ba=5;const La={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},za=.001;function Wa({duration:t=La.duration,bounce:e=La.bounce,velocity:n=La.velocity,mass:i=La.mass}){let r,o;Sa(t<=Fa(La.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let s=1-e;s=Ia(La.minDamping,La.maxDamping,s),t=Ia(La.minDuration,La.maxDuration,Ca(t)),s<1?(r=e=>{const i=e*s,r=i*t,o=i-n,a=$a(e,s),l=Math.exp(-r);return za-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=$a(Math.pow(e,2),s);return(-r(e)+za>0?-1:1)*((o-a)*l)/c}):(r=e=>Math.exp(-e*t)*((e-n)*t+1)-za,o=e=>Math.exp(-e*t)*(t*t*(n-e)));const a=function(t,e,n){let i=n;for(let n=1;n<Ua;n++)i-=t(i)/e(i);return i}(r,o,5/t);if(t=Fa(t),isNaN(a))return{stiffness:La.stiffness,damping:La.damping,duration:t};{const e=Math.pow(a,2)*i;return{stiffness:e,damping:2*s*Math.sqrt(i*e),duration:t}}}const Ua=12;function $a(t,e){return t*Math.sqrt(1-e*e)}const ja=["duration","bounce"],qa=["stiffness","damping","mass"];function Va(t,e){return e.some((e=>void 0!==t[e]))}function Ha(t=La.visualDuration,e=La.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:La.velocity,stiffness:La.stiffness,damping:La.damping,mass:La.mass,isResolvedFromDuration:!1,...t};if(!Va(t,qa)&&Va(t,ja))if(t.visualDuration){const n=t.visualDuration,i=2*Math.PI/(1.2*n),r=i*i,o=2*Ia(.05,1,1-(t.bounce||0))*Math.sqrt(r);e={...e,mass:La.mass,stiffness:r,damping:o}}else{const n=Wa(t);e={...e,...n,mass:La.mass},e.isResolvedFromDuration=!0}return e}({...n,velocity:-Ca(n.velocity||0)}),p=h||0,m=c/(2*Math.sqrt(l*u)),g=s-o,v=Ca(Math.sqrt(l/u)),y=Math.abs(g)<5;let b;if(i||(i=y?La.restSpeed.granular:La.restSpeed.default),r||(r=y?La.restDelta.granular:La.restDelta.default),m<1){const t=$a(v,m);b=e=>{const n=Math.exp(-m*v*e);return s-n*((p+m*v*g)/t*Math.sin(t*e)+g*Math.cos(t*e))}}else if(1===m)b=t=>s-Math.exp(-v*t)*(g+(p+v*g)*t);else{const t=v*Math.sqrt(m*m-1);b=e=>{const n=Math.exp(-m*v*e),i=Math.min(t*e,300);return s-n*((p+m*v*g)*Math.sinh(i)+t*g*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?Fa(p):function(t,e,n){const i=Math.max(e-Ba,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(Da(k),Ra),e=Pa((e=>k.next(t*e).value),t,30);return t+"ms "+e},toTransition:()=>{}};return k}Ha.applyToOptions=t=>{const e=function(t,e=100,n){const i=n({...t,keyframes:[0,e]}),r=Math.min(Da(i),Ra);return{type:"keyframes",ease:t=>i.next(r*t).value/e,duration:Ca(r)}}(t,100,Ha);return t.ease=e.ease,t.duration=Fa(e.duration),t.type="keyframes",t};const Ga=t=>null!==t;class Ka{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 Xa(t){for(let n=1;n<t.length;n++){var e;null!==(e=t[n])&&void 0!==e||(t[n]=t[n-1])}}const Ya=t=>t.startsWith("--");const Qa=Aa((()=>void 0!==window.ScrollTimeline)),Ja={};function Za(t,e){const n=Aa(t);return()=>{var t;return null!==(t=Ja[e])&&void 0!==t?t:n()}}const tl=Za((()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0}),"linearEasing"),el=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`,nl={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:el([0,.65,.55,1]),circOut:el([.55,0,1,.45]),backIn:el([.31,.01,.66,-.59]),backOut:el([.33,1.53,.69,.99])};function il(t,e){return t?"function"==typeof t?tl()?Pa(t,e):"ease-out":Oa(t)?el(t):Array.isArray(t)?t.map((t=>il(t,e)||nl.easeOut)):nl[t]:void 0}function rl(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=il(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 ol extends Ka{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,Na("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)&&tl()?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=rl(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(Ga),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){Ya(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 Ca(Number(n))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Ca(t)}get time(){return Ca(Number(this.animation.currentTime)||0)}set time(t){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Fa(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&&Qa()?(this.animation.timeline=t,Ma):e(this)}}class sl{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 al(this.animations,"duration")}get iterationDuration(){return al(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 al(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 ll extends sl{then(t,e){return this.finished.finally(t).then((()=>{}))}}const cl=new WeakMap,ul=(t,e="")=>`${t}:${e}`;function dl(t){const e=cl.get(t)||new Map;return cl.set(t,e),e}function hl(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 fl=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 pl(t,e){for(let n=0;n<t.length;n++)"number"==typeof t[n]&&fl.has(e)&&(t[n]=t[n]+"px")}function ml(t,e){const n=window.getComputedStyle(t);return Ya(e)?n.getPropertyValue(e):n[e]}function gl(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;Na(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={...hl(a,t)};r.duration&&(r.duration=Fa(r.duration)),r.delay&&(r.delay=Fa(r.delay));const o=dl(i),l=ul(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]=ml(i,r)),Xa(e),pl(e,r),!o&&e.length<2&&e.unshift(ml(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 ol(i);e.set(n,r),r.finished.finally((()=>e.delete(n))),a.push(r)}return a}const vl=(()=>function(t,e,n){return new ll(gl(t,e,n))})();var yl=xs('<button class="svelte-16kucsb"><div class="svelte-16kucsb"> </div></button>'),bl=xs('<div class="tryIt-container svelte-16kucsb"><!></div>');function kl(t,e){Ii(e,!0);const n=$r((()=>e.state.ctaText)),i=$r((()=>e.state.animationConfig)),r=$r((()=>e.state.showCta)),o=$r((()=>e.state.onCtaClick));let s=null,a=null,l=Qr(!1),c=!1;function u(){c&&vl(s,{transform:"scale(1.05)"},{type:Ha,mass:1.5,stiffness:400,damping:30})}function d(){c&&vl(s,{transform:"scale(1)"},{type:Ha,mass:1.5,stiffness:400,damping:30})}function h(){c&&vl(s,{transform:"scale(0.95)"},{type:Ha,mass:1,stiffness:600,damping:30})}wo((()=>{const{mass:t,stiffness:e,damping:n,delay:o}=us(i);let u;return us(r)&&(u=setTimeout((async()=>{Zr(l,!0),u=null,vl(s,{transform:["translateY(40px) scale(0, 0.2)","translateY(0) scale(1, 1)"],opacity:1},{type:Ha,mass:t,stiffness:e,damping:n}),await vl(a,{transform:["translateY(20px) scale(0.8)","translateY(0) scale(1)"],opacity:1},{type:Ha,mass:t,stiffness:e,damping:n,delay:.15}),c=!0}),o)),()=>{u&&clearTimeout(u)}}));var f=bl(),p=fo(f),m=t=>{var e=yl();e.__mousedown=h,e.__touchstart=h,e.__click=function(...t){var e;null===(e=us(o))||void 0===e||e.apply(this,t)};var i=fo(e),r=fo(i,!0);gi(i),ra(i,(t=>a=t),(()=>a)),gi(e),ra(e,(t=>s=t),(()=>s)),Eo((()=>{$s(e,"pointer-events: "+(us(l)?"auto":"none")),Is(r,us(n))})),gs("mouseenter",e,u),gs("mouseleave",e,d),_s(t,e)};Cs(p,(t=>{us(r)&&t(m)})),gi(f),_s(t,f),Ei()}vs(["mousedown","touchstart","click"]);var xl=new WeakSet;function wl(){this.mainTimeline?this.player.switchTimeline(this.mainTimeline):this.emitModuleEnd(),this.state.showCta=!1}const _l={videoModule:class extends ha{constructor({config:t,...e}){var n;super({...e,config:t}),this.Component=ba,this.hasDuration=!t.loop,da(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(fa(`${this.id}_intro`,e.intro,t),"end");const n=fa(this.id,e.video,t);this.timeline.placeOnTimeline(n,"end",{loop:e.loop}),e.loop||n.on("nodeend",this.emitModuleEnd)}},toggleModule:class extends ha{constructor({config:t,...e}){super({...e,config:t}),O(this,_a),this.Component=wa,this.synced=t.sync,this.switchTo=()=>{},da(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:N(_a,this,Ta).bind(this)}}start(t){super.start(t),this.synced?(this.timeline=t.createTimeline(),this.config.options.forEach(((e,n)=>{this.timeline.placeOnTimeline(fa(`${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(fa(`${this.id}_option_${n}_intro`,e.intro,t),"end"),i.placeOnTimeline(fa(`${this.id}_option_${n}`,e.video,t),"end",{loop:!0}),i})),this.timeline=this.timelines[this.state.currentOptionIndex])}},tryItModule:class extends ha{constructor({config:t,...e}){var n;super({...e,config:t}),O(this,xl),da(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:N(xl,this,wl).bind(this)}}start(t){super.start(t),this.Component=kl,this.timeline=t.createTimeline();const{introVideo:e,mainVideo:n}=this.config;if(e.intro&&this.timeline.placeOnTimeline(fa(`${this.id}_intro_intro`,e.intro,t)),this.timeline.placeOnTimeline(fa(`${this.id}_intro_loop`,e.loop,t),"end",{loop:!0}),n){this.mainTimeline=t.createTimeline(),n.intro&&this.mainTimeline.placeOnTimeline(fa(`${this.id}_main_intro`,n.intro,t));const e=fa(`${this.id}_main_loop`,n.loop,t);this.mainTimeline.placeOnTimeline(e,"end",{loop:!0})}}play(){this.state.showCta=!0,super.play()}}};class Tl{#u=Qr({});#d=Qr("ekonovar");#h=Qr(0);#f=Qr(0);#p=Qr(io({itemIndex:0,moduleIndex:0}));#m=$r((()=>{var t;return null===(t=us(this.#u))||void 0===t?void 0:t[us(this.#d)]}));#g=$r((()=>{var t;return null===(t=us(this.#m))||void 0===t?void 0:t[us(this.#h)]}));#v=$r((()=>{var t,e;return us(this.#y)?null===(e=us(this.#m))||void 0===e?void 0:e[us(this.#p).itemIndex].modules[us(this.#p).moduleIndex]:null===(t=us(this.#g))||void 0===t?void 0:t.modules[us(this.#f)]}));#b=$r((()=>{var t;return(null===(t=us(this.#m))||void 0===t?void 0:t.flatMap((t=>t.modules)))||[]}));#k=Qr(!1);#y=Qr(!1);#x=$r((()=>!(us(this.#p).itemIndex===this.activeItemIndex&&us(this.#p).moduleIndex===this.activeModuleIndex)));set variants(t){Zr(this.#u,t)}set activeVariant(t){Zr(this.#d,t,!0)}set activeItemIndex(t){Zr(this.#h,t,!0)}set activeModuleIndex(t){Zr(this.#f,t,!0)}set playingModulePosition(t){Zr(this.#p,t,!0)}set paused(t){Zr(this.#k,t,!0)}set startedPlaying(t){Zr(this.#y,t,!0)}get variants(){return us(this.#u)}get activeVariant(){return us(this.#d)}get activeItemIndex(){return us(this.#h)}get activeModuleIndex(){return us(this.#f)}get playingModulePosition(){return us(this.#p)}get currentItemsList(){return us(this.#m)}get currentItem(){return us(this.#g)}get currentModule(){return us(this.#v)}get paused(){return us(this.#k)}get startedPlaying(){return us(this.#y)}get seeking(){return us(this.#x)}get currentModulesList(){return us(this.#b)}}var Il="https://assets.eko.com";const El=2,Sl=5,Nl=["activeItemIndex","activeModuleIndex","paused","startedPlaying"],Al=["version","selectItem","selectItemAndStep","next","prev","subscribe"];var Ml=new WeakMap,Fl=new WeakMap,Cl=new WeakMap,Ol=new WeakSet;class Pl{constructor(t){var e;O(this,Ol),F(this,Ml,void 0),F(this,Fl,void 0),F(this,Cl,void 0),P(this,"public",void 0),P(this,"version","0.0.6"),da(this),C(Cl,this,t),C(Ml,this,new Tl),C(Fl,this,[]);const n=null==t||null===(e=t.instance)||void 0===e||null===(e=e.data)||void 0===e||null===(e=e.blocks)||void 0===e||null===(e=e.blocksArr)||void 0===e||null===(e=e.find((t=>"GalleryBlock"===t.blockType)))||void 0===e?void 0:e.config;var i;n?(N(Ol,this,Rl).call(this,n.items),N(Ol,this,Dl).call(this,n.items)):console.warn("[eko-gallery-app] Gallery initiated without an instance, results will be empty"),this.public=(i=this,Al.reduce(((t,e)=>{if(!(e in i))throw new Error(`[eko-gallery-app] Public API member "${e}" does not exist on GalleryLogic`);const n=i[e];return t[e]="function"==typeof n?n.bind(i):n,t}),{}))}start(t){M(Fl,this).forEach((e=>{e.start(t)})),C(Fl,this,null),N(Ol,this,Bl).call(this,t),M(Ml,this).currentModule.play()}selectItem(t){const e=M(Ml,this);t!==e.activeItemIndex&&(e.activeItemIndex=t,e.activeModuleIndex=0)}selectItemAndStep(t,e){const n=M(Ml,this);t===n.activeItemIndex&&e===n.activeModuleIndex||(n.activeItemIndex=t,n.activeModuleIndex=e)}next(){const t=M(Ml,this);t.seeking||(t.startedPlaying?N(Ol,this,zl).call(this):t.activeItemIndex=(t.activeItemIndex+1)%t.currentItemsList.length)}prev(){const t=M(Ml,this);if(!t.seeking)if(t.startedPlaying){if(t.activeModuleIndex=t.activeModuleIndex-1,!t.currentItem.modules[t.activeModuleIndex]){t.activeItemIndex=(t.activeItemIndex-1+t.currentItemsList.length)%t.currentItemsList.length;const e=t.currentItemsList[t.activeItemIndex];t.activeModuleIndex=e.modules.length-1}}else t.activeItemIndex=(t.activeItemIndex-1+t.currentItemsList.length)%t.currentItemsList.length}subscribe(t){const e=M(Ml,this);return function(t){tr.ensure();const e=bo(Ln|Yn,t,!0);return()=>{Fo(e)}}((()=>{wo((()=>{const n=Nl.reduce(((t,n)=>(t[n]=e[n],t)),{});t(n)}))}))}getCoverUrl(t,e){var n,i;const r=null==t||null===(n=t.entity)||void 0===n?void 0:n.entityId;if(!r)throw new Error("[getCoverUrl] No assetId found.");let o;var s;return null!==(i=M(Cl,this))&&void 0!==i&&null!==(i=i.coverAssetsMap)&&void 0!==i&&i[r]?(o=new URL(M(Cl,this).coverAssetsMap[r]),/^[a-z0-9]*assets.eko.com$/.test(o.host)&&e&&(o.pathname=o.pathname.replace(".png",".webp"))):(s=t,o=new URL(`${Il}/image/${s.entity.entityId}/${s.entity.entityRevision}?startOffset=0`),o.pathname+=e?".webp":".png"),e&&o.searchParams.set("width",e),o.href}get currentConfig(){return M(Cl,this)}get state(){return M(Ml,this)}}function Rl(t){const e={};for(let n of t)for(let t of Object.keys(n.variants||{}))e[t]=[];e.ekonovar=[],M(Ml,this).variants=e}function Dl(t){const e=(t=[],e)=>{const n=[];for(let[i,r]of t.entries()){if(!_l[r.itemType])throw new Error(`Unknown module type ${r.itemType}`);const t=new _l[r.itemType]({position:{...e,moduleIndex:i},config:r,galleryState:M(Ml,this)});t.moduleEndListener=N(Ol,this,Ll).bind(this),n.push(t)}return n};for(const[i,r]of t.entries())if("galleryItemV2"===r.itemType){const{modules:t,...o}=r;for(const[s,a]of Object.entries(M(Ml,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}),C(Fl,this,[...M(Fl,this),...n.modules]),a.push(n)}}}}function Bl(t){for(const[,e]of Object.entries(M(Ml,this).variants))for(const[n,i]of e.entries()){const r=i.modules,o=e.filter((t=>t!==i)).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=>t!==a)).map((t=>t.timeline.getNodesAtTime(0)[0])),u=[{nodeId:l.id,weight:El},...c.map((t=>({nodeId:t.id,weight:Sl})))];for(const e of s.timeline.placements){t.getNode(e.nodeId).setChildren(u)}}}}function Ll(){const t=M(Ml,this),e=t.currentItem.modules;e.length>1&&t.activeModuleIndex===e.length-1?t.activeModuleIndex=0:N(Ol,this,zl).call(this)}function zl(){const t=M(Ml,this);t.activeModuleIndex=t.activeModuleIndex+1,t.currentItem.modules[t.activeModuleIndex]||(t.activeItemIndex=(t.activeItemIndex+1)%t.currentItemsList.length,t.activeModuleIndex=0)}var Wl=xs('<button><span class="svelte-er27y2"> </span></button>'),Ul=xs('<div class="nav-buttons-container svelte-er27y2"><div class="nav-buttons svelte-er27y2"></div></div>');vs(["click"]);const $l="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 jl=xs('<button><img class="svelte-1al44kl"/></button>');function ql(t,e){const n=sa(e,"hidden",3,!1);var i=jl();let r;i.__click=function(...t){var n;null===(n=e.onClick)||void 0===n||n.apply(this,t)};var o=fo(i);gi(i),Eo((()=>{var t;r=Us(i,0,`nav-button ${null!==(t=e.type)&&void 0!==t?t:""}`,"svelte-1al44kl",r,{hidden:n()}),Vs(i,"aria-label",e.type),Vs(o,"src",$l),Vs(o,"alt",e.type)})),_s(t,i)}vs(["click"]);var Vl=xs('<button><span class="svelte-1mxltt0"> </span></button>'),Hl=xs('<div class="steps-indicator-container svelte-1mxltt0"><button aria-label="Scroll to previous steps"><img alt="Previous steps button" class="svelte-1mxltt0"/></button> <div role="group" aria-roledescription="Sequence navigation buttons"></div> <button aria-label="Scroll to next steps"><img alt="Next steps button" class="svelte-1mxltt0"/></button></div>');function Gl(t,e){Ii(e,!0);const n=16,i=32,r=Ti("state");let o=Qr(null),s=Qr(null),a=Qr(!1),l=Qr(!1);const c=$r((()=>{let t=[];return t=r().currentItem.modules.map(((t,e)=>({index:e,type:e===r().activeModuleIndex?"active":"",name:t.name}))),t}));function u(){us(o)&&(Zr(a,us(o).scrollLeft>3),Zr(l,us(o).scrollLeft+us(o).clientWidth<us(o).scrollWidth-3))}function d(t){us(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(us(o).querySelectorAll(".step-button")).find((t=>{const e=t.getBoundingClientRect(),n=us(o).getBoundingClientRect();return e.left>n.left+i}));if(t){const e=t.previousElementSibling;e&&h(us(o),e)}}function p(){const t=Array.from(us(o).querySelectorAll(".step-button")).reverse().find((t=>{const e=t.getBoundingClientRect(),n=us(o).getBoundingClientRect();return e.right<n.right-i}));if(t){const e=t.nextElementSibling;e&&h(us(o),e)}}wo((()=>{if(us(o)){u();const t=new MutationObserver((()=>{const t=us(o).querySelector(".step-button.active");t&&Zr(s,t,!0)}));return t.observe(us(o),{attributes:!0,attributeFilter:["class"],subtree:!0}),()=>{t.disconnect()}}})),wo((()=>{us(s)&&us(o)&&h(us(o),us(s))}));var m=ws();gs("resize",ro,u),function(t,e,n){hi&&mi();var i=new Fs(t);So((()=>{var t=e();i.ensure(t,n)}))}(po(m),(()=>r().activeItemIndex),(t=>{var e=Hl(),n=fo(e);let i;n.__click=f;var s=fo(n);gi(n);var d=mo(n,2);let m;Ds(d,21,(()=>us(c)),Os,((t,e)=>{var n=Vl();let i;n.__click=t=>{return n=t.currentTarget,i=us(e).index,r().activeModuleIndex=i,void h(us(o),n);var n,i};var s=fo(n),a=fo(s,!0);gi(s),gi(n),Eo((()=>{i=Us(n,0,"step-button svelte-1mxltt0",null,i,{active:"active"===us(e).type}),Vs(n,"aria-label",`Go to step $${us(e).index+1}`),Is(a,us(e).name)})),_s(t,n)})),gi(d),ra(d,(t=>Zr(o,t)),(()=>us(o)));var g=mo(d,2);let v;g.__click=p;var y=fo(g);gi(g),gi(e),Eo(((t,e)=>{i=Us(n,0,"step-arrow step-arrow-prev svelte-1mxltt0",null,i,{visible:us(a)}),Vs(s,"src",$l),m=Us(d,0,"steps-indicator svelte-1mxltt0",null,m,t),$s(d,`--stepDuration: ${null!=e?e:""}s`),v=Us(g,0,"step-arrow step-arrow-next svelte-1mxltt0",null,v,{visible:us(l)}),Vs(y,"src",$l)}),[()=>({"with-duration":r().currentModule.hasDuration,paused:r().paused}),()=>r().currentModule.duration]),gs("scroll",d,u),_s(t,e)})),_s(t,m),Ei()}vs(["click"]);const Kl="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",Xl="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 Yl=xs('<img alt="Play" class="svelte-a3r6re"/>'),Ql=xs('<img alt="Pause" class="svelte-a3r6re"/>'),Jl=xs('<button class="pause-button svelte-a3r6re"><!></button>');vs(["click"]);var Zl,tc,ec="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function nc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var ic=function(){if(tc)return Zl;tc=1;var t=NaN,e="[object Symbol]",n=/^\s+|\s+$/g,i=/^[-+]0x[0-9a-f]+$/i,r=/^0b[01]+$/i,o=/^0o[0-7]+$/i,s=parseInt,a="object"==typeof ec&&ec&&ec.Object===Object&&ec,l="object"==typeof self&&self&&self.Object===Object&&self,c=a||l||Function("return this")(),u=Object.prototype.toString,d=Math.max,h=Math.min,f=function(){return c.Date.now()};function p(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function m(a){if("number"==typeof a)return a;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&u.call(t)==e}(a))return t;if(p(a)){var l="function"==typeof a.valueOf?a.valueOf():a;a=p(l)?l+"":l}if("string"!=typeof a)return 0===a?a:+a;a=a.replace(n,"");var c=r.test(a);return c||o.test(a)?s(a.slice(2),c?2:8):i.test(a)?t:+a}return Zl=function(t,e,n){var i,r,o,s,a,l,c=0,u=!1,g=!1,v=!0;if("function"!=typeof t)throw new TypeError("Expected a function");function y(e){var n=i,o=r;return i=r=void 0,c=e,s=t.apply(o,n)}function b(t){var n=t-l;return void 0===l||n>=e||n<0||g&&t-c>=o}function k(){var t=f();if(b(t))return x(t);a=setTimeout(k,function(t){var n=e-(t-l);return g?h(n,o-(t-c)):n}(t))}function x(t){return a=void 0,v&&i?y(t):(i=r=void 0,s)}function w(){var t=f(),n=b(t);if(i=arguments,r=this,l=t,n){if(void 0===a)return function(t){return c=t,a=setTimeout(k,e),u?y(t):s}(l);if(g)return a=setTimeout(k,e),y(l)}return void 0===a&&(a=setTimeout(k,e)),s}return e=m(e)||0,p(n)&&(u=!!n.leading,o=(g="maxWait"in n)?d(m(n.maxWait)||0,e):o,v="trailing"in n?!!n.trailing:v),w.cancel=function(){void 0!==a&&clearTimeout(a),c=0,i=l=r=a=void 0},w.flush=function(){return void 0===a?s:x(f())},w},Zl}();const rc=nc(ic);var oc=xs("<img/>"),sc=xs('<div class="ui-container svelte-1rvgxfc"><!></div>'),ac=xs('<div class="cover-container svelte-1rvgxfc"><!> <!></div>'),lc=xs('<div class="covers-container svelte-1rvgxfc" style="scroll-behavior: smooth;"></div>');function cc(t,e){Ii(e,!0);const n=[375,768,1024,1400,1920];let i=sa(e,"scrollOffset",15),r=sa(e,"isMobile",3,!1);const o=Ti("state");let s,a=Qr(void 0),l=Qr(1920),c=$r((()=>o().playingModulePosition)),u=null,d=null,h=$r((()=>o().startedPlaying)),f=$r((()=>o().currentModulesList)),p=$r((()=>us(f).findIndex((t=>v(o().playingModulePosition,t.position)))));const m=rc((t=>{let e=n.find((e=>e>t));e||(e=n[n.length-1]),Zr(l,e,!0)}),300);async function g(){o().seeking&&(o().startedPlaying?o().currentItemsList[o().activeItemIndex].modules[o().activeModuleIndex].play():o().playingModulePosition=us(c),i(0))}function v(t,e){return t.itemIndex===e.itemIndex&&t.moduleIndex===e.moduleIndex}function y(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}function b({target:t}){var e;const n=y(t),r=(null===(e=us(f))||void 0===e?void 0:e.length)||1,a=100/(r-1||1),l=Math.round(n/a);let h=Math.min(l,r-1);const m=us(f)[h],b={itemIndex:o().activeItemIndex,moduleIndex:o().activeModuleIndex};null!==u||v(m.position,b)||(o().activeItemIndex=m.position.itemIndex,o().activeModuleIndex=m.position.moduleIndex),Zr(c,m.position);const k=s.children[us(p)],x=s.getBoundingClientRect(),w=k.getBoundingClientRect();i(w.x-x.x),d&&clearTimeout(d),d=setTimeout((()=>{const e=y(t);Math.abs(e-l*a)<.25&&(null!==u?v(m.position,u)&&(u=null,g()):g())}),150)}wo((()=>{const{activeItemIndex:t,activeModuleIndex:e}=o();t===us(c).itemIndex&&e===us(c).moduleIndex||fs((()=>{var n;const i=us(f).findIndex((n=>{const{itemIndex:i,moduleIndex:r}=n.position;return t===i&&e===r}));u=(null===(n=us(f)[i])||void 0===n?void 0:n.position)||null;const r=s.children[i];null==r||r.scrollIntoView()}))})),wo((()=>m(us(a)*window.devicePixelRatio)));var k=ws(),x=po(k),w=t=>{var n=lc();Ds(n,23,(()=>us(f)),(t=>t.id),((t,n,i)=>{var o=ac(),s=fo(o),a=t=>{var r=oc();let o;Eo((t=>{o=Us(r,0,"cover-image svelte-1rvgxfc",null,o,{active:us(h)&&us(i)===us(p)}),Vs(r,"src",t),Vs(r,"alt",us(n).name),Vs(r,"fetchpriority",0===us(i)?"high":"auto")}),[()=>e.getCoverUrl(us(n).cover,us(l))]),_s(t,r)};Cs(s,(t=>{us(l)&&t(a)}));var c=mo(s,2),u=t=>{var e=sc();!function(t,e,n){hi&&mi();var i=new Fs(t);So((()=>{var t,r=null!==(t=e())&&void 0!==t?t:null;i.ensure(r,r&&(t=>n(t,r)))}),Gn)}(fo(e),(()=>us(n).Component),((t,e)=>{e(t,{get state(){return us(n).state},get isMobile(){return r()}})})),gi(e),_s(t,e)};Cs(c,(t=>{var e;null!==(e=us(n))&&void 0!==e&&e.Component&&t(u)})),gi(o),_s(t,o)})),gi(n),ra(n,(t=>s=t),(()=>s)),gs("scroll",n,b),na(n,"clientWidth",(t=>Zr(a,t))),_s(t,n)};Cs(x,(t=>{us(f)&&t(w)})),_s(t,k),Ei()}const uc="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};let dc;function hc(){const t=uc&&uc.navigator&&(uc.navigator.userAgent||uc.navigator.platform||uc.navigator.vendor)||"";if(dc&&dc.ua===t)return dc;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 dc={ua:t,isMobile:r},dc}var fc=xs('<div class="absolute-full paging-buttons svelte-1n46o8q"><!> <!></div>'),pc=xs("<div></div>"),mc=xs("<!> <!>",1),gc=xs('<div class="player-container svelte-1n46o8q"><div class="absolute-full swipable svelte-1n46o8q"></div> <!> <!> <!> <!></div> <!>',1),vc=xs('<div class="eko-gallery-app svelte-1n46o8q"><!></div>');function yc(t,e){Ii(e,!0);const n=sa(e,"config",19,(()=>({}))),i=sa(e,"forceMobile",3,!1),r=sa(e,"onGalleryReady",3,(()=>{}));let o,s=Qr(io(new Pl(n()))),a=Qr(null),l=$r((()=>i()||hc().isMobile)),c=Qr(0),u=Qr(void 0),d=Qr(!0);var h,f,p;function m(){Zr(a,new e.EkoPlayer(o,e.playerOptions)),us(a).on("playing",(()=>{us(s).state.paused=!1})),us(a).on("pause",(()=>{us(s).state.paused=!0})),us(a).once("playing",(()=>{us(s).state.startedPlaying=!0}))}function g(t){var e;null===(e=us(s))||void 0===e||e.selectItem(t)}function v(){var t;null===(t=us(s))||void 0===t||t.next()}function y(){var t;null===(t=us(s))||void 0===t||t.prev()}function b(){us(a).paused?us(a).play():us(a).pause()}h="state",f=()=>us(s).state,Si().set(h,f),p=()=>(n()&&e.EkoPlayer&&(m(),us(s).start(us(a))),r()(us(s).public),()=>{var t;null===(t=us(a))||void 0===t||t.dispose()}),null===wi&&ci(),wo((()=>{const t=fs(p);if("function"==typeof t)return t})),wo((()=>{var t;n()&&n()!==us(s).currentConfig&&(Zr(s,new Pl(n()),!0),null===(t=us(a))||void 0===t||t.dispose(),Zr(d,!1),cs().then((()=>(Zr(d,!0),cs()))).then((()=>{m(),us(s).start(us(a)),r()(us(s).public)})))})),wo((()=>{us(u)&&us(a)&&us(a).loadDebugOverlay({containerElement:us(u)})}));var k=vc(),x=fo(k),w=t=>{var n=gc(),i=po(n),r=fo(i);ra(r,(t=>o=t),(()=>o));var a=mo(r,2);cc(a,{get isMobile(){return us(l)},get getCoverUrl(){return us(s).getCoverUrl},get scrollOffset(){return us(c)},set scrollOffset(t){Zr(c,t,!0)}});var d=mo(a,2),h=t=>{var e=fc(),n=fo(e);ql(n,{type:"prev",onClick:y}),ql(mo(n,2),{type:"next",onClick:v}),gi(e),_s(t,e)};Cs(d,(t=>{us(l)||e.hideNav||t(h)}));var f=mo(d,2),p=t=>{Gl(t,{})};Cs(f,(t=>{var e;!us(l)&&(null===(e=us(s).state.currentItem)||void 0===e?void 0:e.modules.length)>1&&t(p)}));var m=mo(f,2),k=t=>{var n=mc(),i=po(n);!function(t,e){Ii(e,!0);const n=Ti("state");var i=Jl();i.__click=function(...t){var n;null===(n=e.onPauseClick)||void 0===n||n.apply(this,t)};var r=fo(i),o=t=>{var e=Yl();Eo((()=>Vs(e,"src",Kl))),_s(t,e)},s=t=>{var e=Ql();Eo((()=>Vs(e,"src",Xl))),_s(t,e)};Cs(r,(t=>{n().paused?t(o):t(s,!1)})),gi(i),Eo((t=>Vs(i,"aria-label",t)),[()=>n().paused?"Play":"Pause"]),_s(t,i),Ei()}(i,{onPauseClick:b});var r=mo(i,2),o=t=>{var e=pc();ra(e,(t=>Zr(u,t)),(()=>us(u))),_s(t,e)};Cs(r,(t=>{e.debug&&t(o)})),_s(t,n)};Cs(m,(t=>{us(s).state.startedPlaying&&t(k)})),gi(i);var x=mo(i,2),w=t=>{!function(t,e){Ii(e,!0);let n=sa(e,"onNavItemClick",3,(()=>{}));const i=Ti("state");var r=Ul(),o=fo(r);Ds(o,23,(()=>i().currentItemsList),(t=>t.id),((t,e,r)=>{var o=Wl();let s;o.__click=()=>n()(us(r));var a=fo(o),l=fo(a,!0);gi(a),gi(o),Eo((t=>{s=Us(o,0,"nav-button svelte-er27y2",null,s,t),Is(l,us(e).name)}),[()=>({selected:us(r)===i().activeItemIndex})]),_s(t,o)})),gi(o),gi(r),_s(t,r),Ei()}(t,{onNavItemClick:g})};Cs(x,(t=>{e.hideNav||t(w)})),Eo((()=>{var t;return $s(i,`--uiTranformX: ${null!==(t=us(c))&&void 0!==t?t:""}px`)})),_s(t,n)};Cs(x,(t=>{n()&&us(d)&&t(w)})),gi(k),_s(t,k),Ei()}function bc(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var kc,xc,wc,_c,Tc={exports:{}},Ic=bc((kc||(kc=1,wc=Tc.exports,_c=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},(xc=Tc).exports?xc.exports=_c():wc.log=_c()),Tc.exports));const Ec=()=>{},Sc=["trace","log","debug","info","warn","error","getLevel","setLevel"],Nc=["trace","debug","info","warn","error","silent"],Ac={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;"},Mc="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global;let Fc={level:"trace",appName:""},Cc=[];const Oc="object"==typeof Mc&&Mc.performance&&"function"==typeof Mc.performance.now?Mc.performance.now.bind(Mc.performance):Date.now.bind(Date),Pc=t=>t&&"string"==typeof t?t.toLowerCase().trim():"",Rc=(()=>{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[Pc(e)]=Pc(i)||"trace"})),n}catch(t){return{}}})(),Dc=(t,e="")=>{const n=Pc(t),i=Ic.getLogger(n);if(i.__ekologger)return i.__ekologger;e||Rc[n]||Rc["*"]||(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)=>(Oc()/1e3).toFixed(e))()}] %c[${s}] ${Fc.appName?`[${Fc.appName}] `:""}[${t}]`,Ac[s],...e)}},e=Rc[n]||Rc["*"]||e||Fc.level,i.setLevel(e,!1);const o=(...t)=>i.log(...t);return Sc.forEach((t=>{o[t]=(...e)=>(Cc.forEach((n=>{n[t](...e)})),i[t](...e))})),i.__ekologger=o,o};Dc.setDefaults=({appName:t="",level:e})=>{t&&"string"==typeof t&&(Fc.appName=t),(e=Pc(e))&&Nc.includes(e)&&(Fc.level=e,Object.values(Ic.getLoggers()).filter((t=>t.__noExplicitLevel)).forEach((t=>t.setLevel(Fc.level,!1))))},Dc.installDriver=t=>{const e={...Sc.reduce(((e,n)=>(e[n]="function"==typeof(null==t?void 0:t[n])?t[n]:Ec,e)),{})};Cc.push(e)};let Bc=class{#w=new Map;on(t,e){if("function"!=typeof e)return this;const n=this.#w.get(t)||new Set;return n.add(e),this.#w.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.#w.clear(),this;const n=this.#w.get(t);return n?e?(n.delete(e),0===n.size&&this.#w.delete(t),this):(this.#w.delete(t),this):this}trigger(t,...e){const n=this.#w.get(t);return n?(n.forEach((t=>t(...e))),this):this}};function Lc(t){return"[object Object]"===Object.prototype.toString.call(t)}function zc(t,...e){const n=Lc(t)?{...t}:{};return e.forEach((t=>{Lc(t)&&Object.keys(t).forEach((e=>{const i=t[e],r=n[e];Lc(i)&&Lc(r)?n[e]=zc(r,i):Array.isArray(i)?n[e]=i.slice():n[e]=i}))})),n}function Wc(t){if("string"==typeof t)return`'${t}'`;if(Array.isArray(t))return`[${t.map((t=>Wc(t))).join(", ")}]`;if(Lc(t))try{return JSON.stringify(t)}catch(t){return"[object Object]"}return null===t?"null":void 0===t?"undefined":String(t)}function Uc(t){return Array.from(t).map((t=>Wc(t))).join(", ")}var $c=new WeakSet;let jc=class extends Bc{constructor(...t){super(),O(this,$c);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=Dc(n,this.loglevel);const i=Lc(this.defaults)?this.defaults:{},r=Lc(e)&&Lc(e[n])?e[n]:{};this.settings=zc({},i,r),N($c,this,qc).call(this),N($c,this,Vc).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 qc(){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}(${Uc(t)})`),a(...t)):a,t.add(o)}n=Object.getPrototypeOf(n)}}function Vc(){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 Hc="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};function Gc(t){return Boolean(t)&&"object"==typeof t&&1===t.nodeType&&"function"==typeof t.appendChild}let Kc=class extends jc{#_;#T;#I;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);const[i]=t,r=function(t,e=(null==Hc?void 0:Hc.document)){if(Gc(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 Gc(i)?i:null}(i);if(!r)throw new Error("Canvas requires a valid mount target (HTMLElement or selector string).");this.#_=r;const o=null==Hc?void 0:Hc.document;if(!o||"function"!=typeof o.createElement)throw new Error("Canvas requires document.createElement.");var s,a;this.#T=o.createElement("canvas"),s=this.#T,a=null===(e=this.settings)||void 0===e?void 0:e.style,s&&a&&"object"==typeof a&&!Array.isArray(a)&&Object.keys(a).forEach((t=>{const e=a[t];null!=e&&(s.style[t]=String(e))})),this.#_.appendChild(this.#T);const l=null===(n=this.settings)||void 0===n?void 0:n.contextAttributes,c=l&&"object"==typeof l&&!Array.isArray(l)?l:void 0;if(this.#I=this.#T.getContext("webgl2",c),!this.#I)throw new Error("Canvas WebGL2 context is not available.")}get name(){return"Canvas"}get element(){return this.#T}get gl(){return this.#I}onDispose(){this.#T&&this.#T.parentNode&&this.#T.parentNode.removeChild(this.#T),this.#I=null,this.#T=null,this.#_=null}};var Xc=new WeakMap,Yc=new WeakMap,Qc=new WeakMap,Jc=new WeakMap,Zc=new WeakMap,tu=new WeakMap,eu=new WeakSet;let nu=class extends jc{get name(){return"ContainerSize"}get containerWidth(){return M(Yc,this)}get containerHeight(){return M(Qc,this)}get width(){return M(Yc,this)}get height(){return M(Qc,this)}constructor(...t){super(...t),O(this,eu),F(this,Xc,void 0),F(this,Yc,0),F(this,Qc,0),F(this,Jc,null),F(this,Zc,null),F(this,tu,null);const[e]=t;var n;C(Xc,this,(n=e)&&n.element&&Gc(n.element)?n.element:Gc(n)?n:null),M(Xc,this)&&(N(eu,this,ru).call(this,!0),N(eu,this,iu).call(this))}onDispose(){M(Jc,this)&&"function"==typeof M(Jc,this).disconnect&&M(Jc,this).disconnect(),C(Jc,this,null),M(tu,this)&&"function"==typeof(null==Hc?void 0:Hc.removeEventListener)&&Hc.removeEventListener("resize",M(tu,this)),C(tu,this,null),M(Zc,this)&&((null==Hc?void 0:Hc.clearInterval)||clearInterval)(M(Zc,this)),C(Zc,this,null),C(Xc,this,null)}};function iu(){if(!M(Xc,this))return;const t=null==Hc?void 0:Hc.ResizeObserver;if("function"==typeof t)return C(Jc,this,new t((()=>N(eu,this,ru).call(this)))),void M(Jc,this).observe(M(Xc,this));C(tu,this,(()=>N(eu,this,ru).call(this))),"function"==typeof(null==Hc?void 0:Hc.addEventListener)&&Hc.addEventListener("resize",M(tu,this));const e=(null==Hc?void 0:Hc.setInterval)||setInterval;C(Zc,this,e((()=>N(eu,this,ru).call(this)),250))}function ru(t=!1){if(!M(Xc,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}}(M(Xc,this));(t||e!==M(Yc,this)||n!==M(Qc,this))&&(C(Yc,this,e),C(Qc,this,n),this.trigger("containerresize",{width:e,height:n}))}var ou={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"}};let su=class{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;return{contextType:e||"webgl",contextAttributes:Object.prototype.hasOwnProperty.call(t,"contextAttributes")?n:r}}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 au,lu={exports:{}},cu=(au||(au=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}(lu)),lu.exports),uu=bc(cu);let du=class extends su{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 uu;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);const a={contextType:r};s&&void 0!==o&&(a.contextAttributes=o),t.initPlugin("canvas",a);const l={drawFrame:this.canvasDrawFrameFn.bind(this),resize:n,contextType:r,offscreenVideoCanvasEnabled:!1,viewportModeEnabled:!0,fps:0};return s&&void 0!==o&&(l.contextAttributes=o),t.canvas.init(l),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)}},hu=class extends su{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)}},fu=class extends su{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 pu=function(t){let e;return e="string"==typeof t?new hu(t):t&&t.src&&t.dest?new fu(t):new du(t),e};function mu(t){return Array.isArray(t)||(t=[t]),t}let gu=class{constructor(t){this.store=t?{...t.get()}:{}}reset(){this.store={}}get(t){if(!t)return this.store;const e=(t=mu(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=mu(t),e=mu(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]}))}},vu=class{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 yu=Dc("frame","warn");let bu=!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");bu=e||n}function ku(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))}let xu=class extends vu{fill(t){if(bu&&(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?ku(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,ku(t,e)):t.__useSubImage=!0))}(this,t,e);const i=(performance.now()-n)/1e3;i>=.1&&yu.warn(`[fill] texImage2D() took ${i.toFixed(3)} seconds to execute.`),"function"==typeof t.close&&!0!==t.__keepOpen&&(t.close(),t.__closed=!0)}},wu=class extends vu{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 _u=function(t,e,n,i,r){let o;switch(t){case"frame":o=new xu(e,n,i,r);break;case"pixel":o=new wu(e,n,i,r);break;default:throw new Error(`cant recognize type ${t}`)}return o};let Tu=class{constructor(t){return this.gl=t.gl,this.textureObjectPool=[],this.textureUnitsPool=new Set(Array(20).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=_u(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(20).keys()),t.forEach((t=>{this.textureUnitsPool.delete(t)}))}};const Iu=ou.VIDEO_SOURCE_PREFIX,Eu=ou.TEXTURE_SOURCE_PREFIX,Su=ou.PREVIOUS_OUTPUT_PREFIX,Nu=ou.SAVED_FRAME_PREFIX;function Au(t,e,n){t.set(`${Iu}${n}`,e)}function Mu(t,e,n){t.set(`${Su}${n}`,e)}function Fu(t,e,n){t.set(`${Nu}${n}`,e)}let Cu=class{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()))Au(t,n,e),Mu(t,n,e);for(const[e,n]of Object.entries(this.capturedFramesManager.getSavedFrames()))Fu(t,n,e)}setTextureSource(t,e,n){t.set(`${Eu}${n}`,e)}getInput(t,e){return t.get(e)}getPrevOutput(t,e){return e=Number.isInteger(e)?e:0,t.get(`${Su}${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)=>{Mu(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))}))}},Ou=class{constructor(t){this.context=t}bind(){throw new Error("impl in concrete")}},Pu=100,Ru=100;function Du(t,e){Pu=t,Ru=e}let Bu=class extends Ou{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),Du(i,r)),t}},Lu=class extends Ou{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),!1!==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 zu{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===ou.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS?new Bu({gl:this.gl}):new Lu({gl:this.gl,textureManager:this.textureManager,frameBufferObject:this.getFrameBufferObject(),useCanvasSizedFilterTargets:this.useCanvasSizedFilterTargets}),e}}function Wu(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 Uu=function(t,e){return Wu(t,t.VERTEX_SHADER,e)},$u=function(t,e){return Wu(t,t.FRAGMENT_SHADER,e)};const ju={position_3d:0,texture_coordinate_2d:1};var qu=function(t,e,n){const i=t.createProgram();if(t.attachShader(i,e),t.attachShader(i,n),Object.entries(ju).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)},Vu=[-1,-1,1,1,-1,1,-1,1,1,1,1,1],Hu=[0,1,2,2,1,3],Gu=[0,0,1,0,0,1,1,1];const Ku=96,Xu=[new Float32Array(new ArrayBuffer(Ku)),new Float32Array(new ArrayBuffer(Ku)),new Float32Array(new ArrayBuffer(Ku)),new Float32Array(new ArrayBuffer(Ku)),new Float32Array(new ArrayBuffer(Ku)),new Float32Array(new ArrayBuffer(Ku))],Yu=[new Int16Array(6),new Int16Array(6),new Int16Array(6)];class Qu{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=Xu[this.floatBufferCounter],this.floatBufferCounter=this.floatBufferCounter++%Xu.length;break;case this.gl.ELEMENT_ARRAY_BUFFER:t=Yu[this.unit16BufferCounter],this.unit16BufferCounter=this.unit16BufferCounter++%Yu.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 Ju={position_3d:class extends Qu{getPointerData(){return{size:3,type:this.gl.FLOAT,normalize:!1,stride:0,offset:0}}},position_indexes:class extends Qu{setPointer(){}getPointerData(){}enable(){}},texture_coordinate_2d:class extends Qu{getPointerData(){return{size:2,type:this.gl.FLOAT,normalize:!0,stride:0,offset:0}}}};var Zu=function(t,e,n){const i=Ju[t];if(!i)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(Ju)}`);return new i(t,e,n)};class td{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}}let ed=class extends td{set(t){this.gl.uniform1fv(this.location,t)}};class nd extends td{set(t){t&&(t.beforeUse(),this.gl.uniform1i(this.location,t.getUnit()))}}const id="first_texture_dimensions",rd="viewport_dimensions",od="time",sd={RUNTIME_OPTIONS:"runtimeOptions[0]",STATIC_OPTIONS:"staticOptions[0]",FIRST_TEXTURE:"first_texture",SECOND_TEXTURE:"second_texture",FIRST_MATRIX:"first_mat4"},ad={[sd.FIRST_TEXTURE]:nd,[sd.SECOND_TEXTURE]:nd,[sd.FIRST_MATRIX]:class extends td{set(t){this.gl.uniformMatrix4fv(this.location,!1,t)}},[sd.STATIC_OPTIONS]:ed,[sd.RUNTIME_OPTIONS]:ed};var ld=function(t,e){const n=ad[t];if(!n)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(ad)}`);return new n(t,e)},cd=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 ud="position_3d",dd="position_indexes",hd="texture_coordinate_2d";class fd{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=Uu(this.gl,e.vertex),this.fragmentShader=$u(this.gl,e.fragment),this.program=qu(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:ud,bindPoint:e.gl.ARRAY_BUFFER},{id:dd,bindPoint:e.gl.ELEMENT_ARRAY_BUFFER},{id:hd,bindPoint:e.gl.ARRAY_BUFFER}].concat(t)).forEach((t=>{const i=t.id;n[i]=Zu(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]=ld(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:sd.RUNTIME_OPTIONS},{id:sd.STATIC_OPTIONS}];return(t.getUniformList||fd.getUniformList)().forEach((t=>{Object.values(sd).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||fd.getUniformList)().forEach((t=>{switch(t){case sd.FIRST_TEXTURE:this.uniforms[sd.FIRST_TEXTURE].set(r[0]);break;case sd.SECOND_TEXTURE:this.uniforms[sd.SECOND_TEXTURE].set(r[1]);break;case id:o=[...o,r[0].getWidth(),r[0].getHeight()];break;case rd:o=[...o,i.width,i.height];break;case od:{const t=cd(e.startTime,e.duration);o=[...o,t];break}}})),o.length>0&&this.uniforms[sd.RUNTIME_OPTIONS].set(o)}static getUniformList(){return[sd.FIRST_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(){}handleAttributes(){this.attributes[ud].fillBuffer(Vu),this.attributes[ud].setPointer(),this.attributes[dd].fillBuffer(Hu),this.attributes[hd].fillBuffer(Gu),this.attributes[hd].setPointer()}disposeAttributes(){Object.values(this.attributes).forEach((t=>{t.dispose()}))}render(t,e){const n=this.frameBuffer.bind(t);let i={width:Pu,height:Ru};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 pd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(pd)};super(pd.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 md,gd="undefined"!=typeof Float32Array?Float32Array:Array;function vd(){var t=new gd(3);return gd!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function yd(t,e,n){var i=new gd(3);return i[0]=t,i[1]=e,i[2]=n,i}function bd(){var t=new gd(4);return gd!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}vd(),function(){var t;t=new gd(4),gd!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}(),vd(),yd(1,0,0),yd(0,1,0),bd(),bd(),md=new gd(9),gd!=Float32Array&&(md[1]=0,md[2]=0,md[3]=0,md[5]=0,md[6]=0,md[7]=0),md[0]=1,md[4]=1,md[8]=1;class kd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(kd)};super(kd.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:kd.getInitialOptions().translate.x},{properties:["translate","y"],type:"slider",minValue:-2,maxValue:2,step:.001,initialValue:kd.getInitialOptions().translate.y},{properties:["scale","x"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:kd.getInitialOptions().scale.x},{properties:["scale","y"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:kd.getInitialOptions().scale.y},{properties:["rotate"],type:"slider",minValue:-360,maxValue:360,step:1,initialValue:kd.getInitialOptions().rotate}]}static getUniformList(){return[sd.FIRST_TEXTURE,sd.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,g=s*u,v=a*l,y=a*c,b=a*u,k=i[0],x=i[1],w=i[2];return t[0]=(1-(p+g))*k,t[1]=(h+b)*k,t[2]=(f-y)*k,t[3]=0,t[4]=(h-b)*x,t[5]=(1-(d+g))*x,t[6]=(m+v)*x,t[7]=0,t[8]=(f+y)*w,t[9]=(m-v)*w,t[10]=(1-(d+p))*w,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}((s=new gd(16),gd!=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}(bd(),0,0,o),yd(e,n,0),yd(i,r,1)),this.uniforms[sd.FIRST_MATRIX].set(this.transformMatrix)}}class xd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(xd)};super(xd.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[sd.FIRST_TEXTURE,id]}}class wd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(wd)};super(wd.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[sd.FIRST_TEXTURE,id]}}class _d extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(_d)};super(_d.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[sd.FIRST_TEXTURE,id,rd]}handleStaticUniforms(t){var e;const n=(null!==(e=Number.parseFloat(t.offsetDist))&&void 0!==e?e:4).toFixed(3);this.uniforms[sd.STATIC_OPTIONS].set([n])}}class Td extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Td)};super(Td.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[sd.FIRST_TEXTURE,id,rd]}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[sd.STATIC_OPTIONS].set([i,r])}}class Id extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Id)};super(Id.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[sd.STATIC_OPTIONS].set([e])}}class Ed extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Ed)};super(Ed.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[sd.FIRST_TEXTURE,id,sd.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[sd.STATIC_OPTIONS].set([e,n,i,r,o,s,a])}}class Sd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Sd)};super(Sd.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[sd.FIRST_TEXTURE,sd.SECOND_TEXTURE]}}class Nd extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Nd)};super(Nd.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[sd.FIRST_TEXTURE,sd.SECOND_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(t){const e=Number.parseFloat(t.lutSize).toFixed(1);this.uniforms[sd.STATIC_OPTIONS].set([e])}}var Ad="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",Md='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:Fd,cos:Cd,sin:Od,acos:Pd,atan2:Rd,sqrt:Dd,pow:Bd}=Math;function Ld(t){return t<0?-Bd(-t,1/3):Bd(t,1/3)}const zd=Math.PI,Wd=2*zd,Ud=zd/2,$d=Number.MAX_SAFE_INTEGER||9007199254740991,jd=Number.MIN_SAFE_INTEGER||-9007199254740991,qd={x:0,y:0,z:0},Vd={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),Dd(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],qd],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||Vd.approximately(t,e)||Vd.approximately(t,n)},approximately:function(t,e,n){return Fd(t-e)<=(n||1e-6)},length:function(t){const e=Vd.Tvalues.length;let n=0;for(let i,r=0;r<e;r++)i=.5*Vd.Tvalues[r]+.5,n+=Vd.Cvalues[r]*Vd.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(Vd.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 Rd(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 Dd(n*n+i*i)},closest:function(t,e){let n,i,r=Bd(2,63);return t.forEach((function(t,o){i=Vd.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=Bd(t,e)+Bd(1-t,e);return Fd((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=Bd(1-t,e);return n/(Bd(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 Vd.lli8(r,o,s,a,l,c,u,d)},lli:function(t,e){return Vd.lli4(t,t.c,e,e.c)},makeline:function(t,e){return new eh(t.x,t.y,(t.x+e.x)/2,(t.y+e.y)/2,e.x,e.y)},findbbox:function(t){let e=$d,n=$d,i=jd,r=jd;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(!Vd.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=Vd.makeline(e.points[i-1],t.points[0]),s=Vd.makeline(t.points[r-1],e.points[0]),a={startcap:o,forward:t,back:e,endcap:s,bbox:Vd.findbbox([o,t,e,s]),intersections:function(t){return Vd.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=$d,s=jd;-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=-Rd(e.p2.y-i,e.p2.x-n);return t.map((function(t){return{x:(t.x-n)*Cd(r)-(t.y-i)*Od(r),y:(t.x-n)*Od(r)+(t.y-i)*Cd(r)}}))},roots:function(t,e){e=e||{p1:{x:0,y:0},p2:{x:1,y:0}};const n=t.length-1,i=Vd.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=-Dd(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(Vd.approximately(l,0)){if(Vd.approximately(c,0))return Vd.approximately(u,0)?[]:[-d/u].filter(r);const t=Dd(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,g=m*m+f*f*f;let v,y,b,k,x;if(g<0){const t=-h/3,e=Dd(t*t*t),n=-p/(2*e),i=Pd(n<-1?-1:n>1?1:n),o=2*Ld(e);return b=o*Cd(i/3)-c/3,k=o*Cd((i+Wd)/3)-c/3,x=o*Cd((i+2*Wd)/3)-c/3,[b,k,x].filter(r)}if(0===g)return v=m<0?Ld(-m):-Ld(m),b=2*v-c/3,k=-v-c/3,[b,k].filter(r);{const t=Dd(g);return v=Ld(-m+t),y=Ld(m+t),[v-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=-Dd(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=Vd.compute(t,e),h=Vd.compute(t,n),f=d.x*d.x+d.y*d.y;if(i?(o=Dd(Bd(d.y*h.z-h.y*d.z,2)+Bd(d.z*h.x-h.z*d.x,2)+Bd(d.x*h.y-h.x*d.y,2)),s=Bd(f+d.z*d.z,1.5)):(o=d.x*h.y-d.y*h.x,s=Bd(f,1.5)),0===o||0===s)return{k:0,r:0};if(c=o/s,u=s/o,!r){const r=Vd.curvature(t-.001,e,n,i,!0).k,o=Vd.curvature(t+.001,e,n,i,!0).k;l=(o-c+(c-r))/2,a=(Fd(o-c)+Fd(c-r))/2}return{k:c,r:u,dk:l,adk:a}},inflections:function(t){if(t.length<4)return[];const e=Vd.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(Vd.approximately(o,0)){if(!Vd.approximately(s,0)){let t=-a/s;if(0<=t&&t<=1)return[t]}return[]}const l=2*o;if(Vd.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,Fd(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 Vd.bboxoverlap(t.left.bbox(),t.right.bbox())}));let u=[];return 0===c.length||(c.forEach((function(t){u=u.concat(Vd.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*Cd(Ud)-r*Od(Ud),l=i*Od(Ud)+r*Cd(Ud),c=o*Cd(Ud)-s*Od(Ud),u=o*Od(Ud)+s*Cd(Ud),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,g=h+l,v=f+c,y=p+u,b=Vd.lli8(d,h,m,g,f,p,v,y),k=Vd.dist(b,t);let x,w=Rd(t.y-b.y,t.x-b.x),_=Rd(e.y-b.y,e.x-b.x),T=Rd(n.y-b.y,n.x-b.x);return w<T?((w>_||_>T)&&(w+=Wd),w>T&&(x=T,T=w,w=x)):T<_&&_<w?(x=T,T=w,w=x):T+=Wd,b.s=w,b.e=T,b.r=k,b},numberSort:function(t,e){return t-e}};class Hd{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 Vd.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++)Vd.expandbox(e,t[n].bbox());return e}offset(t){const e=[];return this.curves.forEach((function(n){e.push(...n.offset(t))})),new Hd(e)}}const{abs:Gd,min:Kd,max:Xd,cos:Yd,sin:Qd,acos:Jd,sqrt:Zd}=Math,th=Math.PI;let eh=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=Vd.align(s,{p1:s[0],p2:s[l]}),d=Vd.dist(s[0],s[l]);this._linear=u.reduce(((t,e)=>t+Gd(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=Vd.dist(n,s.C));const a=o*(1-r)/r,l=Vd.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,g=n.y-h,v=n.x+f,y=n.y+p,b=s.A,k=b.x+(m-b.x)/(1-r),x=b.y+(g-b.y)/(1-r),w=b.x+(v-b.x)/r,_=b.y+(y-b.y)/r,T={x:t.x+(k-t.x)/r,y:t.y+(x-t.y)/r},I={x:i.x+(w-i.x)/(1-r),y:i.y+(_-i.y)/(1-r)};return new e(t,T,I,i)}static getUtils(){return Vd}getUtils(){return e.getUtils()}static get PolyBezier(){return Hd}valueOf(){return this.toString()}toString(){return Vd.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=Vd.derive(this.points,this._3d),this.computedirection()}computedirection(){const t=this.points,e=Vd.angle(t[0],t[this.order],t[1]);this.clockwise=e>0}length(){return Vd.length(this.derivative.bind(this))}static getABC(t=2,e,n,i,r=.5){const o=Vd.projectionratio(r,t),s=1-o,a={x:o*e.x+s*i.x,y:o*e.y+s*i.y},l=Vd.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],Vd.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=Vd.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=Vd.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?Vd.computeWithRatios(t,this.points,this.ratios,this._3d):Vd.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 Vd.compute(t,this.dpoints[0],this._3d)}dderivative(t){return Vd.compute(t,this.dpoints[1],this._3d)}align(){let t=this.points;return new e(Vd.align(t,{p1:t[0],p2:t[t.length-1]}))}curvature(t){return Vd.curvature(t,this.dpoints[0],this.dpoints[1],this._3d)}inflections(){return Vd.inflections(this.points)}normal(t){return this._3d?this.__normal3(t):this.__normal2(t)}__normal2(t){const e=this.derivative(t),n=Zd(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=Zd(e.x*e.x+e.y*e.y+e.z*e.z),r=Zd(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=Zd(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=Vd.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=Vd.map(0,0,1,this._t1,this._t2),r.left._t2=Vd.map(t,0,1,this._t1,this._t2),r.right._t1=Vd.map(t,0,1,this._t1,this._t2),r.right._t2=Vd.map(1,0,1,this._t1,this._t2),n?(n=Vd.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]=Vd.droots(r),3===this.order&&(r=this.dpoints[1].map(i),t[n]=t[n].concat(Vd.droots(r))),t[n]=t[n].filter((function(t){return t>=0&&t<=1})),e=e.concat(t[n].sort(Vd.numberSort))}.bind(this)),t.values=e.sort(Vd.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]=Vd.getminmax(this,n,t[n])}.bind(this)),e}overlaps(t){const e=this.bbox(),n=t.bbox();return Vd.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=Vd.angle(this.points[0],this.points[3],this.points[1]),e=Vd.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),Gd(Jd(n))<th/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,Gd(n-i)<r)return[];e=t.split(n,i),e._t1=Vd.map(n,0,1,t._t1,t._t2),e._t2=Vd.map(i,0,1,t._t1,t._t2),s.push(e),n=i;break}n<1&&(e=t.split(n,1),e._t1=Vd.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=Vd.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]=Vd.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=Zd(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]=Vd.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=Vd.makeline(h[2],d[0]),p=Vd.makeline(d[2],h[0]),m=[f,new e(d),p,new e(h)];return new Hd(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 Vd.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],g=c[s-1].points[c[s-1].points.length-1],v=c[0].points[0],y=Vd.makeline(g,p),b=Vd.makeline(m,v),k=[y].concat(a).concat([b]).concat(c);return new Hd(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=Vd.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=Kd(t.p1.x,t.p2.x),n=Kd(t.p1.y,t.p2.y),i=Xd(t.p1.x,t.p2.x),r=Xd(t.p1.y,t.p2.y);return Vd.roots(this.points,t).filter((t=>{var o=this.get(t);return Vd.between(o.x,e,i)&&Vd.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=Vd.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=Vd.dist(t,e),l=Vd.dist(t,o),c=Vd.dist(t,s);return Gd(l-a)+Gd(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=Vd.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*Yd(a.e),y:a.y+a.r*Qd(a.e)};a.e+=Vd.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 nh={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 eh({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 eh(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 eh(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 ih{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{rh(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 rh(t,e,n){let i=t[e];t[e]=t[n],t[n]=i}function oh(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 sh={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 ih(n,i);let o=[];for(let n=0;n<e;n++)o.push(oh(n/(e-1),r,t));return o}};function ah(t,e=256,n={}){return"bezier"===n.type?nh.pointsToCurve(t,e,n):sh.pointsToCurve(t,e)}const lh=[];for(let t=0;t<256;t++)lh[t]=t;class ch extends fd{constructor(t){const e={vertex:Ad,fragment:Md},n={uniforms:fd.getUniformInfo(ch)};super(ch.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,ah(n,256).map((t=>255*t))):lh],this.uniforms[sd.STATIC_OPTIONS].set(e)}}function uh(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 dh extends fd{constructor(t){const e={vertex:Ad,fragment:Md},n={uniforms:fd.getUniformInfo(dh)};super(dh.getFilterType(),e,n,t)}static getFilterType(){return"levels"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=[...uh(t.black,t.white,t.gamma)];this.uniforms[sd.STATIC_OPTIONS].set(e)}}const hh=360,fh=[];for(let t=0;t<hh;t++)fh[t]=t;class ph extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(ph)};super(ph.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 ah(t,hh,{type:"bezier"}).map((t=>{return e=t,((Math.round(e.x*hh)+180)%hh+(1-e.y-.5)*hh+hh)%hh;var e}))}(t.points)||fh;this.uniforms[sd.STATIC_OPTIONS].set(e)}}class mh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(mh)};super(mh.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[sd.STATIC_OPTIONS].set([e,n])}}class gh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(gh)};super(gh.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[sd.STATIC_OPTIONS].set([e,n,i,r])}}class vh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(vh)};super(vh.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[sd.STATIC_OPTIONS].set([e])}}class yh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(yh)};super(yh.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[sd.FIRST_TEXTURE,id,rd]}handleStaticUniforms(t){let e={...yh.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[sd.STATIC_OPTIONS].set([n,i,r,o,s,a,l,c,h,f,d,u])}}class bh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(bh)};super(bh.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[sd.STATIC_OPTIONS].set([n,i,r,o])}}class kh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(kh)};super(kh.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 xh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(xh)};super(xh.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[sd.STATIC_OPTIONS].set([e,n])}}class wh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(wh)};super(wh.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[sd.STATIC_OPTIONS].set([e])}}var _h,Th,Ih,Eh,Sh,Nh,Ah,Mh;function Fh(){if(Eh)return Ih;Eh=1;const t=Th?_h:(Th=1,_h={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"]}};Ih=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]},Ih}function Ch(){if(Nh)return Sh;Nh=1;const t=Fh();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 Sh=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 Oh=function(){if(Mh)return Ah;Mh=1;const t=Fh(),e=Ch(),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)}))})),Ah=n}(),Ph=bc(Oh);class Rh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Rh)};super(Rh.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=Ph.hex.rgb(t.color).map((t=>t/255));this.uniforms[sd.STATIC_OPTIONS].set([e[0],e[1],e[2]])}}class Dh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Dh)};super(Dh.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[sd.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[sd.FIRST_TEXTURE,od]}}class Bh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Bh)};super(Bh.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[sd.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[sd.FIRST_TEXTURE,od]}}class Lh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Lh)};super(Lh.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[sd.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[sd.FIRST_TEXTURE,od]}}class zh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(zh)};super(zh.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[sd.STATIC_OPTIONS].set([e.from,e.to,...e.ease,n.x,n.y])}static getUniformList(){return[sd.FIRST_TEXTURE,od,id]}}class Wh extends fd{constructor(t){const e={uniforms:fd.getUniformInfo(Wh)};super(Wh.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=Ph.hex.rgb(n).map((t=>t/255));this.uniforms[sd.STATIC_OPTIONS].set([e.from,e.to,...e.ease,i[0],i[1],i[2]])}static getUniformList(){return[sd.FIRST_TEXTURE,od]}}var Uh=Object.freeze({__proto__:null,Crop:yh,Curves:ch,Default:pd,DipToBlackTransition:Bh,DirectionalBlur:Td,Exposure:wh,ExposureTransition:Dh,FadeToColorTransition:Wh,FastBlur:_d,HardLight:Rh,HorizontalBlur:xd,Hue:ph,Lab:xh,Levels:dh,Lut:Nd,MotionBlurTransition:zh,Opacity:Id,Saturation:vh,ShapeComposite:Sd,ShapeCompositeMask:Ed,Solid:bh,SolidImage:kh,Transform:kd,TransformTransition:Lh,VerticalBlur:wd,Vibrance:gh,WhiteBalance:mh});const $h=Object.values(Uh).reduce(((t,e)=>(t[e.getFilterType()]=e,t)),{});class jh{constructor(t){this.context=t}static getFilterClass(t){return $h[t]}getFilterIds(){return Object.keys(this.filterTypeToInstanceMap)}create(t,e){this.context={...this.context,options:e.options};const n=new $h[t](this.context);if(!n)throw new Error(`${t} is not a atom filter, atomFilter list: `,this.getFilterIds());return n}}const qh=ou.PREVIOUS_OUTPUT_PREFIX,Vh=Object.values(Uh).reduce(((t,e)=>(t[e.getFilterType()]={type:e.getFilterType(),options:e.getInitialOptions(),inputs:[...Array(e.getInputsCount())].map(((t,e)=>`${qh}${e}`)),outputs:[]},t)),{});var Hh,Gh,Kh=function(){if(Gh)return Hh;Gh=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)}),{})},Hh=s}(),Xh=bc(Kh),Yh=function(t,e){return Xh(t,e,{arrayMerge:(t,e)=>e})};const Qh=ou.MESSAGES.UPDATE_OPTIONS;let Jh=class{constructor(t,e){this.eventEmitter=new uu,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(Qh,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 Zh extends Jh{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=Yh(this.options,t),this.filter.updateStaticUniforms(this.options)}dispose(){this.filter.dispose()}}const tf=ou.MESSAGES.UPDATE_OPTIONS;class ef extends Zh{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}baseNodeUpdateOptions(t){this.options=Yh(this.options,t),this.filter.updateStaticUniforms(this.options)}registerListeners(){this.baseNode.getEventEmitter().on(tf,this.baseNodeUpdateOptions,this)}dispose(){this.filter.dispose(),this.baseNode.getEventEmitter().off(tf,this.baseNodeUpdateOptions,this)}}function nf(t){return null!==t&&"object"==typeof t}function rf(t){if(!nf(t)||(e=t,Array.isArray(e)))return t;var e;const n=Object.keys(t).sort(),i={};return n.forEach((e=>{i[e]=rf(t[e])})),i}function of(t,e){return null!=t&&t.id&&null!=e&&e.id?t.type===e.type&&t.id===e.id:t.type===e.type}function sf(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)),nf(i=n)&&nf(r)?JSON.stringify(rf(i))===JSON.stringify(rf(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]&&of(a,c[l])?l:c.findIndex((t=>of(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 af(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=bf.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 lf=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 af(sf(r,o),r,n,i)};class cf extends Jh{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=>bf.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 gu(e),r=[];this.nodes.forEach(((e,o)=>{const s={ioStore:t,graphIOManager:n};i=e.render(s),o!==this.nodes.length-1&&r.push(i)})),n.disposeTextures(r,i)}return n.setOutputs(e,r,i),i}getOptionsDisplay(){return[]}_updateOptions(t){this.nodes=lf(t,this.options,this.nodes,this.context),this.options=t}dispose(){this.nodes.forEach((t=>{t.dispose()}))}}const uf=ou.MESSAGES.UPDATE_OPTIONS;class df extends cf{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}registerListeners(){this.baseNode.getEventEmitter().on(uf,this.updateOptions,this)}dispose(){this.nodes.forEach((t=>{t.dispose()})),this.baseNode.getEventEmitter().off(uf,this.updateOptions,this)}}const hf=ou.SYSTEM_NODES.TAGS.ATOM,ff=ou.SYSTEM_NODES.TAGS.FILTER,pf=ou.SYSTEM_NODES.TAGS.COMPOSITE_FILTER,mf=ou.SYSTEM_NODES.TAGS.TRANSITION_FILTER,gf=ou.PREVIOUS_OUTPUT_PREFIX,vf=Object.keys(Vh);function yf(t,e){const n=(i=t.type,Vh[i]);var i;return t=Yh(n,t),new Zh(t.type,t,e)}var bf={create:function(t,e){let n;switch(function(t){let e;return n=t,e=vf.includes(n)?hf:t===pf?pf:t===mf?mf:ff,e;var n}((t=JSON.parse(JSON.stringify(t))).type)){case hf:n=yf(t,e);break;case ff: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=Yh(r,t),e={...e,baseNode:n},o=i===pf?new df(i,t,e):new ef(i,t,e),o}(t,e);break;case pf:n=function(t,e){const n=t.type;return t=Yh({inputs:[`${gf}0`]},t),new cf(n,t,e)}(t,e);break;case mf: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`,yf(t,e)}(t,e);break;default:throw new Error("cant create node",t.type)}return n}};const kf=ou.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS;var xf=function(t){const e={[kf]:Vh[kf]};for(const[n,i]of Object.entries(e)){const e=bf.create(i,t);t.nodeStore.set(n,e)}},wf=function(t,e){for(const[n,i]of Object.entries(t)){const t=bf.create(i,e);e.nodeStore.set(n,t)}};const _f=ou.CAPTURED_FRAME_PREFIX;class Tf{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=`${_f}${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 If=Dc("ShaderGraphApplication","warn"),Ef=ou.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS,Sf=Object.freeze({useCanvasSizedFilterTargets:!1,rebindAttributesOnProgramSwitch:!0,forwardContextAttributes:!0});function Nf(t={}){const e=null==t?void 0:t.performanceToggles;return e&&"object"==typeof e?{...Sf,...e}:{...Sf}}class Af{constructor(t,e={}){return this.glSource=t,this.config=e,this.performanceToggles=Nf(e),this.isContextLost=!1,this.isRecovering=!1,this.isDisposed=!1,this.pendingNodeOptionUpdates=new Map,this.doInit(t,e)}doInit(t,e){this.source=pu(t),this.performanceToggles=Nf(e),this.isDisposed=!1,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=Sf){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(),"undefined"!=typeof window&&(window.ekoShaderGraph=this),this.selectedRenderNode=null,this.activeTextures=this.activeTextures||new Set,this.textureManager=new Tu({gl:this.gl,activeTextures:this.activeTextures}),this.capturedFramesManager=new Tf({textureManager:this.textureManager}),this.graphIOManager=new Cu({glSource:t,gl:this.gl,textureManager:this.textureManager,capturedFramesManager:this.capturedFramesManager}),this.frameBufferFactory=new zu({gl:this.gl,textureManager:this.textureManager,useCanvasSizedFilterTargets:this.performanceToggles.useCanvasSizedFilterTargets}),this.filterFactory=new jh({gl:this.gl,frameBufferFactory:this.frameBufferFactory,rebindAttributesOnProgramSwitch:this.performanceToggles.rebindAttributesOnProgramSwitch}),this.nodeStore=new gu,this.ioStore=new gu,xf({nodeStore:this.nodeStore,filterFactory:this.filterFactory}),this.addClientNodes(e.nodes,this.isRecovering),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)}}getNodes(){return If.debug("[getNodes]"),this.nodeStore.get()}addClientNodes(t,e=!1){if(If.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));wf(n,{nodeStore:this.nodeStore,filterFactory:this.filterFactory})}addTexture(t,e,n){if(If.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){If.debug("[releaseTexture]",t),this.isContextUnavailable()||this.textureManager.releaseTexture(t)}selectNode(t){if(If.debug("[selectNode]",t),!this.isContextUnavailable())return this.nodeStore.get(t)||If.warn("Missing render node",t),void(this.selectedRenderNodeId=t);this.selectedRenderNodeId=t}captureTexture(){return If.debug("[captureTexture]"),this.isContextUnavailable()?null:this.capturedFramesManager.createCaptureId()}disposeTexture(t){return If.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}}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){If.error("Failed to apply pending node options",e,t),this.queueNodeOptionUpdate(e,n)}return}this.updateOptions(e,n)}catch(t){If.error("Failed to apply pending node options",e,t)}}))}render(t={}){var e,n;const{noRaf:i=!1}=t;if(this.isContextUnavailable())return;if(this.dirtyCanvasSize){let{width:t=this.gl.canvas.width,height:e=this.gl.canvas.height}=this.dirtyCanvasSize;Du(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}const r=null===(e=this.gl)||void 0===e||null===(e=e.canvas)||void 0===e?void 0:e.width,o=null===(n=this.gl)||void 0===n||null===(n=n.canvas)||void 0===n?void 0:n.height;Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0&&(Du(r,o),this.gl.viewport(0,0,r,o)),this.graphIOManager.setVideoSources(this.ioStore);let s={ioStore:this.ioStore,graphIOManager:this.graphIOManager};this.renderSelectedNode(s),this.config.onPreRenderToScreen&&this.config.onPreRenderToScreen(),this.renderToCanvas(s),this.config.onPostRenderToScreen&&this.config.onPostRenderToScreen(),this.graphIOManager.disposeAllStore(this.ioStore),s=null,!i&&!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):(If.warn("Missing selected render node",this.selectedRenderNodeId),this.selectedRenderNodeId=null)}renderToCanvas(t){const e=this.nodeStore.get(Ef);e&&"function"==typeof e.render?e.render(t):If.warn("Missing render-to-canvas node")}updateOptions(t,e){if(If.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){If.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(){If.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),If.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=>{If.debug("Re-adding client nodes",t),this.addClientNodes(t,!0)})),Object.entries(e).forEach((([t,e])=>{If.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&&(If.debug("Recovering glSource (i.e. seeking/resetting player)"),await this.source.recover()),this.isContextLost=!1,this.isRecovering=!1,o&&this.render()}catch(t){If.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 Mf{constructor(t={}){this.options=t}get type(){return"stage"}getSignature(){return this.type}build({inputs:t=[]}={}){return{graph:[],outputs:t,signature:this.getSignature()}}}function Ff(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 Cf extends Mf{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:Ff(a)}),o.push(l)}return{graph:r,outputs:o,signature:this.getSignature()}}}class Of{#E=new Map;constructor(){this.register("retarget",Cf)}register(t,e){t&&"function"==typeof e&&this.#E.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.#E.get(e);return n?new n((null==t?void 0:t.options)||{}):null}}class Pf{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 Rf extends Pf{#S=null;#N=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=Rf.buildLayoutGraph({inputs:t}),r=e.signature;this.#S!==r&&(i.updateOptions(o,{graph:e.graph}),this.#S=r),this.#N!==o&&(i.selectNode(o),this.#N=o),i.render({noRaf:!0})}catch(t){}}}var Df=new WeakMap,Bf=new WeakMap,Lf=new WeakSet;class zf extends Pf{constructor(...t){super(...t),O(this,Lf),F(this,Df,null),F(this,Bf,null)}static get type(){return"side-by-side"}static get aliases(){return["SideBySideRenderNode","side-by-side","sidebyside"]}static get requiresFrameCadence(){return!1}static get panAndScanTarget(){return"skip"}static buildLayoutGraph({inputs:t=[]}={}){const e=t.length;if(e<=1)return super.buildDefaultLayoutGraph(t);const n=1/e,i=[],r=t.map(((t,e)=>{const r=(e+.5)*n,o=`slice-${e}`;return i.push({id:`side-by-side-crop-${e}`,type:"crop",inputs:[t],outputs:[o],options:{source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:r,y:.5},width:n,height:1},fitType:"fill",cornerRadius:0,edgeSoftness:0}}),o}));let o=r[0];for(let t=1;t<e;t+=1){const e=(t+.5)*n*2-1;i.push({id:`side-by-side-mask-${t}`,type:"shapeCompositeMask",inputs:[r[t],o],outputs:["accum"],options:{type:"box",center:{x:e,y:0},area:{width:n,height:1},radius:0,edgeSoftness:0}}),o="accum"}return{type:zf.type,signature:`${zf.type}:${t.length}`,isDynamic:!1,graph:i}}static prepareRenderFrames({frames:t,state:e}={}){const n=Array.isArray(t)?t:[],i=e&&"object"==typeof e?e:{},r=Array.isArray(i.frames)?i.frames:[];if(!n.length&&!r.length)return i.frames=[],i!==e&&e&&"object"==typeof e&&Object.assign(e,i),[];const o=Math.max(n.length,r.length,2),s=Array.from({length:o}),a=n[0]||r[0];for(let t=0;t<o;t+=1)s[t]=n[t]||r[t]||a;return i.frames=s,i!==e&&e&&"object"==typeof e&&Object.assign(e,i),s}static resetRenderState(t){t&&"object"==typeof t&&(t.frames=null)}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.sideBySide;if(o){if(1===n.length){const t=null==r?void 0:r.default;try{N(Lf,this,Wf).call(this,i,t)}catch(t){}return}try{N(Lf,this,Uf).call(this,i,o,n)}catch(t){}}}}function Wf(t,e){if(!e)return;const n=se.buildLayoutGraph({inputs:["__SRC_TEXTURE:0"]}),i=n.signature;M(Df,this)!==i&&(t.updateOptions(e,{graph:n.graph}),C(Df,this,i)),M(Bf,this)!==e&&(t.selectNode(e),C(Bf,this,e)),t.render({noRaf:!0})}function Uf(t,e,n){const i=Array.isArray(n)?n.length:0;if(!e||!i||i<2)return;const r=n.map(((t,e)=>t?`__SRC_TEXTURE:${e}`:null)).filter(Boolean),o=se.buildLayoutGraph({inputs:r}),s=o.signature;M(Df,this)!==s&&(t.updateOptions(e,{graph:o.graph}),C(Df,this,s)),M(Bf,this)!==e&&(t.selectNode(e),C(Bf,this,e)),t.render({noRaf:!0})}function $f(t){const e=Number(t);return Number.isFinite(e)?e<=0?0:e>=1?1:e:0}se=zf;class jf extends Pf{#S=null;#N=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=$f(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:jf.type,signature:`${jf.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=$f((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.#S!==e){const n=jf.buildLayoutGraph({inputs:["__SRC_TEXTURE:0"]});i.updateOptions(t,{graph:n.graph}),this.#S=e}this.#N!==t&&(i.selectNode(t),this.#N=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=jf.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.#S===r&&this.#A===a||(i.updateOptions(o,{graph:n.graph}),this.#S=r,this.#A=a),this.#N!==o&&(i.selectNode(o),this.#N=o),i.render({noRaf:!0})}catch(t){}}}function qf(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 Vf(t){return!(!t||!0===t.offsetPending)&&Number.isFinite(t.offset)}function Hf(t){return Vf(t)?t.offset:void 0}function Gf(t,e,n,i={}){if(!t)return!1;const r=Hf(t);if(!Number.isFinite(r))return!1;const o=qf(t,n,i);return Number.isFinite(o)?e>=r&&e<r+o:e>=r}function Kf(t=[]){if(!Array.isArray(t))return t;const e=[],n=[];return t.forEach((t=>{Vf(t)?e.push(t):n.push(t)})),e.sort(((t,e)=>t.offset-e.offset)),t.splice(0,t.length,...e,...n),t}function Xf(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=Hf(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&&Kf(t),{updated:a,resolvedPlacements:l}}function Yf(t){const e=Number(t);return Number.isFinite(e)?e:0}function Qf(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 Jf(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 Zf(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 tp(t){const e=Number(t);return Number.isFinite(e)&&e>0?e:0}function ep(t){return(null==t?void 0:t.id)||(null==t?void 0:t.nodeId)||null}function np(t,e){return Array.isArray(t)&&e?t.findIndex((t=>ep(t)===e)):-1}function ip(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=np(e,n);return t>=0?(t+1)%i:0}if("prev"===t){const t=np(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)?ep(e[i]):null}function rp(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=Hf(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)=>Hf(t)-Hf(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 op(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 sp(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 ap(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(op(n,r,t))return r}return null}function lp(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 cp extends Pf{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=$f(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:cp.type,signature:`${cp.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:$f(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&&(lp(a),a.activeRenderPlacementId=l);const c=null==r?void 0:r.initSwitching,u=rp(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=sp(a.placements,a.selectedPlacementId),i=ip(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=ip(Number.isInteger(t)&&t>=0?t:0,a.nodes,null);let n=null;if(e&&(n=ap(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&&op(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=ap(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=tp(a.pendingSwitch.crossfadeSeconds),s=tp(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=$f(t/a.switchDuration))}a.switchNormalizedTime=Number.isFinite(p)?p:void 0;const m=sp(a.placements,a.selectedPlacementId),g=op(s,a.selectedPlacementId,m)||s[0];let v=null;if(Number.isFinite(a.switchNormalizedTime)&&a.previousPlacementId){const t=sp(a.placements,a.previousPlacementId),e=sp(a.placements,a.selectedPlacementId),n=op(s,a.previousPlacementId,t),i=op(s,a.selectedPlacementId,e);n&&i&&(v=[n,i])}return v||(v=g?[g]:s),v}static resetRenderState(t){t&&"object"==typeof t&&lp(t)}}const up=[Rf,zf,jf,cp],dp=new Map;function hp(t){if("string"!=typeof t)return null;const e=t.trim();return e?e.toLowerCase():null}function fp(t){const e=hp(t);return e&&dp.get(e)||null}function pp(t){return fp(t)||Rf}up.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=hp(e);n&&dp.set(n,t)}))}(t)));class mp{static get defaultType(){return Rf.type||"default"}static getRenderNodeClass(t){return fp(t)}static normalizeType(t){const e=fp(t);return e?e.type:null}static doesRenderNodeTypeRequireFrameCadence(t){const e=fp(t);return!!e&&!0===e.requiresFrameCadence}static buildLayoutGraph({type:t,inputs:e=[],normalizedTime:n}={}){const i=pp(t);return i&&"function"==typeof i.buildLayoutGraph?i.buildLayoutGraph({inputs:e,normalizedTime:n}):Rf.buildLayoutGraph({inputs:e,normalizedTime:n})}static getPanAndScanTarget(t){const e=pp(t);return"post"===(n=null==e?void 0:e.panAndScanTarget)||"skip"===n?n:"pre";var n}static prepareRenderFrames({type:t,frames:e,timelineTime:n,timeline:i,active:r,renderNodeParams:o,state:s}={}){const a=pp(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=pp(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=pp(t);n&&"function"==typeof n.resetRenderState&&n.resetRenderState(e)}static resetAllRenderStates(t){t&&"function"==typeof t.forEach&&t.forEach(((t,e)=>{mp.resetRenderState(e,t)}))}create(t,e){return t&&"function"==typeof t.render?t:new(pp(t))(e)}}function gp(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function vp(t,e){return t&&"function"==typeof t.getSignature?t.getSignature():(null==e?void 0:e.type)||"stage"}class yp{#M;constructor(t){this.#M=t||new Of}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=mp.normalizeType(null==t?void 0:t.layoutType)||mp.defaultType,r=null==t?void 0:t.normalizedTime,o=gp(null==t?void 0:t.preStages),s=gp(null==t?void 0:t.postStages),a=[],l=[`layout:${i}`,`inputs:${e}`];let c=n;o.forEach(((e,n)=>{const i=this.#M.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(vp(i,e))}));const u=mp.buildLayoutGraph({type:i,inputs:c,normalizedTime:r}),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.#M.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(vp(i,e))})),{graph:a,signature:l.join("|"),isDynamic:d}}}const bp=[0,0,1,1],kp="zoomInExposure",xp=["transform","exposure","fadeToColor","dipToBlack"],wp={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 _p(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function Tp(t,e=bp){return Array.isArray(t)&&t.length>=4?t:e}function Ip(t){return"string"==typeof t&&t.trim()?t.trim():"#ffffff"}function Ep(t,e){const n=null==t?void 0:t[e];return!1===n||null==n?null:Lc(n)?n:{}}function Sp(t={}){let e=0;return xp.forEach((n=>{const i=Ep(t,n);if(!i)return;const r=_p(null==i?void 0:i.duration);r>e&&(e=r)})),e}function Np(t,e,n,i,r){const o=[];return xp.forEach((s=>{const a=Ep(t,s);if(!a)return;const l=function(t,e,n){const i=_p(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=Tp(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=Tp(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:_p(null==n?void 0:n.from,0),to:_p(null==n?void 0:n.to,1),ease:t},o.options.properties.color=Ip((null==e?void 0:e.color)||r),o}if("exposure"===t||"dipToBlack"===t){const t=Tp(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:_p(null==n?void 0:n.from,0),to:_p(null==n?void 0:n.to,1),ease:t},o}return null}(s,a,e,l,r);c&&o.push(c)})),o}function Ap(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 Mp{#F=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(Lc(null==t?void 0:t.transition))return t.transition;if("string"==typeof(null==t?void 0:t.transition))return wp[t.transition]||wp[kp];if(Lc(null==t?void 0:t.filters)||Lc(null==t?void 0:t.reverseFilters))return{filters:t.filters||{},reverseFilters:t.reverseFilters||{}};if("string"==typeof(null==t?void 0:t.filter)){const e=_p(t.duration)>0?1e3*t.duration:500;return{filters:{[t.filter]:{duration:e,power:{from:0,to:1}}},reverseFilters:{}}}return wp[kp]}(t),n=zc({},(null==e?void 0:e.filters)||{},Lc(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(Lc(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=zc({},(null==e?void 0:e.reverseFilters)||{},Lc(null==t?void 0:t.reverseFilters)?t.reverseFilters:{});return{baseFilters:n,reverseFilters:zc({},i,r)}}(t),r=_p(null==t?void 0:t.duration),o=r>0?1e3*r:null,s=Sp(n),a=Sp(i),l=o&&s>0?o/s:1,c=o&&a>0?o/a:1,u=o||s||500,d=o||a||u,h=Ip(null==t?void 0:t.color),f=e.captureTexture(),p=Date.now(),m=Np(n,p,l,o,h);return this.#F={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:Ap(m),inGraph:null,inSignature:null},{captureId:f,outDurationMs:u,inDurationMs:d}}beginIncoming(){if(!this.#F)return;const t=Date.now(),e=Np(this.#F.reverseFilters,t,this.#F.inScale,this.#F.durationOverrideMs,this.#F.color);this.#F={...this.#F,phase:"in",startTime:t,inGraph:e,inSignature:Ap(e)}}reset(t){var e;t&&"function"==typeof t.disposeTexture&&null!==(e=this.#F)&&void 0!==e&&e.captureId&&t.disposeTexture(this.#F.captureId),this.#F=null}getState(){return this.#F}buildOutgoingGraph(){const t=this.#F;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.#F;return t&&"in"===t.phase&&Array.isArray(t.inGraph)&&t.inGraph.length?{signature:`transition:in:${t.inSignature||""}`,forceUpdate:!1,graph:t.inGraph}:null}}let Fp;const Cp=[/firefox\/(\d+)/,/edg\/(\d+)/,/opr\/(\d+)/,/chrome\/(\d+)/];function Op(){const t=Hc&&Hc.navigator&&(Hc.navigator.userAgent||Hc.navigator.platform||Hc.navigator.vendor)||"";if(Fp&&Fp.ua===t)return Fp;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<Cp.length;e+=1){const n=Cp[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 Fp={ua:t,lowerUA:e,isAndroid:n,isiOS:i,isMobile:r,isDesktop:o,isFirefox:s,browserMajorVersion:a},Fp}function Pp(){return Op().ua}function Rp(){return Op().isAndroid}function Dp(){return Op().isiOS}function Bp(){return Op().isMobile}function Lp(){return Op().isDesktop}function zp(){return Op().isFirefox}function Wp(){return Op().browserMajorVersion}var Up={getUserAgent:Pp,isAndroid:Rp,isiOS:Dp,isMobile:Bp,isDesktop:Lp,isFirefox:zp,getBrowserMajorVersion:Wp},$p=Object.freeze({__proto__:null,default:Up,getBrowserMajorVersion:Wp,getUserAgent:Pp,isAndroid:Rp,isDesktop:Lp,isFirefox:zp,isMobile:Bp,isiOS:Dp});const jp=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"});function qp(t,e){const n={};return Number.isFinite(t)&&(n.time=t),"string"==typeof e&&(n.source=e),n}function Vp({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 Hp({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}const Gp="Idle",Kp="Playing",Xp="Waiting",Yp="Paused",Qp="Seeking",Jp="Resetting";function Zp(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function tm(t,e){return!!Array.isArray(t)&&t.some((t=>(null==t?void 0:t.type)===e))}function em(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 nm(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 im=2073600;function rm(t,e){const n=Number(t);return Number.isFinite(n)&&n>0?n:e}function om(t,e){if(null==t)return e;const n=Number(t);return Number.isFinite(n)?n:e}var sm=new WeakMap,am=new WeakMap,lm=new WeakMap,cm=new WeakMap,um=new WeakMap,dm=new WeakMap,hm=new WeakMap,fm=new WeakMap,pm=new WeakMap,mm=new WeakMap,gm=new WeakMap,vm=new WeakMap,ym=new WeakMap,bm=new WeakMap,km=new WeakMap,xm=new WeakMap,wm=new WeakMap,_m=new WeakMap,Tm=new WeakMap,Im=new WeakMap,Em=new WeakMap,Sm=new WeakMap,Nm=new WeakMap,Am=new WeakMap,Mm=new WeakMap,Fm=new WeakSet;class Cm extends jc{static get pipelineNodeId(){return"ekoplayer-render-pipeline"}get defaults(){return{defaultRenderParams:void 0,resourceLimits:{enabled:!0,maxCanvasPixels:im,maxDevicePixelRatio:1,renderScale:1,transitionMinFrameIntervalMs:33}}}constructor(...t){super(...t),O(this,Fm),F(this,sm,void 0),F(this,am,void 0),F(this,lm,void 0),F(this,cm,void 0),F(this,um,void 0),F(this,dm,void 0),F(this,hm,void 0),F(this,fm,void 0),F(this,pm,void 0),F(this,mm,null),F(this,gm,null),F(this,vm,void 0),F(this,ym,void 0),F(this,bm,void 0),F(this,km,[]),F(this,xm,[]),F(this,wm,null),F(this,_m,null),F(this,Tm,null),F(this,Im,null),F(this,Em,null),F(this,Sm,null),F(this,Nm,new Map),F(this,Am,null),F(this,Mm,null);const[e,n,i]=t;C(sm,this,e),C(am,this,n),C(lm,this,i),C(pm,this,new yp),C(vm,this,new Mp),C(ym,this,null),C(bm,this,null),C(Tm,this,null),C(cm,this,(t=>N(Fm,this,sg).call(this,t))),M(sm,this)&&"function"==typeof M(sm,this).on&&(M(sm,this).on(jp.VISUAL_FRAMES_AVAILABLE,M(cm,this)),C(um,this,(()=>{var t,e,n,i;N(Fm,this,eg).call(this,0),C(xm,this,[]),C(wm,this,null),C(mm,this,null),C(gm,this,null),N(Fm,this,Vm).call(this),C(Am,this,null);(null===(t=M(vm,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t))||null===(n=M(vm,this))||void 0===n||null===(i=n.reset)||void 0===i||i.call(n,M(ym,this))})),M(sm,this).on(jp.TIMELINE_SEEKING,M(um,this)),C(fm,this,(()=>N(Fm,this,Xm).call(this))),M(sm,this).on(jp.TIMELINE_TIME_UPDATE,M(fm,this)),C(dm,this,(()=>{N(Fm,this,ag).call(this)&&M(_m,this)&&N(Fm,this,sg).call(this,M(_m,this))})),M(sm,this).on(jp.TIMELINE_STATE_CHANGE,M(dm,this))),C(hm,this,(()=>{C(wm,this,null),M(_m,this)&&N(Fm,this,ag).call(this)&&N(Fm,this,sg).call(this,M(_m,this))})),M(lm,this)&&"function"==typeof M(lm,this).on&&M(lm,this).on(jp.CONTAINER_RESIZE,M(hm,this))}get name(){return"Renderer"}onDispose(){M(sm,this)&&M(cm,this)&&"function"==typeof M(sm,this).off&&M(sm,this).off(jp.VISUAL_FRAMES_AVAILABLE,M(cm,this)),M(sm,this)&&M(um,this)&&"function"==typeof M(sm,this).off&&M(sm,this).off(jp.TIMELINE_SEEKING,M(um,this)),M(sm,this)&&M(fm,this)&&"function"==typeof M(sm,this).off&&M(sm,this).off(jp.TIMELINE_TIME_UPDATE,M(fm,this)),M(sm,this)&&M(dm,this)&&"function"==typeof M(sm,this).off&&M(sm,this).off(jp.TIMELINE_STATE_CHANGE,M(dm,this)),M(lm,this)&&M(hm,this)&&"function"==typeof M(lm,this).off&&M(lm,this).off(jp.CONTAINER_RESIZE,M(hm,this)),N(Fm,this,Om).call(this),C(cm,this,null),C(um,this,null),C(fm,this,null),C(dm,this,null),C(hm,this,null),C(pm,this,null),C(vm,this,null),C(Nm,this,null),C(Am,this,null),C(am,this,null),C(lm,this,null),C(sm,this,null)}startTransition(t={}){var e;const n=null===(e=M(am,this))||void 0===e?void 0:e.element;if(!n)return null;if(N(Fm,this,Pm).call(this,n),!M(ym,this))return null;const i=M(vm,this).start({shaderGraph:M(ym,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 C(Tm,this,M(_m,this)||null),N(Fm,this,ig).call(this),i}beginTransitionIn(t={}){var e,n;null!==(e=M(vm,this))&&void 0!==e&&null!==(n=e.beginIncoming)&&void 0!==n&&n.call(e,t),C(Tm,this,null),N(Fm,this,ig).call(this)}resetTransition(){var t,e;null!==(t=M(vm,this))&&void 0!==t&&null!==(e=t.reset)&&void 0!==e&&e.call(t,M(ym,this)),C(Tm,this,null),N(Fm,this,rg).call(this)}}function Om(){if(M(vm,this)&&"function"==typeof M(vm,this).reset&&M(vm,this).reset(M(ym,this)),N(Fm,this,eg).call(this,0),M(ym,this)&&"function"==typeof M(ym,this).dispose)try{M(ym,this).dispose()}catch(t){}C(ym,this,null),C(bm,this,null),C(km,this,[]),C(xm,this,[]),C(wm,this,null),C(mm,this,null),C(gm,this,null),C(_m,this,null),C(Tm,this,null),N(Fm,this,rg).call(this),N(Fm,this,Vm).call(this),C(Am,this,null)}function Pm(t){if(M(ym,this)||!t)return;const e=this,n={dest:t,src:(t,n)=>{C(bm,e,n)}};C(ym,e,new Af(n,{userWillCallRender:!0,glOptions:{contextType:"webgl2"},performanceToggles:{useCanvasSizedFilterTargets:!0}})),M(ym,e)&&"function"==typeof M(ym,e).addNodes&&M(ym,e).addNodes({[ae.pipelineNodeId]:{type:"composite",options:{graph:[]}}})}function Rm(){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 Dm(){const t=N(Fm,this,Rm).call(this).enabled;return!0===t||!1!==t&&Dp()}function Bm(){if(!N(Fm,this,Dm).call(this))return 0;const t=om(N(Fm,this,Rm).call(this).transitionMinFrameIntervalMs,33);return Number.isFinite(t)&&t>0?t:0}function Lm(t,e){if(!N(Fm,this,Dm).call(this))return{width:t,height:e};const n=N(Fm,this,Rm).call(this),i=om(n.maxCanvasPixels,im),r=om(n.maxDevicePixelRatio,1),o=rm(n.renderScale,1),s=rm(null==Hc?void 0:Hc.devicePixelRatio,1),a=o*(r>0?Math.min(s,r):s);let l=Math.max(1,Math.round(t*a)),c=Math.max(1,Math.round(e*a));if(i>0){const t=l*c;if(t>i){const e=Math.sqrt(i/t);l=Math.max(1,Math.floor(l*e)),c=Math.max(1,Math.floor(c*e))}}return{width:l,height:c}}function zm(t=[],e={}){var n;const i=null===(n=M(am,this))||void 0===n?void 0:n.element,r=M(bm,this);if(!i||"function"!=typeof r)return!1;let o=0,s=0;if(!0===(null==e?void 0:e.useViewportSize)){var a,l,c,u,d,h;const t=Number(null!==(a=null===(l=M(lm,this))||void 0===l?void 0:l.containerWidth)&&void 0!==a?a:null===(c=M(lm,this))||void 0===c?void 0:c.width),e=Number(null!==(u=null===(d=M(lm,this))||void 0===d?void 0:d.containerHeight)&&void 0!==u?u:null===(h=M(lm,this))||void 0===h?void 0:h.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 f;const n=null===(f=t[e])||void 0===f?void 0:f.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 p=N(Fm,this,Lm).call(this,o,s),m=p.width,g=p.height,v=M(wm,this);return!(v&&v.width===m&&v.height===g||(C(wm,this,{width:m,height:g}),r(null,null,m,g),0))}function Wm(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 Um(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=N(Fm,this,$m).call(this,t),s=N(Fm,this,jm).call(this,o);return mp.getRenderTiming({type:o,timing:{duration:i,normalizedTime:r},timelineTime:e,active:t,renderNodeParams:n,state:s})}function $m(t){return mp.normalizeType(null==t?void 0:t.type)||mp.defaultType}function jm(t){if(!t||!M(Nm,this))return null;let e=M(Nm,this).get(t);return e||(e={},M(Nm,this).set(t,e)),e}function qm(t){if(!t||!M(Nm,this))return;const e=M(Nm,this).get(t);e&&mp.resetRenderState(t,e),M(Nm,this).delete(t)}function Vm(){M(Nm,this)&&(mp.resetAllRenderStates(M(Nm,this)),M(Nm,this).clear())}function Hm(t,e,n,i){const r=N(Fm,this,$m).call(this,t);M(Am,this)&&M(Am,this)!==r&&N(Fm,this,qm).call(this,M(Am,this)),C(Am,this,r);const o=N(Fm,this,jm).call(this,r);return mp.prepareRenderFrames({type:r,frames:e,timelineTime:n,timeline:M(sm,this),active:t,renderNodeParams:i,state:o})}function Gm(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 Km(t){return t?String(t.renderPlacementId||t.type||"unknown"):"default"}function Xm(){if(!M(sm,this)||!M(_m,this))return;const t=M(sm,this).currentTime,e=M(sm,this).getActiveRenderPlacement(t),n=N(Fm,this,Km).call(this,e);n!==M(Mm,this)&&(C(Mm,this,n),N(Fm,this,sg).call(this,{...M(_m,this),time:t}))}function Ym(t){return!t||"object"!=typeof t||!Object.prototype.hasOwnProperty.call(t,"panAndScan")||!1!==t.panAndScan}function Qm(t,e){const n=N(Fm,this,Gm).call(this,t),i=null==n?void 0:n.stages;let r=Zp(null==i?void 0:i.pre),o=Zp(null==i?void 0:i.post);const s=N(Fm,this,Ym).call(this,n),a=N(Fm,this,$m).call(this,t),l=tm(r,"retarget")||tm(o,"retarget");if(s&&!l){const t=mp.getPanAndScanTarget(a);if("pre"===t){const t=em(Array.isArray(e)?e.length:0);t&&(r=[t,...r])}else if("post"===t){const t=em(1);t&&(o=[...o,t])}}else s||(r=nm(r),o=nm(o));return{preStages:r,postStages:o,renderNodeParams:n}}function Jm(t,e,n,i,r){const o=r||N(Fm,this,Um).call(this,t,n,i),s=N(Fm,this,Qm).call(this,t,e);return M(pm,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,timelineTime:n})}function Zm(){var t,e;const n=null===(t=M(vm,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t);return"out"===(null==n?void 0:n.phase)?M(vm,this).buildOutgoingGraph():"in"===(null==n?void 0:n.phase)?M(vm,this).buildIncomingGraph():null}function tg(t,e,n,i){const r=n||e!==M(mm,this),o=r||i;r&&M(ym,this)&&"function"==typeof M(ym,this).updateOptions&&(M(ym,this).updateOptions(ae.pipelineNodeId,{graph:t}),C(mm,this,e)),M(ym,this)&&"function"==typeof M(ym,this).selectNode&&M(gm,this)!==ae.pipelineNodeId&&(M(ym,this).selectNode(ae.pipelineNodeId),C(gm,this,ae.pipelineNodeId)),o&&M(ym,this)&&"function"==typeof M(ym,this).render&&M(ym,this).render({noRaf:!0})}function eg(t){if(!Array.isArray(M(km,this))||!M(km,this).length)return;const e=Number.isFinite(t)?Math.max(0,t):0;if(!(M(km,this).length<=e)){for(let t=e;t<M(km,this).length;t+=1){const e=M(km,this)[t];if(e&&M(ym,this)&&"function"==typeof M(ym,this).releaseTexture)try{M(ym,this).releaseTexture(e)}catch(t){}}M(km,this).length=e,M(xm,this).length=e}}function ng(t=[]){if(!M(ym,this)||"function"!=typeof M(ym,this).addTexture)return!1;if("function"==typeof M(ym,this).isContextUnavailable&&M(ym,this).isContextUnavailable())return!1;if(!Array.isArray(t)||!t.length)return N(Fm,this,eg).call(this,0),!1;N(Fm,this,eg).call(this,t.length);let e=!1;for(let i=0;i<t.length;i+=1){var n;M(km,this)[i]||"function"!=typeof M(ym,this).addTexture||(M(km,this)[i]=M(ym,this).addTexture(null,"frame",i));const r=N(Fm,this,Wm).call(this,t[i]),o=null===(n=t[i])||void 0===n?void 0:n.frame;if(M(km,this)[i]&&o&&(!r||r!==M(xm,this)[i]))try{M(km,this)[i].fill(o),M(xm,this)[i]=r,e=!0}catch(t){}}return e}function ig(){if(M(Im,this))return;const t="function"==typeof Hc.requestAnimationFrame?t=>Hc.requestAnimationFrame(t):t=>setTimeout(t,16),e="function"==typeof Hc.cancelAnimationFrame?t=>Hc.cancelAnimationFrame(t):clearTimeout;C(Em,this,e);const n=()=>{var e,i;if(null!==(e=M(vm,this))&&void 0!==e&&null!==(i=e.getState)&&void 0!==i&&i.call(e)){if(M(_m,this)){const t=N(Fm,this,Bm).call(this),e=Date.now();(!t||!M(Sm,this)||e-M(Sm,this)>=t)&&(C(Sm,this,e),N(Fm,this,sg).call(this,M(_m,this)))}C(Im,this,t(n))}else C(Im,this,null)};C(Im,this,t(n))}function rg(){M(Im,this)&&M(Em,this)&&M(Em,this).call(this,M(Im,this)),C(Im,this,null),C(Em,this,null),C(Sm,this,null)}function og(t){var e,n;const i=null===(e=M(vm,this))||void 0===e||null===(n=e.getState)||void 0===n?void 0:n.call(e);return"out"===(null==i?void 0:i.phase)&&M(Tm,this)?M(Tm,this):t}function sg(t={}){var e,n;const i=null===(e=M(am,this))||void 0===e?void 0:e.element,r=null===(n=M(am,this))||void 0===n?void 0:n.gl;if(!i||!r)return;if(t&&C(_m,this,t),!N(Fm,this,ag).call(this))return;const o=N(Fm,this,og).call(this,t),s=Number.isFinite(null==o?void 0:o.time)?o.time:void 0;if(!Number.isFinite(s))return;if(N(Fm,this,Pm).call(this,i),!M(ym,this))return;const a=M(sm,this)&&"function"==typeof M(sm,this).getActiveRenderPlacement?M(sm,this).getActiveRenderPlacement(s):void 0,l=N(Fm,this,Km).call(this,a);l!==M(Mm,this)&&C(Mm,this,l);const c=Array.isArray(null==o?void 0:o.frames)?o.frames:[],u=N(Fm,this,Gm).call(this,a),d=N(Fm,this,Ym).call(this,u),h=N(Fm,this,Hm).call(this,a,c,s,u),f=N(Fm,this,Um).call(this,a,s,u),p=N(Fm,this,zm).call(this,h,{useViewportSize:d}),m=N(Fm,this,ng).call(this,h),g=N(Fm,this,Jm).call(this,a,h,s,u,f),v=N(Fm,this,Zm).call(this);let y=g.graph,b=g.signature,k=!!g.isDynamic;v&&Array.isArray(v.graph)&&v.graph.length&&(y=y.concat(v.graph),b=`${b}|${v.signature||"transition"}`,k=k||!!v.forceUpdate);const x=p||m||k||v&&Array.isArray(v.graph)&&v.graph.length;N(Fm,this,tg).call(this,y,b,k,x)}function ag(){var t;const e=null===(t=M(sm,this))||void 0===t?void 0:t.state;return e===Gp||e===Kp||e===Yp}function lg(t){return"number"==typeof t&&Number.isFinite(t)&&t>0}function cg(t){return t&&"resource"===t.entryType&&t.transferSize>0&&t.duration>0&&t.responseEnd>=t.requestStart}function ug(t){return Array.isArray(t)&&0!==t.length?t.reduce(((t,e)=>t+e),0)/t.length:NaN}ae=Cm;var dg=new WeakMap,hg=new WeakMap,fg=new WeakMap,pg=new WeakMap,mg=new WeakSet;class gg extends jc{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),O(this,mg),F(this,dg,void 0),F(this,hg,void 0),F(this,fg,void 0),F(this,pg,void 0),C(dg,this,!!(Hc&&Hc.navigator&&Hc.navigator.connection)),C(hg,this,!(!Hc||!Hc.performance||"function"!=typeof Hc.performance.getEntriesByType)),C(fg,this,N(mg,this,yg).call(this)),C(pg,this,N(mg,this,_g).call(this))}guesstimate(){const t=N(mg,this,Ig).call(this);this.log.debug("[guesstimate] Data:",t);const e=N(mg,this,Tg).call(this,t),n=lg(e)?e:t.defaultKbps;return N(mg,this,bg).call(this,n),this.log.info(`[guesstimate] Result: ${n} kbps`),n}update(t){lg(t)&&N(mg,this,bg).call(this,t)}onDispose(){C(fg,this,void 0),C(pg,this,void 0)}}function vg(){return Math.round(Date.now()/1e3)}function yg(){try{if(!Hc||!Hc.localStorage||"function"!=typeof Hc.localStorage.getItem)return}catch(t){return}const t=this.settings.persistentStorage.key,e=Hc.localStorage.getItem(t);if(e)try{const t=JSON.parse(e),n=this.settings.persistentStorage.ttl,i=N(mg,this,vg).call(this)-t.timestamp;if("number"==typeof n&&n>=0&&i>n)return null;if(!lg(t.value))return;return t.value}catch(t){return}}function bg(t){if(!lg(t))return;try{if(!Hc||!Hc.localStorage||"function"!=typeof Hc.localStorage.setItem)return}catch(t){return}const e=this.settings.persistentStorage.key,n=JSON.stringify({value:t,timestamp:N(mg,this,vg).call(this)});try{Hc.localStorage.setItem(e,n),C(fg,this,t)}catch(t){}}function kg(){return Hc&&Hc.performance&&"function"==typeof Hc.performance.getEntriesByType?ug(Hc.performance.getEntriesByType("resource").filter(cg).map((t=>8*t.transferSize/t.duration))):NaN}function xg(){if(!Hc||!Hc.navigator||!Hc.navigator.connection)return NaN;const t=Hc.navigator.connection.downlink;return lg(t)?1e3*t:NaN}function wg(){if(!M(dg,this))return NaN;const t=Hc.navigator.connection,e=t.effectiveType||t.type,n=this.settings.connectionType||{};return e&&Object.prototype.hasOwnProperty.call(n,e)?n[e]:NaN}function _g(){const t=this.settings.ua||{};return Rp()?t.android:Dp()?t.ios:t.desktop}function Tg(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=>lg(t)));if(r.length===i.length)return this.log.debug("[#selectFromPriorities] Selected from priorities:",i,"with values:",r),ug(r)}return NaN}function Ig(){const t=this.settings.testOverrides||{},e=lg(t.resourceTiming)?t.resourceTiming:N(mg,this,kg).call(this),n=lg(t.downlink)?t.downlink:N(mg,this,xg).call(this),i=lg(t.persistentValue)?t.persistentValue:M(fg,this),r=lg(t.connectionType)?t.connectionType:N(mg,this,wg).call(this),o=lg(t.ua)?t.ua:M(pg,this);return{defaultKbps:this.settings.defaultKbps,resourceTiming:e,downlink:n,connectionType:r,persistentValue:i,ua:o}}const Eg=new Bc;function Sg(t){return"string"!=typeof t||0===t.length?[]:t.split(".").filter((t=>t.length>0))}function Ng(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 Ag(t){return null!==t&&"object"==typeof t}function Mg(t,e,n){const i=Sg(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 Fg(t,e,n){if(!Ag(t))return t;const i=Sg(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}Ag(r[e])||(r[e]=Ng(i[t+1])?[]:{}),r=r[e]}return t}const Cg={get:(t,e)=>Hc&&Hc.eko?Mg(Hc.eko,t,e):e,set(t,e){if(Hc)return Hc.eko&&"object"==typeof Hc.eko||(Hc.eko={}),Fg(Hc.eko,t,e),Hc.eko}},Og=Hc&&Hc.performance,Pg=Og&&"function"==typeof Og.now?()=>Og.now():()=>Date.now();function Rg(){return"undefined"==typeof AbortController?null:new AbortController}function Dg(){const t=new Error("The operation was aborted");return t.name="AbortError",t.code="ABORT_ERR",t}function Bg(t,e){return!(!e||!e.aborted)||!!t&&("AbortError"===t.name||"ABORT_ERR"===t.code||20===t.code)}const Lg=2,zg=100,Wg=2,Ug="runtime.downloadSpeedSamples",$g=Dc("download","warn");function jg(t){return new Promise((e=>{setTimeout(e,t)}))}function qg(t){return t>=500}function Vg(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 Hg(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=Cg.get(r);t||(t=[],Cg.set(r,t)),t.push(s)}catch(t){}return s}async function Gg(t,e={}){const{method:n="GET",headers:i,body:r,retries:o=Lg,retryDelay:s=zg,backoffFactor:a=Wg,samplesTargetPath:l=Ug,fetch:c,loglevel:u="warn",cache:d,signal:h,onProgress:f,returnType:p="default"}=e;$g.setLevel(u);const m=function(t){if(t)return t;if(Hc&&"function"==typeof Hc.fetch)return Hc.fetch.bind(Hc);throw new Error("fetch is not available in this environment")}(c);let g=0,v=s;for(;;){if(h&&h.aborted)throw Dg();const e=Pg();try{const s=await m(t,{method:n,headers:i,body:r,cache:d,mode:"cors",signal:h});if(h&&h.aborted)throw Dg();if(!s.ok){if(g<o&&qg(s.status)){g+=1,$g.warn(`[${t}] Download attempt #${g} failed with status ${s.status}, retrying in ${v}ms...`),await jg(v),v*=a;continue}$g.error(`[${t}] Download attempt #${g} 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=Pg();const u=Vg(s),y="arrayBuffer"===p||"bytes"===p,b=y&&"function"==typeof f;let k,x,w,_,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 Dg();const{done:n,value:i}=await t.read();if(n)break;if(i&&i.length){const t=Pg();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=Pg()}else if(y){const t=await s.arrayBuffer();k=new Uint8Array(t),I=k.length,c=Pg()}else"text"===p?(x=await s.text(),c=Pg()):"json"===p&&(w=await s.json(),c=Pg());if(h&&h.aborted)throw Dg();const E=y?k?k.length:I:("text"===p&&"string"==typeof x?x.length:0)||("json"===p&&w?JSON.stringify(w).length:0),S=u||E||0;let N=e,A=c;Number.isFinite(_)&&(N=_,Number.isFinite(T)&&(A=Math.max(T,c))),(!Number.isFinite(N)||!Number.isFinite(A)||A<N)&&(N=e,A=c);const M=Math.max(0,A-N),F=Hg(S,M,N,A,l,t);try{Eg.trigger("download:sample",F)}catch(t){}const C={response:s,bytes:S,durationMs:M,kbps:F.kbps,startTime:F.startTime,endTime:F.endTime};if("default"===p)return C;if("arrayBuffer"===p||"bytes"===p){const t=k||new Uint8Array(await s.arrayBuffer());return"arrayBuffer"===p?t.buffer:t}return"text"===p?x:"json"===p?w:C}catch(e){if(Bg(e,h))throw"AbortError"===e.name?e:Dg();if(!(g<o)||e.status&&!qg(e.status))throw $g.error(`[${t}] Download attempt #${g} failed with error ${e}, no more retries.`),e;g+=1,$g.warn(`[${t}] Download attempt #${g} failed with error ${e}, retrying in ${v}ms...`),await jg(v),v*=a}}}const Kg={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"]}},Xg=Object.freeze(Object.entries(Kg).reduce(((t,[e,n])=>(Object.prototype.hasOwnProperty.call(n,"default")&&(t[e]=n.default),t)),{})),Yg=Dc("config","warn");function Qg(t){return Xg[t]}var Jg=new WeakMap,Zg=new WeakMap,tv=new WeakMap,ev=new WeakMap,nv=new WeakMap,iv=new WeakSet;class rv extends jc{get name(){return"DownloadSpeed"}get defaults(){return{alpha:.3,maxSamples:30,minBytesPerSample:1024,minDurationMs:5,maxSampleKbpsCap:void 0,ignoreCacheHits:!0,samplesPath:"runtime.downloadSpeedSamples",initialKbps:Qg("initialKbps"),probeUrl:void 0,defaultKbps:2500}}constructor(...t){super(...t),O(this,iv),F(this,Jg,void 0),F(this,Zg,void 0),F(this,tv,void 0),F(this,ev,void 0),F(this,nv,void 0),C(tv,this,[]),C(Zg,this,0),C(Jg,this,N(iv,this,av).call(this)),C(nv,this,Rg()),C(ev,this,(t=>{N(iv,this,fv).call(this,t,"event")})),N(iv,this,lv).call(this),Eg.on("download:sample",M(ev,this)),N(iv,this,cv).call(this),this.log.debug(`[#constructor] Initial estimate: ${M(Jg,this)} kbps`)}getKbps(){return M(Jg,this)}addSample(t){N(iv,this,fv).call(this,t,"manual")}reset(){C(tv,this,[]),C(Zg,this,0),C(Jg,this,N(iv,this,av).call(this))}onDispose(){M(nv,this)&&M(nv,this).abort(),C(nv,this,null),Eg.off("download:sample",M(ev,this)),C(tv,this,[]),C(Zg,this,0),C(Jg,this,void 0),C(ev,this,null)}}function ov(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 sv(t){if(!t||"object"!=typeof t)return null;const e=Number(t.bytes),n=Number(t.durationMs);let i=lg(t.kbps)?Number(t.kbps):NaN;return!lg(i)&&n>0&&lg(e)&&(i=8*e/n),lg(i)?e<=this.settings.minBytesPerSample||n<=this.settings.minDurationMs||N(iv,this,ov).call(this,t,e)?null:(lg(this.settings.maxSampleKbpsCap)&&i>this.settings.maxSampleKbpsCap&&(i=this.settings.maxSampleKbpsCap),{...t,bytes:e,durationMs:n,kbps:i}):null}function av(){const t=this.settings.initialKbps;if(lg(t))return t;if("auto"===t)try{const t=(new gg).guesstimate();if(lg(t))return t}catch(t){}return this.settings.defaultKbps}function lv(){const t=Cg.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)N(iv,this,fv).call(this,e[t],"replay",{emit:!1})}async function cv(){if(!this.settings.probeUrl||M(Zg,this)>0)return;const t=M(nv,this)?M(nv,this).signal:void 0;if(!t||!t.aborted)try{await Gg(this.settings.probeUrl,{cache:"no-store",samplesTargetPath:this.settings.samplesPath,signal:t})}catch(t){}}function uv(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 dv(t,e){if(!N(iv,this,uv).call(this,t)||!N(iv,this,uv).call(this,e))return 0;const n=Math.max(t.startTime,e.startTime);return Math.min(t.endTime,e.endTime)-n}function hv(t){if(!N(iv,this,uv).call(this,t))return t;const e=[];for(let n=0;n<M(tv,this).length;n+=1){const i=M(tv,this)[n];N(iv,this,uv).call(this,i)&&(N(iv,this,dv).call(this,t,i)>0&&e.push(i))}if(0===e.length)return t;C(tv,this,M(tv,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(!lg(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 N(iv,this,sv).call(this,a)}function fv(t,e,{emit:n=!0}={}){const i=N(iv,this,sv).call(this,t);if(!i)return;const r=N(iv,this,hv).call(this,i);if(!r)return;C(Zg,this,M(Zg,this)+1),M(tv,this).push(r),M(tv,this).length>this.settings.maxSamples&&M(tv,this).shift();const o=this.defaults.alpha,s="number"==typeof this.settings.alpha?this.settings.alpha:o,a=lg(M(Jg,this)),l=a?M(Jg,this):r.kbps,c=a||1!==M(Zg,this)?s*r.kbps+(1-s)*l:r.kbps;C(Jg,this,c),this.log.debug(`[#ingestSample] Next estimate: ${c} kbps`),n&&this.trigger("download:speed",{kbps:M(Jg,this),sample:r,source:e,samplesCount:M(Zg,this)})}class pv{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),lg(s)&&(this.bandwidth=s),lg(a)&&(this.timescale=a),lg(l)&&(this.sizeBytes=l),Object.assign(this,c)}}class mv{#C=new Map;#O;#P;#R=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 pv?t:new pv(t))),this.representations=this.originalRepresentations.map((t=>t)),this.appliedFilters=[],this.loadAttempts=0,this.loadError=void 0}setRepresentationBuffer(t,e){t&&e&&this.#C.set(t,e)}setDownloadProgress(t,e){const n=Number(t);Number.isFinite(n)&&n>=0&&(this.#R=Math.max(this.#R,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.#C.size<=1))for(const t of this.#C.keys())t!==e&&this.#C.delete(t)}setABRDecisionSnapshot(t){if(!t||"object"!=typeof t)return void(this.#P=void 0);const e={...t};Array.isArray(t.availableRepresentations)&&(e.availableRepresentations=t.availableRepresentations.map((t=>({...t})))),this.#P=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.#C.get(t)}get chosenRepresentation(){return this.#O}get abrDecision(){return this.#P}get arrayBuffer(){return this.#O?this.#C.get(this.#O.id):void 0}get retainedByteLength(){let t=0;for(const e of this.#C.values())e&&"number"==typeof e.byteLength&&(t+=e.byteLength);return t}get bufferedRatio(){var t;const e=lg(this.#D)?this.#D:null===(t=this.#O)||void 0===t?void 0:t.sizeBytes;return lg(e)?Math.min(1,Math.max(0,this.#R/e)):this.retainedByteLength>0?1:0}get isLoaded(){return this.retainedByteLength>0}evict(){this.#O=void 0,this.#P=void 0,this.#C.clear(),this.#R=0,this.#D=void 0}}class gv{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 vv(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 yv(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=vv(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 bv=new Set(["video","audio","image","cue","data","bbox"]);class kv{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(!bv.has(n))throw new Error(`Track type must be one of ${Array.from(bv).join("|")}`);this.id=e,this.type=n,this.offset=i,this.duration=lg(r)?r:void 0,this.source=o,"cue"===n?(this._cues=a.map((t=>t instanceof gv?t:new gv(t))),this._segments=[]):(this._segments=s.map((t=>t instanceof mv?t:new mv(t))),this._cues=void 0)}get segments(){return this._segments.slice()}get cues(){if("cue"===this.type)return this._cues.slice()}get endTime(){if(lg(this.duration))return this.offset+this.duration;if(!this._segments.length)return;const t=this._segments.reduce(((t,e)=>{const n=lg(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:lg(null==t?void 0:t.duration)?t.duration:0,offset:lg(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 yv(this._segments,t,e)}setSegments(t=[]){if("cue"===this.type)return;const e=Array.isArray(t)?t:[];this._segments=e.map((t=>t instanceof mv?t:new mv(t)))}}function xv(t){return"string"==typeof t?t:t&&"object"==typeof t?t.nodeId||t.nodeIdOrRef||t.id:void 0}function wv(t){const e=xv(t);let n=1;if(t&&"object"==typeof t&&lg(t.weight)&&(n=t.weight),!e)throw new Error("Child entry requires a nodeId");return{nodeId:e,weight:n}}function _v(t){return(Array.isArray(t)?t:[]).map((t=>wv(t)))}function Tv(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 Iv(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 Ev(t,e){if(e)try{var n;return new URL(e,t||(null==Hc||null===(n=Hc.location)||void 0===n?void 0:n.href)||void 0).toString()}catch(t){return e}}const Sv=new Map;class Nv{static register(t,e){if(!t||"function"!=typeof e)throw new Error("ManifestFactory.register requires type and parser function");Sv.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=Nv.inferType(t);if(!e||!Sv.has(e))throw new Error("Unsupported manifest type");return Sv.get(e)(t)}}Nv.register("dash",(function(t={}){const{body:e,url:n}=t,i=function(){if(Hc&&"function"==typeof Hc.DOMParser)return new Hc.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=Tv(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=Tv(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:Tv(a&&a.getAttribute("timescale"))||Tv(e&&e.getAttribute("timescale"),1)||1,startNumber:Tv(a&&a.getAttribute("startNumber"))||Tv(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=Tv(n.getAttribute("t")),s=Tv(n.getAttribute("d")),a=Tv(n.getAttribute("r"),0);if(!lg(s))continue;lg(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:Ev(n,Iv(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:Ev(n,Iv(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}})),Nv.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:lg(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=>lg(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+(lg(e.duration)?e.duration:0)),0),l=lg(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}})),Nv.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=lg(null==t?void 0:t.duration)?t.duration:30,i=lg(null==t?void 0:t.width)?t.width:void 0,r=lg(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};lg(i)&&lg(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 Av=["video/mp4"];function Mv(t){return Av.includes(t.mime)}var Fv={name:"containers",fn:function(t=[]){return t.filter(Mv)},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}};const Cv=new(le=new WeakMap,ce=new WeakSet,class extends jc{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),O(this,ce),F(this,le,void 0),C(le,this,new Map)}onDispose(){M(le,this)&&M(le,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 N(ce,this,Bv).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 Ov(){return!!(Hc&&Hc.navigator&&Hc.navigator.mediaCapabilities&&"function"==typeof Hc.navigator.mediaCapabilities.decodingInfo)}function Pv(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 Rv(t){return t?JSON.stringify(t):"invalid"}async function Dv(t){if(!this.settings.enabled||!N(ce,this,Ov).call(this)||!t)return this.log.debug("[#queryCapabilities] Not supported, returning false",t),{supported:!1,smooth:!1,powerEfficient:!1};const e=N(ce,this,Rv).call(this,t),n=M(le,this).get(e);if(n)return n;let i;try{i=await Hc.navigator.mediaCapabilities.decodingInfo(t)}catch(t){i={supported:!1,smooth:!1,powerEfficient:!1}}return this.log.debug("[#queryCapabilities] Config:",t,"\nDecoding info result:",i),M(le,this).set(e,i),i}async function Bv(t){if(N(ce,this,zv).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=N(ce,this,Pv).call(this,t),n=await N(ce,this,Dv).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 Lv(){if(!zp())return!1;const t=Wp();return!Number.isFinite(t)||t<150}function zv(t){if(!N(ce,this,Lv).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 Wv=[],Uv=()=>!0;[Fv,{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 Cv.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:Uv;Wv.push({name:t,fn:e,isRelevantForTrack:i})}(t,e,{isRelevantForTrack:n})}));const $v=Dc("Node","warn"),jv={start:0,end:0},qv=.001;function Vv(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)<=qv&&Math.abs(t.duration-n.duration)<=qv))?{offset:n.start,duration:n.duration}:void 0}var Hv=new WeakMap,Gv=new WeakMap,Kv=new WeakMap,Xv=new WeakMap,Yv=new WeakMap,Qv=new WeakMap,Jv=new WeakMap,Zv=new WeakMap,ty=new WeakMap,ey=new WeakMap,ny=new WeakSet;class iy extends Bc{constructor(t={},e={}){super(),O(this,ny),F(this,Hv,void 0),F(this,Gv,void 0),F(this,Kv,void 0),F(this,Xv,void 0),F(this,Yv,void 0),F(this,Qv,void 0),F(this,Jv,void 0),F(this,Zv,void 0),F(this,ty,void 0),F(this,ey,[]);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,C(Jv,this,!0===e.forceImageFallback),C(Hv,this,e.abrSelector),C(Gv,this,e.assetsDeliveryService),C(Xv,this,lg(r)?r:void 0),C(Yv,this,lg(o)?o:void 0),C(Qv,this,lg(s)?s:void 0),C(Zv,this,e&&"object"==typeof e.mediaHostRewriteMap?e.mediaHostRewriteMap:void 0),C(ty,this,lg(e.maxManifestLoadAttempts)?e.maxManifestLoadAttempts:1/0),this.manifestLoadAttempts=0,this.manifestLoadError=void 0,C(ey,this,_v(l))}setChildren(t){const e=_v(t);return N(ny,this,by).call(this,e,{emit:!0})}addChild(t){const e=wv(t),n=M(ey,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 N(ny,this,by).call(this,n,{emit:!0})}removeChild(t){const e=xv(t);if(!e)return this.children;const n=M(ey,this).filter((t=>(null==t?void 0:t.nodeId)!==e));return n.length===M(ey,this).length?this.children:N(ny,this,by).call(this,n,{emit:!0})}async load(t={}){const{loadingMode:e="full",signal:n}=t;$v.info(`[load] [${this.id}] Loading node in '${e}' mode`);try{if(n&&n.aborted)throw Dg();"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})=>N(ny,this,my).call(this,t,e,n))),l=s?N(ny,this,gy).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 N(ny,this,gy).call(this,t.segment,t.track,n);if(n&&n.aborted)throw Dg();return this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:e}),this}catch(t){if(Bg(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($v.info(`[loadMediaSegmentsAtOffset] [${this.id}] Loading media segments at offset ${n}`),!Number.isFinite(n))return;const{signal:i}=e;if(i&&i.aborted)throw Dg();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(N(ny,this,my).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)<=qv&&!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})=>N(ny,this,gy).call(this,t,e,i)))),i&&i.aborted)throw Dg();this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:"segment-offset",offsetSeconds:n})}}async resolve(t={}){if("ready"===this.state)return this;if("resolving"===this.state)return M(Kv,this);const{signal:e,manifestOverride:n}=t;if(e&&e.aborted)throw Dg();if(this.hasExceededManifestLoadAttempts()){const t=this.manifestLoadError||new Error("Manifest load retry limit reached");throw this.state="failed",this.error=t,t}const i=this.state;return this.state="resolving",this.error=void 0,C(Kv,this,(async()=>{try{const t=await N(ny,this,vy).call(this,{signal:e,manifestOverride:n});if(e&&e.aborted)throw Dg();let i=Nv.parse(t);return i=N(ny,this,cy).call(this,i),this.tracks=(i.tracks||[]).map((t=>t instanceof kv?t:new kv(t))),this.mainTrackId=i.mainTrackId||this.mainTrackId,this.metadata=i.metadata||this.metadata,N(ny,this,xy).call(this),N(ny,this,ky).call(this),await N(ny,this,yy).call(this),this.state="ready",this}catch(t){if(Bg(t,e))throw this.state=i,this.error=void 0,t;throw this.state="failed",this.error=t,t}})()),M(Kv,this)}evict(){this.tracks.forEach((t=>{(t.segments||[]).forEach((t=>{t.evict()}))}))}get children(){return M(ey,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?lg(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+=lg(e.retainedByteLength)?e.retainedByteLength:0}))})),t}get buffered(){if("ready"!==this.state)return jv;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||!lg(e))return jv;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 jv;if(n.length===this.tracks.length&&n.every((({track:t,range:e})=>{const n=t.endTime,i=lg(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 jv;const r=Math.min(i,e);return r>0?{start:0,end:r}:jv}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(M(ty,this))||M(ty,this)<=0)return!1;if(!this.manifestLoadError)return!1;const t=Number(this.manifestLoadAttempts);return Number.isFinite(t)&&t>=M(ty,this)}}function ry(t){return function(t,e){if(!t||"string"!=typeof t)return t;if(!e||"object"!=typeof e)return t;const n=Hc&&"function"==typeof Hc.URL?Hc.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,M(Zv,this))}function oy(){return M(Jv,this)||void 0===Hc.VideoDecoder}function sy(){return this.manifestRef&&"object"==typeof this.manifestRef&&"assets-delivery-service"===this.manifestRef.type}function ay(t){if(!N(ny,this,sy).call(this))return!1;if(!N(ny,this,oy).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 ly(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 lg(n)?n:lg(M(Xv,this))?M(Xv,this):void 0}function cy(t){if(this.imageFallbackActive=!1,!N(ny,this,ay).call(this,t))return t;if(!M(Gv,this)||"function"!=typeof M(Gv,this).resolveImageOne)return t;const e=M(Gv,this).resolveImageOne(this.manifestRef),n=N(ny,this,ry).call(this,null==e?void 0:e.url);if(!n)return t;const i={typeHint:"image",url:n,duration:N(ny,this,ly).call(this,t),width:M(Yv,this),height:M(Qv,this)},r=Nv.parse(i);return t&&"object"==typeof t.metadata&&!Array.isArray(t.metadata)&&(r.metadata=t.metadata),this.imageFallbackActive=!0,r}function uy(){const t=Number(this.manifestLoadAttempts);this.manifestLoadAttempts=Number.isFinite(t)&&t>0?t+1:1,this.manifestLoadError=void 0}function dy(t){this.manifestLoadError=t||new Error("Manifest load failed")}function hy(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 fy(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 py(t,e){t&&("function"!=typeof t.setLoadError?t.loadError=e||new Error("Segment load failed"):t.setLoadError(e))}async function my(t,e,n){const i=N(ny,this,hy).call(this,e);try{const i=e.representations.map((async i=>{const r=N(ny,this,ry).call(this,i.url),o=await Gg(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(Bg(t,n))throw N(ny,this,fy).call(this,e,i),t;throw N(ny,this,py).call(this,e,t),t}}async function gy(t,e,n){const i=M(Hv,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=N(ny,this,hy).call(this,t);try{const i=N(ny,this,ry).call(this,s.url),r=await Gg(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(Bg(e,n))throw N(ny,this,fy).call(this,t,a),e;throw N(ny,this,py).call(this,t,e),e}}async function vy(t={}){const{signal:e,manifestOverride:n}=t;if(e&&e.aborted)throw Dg();N(ny,this,uy).call(this);try{let t=this.manifestRef;if(n&&"object"==typeof n){if(N(ny,this,sy).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=N(ny,this,ry).call(this,n.url);return{typeHint:n.typeHint,url:t,mimeType:n.mimeType,body:n.body,duration:M(Xv,this),width:M(Yv,this),height:M(Qv,this)}}"string"==typeof n.url&&n.url&&(t=n)}if(t&&"object"==typeof t&&"assets-delivery-service"===t.type){if(!M(Gv,this)||"function"!=typeof M(Gv,this).resolveOne)throw new Error("AssetsDeliveryService is required for assets-delivery-service manifestRef");const n=await M(Gv,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=N(ny,this,ry).call(this,n.url),o=n.mimeType,s=n.body;if(r||s||o)return{typeHint:i,url:r,mimeType:o,body:s,duration:M(Xv,this),width:M(Yv,this),height:M(Qv,this)};throw new Error("AssetsDeliveryService returned unsupported manifest shape")}if(t&&"object"==typeof t){const e=N(ny,this,ry).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=N(ny,this,ry).call(this,n),r="object"==typeof t?t.typeHint:void 0,o="object"==typeof t?t.mimeType:void 0;if("image"===Nv.inferType({typeHint:r,url:i,mimeType:o})){const e="object"==typeof t&&lg(t.duration)?t.duration:M(Xv,this);return{typeHint:"image",url:i,mimeType:o,duration:e,width:"object"==typeof t&&lg(t.width)?t.width:M(Yv,this),height:"object"==typeof t&&lg(t.height)?t.height:M(Qv,this)}}const s=await Gg(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){throw N(ny,this,dy).call(this,t),t}}async function yy(){const t=Wv.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=Vv(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 by(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}(M(ey,this),t)||(C(ey,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 ky(){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 xy(){if(!Array.isArray(this.tracks)||!this.tracks.length)return;const t=this.duration;if(!lg(t))return;const e=[new gv({name:"nodestart",timestamp:0,data:{id:this.id},isSticky:!0}),new gv({name:"nodeend",timestamp:t,data:{id:this.id}})],n=new kv({id:`${this.id}-auto-cue`,type:"cue",cues:e,offset:0,duration:t});this.tracks.push(n)}var wy=new WeakMap,_y=new WeakMap,Ty=new WeakMap,Iy=new WeakMap,Ey=new WeakSet;class Sy extends jc{constructor(...t){super(...t),O(this,Ey),F(this,wy,new Map),F(this,_y,new Map),F(this,Ty,void 0),F(this,Iy,void 0);const[e,n]=t;C(Ty,this,e),C(Iy,this,n)}get name(){return"NodeRepository"}get defaults(){return{enabledRepFilters:["containers","force-video-codec","media-capabilities"],disabledTracks:Qg("disabledTracks"),forceVideoCodec:Qg("forceVideoCodec"),forceImageFallback:Qg("forceImageFallback"),mediaHostRewriteMap:Qg("mediaHostRewriteMap"),maxManifestLoadAttempts:3}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"get","list"])}onDispose(){M(wy,this).forEach(((t,e)=>{const n=M(_y,this).get(e);n&&t&&"function"==typeof t.off&&t.off(jp.NODE_CHILDREN_CHANGED,n)})),M(_y,this).clear(),M(wy,this).clear()}add(t){const e=t instanceof iy?t:new iy(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:M(Ty,this),assetsDeliveryService:M(Iy,this)});if(!e.id)throw new Error("NodeRepository.add requires node with id");if(M(wy,this).has(e.id))throw new Error(`NodeRepository.add: node with id ${e.id} already exists`);return M(wy,this).set(e.id,e),N(Ey,this,Ny).call(this,e),this.trigger(jp.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 M(wy,this).get(e)}list(){return Array.from(M(wy,this).values())}}function Ny(t){if(!t||"function"!=typeof t.on||!t.id)return;const e=t=>{this.trigger(jp.NODE_CHILDREN_CHANGED,t)};t.on(jp.NODE_CHILDREN_CHANGED,e),M(_y,this).set(t.id,e)}var Ay=new WeakMap,My=new WeakMap,Fy=new WeakSet;class Cy extends jc{constructor(...t){super(...t),O(this,Fy),F(this,Ay,void 0),F(this,My,new Map);const[e]=t;C(Ay,this,e)}get name(){return"ABRSelector"}get defaults(){return{safetyMargin:.35,minBufferForUpgrade:5,minBufferCritical:1,hysteresisRatio:1.1,abrStrategy:Qg("abrStrategy")}}select(t={}){var e;const{representations:n=[],bufferSeconds:i}=t;if(!Array.isArray(n)||0===n.length)return;const r=M(Ay,this)&&"function"==typeof M(Ay,this).getKbps?M(Ay,this).getKbps():void 0,o=N(Fy,this,Oy).call(this,n[0]),s=M(My,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)=>N(Fy,this,Py).call(this,t.bandwidth)-N(Fy,this,Py).call(this,e.bandwidth)));if("bottom"===a){const e=l[0];return N(Fy,this,By).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 N(Fy,this,By).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 N(Fy,this,By).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=lg(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),N(Fy,this,By).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=>N(Fy,this,Py).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&&lg(e.bandwidth)&&lg(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 N(Fy,this,By).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(){M(My,this).clear(),C(Ay,this,null)}}function Oy(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 Py(t){return lg(t)?t/1e3:0}function Ry(t){return lg(t)?t/1e3:void 0}function Dy(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:N(Fy,this,Ry).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:N(Fy,this,Ry).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 By(t,e,n={}){if(!t)return;const i=N(Fy,this,Dy).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=N(Fy,this,Oy).call(this,t);M(My,this).set(r,t.id)}var Ly=new WeakMap,zy=new WeakSet;class Wy extends jc{constructor(...t){super(...t),O(this,zy),F(this,Ly,void 0);const[e]=t;if(C(Ly,this,e),!M(Ly,this)||"function"!=typeof M(Ly,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(){C(Ly,this,null)}getPrioritizationSnapshot(t){const e=M(Ly,this).list();if(!e.length)return{orderedIds:[],reachableIds:[]};const{levels:n,weights:i}=N(zy,this,Uy).call(this,e,t);return{orderedIds:N(zy,this,$y).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 Uy(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=lg(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 $y(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 jy(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 qy(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 Vy(t){return"string"==typeof t&&t.startsWith("cmaf:")}function Hy(t){return"image"===(null==t?void 0:t.assetType)?"image":"ivd"}function Gy(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 Ky=new WeakMap,Xy=new WeakMap,Yy=new WeakSet;class Qy extends jc{constructor(...t){super(...t),O(this,Yy),F(this,Ky,void 0),F(this,Xy,void 0);const[,e={}]=t;C(Ky,this,"function"==typeof e.fetchFn?e.fetchFn:void 0),C(Xy,this,Rg())}get name(){return"AssetsDeliveryService"}get defaults(){return{assetsDeliveryServiceUrl:"https://assets.eko.com",profile:Qg("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(!N(Yy,this,Zy).call(this,t))return;const e=jy(t,this.settings.profile),n=function(t,e,n){const i=(t||"").replace(/\/$/,""),r=null==e?void 0:e.assetId,o=null==e?void 0:e.assetRevision;if(!i||"string"!=typeof r||"number"!=typeof o)return;const s=`${i}/image/${encodeURIComponent(r)}/${o}`,a=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 a?`${s}?${a}`:s}(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=>N(Yy,this,Zy).call(this,t)));if(!n.length)return[];const i=N(Yy,this,Jy).call(this,e);if(i&&i.aborted)return[];const r=[],o=this.settings.profile;n.forEach((t=>{if("image"!==Hy(t))return;const e=this.resolveImageOne(t);e&&e.url&&r.push({manifestRef:qy(t,e.encodeProfile),manifest:{typeHint:"image",url:e.url}})}));const s=n.filter((t=>"image"!==Hy(t))).map((t=>function(t,e){const n=jy(t,e);return{ref:t,profile:n,route:Vy(n)?"dash":"ivd"}}(t,o))),a=N(Yy,this,eb).call(this,s);for(const{refs:t,route:e}of a){if(i&&i.aborted)return r;const{url:n}=N(Yy,this,nb).call(this,t,e),o=await N(Yy,this,ib).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:qy(t,e),manifest:Gy(i)})}))}return r}onDispose(){M(Xy,this)&&M(Xy,this).abort(),C(Xy,this,null),C(Ky,this,null)}}function Jy(t){return t&&t.signal?t.signal:M(Xy,this)?M(Xy,this).signal:void 0}function Zy(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 tb(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 eb(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=>{N(Yy,this,tb).call(this,t.refs,this.settings.maxBatchSize).forEach((e=>{n.push({route:t.route,refs:e})}))})),n}function nb(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 ib(t,e){return M(Ky,this)?M(Ky,this).call(this,t,e):await Gg(t,{returnType:"json",method:(null==e?void 0:e.method)||"GET",signal:null==e?void 0:e.signal})}function rb({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 ob=(Hc.requestAnimationFrame||Hc.mozRequestAnimationFrame||Hc.webkitRequestAnimationFrame||Hc.msRequestAnimationFrame||(t=>Hc.setTimeout(t,1e3/60))).bind(Hc),sb=(Hc.cancelAnimationFrame||Hc.mozCancelAnimationFrame||Hc.webkitCancelAnimationFrame||Hc.msCancelAnimationFrame||(t=>Hc.clearTimeout(t))).bind(Hc),ab=Dc("ticker","warn");let lb,cb=[],ub=null,db=Pg();function hb(){db=Pg();const t=[];let e,n;for(n=cb.length-1;n>=0;--n)e=cb[n],db>=e.lastTick+e.interval&&t.push(e);for(n=t.length-1;n>=0;--n)if(e=t[n],!e.stopped){e.lastTick=db;try{e.callback()}catch(t){console&&"function"==typeof console.error?console.error(t):ab.error(t)}}lb=ob(hb)}function fb(){Pg()-db>=200&&(sb(lb),hb())}function pb(t){let e=-1;for(let n=0;n<cb.length;n+=1)if(cb[n].callback===t){e=n;break}return e}function mb(t,e=0){if(!t||"function"!=typeof t||"number"!=typeof e||e<0)return void ab.error("[start] Invalid arguments given to start method.",arguments);const n=pb(t);return-1!==n?(ab.debug("[start] Callback already exists, overriding interval.",arguments),cb[n].interval=e,t):(cb.push({callback:t,interval:e,lastTick:Pg()}),1===cb.length&&(lb=ob(hb),ub||(ub=Hc.setInterval(fb,1e3))),t)}function gb(t){const e=pb(t);-1!==e?(cb[e].stopped=!0,cb.splice(e,1),cb.length||(sb(lb),Hc.clearInterval(ub),ub=null)):ab.debug("[stop] Callback not found, doing nothing.",arguments)}function vb(t){return-1!==pb(t)}function yb(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 ab.error("[createThrottler] Bad argument given to createThrottler, first argument must be a function.",arguments);ab.debug("[createThrottler] Creating a new throttler instance.",arguments);const s=[];function a(){ab.debug("[onThrottlerTick] Calling callback with "+s.length+" queued items.");const e=s.slice(0);s.length=0,gb(a),t(e)}const l={push:function(t){ab.debug("[push] Queuing argument:",t),0===s.length&&mb(a,e),s.push(t),o+=1,(o<=r||s.length>=i)&&a()},flush:function(){ab.debug("[flush] Flushing queue."),0!==s.length&&a()},dispose:function(){ab.debug("[dispose] Disposing of throttler.");const t=s.slice(0);return s.length=0,gb(a),t}};return Object.defineProperty(l,"interval",{enumerable:!0,get:function(){return e},set:function(t){"number"==typeof t&&(e=t)}}),l}function bb(t,e){if(t&&"function"==typeof t)return t.__tickerThrottler||(t.__tickerThrottler=yb((function(){t()}),e)),"number"==typeof e&&(t.__tickerThrottler.interval=e),t.__tickerThrottler.push(),t.__tickerThrottler;ab.error("[scheduleExecution] Bad argument given to scheduleExecution, first argument must be a function.",arguments)}var kb=new WeakMap,xb=new WeakMap,wb=new WeakMap,_b=new WeakMap,Tb=new WeakMap,Ib=new WeakMap,Eb=new WeakMap,Sb=new WeakMap,Nb=new WeakMap,Ab=new WeakMap,Mb=new WeakMap,Fb=new WeakMap,Cb=new WeakMap,Ob=new WeakMap,Pb=new WeakMap,Rb=new WeakMap,Db=new WeakSet;class Bb extends jc{constructor(...t){super(...t),O(this,Db),F(this,kb,void 0),F(this,xb,void 0),F(this,wb,void 0),F(this,_b,void 0),F(this,Tb,[]),F(this,Ib,[]),F(this,Eb,new Set),F(this,Sb,new Set),F(this,Nb,!1),F(this,Ab,void 0),F(this,Mb,void 0),F(this,Fb,void 0),F(this,Cb,void 0),F(this,Ob,void 0),F(this,Pb,void 0),F(this,Rb,void 0);const[e,n,i,r]=t;C(kb,this,e),C(xb,this,n),C(wb,this,i),C(_b,this,r),C(Ab,this,Rg());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),C(Rb,this,(()=>N(Db,this,Kb).call(this))),N(Db,this,Ub).call(this),N(Db,this,Wb).call(this)}get name(){return"NodeResolver"}get defaults(){return{maxConcurrent:5}}onDispose(){var t;M(Ab,this)&&M(Ab,this).abort(),C(Ab,this,null),M(_b,this)&&"function"==typeof M(_b,this).off&&M(Fb,this)&&M(_b,this).off(jp.PLACEMENT_ADDED,M(Fb,this)),M(_b,this)&&"function"==typeof M(_b,this).off&&M(Pb,this)&&M(_b,this).off(jp.TIMELINE_RESET,M(Pb,this)),M(kb,this)&&"function"==typeof M(kb,this).off&&M(Cb,this)&&M(kb,this).off(jp.NODE_ADD,M(Cb,this)),M(kb,this)&&"function"==typeof M(kb,this).off&&M(Ob,this)&&M(kb,this).off(jp.NODE_CHILDREN_CHANGED,M(Ob,this)),C(Fb,this,null),C(Cb,this,null),C(Ob,this,null),C(Pb,this,null),C(Tb,this,[]),C(Ib,this,[]),M(Eb,this).clear(),M(Sb,this).clear(),C(Nb,this,!1),C(Mb,this,void 0),null!==(t=M(Rb,this))&&void 0!==t&&t.__tickerThrottler&&M(Rb,this).__tickerThrottler.dispose(),C(Rb,this,null)}}function Lb(){return M(Ab,this)?M(Ab,this).signal:void 0}function zb(){return this._disposed||M(Ab,this)&&M(Ab,this).signal.aborted}function Wb(){M(_b,this)&&"function"==typeof M(_b,this).on&&(C(Fb,this,(t=>{N(Db,this,jb).call(this,null==t?void 0:t.nodeId)})),M(_b,this).on(jp.PLACEMENT_ADDED,M(Fb,this)),C(Pb,this,(()=>N(Db,this,$b).call(this))),M(_b,this).on(jp.TIMELINE_RESET,M(Pb,this))),M(kb,this)&&"function"==typeof M(kb,this).on&&(C(Cb,this,(({node:t})=>{(null==t?void 0:t.id)&&N(Db,this,jb).call(this,t.id,{fromRepoAdd:!0})})),M(kb,this).on(jp.NODE_ADD,M(Cb,this)),C(Ob,this,(()=>{bb(M(Rb,this),100)})),M(kb,this).on(jp.NODE_CHILDREN_CHANGED,M(Ob,this)))}function Ub(){const t=M(_b,this)&&Array.isArray(M(_b,this).placements)?M(_b,this).placements:[];t.forEach((t=>N(Db,this,jb).call(this,t.nodeId)));const e=t.length?t[t.length-1]:void 0;e&&e.nodeId&&C(Mb,this,e.nodeId)}function $b(){M(Ab,this)&&M(Ab,this).abort(),C(Ab,this,Rg()),C(Tb,this,[]),C(Ib,this,[]),M(Eb,this).clear(),C(Nb,this,!1),C(Mb,this,void 0)}function jb(t,{fromRepoAdd:e=!1}={}){N(Db,this,zb).call(this)||t&&(M(Sb,this).has(t)||M(Eb,this).has(t)||(M(Tb,this).push(t),M(Mb,this)||e||C(Mb,this,t),!M(Nb,this)&&e||N(Db,this,qb).call(this)))}function qb(){if(M(Nb,this))return void N(Db,this,Vb).call(this);if(0===M(Tb,this).length)return;C(Nb,this,!0);const t=M(Tb,this).shift();N(Db,this,Xb).call(this,t).finally((()=>{N(Db,this,Vb).call(this)}))}async function Vb(){if(!N(Db,this,zb).call(this))for(M(Tb,this).length||M(Ib,this).length||C(Ib,this,N(Db,this,Hb).call(this));M(Eb,this).size<this.settings.maxConcurrent;){const t=this.settings.maxConcurrent-M(Eb,this).size;if(t<=0)break;const e=[];for(;e.length<t&&(M(Tb,this).length||M(Ib,this).length);){let t=M(Tb,this).shift();t||(t=M(Ib,this).shift()),t&&e.push(t)}if(!e.length)break;const n=N(Db,this,Yb).call(this,e);n.length&&M(wb,this)&&"function"==typeof M(wb,this).resolve&&N(Db,this,Qb).call(this,n).finally((()=>N(Db,this,Vb).call(this))),e.filter((t=>!n.find((e=>e.nodeId===t)))).forEach((t=>{N(Db,this,Xb).call(this,t).finally((()=>N(Db,this,Vb).call(this)))}))}}function Hb(){const t=new Set([...M(Sb,this),...M(Eb,this),...M(Tb,this)]);return N(Db,this,Gb).call(this,t)}function Gb(t){const e=M(_b,this)&&Array.isArray(M(_b,this).placements)?M(_b,this).placements:[],n=(e.length?e[e.length-1].nodeId:void 0)||M(Mb,this);return rb({prioritizer:M(xb,this),repository:M(kb,this),startNodeId:n,pendingIds:t,fallbackToRepository:!1})}function Kb(){N(Db,this,zb).call(this)||(M(Nb,this)||0!==M(Tb,this).length)&&(C(Ib,this,N(Db,this,Hb).call(this)),M(Nb,this)&&N(Db,this,Vb).call(this))}async function Xb(t,e){if(!t||M(Sb,this).has(t)||M(Eb,this).has(t))return;const n=N(Db,this,Lb).call(this);if(n&&n.aborted)return;const i=M(kb,this)&&"function"==typeof M(kb,this).get?M(kb,this).get(t):void 0;if(i&&"function"==typeof i.resolve)if("function"==typeof i.hasExceededManifestLoadAttempts&&i.hasExceededManifestLoadAttempts())M(Sb,this).add(t);else{M(Eb,this).add(t);try{const r={signal:n};e&&(r.manifestOverride=e),await i.resolve(r),M(Sb,this).add(t)}catch(e){if(Bg(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()&&M(Sb,this).add(t)}finally{M(Eb,this).delete(t)}}}function Yb(t){const e=[];return t.forEach((t=>{const n=M(kb,this)&&"function"==typeof M(kb,this).get?M(kb,this).get(t):void 0;n&&n.manifestRef&&"assets-delivery-service"===n.manifestRef.type&&e.push({nodeId:t,ref:n.manifestRef})})),e}async function Qb(t){const e=N(Db,this,Lb).call(this);if(!e||!e.aborted){t.forEach((({nodeId:t})=>M(Eb,this).add(t)));try{const n=t.map((t=>t.ref)),i=await M(wb,this).resolve(n,{signal:e});t.forEach((({nodeId:t,ref:e})=>{var n;const r=M(kb,this)&&"function"==typeof M(kb,this).get?M(kb,this).get(t):void 0;if(M(Eb,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?N(Db,this,Jb).call(this,o.manifest,s):void 0;N(Db,this,Xb).call(this,t,a)}))}catch(n){Bg(n,e)||this.log.warn(`NodeResolver ADS batch failed: ${(null==n?void 0:n.message)||n}`),t.forEach((({nodeId:t})=>M(Eb,this).delete(t)))}}}function Jb(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 Zb=.001,tk="priority";function ek(t){const e=Number(t);return Number.isFinite(e)?e:0}var nk=new WeakMap,ik=new WeakMap,rk=new WeakMap,ok=new WeakMap,sk=new WeakMap,ak=new WeakMap,lk=new WeakMap,ck=new WeakMap,uk=new WeakMap,dk=new WeakMap,hk=new WeakMap,fk=new WeakMap,pk=new WeakMap,mk=new WeakMap,gk=new WeakMap,vk=new WeakMap,yk=new WeakMap,bk=new WeakMap,kk=new WeakMap,xk=new WeakSet;class wk extends jc{constructor(...t){super(...t),O(this,xk),F(this,nk,void 0),F(this,ik,void 0),F(this,rk,void 0),F(this,ok,new Map),F(this,sk,new Map),F(this,ak,[]),F(this,lk,new Set),F(this,ck,new Map),F(this,uk,!1),F(this,dk,void 0),F(this,hk,void 0),F(this,fk,void 0),F(this,pk,void 0),F(this,mk,void 0),F(this,gk,void 0),F(this,vk,void 0),F(this,yk,!1),F(this,bk,[]),F(this,kk,void 0);const[e,n,i]=t;C(nk,this,e),C(ik,this,n),C(rk,this,i),C(hk,this,Rg()),C(kk,this,(()=>N(xk,this,Jk).call(this))),N(xk,this,Ok).call(this)}get name(){return"SegmentLoadCoordinator"}get defaults(){return{maxConcurrentLoads:3,maxSegmentLoadAttempts:3}}onDispose(){var t;M(hk,this)&&M(hk,this).abort(),C(hk,this,null),M(ck,this).size&&M(ck,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),M(ck,this).clear(),M(rk,this)&&"function"==typeof M(rk,this).off&&(M(fk,this)&&M(rk,this).off(jp.PLACEMENT_ADDED,M(fk,this)),M(mk,this)&&M(rk,this).off(jp.TIMELINE_SEEKING,M(mk,this)),M(gk,this)&&M(rk,this).off(jp.TIMELINE_SEEKED,M(gk,this)),M(vk,this)&&M(rk,this).off(jp.TIMELINE_RESET,M(vk,this))),M(nk,this)&&"function"==typeof M(nk,this).off&&M(pk,this)&&M(nk,this).off(jp.NODE_CHILDREN_CHANGED,M(pk,this)),C(fk,this,null),C(pk,this,null),C(mk,this,null),C(gk,this,null),C(vk,this,null),M(ok,this).clear(),M(sk,this).clear(),C(ak,this,[]),M(lk,this).clear(),M(ck,this).clear(),C(uk,this,!1),C(dk,this,void 0),C(yk,this,!1),C(bk,this,[]),null!==(t=M(kk,this))&&void 0!==t&&t.__tickerThrottler&&M(kk,this).__tickerThrottler.dispose(),C(kk,this,null)}}function _k(){return M(hk,this)?M(hk,this).signal:void 0}function Tk(){return this._disposed||M(hk,this)&&M(hk,this).signal.aborted}function Ik(){const t=Number(this.settings.maxSegmentLoadAttempts);return Number.isFinite(t)&&t>0?t:1/0}function Ek(t){const e=N(xk,this,Ik).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 Sk(t){if(!t)return!1;if(N(xk,this,Ek).call(this,t))return!0;if("boolean"==typeof t.isLoaded)return t.isLoaded;const e=Number(t.retainedByteLength);return Number.isFinite(e)&&e>0}function Nk(t,{allowSeekKeep:e=!1,segmentOffset:n}={}){const i=Rg(),r=i?i.signal:N(xk,this,_k).call(this);return t&&M(ck,this).set(t,{controller:i,allowSeekKeep:!!e,segmentOffset:n}),{signal:r,controller:i}}function Ak(t,e,n={}){const i=M(ck,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 Mk(t,e){const n=M(ck,this).get(t);n&&(e&&n.controller!==e||M(ck,this).delete(t))}function Fk(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=M(nk,this)&&"function"==typeof M(nk,this).get?M(nk,this).get(i):void 0;if(!r)return;const o=N(xk,this,$k).call(this,r,t,e);Number.isFinite(o)&&n.add(`${i}:${o}`)})),n}function Ck(t){M(ck,this).size&&M(ck,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 Ok(){M(rk,this)&&"function"==typeof M(rk,this).on&&(C(fk,this,(t=>{N(xk,this,Bk).call(this,t)})),M(rk,this).on(jp.PLACEMENT_ADDED,M(fk,this)),C(mk,this,(t=>N(xk,this,Pk).call(this,t))),M(rk,this).on(jp.TIMELINE_SEEKING,M(mk,this)),C(gk,this,(t=>N(xk,this,Rk).call(this,t))),M(rk,this).on(jp.TIMELINE_SEEKED,M(gk,this)),C(vk,this,(()=>N(xk,this,Dk).call(this))),M(rk,this).on(jp.TIMELINE_RESET,M(vk,this))),M(nk,this)&&"function"==typeof M(nk,this).on&&(C(pk,this,(()=>{bb(M(kk,this),100)})),M(nk,this).on(jp.NODE_CHILDREN_CHANGED,M(pk,this)))}function Pk(t={}){if(N(xk,this,Tk).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=N(xk,this,Fk).call(this,n,e);N(xk,this,Ck).call(this,i),C(yk,this,!0),C(bk,this,n.map((t=>{const n=null==t?void 0:t.nodeId;if(n)return{nodeId:n,placement:t,targetTime:e}})).filter(Boolean)),setTimeout((()=>N(xk,this,zk).call(this)),0)}function Rk(t={}){var e,n;if(N(xk,this,Tk).call(this))return;C(yk,this,!1),C(bk,this,[]);const i=Number.isFinite(null==t?void 0:t.targetTime)?Number(t.targetTime):Number(null===(e=M(rk,this))||void 0===e?void 0:e.currentTime);(Array.isArray(null===(n=M(rk,this))||void 0===n?void 0:n.placements)?M(rk,this).placements:[]).forEach((t=>{if(!t)return;const e=Hf(t);if(Number.isFinite(e)){if(Number.isFinite(i)){if(e>=i)return void N(xk,this,Bk).call(this,t);const n=qf(t,M(nk,this));return Number.isFinite(n)?void(e+n>i&&N(xk,this,Bk).call(this,t)):void(e<=i&&N(xk,this,Bk).call(this,t))}N(xk,this,Bk).call(this,t)}})),setTimeout((()=>N(xk,this,zk).call(this)),0)}function Dk(){M(hk,this)&&M(hk,this).abort(),C(hk,this,Rg()),M(ck,this).size&&M(ck,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),M(ck,this).clear(),M(ok,this).clear(),M(sk,this).clear(),C(ak,this,[]),M(lk,this).clear(),C(uk,this,!1),C(dk,this,void 0),C(yk,this,!1),C(bk,this,[])}function Bk(t){if(N(xk,this,Tk).call(this))return;const e=null==t?void 0:t.nodeId;if(!e)return;const n=M(ok,this).get(e);if(n){const i=Hf(n),r=Hf(t);Number.isFinite(i)?Number.isFinite(r)&&r<i&&M(ok,this).set(e,t):Number.isFinite(r)&&M(ok,this).set(e,t)}else M(ok,this).set(e,t);const i=M(dk,this);C(dk,this,e),i&&i!==e&&C(ak,this,[]),M(uk,this)?setTimeout((()=>N(xk,this,zk).call(this)),0):N(xk,this,Lk).call(this)}function Lk(){M(uk,this)||M(ok,this).size&&(C(uk,this,!0),N(xk,this,zk).call(this))}async function zk(){if(N(xk,this,Tk).call(this))return;if(M(lk,this).size>=this.settings.maxConcurrentLoads)return;if(M(yk,this))return void(M(bk,this).length&&N(xk,this,Wk).call(this));const t=N(xk,this,Vk).call(this);if(t.hasPending)N(xk,this,Hk).call(this,t);else for(M(ak,this).length||C(ak,this,N(xk,this,Yk).call(this));M(lk,this).size<this.settings.maxConcurrentLoads&&M(ak,this).length;){const t=M(ak,this).shift();N(xk,this,Zk).call(this,t,"partial").finally((()=>{setTimeout((()=>N(xk,this,zk).call(this)),0)}))}}function Wk(){if(N(xk,this,Tk).call(this))return;const t=Math.max(0,this.settings.maxConcurrentLoads-M(lk,this).size);if(!t||!M(bk,this).length)return;const e=[],n=[];for(let i=0;i<M(bk,this).length;i+=1){const r=M(bk,this)[i];(null==r?void 0:r.nodeId)&&(e.length<t&&!M(lk,this).has(r.nodeId)?e.push(r):n.push(r))}C(bk,this,n),e.forEach((t=>{N(xk,this,Uk).call(this,t).finally((()=>{setTimeout((()=>N(xk,this,zk).call(this)),0)}))}))}async function Uk(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(M(lk,this).has(e))return;const{signal:r,controller:o}=N(xk,this,Nk).call(this,e);if(r&&r.aborted)N(xk,this,Mk).call(this,e,o);else{M(lk,this).add(e);try{const t=M(nk,this)&&"function"==typeof M(nk,this).get?M(nk,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=N(xk,this,$k).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}`),N(xk,this,Ak).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){Bg(t,r)||this.log.warn(`[#loadSeekWork] SegmentLoadCoordinator failed to seek-load node ${e}: ${(null==t?void 0:t.message)||t}`)}finally{M(lk,this).delete(e),N(xk,this,Mk).call(this,e,o)}}}function $k(t,e,n){var i;const r=Hf(e);if(!Number.isFinite(r))return;const o=ek(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=ek(null===(i=l)||void 0===i?void 0:i.offset),d=yv(c,Math.max(0,s-u),{preferRepresentationTime:!0}),h=Number(null==d?void 0:d.offset);return Number.isFinite(h)?h:void 0}function jk(t,e,n=(t=>null===(t=M(rk,this))||void 0===t?void 0:t.currentTime)()){var i;const r=(Array.isArray(null===(i=M(rk,this))||void 0===i?void 0:i.placements)?M(rk,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(Hf(e)))).sort(((t,e)=>Hf(t)-Hf(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=Hf(e);if(!Number.isFinite(n))continue;const i=qf(e,M(nk,this)),l=Number.isFinite(i)&&i>=0;(!a&&n>=o-Zb&&(a=e),l)?o+Zb>=n&&o<n+i-Zb&&(s=e):o+Zb>=n&&(s=e)}return s||a||r[r.length-1]}function qk(t,e){var n;const i=Number(Hf(e));if(!Number.isFinite(i))return;const r=qf(e,M(nk,this)),o=Number.isFinite(r)&&r>=0?i+r:void 0,s=(Array.isArray(null===(n=M(rk,this))||void 0===n?void 0:n.placements)?M(rk,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(Hf(e)))).sort(((t,e)=>Hf(t)-Hf(e)));for(let t=0;t<s.length;t+=1){const e=s[t],n=Number(Hf(e));if(Number.isFinite(n)&&!(n<=i+Zb)){if(Number.isFinite(o)&&n>o+Zb)return;return e}}}function Vk(){const t=[];let e=!1,n=1/0;if(M(ok,this).forEach(((i,r)=>{if(!r||!i)return;const o=M(sk,this).get(r);if(o)return e=!0,void(n=Math.min(n,ek(o.timelineStart)));const s=N(xk,this,Gk).call(this,r,i);s&&(e=!0,n=Math.min(n,ek(s.timelineStart)),t.push(s))})),!e||!Number.isFinite(n))return{hasPending:!1,waveTime:void 0,startable:[]};const i=t.filter((t=>ek(t.timelineStart)===n&&!M(lk,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 Hk({waveTime:t,startable:e}){const n=Math.max(0,this.settings.maxConcurrentLoads-M(lk,this).size);n&&e.length&&e.slice(0,n).forEach((e=>{N(xk,this,Xk).call(this,e,t).finally((()=>{setTimeout((()=>N(xk,this,zk).call(this)),0)}))}))}function Gk(t,e){var n,i;const r=M(nk,this)&&"function"==typeof M(nk,this).get?M(nk,this).get(t):void 0;if(!r)return;if("function"==typeof r.hasExceededManifestLoadAttempts&&r.hasExceededManifestLoadAttempts())return void M(ok,this).delete(t);const o=N(xk,this,jk).call(this,t,e,null===(n=M(rk,this))||void 0===n?void 0:n.currentTime),s=Number(Hf(o)),a=ek(null===(i=M(rk,this))||void 0===i?void 0:i.currentTime),l="function"==typeof r.loadMediaSegmentsAtOffset,c="function"==typeof r.load;if(!l&&!c)return void M(ok,this).delete(t);if(r.isLoaded)return void M(ok,this).delete(t);if("ready"!==r.state){if(!Number.isFinite(s))return;return{nodeId:t,segmentOffset:0,timelineStart:s}}if(!N(xk,this,tx).call(this,r))return void M(ok,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&&!N(xk,this,Sk).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/Zb)*Zb;h.add(t)}}))}));const f=Array.from(h).sort(((t,e)=>t-e)),p=e=>{const n=Number(Hf(e));if(!Number.isFinite(n))return{status:"none"};const i=ek(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+Zb;t+=1)s=t;const l=f.slice(s);if(!l.some((t=>N(xk,this,Kk).call(this,r,t))))return{status:f.slice(0,s).some((t=>N(xk,this,Kk).call(this,r,t)))?"beforeOnly":"none"};const c=l.find((t=>N(xk,this,Kk).call(this,r,t))),u=Math.max(0,ek(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};M(ok,this).delete(t)}else{const e=N(xk,this,qk).call(this,t,o);if(e){const t=p(e);if("work"===t.status)return t.work}}}function Kk(t,e){const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],i=ek(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)<=Zb&&!N(xk,this,Sk).call(this,t)}))))}async function Xk(t,e){const n=null==t?void 0:t.nodeId,i=null==t?void 0:t.segmentOffset;if(this.log.debug(`[#loadP0Work] Loading ${tk} node [${n}] at segmentOffset=${i} wave=${e}`),!n)return;const r=M(nk,this)&&"function"==typeof M(nk,this).get?M(nk,this).get(n):void 0;if(!r)return void M(ok,this).delete(n);const o="function"==typeof r.loadMediaSegmentsAtOffset&&Number.isFinite(i),{signal:s,controller:a}=N(xk,this,Nk).call(this,n,{allowSeekKeep:o,segmentOffset:i});if(s&&s.aborted)N(xk,this,Mk).call(this,n,a);else{M(lk,this).add(n),M(sk,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(Bg(t,s))return;const e=`[#loadP0Work] SegmentLoadCoordinator failed to load ${tk} work for node ${n}: ${(null==t?void 0:t.message)||t}`;this.log.warn(e)}finally{this.log.debug(`[#loadP0Work] Finished ${tk} work for node [${n}]`),M(sk,this).delete(n),M(lk,this).delete(n),N(xk,this,Mk).call(this,n,a)}}}function Yk(){const t=new Set([...M(ok,this).keys(),...M(lk,this)]),e=N(xk,this,Qk).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&&N(xk,this,ex).call(this,t));if(i){const e=rb({prioritizer:M(ik,this),repository:M(nk,this),startNodeId:M(dk,this),prioritizedIds:n,pendingIds:t,allowedIds:i,filter:r});if(e.length)return e}return rb({prioritizer:M(ik,this),repository:M(nk,this),startNodeId:M(dk,this),prioritizedIds:n,pendingIds:t,filter:r})}function Qk(){return M(ik,this)&&M(dk,this)?"function"==typeof M(ik,this).getPrioritizationSnapshot?M(ik,this).getPrioritizationSnapshot(M(dk,this)):{orderedIds:"function"==typeof M(ik,this).sortNodes?M(ik,this).sortNodes(M(dk,this)):[],reachableIds:"function"==typeof M(ik,this).getReachableNodeIds?M(ik,this).getReachableNodeIds(M(dk,this)):[]}:null}function Jk(){N(xk,this,Tk).call(this)||(M(uk,this)||M(ok,this).size)&&(C(ak,this,N(xk,this,Yk).call(this)),M(uk,this)&&!M(yk,this)&&N(xk,this,zk).call(this))}async function Zk(t,e){if(this.log.debug(`[#loadNode] Loading node [${t}] in '${e}' mode`),!t)return;const n=M(nk,this)&&"function"==typeof M(nk,this).get?M(nk,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}=N(xk,this,Nk).call(this,t,{allowSeekKeep:!1});if(i&&i.aborted)N(xk,this,Mk).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&&N(xk,this,ex).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: partial already loaded`);if(!N(xk,this,tx).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: no loadable tracks`);M(lk,this).add(t),await n.load({loadingMode:e,signal:i})}catch(e){if(Bg(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}]`),M(lk,this).delete(t),N(xk,this,Mk).call(this,t,r)}}function tx(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 ex(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&&!N(xk,this,Sk).call(this,n)||i&&!N(xk,this,Sk).call(this,i))}))}class nx extends jc{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 ix(t){if(!t)throw new Error("Assertion failed.")}const rx=t=>t&&t[t.length-1],ox=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)},sx=t=>t.constructor===Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),ax=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),lx=new TextDecoder,cx=t=>Object.fromEntries(Object.entries(t).map((([t,e])=>[e,t]))),ux={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},dx=cx(ux),hx={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},fx=cx(hx),px={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},mx=cx(px),gx=t=>[...t].map((t=>t.toString(16).padStart(2,"0"))).join(""),vx=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,yx=(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},bx=(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},kx=()=>{let t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}},xx=(t,e,n)=>t.getUint8(e)<<16|t.getUint8(e+1)<<8|t.getUint8(e+2),wx=(t,e,n)=>Math.max(e,Math.min(n,t)),_x=/^[a-z]{3}$/,Tx=1e6*(1+Number.EPSILON);let Ix=null;let Ex=null;const Sx=()=>{if(null!==Ex)return Ex;if("undefined"==typeof navigator)return null;const t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?Ex=Number(t[1]):null},Nx=t=>"number"==typeof t&&!Number.isNaN(t);class Ax{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 Mx={default:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1};class Fx{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 Fx(this.bytes);return t.pos=this.pos,t}}const Cx=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Ox=[-1,1,2,3,4,5,6,8],Px=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");const e=new Fx(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<Cx.length&&(r=Cx[i]);const o=e.readBits(4);let s=null;return o>=1&&o<=7&&(s=Ox[o]),{objectType:n,frequencyIndex:i,sampleRate:r,channelConfiguration:o,numberOfChannels:s}},Rx=["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"],Dx=[{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}],Bx=t=>{const{codec:e,codecDescription:n,colorSpace:i,avcCodecInfo:r,hevcCodecInfo:o,vp9CodecInfo:s,av1CodecInfo:a}=t;if("avc"===e){if(ix(null!==t.avcType),r){const e=new Uint8Array([r.avcProfileIndication,r.profileCompatibility,r.avcLevelIndication]);return`avc${t.avcType}.${gx(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}.${gx(n.subarray(1,4))}`}if("hevc"===e){let t,e,i,r,s,a;if(o)t=o.generalProfileSpace,e=o.generalProfileIdc,i=vx(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=ax(n),l=o.getUint8(1);t=l>>6&3,e=31&l,i=vx(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=rx(Dx).level;for(const t of Dx)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=rx(Dx).level;for(const t of Dx)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?ux[i.primaries]:1,u=null!=i&&i.transfer?hx[i.transfer]:1,d=null!=i&&i.matrix?px[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}'.`)},Lx=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:Px(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&&Rx.includes(e))return e;throw new TypeError(`Unhandled codec '${e}'.`)},zx=/^pcm-([usf])(\d+)+(be)?$/,Wx=[48e3,44100,32e3],Ux=[24e3,22050,16e3];var $x,jx;!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"}($x||($x={})),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"}(jx||(jx={}));const qx=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})},Vx=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=xx(i,n):(ix(4===e),t=i.getUint32(n,!1)),n+=e,yield{offset:n,length:t},n+=t}},Hx=t=>31&t,Gx=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)},Kx=t=>t>>1&63,Xx=function*(t){const e=new Fx(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);ix(e.pos%8==0),yield{type:i,data:t.subarray(e.pos/8,e.pos/8+s)},e.skipBits(8*s)}};var Yx;!function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"}(Yx||(Yx={}));const Qx=[2,1,2,3,3,4,4,5];class Jx{constructor(t){this.input=t}}const Zx=[],tw=[],ew=new Uint8Array(0);class nw{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===ew&&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===ew}get microsecondTimestamp(){return Math.trunc(Tx*this.timestamp)}get microsecondDuration(){return Math.trunc(Tx*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 nw(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 nw(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 iw=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.")},rw=t=>{if(!Nx(t))throw new TypeError("timestamp must be a number.")},ow=(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 sw{constructor(t){if(!(t instanceof aw))throw new TypeError("track must be an InputTrack.");this._track=t}getFirstPacket(t={}){if(iw(t),this._track.input._disposed)throw new Ow;return ow(this._track,this._track._backing.getFirstPacket(t),t)}async getFirstKeyPacket(t={}){iw(t);const e=await this.getFirstPacket(t);return e?"key"===e.type?e:this.getNextKeyPacket(e,t):null}getPacket(t,e={}){if(rw(t),iw(e),this._track.input._disposed)throw new Ow;return ow(this._track,this._track._backing.getPacket(t,e),e)}getNextPacket(t,e={}){if(!(t instanceof nw))throw new TypeError("packet must be an EncodedPacket.");if(iw(e),this._track.input._disposed)throw new Ow;return ow(this._track,this._track._backing.getNextPacket(t,e),e)}async getKeyPacket(t,e={}){if(rw(t),iw(e),this._track.input._disposed)throw new Ow;if(!e.verifyKeyPackets)return this._track._backing.getKeyPacket(t,e);const n=await this._track._backing.getKeyPacket(t,e);return n?(ix("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 nw))throw new TypeError("packet must be an EncodedPacket.");if(iw(e),this._track.input._disposed)throw new Ow;if(!e.verifyKeyPackets)return this._track._backing.getNextKeyPacket(t,e);const n=await this._track._backing.getNextKeyPacket(t,e);return n?(ix("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 nw))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 nw))throw new TypeError("endPacket must be an EncodedPacket.");if(iw(n),this._track.input._disposed)throw new Ow;const i=[];let{promise:r,resolve:o}=kx(),{promise:s,resolve:a}=kx(),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}=kx()),await s):(i.push(u),o(),({promise:r,resolve:o}=kx()),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 Ow;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 aw{constructor(t,e){this.input=t,this._backing=e}isVideoTrack(){return this instanceof lw}isAudioTrack(){return this instanceof cw}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 sw(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 lw extends aw{constructor(t,e){super(t,e),this._backing=e,this.pixelAspectRatio=(t=>{ix(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 ix(null!==e),Zx.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 nw))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 ix(e),((t,e,n)=>{switch(t){case"avc":for(const t of((t,e)=>{if(e.description){const n=3&sx(e.description)[4];return Vx(t,n+1)}return qx(t)})(n,e)){const e=n[t.offset],r=Hx(e);if(r>=$x.NON_IDR_SLICE&&r<=$x.SLICE_DPC)return"delta";if(r===$x.IDR)return"key";if(r===$x.SEI&&(i=void 0,!(null!==Ix?Ix:Ix=!("undefined"==typeof navigator||(null===(i=navigator.vendor)||void 0===i||!i.includes("Google Inc"))&&!/Chrome/.test(navigator.userAgent)))||Sx()>=144)){const e=n.subarray(t.offset,t.offset+t.length),i=Gx(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 Fx(i);t.pos=8*r;const e=ox(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&sx(e.description)[21];return Vx(t,n+1)}return qx(t)})(n,e)){const e=Kx(n[t.offset]);if(e<jx.BLA_W_LP)return"delta";if(e<=jx.RSV_IRAP_VCL23)return"key"}return"delta";case"vp8":return 1&n[0]?"delta":"key";case"vp9":{const t=new Fx(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 Xx(n))if(1===e){const e=new Fx(i);e.skipBits(4),t=!!e.readBits(1)}else if(3===e||6===e||7===e){if(t)return"key";const e=new Fx(i);return e.readBits(1)?null:0===e.readBits(2)?"key":"delta"}return null}default:(t=>{throw new Error(`Unexpected value: ${t}`)})(t),ix(!1)}var i})(this.codec,e,t.data)}}class cw extends aw{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 ix(null!==e),tw.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 nw))throw new TypeError("packet must be an EncodedPacket.");return null===this.codec?null:"key"}}const uw=t=>{let e=$w(t);const n=Gw(t,4);let i=8;1===e&&(e=qw(t),i=16);const r=e-i;return r<0?null:{name:n,totalSize:e,headerSize:i,contentSize:r}},dw=t=>jw(t)/65536,hw=t=>jw(t)/1073741824,fw=t=>{let e=0;for(let n=0;n<4;n++){e<<=7;const n=Lw(t);if(e|=127&n,!(128&n))break}return e},pw=t=>{let e=zw(t);return t.skip(2),e=Math.min(e,t.remainingLength),lx.decode(Bw(t,e))},mw=t=>{const e=uw(t);if(!e||"data"!==e.name)return null;if(t.remainingLength<8)return null;const n=$w(t);t.skip(4);const i=Bw(t,e.contentSize-8);switch(n){case 1:return lx.decode(i);case 2:return new TextDecoder("utf-16be").decode(i);case 13:return new Ax(i,"image/jpeg");case 14:return new Ax(i,"image/png");case 27:return new Ax(i,"image/bmp");default:return i}};class gw extends Jx{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=uw(e);if(!i)break;if("ftyp"===i.name){const t=Gw(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),ix(t);const e=$w(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=uw(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,ix(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&&Rx.includes(t.info.codec)&&0===n.sampleCompositionTimeOffsets.length){var r;ix("audio"===(null===(r=t.info)||void 0===r?void 0:r.type));const e=(t=>{if(ix(Rx.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=zx.exec(t);let n;return ix(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=bx(n.sampleTimingEntries,a,(t=>t.startIndex)),u=n.sampleTimingEntries[c],d=bx(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=rx(i);m&&m.delta===p?m.count++:i.push({startIndex:s.startChunkIndex+r,startDecodeTimestamp:f,count:1,delta:p});const g=s.samplesPerChunk*e.sampleSize*t.info.numberOfChannels;o.push(g)}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),ix(n);const i=uw(n);ix("moof"===(null==i?void 0:i.name));let r=this.reader.requestSlice(t,i.totalSize);r instanceof Promise&&(r=await r),ix(r),this.traverseBox(r);const o=this.lastReadFragment;ix(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)Tw(t,i.timestamp);else{const e=bx(n,o.moofOffset-1,(t=>t.moofOffset));if(-1!==e){const i=n[e];Tw(t,i.endTimestamp)}}t.startTimestampIsFinal=!0}const i=bx(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=uw(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,g,v,y,b,k,x,w,_,T,I,E,S,N,A,M,F,C,O,P,R,D;const B=t.filePos,L=uw(t);if(!L)return!1;const z=t.filePos,W=B+L.totalSize;switch(L.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"wave":this.readContiguousBoxes(t.slice(z,L.contentSize));break;case"mvhd":{const e=Lw(t);t.skip(3),1===e?(t.skip(16),this.movieTimescale=$w(t),this.movieDurationInTimescale=qw(t)):(t.skip(8),this.movieTimescale=$w(t),this.movieDurationInTimescale=$w(t))}break;case"trak":{const e={id:-1,demuxer:this,inputTrack:null,disposition:{...Mx},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,L.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 lw(this.input,new yw(t)),this.tracks.push(e)}else if("audio"===e.info.type&&-1!==e.info.numberOfChannels){const t=e;e.inputTrack=new cw(this.input,new bw(t)),this.tracks.push(e)}this.currentTrack=null}break;case"tkhd":{const e=this.currentTrack;if(!e)break;const n=Lw(t),i=!!(1&Ww(t));if(e.disposition.default=i,0===n)t.skip(8),e.id=$w(t),t.skip(4),e.durationInMovieTimescale=$w(t);else{if(1!==n)throw new Error(`Incorrect track header version ${n}.`);t.skip(16),e.id=$w(t),t.skip(4),e.durationInMovieTimescale=qw(t)}t.skip(16);const r=[dw(t),dw(t),hw(t),dw(t),dw(t),hw(t),dw(t),dw(t),hw(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}.`)})((Ct=Iw(r),90*Math.round(Ct/90)));ix(0===o||90===o||180===o||270===o),e.rotation=o}break;case"elst":{const e=this.currentTrack;if(!e)break;const n=Lw(t);t.skip(3);let i=!1,r=0;const o=$w(t);for(let s=0;s<o;s++){const o=1===n?qw(t):$w(t),s=1===n?Vw(t):jw(t),a=dw(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=Lw(t);t.skip(3),0===n?(t.skip(8),e.timescale=$w(t),e.durationInMediaTimescale=$w(t)):1===n&&(t.skip(16),e.timescale=$w(t),e.durationInMediaTimescale=qw(t));let i=zw(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,_x.test(Ft)||(e.languageCode="und")}}break;case"hdlr":{const e=this.currentTrack;if(!e)break;t.skip(8);const n=Gw(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=B,this.readContiguousBoxes(t.slice(z,L.contentSize))}break;case"stsd":{const e=this.currentTrack;if(!e)break;if(null===e.info||e.sampleTable)break;const n=Lw(t);t.skip(3);const i=$w(t);for(let r=0;r<i;r++){const i=t.filePos,r=uw(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=zw(t),e.info.height=zw(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=zw(t);t.skip(6);let a=zw(t),l=zw(t);t.skip(4);let c=$w(t)/65536;if(0===n&&s>0)if(1===s)t.skip(4),l=8*$w(t),t.skip(8);else if(2===s){t.skip(4),c=Hw(t),a=$w(t),t.skip(4),l=$w(t);const n=$w(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;ix(e.info),e.info.codecDescription=Bw(t,L.contentSize)}break;case"hvcC":{const e=this.currentTrack;if(!e)break;ix(e.info),e.info.codecDescription=Bw(t,L.contentSize)}break;case"vpcC":{var U;const e=this.currentTrack;if(!e)break;ix("video"===(null===(U=e.info)||void 0===U?void 0:U.type)),t.skip(4);const n=Lw(t),i=Lw(t),r=Lw(t),o=r>>4,s=r>>1&7,a=1&r,l=Lw(t),c=Lw(t),u=Lw(t);e.info.vp9CodecInfo={profile:n,level:i,bitDepth:o,chromaSubsampling:s,videoFullRangeFlag:a,colourPrimaries:l,transferCharacteristics:c,matrixCoefficients:u}}break;case"av1C":{var $;const e=this.currentTrack;if(!e)break;ix("video"===(null===($=e.info)||void 0===$?void 0:$.type)),t.skip(1);const n=Lw(t),i=n>>5,r=31&n,o=Lw(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 j;const e=this.currentTrack;if(!e)break;if(ix("video"===(null===(j=e.info)||void 0===j?void 0:j.type)),"nclx"!==Gw(t,4))break;const n=zw(t),i=zw(t),r=zw(t),o=Boolean(128&Lw(t));e.info.colorSpace={primaries:dx[n],transfer:fx[i],matrix:mx[r],fullRange:o}}break;case"pasp":{var q;const e=this.currentTrack;if(!e)break;ix("video"===(null===(q=e.info)||void 0===q?void 0:q.type));const n=$w(t),i=$w(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;ix("audio"===(null===(V=e.info)||void 0===V?void 0:V.type)),t.skip(4),ix(3===Lw(t)),fw(t),t.skip(2);const n=Lw(t),i=!!(64&n),r=!!(32&n);if(!!(128&n)&&t.skip(2),i){const e=Lw(t);t.skip(e)}r&&t.skip(2),ix(4===Lw(t));const o=fw(t),s=t.filePos,a=Lw(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){ix(5===Lw(t));const n=fw(t);if(e.info.codecDescription=Bw(t,n),"aac"===e.info.codec){const t=Px(e.info.codecDescription);null!==t.numberOfChannels&&(e.info.numberOfChannels=t.numberOfChannels),null!==t.sampleRate&&(e.info.sampleRate=t.sampleRate)}}}break;case"enda":{var H;const e=this.currentTrack;if(!e)break;ix("audio"===(null===(H=e.info)||void 0===H?void 0:H.type)),255&zw(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 G;const e=this.currentTrack;if(!e)break;ix("audio"===(null===(G=e.info)||void 0===G?void 0:G.type)),t.skip(4);const n=Lw(t),i=Boolean(1&n),r=Lw(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;ix("audio"===(null===(K=e.info)||void 0===K?void 0:K.type)),t.skip(1);const n=Lw(t),i=zw(t),r=$w(t),o=Uw(t),s=Lw(t);let a;a=0!==s?Bw(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;ix("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=Lw(t),o=Ww(t);if((r&n)===Yx.STREAMINFO){t.skip(10);const n=$w(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=Bw(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;ix("audio"===(null===(Y=e.info)||void 0===Y?void 0:Y.type));const n=Bw(t,3),i=new Fx(n),r=i.readBits(2);i.skipBits(8);const o=i.readBits(3),s=i.readBits(1);r<3&&(e.info.sampleRate=Wx[r]),e.info.numberOfChannels=Qx[o]+s}break;case"dec3":{var Q;const e=this.currentTrack;if(!e)break;ix("audio"===(null===(Q=e.info)||void 0===Q?void 0:Q.type));const n=(t=>{if(t.length<2)return null;const e=new Fx(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}})(Bw(t,L.contentSize));if(!n){console.warn("Invalid dec3 box contents, ignoring.");break}const i=(t=>{const e=t.substreams[0];return ix(e),e.fscod<3?Wx[e.fscod]:null!==e.fscod2&&e.fscod2<3?Ux[e.fscod2]:null})(n);null!==i&&(e.info.sampleRate=i),e.info.numberOfChannels=(t=>{const e=t.substreams[0];ix(e);let n=Qx[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=$w(t);let i=0,r=0;for(let o=0;o<n;o++){const n=$w(t),o=$w(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=$w(t);let i=0;for(let r=0;r<n;r++){const n=$w(t),r=jw(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=$w(t),i=$w(t);if(0===n)for(let n=0;n<i;n++){const n=$w(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=Lw(t),i=$w(t),r=Bw(t,Math.ceil(i*n/8)),o=new Fx(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=$w(t);for(let i=0;i<n;i++){const n=$w(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=$w(t);for(let i=0;i<n;i++){const n=$w(t)-1,i=$w(t),r=$w(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=$w(t);for(let i=0;i<n;i++){const n=$w(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=$w(t);for(let i=0;i<n;i++){const n=qw(t);e.sampleTable.chunkOffsets.push(n)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.slice(z,L.contentSize));break;case"mehd":{const e=Lw(t);t.skip(3);const n=1===e?qw(t):$w(t);this.movieDurationInTimescale=n}break;case"trex":{t.skip(4);const e=$w(t),n=$w(t),i=$w(t),r=$w(t),o=$w(t);this.fragmentTrackDefaults.push({trackId:e,defaultSampleDescriptionIndex:n,defaultSampleDuration:i,defaultSampleSize:r,defaultSampleFlags:o})}break;case"tfra":{const e=Lw(t);t.skip(3);const n=$w(t),i=this.tracks.find((t=>t.id===n));if(!i)break;const r=$w(t),o=(12&r)>>2,s=3&r,a=[Lw,zw,Ww,$w],l=a[(48&r)>>4],c=a[o],u=a[s],d=$w(t);for(let n=0;n<d;n++){const n=1===e?qw(t):$w(t),r=1===e?qw(t):$w(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:B,moofSize:L.totalSize,implicitBaseDataOffset:B,trackData:new Map},this.readContiguousBoxes(t.slice(z,L.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if(ix(this.currentFragment),this.readContiguousBoxes(t.slice(z,L.contentSize)),this.currentTrack){const t=this.currentFragment.trackData.get(this.currentTrack.id);if(t){const{currentFragmentState:e}=this.currentTrack;ix(e),null!==e.startTimestamp&&(Tw(t,e.startTimestamp),t.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{var J,Z,tt,et;ix(this.currentFragment),t.skip(1);const e=Ww(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=$w(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=qw(t):l&&(u.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),i&&(u.currentFragmentState.sampleDescriptionIndex=$w(t)),r&&(u.currentFragmentState.defaultSampleDuration=$w(t)),o&&(u.currentFragmentState.defaultSampleSize=$w(t)),s&&(u.currentFragmentState.defaultSampleFlags=$w(t)),a&&(u.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{const e=this.currentTrack;if(!e)break;ix(e.currentFragmentState);const n=Lw(t);t.skip(3);const i=0===n?$w(t):qw(t);e.currentFragmentState.startTimestamp=i}break;case"trun":{const e=this.currentTrack;if(!e)break;if(ix(this.currentFragment),ix(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=Lw(t),i=Ww(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=$w(t);let d=e.currentFragmentState.baseDataOffset;r&&(d+=jw(t));let h=null;o&&(h=$w(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=$w(t):(ix(null!==e.currentFragmentState.defaultSampleDuration),r=e.currentFragmentState.defaultSampleDuration),a?o=$w(t):(ix(null!==e.currentFragmentState.defaultSampleSize),o=e.currentFragmentState.defaultSampleSize),l?u=$w(t):(ix(null!==e.currentFragmentState.defaultSampleFlags),u=e.currentFragmentState.defaultSampleFlags),0===i&&null!==h&&(u=h);let d=0;c&&(d=0===n?$w(t):jw(t));const g=!(65536&u);m.samples.push({presentationTimestamp:p+d,duration:r,byteOffset:f,byteSize:o,isKeyFrame:g}),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 g=m.samples[m.presentationTimestamps[0].sampleIndex],v=m.samples[rx(m.presentationTimestamps).sampleIndex];m.startTimestamp=g.presentationTimestamp,m.endTimestamp=v.presentationTimestamp+v.duration,this.currentFragment.implicitBaseDataOffset=f}break;case"udta":{const v=this.iterateContiguousBoxes(t.slice(z,L.contentSize));for(const{boxInfo:t,slice:y}of v){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]=pw(y)):null!==(ct=(at=this.metadataTags.raw)[lt=t.name])&&void 0!==ct||(at[lt]=Bw(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=lx.decode(Bw(y,t.contentSize)):null!==(n=(e=this.metadataTags).title)&&void 0!==n||(e.title=pw(y));break;case"©des":this.currentTrack||null!==(r=(i=this.metadataTags).description)&&void 0!==r||(i.description=pw(y));break;case"©ART":this.currentTrack||null!==(s=(o=this.metadataTags).artist)&&void 0!==s||(o.artist=pw(y));break;case"©alb":this.currentTrack||null!==(l=(a=this.metadataTags).album)&&void 0!==l||(a.album=pw(y));break;case"albr":this.currentTrack||null!==(u=(c=this.metadataTags).albumArtist)&&void 0!==u||(c.albumArtist=pw(y));break;case"©gen":this.currentTrack||null!==(h=(d=this.metadataTags).genre)&&void 0!==h||(d.genre=pw(y));break;case"©day":if(!this.currentTrack){var ut,dt;const t=new Date(pw(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=pw(y));break;case"©lyr":this.currentTrack||null!==(g=(m=this.metadataTags).lyrics)&&void 0!==g||(m.lyrics=pw(y))}}}break;case"meta":{if(this.currentTrack)break;const e=0!==$w(t);this.currentMetadataKeys=new Map,e?this.readContiguousBoxes(t.slice(z,L.contentSize)):this.readContiguousBoxes(t.slice(z+4,L.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;t.skip(4);const e=$w(t);for(let n=0;n<e;n++){const e=$w(t);t.skip(4);const i=lx.decode(Bw(t,e-8));this.currentMetadataKeys.set(n+1,i)}}break;case"ilst":{if(!this.currentMetadataKeys)break;const e=this.iterateContiguousBoxes(t.slice(z,L.contentSize));for(const{boxInfo:t,slice:n}of e){var ht,ft,pt,mt,gt;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=mw(n);switch(null!==(ft=(ht=this.metadataTags).raw)&&void 0!==ft||(ht.raw={}),null!==(gt=(pt=this.metadataTags.raw)[mt=e])&&void 0!==gt||(pt[mt]=r),e){case"©nam":case"titl":case"com.apple.quicktime.title":case"title":"string"==typeof r&&(null!==(y=(v=this.metadataTags).title)&&void 0!==y||(v.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!==(w=(x=this.metadataTags).artist)&&void 0!==w||(x.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!==(N=(S=this.metadataTags).comment)&&void 0!==N||(S.comment=r));break;case"©gen":case"gnre":case"com.apple.quicktime.genre":case"genre":"string"==typeof r&&(null!==(M=(A=this.metadataTags).genre)&&void 0!==M||(A.genre=r));break;case"©lyr":case"lyrics":"string"==typeof r&&(null!==(C=(F=this.metadataTags).lyrics)&&void 0!==C||(F.lyrics=r));break;case"©day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if("string"==typeof r){var vt,yt;const t=new Date(r);Number.isNaN(t.getTime())||null!==(yt=(vt=this.metadataTags).date)&&void 0!==yt||(vt.date=t)}break;case"covr":case"com.apple.quicktime.artwork":r instanceof Ax?(null!==(P=(O=this.metadataTags).images)&&void 0!==P||(O.images=[]),this.metadataTags.images.push({data:r.data,kind:"coverFront",mimeType:r.mimeType})):r instanceof Uint8Array&&(null!==(D=(R=this.metadataTags).images)&&void 0!==D||(R.images=[]),this.metadataTags.images.push({data:r,kind:"coverFront",mimeType:"image/*"}));break;case"track":if("string"==typeof r){var bt,kt,xt,wt;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!==(wt=(xt=this.metadataTags).tracksTotal)&&void 0!==wt||(xt.tracksTotal=n))}break;case"trkn":if(r instanceof Uint8Array&&r.length>=6){var _t,Tt,It,Et;const t=ax(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,Nt,At,Mt;const t=ax(r),e=t.getUint16(2,!1),n=t.getUint16(4,!1);e>0&&(null!==(Nt=(St=this.metadataTags).discNumber)&&void 0!==Nt||(St.discNumber=e)),n>0&&(null!==(Mt=(At=this.metadataTags).discsTotal)&&void 0!==Mt||(At.discsTotal=n))}}}}}var Ft,Ct;return t.filePos=W,!0}}class vw{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=kw(i,n),o=await this.fetchPacketForSampleIndex(r,e);return Ew(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=bx(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=xw(i,n),o=await this.fetchPacketForSampleIndex(r,e);return Ew(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=_w(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 ix(-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=ww(n,t);if(!i)return null;let r;if(e.metadataOnly)r=ew;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.sampleOffset,i.sampleSize);t instanceof Promise&&(t=await t),ix(t),r=Bw(t,i.sampleSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new nw(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(ix(i),n.metadataOnly)r=ew;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.byteOffset,i.byteSize);t instanceof Promise&&(t=await t),ix(t),r=Bw(t,i.byteSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new nw(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=bx(this.internalTrack.fragmentLookupTable,n,(t=>t.timestamp)),h=-1!==d?this.internalTrack.fragmentLookupTable[d]:null,f=bx(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 g;for(t?null===m||t.moofOffset>=m?(g=t.moofOffset+t.moofSize,l=t):g=m:g=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(g,8,16);if(t instanceof Promise&&(t=await t),!t)break;const n=g,o=uw(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)}g=n+o.totalSize}if(h&&(!c||c.moofOffset<h.moofOffset)){var v;const t=this.internalTrack.fragmentLookupTable[d-1];ix(!t||t.timestamp<h.timestamp);const n=null!==(v=null==t?void 0:t.timestamp)&&void 0!==v?v:-1/0;return this.performFragmentedLookup(null,e,n,i,r)}return c?this.fetchPacketInFragment(c,u,r):null}}class yw extends vw{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 Xx(t)){if(1!==e)continue;const t=new Fx(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 g=1,v=1,y=0;return m||(0===i?(g=1,v=1):1===i?(g=0,v=0):12===p&&(g=t.readBits(1),g&&(v=t.readBits(1))),g&&v&&(y=t.readBits(2))),{profile:i,level:o,tier:s,bitDepth:p,monochrome:m,chromaSubsamplingX:g,chromaSubsamplingY:v,chromaSamplePosition:y}}return null})(t.data)}}else{const t=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=t&&(t=>{const e=new Fx(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=rx(Dx).level;for(const t of Dx)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:Bx(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 bw extends vw{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:Lx(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 kw=(t,e)=>{if(t.presentationTimestamps){const n=bx(t.presentationTimestamps,e,(t=>t.presentationTimestamp));return-1===n?-1:t.presentationTimestamps[n].sampleIndex}{const n=bx(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)}},xw=(t,e)=>{if(!t.keySampleIndices)return kw(t,e);if(t.presentationTimestamps){const n=bx(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!==yx(t.keySampleIndices,n,(t=>t)))return n}return-1}{var n;const i=kw(t,e),r=bx(t.keySampleIndices,i,(t=>t));return null!==(n=t.keySampleIndices[r])&&void 0!==n?n:-1}},ww=(t,e)=>{const n=bx(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=bx(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=bx(t.sampleToChunk,e,(t=>t.startSampleIndex)),c=t.sampleToChunk[l];ix(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];ix(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!==yx(t.keySampleIndices,e,(t=>t))}},_w=(t,e)=>{var n;if(!t.keySampleIndices)return e+1;const i=bx(t.keySampleIndices,e,(t=>t));return null!==(n=t.keySampleIndices[i+1])&&void 0!==n?n:-1},Tw=(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},Iw=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},Ew=t=>0===t.sampleSizes.length;class Sw{}class Nw extends Sw{async _getMajorBrand(t){let e=t._reader.requestSlice(0,12);return e instanceof Promise&&(e=await e),e?(e.skip(4),"ftyp"!==Gw(e,4)?null:Gw(e,4)):null}_createDemuxer(t){return new gw(t)}}const Aw=new class extends Nw{async _canReadInput(t){const e=await this._getMajorBrand(t);return!!e&&"qt "!==e}get name(){return"MP4"}get mimeType(){return"video/mp4"}};class Mw{constructor(){this._disposed=!1,this._sizePromise=null,this.onread=null}async getSizeOrNull(){var t;if(this._disposed)throw new Ow;return null!==(t=this._sizePromise)&&void 0!==t?t:this._sizePromise=Promise.resolve(this._retrieveSize())}async getSize(){if(this._disposed)throw new Ow;const t=await this.getSizeOrNull();if(null===t)throw new Error("Cannot determine the size of an unsized source.");return t}}class Fw extends Mw{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&&(!Nx(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=bx(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:ax(o),offset:t};this._currentIndex>r&&this._throwDueToCacheMiss();const{promise:s,resolve:a,reject:l}=kx();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:ax(e.bytes),offset:e.start}),this._pendingSlices.splice(t,1),t--))}for(this._cache.push({start:i,end:r,bytes:n,view:ax(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!==(ue=Symbol.dispose)&&void 0!==ue||(Symbol.dispose=Symbol("Symbol.dispose"));class Cw{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 Sw))))throw new TypeError("options.formats must be an array of InputFormat.");if(!(t.source instanceof Mw))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 Pw(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(),ix(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 Ow extends Error{constructor(t="Input has been disposed."){super(t),this.name="InputDisposedError"}}class Pw{constructor(t){this.source=t}requestSlice(t,e){if(this.source._disposed)throw new Ow;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 Rw(e.bytes,e.view,e.offset,t,n):null)):i?new Rw(i.bytes,i.view,i.offset,t,n):null}requestSliceRange(t,e,n){if(this.source._disposed)throw new Ow;if(t<0)return null;if(null!==this.fileSize)return this.requestSlice(t,wx(this.fileSize-t,e,n));{const i=this.requestSlice(t,n),r=i=>{if(i)return i;const r=i=>(ix(null!==i),this.requestSlice(t,wx(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 Rw{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 Rw(t,ax(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 Rw(this.bytes,this.view,this.offset,t,t+e)}}const Dw=(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.`)},Bw=(t,e)=>{Dw(t,e);const n=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,n},Lw=t=>(Dw(t,1),t.view.getUint8(t.bufferPos++)),zw=t=>{Dw(t,2);const e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},Ww=t=>{Dw(t,3);const e=xx(t.view,t.bufferPos);return t.bufferPos+=3,e},Uw=t=>{Dw(t,2);const e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},$w=t=>{Dw(t,4);const e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},jw=t=>{Dw(t,4);const e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},qw=t=>4294967296*$w(t)+$w(t),Vw=t=>4294967296*jw(t)+$w(t),Hw=t=>{Dw(t,8);const e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},Gw=(t,e)=>{Dw(t,e);let n="";for(let i=0;i<e;i++)n+=String.fromCharCode(t.bytes[t.bufferPos++]);return n};var Kw=new WeakMap,Xw=new WeakMap,Yw=new WeakMap,Qw=new WeakMap,Jw=new WeakMap,Zw=new WeakMap,t_=new WeakMap,e_=new WeakMap,n_=new WeakMap,i_=new WeakMap,r_=new WeakMap,o_=new WeakMap,s_=new WeakMap,a_=new WeakMap,l_=new WeakMap,c_=new WeakSet;class u_ extends jc{constructor(...t){super(...t),O(this,c_),F(this,Kw,null),F(this,Xw,null),F(this,Yw,null),F(this,Qw,null),F(this,Jw,!1),F(this,Zw,!1),F(this,t_,!1),F(this,e_,!1),F(this,n_,void 0),F(this,i_,null),F(this,r_,null),F(this,o_,!1),F(this,s_,!1),F(this,a_,null),F(this,l_,!1)}get name(){return"FMP4Demuxer"}get defaults(){return{}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"pushChunk","endOfStream"])}pushChunk(t,e={}){if(M(t_,this)||M(e_,this))return;const n=t instanceof Uint8Array?t:new Uint8Array(t),i=!!e.isInit;C(i_,this,N(c_,this,g_).call(this,n,e,i)),i&&(C(n_,this,n),C(r_,this,null),this.trigger("demux:init",{data:n})),N(c_,this,m_).call(this);try{var r;const t=null===(r=M(Kw,this))||void 0===r?void 0:r.write(n);t&&"function"==typeof t.catch&&t.catch((t=>{N(c_,this,v_).call(this,t)}))}catch(t){if(M(t_,this)||N(c_,this,d_).call(this,t))return;return this.log.warn("[FMP4Demuxer] mediabunny demux failed",t),void N(c_,this,v_).call(this,t)}const o=N(c_,this,k_).call(this);o&&"function"==typeof o.catch&&o.catch((t=>{N(c_,this,v_).call(this,t)}))}endOfStream(){if(M(e_,this))return;if(M(o_,this))return;let t;C(o_,this,!0),C(s_,this,!1),C(l_,this,!1);try{var e;t=null===(e=M(Kw,this))||void 0===e?void 0:e.close()}catch(e){t=Promise.resolve()}let n=!1;N(c_,this,f_).call(this),C(a_,this,setTimeout((()=>{C(a_,this,null),n||M(s_,this)||M(e_,this)||N(c_,this,p_).call(this)}),20)),Promise.resolve(t).catch((()=>{})).finally((()=>{n=!0,N(c_,this,f_).call(this),N(c_,this,p_).call(this)}))}onDispose(){super.onDispose(),C(e_,this,!0);try{var t,e;null===(t=M(Yw,this))||void 0===t||null===(e=t.close)||void 0===e||e.call(t)}catch(t){}this.endOfStream();try{var n,i;null===(n=M(Xw,this))||void 0===n||null===(i=n.dispose)||void 0===i||i.call(n)}catch(t){}C(Yw,this,null),C(Xw,this,null),C(t_,this,!1),C(i_,this,null),C(Qw,this,null),C(Jw,this,!1),C(Zw,this,!1),C(o_,this,!1),C(s_,this,!1),C(l_,this,!1),N(c_,this,f_).call(this)}}function d_(t){return!!M(e_,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 h_(){try{var t,e;const n=null===(t=M(Kw,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){}C(Kw,this,null)}function f_(){null!==M(a_,this)&&(clearTimeout(M(a_,this)),C(a_,this,null))}function p_(){if(M(s_,this)||M(e_,this)||M(t_,this))return;if(C(s_,this,!0),M(Zw,this))return void C(l_,this,!0);C(l_,this,!1);const t=N(c_,this,k_).call(this);t&&"function"==typeof t.catch&&t.catch((t=>{N(c_,this,v_).call(this,t)}))}function m_(){if(M(Xw,this)&&M(Kw,this))return;const t=Hc.TransformStream;if(void 0===t)throw new Error("TransformStream is not available in this environment");const{readable:e,writable:n}=new t;C(Kw,this,n.getWriter()),C(Xw,this,new Cw({source:new Fw(e),formats:[Aw]})),C(Jw,this,!1)}function g_(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 v_(t){if(M(t_,this)||N(c_,this,d_).call(this,t))return;if(N(c_,this,b_).call(this,t))return void C(Jw,this,!1);C(t_,this,!0),N(c_,this,h_).call(this);try{var e,n;null===(e=M(Yw,this))||void 0===e||null===(n=e.close)||void 0===n||n.call(e)}catch(t){}C(Yw,this,null);try{var i,r;null===(i=M(Xw,this))||void 0===i||null===(r=i.dispose)||void 0===r||r.call(i)}catch(t){}C(Xw,this,null);const o={error:t,recoverable:!1,severity:"fatal",streamClosed:M(o_,this),streamFinalized:M(s_,this)};M(i_,this)&&(o.context={...M(i_,this)}),this.trigger("demux:error",o)}function y_(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 b_(t){return!!N(c_,this,y_).call(this,t)&&(!M(s_,this)||M(l_,this))}async function k_(){if(!(M(e_,this)||M(t_,this)||M(Jw,this)||M(Zw,this))){C(Zw,this,!0);try{N(c_,this,m_).call(this);const t=await M(Xw,this).getPrimaryVideoTrack(),e=t?null:await M(Xw,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 M(Xw,this).getMimeType();this.trigger("demux:init",{...M(n_,this)?{data:M(n_,this)}:{},decoderConfig:i,codec:r,mimeType:o}),C(Yw,this,new sw(n)),C(Jw,this,!0),C(Qw,this,(async()=>{try{for await(const t of M(Yw,this).packets()){if(M(e_,this))break;const e="number"==typeof t.timestamp?t.timestamp:0;null===M(r_,this)&&C(r_,this,e);let n=e-M(r_,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){N(c_,this,v_).call(this,t)}})())}catch(t){if(N(c_,this,b_).call(this,t))return;throw t}finally{C(Zw,this,!1),!M(l_,this)||M(t_,this)||M(e_,this)||N(c_,this,p_).call(this)}}}const x_=1e6,w_=24e3/1001,__=new Uint8Array;function T_(t){return t?t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):__:__}let I_=null;const E_={video:(de=new WeakMap,he=new WeakMap,fe=new WeakMap,pe=new WeakMap,me=new WeakMap,ge=new WeakMap,ve=new WeakMap,ye=new WeakMap,be=new WeakMap,ke=new WeakMap,xe=new WeakMap,we=new WeakMap,_e=new WeakMap,Te=new WeakMap,Ie=new WeakMap,Ee=new WeakMap,Se=new WeakMap,Ne=new WeakMap,Ae=new WeakMap,Me=new WeakMap,Fe=new WeakMap,Ce=new WeakMap,Oe=new WeakMap,Pe=new WeakMap,Re=new WeakMap,De=new WeakMap,Be=new WeakMap,Le=new WeakMap,ze=new WeakMap,We=new WeakMap,Ue=new WeakMap,$e=new WeakMap,je=new WeakMap,qe=new WeakMap,Ve=new WeakSet,class extends nx{get name(){return"WebCodecsSegmentDecoder"}get defaults(){return{decodedHorizonSeconds:1,maxDecodedFrames:24,maxDecodeQueueSize:4,convertFramesToBitmapsOnAndroid:!0,androidFixEndOfSegmentDelta:.2}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"decodeChunk"])}constructor(...t){super(...t),O(this,Ve),F(this,de,void 0),F(this,he,[]),F(this,fe,void 0),F(this,pe,void 0),F(this,me,void 0),F(this,ge,void 0),F(this,ve,[]),F(this,ye,void 0),F(this,be,new Map),F(this,ke,!0),F(this,xe,!1),F(this,we,!1),F(this,_e,!1),F(this,Te,void 0),F(this,Ie,!1),F(this,Ee,!1),F(this,Se,0),F(this,Ne,void 0),F(this,Ae,void 0),F(this,Me,{}),F(this,Fe,void 0),F(this,Ce,0),F(this,Oe,null),F(this,Pe,!1),F(this,Re,null),F(this,De,void 0),F(this,Be,0),F(this,Le,0),F(this,ze,0),F(this,We,0),F(this,Ue,!1),F(this,$e,!1),F(this,je,.2),F(this,qe,Promise.resolve()),C(fe,this,this.settings.decodedHorizonSeconds||1),C(pe,this,N(Ve,this,gT).call(this,this.settings.maxDecodedFrames)),C(me,this,N(Ve,this,yT).call(this,this.settings.maxDecodeQueueSize)),C(Ue,this,Rp()),C($e,this,N(Ve,this,lT).call(this,this.settings.convertFramesToBitmapsOnAndroid)),C(je,this,N(Ve,this,cT).call(this,this.settings.androidFixEndOfSegmentDelta)),C(ge,this,(()=>0)),C(ye,this,(()=>N(Ve,this,Z_).call(this)));const e=this.settings.demuxerOptions?{FMP4Demuxer:this.settings.demuxerOptions}:{};C(de,this,new u_(e)),M(de,this).on("demux:init",(t=>N(Ve,this,j_).call(this,t))),M(de,this).on("demux:sample",(t=>N(Ve,this,q_).call(this,t))),M(de,this).on("demux:complete",(()=>N(Ve,this,V_).call(this))),M(de,this).on("demux:error",(t=>N(Ve,this,C_).call(this,t)))}setCurrentTimeProvider(t){"function"==typeof t&&C(ge,this,t)}setTimeOffsetSeconds(t){const e=Number(t);C(Ce,this,Number.isFinite(e)?e:0)}setSeekTargetTimeSeconds(t){const e=Number(t);C(Oe,this,Number.isFinite(e)?e:null),C(Pe,this,!1),C(Re,this,null)}endOfStream(){M(de,this)&&"function"==typeof M(de,this).endOfStream&&M(de,this).endOfStream()}configure(t){super.configure(t),C(Me,this,{codec:N(Ve,this,kT).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)}),C(Ne,this,M(Me,this).codec)}setSegment(t){this.lastSegment=t,N(Ve,this,z_).call(this)}setNodeId(t){C(De,this,t)}decode(t){this.setSegment(t);const e=null==t?void 0:t.arrayBuffer;e&&M(de,this).pushChunk(e,{isInit:!(null==t||!t.isInit)})}async decodeChunk(t,e={}){await M(de,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 M(he,this).slice()}onDispose(){if(super.onDispose(),N(Ve,this,nT).call(this),M(de,this)&&"function"==typeof M(de,this).dispose&&M(de,this).dispose(),C(he,this,[]),C(ve,this,[]),M(be,this).clear(),C(Re,this,null),M(Te,this)&&"function"==typeof M(Te,this).close)try{M(Te,this).close()}catch(t){}C(Te,this,null),C(Ie,this,!1),C(Ae,this,null),C(Ne,this,null),C(De,this,null),C(qe,this,Promise.resolve()),N(Ve,this,z_).call(this)}}),audio:(He=new WeakMap,Ge=new WeakMap,Ke=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,Qe=new WeakMap,Je=new WeakMap,Ze=new WeakSet,class extends nx{constructor(...t){super(...t),O(this,Ze),F(this,He,void 0),F(this,Ge,[]),F(this,Ke,0),F(this,Xe,!1),F(this,Ye,!1),F(this,Qe,void 0),F(this,Je,0)}get name(){return"WebAudioDecoder"}setSegment(t){C(Qe,this,t)}setTimeOffsetSeconds(t){const e=Number(t);C(Je,this,Number.isFinite(e)?e:0)}decode(t){if(this.lastSegment=t,!t)return;if(t.isInit)return void C(He,this,T_(t.arrayBuffer));const e=t.arrayBuffer;e&&N(Ze,this,A_).call(this,T_(e),!0)}decodeChunk(t,e={}){if(!t)return;if(e.isInit)return void C(He,this,T_(t));const n=T_(t);if(!n.length)return;M(Ge,this).push(n),C(Ke,this,M(Ke,this)+n.length);const i=Number(e.loaded),r=Number(e.total);Number.isFinite(i)&&Number.isFinite(r)&&r>0&&i>=r&&N(Ze,this,S_).call(this)}endOfStream(){N(Ze,this,S_).call(this)}onDispose(){super.onDispose(),C(He,this,void 0),C(Ge,this,[]),C(Ke,this,0),C(Xe,this,!1),C(Ye,this,!1),C(Qe,this,void 0)}}),image:class extends nx{#B;#L=0;#z=[];#W=0;#U;get name(){return"ImageDecoder"}setSegment(t){this.#B=t}setTimeOffsetSeconds(t){const e=Number(t);this.#L=Number.isFinite(e)?e:0}decode(t){super.decode(t),t&&(this.#B=t);const e=null==t?void 0:t.arrayBuffer;e instanceof ArrayBuffer&&(this.#z=[new Uint8Array(e)],this.#W=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.#z.push(n),this.#W+=n.length)}async endOfStream(){var t,e,n;if(this.#U)return;if(!(this.#z.length&&this.#W>0))return;const i=new Uint8Array(this.#W);let r=0;for(let t=0;t<this.#z.length;t+=1){const e=this.#z[t];i.set(e,r),r+=e.length}const o=null===(t=this.#B)||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 Hc.Blob)return;const n="string"==typeof e?e:"";return new Hc.Blob([t],n?{type:n}:void 0)}(t,e);if(!n)throw new Error("Image decode requires Blob support");let i;if("function"==typeof Hc.Image&&Hc.URL&&"function"==typeof Hc.URL.createObjectURL&&"function"==typeof Hc.URL.revokeObjectURL){const t=Hc.URL.createObjectURL(n);try{const e=new Hc.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{Hc.URL.revokeObjectURL(t)}}if("function"==typeof Hc.createImageBitmap)try{return Hc.createImageBitmap(n)}catch(t){i=t}if(i)throw i;throw new Error("No supported image decode mechanism")}(i,s);this.#U=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&&(lg(o.width)||(o.width=e.width),lg(o.height)||(o.height=e.height)),this.trigger("decoder:frame",{pts:this.#L,duration:lg(null===(a=this.#B)||void 0===a?void 0:a.duration)?this.#B.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.#U&&"function"==typeof this.#U.close)try{this.#U.close()}catch(t){}this.#U=null,this.#z=[],this.#W=0,this.#B=null}}};function S_(){if(M(Xe,this)||M(Ye,this))return;if(!M(Ke,this))return;const t=N(Ze,this,N_).call(this);t.length&&N(Ze,this,A_).call(this,t,!1)}function N_(){const t=M(He,this),e=t?t.length:0,n=e+M(Ke,this);if(!n)return __;const i=new Uint8Array(n);let r=0;e&&(i.set(t,r),r+=e);for(let t=0;t<M(Ge,this).length;t+=1){const e=M(Ge,this)[t];e&&e.length&&(i.set(e,r),r+=e.length)}return i}function A_(t,e){if(M(Xe,this)||M(Ye,this))return;const n=e?N(Ze,this,M_).call(this,t):t;if(!n||!n.length)return;const i=function(){if(I_)return I_;const t=Hc.AudioContext||Hc.webkitAudioContext;return t?(I_=new t,I_):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);C(Ye,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;C(Xe,this,!0);const n=Number.isFinite(null==t?void 0:t.duration)?t.duration:Number(null===(e=M(Qe,this))||void 0===e?void 0:e.duration)||void 0;this.trigger("decoder:audio",{audioBuffer:t,pts:M(Je,this),duration:n})})).catch((t=>{this.trigger("decoder:error",{error:t})})).finally((()=>{C(Ge,this,[]),C(Ke,this,0),C(Ye,this,!1)}))}function M_(t){const e=M(He,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 F_(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:M(De,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=M(Me,this))||void 0===r?void 0:r.codec)||M(Ne,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 C_(t){const e=(null==t?void 0:t.error)||t,n=N(Ve,this,F_).call(this,t,e);if(N(Ve,this,O_).call(this,t,e))return this.log.warn("[onDemuxError] recoverable demux error",n),void N(Ve,this,V_).call(this);const i=N(Ve,this,$_).call(this,t),r=N(Ve,this,P_).call(this,i);if(i&&0===i.missingFrames)return this.log.warn(`[onDemuxError] ignoring demux error (no missing frames)${r}`,{...n,missingFrameStats:i}),void N(Ve,this,V_).call(this);let o=n;i&&(o={...n,missingFrameStats:i}),this.log.warn(`[onDemuxError] demux error${r}`,o),this.trigger("decoder:error",t)}function O_(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 P_(t){return t?` expectedFrames=${N(Ve,this,R_).call(this,t.expectedFrames)} demuxedFrames=${N(Ve,this,R_).call(this,t.demuxedFrames)} missingFrames=${N(Ve,this,R_).call(this,t.missingFrames)}`:""}function R_(t){if(null==t)return"unknown";const e=Number(t);return Number.isFinite(e)?String(e):"unknown"}function D_(t,e={}){return{expectedFrames:null,demuxedFrames:M(Be,this),missingFrames:null,reason:t,...e}}function B_(t){const e=Number(t);return Number.isFinite(e)?e:null}function L_(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 N(Ve,this,D_).call(this,"segment_duration_unavailable",{segmentDurationSeconds:N(Ve,this,B_).call(this,s),demuxedCoverageSeconds:M(We,this),frameDurationSeconds:null});const a=N(Ve,this,U_).call(this);if(!Number.isFinite(a)||a<=0){const t=Math.max(1,Math.round(s*w_));return{expectedFrames:t,demuxedFrames:M(Be,this),missingFrames:Math.max(0,t-M(Be,this)),reason:"fallback_fps",fallbackFps:w_,segmentDurationSeconds:s,demuxedCoverageSeconds:M(We,this),frameDurationSeconds:N(Ve,this,B_).call(this,a)}}const l=Math.min(.5*a,.02),c=Math.max(0,s-M(We,this)),u=c<=l?0:c,d=Math.max(1,Math.floor((s+l)/a)),h=Math.max(0,d-M(Be,this)),f=u>0?Math.ceil(u/a):0;return{expectedFrames:d,demuxedFrames:M(Be,this),missingFrames:Math.max(h,f),segmentDurationSeconds:s,demuxedCoverageSeconds:M(We,this),frameDurationSeconds:a}}function z_(){C(Be,this,0),C(Le,this,0),C(ze,this,0),C(We,this,0)}function W_(t){C(Be,this,M(Be,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&&(C(Le,this,M(Le,this)+n),C(ze,this,M(ze,this)+1)),!Number.isFinite(e))return;const i=Number.isFinite(n)&&n>0?e+n:e;Number.isFinite(i)&&i>M(We,this)&&C(We,this,i)}function U_(){return M(ze,this)>0?M(Le,this)/M(ze,this):M(Be,this)>0&&M(We,this)>0?M(We,this)/M(Be,this):null}function $_(t){return N(Ve,this,L_).call(this,t)}function j_(t){(null==t?void 0:t.data)instanceof Uint8Array&&(C(Ae,this,t.data.buffer),N(Ve,this,rT).call(this)),null!=t&&t.decoderConfig&&(C(Fe,this,t.decoderConfig),C(Ne,this,t.decoderConfig.codec||M(Ne,this)),N(Ve,this,rT).call(this)),this.trigger("decoder:init",t)}function q_(t){N(Ve,this,W_).call(this,t),M(ve,this).push(t),N(Ve,this,Z_).call(this)}function V_(){C(xe,this,!0),N(Ve,this,oT).call(this)}function H_(t){const e="number"==typeof(null==t?void 0:t.pts)?t.pts:void 0;if(Number.isFinite(e))return M(Ce,this)+e}function G_(t){return M(ve,this).some((e=>{const n=N(Ve,this,H_).call(this,e);return Number.isFinite(n)&&n>=t}))}function K_(t){let e=-1,n=null;for(let i=0;i<M(ve,this).length;i+=1){const r=M(ve,this)[i],o=N(Ve,this,H_).call(this,r);Number.isFinite(o)&&(null==r?void 0:r.isKey)&&o<=t&&(e=i,n=o)}return{chosenIndex:e,chosenPtsSeconds:n}}function X_(t){let e=-1,n=null;for(let i=0;i<M(ve,this).length;i+=1){const r=M(ve,this)[i],o=N(Ve,this,H_).call(this,r);if(Number.isFinite(o)&&null!=r&&r.isKey&&(e=i,n=o,o>=t))break}return{chosenIndex:e,chosenPtsSeconds:n}}function Y_(t){const e=t+M(fe,this),n=M(Oe,this);if(!Number.isFinite(n))return e;const i=Number.isFinite(M(Re,this))?M(Re,this):null;if(Number.isFinite(i))return Math.max(e,i);const{chosenPtsSeconds:r}=N(Ve,this,X_).call(this,n);return Number.isFinite(r)?Math.max(e,r):e}function Q_(t){const e=M(Oe,this);Number.isFinite(e)&&Number.isFinite(t)&&t>=e&&(C(Oe,this,null),C(Re,this,null))}function J_(){const t=M(Oe,this);if(!Number.isFinite(t)||M(Pe,this))return!0;if(!N(Ve,this,G_).call(this,t)&&!M(xe,this))return!1;const e=N(Ve,this,K_).call(this,t);let n=e;if(-1===e.chosenIndex&&(n=N(Ve,this,X_).call(this,t)),n.chosenIndex>0){const t=`[#maybeAlignToSeekKeyframe] Dropping ${n.chosenIndex} samples before keyframe @ ${n.chosenPtsSeconds}`;this.log.debug(t),M(ve,this).splice(0,n.chosenIndex)}return C(ke,this,!0),Number.isFinite(n.chosenPtsSeconds)&&C(Re,this,n.chosenPtsSeconds),C(Pe,this,!0),!0}function Z_(){const t=M(ge,this)?M(ge,this).call(this):0,e=N(Ve,this,Y_).call(this,t);if(N(Ve,this,pT).call(this,t),N(Ve,this,mT).call(this),!N(Ve,this,J_).call(this))return void N(Ve,this,eT).call(this);const n=void 0!==Hc.VideoDecoder&&void 0!==Hc.EncodedVideoChunk;for(n&&!M(Ie,this)&&M(Fe,this)&&N(Ve,this,rT).call(this);M(ve,this).length&&!N(Ve,this,vT).call(this)&&!(n&&M(Te,this)&&N(Ve,this,bT).call(this));){const t=M(ve,this)[0],i="number"==typeof(null==t?void 0:t.pts)?t.pts:0,r=M(Ce,this)+i;if(r>e)break;if(null!=t&&t.raw)M(ve,this).shift(),N(Ve,this,tT).call(this,t);else{if(n){if(!M(Ie,this)||!M(Te,this))break;if(M(ke,this)&&!t.isKey){M(ve,this).shift();continue}M(ve,this).shift();const e=Math.max(0,Math.round(r*x_));M(be,this).set(e,!!t.isKey);try{const n=new Hc.EncodedVideoChunk({type:t.isKey?"key":"delta",timestamp:e,duration:t.duration?Math.round(t.duration*x_):void 0,data:t.data instanceof Uint8Array?t.data:new Uint8Array(t.data)});M(Te,this).decode(n),t.isKey&&C(ke,this,!1);continue}catch(t){M(be,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")){C(ke,this,!0);continue}this.log.warn("[#drainDecodeQueue] decode failed, falling back to placeholder",t)}}M(ve,this).shift(),N(Ve,this,tT).call(this,t)}}N(Ve,this,oT).call(this),N(Ve,this,eT).call(this)}function tT(t){const e=M(ge,this)?M(ge,this).call(this):0,n=N(Ve,this,Y_).call(this,e),i=M(Ce,this)+("number"==typeof t.pts?t.pts:0);if(i<e||i>n)return;N(Ve,this,pT).call(this,e);const r={pts:i,duration:t.duration,data:t.data,isKey:t.isKey};M(he,this).push(r),N(Ve,this,mT).call(this),this.trigger("decoder:frame",r),N(Ve,this,Q_).call(this,i)}function eT(){if(M(ve,this).length>0&&void 0!==Hc.VideoDecoder){if(vb(M(ye,this)))return;mb(M(ye,this),50)}else N(Ve,this,nT).call(this)}function nT(){M(ye,this)&&vb(M(ye,this))&&gb(M(ye,this))}function iT(){return null!=Hc&&Hc.performance&&"function"==typeof Hc.performance.now?Hc.performance.now():Date.now()}function rT(){if(M(Ie,this))return;if(void 0===Hc.VideoDecoder)return;if(!M(Fe,this))return;if(M(Ee,this)&&N(Ve,this,iT).call(this)<M(Se,this))return;const t={...M(Fe,this)};!t.codec&&M(Ne,this)&&(t.codec=M(Ne,this)),M(Ae,this)&&!t.description&&(t.description=M(Ae,this)),M(Me,this).width&&!t.codedWidth&&(t.codedWidth=M(Me,this).width),M(Me,this).height&&!t.codedHeight&&(t.codedHeight=M(Me,this).height);try{C(Te,this,new Hc.VideoDecoder({output:t=>N(Ve,this,aT).call(this,t),error:t=>N(Ve,this,sT).call(this,t)})),M(Te,this).configure(t),C(Ie,this,!0),C(ke,this,!0),C(Ee,this,!1),C(Se,this,0),N(Ve,this,Z_).call(this)}catch(t){this.log.warn("[#maybeConfigureDecoder] configure failed, falling back to placeholder decode",t),C(Te,this,null),C(Ie,this,!1),C(Fe,this,null)}}function oT(){void 0!==Hc.VideoDecoder&&void 0!==Hc.EncodedVideoChunk&&(M(Ee,this)||!M(xe,this)||M(_e,this)||M(we,this)||M(Ie,this)&&M(Te,this)&&"function"==typeof M(Te,this).flush&&(M(ve,this).length||(C(we,this,!0),Promise.resolve().then((()=>M(Te,this).flush())).then((()=>{C(_e,this,!0),C(ke,this,!0)})).catch((t=>{"AbortError"!==(null==t?void 0:t.name)&&this.log.warn("[#maybeFlushDecoder] flush failed",t)})).finally((()=>{C(we,this,!1)})))))}function sT(t){if(this.log.warn("[#handleDecoderError] decoder error",t),this.trigger("decoder:error",{error:t}),M(Te,this)&&"function"==typeof M(Te,this).close)try{M(Te,this).close()}catch(t){}C(Te,this,null),C(Ie,this,!1),C(we,this,!1),C(_e,this,!1),C(ke,this,!0),M(be,this).clear(),C(Ee,this,!0),C(Se,this,N(Ve,this,iT).call(this)+1e3)}function aT(t){C(qe,this,M(qe,this).then((()=>{var e;if(!this._disposed)return N(Ve,this,fT).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 lT(t){return"boolean"!=typeof t||t}function cT(t){const e=Number(t);return!Number.isFinite(e)||e<0?.2:e}function uT(){return!!M($e,this)&&"function"==typeof Hc.createImageBitmap&&M(Ue,this)}function dT(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(M(Ce,this));return!!Number.isFinite(i)&&t>=i+n-M(je,this)}async function hT(t,e){try{var n;const i=N(Ve,this,dT).call(this,e),r=await Hc.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 fT(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/x_:M(ge,this)?M(ge,this).call(this):0,s="number"==typeof t.duration?t.duration/x_:void 0;let a;void 0!==r&&(a=M(be,this).get(r),M(be,this).delete(r));try{var l,c,u,d;let e=M(ge,this)?M(ge,this).call(this):0,n=N(Ve,this,Y_).call(this,e);if(o<e||o>n)return void(null===(l=(c=i).close)||void 0===l||l.call(c));if(N(Ve,this,uT).call(this)){var h,f,p,m;if(i=await N(Ve,this,hT).call(this,t,o),this._disposed)return void(null===(h=(f=i).close)||void 0===h||h.call(f));if(e=M(ge,this)?M(ge,this).call(this):0,n=N(Ve,this,Y_).call(this,e),o<e||o>n)return void(null===(p=(m=i).close)||void 0===p||p.call(m))}if(N(Ve,this,pT).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};M(he,this).push(r),N(Ve,this,mT).call(this),this.trigger("decoder:frame",r),N(Ve,this,Q_).call(this,o),this.log.debug(`[#handleDecodedFrame] [${M(Me,this).codec}] Decoded frame:`,r)}catch(t){this.log.warn(`[#handleDecodedFrame] [${M(Me,this).codec}] Failed to handle decoded frame`,t);try{var g,v;null===(g=(v=i).close)||void 0===g||g.call(v)}catch(t){}}}function pT(t){const e=N(Ve,this,Y_).call(this,t),n=[];M(he,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)})),C(he,this,n)}function mT(){const t=M(pe,this);if(!Number.isFinite(t)||t<=0)return;if(M(he,this).length<=t)return;const e=M(he,this).length-t;M(he,this).splice(0,e)}function gT(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function vT(){const t=M(pe,this);return!(!Number.isFinite(t)||t<=0)&&M(he,this).length>=t}function yT(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function bT(){var t;const e=M(me,this);if(!Number.isFinite(e)||e<=0)return!1;const n=Number(null===(t=M(Te,this))||void 0===t?void 0:t.decodeQueueSize);return!!Number.isFinite(n)&&n>=e}function kT(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}}let xT=class extends jc{get name(){return"DecoderFactory"}create(t,e){if(!t||!t.type)return new nx(e);const n=E_[t.type];return n?(this.log.debug(`[#create] [${t.type}] Creating decoder:`,n),new n(e)):new nx(e)}};class wT{#$;#j;#q;#V;constructor(t={}){this.#$=t.getActiveRenderPlacement,this.#j=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.#j?this.#j:()=>[],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 _T{#H;#G;#K;#X;#Y;#Q;constructor(t={}){this.#H=t.getNode,this.#G=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.#H?this.#H(i):void 0;if(!r)return;const o="function"==typeof this.#G?this.#G(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 TT=new Set(["video","audio","image"]);function IT(t){const e=Number(t);return Number.isFinite(e)?e:0}var ET=new WeakMap,ST=new WeakMap,NT=new WeakMap,AT=new WeakMap,MT=new WeakMap,FT=new WeakMap,CT=new WeakMap,OT=new WeakMap,PT=new WeakMap,RT=new WeakMap,DT=new WeakMap,BT=new WeakMap,LT=new WeakMap,zT=new WeakMap,WT=new WeakMap,UT=new WeakMap,$T=new WeakMap,jT=new WeakMap,qT=new WeakMap,VT=new WeakSet;class HT extends jc{constructor(...t){super(...t),O(this,VT),F(this,ET,void 0),F(this,ST,void 0),F(this,NT,void 0),F(this,AT,void 0),F(this,MT,void 0),F(this,FT,void 0),F(this,CT,void 0),F(this,OT,void 0),F(this,PT,void 0),F(this,RT,void 0),F(this,DT,void 0),F(this,BT,new Map),F(this,LT,new Map),F(this,zT,new Map),F(this,WT,new Map),F(this,UT,new Set),F(this,$T,0),F(this,jT,!1),F(this,qT,null);const[e,n,i]=t;C(ET,this,e),C(ST,this,n),C(NT,this,i||new xT),C(AT,this,new _T({getNode:t=>N(VT,this,gI).call(this,t),getPlacementState:t=>M(BT,this).get(t),getDecodeTracks:t=>N(VT,this,dI).call(this,t),getSegmentIdForTrackAtTime:(t,e,n)=>N(VT,this,tI).call(this,t,e,n),decodeLoadedMediaSegment:(t,e,n)=>{N(VT,this,DI).call(this,t,e,n)},decodeLoadedMediaSegmentsAfter:(t,e,n)=>{N(VT,this,NI).call(this,t,e,n)}})),C(MT,this,new wT({getActiveRenderPlacement:t=>{var e,n;return null===(e=M(ST,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=M(ST,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=M(AT,this))||void 0===n||null===(i=n.ensureDecodedForPlacementAtTime)||void 0===i||i.call(n,t,e)}})),N(VT,this,GT).call(this),N(VT,this,lI).call(this)}get name(){return"DecodeCoordinator"}onDispose(){var t,e;M(ST,this)&&"function"==typeof M(ST,this).off&&M(FT,this)&&M(ST,this).off(jp.PLACEMENT_ADDED,M(FT,this)),M(ST,this)&&"function"==typeof M(ST,this).off&&M(CT,this)&&M(ST,this).off(jp.TIMELINE_SEEKING,M(CT,this)),M(ST,this)&&"function"==typeof M(ST,this).off&&M(OT,this)&&M(ST,this).off(jp.TIMELINE_SEEKED,M(OT,this)),M(ST,this)&&"function"==typeof M(ST,this).off&&M(PT,this)&&M(ST,this).off(jp.TIMELINE_TIME_UPDATE,M(PT,this)),M(ST,this)&&"function"==typeof M(ST,this).off&&M(RT,this)&&M(ST,this).off(jp.TIMELINE_RESET,M(RT,this)),N(VT,this,KT).call(this),C(FT,this,null),C(CT,this,null),C(OT,this,null),C(PT,this,null),C(RT,this,null),null!==(t=M(AT,this))&&void 0!==t&&null!==(e=t.dispose)&&void 0!==e&&e.call(t),C(AT,this,null),M(MT,this)&&"function"==typeof M(MT,this).dispose&&M(MT,this).dispose(),C(MT,this,null),M(LT,this).forEach(((t,e)=>{const n=N(VT,this,gI).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),M(LT,this).clear(),M(zT,this).forEach(((t,e)=>{const n=N(VT,this,gI).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),M(zT,this).clear(),M(WT,this).clear(),M(UT,this).clear(),N(VT,this,oI).call(this),M(BT,this).forEach((({trackStates:t})=>{t&&t.forEach((t=>{N(VT,this,kI).call(this,t)}))})),M(BT,this).clear()}}function GT(){M(ST,this)&&"function"==typeof M(ST,this).on&&(C(FT,this,(t=>{N(VT,this,cI).call(this,t)})),M(ST,this).on(jp.PLACEMENT_ADDED,M(FT,this)),C(CT,this,(t=>N(VT,this,XT).call(this,t))),M(ST,this).on(jp.TIMELINE_SEEKING,M(CT,this)),C(OT,this,(()=>N(VT,this,YT).call(this))),M(ST,this).on(jp.TIMELINE_SEEKED,M(OT,this)),C(PT,this,(t=>N(VT,this,QT).call(this,t))),M(ST,this).on(jp.TIMELINE_TIME_UPDATE,M(PT,this)),C(RT,this,(()=>N(VT,this,JT).call(this))),M(ST,this).on(jp.TIMELINE_RESET,M(RT,this))),(null==Hc?void 0:Hc.document)&&"function"==typeof Hc.document.addEventListener&&(C(DT,this,(()=>{N(VT,this,sI).call(this)})),Hc.document.addEventListener("visibilitychange",M(DT,this)))}function KT(){M(DT,this)&&null!=Hc&&Hc.document&&"function"==typeof Hc.document.removeEventListener&&Hc.document.removeEventListener("visibilitychange",M(DT,this)),C(DT,this,null)}function XT(t={}){const e=Number(null==t?void 0:t.targetTime);Number.isFinite(e)&&(M(BT,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||(N(VT,this,ZT).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=M(BT,this).get(n);if(!r||!r.trackStates)return;const o=N(VT,this,gI).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||N(VT,this,ZT).call(this,n,r.placement||t,e)})),N(VT,this,SI).call(this,r.placement||t,o))})))}function YT(){M(BT,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 QT(t={}){var e,n;N(VT,this,EI).call(this,null==t?void 0:t.time),null!==(e=M(MT,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,t),N(VT,this,sI).call(this),N(VT,this,xI).call(this,null==t?void 0:t.time)}function JT(){M(LT,this).forEach(((t,e)=>{const n=N(VT,this,gI).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),M(LT,this).clear(),M(zT,this).forEach(((t,e)=>{const n=N(VT,this,gI).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),M(zT,this).clear(),M(WT,this).clear(),M(UT,this).clear(),M(BT,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()}))}))})),M(BT,this).clear()}function ZT(t,e,n){t&&(N(VT,this,kI).call(this,t),t.seekSegmentId=N(VT,this,tI).call(this,t.track,e,n))}function tI(t,e,n){if(!t||!e||!Array.isArray(t.segments))return null;const i=Hf(e);if(!Number.isFinite(i))return null;const r=IT(null==e?void 0:e.nodeOffsetOverride),o=Math.max(0,n-i+r),s=IT(null==t?void 0:t.offset),a=Math.max(0,o-s),l="function"==typeof t.getMediaSegmentAtTime?t.getMediaSegmentAtTime(a,{preferRepresentationTime:!0}):yv(t.segments,a,{preferRepresentationTime:!0});return(null==l?void 0:l.id)||null}function eI(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 nI(){const t=null==Hc?void 0:Hc.document;return!t||"string"!=typeof t.visibilityState||"visible"===t.visibilityState}function iI(){var t;const e=M(ST,this);if(!e||"number"!=typeof e.currentTime)return!1;if(e.state===Qp)return!1;const n=Date.now();if(n<M($T,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=N(VT,this,rI).call(this,i),!Number.isFinite(a))return!1;return C($T,this,n+1500),this.log.warn("[DecodeCoordinator] attempting decoder recovery seek"),e.currentTime=a,!0}function rI(t){var e;const n=M(ST,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=Hf(t);if(!Number.isFinite(e))return;(!Number.isFinite(d)||e<d)&&(d=e);const n=qf(t,M(ET,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 oI(){C(jT,this,!1),C(qT,this,null)}function sI(){M(jT,this)&&N(VT,this,nI).call(this)&&N(VT,this,iI).call(this)}function aI(t){if(!N(VT,this,eI).call(this,t))return;const e=M(ST,this);e&&"number"==typeof e.currentTime&&(C(jT,this,!0),C(qT,this,t),N(VT,this,nI).call(this)&&N(VT,this,iI).call(this))}function lI(t){var e;(Array.isArray(null===(e=M(ST,this))||void 0===e?void 0:e.placements)?[...M(ST,this).placements]:[]).filter((e=>"function"!=typeof t||t(e))).sort(((t,e)=>{const n=Hf(t),i=Hf(e);return(Number.isFinite(n)?n:Number.POSITIVE_INFINITY)-(Number.isFinite(i)?i:Number.POSITIVE_INFINITY)})).forEach((t=>{N(VT,this,cI).call(this,t)}))}async function cI(t){if(!t||!t.placementId||M(BT,this).has(t.placementId))return;const e=t.nodeId;if(!e||!M(ET,this)||"function"!=typeof M(ET,this).get)return;const n=N(VT,this,gI).call(this,e);if(n){if(n.state&&"ready"!==n.state){if("function"==typeof n.resolve)try{await n.resolve()}catch(t){return void this.log.warn(`[#processPlacement] Failed to resolve node ${e}`,t)}if("ready"!==n.state)return}if(N(VT,this,II).call(this,t))return N(VT,this,TI).call(this,t,n),void M(UT,this).add(t.placementId);N(VT,this,_I).call(this,t,n)}}function uI(t){return N(VT,this,dI).call(this,t).every((t=>N(VT,this,wI).call(this,t)))}function dI(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>TT.has(null==t?void 0:t.type)))}function hI(t){if(!t||!t.id||"function"!=typeof t.on)return;if(M(LT,this).has(t.id))return;const e=()=>{N(VT,this,AI).call(this,t.id)};t.on("node:loaded",e),M(LT,this).set(t.id,e)}function fI(t){if(!t||!t.id||"function"!=typeof t.on)return;if(M(zT,this).has(t.id))return;const e=t=>N(VT,this,MI).call(this,t);t.on("segment:chunk",e),M(zT,this).set(t.id,e)}function pI(t,e){if(!t||!e)return;const n=M(WT,this).get(t)||new Set;n.add(e),M(WT,this).set(t,n)}function mI(t){return M(WT,this).get(t)||new Set}function gI(t){if(t&&M(ET,this)&&"function"==typeof M(ET,this).get)return M(ET,this).get(t)}function vI(t){if(!t)return;const e=t.fullBufferRetryTimer;null!=e&&("function"==typeof(null==Hc?void 0:Hc.clearTimeout)?Hc.clearTimeout.bind(Hc):clearTimeout)(e),t.fullBufferRetryTimer=null,t.fullBufferDecodeScheduled=!1,t.fullBufferRetryAttempts=0}function yI(t){const e=null==t?void 0:t.segmentStates;e&&"function"==typeof e.forEach&&e.forEach((t=>{N(VT,this,vI).call(this,t)}))}function bI(t,e,n,i){var r,o;if(!(t&&e&&n&&i))return!1;const s=M(BT,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 kI(t){if(!t)return;N(VT,this,yI).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 xI(t){const e=IT(t);if(!Number.isFinite(e))return;const n=e-2;Number.isFinite(n)&&M(BT,this).forEach((t=>{const e=null==t?void 0:t.placement;if(!e)return;const i=Hf(e),r=qf(e,M(ET,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||N(VT,this,kI).call(this,t)}))}))}function wI(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 _I(t,e){if(this.log.debug(`[#startDecode] [${t.placementId}] [${e.id}] Starting decode`),N(VT,this,TI).call(this,t,e)){if(N(VT,this,pI).call(this,e.id,t.placementId),!N(VT,this,uI).call(this,e))return N(VT,this,hI).call(this,e),void N(VT,this,fI).call(this,e);N(VT,this,SI).call(this,t,e),N(VT,this,fI).call(this,e)}}function TI(t,e){if(!t||!t.placementId||!e)return;const n=M(BT,this).get(t.placementId);if(n)return n.placement=t,n;const i=N(VT,this,dI).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(jp.DECODE_ERROR,Hp({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 M(BT,this).set(t.placementId,o),o}function II(t){var e;const n=Hf(t),i=IT(null===(e=M(ST,this))||void 0===e?void 0:e.currentTime);return!Number.isFinite(n)||!!Number.isFinite(i)&&n-i>2}function EI(t){if(!M(UT,this).size)return;const e=IT(t);if(!Number.isFinite(e))return;const n=[];M(UT,this).forEach((t=>{const i=M(BT,this).get(t),r=null==i?void 0:i.placement;if(!r)return void n.push(t);const o=Hf(r);Number.isFinite(o)&&o-e<=2&&n.push(t)})),n.forEach((t=>{M(UT,this).delete(t);const e=M(BT,this).get(t),n=null==e?void 0:e.placement;if(!n)return;const i=N(VT,this,gI).call(this,n.nodeId);i&&N(VT,this,_I).call(this,n,i)}))}function SI(t,e){const n=M(BT,this).get(t.placementId);n&&N(VT,this,dI).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;N(VT,this,DI).call(this,t,i,n),r.seekSegmentId&&"video"===(null==i?void 0:i.type)&&N(VT,this,NI).call(this,t,i,n),r.ready=!0,this.trigger(jp.DECODE_READY,Vp({placementId:t.placementId,nodeId:e.id,trackId:i.id,trackType:i.type}))}catch(n){this.trigger(jp.DECODE_ERROR,Hp({placementId:t.placementId,nodeId:e.id,trackId:null==i?void 0:i.id,trackType:null==i?void 0:i.type,error:n}))}}))}function NI(t,e,n){var i;if(!(t&&e&&n&&Array.isArray(e.segments)))return;const r=null==t?void 0:t.placementId,o=r?M(BT,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(N(VT,this,DI).call(this,t,e,i),u+=1,u>=2)break}}function AI(t){const e=N(VT,this,gI).call(this,t);e&&N(VT,this,uI).call(this,e)&&N(VT,this,mI).call(this,t).forEach((t=>{const n=M(BT,this).get(t);N(VT,this,SI).call(this,(null==n?void 0:n.placement)||{placementId:t},e)}))}function MI(t){t&&t.nodeId&&t.trackId&&t.chunk&&N(VT,this,mI).call(this,t.nodeId).forEach((e=>N(VT,this,FI).call(this,e,t)))}function FI(t,e){const n=M(BT,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&&N(VT,this,DI).call(this,n.placement,s,a)&&(i.ready=!0,this.trigger(jp.DECODE_READY,Vp({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType}))));if((null===(o=M(ST,this))||void 0===o?void 0:o.state)===Qp&&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=N(VT,this,PI).call(this,n.placement,s,a);if(!u||"function"!=typeof u.decodeChunk)return;if(i.hasInit&&!c.initSent){const t=N(VT,this,RI).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;N(VT,this,CI).call(this,c,e)?d&&!c.ended&&N(VT,this,OI).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(jp.DECODE_READY,Vp({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType})))}catch(n){this.trigger(jp.DECODE_ERROR,Hp({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType,error:n}))}}function CI(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 OI(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==Hc?void 0:Hc.setTimeout)?Hc.setTimeout.bind(Hc):setTimeout;i.fullBufferDecodeScheduled=!0,i.fullBufferRetryAttempts=0;const l=()=>{if(!N(VT,this,bI).call(this,r,o,s,i)||i.ended)return void N(VT,this,vI).call(this,i);if(N(VT,this,DI).call(this,t,e,n))return void N(VT,this,vI).call(this,i);i.fullBufferRetryAttempts+=1;const c=i.fullBufferRetryAttempts<=8?0:50;i.fullBufferRetryTimer=a((()=>{l()}),c)};i.fullBufferRetryTimer=a((()=>{l()}),0)}function PI(t,e,n){var i,r;const o=null==t?void 0:t.placementId;if(!o||!e||!n)return;const s=M(BT,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=M(NT,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=M(ST,this))||void 0===t?void 0:t.currentTime)?M(ST,this).currentTime:0})),c&&"function"==typeof c.setTimeOffsetSeconds){var u,d;const i=Hf(t),r=IT(null==e?void 0:e.offset),o=IT(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=M(ST,this))||void 0===r?void 0:r.state)===Qp&&"video"===(null==e?void 0:e.type)&&c.setSeekTargetTimeSeconds(M(ST,this).currentTime),c&&"function"==typeof c.on&&(c.on(jp.DECODER_FRAME,(i=>{i&&(!M(jT,this)||"video"!==(null==e?void 0:e.type)&&"image"!==(null==e?void 0:e.type)||(C(jT,this,!1),C(qT,this,null)),M(ST,this)&&"function"==typeof M(ST,this).notifyDecodedFrame&&(i.frame||i.data)&&M(ST,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(jp.DECODER_AUDIO,(i=>{i&&i.audioBuffer&&this.trigger(jp.DECODER_AUDIO,Vp({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(jp.DECODER_ERROR,(i=>{const r=(null==i?void 0:i.error)||i;this.trigger(jp.DECODER_ERROR,Hp({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})),N(VT,this,aI).call(this,r)}))),a.segmentDecoders.set(n.id,c),c}function RI(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 DI(t,e,n){var i;if(!t||!e||!n)return!1;const r=t.placementId,o=M(BT,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=N(VT,this,PI).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 N(VT,this,vI).call(this,l),!0;if(s.hasInit&&!l.initSent){const t=N(VT,this,RI).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()),N(VT,this,vI).call(this,l),0))}const BI=1e-6;var LI=new WeakMap,zI=new WeakMap,WI=new WeakMap,UI=new WeakMap,$I=new WeakMap,jI=new WeakMap,qI=new WeakMap,VI=new WeakMap,HI=new WeakSet;class GI extends jc{get name(){return"TransitionManager"}get defaults(){return{durationSeconds:.5}}constructor(t,e,n){super(n),O(this,HI),F(this,LI,void 0),F(this,zI,void 0),F(this,WI,null),F(this,UI,null),F(this,$I,null),F(this,jI,0),F(this,qI,[]),F(this,VI,null),C(LI,this,t),C(zI,this,e),M(LI,this)&&"function"==typeof M(LI,this).on&&(C(VI,this,(()=>N(HI,this,nE).call(this))),M(LI,this).on(jp.TIMELINE_RESET,M(VI,this)))}transitionTo(t,e={}){const n=Number(t);if(!Number.isFinite(n))throw new Error("TransitionManager.transitionTo requires a numeric time");N(HI,this,nE).call(this);const i=N(HI,this,KI).call(this),r=N(HI,this,JI).call(this,n,e);return r?N(HI,this,ZI).call(this,n,e,i,r):Promise.resolve()}onDispose(){M(LI,this)&&"function"==typeof M(LI,this).off&&M(VI,this)&&M(LI,this).off(jp.TIMELINE_RESET,M(VI,this)),C(VI,this,null),N(HI,this,nE).call(this),C(zI,this,null),C(LI,this,null)}}function KI(){return C(jI,this,M(jI,this)+1),M(jI,this)}function XI(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 YI(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 QI(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 JI(t,e={}){var n;const i=M(zI,this),r=N(HI,this,XI).call(this,e);if(!i||"function"!=typeof i.startTransition)return M(LI,this).currentTime=t,null;if(!(r>0))return M(LI,this).currentTime=t,null!==(n=i.resetTransition)&&void 0!==n&&n.call(i),null;const o=N(HI,this,YI).call(this,e,r);"function"==typeof(null==e?void 0:e.onTransitionInStart)&&e.onTransitionInStart();const s=i.startTransition(o),{outDurationMs:a,inDurationMs:l}=N(HI,this,QI).call(this,r,s);return{renderer:i,transitionOptions:o,outDurationMs:a,inDurationMs:l,shouldWaitForFrames:!1!==(null==e?void 0:e.waitForVisualFrames)}}function ZI(t,e={},n,i){const{renderer:r,transitionOptions:o,outDurationMs:s,inDurationMs:a,shouldWaitForFrames:l}=i,c=N(HI,this,aE).call(this,t,e,n),u=l?N(HI,this,lE).call(this,t,n):Promise.resolve();let d=!1,h=!1,f=!1,p=!l;const m=()=>{var t;N(HI,this,iE).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),C(UI,this,setTimeout((()=>{var t;N(HI,this,iE).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),"function"==typeof(null==e?void 0:e.onTransitionOutEnd)&&e.onTransitionOutEnd(),N(HI,this,tE).call(this))}),a)))};return C(WI,this,setTimeout((()=>{d=!0,m()}),s)),c.then((()=>{h=!0,m()})).catch((()=>{var t;N(HI,this,iE).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),N(HI,this,tE).call(this))})),u.then((()=>{p=!0,m()})).catch((()=>{p=!0,m()})),M(LI,this).currentTime=t,new Promise((t=>{C($I,this,t)}))}function tE(){const t=M($I,this);C($I,this,null),N(HI,this,eE).call(this),N(HI,this,sE).call(this),t&&t()}function eE(){M(WI,this)&&clearTimeout(M(WI,this)),M(UI,this)&&clearTimeout(M(UI,this)),C(WI,this,null),C(UI,this,null)}function nE(){var t,e;M(zI,this)&&null!==(t=(e=M(zI,this)).resetTransition)&&void 0!==t&&t.call(e),N(HI,this,eE).call(this),N(HI,this,sE).call(this),M($I,this)&&(M($I,this).call(this),C($I,this,null))}function iE(t){return M(jI,this)===t}function rE(t,e){M(LI,this)&&"function"==typeof M(LI,this).on&&(M(LI,this).on(t,e),M(qI,this).push({eventName:t,handler:e}))}function oE(t,e){M(LI,this)&&"function"==typeof M(LI,this).off&&(M(LI,this).off(t,e),C(qI,this,M(qI,this).filter((n=>n.eventName!==t||n.handler!==e))))}function sE(){M(LI,this)&&"function"==typeof M(LI,this).off?(M(qI,this).forEach((t=>{M(LI,this).off(t.eventName,t.handler)})),C(qI,this,[])):C(qI,this,[])}function aE(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(!M(LI,this)||"function"!=typeof M(LI,this).on)return Promise.resolve();const r=N(HI,this,cE).call(this);return new Promise((e=>{let i=!1;const o=r?jp.TIMELINE_SEEKED:"nodestart";let s,a;const l=()=>{N(HI,this,oE).call(this,jp.TIMELINE_SEEKING,s),N(HI,this,oE).call(this,o,a),e()};s=(e={})=>{N(HI,this,iE).call(this,n)?N(HI,this,uE).call(this,e,t)&&(i=!0):l()},a=(e={})=>{N(HI,this,iE).call(this,n)?(o!==jp.TIMELINE_SEEKED||N(HI,this,uE).call(this,e,t))&&(o===jp.TIMELINE_SEEKED||i)&&l():l()},N(HI,this,rE).call(this,jp.TIMELINE_SEEKING,s),N(HI,this,rE).call(this,o,a)}))}function lE(t,e){if(!M(LI,this)||"function"!=typeof M(LI,this).on)return Promise.resolve();const n=Number(t);return new Promise((t=>{const i=(r={})=>{if(!N(HI,this,iE).call(this,e))return N(HI,this,oE).call(this,jp.VISUAL_FRAMES_AVAILABLE,i),void t();const o=Number(null==r?void 0:r.time);Number.isFinite(n)&&Number.isFinite(o)&&o+BI<n||(Array.isArray(null==r?void 0:r.frames)?r.frames:[]).length&&(N(HI,this,oE).call(this,jp.VISUAL_FRAMES_AVAILABLE,i),t())};N(HI,this,rE).call(this,jp.VISUAL_FRAMES_AVAILABLE,i)}))}function cE(){var t,e;const n=null===(t=M(LI,this))||void 0===t?void 0:t.state;if(n===Yp||n===Gp)return!0;const i=null===(e=M(LI,this))||void 0===e?void 0:e.placements;return!Array.isArray(i)||0===i.length}function uE(t,e){const n=Number(null==t?void 0:t.targetTime);return!Number.isFinite(n)||Math.abs(n-e)<BI}function dE(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}var hE=new WeakMap,fE=new WeakMap,pE=new WeakMap,mE=new WeakMap,gE=new WeakMap,vE=new WeakMap,yE=new WeakMap,bE=new WeakMap,kE=new WeakMap,xE=new WeakMap,wE=new WeakMap,_E=new WeakMap,TE=new WeakMap,IE=new WeakMap,EE=new WeakSet;class SE extends jc{get name(){return"AudioPlaybackManager"}get defaults(){return{muted:!1,volume:1,lookaheadSeconds:1}}constructor(t,e,n){super(n),O(this,EE),F(this,hE,void 0),F(this,fE,void 0),F(this,pE,null),F(this,mE,null),F(this,gE,[]),F(this,vE,new Set),F(this,yE,new Map),F(this,bE,!1),F(this,kE,1),F(this,xE,!0),F(this,wE,null),F(this,_E,null),F(this,TE,null),F(this,IE,null),C(hE,this,t),C(fE,this,e),C(bE,this,!!this.settings.muted),C(kE,this,$f(this.settings.volume));const i=Array.isArray(null==n?void 0:n.disabledTracks)?n.disabledTracks:[];C(xE,this,!i.includes("audio")),N(EE,this,NE).call(this)}get muted(){return M(bE,this)}set muted(t){C(bE,this,!!t),N(EE,this,zE).call(this)}get volume(){return M(kE,this)}set volume(t){C(kE,this,$f(t)),N(EE,this,zE).call(this)}handleDecodedAudio(t={}){if(!M(xE,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=dE(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}`;M(vE,this).has(s)||(M(gE,this).push({key:s,placementId:n,pts:r,duration:o,audioBuffer:e}),M(gE,this).sort(((t,e)=>t.pts-e.pts)),N(EE,this,OE).call(this))}onDispose(){N(EE,this,AE).call(this),N(EE,this,BE).call(this,!0),M(pE,this)&&"function"==typeof M(pE,this).close&&M(pE,this).close(),C(pE,this,null),C(mE,this,null),C(hE,this,null),C(fE,this,null)}}function NE(){M(hE,this)&&"function"==typeof M(hE,this).on&&(C(wE,this,(t=>N(EE,this,ME).call(this,t))),M(hE,this).on(jp.TIMELINE_TIME_UPDATE,M(wE,this)),C(_E,this,(t=>N(EE,this,FE).call(this,t))),M(hE,this).on(jp.TIMELINE_STATE_CHANGE,M(_E,this)),C(IE,this,(()=>N(EE,this,CE).call(this))),M(hE,this).on(jp.TIMELINE_RESET,M(IE,this))),M(fE,this)&&"function"==typeof M(fE,this).on&&(C(TE,this,(t=>this.handleDecodedAudio(t))),M(fE,this).on(jp.DECODER_AUDIO,M(TE,this)))}function AE(){M(hE,this)&&"function"==typeof M(hE,this).off&&(M(wE,this)&&M(hE,this).off(jp.TIMELINE_TIME_UPDATE,M(wE,this)),M(_E,this)&&M(hE,this).off(jp.TIMELINE_STATE_CHANGE,M(_E,this)),M(IE,this)&&M(hE,this).off(jp.TIMELINE_RESET,M(IE,this))),M(fE,this)&&"function"==typeof M(fE,this).off&&M(TE,this)&&M(fE,this).off(jp.DECODER_AUDIO,M(TE,this)),C(wE,this,null),C(_E,this,null),C(TE,this,null),C(IE,this,null)}function ME(){N(EE,this,OE).call(this)}function FE(t={}){const e=null==t?void 0:t.to;if(e)return e===Kp?(N(EE,this,WE).call(this),void N(EE,this,OE).call(this)):void(e!==Yp&&e!==Xp?e!==Qp&&e!==Jp||N(EE,this,CE).call(this):N(EE,this,UE).call(this))}function CE(){N(EE,this,UE).call(this),N(EE,this,BE).call(this,!0),C(gE,this,[])}function OE(){if(!M(xE,this)||!M(hE,this))return;if(M(hE,this).state!==Kp)return;const t=N(EE,this,LE).call(this);if(!t)return;const e=dE(M(hE,this).currentTime,0),n=e+Math.max(0,dE(this.settings.lookaheadSeconds,1)),i=[];for(let r=0;r<M(gE,this).length;r+=1){const o=M(gE,this)[r];o&&(o.pts>n?i.push(o):N(EE,this,PE).call(this,o)&&N(EE,this,DE).call(this,o,t,e))}C(gE,this,i)}function PE(t){if(!t||!M(hE,this))return!1;const e=N(EE,this,RE).call(this,t.pts);return!(!e||e!==t.placementId)}function RE(t){if(!M(hE,this)||"function"!=typeof M(hE,this).getPlacementsActiveAtTime)return null;const e=M(hE,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 DE(t,e,n){const i=t.key;if(M(vE,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(M(mE,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)}M(vE,this).add(i),M(yE,this).set(i,l),l.onended=()=>{M(yE,this).delete(i)}}function BE(t){M(yE,this).forEach(((t,e)=>{if(t&&"function"==typeof t.stop)try{t.stop()}catch(t){}M(yE,this).delete(e)})),t&&M(vE,this).clear()}function LE(){if(M(pE,this))return M(pE,this);const t=Hc.AudioContext||Hc.webkitAudioContext;if(!t)return this.log.warn("[AudioPlaybackManager] AudioContext is not available."),null;try{return C(pE,this,new t),C(mE,this,M(pE,this).createGain()),M(mE,this).connect(M(pE,this).destination),N(EE,this,zE).call(this),M(pE,this)}catch(t){return this.log.warn("[AudioPlaybackManager] Failed to initialize AudioContext",t),C(pE,this,null),C(mE,this,null),null}}function zE(){if(!M(mE,this))return;const t=M(bE,this)?0:M(kE,this);M(mE,this).gain.value=t}function WE(){M(pE,this)&&"function"==typeof M(pE,this).resume&&"suspended"===M(pE,this).state&&M(pE,this).resume().catch((()=>{}))}function UE(){M(pE,this)&&"function"==typeof M(pE,this).suspend&&"running"===M(pE,this).state&&M(pE,this).suspend().catch((()=>{}))}var $E=new WeakMap,jE=new WeakMap,qE=new WeakMap,VE=new WeakMap,HE=new WeakMap,GE=new WeakSet;class KE extends jc{constructor(...t){super(...t),O(this,GE),F(this,$E,void 0),F(this,jE,void 0),F(this,qE,void 0),F(this,VE,void 0),F(this,HE,void 0),C($E,this,N(GE,this,YE).call(this,this.settings.currentTime)),C(jE,this,N(GE,this,QE).call(this,this.settings.playbackRate)),C(qE,this,null),C(VE,this,!1),C(HE,this,N(GE,this,XE).bind(this))}get name(){return"PlaybackClock"}get defaults(){return{currentTime:0,playbackRate:Qg("playbackRate")}}get currentTime(){return M($E,this)}get playbackRate(){return M(jE,this)}set playbackRate(t){C(jE,this,N(GE,this,QE).call(this,t))}play(){M(VE,this)||(C(VE,this,!0),C(qE,this,Pg()),mb(M(HE,this),0))}pause(){M(VE,this)&&(C(VE,this,!1),gb(M(HE,this)))}seek(t){C($E,this,N(GE,this,YE).call(this,t)),C(qE,this,Pg())}reset(){this.pause(),C($E,this,0),C(qE,this,null)}onDispose(){this.pause(),C(HE,this,null)}}function XE(){const t=Pg();if(null===M(qE,this))return C(qE,this,t),void this.trigger(jp.CLOCK_TICK,{currentTime:M($E,this)});const e=t-M(qE,this);C(qE,this,t);const n=e/1e3;C($E,this,M($E,this)+n*M(jE,this)),this.trigger(jp.CLOCK_TICK,{currentTime:M($E,this)})}function YE(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<0?0:t}function QE(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<=0?M(jE,this)||1:t}var JE=new WeakMap,ZE=new WeakSet;class tS extends jc{constructor(...t){super(...t),O(this,ZE),F(this,JE,new Map)}get name(){return"TrackBuffers"}get defaults(){return{}}refreshNode(t){if(!t||!Array.isArray(t.tracks))return;const e=t.id,n=M(JE,this).get(e)||new Map;M(JE,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(jp.TRACK_BUFFER_UPDATE,{nodeId:e,trackType:i,range:r})),!s&&a?this.trigger(jp.TRACK_READY,{nodeId:e,trackType:i,range:r}):s&&!a&&this.trigger(jp.TRACK_UNDERFLOW,{nodeId:e,trackType:i,range:r})}))}getTrackRange(t,e){const n=M(JE,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=N(ZE,this,nS).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 M(JE,this)}reset(){M(JE,this).clear()}onDispose(){M(JE,this).clear(),"function"==typeof this.off&&this.off()}}function eS(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 nS(t,e,n=0){var i,r;const o=Hf(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 N(ZE,this,iS).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=N(ZE,this,eS).call(this,d,u)||(null===(r=d)||void 0===r?void 0:r.buffered);return h&&Number.isFinite(h.start)&&Number.isFinite(h.end)?N(ZE,this,iS).call(this,s,h,o,e):void 0}function iS(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 rS{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 oS extends jc{constructor(t,e){super(e),this.timeline=t}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"handleDecodedFrame","handleClockTick","handleMainTrackBufferUpdate"])}enter(){}exit(){}play(){this.timeline.transitionTo(Kp)}pause(){this.timeline.transitionTo(Yp)}wait(){this.timeline.transitionTo(Xp)}reset(){this.timeline.transitionTo(Jp)}seek(t){this.timeline.transitionTo(Qp,{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()||Yp;this.timeline.transitionTo(e)}handleMainTrackBufferUpdate(t){}handleDecodedFrame(t){}handleClockTick(t){}onDispose(){this.timeline=null}}const sS=24e3/1001;function aS(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 lS(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 cS(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 uS(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 dS(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:sS)}(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+lS(t)}function hS(t,e=(null==t?void 0:t.currentTime)){const n=aS(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=cS(o);if(!s)return!0;if(!t.hasDecodedFirstFrame(r,s))return!0}return!1}function fS(t,e=(null==t?void 0:t.currentTime)){return hS(t,e)||function(t,e=(null==t?void 0:t.currentTime)){const n=aS(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=uS(s);if(null!=a&&a.id&&!dS(t,o,a.id,a.type,n))return!0}return!1}(t,e)}function pS(t,e=(null==t?void 0:t.currentTime)){if("function"!=typeof(null==t?void 0:t.computeBuffered))return!1;const n=aS(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=lS(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=Hf(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 mS={[Gp]:class extends oS{get name(){return Gp}get defaults(){return{autoplay:Qg("autoplay")}}enter(){this.timeline.recordStableState(Yp),this.timeline.stopPlaybackClock()}play(){const t=fS(this.timeline),e=t?Xp:Kp;if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(Kp),void this.timeline.transitionTo(Xp);this.timeline.transitionTo(Kp)}pause(){}handleDecodedFrame(t){!0===this.settings.autoplay&&Array.isArray(this.timeline.placements)&&this.timeline.placements.length&&(fS(this.timeline)||(this.log.info("[handleDecodedFrame] Autoplay enabled, transitioning to Playing!"),this.emitPlayerStateEvent("play",{from:this.timeline.state,to:Kp}),this.timeline.transitionTo(Kp)))}},[Kp]:class extends oS{get name(){return Kp}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(Kp),this.timeline.startPlaybackClock(),this.emitPlayerStateEvent("canplay",{from:e,to:n}),this.emitPlayerStateEvent("playing",{from:e,to:n})}play(){}pause(){this.timeline.transitionTo(Yp)}handleClockTick(t){const e=this.timeline.currentTime;fS(this.timeline,e)&&(this.timeline.recordStableState(Kp),this.timeline.transitionTo(Xp))}},[Xp]:(tn=new WeakMap,en=new WeakMap,nn=new WeakSet,class extends oS{constructor(...t){super(...t),O(this,nn),F(this,tn,void 0),F(this,en,null)}get name(){return Xp}enter(t={}){const{from:e,to:n}=t;this.timeline.stopPlaybackClock(),N(nn,this,gS).call(this),N(nn,this,yS).call(this),this.emitPlayerStateEvent("waiting",{from:e,to:n}),N(nn,this,xS).call(this)}exit(){N(nn,this,vS).call(this),N(nn,this,bS).call(this)}play(){this.timeline.recordStableState(Kp);const t=N(nn,this,kS).call(this),e=t?Xp:Kp;this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t||this.timeline.transitionTo(Kp)}pause(){this.timeline.transitionTo(Yp)}handleMainTrackReady(t){const e=this.timeline.getLastStableState()||Yp;e!==Kp?this.timeline.transitionTo(e):N(nn,this,xS).call(this)}handleDecodedFrame(t){N(nn,this,xS).call(this)}handleMainTrackBufferUpdate(t){N(nn,this,xS).call(this)}}),[Yp]:class extends oS{get name(){return Yp}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(Yp),this.timeline.stopPlaybackClock(),this.emitPlayerStateEvent("pause",{from:e,to:n})}play(){const t=fS(this.timeline),e=t?Xp:Kp;if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(Kp),void this.timeline.transitionTo(Xp);this.timeline.transitionTo(Kp)}pause(){}},[Qp]:class extends oS{get name(){return Qp}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===Kp?Kp:Yp;this.timeline.transitionTo(i,{fromSeeking:!0})}play(){this.timeline&&"function"==typeof this.timeline.setSeekReturnState?this.timeline.setSeekReturnState(Kp):this.timeline.transitionTo(Kp)}pause(){this.timeline&&"function"==typeof this.timeline.setSeekReturnState?this.timeline.setSeekReturnState(Yp):this.timeline.transitionTo(Yp)}handleDecodedFrame(t){this.timeline&&"function"==typeof this.timeline.maybeCompleteSeek&&this.timeline.maybeCompleteSeek(t)}},[Jp]:class extends oS{get name(){return Jp}enter(){this.timeline.resetClock(),this.timeline.transitionTo(Gp,{fromReset:!0})}play(){}pause(){}get buffered(){return{start:0,end:0}}}};function gS(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;e&&"function"==typeof e.on&&(C(tn,this,(t=>this.handleMainTrackBufferUpdate(t))),e.on(jp.TRACK_BUFFER_UPDATE,M(tn,this)))}function vS(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;M(tn,this)&&e&&"function"==typeof e.off?(e.off(jp.TRACK_BUFFER_UPDATE,M(tn,this)),C(tn,this,null)):C(tn,this,null)}function yS(){if(null!==M(en,this))return;const t="function"==typeof(null==Hc?void 0:Hc.setInterval)?Hc.setInterval.bind(Hc):setInterval;C(en,this,t((()=>{var t;(null===(t=this.timeline)||void 0===t?void 0:t.state)===Xp&&N(nn,this,xS).call(this)}),200))}function bS(){null!==M(en,this)&&(("function"==typeof(null==Hc?void 0:Hc.clearInterval)?Hc.clearInterval.bind(Hc):clearInterval)(M(en,this)),C(en,this,null))}function kS(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!!hS(t,e)||!0===n.skipBufferResume||!pS(t,e)}(this.timeline,t)}function xS(t=(t=>null===(t=this.timeline)||void 0===t?void 0:t.currentTime)()){return(this.timeline.getLastStableState()||Yp)===Kp&&!N(nn,this,kS).call(this,t)&&(this.timeline.transitionTo(Kp),!0)}function wS(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function _S(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).some((t=>"video"===(null==t?void 0:t.type)))}function TS(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)))}var IS=new WeakMap,ES=new WeakMap,SS=new WeakMap,NS=new WeakMap,AS=new WeakMap,MS=new WeakMap,FS=new WeakMap,CS=new WeakMap,OS=new WeakMap,PS=new WeakMap,RS=new WeakMap,DS=new WeakMap,BS=new WeakMap,LS=new WeakSet;class zS{constructor(t={}){O(this,LS),F(this,IS,void 0),F(this,ES,void 0),F(this,SS,void 0),F(this,NS,void 0),F(this,AS,void 0),F(this,MS,void 0),F(this,FS,void 0),F(this,CS,void 0),F(this,OS,null),F(this,PS,Yp),F(this,RS,[]),F(this,DS,new Set),F(this,BS,new Map),C(IS,this,t.getState),C(ES,this,t.getNode),C(SS,this,t.getPlacementsActiveAtTime),C(NS,this,t.getLastStableState),C(AS,this,t.clearVisualFrameBuffers),C(MS,this,t.updateTime),C(FS,this,t.transitionTo),C(CS,this,t.trigger)}start(t,e){const n=Number(t);if(!Number.isFinite(n))return;let i=e;i===Qp?i=M(PS,this):i===Xp&&"function"==typeof M(NS,this)&&(i=M(NS,this).call(this)),C(PS,this,i===Kp?Kp:Yp),C(OS,this,n),M(DS,this).clear(),M(BS,this).clear(),C(RS,this,"function"==typeof M(SS,this)?M(SS,this).call(this,n):[]),"function"==typeof M(AS,this)&&M(AS,this).call(this),"function"==typeof M(MS,this)&&M(MS,this).call(this,n,{source:"seek"}),"function"==typeof M(CS,this)&&M(CS,this).call(this,jp.TIMELINE_SEEKING,{targetTime:n,placements:M(RS,this).slice()}),this.maybeComplete()}setReturnState(t){C(PS,this,t===Kp?Kp:Yp)}maybeComplete(t){if(("function"==typeof M(IS,this)?M(IS,this).call(this):void 0)!==Qp)return;const e=M(OS,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){M(DS,this).add(i);const t=M(BS,this).get(i);(!Number.isFinite(t)||n<t)&&M(BS,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)&&M(DS,this).add(i);const r=Array.isArray(M(RS,this))?M(RS,this):[];if(r.length){if("function"==typeof M(ES,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=M(ES,this).call(this,e.nodeId);if(!wS(i))return;if(TS(i)&&!M(DS,this).has(n))return}N(LS,this,WS).call(this,e,r)}}else N(LS,this,WS).call(this,e,[])}dispose(){C(RS,this,[]),M(DS,this).clear(),M(BS,this).clear(),C(OS,this,null)}}function WS(t,e){const n=N(LS,this,US).call(this,t,e);"function"==typeof M(MS,this)&&M(MS,this).call(this,n,{source:"seek"}),C(OS,this,null),C(RS,this,[]),M(DS,this).clear(),M(BS,this).clear(),"function"==typeof M(CS,this)&&M(CS,this).call(this,jp.TIMELINE_SEEKED,{targetTime:t,placements:Array.isArray(e)?e.slice():[]}),"function"==typeof M(FS,this)&&M(FS,this).call(this,M(PS,this),{fromSeeking:!0})}function US(t,e){const n=Number(t);if(!Number.isFinite(n))return t;if(!Array.isArray(e)||!e.length||"function"!=typeof M(ES,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(!_S(M(ES,this).call(this,n.nodeId)))continue;const o=M(BS,this).get(r);Number.isFinite(o)&&o>i&&(i=o)}return i}function $S(t){if(t&&"function"==typeof t.close)try{t.close()}catch(t){}}function jS(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=>$S(null==t?void 0:t.frame)))}function qS(t){return Hf(t)}function VS(t){return Number.isFinite(null==t?void 0:t.loopRootOffset)?t.loopRootOffset:qS(t)}function HS(t,e){return"string"==typeof(null==t?void 0:t.loopRootPlacementId)&&t.loopRootPlacementId?t.loopRootPlacementId:e}function GS(t){if("string"!=typeof t)return Number.NaN;const e=t.match(/(\d+)/);return e?Number(e[1]):Number.NaN}function KS(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 XS=1e-6;function YS(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function QS(t){const e=Number(t);return Number.isFinite(e)?e:0}function JS(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 ZS(t){return t&&"cue"===t.type&&Array.isArray(t.cues)?t.cues:[]}var tN=new WeakMap,eN=new WeakMap,nN=new WeakMap,iN=new WeakMap,rN=new WeakMap,oN=new WeakMap,sN=new WeakMap,aN=new WeakMap,lN=new WeakSet;class cN{constructor(t={}){O(this,lN),F(this,tN,void 0),F(this,eN,void 0),F(this,nN,void 0),F(this,iN,void 0),F(this,rN,void 0),F(this,oN,void 0),F(this,sN,-1e-6),F(this,aN,null),C(tN,this,t.getPlacements),C(eN,this,t.getPlacementsActiveAtTime),C(nN,this,t.getPlacementDuration),C(iN,this,t.getNode),C(rN,this,t.triggerTimeline),C(oN,this,t.triggerNode)}handleSeeking(t,e){const n=QS(t);C(aN,this,n)}handleSeeked(t){const e=QS(t),n=M(aN,this);C(aN,this,null),Number.isFinite(n)?(N(lN,this,dN).call(this,n,e),C(sN,this,e)):C(sN,this,e)}handleTimeUpdate(t,e={}){const n=QS(t),i=M(sN,this);!0===(null==e?void 0:e.isSeeking)?C(sN,this,n):Number.isFinite(i)?n<=i?n<i&&C(sN,this,n-XS):(N(lN,this,uN).call(this,i,n),C(sN,this,n)):C(sN,this,n)}dispose(){C(aN,this,null),C(sN,this,-1e-6)}}function uN(t,e){const n="function"==typeof M(tN,this)?M(tN,this).call(this):[];N(lN,this,hN).call(this,n,t,e,{onlySticky:!1})}function dN(t,e){if("function"!=typeof M(eN,this))return;const n=M(eN,this).call(this,e);N(lN,this,hN).call(this,n,t,e,{onlySticky:!0})}function hN(t,e,n,i={}){if("function"!=typeof M(iN,this)||"function"!=typeof M(rN,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=M(iN,this).call(this,l);if(!YS(c))continue;const u=JS(c);if(!u.length)continue;const d=Hf(s);if(!Number.isFinite(d))continue;const h=Number.isFinite(null==s?void 0:s.nodeOffsetOverride)?s.nodeOffsetOverride:0,f="function"==typeof M(nN,this)?M(nN,this).call(this,s):void 0,p="number"==typeof f&&Number.isFinite(f)?d+f:Number.POSITIVE_INFINITY,m=r?d-XS:e;for(let t=0;t<u.length;t+=1){const e=ZS(u[t]);for(let i=0;i<e.length;i+=1){const s=e[i],c=QS(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};M(rN,this).call(this,"cuepoint",n),M(rN,this).call(this,e.name,n),"function"==typeof M(oN,this)&&(M(oN,this).call(this,t.nodeId,"cuepoint",n),M(oN,this).call(this,t.nodeId,e.name,n))})))}class fN{#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 pN=24e3/1001;function mN(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}:KS(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 gN=new WeakMap,vN=new WeakMap,yN=new WeakMap,bN=new WeakMap,kN=new WeakMap,xN=new WeakMap,wN=new WeakMap,_N=new WeakMap,TN=new WeakMap,IN=new WeakMap,EN=new WeakMap,SN=new WeakMap,NN=new WeakMap,AN=new WeakMap,MN=new WeakMap,FN=new WeakMap,CN=new WeakMap,ON=new WeakMap,PN=new WeakMap,RN=new WeakMap,DN=new WeakMap,BN=new WeakMap,LN=new WeakMap,zN=new WeakMap,WN=new WeakMap,UN=new WeakMap,$N=new WeakMap,jN=new WeakMap,qN=new WeakMap,VN=new WeakMap,HN=new WeakMap,GN=new WeakSet;class KN extends jc{constructor(...t){super(...t),O(this,GN),F(this,gN,void 0),F(this,vN,void 0),F(this,yN,void 0),F(this,bN,void 0),F(this,kN,void 0),F(this,xN,[]),F(this,wN,new fN("placement-")),F(this,_N,[]),F(this,TN,new fN("renderplacement-")),F(this,IN,void 0),F(this,EN,void 0),F(this,SN,void 0),F(this,NN,new Set),F(this,AN,new Set),F(this,MN,new Map),F(this,FN,[]),F(this,CN,0),F(this,ON,new Set),F(this,PN,new Set),F(this,RN,Number.NEGATIVE_INFINITY),F(this,DN,[]),F(this,BN,Number.NEGATIVE_INFINITY),F(this,LN,0),F(this,zN,void 0),F(this,WN,void 0),F(this,UN,new Map),F(this,$N,null),F(this,jN,void 0),F(this,qN,void 0),F(this,VN,void 0),F(this,HN,void 0);const[e,n={}]=t;C(gN,this,e),C(zN,this,n),C(kN,this,new KE(n)),C(IN,this,new tS(n)),C(bN,this,Yp),N(GN,this,oA).call(this),N(GN,this,sA).call(this),C(jN,this,new zS({getState:()=>this.state,getNode:t=>M(gN,this)&&"function"==typeof M(gN,this).get?M(gN,this).get(t):void 0,getPlacementsActiveAtTime:t=>N(GN,this,zA).call(this,t,{endEpsilonSeconds:N(GN,this,KA).call(this)}),getLastStableState:()=>this.getLastStableState(),clearVisualFrameBuffers:()=>N(GN,this,BA).call(this),updateTime:(t,e)=>this.updateTime(t,e),transitionTo:(t,e)=>this.transitionTo(t,e),trigger:(t,e)=>this.trigger(t,e)})),C(qN,this,new cN({getPlacements:()=>M(xN,this).slice(),getPlacementsActiveAtTime:t=>N(GN,this,zA).call(this,t),getPlacementDuration:t=>N(GN,this,kA).call(this,t),getNode:t=>M(gN,this)&&"function"==typeof M(gN,this).get?M(gN,this).get(t):void 0,triggerTimeline:(t,e)=>this.trigger(t,e),triggerNode:(t,e,n)=>{const i=M(gN,this)&&"function"==typeof M(gN,this).get?M(gN,this).get(t):void 0;i&&"function"==typeof i.trigger&&i.trigger(e,n)}})),C(VN,this,(()=>{var t,e;null===(t=M(qN,this))||void 0===t||null===(e=t.handleSeeked)||void 0===e||e.call(t,this.currentTime)})),this.on(jp.TIMELINE_SEEKED,M(VN,this)),C(HN,this,(t=>N(GN,this,fA).call(this,t))),this.on("nodestart",M(HN,this)),this.transitionTo(Gp)}get name(){return"Timeline"}get defaults(){return{snapToFps:pN,maxBufferedVideoFrames:24}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"computeBuffered","notifyDecodedFrame","getDecodedFrameStats","getActiveRenderPlacement","maybeCompleteSeek","getPlacementsActiveAtTime","hasDecodedFirstFrame","getDecodedVisualBuffer","getPlacementDuration","getNode"])}transitionTo(t,e={}){const n=M(yN,this),i=function(t,e,n={}){const i=mS[t];return i?new i(e,n):null}(t,this,M(zN,this)),r=e&&"object"==typeof e&&!Array.isArray(e)?{...e,from:n,to:t}:{from:n,to:t};i?(M(vN,this)&&"function"==typeof M(vN,this).exit&&M(vN,this).exit(),C(vN,this,i),C(yN,this,t),"function"==typeof i.enter&&i.enter(r),this.trigger(jp.TIMELINE_STATE_CHANGE,{from:n,to:t,options:e})):this.log.warn(`Unknown state "${t}"`)}recordStableState(t){C(bN,this,t)}getLastStableState(){return M(bN,this)}get state(){return M(yN,this)}get paused(){return M(yN,this)===Gp||M(yN,this)===Yp}get currentTime(){return M(kN,this).currentTime}set currentTime(t){M(vN,this).seek(t)}get playbackRate(){return M(kN,this).playbackRate}set playbackRate(t){M(kN,this).playbackRate=t}play(){M(vN,this).play()}pause(){M(vN,this).pause()}reset(){M(vN,this).reset()}seekToPlacement(t){if(!t)throw new Error("Timeline.seekToPlacement requires placement id");N(GN,this,gA).call(this);const e=N(GN,this,qA).call(this,t);if(!e)throw new Error("Timeline.seekToPlacement requires placement id");const n=Hf(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;N(GN,this,gA).call(this),N(GN,this,vA).call(this),M(kN,this).seek(t),N(GN,this,LA).call(this,this.currentTime),N(GN,this,WA).call(this);const r="string"==typeof(null==e?void 0:e.source)?e.source:"set";null!==(n=M(qN,this))&&void 0!==n&&null!==(i=n.handleTimeUpdate)&&void 0!==i&&i.call(n,this.currentTime,{isSeeking:this.state===Qp}),N(GN,this,pA).call(this,this.currentTime),N(GN,this,CA).call(this,this.currentTime),this.trigger(jp.TIMELINE_TIME_UPDATE,qp(this.currentTime,r))}startSeeking(t,e){var n,i;null!==(n=M(qN,this))&&void 0!==n&&null!==(i=n.handleSeeking)&&void 0!==i&&i.call(n,this.currentTime,t),M(jN,this)&&"function"==typeof M(jN,this).start&&M(jN,this).start(t,e)}setSeekReturnState(t){M(jN,this)&&"function"==typeof M(jN,this).setReturnState&&M(jN,this).setReturnState(t)}maybeCompleteSeek(t){M(jN,this)&&"function"==typeof M(jN,this).maybeComplete&&M(jN,this).maybeComplete(t)}startPlaybackClock(){M(kN,this).play()}stopPlaybackClock(){M(kN,this).pause()}resetClock(){var t,e;M(kN,this).reset(),null===(t=M(qN,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:[];N(GN,this,XN).call(this),N(GN,this,YN).call(this,e),N(GN,this,QN).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=M(wN,this).claim(n.placementId),o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=Jf(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}:Qf(e,n);let u,d,h,f=!1;const p=null!==a;if(N(GN,this,gA).call(this),a){const t=M(xN,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=Hf(t);if("start"===a.anchor)Number.isFinite(e)?u=N(GN,this,xA).call(this,e,{nodeOffsetOverride:o}):f=!0;else{const n=N(GN,this,kA).call(this,t);if(Number.isFinite(e)&&n>0){const t=e+n,i=N(GN,this,xA).call(this,t,{nodeOffsetOverride:o});u=Math.max(i,t)}else f=!0}}else if(l){const t=n.offsetAnchorPlacementId?M(xN,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):M(xN,this).length?M(xN,this)[M(xN,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=Hf(t),n=N(GN,this,kA).call(this,t);Number.isFinite(e)&&n>0?u=N(GN,this,xA).call(this,e+n-c,{nodeOffsetOverride:o}):(f=!0,h="end")}else u=N(GN,this,xA).call(this,-c,{nodeOffsetOverride:o})}else u=Yf(e),u=N(GN,this,xA).call(this,u,{...n,nodeOffsetOverride:o});const m=!0===n.loop?n.loopRootPlacementId||r:void 0,g=!0===n.loop&&Number.isFinite(n.loopRootOffset)?n.loopRootOffset:!0===n.loop?u:void 0,v=l?c:a&&"end"===a.anchor?0:void 0,y=new rS({placementId:r,nodeId:i,offset:u,offsetPending:f,offsetAnchorPlacementId:f?d:void 0,offsetAnchorEdge:f?h:void 0,offsetAnchorIsReference:f?p:void 0,offsetEndSeconds:v,nodeOffsetOverride:o,nodeDurationOverride:s,loop:!0===n.loop,loopRootPlacementId:m,loopRootOffset:g});if(M(xN,this).push(y),Kf(M(xN,this)),N(GN,this,MA).call(this,y),N(GN,this,NA).call(this),f&&d){const t=M(xN,this).find((t=>(null==t?void 0:t.placementId)===d));N(GN,this,_A).call(this,null==t?void 0:t.nodeId)}return this.trigger(jp.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=N(GN,this,wA).call(this,e,i),s=o.offset,a=!0===o.offsetPending,l=o.offsetAnchorPlacementId,c=o.offsetAnchorEdge,u=o.offsetAnchorIsReference,d=M(TN,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,g={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;Zf(M(_N,this),t,e,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements")}if(M(_N,this).push(g),Kf(M(_N,this)),a&&l){const t=M(xN,this).find((t=>(null==t?void 0:t.placementId)===l));N(GN,this,_A).call(this,null==t?void 0:t.nodeId)}return this.trigger(jp.RENDER_PLACEMENT_ADDED,g),d}get placements(){return M(xN,this).slice()}getPlacementsActiveAtTime(t){return N(GN,this,zA).call(this,t)}getNodesAtTime(t){const e=N(GN,this,VA).call(this,t);if(!Number.isFinite(e))return[];const n=N(GN,this,zA).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 N(GN,this,kA).call(this,t)}getNode(t){if(M(gN,this)&&"function"==typeof M(gN,this).get)return M(gN,this).get(t)}get renderPlacements(){return M(_N,this).slice()}get placementsAhead(){const t=this.currentTime;return M(xN,this).filter((e=>{const n=Hf(e);if(!Number.isFinite(n))return!1;const i=N(GN,this,kA).call(this,e);return"number"==typeof i?n+i>t:n>=t}))}get buffered(){return M(vN,this)?M(vN,this).buffered:{start:0,end:0}}get trackBuffers(){return M(IN,this)}onDispose(){N(GN,this,iA).call(this),M(AN,this)&&M(AN,this).clear(),M(qN,this)&&"function"==typeof M(qN,this).dispose&&M(qN,this).dispose(),C(qN,this,null),N(GN,this,nA).call(this),N(GN,this,rA).call(this),M(jN,this)&&"function"==typeof M(jN,this).dispose&&M(jN,this).dispose(),C(jN,this,null),M(kN,this)&&"function"==typeof M(kN,this).dispose&&(M(WN,this)&&"function"==typeof M(kN,this).off&&(M(kN,this).off("tick",M(WN,this)),C(WN,this,null)),M(kN,this).dispose(),C(kN,this,null)),N(GN,this,EA).call(this),C(vN,this,null),C(yN,this,null),C(xN,this,[]),C(_N,this,[]),N(GN,this,SA).call(this),N(GN,this,NA).call(this),M(UN,this).clear(),C($N,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}`;M(NN,this).add(i),N(GN,this,DA).call(this,t),N(GN,this,WA).call(this),M(vN,this)&&"function"==typeof M(vN,this).handleDecodedFrame&&M(vN,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=mN(t);Number.isFinite(i)&&i>0&&(e.totalBytes+=i)}))}return e.available=!0,e}(M(UN,this))}hasDecodedFirstFrame(t,e){return!(!t||!e)&&M(NN,this).has(`${t}:${e}`)}getDecodedVisualBuffer(t,e){if(t&&e)return M(UN,this).get(`${t}:${e}`)}computeBuffered(t){const e=M(gN,this);if(e&&"function"==typeof e.get)return M(IN,this).computeBuffered(M(xN,this),t,e)}getActiveRenderPlacement(t=this.currentTime){const e=Number.isFinite(t)?t:this.currentTime,n=Array.isArray(M(_N,this))?M(_N,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 XN(){this.trigger(jp.TIMELINE_RESET,{reason:"switch"}),N(GN,this,BA).call(this),M(IN,this)&&"function"==typeof M(IN,this).reset&&M(IN,this).reset(),M(AN,this)&&M(AN,this).clear(),C(xN,this,[]),C(_N,this,[]),N(GN,this,SA).call(this),N(GN,this,NA).call(this),M(wN,this).reset(),M(TN,this).reset()}function YN(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.nodeId)continue;const i=N(GN,this,JN).call(this,n),r=N(GN,this,tA).call(this,n);this.placeOnTimeline(n.nodeId,r,i)}}function QN(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.type)continue;const i=N(GN,this,ZN).call(this,n),r=N(GN,this,eA).call(this,n);this.placeRenderNodeOnTimeline(n.type,r,n.duration,i)}}function JN(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 ZN(t){const e={};return t.renderPlacementId&&(e.renderPlacementId=t.renderPlacementId),t.params&&"object"==typeof t.params&&(e.params=t.params),e}function tA(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 eA(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 nA(){M(vN,this)&&"function"==typeof M(vN,this).exit&&M(vN,this).exit()}function iA(){M(VN,this)&&"function"==typeof this.off&&(this.off(jp.TIMELINE_SEEKED,M(VN,this)),C(VN,this,null)),M(HN,this)&&"function"==typeof this.off&&(this.off("nodestart",M(HN,this)),C(HN,this,null))}function rA(){M(IN,this)&&(M(EN,this)&&(M(IN,this).off("track:underflow",M(EN,this)),C(EN,this,null)),M(SN,this)&&(M(IN,this).off("track:ready",M(SN,this)),C(SN,this,null)),"function"==typeof M(IN,this).dispose&&M(IN,this).dispose(),C(IN,this,null))}function oA(){M(IN,this)&&"function"==typeof M(IN,this).on&&(C(EN,this,(t=>N(GN,this,lA).call(this,t))),C(SN,this,(t=>N(GN,this,cA).call(this,t))),M(IN,this).on(jp.TRACK_UNDERFLOW,M(EN,this)),M(IN,this).on(jp.TRACK_READY,M(SN,this)))}function sA(){M(kN,this)&&"function"==typeof M(kN,this).on&&(C(WN,this,(t=>N(GN,this,aA).call(this,t))),M(kN,this).on(jp.CLOCK_TICK,M(WN,this)))}function aA(t){var e,n;N(GN,this,gA).call(this),N(GN,this,WA).call(this),null!==(e=M(qN,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,this.currentTime,{isSeeking:!1}),N(GN,this,pA).call(this,this.currentTime),this.trigger(jp.TIMELINE_TIME_UPDATE,qp(this.currentTime,"clock")),M(vN,this)&&"function"==typeof M(vN,this).handleClockTick&&M(vN,this).handleClockTick(t)}function lA(t){N(GN,this,gA).call(this);const e=N(GN,this,uA).call(this);e&&(null==t?void 0:t.trackType)===e.trackType&&(M(vN,this)&&"function"==typeof M(vN,this).handleMainTrackUnderflow?M(vN,this).handleMainTrackUnderflow(t):this.transitionTo(Xp))}function cA(t){if(N(GN,this,gA).call(this),this.state!==Xp)return;const e=N(GN,this,uA).call(this);if(!e)return;if((null==t?void 0:t.trackType)!==e.trackType)return;if(M(vN,this)&&"function"==typeof M(vN,this).handleMainTrackReady)return void M(vN,this).handleMainTrackReady(t);const n=this.getLastStableState()||Yp;this.transitionTo(n)}function uA(t=this.currentTime){const e=N(GN,this,hA).call(this,t);if(!e)return;const n=M(gN,this)&&"function"==typeof M(gN,this).get?M(gN,this).get(e.nodeId):void 0;if(!n)return;const i=N(GN,this,dA).call(this,n);return i?{placement:e,trackType:i}:void 0}function dA(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 hA(t=this.currentTime){const e=M(xN,this)||[];let n;for(let i=0;i<e.length;i+=1){const r=e[i],o=Hf(r);if(!Number.isFinite(o))continue;const s=N(GN,this,kA).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 fA(t={}){if(this.state!==Kp)return;const e=null==t?void 0:t.placementId;if(!e)return;const n=N(GN,this,qA).call(this,e);n&&N(GN,this,mA).call(this,n)}function pA(t=this.currentTime){if(this.state!==Kp)return;const e=N(GN,this,zA).call(this,t);Array.isArray(e)&&e.length&&e.forEach((t=>N(GN,this,mA).call(this,t)))}function mA(t){const e=null==t?void 0:t.placementId;if(!e)return;if(M(AN,this).has(e))return;if(!t||!0!==t.loop)return;if(!t.nodeId)return;const n=N(GN,this,kA).call(this,t);if(!Number.isFinite(n)||n<=0)return;const i=Hf(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;M(AN,this).add(e),this.placeOnTimeline(t.nodeId,r,{nodeOffsetOverride:t.nodeOffsetOverride,nodeDurationOverride:t.nodeDurationOverride,loop:!0,loopRootPlacementId:o,loopRootOffset:s})}function gA(){const t=Xf(M(xN,this),{getPlacementDuration:t=>N(GN,this,kA).call(this,t),snapPlacementOffset:(t,e)=>N(GN,this,xA).call(this,t,{nodeOffsetOverride:null==e?void 0:e.nodeOffsetOverride}),onResolvedPlacement:(t,e)=>{!0!==t.loop||Number.isFinite(t.loopRootOffset)||(t.loopRootOffset=t.offset),N(GN,this,TA).call(this,null==e?void 0:e.nodeId)}});return t.updated&&(N(GN,this,NA).call(this),t.resolvedPlacements.forEach((t=>{N(GN,this,MA).call(this,t),this.trigger(jp.PLACEMENT_ADDED,t)}))),t.updated}function vA(){if(!M(_N,this).length||!M(xN,this).length)return!1;const t=new Map;M(xN,this).forEach((e=>{(null==e?void 0:e.placementId)&&t.set(e.placementId,e)}));const e=M(_N,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];N(GN,this,yA).call(this,o,t)&&(n=!0,i.push(o))}return n&&(Kf(M(_N,this)),i.forEach((t=>{this.trigger(jp.RENDER_PLACEMENT_ADDED,t)}))),n}function yA(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=N(GN,this,bA).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 Zf(M(_N,this).filter((e=>e!==t&&!0!==(null==e?void 0:e.offsetPending))),s,a,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements"),N(GN,this,TA).call(this,null==r?void 0:r.nodeId),!0}function bA(t,e){const n=Hf(t);if(!Number.isFinite(n))return;if("start"===e.offsetAnchorEdge)return N(GN,this,xA).call(this,n);const i=N(GN,this,kA).call(this,t);if(!(i>0))return;const r=n+i;if(!Number.isFinite(r))return;const o=N(GN,this,xA).call(this,r);return!0===e.offsetAnchorIsReference?Math.max(o,r):o}function kA(t){return qf(t,M(gN,this))}function xA(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 wA(t,e={}){const n=Jf(t);if("string"==typeof t&&t.includes("@")&&!n)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");if(!n){const n=Yf(t);return{offset:N(GN,this,xA).call(this,n,e)}}const i=M(xN,this).find((t=>(null==t?void 0:t.placementId)===n.placementId));if(!i)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");const r=Hf(i);if("start"===n.anchor)return Number.isFinite(r)?{offset:N(GN,this,xA).call(this,r,e)}:{offset:void 0,offsetPending:!0,offsetAnchorPlacementId:i.placementId,offsetAnchorEdge:"start",offsetAnchorIsReference:!0};const o=N(GN,this,kA).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=N(GN,this,xA).call(this,s,e);return{offset:Math.max(a,s)}}function _A(t){if(!t||!M(gN,this)||"function"!=typeof M(gN,this).get)return;if(M(MN,this).has(t))return;let e;try{e=M(gN,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),N(GN,this,TA).call(this,t)};e.on(jp.NODE_LOADED,n),M(MN,this).set(t,n)}function TA(t){if(!t)return;if(N(GN,this,IA).call(this,t))return;const e=M(MN,this).get(t);if(!e)return;let n;try{n=M(gN,this).get(t)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(jp.NODE_LOADED,e),M(MN,this).delete(t)}function IA(t){if(!t)return!1;const e=new Map;M(xN,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!!M(xN,this).some((t=>n(t)))||!!M(_N,this).some((t=>n(t)))}function EA(){M(MN,this).size&&M(gN,this)?(M(MN,this).forEach(((t,e)=>{let n;try{n=M(gN,this).get(e)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(jp.NODE_LOADED,t)})),M(MN,this).clear()):M(MN,this).clear()}function SA(){C(FN,this,[]),C(CN,this,0),M(ON,this).clear(),M(PN,this).clear(),C(RN,this,Number.NEGATIVE_INFINITY)}function NA(){C(DN,this,[]),C(LN,this,0),C(BN,this,Number.NEGATIVE_INFINITY)}function AA(t,e){const n=M(FN,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<M(CN,this)&&C(CN,this,M(CN,this)+1)}function MA(t){const e=null==t?void 0:t.placementId;if(!e||M(ON,this).has(e))return;const n=Hf(t),i=N(GN,this,kA).call(this,t);if(!Number.isFinite(n)||!Number.isFinite(i)||i<0)return void M(PN,this).add(e);const r=n+i;Number.isFinite(r)&&(M(ON,this).add(e),M(PN,this).delete(e),N(GN,this,AA).call(this,e,r))}function FA(){M(PN,this).size&&Array.from(M(PN,this)).forEach((t=>{const e=N(GN,this,qA).call(this,t);e?N(GN,this,MA).call(this,e):M(PN,this).delete(t)}))}function CA(t){const e=Number(t);if(!Number.isFinite(e))return;if(e<M(RN,this))return void C(RN,this,e);if(C(RN,this,e),N(GN,this,FA).call(this),!M(FN,this).length)return;const n=new Set;let i=M(CN,this);for(;i<M(FN,this).length;){const t=M(FN,this)[i];if(!t||!Number.isFinite(t.endTime)||t.endTime>e)break;t.placementId&&n.add(t.placementId),i+=1}i!==M(CN,this)&&(C(CN,this,i),n.size&&(N(GN,this,RA).call(this,n),N(GN,this,OA).call(this,n)))}function OA(t){if(t&&t.size)for(const e of M(NN,this)){const n=e.split(":")[0];t.has(n)&&M(NN,this).delete(e)}}function PA(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 RA(t){if(t&&t.size)for(const[e,n]of M(UN,this).entries())t.has(null==n?void 0:n.placementId)&&(N(GN,this,PA).call(this,n),M(UN,this).delete(e))}function DA(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=KS(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=M(UN,this).get(f),m=p||{placementId:n,nodeId:i,trackId:r,trackType:s,frames:[],current:void 0},g={placementId:n,nodeId:i,trackId:r,segmentId:o,frame:a,width:c,height:u,presentationTime:d,duration:h},v=m.frames,y=v.length?v[v.length-1]:void 0;if(!y||y.presentationTime<=g.presentationTime)v.push(g);else{let t=v.findIndex((t=>t.presentationTime>g.presentationTime));-1===t&&(t=v.length),v.splice(t,0,g)}const b=Number(null===(e=this.settings)||void 0===e?void 0:e.maxBufferedVideoFrames);if("video"===s&&Number.isFinite(b)&&b>0&&v.length>b){const t=v.length-b;for(let e=0;e<t;e+=1){const t=v.pop(),e=null==t?void 0:t.frame;if(e&&"function"==typeof e.close)try{e.close()}catch(t){}}}p||M(UN,this).set(f,m)}function BA(){for(const t of M(UN,this).values())N(GN,this,PA).call(this,t);M(UN,this).clear(),C($N,this,null),M(NN,this).clear()}function LA(t){const e=Number.isFinite(t)?t:this.currentTime;if(!Number.isFinite(e))return;e<M(BN,this)&&(C(DN,this,[]),C(LN,this,0));const n=Array.isArray(M(xN,this))?M(xN,this):[],i=[],r=new Set;M(DN,this).forEach((t=>{N(GN,this,XA).call(this,t,e)&&(i.push(t),(null==t?void 0:t.placementId)&&r.add(t.placementId))}));let o=M(LN,this);for(;o<n.length;){const t=n[o],s=Hf(t);if(!Number.isFinite(s))break;if(s>e)break;if(N(GN,this,XA).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}C(DN,this,i),C(LN,this,o),C(BN,this,e)}function zA(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===M(BN,this)?M(DN,this).slice():(Array.isArray(M(xN,this))?M(xN,this):[]).filter((t=>N(GN,this,XA).call(this,t,n,i)))}function WA(){const t=this.currentTime,e=N(GN,this,$A).call(this,t);if(!e.length)return void C($N,this,null);const n=this.getActiveRenderPlacement(t),i=N(GN,this,jA).call(this,e,n);(i!==M($N,this)||N(GN,this,UA).call(this,t,n))&&(C($N,this,i),this.trigger(jp.VISUAL_FRAMES_AVAILABLE,{time:t,frames:e}))}function UA(t,e){const n=e||this.getActiveRenderPlacement(t);if(!n)return!1;if(!mp.doesRenderNodeTypeRequireFrameCadence(null==n?void 0:n.type))return!1;const i=n.duration;return"number"==typeof i&&i>0}function $A(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){jS(c),a.push(t);continue}if("function"==typeof r&&!r(u,n)){const e=qS(u),i="function"==typeof o?o(u):void 0;Number.isFinite(i)&&Number.isFinite(e)&&n>=e+i&&(jS(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&&$S(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:qS(u),placementSortOffset:VS(u),placementSortId:HS(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=GS(r),a=GS(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:M(UN,this),time:t,getPlacementById:t=>N(GN,this,qA).call(this,t),isPlacementActiveAtTime:(t,e)=>N(GN,this,XA).call(this,t,e),getPlacementDuration:t=>N(GN,this,kA).call(this,t)})}function jA(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 qA(t){if(t)return(M(xN,this)||[]).find((e=>(null==e?void 0:e.placementId)===t))}function VA(t){if("end"===t){const t=N(GN,this,HA).call(this);if(!Number.isFinite(t))return;const e=N(GN,this,GA).call(this);return Math.max(0,t-Math.min(t,e))}const e=Number(t);return Number.isFinite(e)?e:0}function HA(){let t;return(Array.isArray(M(xN,this))?M(xN,this):[]).forEach((e=>{const n=Hf(e);if(!Number.isFinite(n))return;const i=N(GN,this,kA).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}function GA(){const t=N(GN,this,KA).call(this);return t>0?t:.001}function KA(){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 XA(t,e,n=0){if(!Gf(t,e,M(gN,this)))return!1;const i=Number(n);if(!Number.isFinite(i)||i<=0)return!0;const r=N(GN,this,kA).call(this,t);if(!Number.isFinite(r))return!0;const o=Hf(t);return!Number.isFinite(o)||e<o+r-i}var YA=new WeakMap,QA=new WeakMap,JA=new WeakMap,ZA=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 WeakMap,cM=new WeakMap,uM=new WeakMap,dM=new WeakMap,hM=new WeakMap,fM=new WeakSet;class pM extends jc{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),O(this,fM),F(this,YA,void 0),F(this,QA,void 0),F(this,JA,1),F(this,ZA,1),F(this,tM,1),F(this,eM,""),F(this,nM,0),F(this,iM,[]),F(this,rM,null),F(this,oM,void 0),F(this,sM,[]),F(this,aM,null),F(this,lM,null),F(this,cM,0),F(this,uM,0),F(this,dM,0),F(this,hM,void 0);const[e]=t;C(YA,this,e),C(cM,this,Pg()),C(hM,this,N(fM,this,mM).call(this)),N(fM,this,gM).call(this),N(fM,this,vM).call(this),N(fM,this,wM).call(this),N(fM,this,kM).call(this)}get publicAPI(){return M(hM,this)}calcScore(){N(fM,this,FM).call(this)}onDispose(){M(YA,this)&&M(QA,this)&&"function"==typeof M(YA,this).off&&M(YA,this).off(jp.TIMELINE_PLAYER_STATE,M(QA,this)),C(QA,this,null),N(fM,this,xM).call(this),N(fM,this,_M).call(this),C(YA,this,null),C(sM,this,[]),C(iM,this,[]),C(hM,this,null)}}function mM(){const t=this;return{get score(){return M(JA,t)},get status(){return M(eM,t)},get streamQualityScore(){return M(ZA,t)},get fpsScore(){return M(tM,t)},get browserFps(){return M(nM,t)},get waitingSeconds(){return M(uM,t)/1e3},get playingSeconds(){return M(dM,t)/1e3}}}function gM(){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 vM(){M(YA,this)&&"function"==typeof M(YA,this).on&&(C(QA,this,(t=>N(fM,this,yM).call(this,t))),M(YA,this).on(jp.TIMELINE_PLAYER_STATE,M(QA,this)))}function yM(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||N(fM,this,bM).call(this,null):N(fM,this,bM).call(this,"waiting"):N(fM,this,bM).call(this,"playing")}function bM(t){if(t===M(aM,this))return;const e=Pg();M(aM,this)&&Number.isFinite(M(lM,this))&&M(sM,this).push({state:M(aM,this),startMs:M(lM,this),endMs:e}),C(aM,this,t),C(lM,this,t?e:null),N(fM,this,EM).call(this,e)}function kM(){const t=Number(this.settings.calcScoreInterval);!Number.isFinite(t)||t<=0||(C(oM,this,(()=>N(fM,this,FM).call(this))),mb(M(oM,this),1e3*t))}function xM(){M(oM,this)&&gb(M(oM,this)),C(oM,this,null)}function wM(){if("function"!=typeof ob)return;const t=()=>{if(this._disposed)return;const e=Pg();C(nM,this,N(fM,this,TM).call(this,M(iM,this),e)),C(rM,this,ob(t))};C(rM,this,ob(t))}function _M(){M(rM,this)&&"function"==typeof sb&&sb(M(rM,this)),C(rM,this,null)}function TM(t,e){const n=N(fM,this,IM).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 IM(){const t=Number(this.settings.windowSeconds);return!Number.isFinite(t)||t<=0?3e4:1e3*t}function EM(t){const e=t-N(fM,this,IM).call(this);for(;M(sM,this).length&&M(sM,this)[0].endMs<=e;)M(sM,this).shift()}function SM(t){const e=t-N(fM,this,IM).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 M(sM,this).forEach((t=>{r(t.state,t.startMs,t.endMs)})),M(aM,this)&&Number.isFinite(M(lM,this))&&r(M(aM,this),M(lM,this),t),C(uM,this,n),C(dM,this,i),{waitingMs:n,playingMs:i}}function NM(t,e){if(t<=0)return 1;if(t>e)return 0;const n=e||1;return $f(1-t*this.settings.waitingMultiplier/n)}function AM(){if(Pg()-M(cM,this)<=1e3*this.settings.fpsGracePeriod)return 1;const t=Number(M(nM,this)),e=Up.isDesktop()?this.settings.bestFpsDesktop:this.settings.bestFpsMobile,n=$f(e>0?t/e:0);return"quad"===this.settings.fpsMathFuncType?n*n:n}function MM(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 FM(){const t=Pg(),{waitingMs:e,playingMs:n}=N(fM,this,SM).call(this,t),i=N(fM,this,NM).call(this,e,n),r=N(fM,this,AM).call(this),o=$f(i*this.settings.streamQualityWeight+r*this.settings.fpsWeight);o!==M(JA,this)&&(C(JA,this,o),this.trigger(jp.QOE_SCORE,o)),C(ZA,this,i),C(tM,this,r);const s=N(fM,this,MM).call(this,o,e);s!==M(eM,this)&&(C(eM,this,s),this.trigger(jp.QOE_STATUS,s))}function CM(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function OM(t){const e=Number(t);return!Number.isFinite(e)||e<0?0:e}var PM=new WeakMap,RM=new WeakMap,DM=new WeakMap,BM=new WeakMap,LM=new WeakSet;class zM extends jc{get name(){return"SegmentEvictionCoordinator"}get defaults(){return{enabled:Qg("segmentEvictionEnabled"),bufferBehindSeconds:Qg("segmentEvictionBufferBehindSeconds"),bufferAheadSeconds:Qg("segmentEvictionBufferAheadSeconds"),maxRetainedBytes:Qg("segmentEvictionMaxRetainedBytes")}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"evictAtTime"])}constructor(t,e,n={}){super(n),O(this,LM),F(this,PM,void 0),F(this,RM,void 0),F(this,DM,void 0),F(this,BM,void 0),C(PM,this,t),C(RM,this,e),C(DM,this,(t=>N(LM,this,WM).call(this,t))),C(BM,this,(t=>N(LM,this,UM).call(this,t))),M(PM,this)&&"function"==typeof M(PM,this).on&&(M(PM,this).on(jp.TIMELINE_TIME_UPDATE,M(DM,this)),M(PM,this).on(jp.TIMELINE_SEEKED,M(BM,this)))}onDispose(){M(PM,this)&&"function"==typeof M(PM,this).off&&(M(PM,this).off(jp.TIMELINE_TIME_UPDATE,M(DM,this)),M(PM,this).off(jp.TIMELINE_SEEKED,M(BM,this))),C(PM,this,null),C(RM,this,null),C(DM,this,null),C(BM,this,null)}evictAtTime(t){if(!0!==this.settings.enabled)return;const e=Number(t);if(!Number.isFinite(e))return;const n=OM(this.settings.bufferBehindSeconds),i=OM(this.settings.bufferAheadSeconds),r=e-n,o=e+i,s=N(LM,this,$M).call(this);if(!s.length)return;const a=Number(this.settings.maxRetainedBytes);if(Number.isFinite(a)&&a>0&&N(LM,this,jM).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=Hf(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=N(LM,this,qM).call(this,e);if(!n)return;const i=t.filter((t=>N(LM,this,VM).call(this,t,r,o)));i.length?N(LM,this,HM).call(this,n,i,r,o):"function"==typeof n.evict&&n.evict()}))}}function WM(t){var e,n;if(!0!==this.settings.enabled)return;if((null===(e=M(PM,this))||void 0===e?void 0:e.state)===Qp)return;const i=Number(null==t?void 0:t.time),r=Number.isFinite(i)?i:Number(null===(n=M(PM,this))||void 0===n?void 0:n.currentTime);this.evictAtTime(r)}function UM(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=M(PM,this))||void 0===e?void 0:e.currentTime);this.evictAtTime(i)}function $M(){var t;const e=null===(t=M(PM,this))||void 0===t?void 0:t.placements;return Array.isArray(e)?e:[]}function jM(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=N(LM,this,qM).call(this,i),o=Number(null==r?void 0:r.retainedByteLength);lg(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=>{lg(null==t?void 0:t.retainedByteLength)&&(n+=t.retainedByteLength)}))}))})),n}function qM(t){if(M(RM,this)&&"function"==typeof M(RM,this).get)return M(RM,this).get(t)}function VM(t,e,n){const i=Hf(t);if(!Number.isFinite(i))return!1;const r=qf(t,M(RM,this));return(Number.isFinite(r)?i+r:Number.POSITIVE_INFINITY)>e&&i<n}function HM(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=CM(null==t?void 0:t.offset,0);r.forEach((t=>{if(!t||!lg(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=Hf(a);if(!Number.isFinite(l))continue;const c=CM(null==a?void 0:a.nodeOffsetOverride,0),u=CM(null==t?void 0:t.offset,NaN);if(!Number.isFinite(u))continue;const d=CM(null==t?void 0:t.duration,0),h=l+o+u-c,f=h+(d>0?d:0),p=qf(a,M(RM,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 GM=new WeakMap,KM=new WeakMap,XM=new WeakMap,YM=new WeakSet;class QM extends jc{get name(){return"DocumentVisibility"}get defaults(){return{autoPauseOnVisibilityChange:!0,autoResumeOnVisibilityChange:!0}}constructor(t,e={}){super(e),O(this,YM),F(this,GM,void 0),F(this,KM,null),F(this,XM,!1),C(GM,this,t),N(YM,this,JM).call(this)}onDispose(){N(YM,this,ZM).call(this),C(GM,this,null),C(XM,this,!1)}}function JM(){const t=null==Hc?void 0:Hc.document;t&&"function"==typeof t.addEventListener&&(C(KM,this,(()=>N(YM,this,tF).call(this))),t.addEventListener("visibilitychange",M(KM,this)))}function ZM(){const t=null==Hc?void 0:Hc.document;M(KM,this)&&t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",M(KM,this)),C(KM,this,null)}function tF(){const t=null==Hc?void 0:Hc.document,e=null==t?void 0:t.visibilityState;"string"==typeof e&&("hidden"!==e?"visible"===e&&N(YM,this,nF).call(this):N(YM,this,eF).call(this))}function eF(){var t;(null===(t=this.settings)||void 0===t?void 0:t.autoPauseOnVisibilityChange)&&M(GM,this)&&"function"==typeof M(GM,this).pause&&(M(GM,this).state===Kp?(this.log.info("[#handleHidden] Pausing timeline due to document visibility change"),M(GM,this).pause(),C(XM,this,!0)):C(XM,this,!1))}function nF(){var t;M(XM,this)&&(null===(t=this.settings)||void 0===t?void 0:t.autoResumeOnVisibilityChange)&&M(GM,this)&&"function"==typeof M(GM,this).play&&(M(GM,this).state!==Kp?(this.log.info("[#handleVisible] Resuming timeline due to document visibility change"),M(GM,this).play(),C(XM,this,!1)):C(XM,this,!1))}const iF=[{event:"canplay",once:!0,trackAs:"canplay"},{event:"playing",once:!0,trackAs:"startedplaying"},"play","playing","waiting","pause","seeking","seeked","nodestart","nodeend"];function rF(t,e=0){return Number.isFinite(t)?t:e}function oF(t){const e=null==t?void 0:t.exposedPlayerAPI;return e&&"object"==typeof e?e:t}const sF=[function(t){return{schema:"iglu:com.helloeko/player/jsonschema/1-0-6",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:rF(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:rF(null==r?void 0:r.volume),playercontainerwidth:rF(null==r?void 0:r.containerWidth),playercontainerheight:rF(null==r?void 0:r.containerHeight)}}}},function(t){return{schema:"iglu:com.helloeko/currentnode/jsonschema/1-0-1",match:/^.*$/,getData:()=>{var e;const n=oF(t),i=function(t){const e=oF(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==Hc||null===(t=Hc.eko)||void 0===t||null===(t=t.environment)||void 0===t?void 0:t.embeddingApp;return e?{embeddingapp:e}:{}}}}],aF=Object.freeze({once:!1,trackAs:""});var lF=new WeakMap,cF=new WeakMap,uF=new WeakMap,dF=new WeakMap,hF=new WeakSet;class fF extends jc{get name(){return"Tracker"}get defaults(){return{trackingEnabled:Qg("trackingEnabled"),defaultForwarders:iF,defaultContextPackers:sF}}constructor(t,e={}){super(e),O(this,hF),F(this,lF,void 0),F(this,cF,new Map),F(this,uF,[]),F(this,dF,!1),C(lF,this,t),N(hF,this,bF).call(this),N(hF,this,pF).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=N(hF,this,xF).call(this);n&&n("track",t,...e)}registerContextPacker(t){if(!t||"object"!=typeof t)return void this.log.warn("[registerContextPacker] Expected a packer object.");const e={schema:t.schema,match:t.match,getData: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=N(hF,this,xF).call(this);n&&n("registerContextPacker",e)}onDispose(){N(hF,this,yF).call(this),N(hF,this,kF).call(this),C(lF,this,null),C(dF,this,!1)}}function pF(){(Array.isArray(this.settings.defaultForwarders)?this.settings.defaultForwarders:[]).forEach((t=>N(hF,this,mF).call(this,t)))}function mF(t){const e=N(hF,this,gF).call(this,t);if(!e)return void this.log.warn("[#addEventForwarder] Invalid forwarder input.",t);const n=M(lF,this);if(!n||"function"!=typeof n.on)return;const i=N(hF,this,vF).call(this,e);if(M(cF,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),M(cF,this).set(i,{event:e.event,listener:r})}function gF(t){return"string"==typeof t&&t?{event:t,...aF}: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 vF({event:t,once:e,trackAs:n}){return`${t}:${e}:${n}`}function yF(){const t=M(lF,this);t&&"function"==typeof t.off&&M(cF,this).forEach((({event:e,listener:n})=>{t.off(e,n)})),M(cF,this).clear()}function bF(){(Array.isArray(this.settings.defaultContextPackers)?this.settings.defaultContextPackers:[]).forEach((t=>{if("function"!=typeof t)return;const e=t(M(lF,this),this);e&&"object"==typeof e&&("function"==typeof e.dispose&&M(uF,this).push(e.dispose),e.disabled||this.registerContextPacker({schema:e.schema,match:e.match,getData:e.getData}))}))}function kF(){M(uF,this).forEach((t=>{try{t()}catch(t){this.log.warn("[#teardownContextPackers] Failed disposing context packer.",t)}})),C(uF,this,[])}function xF(){const t=null==Hc?void 0:Hc.EkoAnalytics;return"function"==typeof t?t:(N(hF,this,wF).call(this),null)}function wF(){this.settings.trackingEnabled&&!M(dF,this)&&(this.log.warn("EkoAnalytics not found on window."),C(dF,this,!0))}class _F{#T;#et;#nt;#it;#rt;#ot;#st;#at;#lt;#ct;#ut;#dt;#ht;#ft;#pt;#mt;#gt;#vt;#yt;constructor(t,e={},n=null){this.#T=new Kc(t,e),this.#et=new nu(this.#T,e),this.#nt=new Qy(e),this.#it=new rv(e),this.#rt=new Cy(this.#it,e),this.#ot=new Sy(this.#rt,this.#nt,e),this.#st=new Wy(this.#ot,e),this.#at=new KN(this.#ot,e),this.#lt=new QM(this.#at,e),this.#vt=new zM(this.#at,this.#ot,e),this.#ct=new Bb(this.#ot,this.#st,this.#nt,this.#at,e),this.#ut=new wk(this.#ot,this.#st,this.#at,e),this.#dt=new xT(e),this.#ht=new HT(this.#ot,this.#at,this.#dt,e),this.#pt=new pM(this.#at,e),this.#yt=new fF(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.#mt=r?r({timeline:this.#at,canvas:this.#T,containerSize:this.#et,options:e}):new Cm(this.#at,this.#T,this.#et,e),this.#ft=o?o({timeline:this.#at,decodeCoordinator:this.#ht,options:e}):new SE(this.#at,this.#ht,e),this.#gt=new GI(this.#at,this.#mt,e)}get canvas(){return this.#T}get containerSize(){return this.#et}get assetsDeliveryService(){return this.#nt}get downloadSpeed(){return this.#it}get abrSelector(){return this.#rt}get nodeRepository(){return this.#ot}get nodePrioritizer(){return this.#st}get timeline(){return this.#at}get documentVisibility(){return this.#lt}get nodeResolver(){return this.#ct}get segmentLoadCoordinator(){return this.#ut}get decoderFactory(){return this.#dt}get parsingManager(){return this.#ht}get audioAdapter(){return this.#ft}get audioPlaybackManager(){return this.#ft}get qoe(){return this.#pt}get renderAdapter(){return this.#mt}get renderer(){return this.#mt}get transitionManager(){return this.#gt}get tracker(){return this.#yt}dispose(){[this.#yt,this.#at,this.#lt,this.#ut,this.#ct,this.#st,this.#ot,this.#nt,this.#rt,this.#it,this.#ht,this.#dt,this.#ft,this.#pt,this.#mt,this.#gt,this.#vt,this.#et,this.#T].forEach((t=>{t&&"function"==typeof t.dispose&&t.dispose()})),this.#at=null,this.#lt=null,this.#ut=null,this.#ct=null,this.#st=null,this.#ot=null,this.#nt=null,this.#rt=null,this.#it=null,this.#ht=null,this.#dt=null,this.#ft=null,this.#pt=null,this.#mt=null,this.#gt=null,this.#vt=null,this.#T=null,this.#yt=null}}const TF="main.1147285";var IF={isPlainObject:Lc,deepMerge:zc,get:Mg,set:Fg,ekoGlobalStore:Cg,download:Gg,isPositiveNumber:lg,clamp01:$f,root:Hc,now:Pg,getFrameDimensions:KS,useragent:$p,requestAnimationFrame:ob,cancelAnimationFrame:sb,start:mb,stop:gb,isTicking:vb,predicator:function(t,e){const n=e||{};if("function"!=typeof t)return void ab.error("[predicator] Bad argument given to predicator, first argument must be a function.",arguments);if(t.apply())return ab.debug("[predicator] Invoking onFulfilled immediately."),void("function"==typeof n.onFulfilled&&n.onFulfilled.call(null,0));const i=n.timeout||1e4,r=n.interval,o=Pg();let s,a,l,c,u;c=function(){t.apply()&&l()},l=function(){gb(c),Hc.clearTimeout(s),u=Pg()-o,ab.debug("[predicator] Invoking onFulfilled after "+u+" ms."),"function"==typeof n.onFulfilled&&n.onFulfilled.call(null,u)},a=function(){gb(c),u=Pg()-o,ab.debug("[predicator] Invoking onTimeout after "+u+" ms."),"function"==typeof n.onTimeout&&n.onTimeout.call(null,u)},s=Hc.setTimeout(a,i),mb(c,r)},createThrottler:yb,scheduleExecution:bb},EF=new WeakMap,SF=new WeakMap,NF=new WeakMap,AF=new WeakMap,MF=new WeakMap,FF=new WeakMap,CF=new WeakMap,OF=new WeakSet;class PF{constructor(t){O(this,OF),F(this,EF,[]),F(this,SF,[]),F(this,NF,new fN("placement-")),F(this,AF,new fN("renderplacement-")),F(this,MF,void 0),F(this,FF,new Map),F(this,CF,void 0),C(MF,this,t),C(CF,this,{allowUnready:!0,getNode:t=>N(OF,this,RF).call(this,t)})}get placements(){return M(EF,this).slice()}get renderPlacements(){return M(SF,this).slice()}getNodesAtTime(t){N(OF,this,DF).call(this);const e=N(OF,this,LF).call(this,t);if(!Number.isFinite(e))return[];const n=M(EF,this).filter((t=>Gf(t,e,null,M(CF,this)))),i=[];return n.forEach((t=>{const e=N(OF,this,RF).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&&M(FF,this).set(r,i);const o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=Jf(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}:Qf(e,n);let u,d,h,f=!1;const p=null!==a;if(a){const t=M(EF,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=Hf(t);if("start"===a.anchor)Number.isFinite(e)?u=e:f=!0;else{const n=N(OF,this,BF).call(this,t);Number.isFinite(e)&&n>0?u=e+n:f=!0}}else if(l){const t=n.offsetAnchorPlacementId?M(EF,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):M(EF,this).length?M(EF,this)[M(EF,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=Hf(t),n=N(OF,this,BF).call(this,t);Number.isFinite(e)&&n>0?u=e+n-c:(f=!0,h="end")}else u=-c}else u=Yf(e);const m=M(NF,this).claim(n.placementId),g={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 M(EF,this).push(g),Kf(M(EF,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=Jf(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=M(EF,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=Hf(t);if("start"===c.anchor)Number.isFinite(e)?o=e:l=!0;else{const n=N(OF,this,BF).call(this,t);Number.isFinite(e)&&Number.isFinite(n)?o=e+n:l=!0}}else o=Yf(e);const d=M(AF,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;Zf(M(SF,this),t,e,"TimelineDefinition.placeRenderNodeOnTimeline does not allow overlapping render nodes")}return M(SF,this).push(m),Kf(M(SF,this)),d}}function RF(t){if(t)return M(MF,this)&&"function"==typeof M(MF,this).get?M(MF,this).get(t):M(FF,this).get(t)}function DF(){return Xf(M(EF,this),{getPlacementDuration:t=>N(OF,this,BF).call(this,t)}).updated}function BF(t){return qf(t,null,M(CF,this))}function LF(t){if("end"===t){const t=N(OF,this,zF).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 zF(){let t;return M(EF,this).forEach((e=>{const n=Hf(e);if(!Number.isFinite(n))return;const i=N(OF,this,BF).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}const WF=new Set(["canplay","play","playing","waiting","pause","seeking","seeked"]);var UF=new WeakMap,$F=new WeakMap,jF=new WeakMap,qF=new WeakMap,VF=new WeakMap,HF=new WeakMap,GF=new WeakMap,KF=new WeakMap,XF=new WeakMap,YF=new WeakMap,QF=new WeakMap,JF=new WeakMap,ZF=new WeakMap,tC=new WeakMap,eC=new WeakMap,nC=new WeakMap,iC=new WeakMap,rC=new WeakMap,oC=new WeakMap,sC=new WeakMap,aC=new WeakMap,lC=new WeakMap,cC=new WeakMap,uC=new WeakMap,dC=new WeakMap,hC=new WeakSet;class fC extends jc{get name(){return"EkoPlayer"}get exposedPlayerAPI(){return M(qF,this)}constructor(t,e={}){const{options:n,publicOptions:i}=function(t={}){const e=zc({},Xg,t);Object.entries(Kg).forEach((([t,{targetPaths:n}])=>{void 0!==e[t]&&n.forEach((n=>{void 0===Mg(e,n)&&Fg(e,n,e[t])}))}));const n=function(t){const e={};return Object.keys(Kg).forEach((n=>{Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})),Object.freeze(e)}(e);return Yg.info("Processed options:",e),Yg.info("Public options:",n),{options:e,publicOptions:n}}(e);return super(n),O(this,hC),F(this,UF,void 0),F(this,$F,void 0),F(this,jF,void 0),F(this,qF,void 0),F(this,VF,void 0),F(this,HF,void 0),F(this,GF,void 0),F(this,KF,void 0),F(this,XF,void 0),F(this,YF,void 0),F(this,QF,void 0),F(this,JF,void 0),F(this,ZF,void 0),F(this,tC,void 0),F(this,eC,void 0),F(this,nC,void 0),F(this,iC,void 0),F(this,rC,void 0),F(this,oC,void 0),F(this,sC,void 0),F(this,aC,void 0),F(this,lC,void 0),F(this,cC,void 0),F(this,uC,void 0),F(this,dC,0),C(jF,this,i),this.log.info("Initializing EkoPlayer with options:",i),C(JF,this,new _F(t,n,this)),N(hC,this,_C).call(this,M(JF,this)),C(eC,this,(t=>N(hC,this,pC).call(this,t))),M($F,this)&&"function"==typeof M($F,this).on&&M($F,this).on(jp.TIMELINE_CUEPOINT,M(eC,this)),C(nC,this,null),C(rC,this,(t=>N(hC,this,mC).call(this,t))),C(oC,this,(t=>{const e=t&&"object"==typeof t?t:{};N(hC,this,mC).call(this,{...e,event:"seeking"})})),C(sC,this,(t=>{const e=t&&"object"==typeof t?t:{};N(hC,this,mC).call(this,{...e,event:"seeked"})})),M($F,this)&&"function"==typeof M($F,this).on&&(M($F,this).on(jp.TIMELINE_PLAYER_STATE,M(rC,this)),M($F,this).on(jp.TIMELINE_SEEKING,M(oC,this)),M($F,this).on(jp.TIMELINE_SEEKED,M(sC,this))),C(cC,this,(t=>{const e=t&&"object"==typeof t?t:{};this.trigger(jp.CONTAINER_RESIZE,e)})),M(ZF,this)&&"function"==typeof M(ZF,this).on&&M(ZF,this).on(jp.CONTAINER_RESIZE,M(cC,this)),N(hC,this,bC).call(this),N(hC,this,yC).call(this),C(qF,this,N(hC,this,wC).call(this)),M(qF,this)}onDispose(){M($F,this)&&"function"==typeof M($F,this).off&&M(eC,this)&&M($F,this).off(jp.TIMELINE_CUEPOINT,M(eC,this)),C(eC,this,null),M($F,this)&&"function"==typeof M($F,this).off&&(M(rC,this)&&M($F,this).off(jp.TIMELINE_PLAYER_STATE,M(rC,this)),M(oC,this)&&M($F,this).off(jp.TIMELINE_SEEKING,M(oC,this)),M(sC,this)&&M($F,this).off(jp.TIMELINE_SEEKED,M(sC,this))),C(rC,this,null),C(oC,this,null),C(sC,this,null),C(nC,this,null),M(ZF,this)&&"function"==typeof M(ZF,this).off&&M(cC,this)&&M(ZF,this).off(jp.CONTAINER_RESIZE,M(cC,this)),C(cC,this,null),M(QF,this)&&"function"==typeof M(QF,this).off&&(M(aC,this)&&M(QF,this).off("qoescore",M(aC,this)),M(lC,this)&&M(QF,this).off("qoestatus",M(lC,this))),C(aC,this,null),C(lC,this,null),M(YF,this)&&"function"==typeof M(YF,this).off&&M(uC,this)&&M(YF,this).off(jp.DECODER_ERROR,M(uC,this)),C(uC,this,null),C(dC,this,0),M(tC,this)&&"function"==typeof M(tC,this).dispose&&M(tC,this).dispose(),C(tC,this,null),M(JF,this)&&"function"==typeof M(JF,this).dispose&&M(JF,this).dispose(),C($F,this,null),C(UF,this,null),C(HF,this,null),C(GF,this,null),C(KF,this,null),C(XF,this,null),C(YF,this,null),C(QF,this,null),C(ZF,this,null),C(VF,this,null),C(qF,this,null),C(JF,this,null)}}function pC(t={}){var e;this.trigger(jp.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 mC(t={}){const e="string"==typeof(null==t?void 0:t.event)?t.event:"";if(!WF.has(e))return;if("playing"!==e||Number.isFinite(M(iC,this))||C(iC,this,Pg()),M(nC,this)===e)return;C(nC,this,e);const n=Number.isFinite(null==t?void 0:t.time)?t.time:M($F,this)&&Number.isFinite(M($F,this).currentTime)?M($F,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 gC(){return new PF(M(UF,this))}function vC(t){if(!t||"object"!=typeof t)throw new Error("EkoPlayer.switchTimeline requires a timeline definition");if(!M($F,this)||"function"!=typeof M($F,this).applyTimelineDefinition)throw new Error("EkoPlayer.switchTimeline requires an active timeline");M($F,this).applyTimelineDefinition(t),"function"==typeof M($F,this).play&&M($F,this).play()}function yC(){M(QF,this)&&"function"==typeof M(QF,this).on&&(C(aC,this,(t=>{this.trigger(jp.QOE_SCORE,t)})),C(lC,this,(t=>{this.trigger(jp.QOE_STATUS,t)})),M(QF,this).on(jp.QOE_SCORE,M(aC,this)),M(QF,this).on(jp.QOE_STATUS,M(lC,this)))}function bC(){M(YF,this)&&"function"==typeof M(YF,this).on&&(C(uC,this,(t=>{const e=t&&"object"==typeof t?t:{error:t};this.trigger(jp.DECODER_ERROR,e),N(hC,this,kC).call(this,e)})),M(YF,this).on(jp.DECODER_ERROR,M(uC,this)))}function kC(t={}){var e;const n=M($F,this);if(!n||"number"!=typeof n.currentTime)return;const i=Date.now();if(i<M(dC,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;C(dC,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 xC(t={}){if(M(tC,this))return M(tC,this);const e=t&&"object"==typeof t&&!Array.isArray(t)?{...t}:{},n=M(VF,this)&&M(VF,this).element?M(VF,this).element:null;if(!n)throw new Error("Debug overlay requires an initialized player canvas and mount element.");const i=function({canvasElement:t,containerElement:e}={}){const n=t&&t.parentNode?t.parentNode:null;if(null==e)return n;const i=function(t,e=(null==Hc?void 0:Hc.document)){if(Gc(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 Gc(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:n,containerElement:e.containerElement});if(!i)throw new Error("Debug overlay requires an initialized player canvas and mount element.");Object.prototype.hasOwnProperty.call(e,"containerElement")&&delete e.containerElement;const r=await Promise.resolve().then((function(){return GO})),o=(null==r?void 0:r.createDebugOverlay)||(null==r?void 0:r.default);if("function"!=typeof o)throw new Error("Debug overlay bundle does not export createDebugOverlay().");return e.publicOptions=M(jF,this),e.playerVersion=TF,C(tC,this,o({mountElement:i,canvasElement:n,timeline:M($F,this),getNode:t=>M(UF,this)&&"function"==typeof M(UF,this).get?M(UF,this).get(t):void 0,listNodes:()=>M(UF,this)&&"function"==typeof M(UF,this).list?M(UF,this).list():[],downloadSpeed:M(JF,this)?M(JF,this).downloadSpeed:void 0,downloadEvents:Eg,qoe:M(QF,this)?M(QF,this).publicAPI:void 0,qoeEvents:this,options:e,playbackStartedAtMs:M(iC,this)})),M(tC,this)}function wC(){const t=this;return{createTimeline:()=>N(hC,t,gC).call(t),switchTimeline:e=>N(hC,t,vC).call(t,e),play:M($F,this).play,pause:M($F,this).pause,reset:M($F,this).reset,placeOnTimeline:M($F,this).placeOnTimeline,placeRenderNodeOnTimeline:M($F,this).placeRenderNodeOnTimeline,addNode:M(UF,this).add,getNode:M(UF,this).get,listNodes:M(UF,this).list,getNodesAtTime:e=>M($F,t).getNodesAtTime(e),dispose:this.dispose,on:t.on,off:t.off,once:t.once,trigger:t.trigger,transitionTo:(e,n)=>M(GF,t).transitionTo(e,n),track:(e,...n)=>{if(M(XF,t)&&"function"==typeof M(XF,t).track)return M(XF,t).track(e,...n)},seekToPlacement:e=>M($F,t).seekToPlacement(e),get currentTime(){return M($F,t).currentTime},set currentTime(e){M($F,t).currentTime=e},get buffered(){return M($F,t).buffered},get options(){return M(jF,t)},get containerWidth(){return M(ZF,t)?M(ZF,t).containerWidth:0},get containerHeight(){return M(ZF,t)?M(ZF,t).containerHeight:0},get playbackRate(){return M($F,t).playbackRate},set playbackRate(e){M($F,t).playbackRate=e},get paused(){return!!M($F,t)&&!0===M($F,t).paused},get muted(){return!!M(KF,t)&&M(KF,t).muted},set muted(e){M(KF,t)&&(M(KF,t).muted=e)},get volume(){return M(KF,t)?M(KF,t).volume:1},set volume(e){M(KF,t)&&(M(KF,t).volume=e)},get qoe(){return M(QF,t)?M(QF,t).publicAPI:void 0},get utils(){return IF},get version(){return TF},loadDebugOverlay:(...e)=>N(hC,t,xC).call(t,...e)}}function _C(t){t&&(C(VF,this,t.canvas),C(UF,this,t.nodeRepository),C($F,this,t.timeline),C(KF,this,t.audioAdapter||t.audioPlaybackManager),C(XF,this,t.tracker),C(YF,this,t.parsingManager),C(QF,this,t.qoe),C(HF,this,t.renderAdapter||t.renderer),C(GF,this,t.transitionManager),C(ZF,this,t.containerSize))}class TC{constructor({target:t,props:e}){if(!t)throw new Error("`options.target` is required");Zr(this.#bt,e,!0),this.#bt.v.EkoPlayer=fC;const n=t.hasChildNodes()?Ss:Es;this.#kt=n(yc,{target:t,props:this.#bt.v})}#kt;#bt=Qr(io({}));destroy(t){if(this.#kt)return function(t,e){const n=Ms.get(t);return n?(Ms.delete(t),n(e)):Promise.resolve()}(this.#kt,t)}get props(){return us(this.#bt)}}const IC=()=>e.createElement("style",{suppressHydrationWarning:!0},'\n .textBoxDescriptionBox.svelte-17x2i38 {\n width: 100%;\n position: absolute;\n bottom: 0;\n display: flex;\n flex-direction: column;\n gap: 8px;\n box-sizing: border-box;\n 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 );\n }\n\n .step-description.svelte-17x2i38 {\n overflow: hidden;\n position: relative;\n transition: all 0.4s cubic-bezier(0, 1, 0.25, 1);\n font-size: 12px;\n font-weight: 400;\n font-style: normal;\n line-height: 16px;\n letter-spacing: 0px;\n color: #000;\n display: flex;\n flex-direction: column;\n transition: height 0.2s ease;\n interpolate-size: allow-keywords;\n\n > button:where(.svelte-17x2i38) {\n display: flex;\n justify-content: space-between;\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n line-height: 18px;\n gap: 8px;\n font-weight: 400;\n letter-spacing: 0%;\n }\n\n &.expanded {\n > button:where(.svelte-17x2i38) {\n flex-direction: column;\n align-items: flex-start;\n }\n\n p:where(.svelte-17x2i38) {\n -webkit-mask-image: none;\n mask-image: none;\n }\n }\n\n &:not(.expanded) {\n p:where(.svelte-17x2i38) {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 1;\n line-clamp: 1;\n }\n }\n\n h3:where(.svelte-17x2i38) {\n margin: 0;\n font-size: 16px;\n font-weight: 500;\n color: #030303;\n }\n\n p:where(.svelte-17x2i38) {\n margin: 0;\n text-align: left;\n }\n\n span:where(.svelte-17x2i38) {\n color: #014FD3;\n font-size: 12px;\n font-weight: 600;\n flex-shrink: 0;\n }\n }\n.eko-gallery-app {\n --toggleModule_gap: 8px;\n --toggleModule_padding: 10px 58px 0 0;\n --toggleModule_options_padding: 0;\n --toggleModule_options_height: auto;\n --toggleModule_options_width: 100%;\n --toggleModule_options_gap: 8px;\n --toggleModule_button_backgroundColor: #FFFFFF;\n --toggleModule_button_padding: 8px 12px;\n --toggleModule_button_boxShadow: 0px 2px 8px 2px rgba(0, 0, 0, 0.07);\n --toggleModule_button_text_fontFamily: var(--fontName);\n --toggleModule_button_text_fontSize: 12px;\n --toggleModule_button_text_fontWeight: 400;\n --toggleModule_button_text_fontStyle: normal;\n --toggleModule_button_text_lineHeight: 16px;\n --toggleModule_button_text_letterSpacing: -0.2px;\n --toggleModule_button_text_color: #000;\n --toggleModule_button_border_radius: 100px;\n --toggleModule_title_fontFamily: var(--fontName);\n --toggleModule_title_fontSize: 13px;\n --toggleModule_title_fontWeight: 400;\n --toggleModule_title_fontStyle: normal;\n --toggleModule_title_lineHeight: 120%;\n --toggleModule_title_letterSpacing: 0;\n --toggleModule_title_color: #666;\n --toggleModule_title_textAlignment: center;\n --toggleModule_note_fontFamily: var(--fontName);\n --toggleModule_note_fontSize: 12px;\n --toggleModule_note_fontWeight: 400;\n --toggleModule_note_fontStyle: normal;\n --toggleModule_note_lineHeight: 120%;\n --toggleModule_note_letterSpacing: 0;\n --toggleModule_note_color: #888;\n --toggleModule_note_topMargin: 4px;\n}\n\n.toggle-container.svelte-16pmvvn {\n position: absolute;\n top: 0;\n padding: var(--toggleModule_padding);\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--toggleModule_gap);\n pointer-events: auto;\n box-sizing: border-box;\n}\n\n.toggle-options.svelte-16pmvvn {\n width: var(--toggleModule_options_width);\n height: var(--toggleModule_options_height);\n padding: var(--toggleModule_options_padding);\n gap: var(--toggleModule_options_gap);\n display: flex;\n justify-content: end;\n margin: 0;\n}\n\n.toggle-option-container.svelte-16pmvvn {\n position: relative;\n min-width: 0;\n}\n/* (unused) .toggle-option-container:has(button.selected) .option-note {\n animation: optionNoteIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards 0.3s;\n}*/\n\n.toggle-option-button.svelte-16pmvvn {\n border-radius: var(--toggleModule_button_borderRadius);\n font-family: var(--toggleModule_button_text_fontFamily);\n font-size: var(--toggleModule_button_text_fontSize);\n font-weight: var(--toggleModule_button_text_fontWeight);\n font-style: var(--toggleModule_button_text_fontStyle);\n line-height: var(--toggleModule_button_text_lineHeight);\n letter-spacing: var(--toggleModule_button_text_letterSpacing);\n color: var(--toggleModule_button_text_color);\n padding: var(--toggleModule_button_padding);\n border: #E4E5E8 solid 1px;\n background: #FBFBFB;\n display: flex;\n width: 100%;\n height: 100%;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n cursor: pointer;\n position: relative;\n transition: all 0.3s ease-in-out;\n animation-duration: 0.5s;\n animation-timing-function: cubic-bezier(0.36, 0, 0, 1);\n animation-fill-mode: both;\n animation-delay: calc(var(--button-index) * 90ms);\n animation-name: svelte-16pmvvn-button-back-appear-anim;\n transform-origin: bottom center;\n border-radius: var(--toggleModule_button_border_radius);\n}\n.toggle-option-button.selected.svelte-16pmvvn {\n box-shadow: none;\n color: #FFFFFF;\n background: #014FD3;\n border-color: #014FD3;\n}\n.toggle-option-button.svelte-16pmvvn:hover:not(.selected) {\n background: #F3F4F6;\n}\n.toggle-option-button.svelte-16pmvvn:active:not(.selected) {\n background: #E4E5E8;\n}\n.toggle-option-button.svelte-16pmvvn:focus {\n outline-offset: 4px;\n outline-width: 2px;\n}\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}.eko-gallery-app {\n --tryItModule_justifyContent: center;\n --tryItModule_alignItems: flex-end;\n --tryItModule_padding: 16px 20px 48px 20px;\n --tryItModule_button_padding: 16px 32px;\n --tryItModule_button_textAlign: center;\n --tryItModule_button_borderRadius: 100px;\n --tryItModule_button_border: 0;\n --tryItModule_button_boxShadow: 0 4px 24px 2px rgba(0, 0, 0, 0.12);\n --tryItModule_button_background: #FFFFFF;\n --tryItModule_button_text_fontFamily: var(--fontName);\n --tryItModule_button_text_fontSize: 18px;\n --tryItModule_button_text_color: #222;\n --tryItModule_button_text_weight: 500;\n --tryItModule_button_text_lineHeight: 120%;\n --tryItModule_button_text_letterSpacing: -0.1px;\n}\n\n.tryIt-container.svelte-16kucsb {\n position: relative;\n padding: var(--tryItModule_padding);\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n display: flex;\n justify-content: var(--tryItModule_justifyContent);\n align-items: var(--tryItModule_alignItems);\n}\n.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) {\n padding: var(--tryItModule_button_padding);\n text-align: var(--tryItModule_button_textAlign);\n border-radius: var(--tryItModule_button_borderRadius);\n border: var(--tryItModule_button_border);\n background: var(--tryItModule_button_background);\n box-shadow: var(--tryItModule_button_boxShadow);\n font-family: var(--tryItModule_button_text_fontFamily);\n font-size: var(--tryItModule_button_text_fontSize);\n color: var(--tryItModule_button_text_color);\n font-weight: var(--tryItModule_button_text_weight);\n line-height: var(--tryItModule_button_text_lineHeight);\n letter-spacing: var(--tryItModule_button_text_letterSpacing);\n cursor: pointer;\n opacity: 0;\n overflow: hidden;\n}\n.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) div:where(.svelte-16kucsb) {\n opacity: 0;\n}.eko-gallery-app {\n --nav_gap: 10px;\n --nav_padding: 12px 16px;\n --nav_bgColor: #FFFFFF;\n --nav_justifyContent: center;\n --nav_button_width: fit-content;\n --nav_button_bgColor: #FFFFFF;\n --nav_button_borderRadius: 100px;\n --nav_button_paddingTop: 8px;\n --nav_button_paddingBottom: var(--nav_button_paddingTop);\n --nav_button_paddingLeft: 12px;\n --nav_button_paddingRight: var(--nav_button_paddingLeft);\n --nav_button_boxShadow: 0 0 0 1px #E7E7E7;\n --nav_button_gap: 2px;\n --nav_button_selected_boxShadow: 0 0 0 1px #000000;\n --nav_button_selected_bgColor: var(--nav_button_bgColor);\n --nav_button_text_color: #000000;\n --nav_button_text_fontSize: 14px;\n --nav_button_text_fontWeight: 500;\n --nav_button_text_fontFamily: var(--fontName);\n --nav_button_text_lineHeight: 120%;\n --nav_button_text_letterSpacing: 0px;\n --nav_button_text_align: center;\n --nav_button_selected_text_color: var(--nav_button_text_color);\n --nav_button_selected_text_fontWeight: var(--nav_button_text_fontWeight);\n --nav_button_image_borderRadius: calc(var(--nav_button_borderRadius) - var(--nav_button_paddingTop));\n --nav_arrow_color: var(--secondaryColor);\n --nav_arrow_bgColor: var(--primaryColor);\n --nav_arrow_padding: 9px;\n --nav_arrow_size: 28px;\n --nav_arrow_boxShadow: 0 0 8px 0 rgba(0, 0, 0, 0.3);\n}\n\n.nav-buttons-container.svelte-er27y2 {\n width: 100%;\n background-color: var(--nav_bgColor);\n height: var(--buttonsContainerHeight);\n display: flex;\n box-sizing: border-box;\n text-align: center;\n justify-content: var(--nav_justifyContent);\n align-items: center;\n position: relative;\n flex-shrink: 0;\n}\n\n.nav-buttons.svelte-er27y2 {\n display: flex;\n margin: 0;\n gap: var(--nav_gap);\n height: 100%;\n align-items: center;\n padding: var(--nav_padding);\n box-sizing: border-box;\n overflow-x: auto;\n scrollbar-width: none;\n max-width: 100%;\n width: fit-content;\n overflow-y: hidden;\n overscroll-behavior-y: none;\n}\n\n.nav-button.svelte-er27y2 {\n display: flex;\n outline: none;\n flex-shrink: 0;\n height: 100%;\n width: var(--nav_button_width);\n border: none;\n cursor: pointer;\n align-items: center;\n gap: var(--nav_button_gap);\n transition: all 0.2s ease-in-out;\n background-color: var(--nav_button_bgColor);\n border-radius: var(--nav_button_borderRadius);\n /* eslint-disable-next-line max-len */\n padding: var(--nav_button_paddingTop) var(--nav_button_paddingRight) var(--nav_button_paddingBottom) var(--nav_button_paddingLeft);\n box-shadow: var(--nav_button_boxShadow);\n}\n.nav-button.svelte-er27y2 span:where(.svelte-er27y2) {\n flex: 1 0 0;\n transition: color 0.2s ease-in-out;\n color: var(--nav_button_text_color);\n font-weight: var(--nav_button_text_fontWeight);\n font-size: var(--nav_button_text_fontSize);\n font-family: var(--nav_button_text_fontFamily);\n line-height: var(--nav_button_text_lineHeight);\n letter-spacing: var(--nav_button_text_letterSpacing);\n text-align: var(--nav_button_text_align);\n}\n.nav-button.selected.svelte-er27y2 {\n background-color: var(--nav_button_selected_bgColor);\n box-shadow: var(--nav_button_selected_boxShadow);\n}\n.nav-button.selected.svelte-er27y2 span:where(.svelte-er27y2) {\n color: var(--nav_button_selected_text_color);\n font-weight: var(--nav_button_selected_text_fontWeight);\n}.nav-button.svelte-1al44kl {\n height: 30px;\n width: 30px;\n border-radius: 100%;\n background-color: transparent;\n padding: 9px;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n border: 0;\n opacity: 100%;\n cursor: pointer;\n transition-property: background-color, box-shadow, opacity;\n position: relative;\n}\n.nav-button.prev.svelte-1al44kl {\n transform: rotate(180deg);\n}\n.nav-button.hidden.svelte-1al44kl {\n opacity: 0;\n pointer-events: none;\n}\n.nav-button.svelte-1al44kl::before {\n content: "";\n position: absolute;\n top: -8px;\n right: -8px;\n bottom: -8px;\n left: -8px;\n}\n.nav-button.svelte-1al44kl img:where(.svelte-1al44kl) {\n height: 100%;\n}.steps-indicator-container.svelte-1mxltt0 {\n width: calc(100% - 32px);\n position: absolute;\n bottom: 12px;\n left: 16px;\n animation-duration: 0.75s;\n animation-timing-function: cubic-bezier(0.36, 0, 0, 1);\n animation-fill-mode: both;\n animation-delay: 0.15s;\n animation-name: svelte-1mxltt0-gallery-steps-appear-anim;\n}\n\n.steps-indicator.svelte-1mxltt0 {\n --stepSize: 6px;\n --stepPadding: 7px;\n gap: 8px;\n padding: 4px 0px;\n display: flex;\n align-items: center;\n overflow-x: auto;\n pointer-events: all;\n scrollbar-width: none;\n}\n.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0) {\n position: relative;\n overflow: hidden;\n}\n.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0):after {\n transition: 0.3s ease-in-out;\n transition-property: opacity, width;\n}\n/* (unused) .steps-indicator.with-duration.paused .step-button span.active:after {\n animation-play-state: paused;\n}*/\n\n.step-button.svelte-1mxltt0 {\n padding: 8px 12px;\n border: #E4E5E8 solid 1px;\n background-color: #FBFBFB;\n cursor: pointer;\n pointer-events: all;\n flex-shrink: 0;\n border-radius: 100px;\n font-size: 12px;\n font-weight: 400;\n line-height: 16px;\n color: #030303;\n transition: all 0.3s ease-in-out;\n outline-color: #3191fc;\n}\n.step-button.active.svelte-1mxltt0 {\n background-color: #014FD3;\n color: #FFFFFF;\n box-shadow: none;\n border-color: #014FD3;\n}\n.step-button.active.svelte-1mxltt0:after {\n opacity: 100%;\n animation: svelte-1mxltt0-stepDurationAnimation var(--stepDuration) linear forwards;\n animation-play-state: running;\n}\n.step-button.svelte-1mxltt0:hover:not(.active) {\n background: #F3F4F6;\n}\n.step-button.svelte-1mxltt0:active:not(.active) {\n background: #E4E5E8;\n}\n.step-button.svelte-1mxltt0:focus {\n outline-offset: 4px;\n outline-width: 2px;\n}\n/* (unused) .step-button:has(> .tiny) {\n pointer-events: none;\n cursor: default;\n}*/\n.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0) {\n display: block;\n box-sizing: border-box;\n pointer-events: none;\n white-space: nowrap;\n}\n/* (unused) .step-button span.tiny {\n width: calc(var(--stepSize) / 2);\n height: calc(var(--stepSize) / 2);\n}*/\n.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0):after {\n content: "";\n background-color: rgba(0, 0, 0, 0.6);\n position: absolute;\n border-radius: var(--stepSize);\n width: 0;\n height: 100%;\n top: 0;\n left: -100%;\n opacity: 0;\n transform: translateX(0);\n animation-play-state: paused;\n}\n\n.step-arrow.svelte-1mxltt0 {\n width: 32px;\n height: 34px;\n position: absolute;\n z-index: 10;\n bottom: 4px;\n border: none;\n background-color: #FBFBFB;\n padding: 10px;\n pointer-events: none;\n cursor: pointer;\n opacity: 0;\n}\n.step-arrow.svelte-1mxltt0:hover {\n background: #F6F6F7;\n}\n.step-arrow.svelte-1mxltt0:active {\n background: #E4E5E8;\n}\n\n.step-arrow-prev.svelte-1mxltt0 {\n left: 0;\n transform: translateX(-100%);\n animation: svelte-1mxltt0-arrow-left-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;\n}\n.step-arrow-prev.visible.svelte-1mxltt0 {\n pointer-events: auto;\n animation: svelte-1mxltt0-arrow-left-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;\n}\n.step-arrow-prev.svelte-1mxltt0 img:where(.svelte-1mxltt0) {\n transform: rotate(180deg);\n}\n\n.step-arrow-next.svelte-1mxltt0 {\n right: 0;\n transform: translateX(100%);\n animation: svelte-1mxltt0-arrow-right-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;\n}\n.step-arrow-next.visible.svelte-1mxltt0 {\n pointer-events: auto;\n animation: svelte-1mxltt0-arrow-right-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;\n}\n\nimg.svelte-1mxltt0 {\n height: 100%;\n}\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}.pause-button.svelte-a3r6re {\n position: absolute;\n top: 10px;\n right: 10px;\n background: #FFFFFF;\n border-radius: 100%;\n border: 1px #C4C8CF solid;\n padding: 0;\n width: 32px;\n height: 32px;\n display: flex;\n justify-content: center;\n align-items: center;\n pointer-events: auto;\n transition: background 0.2s ease-in-out;\n cursor: pointer;\n outline-color: #3191fc;\n}\n.pause-button.svelte-a3r6re:hover {\n background: #F6F6F7;\n}\n.pause-button.svelte-a3r6re:active {\n background: #E4E5E8;\n}\n.pause-button.svelte-a3r6re:focus {\n outline-offset: 8px;\n outline-width: 2px;\n}\n.pause-button.svelte-a3r6re img:where(.svelte-a3r6re) {\n width: 16px;\n height: 16px;\n pointer-events: none;\n}.covers-container.svelte-1rvgxfc {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-snap-type: x mandatory;\n display: flex;\n pointer-events: auto;\n}\n.covers-container.svelte-1rvgxfc::-webkit-scrollbar {\n display: none;\n}\n\n.cover-container.svelte-1rvgxfc {\n position: relative;\n width: 100%;\n height: 100%;\n flex-shrink: 0;\n scroll-snap-align: center;\n user-select: none;\n}\n\n.cover-image.svelte-1rvgxfc {\n width: 100%;\n height: 100%;\n object-fit: cover;\n pointer-events: none;\n}\n.cover-image.active.svelte-1rvgxfc {\n opacity: 0;\n}\n\n.ui-container.svelte-1rvgxfc {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}.eko-gallery-app.svelte-1n46o8q {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n user-select: none;\n box-sizing: border-box;\n}\n.eko-gallery-app.svelte-1n46o8q:hover .paging-buttons:where(.svelte-1n46o8q) .nav-button {\n background-color: #FFFFFF;\n box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.12);\n}\n.eko-gallery-app.svelte-1n46o8q * {\n box-sizing: border-box;\n}\n\n.player-container.svelte-1n46o8q {\n position: relative;\n flex: 1;\n width: 100%;\n pointer-events: none;\n overflow: hidden;\n}\n\n.absolute-full.svelte-1n46o8q {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n}\n\n.swipable.svelte-1n46o8q {\n will-change: transform;\n transform: translate3d(var(--uiTranformX, 0), 0, 0);\n}\n\n.paging-buttons.svelte-1n46o8q {\n display: flex;\n justify-content: space-between;\n align-items: center;\n pointer-events: none;\n padding: 0 12px;\n}\n.paging-buttons.svelte-1n46o8q .nav-button {\n transition: 0.2s ease-in-out;\n box-shadow: none;\n}\n.paging-buttons.svelte-1n46o8q .nav-button img {\n opacity: 0.6;\n}'),EC=u("gallery-react");const SC=e.forwardRef(((t,n)=>{const i=e.useRef(null),r=e.useRef({}),{config:o,debug:s,ssrHtml:a,activeItem:l={index:0,step:0},onEvent:c=()=>{}}=t,u=function(t){return void 0!==t}(o),d=e.useRef(l),h=e.useRef(a),f=e.useCallback((t=>{r.current.state=t,t.activeItemIndex===d.current.index&&t.activeModuleIndex===d.current.step||c("activeitemchanged",{index:t.activeItemIndex,step:t.activeModuleIndex})}),[]),p=e.useCallback((t=>{r.current.API=t,r.current.unsubscribe&&r.current.unsubscribe(),r.current.unsubscribe=t.subscribe(f)}),[]);return e.useEffect((()=>(EC.setDataStorage("gallery-react",{config:o}),window.eko=window.eko||{},window.eko.config=o,window.eko.gallery={version:"4.0.2"},()=>{window.eko.config=void 0})),[o]),e.useImperativeHandle(n,(()=>({prev:()=>{var t;null===(t=r.current.API)||void 0===t||t.prev()},next:()=>{var t;null===(t=r.current.API)||void 0===t||t.next()}}))),e.useEffect((()=>{if(null==i||!i.current)return;const t=i.current;return r.current.app=new TC({target:t,props:{config:o,hideNav:!0,onGalleryReady:p}}),()=>{var t;null===(t=r.current.app)||void 0===t||t.destroy()}}),[]),e.useEffect((()=>{r.current.app&&(r.current.app.props.config=o)}),[o]),e.useEffect((()=>{r.current.app&&(r.current.app.props.debug=s)}),[s]),e.useEffect((()=>{d.current=l,r.current.state&&(r.current.state.activeItemIndex===l.index&&r.current.state.activeModuleIndex===l.step||r.current.API.selectItemAndStep(l.index,l.step))}),[l]),u?e.createElement(e.Fragment,null,e.createElement(IC,null),e.createElement("div",R({style:{position:"relative",width:"100%",height:"100%"},ref:i},h.current?{dangerouslySetInnerHTML:{__html:h.current}}:{}))):t.children}));SC.propTypes={className:Tt.string,config:Tt.object,variantId:Tt.string,onEvent:Tt.func,ssrHtml:Tt.string,debug:Tt.bool,activeItem:Tt.shape({index:Tt.number,step:Tt.number}),instanceId:Tt.string,children:Tt.node},SC.displayName="EkoGallerySvelte";const NC=n("v2"),AC=n("v1"),MC="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{},FC=MC&&MC.performance,CC=FC&&"function"==typeof FC.now?()=>FC.now():()=>Date.now(),OC=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"}),PC=["ui-monospace,","SFMono-Regular,","Menlo,","Monaco,","Consolas,",'"Liberation Mono",','"Courier New",',"monospace"].join(" "),RC=`11px ${PC}`,DC=`12px ${PC}`;function BC(t){return"number"==typeof t&&Number.isFinite(t)}function LC(t){return BC(t)&&t>0}function zC(t){return BC(t)?Math.min(1,Math.max(0,t)):0}function WC(t,e=3){return BC(t)?t.toFixed(e):String(t)}function UC(t,e){const n=Number(t),i=Number(e);return!Number.isFinite(n)||!Number.isFinite(i)||n<=0||i<=0?"n/a":`${Math.round(n)}x${Math.round(i)}`}var $C=new WeakMap,jC=new WeakMap,qC=new WeakMap,VC=new WeakMap,HC=new WeakMap,GC=new WeakMap,KC=new WeakMap,XC=new WeakSet;class YC{constructor({width:t=220,height:e=48,windowMs:n=6e4,maxValue:i=60,autoScale:r=!1,formatValue:o}={}){O(this,XC),F(this,$C,void 0),F(this,jC,void 0),F(this,qC,[]),F(this,VC,void 0),F(this,HC,void 0),F(this,GC,void 0),F(this,KC,void 0);const s=null==MC?void 0:MC.document;if(!s||"function"!=typeof s.createElement)throw new Error("Debug overlay graph requires document.createElement.");C($C,this,s.createElement("canvas")),M($C,this).width=t,M($C,this).height=e,M($C,this).style.width=`${t}px`,M($C,this).style.height=`${e}px`,M($C,this).style.borderRadius="6px",M($C,this).style.background="#111",C(jC,this,M($C,this).getContext("2d")),C(VC,this,n),C(HC,this,i),C(GC,this,!!r),C(KC,this,"function"==typeof o?o:null)}get element(){return M($C,this)}push(t,e){if(M($C,this)&&M(jC,this)&&Number.isFinite(t)&&Number.isFinite(e)){for(M(qC,this).push({t:e,v:t});M(qC,this).length&&e-M(qC,this)[0].t>M(VC,this);)M(qC,this).shift();N(XC,this,QC).call(this)}}dispose(){C(qC,this,[]),C(jC,this,null),C($C,this,null)}}function QC(){const t=M(jC,this),e=M($C,this);if(!t||!e)return;const n=e.width,i=e.height;if(!n||!i)return;if(t.clearRect(0,0,n,i),t.fillStyle="#111",t.fillRect(0,0,n,i),!M(qC,this).length)return;const r=M(qC,this)[0].t;if(!(M(qC,this)[M(qC,this).length-1].t>r))return;const o=M(GC,this)?M(qC,this).reduce(((t,e)=>e.v>t?e.v:t),0):M(HC,this),s=o>0?o:M(HC,this);t.strokeStyle="#0f0",t.lineWidth=2,t.beginPath();for(let e=0;e<M(qC,this).length;e+=1){const o=M(qC,this)[e],a=(o.t-r)/M(VC,this)*n,l=i-(s>0?Math.min(1,Math.max(0,o.v/s)):0)*i;0===e?t.moveTo(a,l):t.lineTo(a,l)}t.stroke();const a=M(qC,this).length?M(qC,this)[M(qC,this).length-1]:null,l=Number.isFinite(null==a?void 0:a.v)?a.v:null;if(null===l)return;const c=M(KC,this)?M(KC,this).call(this,l):l.toFixed(1);if("string"!=typeof c||!c)return;t.font=RC,t.textAlign="right",t.textBaseline="top";const u=t.measureText(c),d=Math.ceil(u.width)+8,h=n-d-2;t.fillStyle="rgba(0,0,0,0.55)",t.fillRect(h,2,d,14),t.fillStyle="#fff",t.fillText(c,n-2-4,4)}const JC=new Intl.NumberFormat("en-US");function ZC(t,e){const n=(null==t?void 0:t.trackId)||"",i=(null==e?void 0:e.trackId)||"";if(n!==i)return n<i?-1:1;const r=(null==t?void 0:t.nodeId)||"",o=(null==e?void 0:e.nodeId)||"";if(r!==o)return r<o?-1:1;const s=(null==t?void 0:t.segmentId)||"",a=(null==e?void 0:e.segmentId)||"";return s!==a?s<a?-1:1:("number"==typeof(null==t?void 0:t.presentationTime)?t.presentationTime:0)-("number"==typeof(null==e?void 0:e.presentationTime)?e.presentationTime:0)}function tO(t,e){for(t.push(e);t.length&&e-t[0]>1e3;)t.shift();if(t.length<2)return 0;const n=t[t.length-1]-t[0];return n<=0?0:1e3*(t.length-1)/n}function eO(t,e){if("function"!=typeof t||!e)return;const n=t(e.nodeId),i=null==n?void 0:n.tracks;if(!Array.isArray(i))return;const r=i.find((t=>(null==t?void 0:t.id)===e.trackId)),o=null==r?void 0:r.segments;return Array.isArray(o)?o.find((t=>(null==t?void 0:t.id)===e.segmentId)):void 0}function nO(t,e){var n;const i=eO(t,e);return(null==i?void 0:i.abrDecision)||(null==i||null===(n=i.chosenRepresentation)||void 0===n?void 0:n.abrDecision)}function iO(t){const e=Number(t);return!Number.isFinite(e)||e<=0?"n/a":`${JC.format(Math.round(e))}kbps`}function rO(t){const e=Number(t);return!Number.isFinite(e)||e<=0?"n/a":`${JC.format(Math.round(e/1e3))}kbps`}function oO(t,e=3){const n=Number(t);return Number.isFinite(n)?n.toLocaleString("en-US",{minimumFractionDigits:e,maximumFractionDigits:e}):String(t)}function sO(t,e){var n;if("function"!=typeof t||!e)return;const i=t(e.nodeId),r=null==i||null===(n=i.manifestRef)||void 0===n?void 0:n.encodeProfile;return"string"==typeof r&&r?r:void 0}function aO(t,e){if("function"!=typeof t||!e)return;const n=t(e.nodeId);return!0===(null==n?void 0:n.imageFallbackActive)?"image":void 0}function lO(t,e){const n=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}}}(null==e?void 0:e.frame)||{},i=Number.isFinite(null==e?void 0:e.width)?e.width:n.width,r=Number.isFinite(null==e?void 0:e.height)?e.height:n.height,o=function(t,e,n){return null===(n=eO(t,e))||void 0===n?void 0:n.chosenRepresentation}(t,e);if(!o)return BC(i)&&BC(r)?{width:i,height:r}:null;const s=o.width||o.codedWidth||i,a=o.height||o.codedHeight||r;return{id:o.id,codecs:o.codecs,mime:o.mime,bandwidth:o.bandwidth,width:s,height:a}}function cO(t){const e=Number(t);if(Number.isFinite(e)&&!(e<=0))return e/1e3}function uO(t,e){const n=Number(null==t?void 0:t.bandwidthKbps),i=Number(null==e?void 0:e.bandwidthKbps),r=Number.isFinite(n)&&n>0,o=Number.isFinite(i)&&i>0;if(r&&o&&n!==i)return n-i;if(r!==o)return r?-1:1;const s=(null==t?void 0:t.id)||"",a=(null==e?void 0:e.id)||"";return s===a?0:s<a?-1:1}function dO(t,e,n,i){const r=[];if(Array.isArray(null==i?void 0:i.availableRepresentations)&&i.availableRepresentations.forEach((t=>{const e="string"==typeof(null==t?void 0:t.id)&&t.id?t.id:void 0;if(!e)return;const n=Number(null==t?void 0:t.bandwidthKbps);r.push({id:e,bandwidthKbps:Number.isFinite(n)&&n>0?n:void 0})})),!r.length){const n=eO(t,e);(Array.isArray(null==n?void 0:n.representations)?n.representations:[]).forEach((t=>{const e="string"==typeof(null==t?void 0:t.id)&&t.id?t.id:void 0;e&&r.push({id:e,bandwidthKbps:cO(null==t?void 0:t.bandwidth)})}))}!r.length&&(null==n?void 0:n.id)&&r.push({id:n.id,bandwidthKbps:cO(n.bandwidth)});const o=new Map;return r.forEach((t=>{const e=null==t?void 0:t.id;e&&!o.has(e)&&o.set(e,t)})),Array.from(o.values()).sort(uO)}const hO=1024,fO=1048576,pO=1073741824;function mO(t){return BC(t)?t>=1e3?`${WC(t/1e3,1)} Mbps`:`${WC(t,1)} kbps`:"n/a"}function gO({downloadSpeed:t,downloadEvents:e}={}){const n=MC.document,i="function"==typeof(null==t?void 0:t.getKbps)?t.getKbps():void 0;let r=0;const{metricsRow:o,setInitial:s,setTotal:a}=function(t){const e=t.createElement("div");e.style.display="grid",e.style.gridTemplateColumns="1fr 1fr",e.style.gap="8px",e.style.font=DC;const n=t.createElement("div"),i=t.createElement("div");return e.appendChild(n),e.appendChild(i),{metricsRow:e,setInitial:t=>{n.textContent=`initial=${mO(t)}`},setTotal:t=>{var e;i.textContent="total="+(BC(e=t)?e<hO?`${Math.round(e)} B`:e<fO?`${WC(e/hO,1)} KB`:e<pO?`${WC(e/fO,2)} MB`:`${WC(e/pO,2)} GB`:"n/a")}}}(n),{graphWrap:l,speedGraph:c}=function(t,e){const n=t.createElement("div");n.style.marginTop="10px";const i=t.createElement("div");i.textContent="download speed",i.style.font=RC,i.style.opacity="0.9";const r=BC(e)&&e>0?e:1,o=new YC({autoScale:!0,maxValue:r,formatValue:mO});return n.appendChild(i),n.appendChild(o.element),{graphWrap:n,speedGraph:o}}(n,i);s(i),a(r);const u=t=>{const e=Number(null==t?void 0:t.kbps);Number.isFinite(e)&&c.push(e,null!=MC&&MC.performance&&"function"==typeof MC.performance.now?MC.performance.now():Date.now())},d=t=>{const e=Number(null==t?void 0:t.bytes);Number.isFinite(e)&&(r+=e,a(r))};return t&&"function"==typeof t.on&&t.on("download:speed",u),e&&"function"==typeof e.on&&e.on("download:sample",d),{id:"downloads",title:"Downloads",render:t=>{t.appendChild(o),t.appendChild(l)},dispose:()=>{t&&"function"==typeof t.off&&t.off("download:speed",u),e&&"function"==typeof e.off&&e.off("download:sample",d),c.dispose()}}}function vO(t){return BC(t)?WC(t,3):"n/a"}function yO(){return null!=MC&&MC.performance&&"function"==typeof MC.performance.now?MC.performance.now():Date.now()}const bO=18,kO="rgba(83,170,255,0.9)",xO={pending:"rgba(255,255,255,0.55)",resolving:"rgba(255,200,87,0.9)",ready:"rgba(102,214,141,0.9)",failed:"rgba(255,92,92,0.9)",missing:"rgba(160,160,160,0.9)"};function wO(t,e){if(LC(null==t?void 0:t.nodeDurationOverride))return t.nodeDurationOverride;if("function"!=typeof e)return null;const n=e(null==t?void 0:t.nodeId),i=null==n?void 0:n.duration;return LC(i)?i:null}function _O(t){const e=Number(null==t?void 0:t.duration);return e===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:LC(e)?e:null}function TO(t){return t===Number.POSITIVE_INFINITY}function IO(t){return BC(t)?String(t):""}function EO(t=[],e=[],n){const i=function(t=[],e){return Array.isArray(t)&&t.length?t.map((t=>t?["string"==typeof t.placementId?t.placementId:"","string"==typeof t.nodeId?t.nodeId:"",IO(t.offset),IO(wO(t,e)),!0===t.offsetPending?"1":"0",IO(t.nodeOffsetOverride),IO(t.nodeDurationOverride)].join("|"):"null")).join(";"):""}(t,n);return`${i}::${function(t=[]){return Array.isArray(t)&&t.length?t.map((t=>{if(!t)return"null";const e="string"==typeof t.renderPlacementId?t.renderPlacementId:"",n="string"==typeof t.type?t.type:"",i=IO(t.offset),r=_O(t);return[e,n,i,r===Number.POSITIVE_INFINITY?"inf":IO(r),!0===t.offsetPending?"1":"0"].join("|")})).join(";"):""}(e)}`}function SO(t=[],e){if(!Array.isArray(t)||!t.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n];if(!i||!0===i.offsetPending)continue;if(LC(i.nodeDurationOverride))continue;if("function"!=typeof e)return!0;const r=e(i.nodeId);if(!LC(null==r?void 0:r.duration))return!0}return!1}function NO(t=[]){return!(!Array.isArray(t)||!t.length)&&t.some((t=>!0===(null==t?void 0:t.offsetPending)))}function AO(t=[],e=[]){return NO(t)||NO(e)}function MO(t,e=[],n){if(!t||!Array.isArray(e)||!e.length)return;const i=t.querySelector('[data-segment-boundary="true"]');e.forEach((e=>{if(!e||!BC(e.startRatio)||!BC(e.endRatio))return;const r=zC(e.startRatio),o=zC(e.endRatio);if(!(o>r))return;const s=MC.document.createElement("div");s.dataset.bufferedSegment="true",s.style.position="absolute",s.style.top="0",s.style.bottom="0",s.style.left=100*r+"%",s.style.width=100*(o-r)+"%",s.style.background=n,s.style.opacity="0.8",s.style.pointerEvents="none",s.style.zIndex="0",i?t.insertBefore(s,i):t.appendChild(s)}))}function FO(t,e){if(!t)return;const n=t.querySelector('[data-active-highlight="true"]');if(!e)return void(n&&n.remove());if(n)return;const i=MC.document.createElement("div");i.dataset.activeHighlight="true",i.style.position="absolute",i.style.top="0",i.style.bottom="0",i.style.left="0",i.style.right="0",i.style.border="1px solid rgba(255,255,255,0.9)",i.style.borderRadius="4px",i.style.pointerEvents="none",i.style.zIndex="1",t.appendChild(i)}function CO({timeline:t,getNode:e}={}){const n=null==MC?void 0:MC.document;if(!n||"function"!=typeof n.createElement)throw new Error("Debug overlay timeline tab requires document.createElement.");const i=n.createElement("div");i.style.display="flex",i.style.flexDirection="column",i.style.gap="8px",i.style.position="relative";const r=n.createElement("div");r.style.position="absolute",r.style.display="none",r.style.pointerEvents="none",r.style.zIndex="2",r.style.padding="4px 6px",r.style.borderRadius="6px",r.style.background="rgba(0,0,0,0.8)",r.style.border="1px solid rgba(255,255,255,0.2)",r.style.color="#fff",r.style.font=RC,r.style.maxWidth="220px",r.style.whiteSpace="nowrap",r.style.overflow="hidden",r.style.textOverflow="ellipsis";const o=n.createElement("div");o.dataset.timelineHoverDetails="true",o.style.position="absolute",o.style.display="none",o.style.pointerEvents="none",o.style.zIndex="3",o.style.padding="6px 8px",o.style.borderRadius="8px",o.style.background="rgba(0,0,0,0.85)",o.style.border="1px solid rgba(255,255,255,0.25)",o.style.color="#fff",o.style.font=RC,o.style.maxWidth="260px",o.style.flexDirection="column",o.style.gap="6px";const s=n.createElement("div");s.style.font=DC,s.style.opacity="0.95";const a=n.createElement("div");a.style.font=RC,a.style.opacity="0.7",a.style.textTransform="uppercase",a.style.marginTop="4px";const l=n.createElement("div");l.style.display="flex",l.style.flexDirection="column",l.style.gap="4px",o.appendChild(s),o.appendChild(a),o.appendChild(l);const c=n.createElement("div");c.style.display="flex",c.style.justifyContent="space-between",c.style.alignItems="center";const u=n.createElement("div");u.style.display="flex",u.style.alignItems="baseline",u.style.gap="10px";const d=n.createElement("div");d.style.font=DC,d.style.opacity="0.9";const h=n.createElement("div");h.style.font=RC,h.style.opacity="0.65",u.appendChild(d),u.appendChild(h);const f=n.createElement("label");f.style.display="inline-flex",f.style.alignItems="center",f.style.gap="6px",f.style.font=RC,f.style.cursor="pointer";const p=n.createElement("input");p.type="checkbox",p.checked=!1;const m=n.createElement("span");m.textContent="Click to seek",f.appendChild(p),f.appendChild(m),c.appendChild(u),c.appendChild(f);const g=n.createElement("div");function v(t,e,{alignTop:i=!1}={}){const r=n.createElement("div");r.style.display="grid",r.style.gridTemplateColumns="64px 1fr",r.style.alignItems=i?"start":"center",r.style.gap="8px";const o=n.createElement("div");o.textContent=t,o.style.font=RC,o.style.opacity="0.8",i&&(o.style.paddingTop="2px");const s=n.createElement("div");s.style.position="relative",s.style.borderRadius="6px",s.style.background="rgba(255,255,255,0.08)",s.style.overflow="hidden",e&&(s.dataset.timelineLane=e);const a=n.createElement("div");return a.style.position="absolute",a.style.top="0",a.style.bottom="0",a.style.width="2px",a.style.background="rgba(255,255,255,0.8)",s.appendChild(a),r.appendChild(o),r.appendChild(s),g.appendChild(r),{track:s,indicator:a}}g.style.display="grid",g.style.gridTemplateRows="auto auto",g.style.gap="8px",i.appendChild(c),i.appendChild(g),i.appendChild(r),i.appendChild(o);const y=v("Nodes","nodes",{alignTop:!0}),b=v("Render","render");let k=[],x=[],w=0,_=!1,T=1;const I=new Map,E=new Map,S=new Map,N=new Map;let A=new Set,M=null,F=!1,C="",O=!1,P=0,R=0,D=null;function B(t){for(;t.childNodes.length>1;)t.removeChild(t.lastChild)}function L(){D&&(clearTimeout(D),D=null)}function z(){return!!O||!!t&&(Array.isArray(t.placements)||Array.isArray(t.renderPlacements))}function W(){if(!t)return!1;const e=Array.isArray(t.placements),n=Array.isArray(t.renderPlacements);if(!e&&!n)return!1;const i=e?t.placements:[],r=n?t.renderPlacements:[];return(i.length!==P||r.length!==R)&&(et(i,r),!0)}function U(){if(!O)return!1;const t=EO(k,x,e);return t!==C&&(C=t,Q(),tt(),!0)}function $(){z()?D=function({shouldSchedule:t,isScheduled:e,intervalMs:n,onTick:i}){return e?null:setTimeout(i,n)}({shouldSchedule:!0,isScheduled:!!D,intervalMs:O?100:250,onTick:()=>{D=null,z()&&(W()||U()||$())}}):L()}function j(t,e){const n=e>0?w/e:0;t.style.left=100*zC(n)+"%",t.style.transform="translateX(-1px)"}function q(){r.style.display="none"}function V(t,e){if(!t)return void q();r.textContent=t,r.style.display="block";const n=i.getBoundingClientRect(),o=r.getBoundingClientRect(),s=((null==e?void 0:e.clientX)||0)-n.left+12,a=((null==e?void 0:e.clientY)||0)-n.top+12,l=n.width-o.width-8,c=n.height-o.height-8,u=Math.max(8,Math.min(s,l)),d=Math.max(8,Math.min(a,c));r.style.left=`${u}px`,r.style.top=`${d}px`}function H(){o.style.display="none"}function G(t,r){const c="function"==typeof e&&t?e(t):null,u=Array.isArray(null==c?void 0:c.children)?c.children:[];if(!u.length)return void H();if(s.textContent=t,a.textContent="children",function(){for(;l.firstChild;)l.removeChild(l.firstChild)}(),u.forEach((t=>{t&&t.nodeId&&l.appendChild(function(t){const i=n.createElement("div");i.style.display="grid",i.style.gridTemplateColumns="10px 1fr auto auto",i.style.alignItems="center",i.style.gap="6px";const r="string"==typeof(null==t?void 0:t.nodeId)?t.nodeId:"",o=LC(null==t?void 0:t.weight)?t.weight:1,s=function(t){if(!t||"function"!=typeof e)return"missing";const n=e(t);if(!n)return"missing";const i="string"==typeof n.state?n.state.trim().toLowerCase():"";return"pending"===i||"resolving"===i||"ready"===i||"failed"===i?i:"pending"}(r);i.dataset.childId=r,i.dataset.childStatus=s;const a=n.createElement("span");a.dataset.statusIndicator=s,a.style.width="8px",a.style.height="8px",a.style.borderRadius="999px",a.style.background=xO[s]||xO.pending,a.style.display="inline-block";const l=n.createElement("span");l.textContent=r||"unknown",l.style.overflow="hidden",l.style.textOverflow="ellipsis",l.style.whiteSpace="nowrap";const c=n.createElement("span");c.textContent=`w=${WC(o,0)}`,c.style.opacity="0.8";const u=n.createElement("span");return u.textContent=s,u.style.opacity="0.75",i.appendChild(a),i.appendChild(l),i.appendChild(c),i.appendChild(u),i}(t))})),!l.childNodes.length)return void H();o.style.display="flex";const d=i.getBoundingClientRect(),h=o.getBoundingClientRect(),f=((null==r?void 0:r.clientX)||0)-d.left+12,p=((null==r?void 0:r.clientY)||0)-d.top+12,m=d.width-h.width-8,g=d.height-h.height-8,v=Math.max(8,Math.min(f,m)),y=Math.max(8,Math.min(p,g));o.style.left=`${v}px`,o.style.top=`${y}px`}function K(){const e=w;if(t&&"function"==typeof t.getPlacementsActiveAtTime){const n=t.getPlacementsActiveAtTime(e),i=new Set(n.map((t=>null==t?void 0:t.placementId)).filter((t=>"string"==typeof t&&t.length)));A.forEach((t=>{i.has(t)||FO(S.get(t),!1)})),i.forEach((t=>{A.has(t)||FO(S.get(t),!0)})),A=i}else y.track.querySelectorAll('[data-timeline-item="nodes"]').forEach((t=>{const n="true"===t.dataset.hasDuration,i=Number(t.dataset.start),r=Number(t.dataset.end);FO(t,n&&BC(e)&&e>=i&&e<r)}));if(t&&"function"==typeof t.getActiveRenderPlacement){const n=t.getActiveRenderPlacement(e),i=null==n?void 0:n.renderPlacementId;M&&M!==i&&FO(N.get(M),!1),i&&M!==i&&FO(N.get(i),!0),M=i||null}else b.track.querySelectorAll('[data-timeline-item="render"]').forEach((t=>{const n="true"===t.dataset.hasDuration,i=Number(t.dataset.start),r=Number(t.dataset.end);FO(t,n&&BC(e)&&e>=i&&e<r)}))}function X(t){const n=wO(t,e);if(!LC(n)||"function"!=typeof e)return{boundaries:[],buffered:[]};const i=e(null==t?void 0:t.nodeId),r=function(t){const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];if(!e.length)return null;if(null!=t&&t.mainTrackId){const n=e.find((e=>(null==e?void 0:e.id)===t.mainTrackId));if(n)return n}return e.find((t=>Array.isArray(null==t?void 0:t.segments)&&t.segments.length))||null}(i);if(!r)return{boundaries:[],buffered:[]};const o=t=>{if(!t)return 0;const e=Number(null==t?void 0:t.bufferedRatio);if(Number.isFinite(e))return zC(e);const n=Number(null==t?void 0:t.retainedByteLength);if(!LC(n))return 0;const i=null==t?void 0:t.chosenRepresentation,r=LC(null==i?void 0:i.sizeBytes)?i.sizeBytes:null;return LC(r)?zC(n/r):1},s=Array.isArray(r.segments)?r.segments:[],a=BC(null==r?void 0:r.offset)?r.offset:0,l=BC(null==t?void 0:t.nodeOffsetOverride)?t.nodeOffsetOverride:0;if(!s.length){const t=null==i?void 0:i.buffered,e=BC(null==t?void 0:t.start)?t.start-l:0,r=BC(null==t?void 0:t.end)?t.end-l:0,o=Math.max(0,e),s=Math.min(n,r);return s>o?{boundaries:[],buffered:[{startRatio:o/n,endRatio:s/n}]}:{boundaries:[],buffered:[]}}if("image"===(null==r?void 0:r.type)){const t=s.find((t=>t&&!t.isInit))||s[0],e=t?o(t):0;return e>0?{boundaries:[],buffered:[{startRatio:0,endRatio:zC(e)}]}:{boundaries:[],buffered:[]}}return function(t,e,n,i,r){const o=[],s=[];let a=0;return t.forEach((t=>{if(null!=t&&t.isInit)return;BC(null==t?void 0:t.offset)&&(a=t.offset);const l=a;if(!BC(l))return;const c=BC(null==t?void 0:t.duration)?t.duration:0,u=n+l-i,d=n+(l+c)-i;u>0&&u<e&&o.push(u/e);const h="function"==typeof r?r(t):0;if(c>0&&d>0&&u<e&&h>0){const t=Math.max(0,u),n=Math.min(e,d);if(n>t){const i=t+(n-t)*zC(h);s.push({startRatio:t/e,endRatio:i/e})}}c>0&&(BC(null==t?void 0:t.offset)?a=t.offset+c:a+=c)})),{boundaries:o,buffered:s}}(s,n,a,l,o)}function Y(){const t=Array.isArray(k)?k:[],e=new Map(t.map((t=>[null==t?void 0:t.placementId,t])));for(const[t,n]of S.entries()){if(!t)continue;const i=e.get(t);i&&(n.querySelectorAll('[data-buffered-segment="true"]').forEach((t=>t.remove())),MO(n,X(i).buffered,kO))}}function Q(){const t=new Set(k.map((t=>null==t?void 0:t.nodeId)).filter((t=>"string"==typeof t&&t.length)));t.forEach((t=>{if(E.has(t))return;const n="function"==typeof e?e(t):null;if(!n||"function"!=typeof n.on)return;const i=t=>function(t={}){if(!t||t.isInit)return;const e=null==t?void 0:t.nodeId,n=null==t?void 0:t.segmentId,i=Number(null==t?void 0:t.loaded),r=Number(null==t?void 0:t.total);if(!e||!n||!BC(i))return;const o=`${e}:${n}`,s=I.get(o)||{},a={loaded:Math.max(BC(s.loaded)?s.loaded:0,i),total:LC(r)?r:s.total};I.set(o,a),function(){if(F)return;F=!0;const t=null==MC?void 0:MC.requestAnimationFrame;"function"!=typeof t?((null==MC?void 0:MC.setTimeout)||setTimeout)((()=>{F=!1,Y()}),0):t((()=>{F=!1,Y()}))}()}(t);n.on("segment:chunk",i),E.set(t,{node:n,handler:i})}));for(const[e,n]of E.entries())t.has(e)||(null!=n&&n.node&&"function"==typeof n.node.off&&n.node.off("segment:chunk",n.handler),E.delete(e))}function J({track:t,color:e,start:i,duration:r,startTime:o,durationSeconds:s,segmentRatios:a,bufferedSegments:l,placementId:c,nodeId:u,label:d,rowIndex:h=0,rowHeight:f=18,rowGap:p=0,laneId:m,isClickable:g,isActive:v,tooltip:y,hoverDetailsNodeId:b,showLabel:k,onClick:x}){const w=n.createElement("div");var _,T;T=e,(_=w).style.position="absolute",_.style.borderRadius="4px",_.style.background=T,_.style.opacity="0.9",_.style.font=RC,_.style.color="#fff",_.style.display="flex",_.style.alignItems="center",_.style.whiteSpace="nowrap",_.style.overflow="hidden",_.style.textOverflow="ellipsis",function(t,{startRatio:e,durationRatio:n,rowIndex:i=0,rowHeight:r=18,rowGap:o=0}={}){const s=i*(r+o)+2,a=Math.max(1,r-4);t.style.top=`${s}px`,t.style.height=`${a}px`;const l=zC(e);if(LC(n)){const e=Math.max(0,Math.min(n,1-l));return t.style.left=100*l+"%",t.style.width=100*e+"%",void(t.style.padding="0 4px")}t.style.left=100*l+"%",t.style.width="2px",t.style.padding="0"}(w,{startRatio:i,durationRatio:r,rowIndex:h,rowHeight:f,rowGap:p}),function(t,{laneId:e,label:n,isClickable:i,shouldShowLabel:r,onClick:o}={}){if(e&&(t.dataset.timelineItem=e),r&&n){const e=MC.document.createElement("span");e.textContent=n,e.style.position="relative",e.style.zIndex="2",e.style.pointerEvents="none",t.appendChild(e)}i&&(t.style.cursor="pointer"),"function"==typeof o&&t.addEventListener("click",o)}(w,{laneId:m,label:d,isClickable:g,shouldShowLabel:"boolean"==typeof k?k:LC(r),onClick:x}),y&&(w.title=y),BC(o)&&(w.dataset.start=String(o)),LC(s)||TO(s)?(w.dataset.end=String(o+s),w.dataset.hasDuration="true"):(w.dataset.end="",w.dataset.hasDuration="false"),c&&(w.dataset.placementId=c),u&&(w.dataset.nodeId=u),w.style.pointerEvents="auto",MO(w,l,kO),function(t,e=[]){t&&Array.isArray(e)&&e.length&&e.forEach((e=>{if(!BC(e)||e<=0||e>=1)return;const n=MC.document.createElement("div");n.dataset.segmentBoundary="true",n.style.position="absolute",n.style.top="2px",n.style.bottom="2px",n.style.width="1px",n.style.left=100*zC(e)+"%",n.style.transform="translateX(-0.5px)",n.style.background="rgba(255,255,255,0.35)",n.style.pointerEvents="none",n.style.zIndex="1",t.appendChild(n)}))}(w,a),FO(w,v),y&&(w.addEventListener("mouseenter",(t=>V(y,t))),w.addEventListener("mousemove",(t=>V(y,t))),w.addEventListener("mouseleave",q)),b&&(w.addEventListener("mouseenter",(t=>G(b,t))),w.addEventListener("mousemove",(t=>G(b,t))),w.addEventListener("mouseleave",H)),t.appendChild(w),"nodes"===m&&c?S.set(c,w):"render"===m&&c&&N.set(c,w)}function Z(){let t=0;const n=Array.isArray(k)?k:[],i=Array.isArray(x)?x.filter((t=>!0!==(null==t?void 0:t.offsetPending))):[];return n.forEach((n=>{if(!0===(null==n?void 0:n.offsetPending))return;const i=BC(null==n?void 0:n.offset)?n.offset:void 0;if(!BC(i))return;const r=wO(n,e);t=LC(r)?Math.max(t,i+r):Math.max(t,i)})),i.forEach((e=>{const n=BC(null==e?void 0:e.offset)?e.offset:0,i=_O(e);t=LC(i)?Math.max(t,n+i):Math.max(t,n)})),LC(t)?t:1}function tt(){const n=Z();T=n,d.textContent=`t=${WC(w)}s`,h.textContent=`range=0-${WC(n)}s`,q(),H(),B(y.track),B(b.track),S.clear(),N.clear(),A=new Set,M=null,F=!1;const i=Array.isArray(k)?k:[],r=Array.isArray(x)?x:[],o=function(n){const i=(Array.isArray(n)?n.slice():[]).map((t=>{if(!0===(null==t?void 0:t.offsetPending))return null;const n=BC(null==t?void 0:t.offset)?t.offset:void 0;if(!BC(n))return null;const i=wO(t,e);return{placement:t,offset:n,duration:i,end:LC(i)?n+i:n,rowIndex:0}})).filter(Boolean).sort(((t,e)=>{var n,i,r,o;const s=t.offset-e.offset;if(0!==s)return s;const a="string"==typeof(null===(n=t.placement)||void 0===n?void 0:n.nodeId)?t.placement.nodeId:"",l="string"==typeof(null===(i=e.placement)||void 0===i?void 0:i.nodeId)?e.placement.nodeId:"";if(a!==l)return a.localeCompare(l);const c="string"==typeof(null===(r=t.placement)||void 0===r?void 0:r.placementId)?t.placement.placementId:"",u="string"==typeof(null===(o=e.placement)||void 0===o?void 0:o.placementId)?e.placement.placementId:"";return c.localeCompare(u)})),r=[],o=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);return i.forEach((t=>{const e=t.offset,n=BC(t.end)?t.end:e;let i=-1;for(let t=0;t<r.length;t+=1)if(r[t]<=e+o){i=t;break}-1===i?(i=r.length,r.push(n)):r[i]=Math.max(r[i],n),t.rowIndex=i})),{items:i,rowCount:Math.max(1,r.length)}}(i);var s;!function(t){const e=t.rowCount*bO+4*(t.rowCount-1);y.track.style.height=`${e}px`,b.track.style.height="18px",y.track.style.cursor=_?"pointer":"default",y.track.style.pointerEvents="auto",b.track.style.pointerEvents="auto"}(o),s=n,o.items.forEach((t=>{const e=t.placement,n=t.offset,i=t.duration,r=(null==e?void 0:e.nodeId)||(null==e?void 0:e.placementId)||"node",o=!!BC(w)&&w>=n&&(!LC(i)||w<n+i),a=X(e);J({track:y.track,color:"rgba(255,255,255,0.16)",start:zC(n/s),duration:LC(i)?zC(i/s):null,startTime:n,durationSeconds:i,segmentRatios:a.boundaries,bufferedSegments:a.buffered,placementId:null==e?void 0:e.placementId,nodeId:null==e?void 0:e.nodeId,label:r,rowIndex:t.rowIndex,rowHeight:bO,rowGap:4,laneId:"nodes",isClickable:_,isActive:o,tooltip:(null==e?void 0:e.nodeId)||(null==e?void 0:e.placementId),hoverDetailsNodeId:null==e?void 0:e.nodeId})})),function(t,e){t.forEach((t=>{const n=BC(null==t?void 0:t.offset)?t.offset:void 0;if(!BC(n))return;const i=_O(t),r=TO(i),o=(null==t?void 0:t.type)||(null==t?void 0:t.renderPlacementId)||"render",s=function(t){const e="string"==typeof t?t.trim().toLowerCase():"";return"switch"===e||"switching"===e||"switchingrendernode"===e}(null==t?void 0:t.type),a=s?()=>{"function"==typeof(null==MC?void 0:MC.switchTo)&&MC.switchTo("next")}:void 0;let l=!1;BC(w)&&(r?l=w>=n:LC(i)&&(l=w>=n&&w<n+i));const c=r&&LC(e)?zC((e-n)/e):LC(i)?zC(i/e):null;J({track:b.track,color:"rgba(248,162,62,0.9)",start:zC(n/e),duration:c,startTime:n,durationSeconds:i,label:o,placementId:null==t?void 0:t.renderPlacementId,rowIndex:0,rowHeight:bO,rowGap:0,laneId:"render",isClickable:!!s,isActive:l,tooltip:(null==t?void 0:t.type)||(null==t?void 0:t.renderPlacementId),showLabel:LC(i)||r,onClick:a})}))}(r,n),j(y.indicator,n),j(b.indicator,n),K(),Y(),O=AO(k,x)||SO(k,e),C=O?EO(k,x,e):"",P=Array.isArray(k)?k.length:0,R=Array.isArray(x)?x.length:0,$()}function et(t,n){k=Array.isArray(t)?t.slice():[],x=Array.isArray(n)?n.slice():[],O=AO(k,x)||SO(k,e),Q(),tt()}return p.addEventListener("change",(()=>{_=p.checked,tt()})),y.track.addEventListener("click",(e=>{!function(e,n,i){if(!_||!t)return;if(!LC(n)||!i)return;const r="function"==typeof i.getBoundingClientRect?i.getBoundingClientRect():null,o=LC(null==r?void 0:r.width)?r.width:i.clientWidth;if(!LC(o))return;const s=BC(null==r?void 0:r.left)?r.left:0,a=zC(((BC(null==e?void 0:e.clientX)?e.clientX:0)-s)/o)*n;BC(a)&&(t.currentTime=a)}(e,Z(),y.track)})),{id:"timeline",title:"Timeline",render:t=>{t.appendChild(i),tt()},updatePlacements:et,updateTime:function(t){if(w=BC(t)?t:w,W())return;if(O&&U())return;const e=T;BC(e)&&(d.textContent=`t=${WC(w)}s`,h.textContent=`range=0-${WC(e)}s`,j(y.indicator,e),j(b.indicator,e),K())},refresh:()=>tt(),dispose:()=>{L();for(const t of E.values())(null==t?void 0:t.node)&&"function"==typeof t.node.off&&t.node.off("segment:chunk",t.handler);E.clear(),I.clear()}}}const OO=1024,PO=1048576,RO=1073741824;function DO(t){return BC(t)?t<OO?`${Math.round(t)} B`:t<PO?`${WC(t/OO,1)} KB`:t<RO?`${WC(t/PO,2)} MB`:`${WC(t/RO,2)} GB`:"n/a"}const BO="ekoplayer-debug-overlay";var LO=new WeakMap,zO=new WeakMap,WO=new WeakMap,UO=new WeakMap,$O=new WeakSet;class jO{constructor({tabBarEl:t,contentEl:e}){O(this,$O),F(this,LO,[]),F(this,zO,void 0),F(this,WO,void 0),F(this,UO,void 0),C(WO,this,t),C(UO,this,e)}registerTab(t){t&&"string"==typeof t.id&&"string"==typeof t.title&&"function"==typeof t.render&&(M(LO,this).some((e=>e.id===t.id))||(M(LO,this).push(t),N($O,this,qO).call(this),M(zO,this)||this.selectTab(t.id)))}selectTab(t){M(LO,this).find((e=>e.id===t))&&(C(zO,this,t),N($O,this,qO).call(this),N($O,this,VO).call(this))}dispose(){M(WO,this)&&(M(WO,this).innerHTML=""),M(UO,this)&&(M(UO,this).innerHTML=""),C(LO,this,[]),C(WO,this,null),C(UO,this,null)}}function qO(){const t=M(WO,this);t&&(t.innerHTML="",M(LO,this).forEach((e=>{const n=MC.document.createElement("button");n.type="button",n.textContent=e.title,n.style.cursor="pointer",n.style.padding="6px 10px",n.style.borderRadius="6px",n.style.border="1px solid rgba(255,255,255,0.2)",n.style.background=e.id===M(zO,this)?"rgba(255,255,255,0.18)":"rgba(0,0,0,0.2)",n.style.color="#fff",n.style.font=DC,n.addEventListener("click",(()=>this.selectTab(e.id))),t.appendChild(n)})))}function VO(){const t=M(UO,this);if(!t)return;t.innerHTML="";const e=M(LO,this).find((t=>t.id===M(zO,this)));e&&e.render(t)}function HO({mountElement:t,canvasElement:e,timeline:n,getNode:i,listNodes:r,downloadSpeed:o,downloadEvents:s,qoe:a,qoeEvents:l,options:c={},playbackStartedAtMs:u,playerVersion:d}={}){if(!t)throw new Error("Debug overlay requires mountElement.");if(!n||"function"!=typeof n.on)throw new Error("Debug overlay requires a Timeline with .on/.off.");!function(t){if(!t||!t.style)return;const e=null==MC?void 0:MC.window,n=e&&"function"==typeof e.getComputedStyle?e.getComputedStyle(t):null,i=n?n.position:t.style.position;i&&"static"!==i||(t.style.position="relative")}(t);const h=MC.document.getElementById(BO);h&&h.parentNode&&h.parentNode.removeChild(h);const f=function({mountElement:t,playerVersion:e}){const n=null==MC?void 0:MC.document;if(!n||"function"!=typeof n.createElement)throw new Error("Debug overlay requires document.createElement.");const i=n.createElement("div");i.id=BO,i.style.position="absolute",i.style.inset="0",i.style.zIndex="999999",i.style.pointerEvents="none";const r=n.createElement("div");r.style.position="absolute",r.style.top="8px",r.style.left="8px",r.style.width="460px",r.style.maxWidth="calc(100% - 16px)",r.style.background="rgba(0,0,0,0.65)",r.style.border="1px solid rgba(255,255,255,0.18)",r.style.borderRadius="10px",r.style.padding="10px",r.style.color="#fff",r.style.pointerEvents="auto",r.style.backdropFilter="blur(6px)";const o=n.createElement("div");o.style.display="flex",o.style.justifyContent="space-between",o.style.alignItems="center",o.style.gap="10px";const s=n.createElement("div");s.textContent="EkoPlayer Debug",s.style.font="600 13px ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial";const a=n.createElement("button");a.type="button",a.textContent="Hide",a.style.cursor="pointer",a.style.padding="6px 10px",a.style.borderRadius="8px",a.style.border="1px solid rgba(255,255,255,0.2)",a.style.background="rgba(0,0,0,0.2)",a.style.color="#fff",o.appendChild(s),o.appendChild(a);const l=n.createElement("div");l.style.display="flex",l.style.gap="8px",l.style.marginTop="10px";const c=n.createElement("div");c.style.marginTop="10px";const u=n.createElement("div");u.style.marginTop="10px",u.style.font=RC,u.style.display="flex",u.style.justifyContent="space-between",u.style.alignItems="center",u.style.gap="10px";const d=n.createElement("div");d.style.color="rgba(140, 224, 255, 0.9)",d.textContent="Playback started @ --";const h=n.createElement("div");h.style.opacity="0.7",h.style.marginLeft="auto",h.textContent=e?`version ${e}`:"version n/a",u.appendChild(d),u.appendChild(h);const f=n.createElement("button");return f.type="button",f.textContent="Debug",f.style.position="absolute",f.style.top="8px",f.style.left="8px",f.style.cursor="pointer",f.style.padding="6px 10px",f.style.borderRadius="10px",f.style.border="1px solid rgba(255,255,255,0.25)",f.style.background="rgba(0,0,0,0.55)",f.style.color="#fff",f.style.pointerEvents="auto",f.style.display="none",r.appendChild(o),r.appendChild(l),r.appendChild(c),r.appendChild(u),i.appendChild(r),i.appendChild(f),t.appendChild(i),{overlayRoot:i,panel:r,tabBar:l,content:c,hideBtn:a,showBtn:f,footerPlayback:d}}({mountElement:t,playerVersion:d||(null==c?void 0:c.playerVersion)}),p=new jO({tabBarEl:f.tabBar,contentEl:f.content});let m=!0;function g(){m=!1,f.panel.style.display="none",f.showBtn.style.display="inline-block"}function v(){m=!0,f.panel.style.display="block",f.showBtn.style.display="none"}f.hideBtn.addEventListener("click",g),f.showBtn.addEventListener("click",v);const y=CO({timeline:n,getNode:i}),b=function({getNode:t}){const e=MC.document,n=e.createElement("pre");n.style.margin="0",n.style.whiteSpace="pre-wrap",n.style.font=DC,n.style.lineHeight="1.35";const i=e.createElement("div");i.style.display="flex",i.style.flexDirection="column",i.style.gap="8px",i.style.marginTop="6px";const r=e.createElement("div");r.style.display="flex",r.style.gap="10px",r.style.marginTop="10px",r.style.alignItems="center",r.style.flexWrap="wrap";const o=new YC({maxValue:60}),s=new YC({maxValue:60}),a=e.createElement("div"),l=e.createElement("div");l.textContent="browserfps",l.style.font=RC,l.style.opacity="0.9",a.appendChild(l),a.appendChild(o.element);const c=e.createElement("div"),u=e.createElement("div");return u.textContent="fps",u.style.font=l.style.font,u.style.opacity="0.9",c.appendChild(u),c.appendChild(s.element),r.appendChild(a),r.appendChild(c),{id:"frames",title:"Frames",render:t=>{t.appendChild(n),t.appendChild(i),t.appendChild(r)},pushBrowserFps:(t,e)=>o.push(t,e),pushVisualFps:(t,e)=>s.push(t,e),updateInfo:function({time:r,entries:o}){const s=Array.isArray(o)?o.slice().sort(ZC):[];if(!s.length)return n.textContent="",void(i.innerHTML="");n.textContent=`t=${oO(r)}s tracks=${s.length}`,i.innerHTML="";for(let n=0;n<s.length;n+=1){const r=s[n],o=lO(t,r),a=(null==o?void 0:o.id)||"n/a",l=(null==o?void 0:o.codecs)||(null==o?void 0:o.mime)||"n/a",c=rO(null==o?void 0:o.bandwidth),u=UC(null==o?void 0:o.width,null==o?void 0:o.height),d=sO(t,r)||"n/a",h=aO(t,r),f=h?` fallback=${h}`:"",p=nO(t,r),m=(null==p?void 0:p.strategy)||"n/a",g=(null==p?void 0:p.decisionReason)||"n/a",v=iO(null==p?void 0:p.measuredDownloadSpeedKbps),y=iO(null==p?void 0:p.safeBandwidthKbps),b=e.createElement("div");b.style.display="flex",b.style.flexDirection="column",b.style.gap="2px";const k=e.createElement("pre");k.style.margin="0",k.style.whiteSpace="pre-wrap",k.style.font=DC,k.style.lineHeight="1.35",k.textContent=[`${(null==r?void 0:r.nodeId)||"?"} ${(null==r?void 0:r.trackId)||"?"} ${(null==r?void 0:r.segmentId)||"?"} pts=${oO(null==r?void 0:r.presentationTime)}s`,`rep=${a} encodeProfile=${d}${f} res=${u} codec=${l} repBW=${c}`,`abr=strategy:${m} reason:${g} measuredBW:${v} safeBW:${y}`].join("\n"),b.appendChild(k);const x=(null==p?void 0:p.selectedRepresentationId)||(null==o?void 0:o.id),w=dO(t,r,o,p);if(w.length){const t=e.createElement("div");t.style.display="flex",t.style.alignItems="center",t.dataset.abrLadderRow="true",t.dataset.trackId=(null==r?void 0:r.trackId)||"",t.dataset.segmentId=(null==r?void 0:r.segmentId)||"";const n=e.createElement("div");n.style.display="inline-flex",n.style.alignItems="center",n.style.gap="2px",n.dataset.abrLadder="true",w.forEach((t=>{const i=e.createElement("span"),r=!!x&&t.id===x;i.dataset.abrLadderBlock="true",i.dataset.repId=t.id||"",i.dataset.selected=r?"true":"false",i.style.display="inline-block",i.style.width="10px",i.style.height="8px",i.style.borderRadius="2px",i.style.border="1px solid rgba(255,255,255,0.35)",i.style.background=r?"rgba(74, 222, 128, 0.95)":"rgba(156, 163, 175, 0.55)",i.title=`${t.id||"?"} ${iO(t.bandwidthKbps)}`,n.appendChild(i)})),t.appendChild(n),b.appendChild(t)}i.appendChild(b)}},dispose:()=>{o.dispose(),s.dispose()}}}({getNode:i}),k=gO({downloadSpeed:o,downloadEvents:s}),x=function({qoe:t,qoeEvents:e}={}){const n=null==MC?void 0:MC.document;if(!n||"function"!=typeof n.createElement)throw new Error("Debug overlay QoE tab requires document.createElement.");const i=n.createElement("pre");i.style.margin="0",i.style.whiteSpace="pre-wrap",i.style.font=DC;const{graphWrap:r,graph:o}=function(t){const e=t.createElement("div");e.style.marginTop="10px";const n=t.createElement("div");n.textContent="qoe score",n.style.font=RC,n.style.opacity="0.9";const i=new YC({maxValue:1,windowMs:3e4,formatValue:t=>vO(t)});return e.appendChild(n),e.appendChild(i.element),{graphWrap:e,graph:i}}(n);let s=null;const a=()=>{i.textContent=function(t){if(!t)return"QoE unavailable";const e="string"==typeof t.status?t.status:"n/a";return[`score=${vO(t.score)}`,`status=${e}`,`streamQualityScore=${vO(t.streamQualityScore)}`,`fpsScore=${vO(t.fpsScore)}`,`browserFps=${vO(t.browserFps)}`,`waitingSeconds=${vO(t.waitingSeconds)}`,`playingSeconds=${vO(t.playingSeconds)}`].join("\n")}(t)},l=()=>{if(!t)return;const e=Number(t.score);Number.isFinite(e)&&o.push(e,yO())},c=t=>{const e=Number(t);Number.isFinite(e)&&o.push(e,yO()),a()},u=()=>{a()};if(a(),l(),e&&"function"==typeof e.on&&(e.on("qoescore",c),e.on("qoestatus",u)),t){const t="function"==typeof(null==MC?void 0:MC.setInterval)?MC.setInterval:setInterval;s=t((()=>{l(),a()}),1e3)}return{id:"qoe",title:"QoE",render:t=>{t.appendChild(i),t.appendChild(r)},dispose:()=>{e&&"function"==typeof e.off&&(e.off("qoescore",c),e.off("qoestatus",u)),s&&(("function"==typeof(null==MC?void 0:MC.clearInterval)?MC.clearInterval:clearInterval)(s),s=null),o.dispose()}}}({qoe:a,qoeEvents:l}),w=function({timeline:t,getNode:e,listNodes:n,options:i}={}){const r=null==MC?void 0:MC.document;if(!r||"function"!=typeof r.createElement)throw new Error("Debug overlay Memory tab requires document.createElement.");const o=r.createElement("pre");o.style.margin="0",o.style.whiteSpace="pre-wrap",o.style.font=DC;const s=r.createElement("div");s.textContent="nodes",s.style.marginTop="10px",s.style.font=RC,s.style.opacity="0.9";const a=r.createElement("pre");a.style.margin="6px 0 0 0",a.style.whiteSpace="pre-wrap",a.style.font=DC;let l=null;const c=()=>{const r=function({timeline:t,getNode:e,listNodes:n}){const i=[];let r=0;if("function"==typeof n){let t;try{t=n()}catch(e){t=null}if(Array.isArray(t))return t.forEach((t=>{const e=null==t?void 0:t.id;if("string"!=typeof e||!e.length)return;const n=Number(null==t?void 0:t.retainedByteLength);Number.isFinite(n)&&(r+=n,i.push({nodeId:e,bytes:n}))})),i.sort(((t,e)=>e.bytes-t.bytes)),{totalBytes:r,nodes:i,available:!0}}if(!t||"function"!=typeof e)return{totalBytes:0,nodes:[],available:!1};const o=Array.isArray(t.placements)?t.placements:[];return new Set(o.map((t=>null==t?void 0:t.nodeId)).filter((t=>"string"==typeof t&&t.length))).forEach((t=>{const n=e(t),o=Number(null==n?void 0:n.retainedByteLength);Number.isFinite(o)&&(r+=o,i.push({nodeId:t,bytes:o}))})),i.sort(((t,e)=>e.bytes-t.bytes)),{totalBytes:r,nodes:i,available:!0}}({timeline:t,getNode:e,listNodes:n}),s=function({timeline:t}){if(!t||"function"!=typeof t.getDecodedFrameStats)return{totalBytes:0,frames:0,available:!1};try{const e=t.getDecodedFrameStats(),n=Number(null==e?void 0:e.totalBytes),i=Number(null==e?void 0:e.frames);return{totalBytes:Number.isFinite(n)?n:0,frames:Number.isFinite(i)?i:0,available:!1!==(null==e?void 0:e.available)}}catch(t){return{totalBytes:0,frames:0,available:!1}}}({timeline:t}),l=function(t,e,n,i){const r=Number(null!==(n=null==t||null===(i=t.publicOptions)||void 0===i?void 0:i.segmentEvictionMaxRetainedBytes)&&void 0!==n?n:null==t?void 0:t.segmentEvictionMaxRetainedBytes),o=BC(r)&&r>=0,s=o?DO(r):"n/a";return{active:o&&BC(e)&&e>r,thresholdLabel:s}}(i,r.available?r.totalBytes:NaN),c=l.active?"on":"off",u=s.available?DO(s.totalBytes):"n/a",d=s.available?s.frames:"n/a";if(!r.available)return o.textContent=[`decoded=${u} decodedFrames=${d}`,`retained=n/a eviction=${c} threshold=${l.thresholdLabel}`].join("\n"),void(a.textContent="");if(o.textContent=[`decoded=${u} decodedFrames=${d}`,[`retained=${DO(r.totalBytes)}`,`nodes=${r.nodes.length}`,`eviction=${c}`,`threshold=${l.thresholdLabel}`].join(" ")].join("\n"),!r.nodes.length)return void(a.textContent="none");const h=r.nodes.slice(0,8).map((t=>`${t.nodeId}: ${DO(t.bytes)}`));a.textContent=h.join("\n")};c();const u="function"==typeof(null==MC?void 0:MC.setInterval)?MC.setInterval:setInterval;return l=u(c,1e3),{id:"memory",title:"Memory",render:t=>{t.appendChild(o),t.appendChild(s),t.appendChild(a)},refresh:c,dispose:()=>{l&&(("function"==typeof(null==MC?void 0:MC.clearInterval)?MC.clearInterval:clearInterval)(l),l=null)}}}({timeline:n,getNode:i,listNodes:r,options:c});p.registerTab(y),p.registerTab(b),p.registerTab(k),p.registerTab(x),p.registerTab(w),p.registerTab(function({options:t}={}){const e=null==MC?void 0:MC.document;if(!e||"function"!=typeof e.createElement)throw new Error("Debug overlay options tab requires document.createElement.");const n=e.createElement("pre");n.style.margin="0",n.style.font=DC,n.style.whiteSpace="pre-wrap",n.style.wordBreak="break-word";const i=null==t?void 0:t.publicOptions,r=i&&"object"==typeof i?Object.keys(i):[];if(r.length){const t=r.map((t=>`${t}=${function(t){if(null===t)return"null";if(void 0===t)return"undefined";const e=typeof t;if("string"===e)return t;if("number"===e||"boolean"===e)return String(t);try{return JSON.stringify(t)}catch(e){return String(t)}}(i[t])}`));n.textContent=t.join("\n")}else n.textContent="publicOptions unavailable";return{id:"options",title:"Options",render:t=>{t.appendChild(n)}}}({options:c}));const _=[],T=[];let I=0,E=0,S=null,N=!1,A=0,M=null;function F(t){const e=Number(t);Number.isFinite(e)&&(e-A<250||(A=e,b.pushBrowserFps(I,e),b.pushVisualFps(E,e)))}MC.window&&"function"==typeof MC.window.requestAnimationFrame&&(S=MC.window.requestAnimationFrame((function t(e){N||(I=tO(_,e),F(e),S=MC.window.requestAnimationFrame(t))})));const C=(t={})=>{if(N||!m)return;const e=Array.isArray(t.frames)?t.frames:[];if(!e.length)return void(M=null);const n=null!=MC&&MC.performance&&"function"==typeof MC.performance.now?MC.performance.now():Date.now(),i=e.map((t=>`${null==t?void 0:t.nodeId}:${null==t?void 0:t.trackId}:${null==t?void 0:t.segmentId}@${null==t?void 0:t.presentationTime}`)).join("|");i!==M&&(E=tO(T,n),M=i),b.updateInfo({time:t.time,entries:e}),F(n)};let O=Number.isFinite(u)?u:void 0;if(Number.isFinite(O)&&f.footerPlayback){const t=O/1e3;f.footerPlayback.textContent=`Playback started @ ${WC(t)}s`}const P=(t={})=>{if(!N&&void 0===O&&"playing"===(null==t?void 0:t.event)&&(O=CC(),f.footerPlayback)){const t=O/1e3;f.footerPlayback.textContent=`Playback started @ ${WC(t)}s`}},R=()=>{const t=Array.isArray(null==n?void 0:n.placements)?n.placements:[],e=Array.isArray(null==n?void 0:n.renderPlacements)?n.renderPlacements:[];y.updatePlacements(t,e)},D=(t={})=>{if(N)return;const e=Number.isFinite(null==t?void 0:t.time)?t.time:null==n?void 0:n.currentTime;y.updateTime(e),w&&"function"==typeof w.refresh&&w.refresh()},B=()=>{N||R()},L=()=>{N||R()},z=null==n?void 0:n.trackBuffers,W=()=>{N||("function"==typeof y.refresh?y.refresh():R(),w&&"function"==typeof w.refresh&&w.refresh())};return n.on(OC.VISUAL_FRAMES_AVAILABLE,C),n.on(OC.TIMELINE_TIME_UPDATE,D),n.on(OC.PLACEMENT_ADDED,B),n.on(OC.RENDER_PLACEMENT_ADDED,L),n.on(OC.TIMELINE_PLAYER_STATE,P),z&&"function"==typeof z.on&&z.on("track:bufferupdate",W),R(),y.updateTime(null==n?void 0:n.currentTime),{show:v,hide:g,dispose:function(){N||(N=!0,S&&MC.window&&"function"==typeof MC.window.cancelAnimationFrame&&MC.window.cancelAnimationFrame(S),S=null,n&&"function"==typeof n.off&&(n.off(OC.VISUAL_FRAMES_AVAILABLE,C),n.off(OC.TIMELINE_TIME_UPDATE,D),n.off(OC.PLACEMENT_ADDED,B),n.off(OC.RENDER_PLACEMENT_ADDED,L),n.off(OC.TIMELINE_PLAYER_STATE,P)),z&&"function"==typeof z.off&&z.off("track:bufferupdate",W),b&&"function"==typeof b.dispose&&b.dispose(),y&&"function"==typeof y.dispose&&y.dispose(),k&&"function"==typeof k.dispose&&k.dispose(),x&&"function"==typeof x.dispose&&x.dispose(),w&&"function"==typeof w.dispose&&w.dispose(),p.dispose(),f.overlayRoot&&f.overlayRoot.parentNode&&f.overlayRoot.parentNode.removeChild(f.overlayRoot))},registerTab:function(t){p.registerTab(t)},selectTab:function(t){p.selectTab(t)}}}var GO=Object.freeze({__proto__:null,createDebugOverlay:HO,default:HO});exports.EkoGallery=SC,exports.EkoGalleryLegacy=rn,exports.ekoWebPixel=S,exports.getEkoAnalyticsSnippet=function(t){return`if (!window.EkoAnalytics) {\n !function () {\n var t, a, e, s, n;\n 'undefined' == typeof window || window.EkoAnalytics || (t = window, a = 'EkoAnalytics', e = document, s = 'script', t[a] || (t[a] = function () {\n t[a].f ? (t[a].q.push(arguments), t[a].ts.push(Date.now())) : t[a].apply(t, arguments);\n }, t[a].f = !0, t[a].q = t[a].q || [], t[a].ts = t[a].ts || [], t[a].t = Number(new Date), t[a].sa = [], t[a].cb = [], t[a].init = function (ids) {\n t[a].id = ids;\n }, t[a].childRequestIdsCallback = function (e) {\n e.data && 'ea-ids-request' === e.data.type && t[a].sa.push(e.source);\n }, t.addEventListener('message', t[a].childRequestIdsCallback)));\n }();\n\n window.EkoAnalytics.cb.push(() => {\n let setCookie = (key, value, additionalProperties = '') => {\n let hostname = window.location.hostname;\n let domain = hostname;\n \n let parts = hostname.split('.');\n if (parts.length > 2) {\n domain = parts.slice(-2).join('.');\n }\n\n // "samesite=lax" is needed for cross-site situations (like NZXT getting checkout url attributes from lambda).\n window.document.cookie = \`\${key}=\${value}; domain=.\${domain}; path=/; secure; samesite=lax; \${additionalProperties}\`;\n };\n\n setCookie('easid', encodeURIComponent(window.EkoAnalytics('getSid')));\n setCookie('eauid', encodeURIComponent(window.EkoAnalytics('getUid')), 'max-age=2147483647');\n });\n\n window.EkoAnalytics('configure', {\n snowplow: {\n options: {\n appId: 'ekoGalleryReact',\n },\n },\n ekoEnv: '${t?"production":"development"}',\n env: 'website',\n });\n window.EkoAnalytics('track', 'PageView');\n }`},exports.getEkoProductConfigUrl=NC,exports.getEkoProductConfigUrlLegacy=AC;