var $s=Object.defineProperty;var Ns=(st,at,ut)=>at in st?$s(st,at,{enumerable:!0,configurable:!0,writable:!0,value:ut}):st[at]=ut;var cr=(st,at,ut)=>Ns(st,typeof at!="symbol"?at+"":at,ut);function _mergeNamespaces(st,at){for(var ut=0;utdt[ct]})}}}return Object.freeze(Object.defineProperty(st,Symbol.toStringTag,{value:"Module"}))}var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs$1(st){return st&&st.__esModule&&Object.prototype.hasOwnProperty.call(st,"default")?st.default:st}function getAugmentedNamespace(st){if(st.__esModule)return st;var at=st.default;if(typeof at=="function"){var ut=function dt(){return this instanceof dt?Reflect.construct(at,arguments,this.constructor):at.apply(this,arguments)};ut.prototype=at.prototype}else ut={};return Object.defineProperty(ut,"__esModule",{value:!0}),Object.keys(st).forEach(function(dt){var ct=Object.getOwnPropertyDescriptor(st,dt);Object.defineProperty(ut,dt,ct.get?ct:{enumerable:!0,get:function(){return st[dt]}})}),ut}var jsxRuntime={exports:{}},reactJsxRuntime_production_min={},react={exports:{}},react_production_min={};/** * @license React * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var l$5=Symbol.for("react.element"),n$4=Symbol.for("react.portal"),p$5=Symbol.for("react.fragment"),q$4=Symbol.for("react.strict_mode"),r$3=Symbol.for("react.profiler"),t$8=Symbol.for("react.provider"),u$7=Symbol.for("react.context"),v$4=Symbol.for("react.forward_ref"),w$3=Symbol.for("react.suspense"),x$2=Symbol.for("react.memo"),y$4=Symbol.for("react.lazy"),z$3=Symbol.iterator;function A$3(st){return st===null||typeof st!="object"?null:(st=z$3&&st[z$3]||st["@@iterator"],typeof st=="function"?st:null)}var B$2={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C$3=Object.assign,D$4={};function E$2(st,at,ut){this.props=st,this.context=at,this.refs=D$4,this.updater=ut||B$2}E$2.prototype.isReactComponent={};E$2.prototype.setState=function(st,at){if(typeof st!="object"&&typeof st!="function"&&st!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,st,at,"setState")};E$2.prototype.forceUpdate=function(st){this.updater.enqueueForceUpdate(this,st,"forceUpdate")};function F$3(){}F$3.prototype=E$2.prototype;function G$2(st,at,ut){this.props=st,this.context=at,this.refs=D$4,this.updater=ut||B$2}var H$2=G$2.prototype=new F$3;H$2.constructor=G$2;C$3(H$2,E$2.prototype);H$2.isPureReactComponent=!0;var I$6=Array.isArray,J$2=Object.prototype.hasOwnProperty,K$1={current:null},L$3={key:!0,ref:!0,__self:!0,__source:!0};function M$6(st,at,ut){var dt,ct={},pt=null,ft=null;if(at!=null)for(dt in at.ref!==void 0&&(ft=at.ref),at.key!==void 0&&(pt=""+at.key),at)J$2.call(at,dt)&&!L$3.hasOwnProperty(dt)&&(ct[dt]=at[dt]);var ht=arguments.length-2;if(ht===1)ct.children=ut;else if(1"u"&&documentAll!==void 0?function(st){return typeof st=="function"||st===documentAll}:function(st){return typeof st=="function"},isCallable$h=isCallable$i,isObject$c=function(st){return typeof st=="object"?st!==null:isCallable$h(st)},globalThis$q=globalThis_1,isCallable$g=isCallable$i,aFunction=function(st){return isCallable$g(st)?st:void 0},getBuiltIn$a=function(st,at){return arguments.length<2?aFunction(globalThis$q[st]):globalThis$q[st]&&globalThis$q[st][at]},uncurryThis$q=functionUncurryThis,objectIsPrototypeOf=uncurryThis$q({}.isPrototypeOf),globalThis$p=globalThis_1,navigator$1=globalThis$p.navigator,userAgent$3=navigator$1&&navigator$1.userAgent,environmentUserAgent=userAgent$3?String(userAgent$3):"",globalThis$o=globalThis_1,userAgent$2=environmentUserAgent,process$2=globalThis$o.process,Deno$1=globalThis$o.Deno,versions=process$2&&process$2.versions||Deno$1&&Deno$1.version,v8=versions&&versions.v8,match,version$1;v8&&(match=v8.split("."),version$1=match[0]>0&&match[0]<4?1:+(match[0]+match[1]));!version$1&&userAgent$2&&(match=userAgent$2.match(/Edge\/(\d+)/),(!match||match[1]>=74)&&(match=userAgent$2.match(/Chrome\/(\d+)/),match&&(version$1=+match[1])));var environmentV8Version=version$1,V8_VERSION=environmentV8Version,fails$k=fails$o,globalThis$n=globalThis_1,$String$5=globalThis$n.String,symbolConstructorDetection=!!Object.getOwnPropertySymbols&&!fails$k(function(){var st=Symbol("symbol detection");return!$String$5(st)||!(Object(st)instanceof Symbol)||!Symbol.sham&&V8_VERSION&&V8_VERSION<41}),NATIVE_SYMBOL$1=symbolConstructorDetection,useSymbolAsUid=NATIVE_SYMBOL$1&&!Symbol.sham&&typeof Symbol.iterator=="symbol",getBuiltIn$9=getBuiltIn$a,isCallable$f=isCallable$i,isPrototypeOf$4=objectIsPrototypeOf,USE_SYMBOL_AS_UID$1=useSymbolAsUid,$Object$3=Object,isSymbol$3=USE_SYMBOL_AS_UID$1?function(st){return typeof st=="symbol"}:function(st){var at=getBuiltIn$9("Symbol");return isCallable$f(at)&&isPrototypeOf$4(at.prototype,$Object$3(st))},$String$4=String,tryToString$3=function(st){try{return $String$4(st)}catch{return"Object"}},isCallable$e=isCallable$i,tryToString$2=tryToString$3,$TypeError$d=TypeError,aCallable$9=function(st){if(isCallable$e(st))return st;throw new $TypeError$d(tryToString$2(st)+" is not a function")},aCallable$8=aCallable$9,isNullOrUndefined$2=isNullOrUndefined$4,getMethod$3=function(st,at){var ut=st[at];return isNullOrUndefined$2(ut)?void 0:aCallable$8(ut)},call$b=functionCall,isCallable$d=isCallable$i,isObject$b=isObject$c,$TypeError$c=TypeError,ordinaryToPrimitive$1=function(st,at){var ut,dt;if(at==="string"&&isCallable$d(ut=st.toString)&&!isObject$b(dt=call$b(ut,st))||isCallable$d(ut=st.valueOf)&&!isObject$b(dt=call$b(ut,st))||at!=="string"&&isCallable$d(ut=st.toString)&&!isObject$b(dt=call$b(ut,st)))return dt;throw new $TypeError$c("Can't convert object to primitive value")},sharedStore={exports:{}},isPure=!1,globalThis$m=globalThis_1,defineProperty$5=Object.defineProperty,defineGlobalProperty$3=function(st,at){try{defineProperty$5(globalThis$m,st,{value:at,configurable:!0,writable:!0})}catch{globalThis$m[st]=at}return at},globalThis$l=globalThis_1,defineGlobalProperty$2=defineGlobalProperty$3,SHARED="__core-js_shared__",store$3=sharedStore.exports=globalThis$l[SHARED]||defineGlobalProperty$2(SHARED,{});(store$3.versions||(store$3.versions=[])).push({version:"3.44.0",mode:"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.44.0/LICENSE",source:"https://github.com/zloirock/core-js"});var sharedStoreExports=sharedStore.exports,store$2=sharedStoreExports,shared$3=function(st,at){return store$2[st]||(store$2[st]=at||{})},requireObjectCoercible$6=requireObjectCoercible$8,$Object$2=Object,toObject$5=function(st){return $Object$2(requireObjectCoercible$6(st))},uncurryThis$p=functionUncurryThis,toObject$4=toObject$5,hasOwnProperty=uncurryThis$p({}.hasOwnProperty),hasOwnProperty_1=Object.hasOwn||function(at,ut){return hasOwnProperty(toObject$4(at),ut)},uncurryThis$o=functionUncurryThis,id$1=0,postfix=Math.random(),toString$a=uncurryThis$o(1.1.toString),uid$4=function(st){return"Symbol("+(st===void 0?"":st)+")_"+toString$a(++id$1+postfix,36)},globalThis$k=globalThis_1,shared$2=shared$3,hasOwn$g=hasOwnProperty_1,uid$3=uid$4,NATIVE_SYMBOL=symbolConstructorDetection,USE_SYMBOL_AS_UID=useSymbolAsUid,Symbol$1=globalThis$k.Symbol,WellKnownSymbolsStore=shared$2("wks"),createWellKnownSymbol=USE_SYMBOL_AS_UID?Symbol$1.for||Symbol$1:Symbol$1&&Symbol$1.withoutSetter||uid$3,wellKnownSymbol$8=function(st){return hasOwn$g(WellKnownSymbolsStore,st)||(WellKnownSymbolsStore[st]=NATIVE_SYMBOL&&hasOwn$g(Symbol$1,st)?Symbol$1[st]:createWellKnownSymbol("Symbol."+st)),WellKnownSymbolsStore[st]},call$a=functionCall,isObject$a=isObject$c,isSymbol$2=isSymbol$3,getMethod$2=getMethod$3,ordinaryToPrimitive=ordinaryToPrimitive$1,wellKnownSymbol$7=wellKnownSymbol$8,$TypeError$b=TypeError,TO_PRIMITIVE=wellKnownSymbol$7("toPrimitive"),toPrimitive$2=function(st,at){if(!isObject$a(st)||isSymbol$2(st))return st;var ut=getMethod$2(st,TO_PRIMITIVE),dt;if(ut){if(at===void 0&&(at="default"),dt=call$a(ut,st,at),!isObject$a(dt)||isSymbol$2(dt))return dt;throw new $TypeError$b("Can't convert object to primitive value")}return at===void 0&&(at="number"),ordinaryToPrimitive(st,at)},toPrimitive$1=toPrimitive$2,isSymbol$1=isSymbol$3,toPropertyKey$3=function(st){var at=toPrimitive$1(st,"string");return isSymbol$1(at)?at:at+""},globalThis$j=globalThis_1,isObject$9=isObject$c,document$2=globalThis$j.document,EXISTS$1=isObject$9(document$2)&&isObject$9(document$2.createElement),documentCreateElement$1=function(st){return EXISTS$1?document$2.createElement(st):{}},DESCRIPTORS$f=descriptors,fails$j=fails$o,createElement$1=documentCreateElement$1,ie8DomDefine=!DESCRIPTORS$f&&!fails$j(function(){return Object.defineProperty(createElement$1("div"),"a",{get:function(){return 7}}).a!==7}),DESCRIPTORS$e=descriptors,call$9=functionCall,propertyIsEnumerableModule=objectPropertyIsEnumerable,createPropertyDescriptor$4=createPropertyDescriptor$5,toIndexedObject$8=toIndexedObject$9,toPropertyKey$2=toPropertyKey$3,hasOwn$f=hasOwnProperty_1,IE8_DOM_DEFINE$1=ie8DomDefine,$getOwnPropertyDescriptor$1=Object.getOwnPropertyDescriptor;objectGetOwnPropertyDescriptor.f=DESCRIPTORS$e?$getOwnPropertyDescriptor$1:function(at,ut){if(at=toIndexedObject$8(at),ut=toPropertyKey$2(ut),IE8_DOM_DEFINE$1)try{return $getOwnPropertyDescriptor$1(at,ut)}catch{}if(hasOwn$f(at,ut))return createPropertyDescriptor$4(!call$9(propertyIsEnumerableModule.f,at,ut),at[ut])};var objectDefineProperty={},DESCRIPTORS$d=descriptors,fails$i=fails$o,v8PrototypeDefineBug=DESCRIPTORS$d&&fails$i(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),isObject$8=isObject$c,$String$3=String,$TypeError$a=TypeError,anObject$9=function(st){if(isObject$8(st))return st;throw new $TypeError$a($String$3(st)+" is not an object")},DESCRIPTORS$c=descriptors,IE8_DOM_DEFINE=ie8DomDefine,V8_PROTOTYPE_DEFINE_BUG$1=v8PrototypeDefineBug,anObject$8=anObject$9,toPropertyKey$1=toPropertyKey$3,$TypeError$9=TypeError,$defineProperty=Object.defineProperty,$getOwnPropertyDescriptor=Object.getOwnPropertyDescriptor,ENUMERABLE="enumerable",CONFIGURABLE$1="configurable",WRITABLE="writable";objectDefineProperty.f=DESCRIPTORS$c?V8_PROTOTYPE_DEFINE_BUG$1?function(at,ut,dt){if(anObject$8(at),ut=toPropertyKey$1(ut),anObject$8(dt),typeof at=="function"&&ut==="prototype"&&"value"in dt&&WRITABLE in dt&&!dt[WRITABLE]){var ct=$getOwnPropertyDescriptor(at,ut);ct&&ct[WRITABLE]&&(at[ut]=dt.value,dt={configurable:CONFIGURABLE$1 in dt?dt[CONFIGURABLE$1]:ct[CONFIGURABLE$1],enumerable:ENUMERABLE in dt?dt[ENUMERABLE]:ct[ENUMERABLE],writable:!1})}return $defineProperty(at,ut,dt)}:$defineProperty:function(at,ut,dt){if(anObject$8(at),ut=toPropertyKey$1(ut),anObject$8(dt),IE8_DOM_DEFINE)try{return $defineProperty(at,ut,dt)}catch{}if("get"in dt||"set"in dt)throw new $TypeError$9("Accessors not supported");return"value"in dt&&(at[ut]=dt.value),at};var DESCRIPTORS$b=descriptors,definePropertyModule$4=objectDefineProperty,createPropertyDescriptor$3=createPropertyDescriptor$5,createNonEnumerableProperty$7=DESCRIPTORS$b?function(st,at,ut){return definePropertyModule$4.f(st,at,createPropertyDescriptor$3(1,ut))}:function(st,at,ut){return st[at]=ut,st},makeBuiltIn$3={exports:{}},DESCRIPTORS$a=descriptors,hasOwn$e=hasOwnProperty_1,FunctionPrototype$1=Function.prototype,getDescriptor=DESCRIPTORS$a&&Object.getOwnPropertyDescriptor,EXISTS=hasOwn$e(FunctionPrototype$1,"name"),CONFIGURABLE=EXISTS&&(!DESCRIPTORS$a||DESCRIPTORS$a&&getDescriptor(FunctionPrototype$1,"name").configurable),functionName={CONFIGURABLE},uncurryThis$n=functionUncurryThis,isCallable$c=isCallable$i,store$1=sharedStoreExports,functionToString=uncurryThis$n(Function.toString);isCallable$c(store$1.inspectSource)||(store$1.inspectSource=function(st){return functionToString(st)});var inspectSource$2=store$1.inspectSource,globalThis$i=globalThis_1,isCallable$b=isCallable$i,WeakMap$2=globalThis$i.WeakMap,weakMapBasicDetection=isCallable$b(WeakMap$2)&&/native code/.test(String(WeakMap$2)),shared$1=shared$3,uid$2=uid$4,keys$1=shared$1("keys"),sharedKey$3=function(st){return keys$1[st]||(keys$1[st]=uid$2(st))},hiddenKeys$4={},NATIVE_WEAK_MAP=weakMapBasicDetection,globalThis$h=globalThis_1,createNonEnumerableProperty$6=createNonEnumerableProperty$7,hasOwn$d=hasOwnProperty_1,shared=sharedStoreExports,sharedKey$2=sharedKey$3,hiddenKeys$3=hiddenKeys$4,OBJECT_ALREADY_INITIALIZED="Object already initialized",TypeError$3=globalThis$h.TypeError,WeakMap$1=globalThis$h.WeakMap,set$3,get$4,has$3,enforce=function(st){return has$3(st)?get$4(st):set$3(st,{})};if(NATIVE_WEAK_MAP||shared.state){var store=shared.state||(shared.state=new WeakMap$1);store.get=store.get,store.has=store.has,store.set=store.set,set$3=function(st,at){if(store.has(st))throw new TypeError$3(OBJECT_ALREADY_INITIALIZED);return at.facade=st,store.set(st,at),at},get$4=function(st){return store.get(st)||{}},has$3=function(st){return store.has(st)}}else{var STATE=sharedKey$2("state");hiddenKeys$3[STATE]=!0,set$3=function(st,at){if(hasOwn$d(st,STATE))throw new TypeError$3(OBJECT_ALREADY_INITIALIZED);return at.facade=st,createNonEnumerableProperty$6(st,STATE,at),at},get$4=function(st){return hasOwn$d(st,STATE)?st[STATE]:{}},has$3=function(st){return hasOwn$d(st,STATE)}}var internalState={get:get$4,enforce},uncurryThis$m=functionUncurryThis,fails$h=fails$o,isCallable$a=isCallable$i,hasOwn$c=hasOwnProperty_1,DESCRIPTORS$9=descriptors,CONFIGURABLE_FUNCTION_NAME=functionName.CONFIGURABLE,inspectSource$1=inspectSource$2,InternalStateModule$1=internalState,enforceInternalState$1=InternalStateModule$1.enforce,getInternalState$1=InternalStateModule$1.get,$String$2=String,defineProperty$4=Object.defineProperty,stringSlice=uncurryThis$m("".slice),replace$1=uncurryThis$m("".replace),join$2=uncurryThis$m([].join),CONFIGURABLE_LENGTH=DESCRIPTORS$9&&!fails$h(function(){return defineProperty$4(function(){},"length",{value:8}).length!==8}),TEMPLATE=String(String).split("String"),makeBuiltIn$2=makeBuiltIn$3.exports=function(st,at,ut){stringSlice($String$2(at),0,7)==="Symbol("&&(at="["+replace$1($String$2(at),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),ut&&ut.getter&&(at="get "+at),ut&&ut.setter&&(at="set "+at),(!hasOwn$c(st,"name")||CONFIGURABLE_FUNCTION_NAME&&st.name!==at)&&(DESCRIPTORS$9?defineProperty$4(st,"name",{value:at,configurable:!0}):st.name=at),CONFIGURABLE_LENGTH&&ut&&hasOwn$c(ut,"arity")&&st.length!==ut.arity&&defineProperty$4(st,"length",{value:ut.arity});try{ut&&hasOwn$c(ut,"constructor")&&ut.constructor?DESCRIPTORS$9&&defineProperty$4(st,"prototype",{writable:!1}):st.prototype&&(st.prototype=void 0)}catch{}var dt=enforceInternalState$1(st);return hasOwn$c(dt,"source")||(dt.source=join$2(TEMPLATE,typeof at=="string"?at:"")),st};Function.prototype.toString=makeBuiltIn$2(function(){return isCallable$a(this)&&getInternalState$1(this).source||inspectSource$1(this)},"toString");var makeBuiltInExports=makeBuiltIn$3.exports,isCallable$9=isCallable$i,definePropertyModule$3=objectDefineProperty,makeBuiltIn$1=makeBuiltInExports,defineGlobalProperty$1=defineGlobalProperty$3,defineBuiltIn$4=function(st,at,ut,dt){dt||(dt={});var ct=dt.enumerable,pt=dt.name!==void 0?dt.name:at;if(isCallable$9(ut)&&makeBuiltIn$1(ut,pt,dt),dt.global)ct?st[at]=ut:defineGlobalProperty$1(at,ut);else{try{dt.unsafe?st[at]&&(ct=!0):delete st[at]}catch{}ct?st[at]=ut:definePropertyModule$3.f(st,at,{value:ut,enumerable:!1,configurable:!dt.nonConfigurable,writable:!dt.nonWritable})}return st},objectGetOwnPropertyNames={},ceil=Math.ceil,floor=Math.floor,mathTrunc=Math.trunc||function(at){var ut=+at;return(ut>0?floor:ceil)(ut)},trunc=mathTrunc,toIntegerOrInfinity$9=function(st){var at=+st;return at!==at||at===0?0:trunc(at)},toIntegerOrInfinity$8=toIntegerOrInfinity$9,max$1=Math.max,min$2=Math.min,toAbsoluteIndex$2=function(st,at){var ut=toIntegerOrInfinity$8(st);return ut<0?max$1(ut+at,0):min$2(ut,at)},toIntegerOrInfinity$7=toIntegerOrInfinity$9,min$1=Math.min,toLength$1=function(st){var at=toIntegerOrInfinity$7(st);return at>0?min$1(at,9007199254740991):0},toLength=toLength$1,lengthOfArrayLike$c=function(st){return toLength(st.length)},toIndexedObject$7=toIndexedObject$9,toAbsoluteIndex$1=toAbsoluteIndex$2,lengthOfArrayLike$b=lengthOfArrayLike$c,createMethod$1=function(st){return function(at,ut,dt){var ct=toIndexedObject$7(at),pt=lengthOfArrayLike$b(ct);if(pt===0)return!st&&-1;var ft=toAbsoluteIndex$1(dt,pt),ht;if(st&&ut!==ut){for(;pt>ft;)if(ht=ct[ft++],ht!==ht)return!0}else for(;pt>ft;ft++)if((st||ft in ct)&&ct[ft]===ut)return st||ft||0;return!st&&-1}},arrayIncludes={indexOf:createMethod$1(!1)},uncurryThis$l=functionUncurryThis,hasOwn$b=hasOwnProperty_1,toIndexedObject$6=toIndexedObject$9,indexOf=arrayIncludes.indexOf,hiddenKeys$2=hiddenKeys$4,push$5=uncurryThis$l([].push),objectKeysInternal=function(st,at){var ut=toIndexedObject$6(st),dt=0,ct=[],pt;for(pt in ut)!hasOwn$b(hiddenKeys$2,pt)&&hasOwn$b(ut,pt)&&push$5(ct,pt);for(;at.length>dt;)hasOwn$b(ut,pt=at[dt++])&&(~indexOf(ct,pt)||push$5(ct,pt));return ct},enumBugKeys$3=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],internalObjectKeys$1=objectKeysInternal,enumBugKeys$2=enumBugKeys$3,hiddenKeys$1=enumBugKeys$2.concat("length","prototype");objectGetOwnPropertyNames.f=Object.getOwnPropertyNames||function(at){return internalObjectKeys$1(at,hiddenKeys$1)};var objectGetOwnPropertySymbols={};objectGetOwnPropertySymbols.f=Object.getOwnPropertySymbols;var getBuiltIn$8=getBuiltIn$a,uncurryThis$k=functionUncurryThis,getOwnPropertyNamesModule=objectGetOwnPropertyNames,getOwnPropertySymbolsModule=objectGetOwnPropertySymbols,anObject$7=anObject$9,concat=uncurryThis$k([].concat),ownKeys$3=getBuiltIn$8("Reflect","ownKeys")||function(at){var ut=getOwnPropertyNamesModule.f(anObject$7(at)),dt=getOwnPropertySymbolsModule.f;return dt?concat(ut,dt(at)):ut},hasOwn$a=hasOwnProperty_1,ownKeys$2=ownKeys$3,getOwnPropertyDescriptorModule=objectGetOwnPropertyDescriptor,definePropertyModule$2=objectDefineProperty,copyConstructorProperties$2=function(st,at,ut){for(var dt=ownKeys$2(at),ct=definePropertyModule$2.f,pt=getOwnPropertyDescriptorModule.f,ft=0;ftpt&&installErrorCause(Dt,arguments[pt]),Dt});Tt.prototype=yt,ht!=="Error"?setPrototypeOf$2?setPrototypeOf$2(Tt,bt):copyConstructorProperties(Tt,bt,{name:!0}):DESCRIPTORS$8&&ct in mt&&(proxyAccessor(Tt,mt,ct),proxyAccessor(Tt,mt,"prepareStackTrace")),copyConstructorProperties(Tt,mt);try{yt.name!==ht&&createNonEnumerableProperty$2(yt,"name",ht),yt.constructor=Tt}catch{}return Tt}},$$n=_export,globalThis$f=globalThis_1,apply$4=functionApply,wrapErrorConstructorWithCause$1=wrapErrorConstructorWithCause$2,WEB_ASSEMBLY="WebAssembly",WebAssembly=globalThis$f[WEB_ASSEMBLY],FORCED$3=new Error("e",{cause:7}).cause!==7,exportGlobalErrorCauseWrapper=function(st,at){var ut={};ut[st]=wrapErrorConstructorWithCause$1(st,at,FORCED$3),$$n({global:!0,constructor:!0,arity:1,forced:FORCED$3},ut)},exportWebAssemblyErrorCauseWrapper=function(st,at){if(WebAssembly&&WebAssembly[st]){var ut={};ut[st]=wrapErrorConstructorWithCause$1(WEB_ASSEMBLY+"."+st,at,FORCED$3),$$n({target:WEB_ASSEMBLY,stat:!0,constructor:!0,arity:1,forced:FORCED$3},ut)}};exportGlobalErrorCauseWrapper("Error",function(st){return function(ut){return apply$4(st,this,arguments)}});exportGlobalErrorCauseWrapper("EvalError",function(st){return function(ut){return apply$4(st,this,arguments)}});exportGlobalErrorCauseWrapper("RangeError",function(st){return function(ut){return apply$4(st,this,arguments)}});exportGlobalErrorCauseWrapper("ReferenceError",function(st){return function(ut){return apply$4(st,this,arguments)}});exportGlobalErrorCauseWrapper("SyntaxError",function(st){return function(ut){return apply$4(st,this,arguments)}});exportGlobalErrorCauseWrapper("TypeError",function(st){return function(ut){return apply$4(st,this,arguments)}});exportGlobalErrorCauseWrapper("URIError",function(st){return function(ut){return apply$4(st,this,arguments)}});exportWebAssemblyErrorCauseWrapper("CompileError",function(st){return function(ut){return apply$4(st,this,arguments)}});exportWebAssemblyErrorCauseWrapper("LinkError",function(st){return function(ut){return apply$4(st,this,arguments)}});exportWebAssemblyErrorCauseWrapper("RuntimeError",function(st){return function(ut){return apply$4(st,this,arguments)}});var $$m=_export,getBuiltIn$6=getBuiltIn$a,apply$3=functionApply,fails$e=fails$o,wrapErrorConstructorWithCause=wrapErrorConstructorWithCause$2,AGGREGATE_ERROR="AggregateError",$AggregateError=getBuiltIn$6(AGGREGATE_ERROR),FORCED$2=!fails$e(function(){return $AggregateError([1]).errors[0]!==1})&&fails$e(function(){return $AggregateError([1],AGGREGATE_ERROR,{cause:7}).cause!==7});$$m({global:!0,constructor:!0,arity:2,forced:FORCED$2},{AggregateError:wrapErrorConstructorWithCause(AGGREGATE_ERROR,function(st){return function(ut,dt){return apply$3(st,this,arguments)}},FORCED$2,!0)});var objectDefineProperties={},internalObjectKeys=objectKeysInternal,enumBugKeys$1=enumBugKeys$3,objectKeys$2=Object.keys||function(at){return internalObjectKeys(at,enumBugKeys$1)},DESCRIPTORS$7=descriptors,V8_PROTOTYPE_DEFINE_BUG=v8PrototypeDefineBug,definePropertyModule$1=objectDefineProperty,anObject$6=anObject$9,toIndexedObject$5=toIndexedObject$9,objectKeys$1=objectKeys$2;objectDefineProperties.f=DESCRIPTORS$7&&!V8_PROTOTYPE_DEFINE_BUG?Object.defineProperties:function(at,ut){anObject$6(at);for(var dt=toIndexedObject$5(ut),ct=objectKeys$1(ut),pt=ct.length,ft=0,ht;pt>ft;)definePropertyModule$1.f(at,ht=ct[ft++],dt[ht]);return at};var getBuiltIn$5=getBuiltIn$a,html$6=getBuiltIn$5("document","documentElement"),anObject$5=anObject$9,definePropertiesModule=objectDefineProperties,enumBugKeys=enumBugKeys$3,hiddenKeys=hiddenKeys$4,html$5=html$6,documentCreateElement=documentCreateElement$1,sharedKey$1=sharedKey$3,GT=">",LT="<",PROTOTYPE="prototype",SCRIPT="script",IE_PROTO$1=sharedKey$1("IE_PROTO"),EmptyConstructor=function(){},scriptTag=function(st){return LT+SCRIPT+GT+st+LT+"/"+SCRIPT+GT},NullProtoObjectViaActiveX=function(st){st.write(scriptTag("")),st.close();var at=st.parentWindow.Object;return st=null,at},NullProtoObjectViaIFrame=function(){var st=documentCreateElement("iframe"),at="java"+SCRIPT+":",ut;return st.style.display="none",html$5.appendChild(st),st.src=String(at),ut=st.contentWindow.document,ut.open(),ut.write(scriptTag("document.F=Object")),ut.close(),ut.F},activeXDocument,NullProtoObject=function(){try{activeXDocument=new ActiveXObject("htmlfile")}catch{}NullProtoObject=typeof document<"u"?document.domain&&activeXDocument?NullProtoObjectViaActiveX(activeXDocument):NullProtoObjectViaIFrame():NullProtoObjectViaActiveX(activeXDocument);for(var st=enumBugKeys.length;st--;)delete NullProtoObject[PROTOTYPE][enumBugKeys[st]];return NullProtoObject()};hiddenKeys[IE_PROTO$1]=!0;var objectCreate=Object.create||function(at,ut){var dt;return at!==null?(EmptyConstructor[PROTOTYPE]=anObject$5(at),dt=new EmptyConstructor,EmptyConstructor[PROTOTYPE]=null,dt[IE_PROTO$1]=at):dt=NullProtoObject(),ut===void 0?dt:definePropertiesModule.f(dt,ut)},wellKnownSymbol$4=wellKnownSymbol$8,create$3=objectCreate,defineProperty$2=objectDefineProperty.f,UNSCOPABLES=wellKnownSymbol$4("unscopables"),ArrayPrototype$1=Array.prototype;ArrayPrototype$1[UNSCOPABLES]===void 0&&defineProperty$2(ArrayPrototype$1,UNSCOPABLES,{configurable:!0,value:create$3(null)});var addToUnscopables$6=function(st){ArrayPrototype$1[UNSCOPABLES][st]=!0},$$l=_export,toObject$3=toObject$5,lengthOfArrayLike$a=lengthOfArrayLike$c,toIntegerOrInfinity$6=toIntegerOrInfinity$9,addToUnscopables$5=addToUnscopables$6;$$l({target:"Array",proto:!0},{at:function(at){var ut=toObject$3(this),dt=lengthOfArrayLike$a(ut),ct=toIntegerOrInfinity$6(at),pt=ct>=0?ct:dt+ct;return pt<0||pt>=dt?void 0:ut[pt]}});addToUnscopables$5("at");var classofRaw=classofRaw$2,uncurryThis$h=functionUncurryThis,functionUncurryThisClause=function(st){if(classofRaw(st)==="Function")return uncurryThis$h(st)},uncurryThis$g=functionUncurryThisClause,aCallable$6=aCallable$9,NATIVE_BIND=functionBindNative,bind$3=uncurryThis$g(uncurryThis$g.bind),functionBindContext=function(st,at){return aCallable$6(st),at===void 0?st:NATIVE_BIND?bind$3(st,at):function(){return st.apply(at,arguments)}},bind$2=functionBindContext,IndexedObject=indexedObject,toObject$2=toObject$5,lengthOfArrayLike$9=lengthOfArrayLike$c,createMethod=function(st){var at=st===1;return function(ut,dt,ct){for(var pt=toObject$2(ut),ft=IndexedObject(pt),ht=lengthOfArrayLike$9(ft),mt=bind$2(dt,ct),yt,bt;ht-- >0;)if(yt=ft[ht],bt=mt(yt,ht,pt),bt)switch(st){case 0:return yt;case 1:return ht}return at?-1:void 0}},arrayIterationFromLast={findLast:createMethod(0),findLastIndex:createMethod(1)},$$k=_export,$findLast$1=arrayIterationFromLast.findLast,addToUnscopables$4=addToUnscopables$6;$$k({target:"Array",proto:!0},{findLast:function(at){return $findLast$1(this,at,arguments.length>1?arguments[1]:void 0)}});addToUnscopables$4("findLast");var $$j=_export,$findLastIndex$1=arrayIterationFromLast.findLastIndex,addToUnscopables$3=addToUnscopables$6;$$j({target:"Array",proto:!0},{findLastIndex:function(at){return $findLastIndex$1(this,at,arguments.length>1?arguments[1]:void 0)}});addToUnscopables$3("findLastIndex");var classof$6=classofRaw$2,isArray$2=Array.isArray||function(at){return classof$6(at)==="Array"},DESCRIPTORS$6=descriptors,isArray$1=isArray$2,$TypeError$7=TypeError,getOwnPropertyDescriptor$1=Object.getOwnPropertyDescriptor,SILENT_ON_NON_WRITABLE_LENGTH_SET=DESCRIPTORS$6&&!function(){if(this!==void 0)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(st){return st instanceof TypeError}}(),arraySetLength=SILENT_ON_NON_WRITABLE_LENGTH_SET?function(st,at){if(isArray$1(st)&&!getOwnPropertyDescriptor$1(st,"length").writable)throw new $TypeError$7("Cannot set read only .length");return st.length=at}:function(st,at){return st.length=at},$TypeError$6=TypeError,MAX_SAFE_INTEGER$3=9007199254740991,doesNotExceedSafeInteger$2=function(st){if(st>MAX_SAFE_INTEGER$3)throw $TypeError$6("Maximum allowed index exceeded");return st},$$i=_export,toObject$1=toObject$5,lengthOfArrayLike$8=lengthOfArrayLike$c,setArrayLength=arraySetLength,doesNotExceedSafeInteger$1=doesNotExceedSafeInteger$2,fails$d=fails$o,INCORRECT_TO_LENGTH=fails$d(function(){return[].push.call({length:4294967296},1)!==4294967297}),properErrorOnNonWritableLength=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(st){return st instanceof TypeError}},FORCED$1=INCORRECT_TO_LENGTH||!properErrorOnNonWritableLength();$$i({target:"Array",proto:!0,arity:1,forced:FORCED$1},{push:function(at){var ut=toObject$1(this),dt=lengthOfArrayLike$8(ut),ct=arguments.length;doesNotExceedSafeInteger$1(dt+ct);for(var pt=0;pt2?ut:lengthOfArrayLike$6(at),pt=new st(ct);ct>dt;)pt[dt]=at[dt++];return pt},globalThis$e=globalThis_1,getBuiltInPrototypeMethod$1=function(st,at){var ut=globalThis$e[st],dt=ut&&ut.prototype;return dt&&dt[at]},$$g=_export,uncurryThis$f=functionUncurryThis,aCallable$5=aCallable$9,toIndexedObject$3=toIndexedObject$9,arrayFromConstructorAndList$1=arrayFromConstructorAndList$2,getBuiltInPrototypeMethod=getBuiltInPrototypeMethod$1,addToUnscopables$1=addToUnscopables$6,$Array$3=Array,sort$3=uncurryThis$f(getBuiltInPrototypeMethod("Array","sort"));$$g({target:"Array",proto:!0},{toSorted:function(at){at!==void 0&&aCallable$5(at);var ut=toIndexedObject$3(this),dt=arrayFromConstructorAndList$1($Array$3,ut);return sort$3(dt,at)}});addToUnscopables$1("toSorted");var $$f=_export,addToUnscopables=addToUnscopables$6,doesNotExceedSafeInteger=doesNotExceedSafeInteger$2,lengthOfArrayLike$5=lengthOfArrayLike$c,toAbsoluteIndex=toAbsoluteIndex$2,toIndexedObject$2=toIndexedObject$9,toIntegerOrInfinity$5=toIntegerOrInfinity$9,$Array$2=Array,max=Math.max,min=Math.min;$$f({target:"Array",proto:!0},{toSpliced:function(at,ut){var dt=toIndexedObject$2(this),ct=lengthOfArrayLike$5(dt),pt=toAbsoluteIndex(at,ct),ft=arguments.length,ht=0,mt,yt,bt,Tt;for(ft===0?mt=yt=0:ft===1?(mt=0,yt=ct-pt):(mt=ft-2,yt=min(max(toIntegerOrInfinity$5(ut),0),ct-pt)),bt=doesNotExceedSafeInteger(ct+mt-yt),Tt=$Array$2(bt);ht=ct||ft<0)throw new $RangeError$2("Incorrect index");for(var ht=new at(ct),mt=0;mtTt;Tt++)if(At=_t(st[Tt]),At&&isPrototypeOf$2(ResultPrototype,At))return At;return new Result(!1)}yt=getIterator(st,bt)}for(vt=pt?st.next:yt.next;!(Dt=call$5(vt,yt)).done;){try{At=_t(Dt.value)}catch(xt){iteratorClose(yt,"throw",xt)}if(typeof At=="object"&&At&&isPrototypeOf$2(ResultPrototype,At))return At}return new Result(!1)},uncurryThis$e=functionUncurryThis,MapPrototype=Map.prototype,mapHelpers={Map,set:uncurryThis$e(MapPrototype.set),get:uncurryThis$e(MapPrototype.get),has:uncurryThis$e(MapPrototype.has),remove:uncurryThis$e(MapPrototype.delete)},$$d=_export,uncurryThis$d=functionUncurryThis,aCallable$3=aCallable$9,requireObjectCoercible$4=requireObjectCoercible$8,iterate$2=iterate$3,MapHelpers$1=mapHelpers,fails$c=fails$o,Map$2=MapHelpers$1.Map,has$2=MapHelpers$1.has,get$3=MapHelpers$1.get,set$2=MapHelpers$1.set,push$4=uncurryThis$d([].push),DOES_NOT_WORK_WITH_PRIMITIVES$1=fails$c(function(){return Map$2.groupBy("ab",function(st){return st}).get("a").length!==1});$$d({target:"Map",stat:!0,forced:DOES_NOT_WORK_WITH_PRIMITIVES$1},{groupBy:function(at,ut){requireObjectCoercible$4(at),aCallable$3(ut);var dt=new Map$2,ct=0;return iterate$2(at,function(pt){var ft=ut(pt,ct++);has$2(dt,ft)?push$4(get$3(dt,ft),pt):set$2(dt,ft,[pt])}),dt}});var $$c=_export,getBuiltIn$4=getBuiltIn$a,uncurryThis$c=functionUncurryThis,aCallable$2=aCallable$9,requireObjectCoercible$3=requireObjectCoercible$8,toPropertyKey=toPropertyKey$3,iterate$1=iterate$3,fails$b=fails$o,nativeGroupBy=Object.groupBy,create$2=getBuiltIn$4("Object","create"),push$3=uncurryThis$c([].push),DOES_NOT_WORK_WITH_PRIMITIVES=!nativeGroupBy||fails$b(function(){return nativeGroupBy("ab",function(st){return st}).a.length!==1});$$c({target:"Object",stat:!0,forced:DOES_NOT_WORK_WITH_PRIMITIVES},{groupBy:function(at,ut){requireObjectCoercible$3(at),aCallable$2(ut);var dt=create$2(null),ct=0;return iterate$1(at,function(pt){var ft=toPropertyKey(ut(pt,ct++));ft in dt?push$3(dt[ft],pt):dt[ft]=[pt]}),dt}});var $$b=_export,hasOwn$8=hasOwnProperty_1;$$b({target:"Object",stat:!0},{hasOwn:hasOwn$8});var newPromiseCapability={},aCallable$1=aCallable$9,$TypeError$3=TypeError,PromiseCapability=function(st){var at,ut;this.promise=new st(function(dt,ct){if(at!==void 0||ut!==void 0)throw new $TypeError$3("Bad Promise constructor");at=dt,ut=ct}),this.resolve=aCallable$1(at),this.reject=aCallable$1(ut)};newPromiseCapability.f=function(st){return new PromiseCapability(st)};var $$a=_export,newPromiseCapabilityModule=newPromiseCapability;$$a({target:"Promise",stat:!0},{withResolvers:function(){var at=newPromiseCapabilityModule.f(this);return{promise:at.promise,resolve:at.resolve,reject:at.reject}}});var makeBuiltIn=makeBuiltInExports,defineProperty$1=objectDefineProperty,defineBuiltInAccessor$3=function(st,at,ut){return ut.get&&makeBuiltIn(ut.get,at,{getter:!0}),ut.set&&makeBuiltIn(ut.set,at,{setter:!0}),defineProperty$1.f(st,at,ut)},globalThis$d=globalThis_1,fails$a=fails$o,RegExp$1=globalThis$d.RegExp,FLAGS_GETTER_IS_CORRECT=!fails$a(function(){var st=!0;try{RegExp$1(".","d")}catch{st=!1}var at={},ut="",dt=st?"dgimsy":"gimsy",ct=function(mt,yt){Object.defineProperty(at,mt,{get:function(){return ut+=yt,!0}})},pt={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};st&&(pt.hasIndices="d");for(var ft in pt)ct(ft,pt[ft]);var ht=Object.getOwnPropertyDescriptor(RegExp$1.prototype,"flags").get.call(at);return ht!==dt||ut!==dt}),regexpFlagsDetection={correct:FLAGS_GETTER_IS_CORRECT},anObject$1=anObject$9,regexpFlags=function(){var st=anObject$1(this),at="";return st.hasIndices&&(at+="d"),st.global&&(at+="g"),st.ignoreCase&&(at+="i"),st.multiline&&(at+="m"),st.dotAll&&(at+="s"),st.unicode&&(at+="u"),st.unicodeSets&&(at+="v"),st.sticky&&(at+="y"),at},DESCRIPTORS$5=descriptors,defineBuiltInAccessor$2=defineBuiltInAccessor$3,regExpFlagsDetection$1=regexpFlagsDetection,regExpFlagsGetterImplementation$1=regexpFlags;DESCRIPTORS$5&&!regExpFlagsDetection$1.correct&&(defineBuiltInAccessor$2(RegExp.prototype,"flags",{configurable:!0,get:regExpFlagsGetterImplementation$1}),regExpFlagsDetection$1.correct=!0);var $$9=_export,uncurryThis$b=functionUncurryThis,requireObjectCoercible$2=requireObjectCoercible$8,toIntegerOrInfinity$3=toIntegerOrInfinity$9,toString$7=toString$9,fails$9=fails$o,charAt$1=uncurryThis$b("".charAt),FORCED=fails$9(function(){return"𠮷".at(-2)!=="\uD842"});$$9({target:"String",proto:!0,forced:FORCED},{at:function(at){var ut=toString$7(requireObjectCoercible$2(this)),dt=ut.length,ct=toIntegerOrInfinity$3(at),pt=ct>=0?ct:dt+ct;return pt<0||pt>=dt?void 0:charAt$1(ut,pt)}});var $$8=_export,uncurryThis$a=functionUncurryThis,requireObjectCoercible$1=requireObjectCoercible$8,toString$6=toString$9,charCodeAt$1=uncurryThis$a("".charCodeAt);$$8({target:"String",proto:!0},{isWellFormed:function(){for(var at=toString$6(requireObjectCoercible$1(this)),ut=at.length,dt=0;dt=56320||++dt>=ut||(charCodeAt$1(at,dt)&64512)!==56320))return!1}return!0}});var $$7=_export,call$4=functionCall,uncurryThis$9=functionUncurryThis,requireObjectCoercible=requireObjectCoercible$8,toString$5=toString$9,fails$8=fails$o,$Array=Array,charAt=uncurryThis$9("".charAt),charCodeAt=uncurryThis$9("".charCodeAt),join$1=uncurryThis$9([].join),$toWellFormed="".toWellFormed,REPLACEMENT_CHARACTER$1="�",TO_STRING_CONVERSION_BUG=$toWellFormed&&fails$8(function(){return call$4($toWellFormed,1)!=="1"});$$7({target:"String",proto:!0,forced:TO_STRING_CONVERSION_BUG},{toWellFormed:function(){var at=toString$5(requireObjectCoercible(this));if(TO_STRING_CONVERSION_BUG)return call$4($toWellFormed,at);for(var ut=at.length,dt=$Array(ut),ct=0;ct=56320||ct+1>=ut||(charCodeAt(at,ct+1)&64512)!==56320?dt[ct]=REPLACEMENT_CHARACTER$1:(dt[ct]=charAt(at,ct),dt[++ct]=charAt(at,ct))}return join$1(dt,"")}});var arrayBufferBasicDetection=typeof ArrayBuffer<"u"&&typeof DataView<"u",fails$7=fails$o,correctPrototypeGetter=!fails$7(function(){function st(){}return st.prototype.constructor=null,Object.getPrototypeOf(new st)!==st.prototype}),hasOwn$7=hasOwnProperty_1,isCallable$5=isCallable$i,toObject=toObject$5,sharedKey=sharedKey$3,CORRECT_PROTOTYPE_GETTER=correctPrototypeGetter,IE_PROTO=sharedKey("IE_PROTO"),$Object=Object,ObjectPrototype$1=$Object.prototype,objectGetPrototypeOf=CORRECT_PROTOTYPE_GETTER?$Object.getPrototypeOf:function(st){var at=toObject(st);if(hasOwn$7(at,IE_PROTO))return at[IE_PROTO];var ut=at.constructor;return isCallable$5(ut)&&at instanceof ut?ut.prototype:at instanceof $Object?ObjectPrototype$1:null},NATIVE_ARRAY_BUFFER=arrayBufferBasicDetection,DESCRIPTORS$4=descriptors,globalThis$c=globalThis_1,isCallable$4=isCallable$i,isObject$3=isObject$c,hasOwn$6=hasOwnProperty_1,classof$4=classof$8,createNonEnumerableProperty$1=createNonEnumerableProperty$7,defineBuiltIn$2=defineBuiltIn$4,defineBuiltInAccessor$1=defineBuiltInAccessor$3,getPrototypeOf$2=objectGetPrototypeOf,setPrototypeOf$1=objectSetPrototypeOf,wellKnownSymbol$1=wellKnownSymbol$8,uid$1=uid$4,InternalStateModule=internalState,enforceInternalState=InternalStateModule.enforce,getInternalState=InternalStateModule.get,Int8Array$2=globalThis$c.Int8Array,Int8ArrayPrototype$1=Int8Array$2&&Int8Array$2.prototype,Uint8ClampedArray$1=globalThis$c.Uint8ClampedArray,Uint8ClampedArrayPrototype=Uint8ClampedArray$1&&Uint8ClampedArray$1.prototype,TypedArray=Int8Array$2&&getPrototypeOf$2(Int8Array$2),TypedArrayPrototype=Int8ArrayPrototype$1&&getPrototypeOf$2(Int8ArrayPrototype$1),ObjectPrototype=Object.prototype,TypeError$2=globalThis$c.TypeError,TO_STRING_TAG=wellKnownSymbol$1("toStringTag"),TYPED_ARRAY_TAG=uid$1("TYPED_ARRAY_TAG"),TYPED_ARRAY_CONSTRUCTOR="TypedArrayConstructor",NATIVE_ARRAY_BUFFER_VIEWS=NATIVE_ARRAY_BUFFER&&!!setPrototypeOf$1&&classof$4(globalThis$c.opera)!=="Opera",NAME,Constructor,Prototype,TypedArrayConstructorsList={Int8Array:1,Uint8Array:1,Uint8ClampedArray:1,Int16Array:2,Uint16Array:2,Int32Array:4,Uint32Array:4,Float32Array:4,Float64Array:8},BigIntArrayConstructorsList={BigInt64Array:8,BigUint64Array:8},getTypedArrayConstructor$3=function(st){var at=getPrototypeOf$2(st);if(isObject$3(at)){var ut=getInternalState(at);return ut&&hasOwn$6(ut,TYPED_ARRAY_CONSTRUCTOR)?ut[TYPED_ARRAY_CONSTRUCTOR]:getTypedArrayConstructor$3(at)}},isTypedArray=function(st){if(!isObject$3(st))return!1;var at=classof$4(st);return hasOwn$6(TypedArrayConstructorsList,at)||hasOwn$6(BigIntArrayConstructorsList,at)},aTypedArray$7=function(st){if(isTypedArray(st))return st;throw new TypeError$2("Target is not a typed array")},exportTypedArrayMethod$7=function(st,at,ut,dt){if(DESCRIPTORS$4){if(ut)for(var ct in TypedArrayConstructorsList){var pt=globalThis$c[ct];if(pt&&hasOwn$6(pt.prototype,st))try{delete pt.prototype[st]}catch{try{pt.prototype[st]=at}catch{}}}(!TypedArrayPrototype[st]||ut)&&defineBuiltIn$2(TypedArrayPrototype,st,ut?at:NATIVE_ARRAY_BUFFER_VIEWS&&Int8ArrayPrototype$1[st]||at,dt)}};for(NAME in TypedArrayConstructorsList)Constructor=globalThis$c[NAME],Prototype=Constructor&&Constructor.prototype,Prototype?enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR]=Constructor:NATIVE_ARRAY_BUFFER_VIEWS=!1;for(NAME in BigIntArrayConstructorsList)Constructor=globalThis$c[NAME],Prototype=Constructor&&Constructor.prototype,Prototype&&(enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR]=Constructor);if((!NATIVE_ARRAY_BUFFER_VIEWS||!isCallable$4(TypedArray)||TypedArray===Function.prototype)&&(TypedArray=function(){throw new TypeError$2("Incorrect invocation")},NATIVE_ARRAY_BUFFER_VIEWS))for(NAME in TypedArrayConstructorsList)globalThis$c[NAME]&&setPrototypeOf$1(globalThis$c[NAME],TypedArray);if((!NATIVE_ARRAY_BUFFER_VIEWS||!TypedArrayPrototype||TypedArrayPrototype===ObjectPrototype)&&(TypedArrayPrototype=TypedArray.prototype,NATIVE_ARRAY_BUFFER_VIEWS))for(NAME in TypedArrayConstructorsList)globalThis$c[NAME]&&setPrototypeOf$1(globalThis$c[NAME].prototype,TypedArrayPrototype);NATIVE_ARRAY_BUFFER_VIEWS&&getPrototypeOf$2(Uint8ClampedArrayPrototype)!==TypedArrayPrototype&&setPrototypeOf$1(Uint8ClampedArrayPrototype,TypedArrayPrototype);if(DESCRIPTORS$4&&!hasOwn$6(TypedArrayPrototype,TO_STRING_TAG)){defineBuiltInAccessor$1(TypedArrayPrototype,TO_STRING_TAG,{configurable:!0,get:function(){return isObject$3(this)?this[TYPED_ARRAY_TAG]:void 0}});for(NAME in TypedArrayConstructorsList)globalThis$c[NAME]&&createNonEnumerableProperty$1(globalThis$c[NAME],TYPED_ARRAY_TAG,NAME)}var arrayBufferViewCore={NATIVE_ARRAY_BUFFER_VIEWS,aTypedArray:aTypedArray$7,exportTypedArrayMethod:exportTypedArrayMethod$7,getTypedArrayConstructor:getTypedArrayConstructor$3,TypedArrayPrototype},ArrayBufferViewCore$6=arrayBufferViewCore,lengthOfArrayLike$2=lengthOfArrayLike$c,toIntegerOrInfinity$2=toIntegerOrInfinity$9,aTypedArray$6=ArrayBufferViewCore$6.aTypedArray,exportTypedArrayMethod$6=ArrayBufferViewCore$6.exportTypedArrayMethod;exportTypedArrayMethod$6("at",function(at){var ut=aTypedArray$6(this),dt=lengthOfArrayLike$2(ut),ct=toIntegerOrInfinity$2(at),pt=ct>=0?ct:dt+ct;return pt<0||pt>=dt?void 0:ut[pt]});var ArrayBufferViewCore$5=arrayBufferViewCore,$findLast=arrayIterationFromLast.findLast,aTypedArray$5=ArrayBufferViewCore$5.aTypedArray,exportTypedArrayMethod$5=ArrayBufferViewCore$5.exportTypedArrayMethod;exportTypedArrayMethod$5("findLast",function(at){return $findLast(aTypedArray$5(this),at,arguments.length>1?arguments[1]:void 0)});var ArrayBufferViewCore$4=arrayBufferViewCore,$findLastIndex=arrayIterationFromLast.findLastIndex,aTypedArray$4=ArrayBufferViewCore$4.aTypedArray,exportTypedArrayMethod$4=ArrayBufferViewCore$4.exportTypedArrayMethod;exportTypedArrayMethod$4("findLastIndex",function(at){return $findLastIndex(aTypedArray$4(this),at,arguments.length>1?arguments[1]:void 0)});var toIntegerOrInfinity$1=toIntegerOrInfinity$9,$RangeError$1=RangeError,toPositiveInteger$1=function(st){var at=toIntegerOrInfinity$1(st);if(at<0)throw new $RangeError$1("The argument can't be less than 0");return at},toPositiveInteger=toPositiveInteger$1,$RangeError=RangeError,toOffset$1=function(st,at){var ut=toPositiveInteger(st);if(ut%at)throw new $RangeError("Wrong offset");return ut},globalThis$b=globalThis_1,call$3=functionCall,ArrayBufferViewCore$3=arrayBufferViewCore,lengthOfArrayLike$1=lengthOfArrayLike$c,toOffset=toOffset$1,toIndexedObject=toObject$5,fails$6=fails$o,RangeError$1=globalThis$b.RangeError,Int8Array$1=globalThis$b.Int8Array,Int8ArrayPrototype=Int8Array$1&&Int8Array$1.prototype,$set=Int8ArrayPrototype&&Int8ArrayPrototype.set,aTypedArray$3=ArrayBufferViewCore$3.aTypedArray,exportTypedArrayMethod$3=ArrayBufferViewCore$3.exportTypedArrayMethod,WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS=!fails$6(function(){var st=new Uint8ClampedArray(2);return call$3($set,st,{length:1,0:3},1),st[1]!==3}),TO_OBJECT_BUG=WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS&&ArrayBufferViewCore$3.NATIVE_ARRAY_BUFFER_VIEWS&&fails$6(function(){var st=new Int8Array$1(2);return st.set(1),st.set("2",1),st[0]!==0||st[1]!==2});exportTypedArrayMethod$3("set",function(at){aTypedArray$3(this);var ut=toOffset(arguments.length>1?arguments[1]:void 0,1),dt=toIndexedObject(at);if(WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS)return call$3($set,this,dt,ut);var ct=this.length,pt=lengthOfArrayLike$1(dt),ft=0;if(pt+ut>ct)throw new RangeError$1("Wrong length");for(;ftut,ft=isCallable$2(dt)?dt:Function$1(dt),ht=pt?arraySlice(arguments,ut):[],mt=pt?function(){apply$1(ft,this,ht)}:ft;return at?st(mt,ct):st(mt)}:st},$$4=_export,globalThis$5=globalThis_1,setTask=task.set,schedulersFix=schedulersFix$1,setImmediate$1=globalThis$5.setImmediate?schedulersFix(setTask,!1):setTask;$$4({global:!0,bind:!0,enumerable:!0,forced:globalThis$5.setImmediate!==setImmediate$1},{setImmediate:setImmediate$1});var uncurryThis$6=functionUncurryThis,fails$4=fails$o,isCallable$1=isCallable$i,classof$1=classof$8,getBuiltIn$2=getBuiltIn$a,inspectSource=inspectSource$2,noop$4=function(){},construct$1=getBuiltIn$2("Reflect","construct"),constructorRegExp=/^\s*(?:class|function)\b/,exec=uncurryThis$6(constructorRegExp.exec),INCORRECT_TO_STRING=!constructorRegExp.test(noop$4),isConstructorModern=function(at){if(!isCallable$1(at))return!1;try{return construct$1(noop$4,[],at),!0}catch{return!1}},isConstructorLegacy=function(at){if(!isCallable$1(at))return!1;switch(classof$1(at)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return INCORRECT_TO_STRING||!!exec(constructorRegExp,inspectSource(at))}catch{return!0}};isConstructorLegacy.sham=!0;var isConstructor$1=!construct$1||fails$4(function(){var st;return isConstructorModern(isConstructorModern.call)||!isConstructorModern(Object)||!isConstructorModern(function(){st=!0})||st})?isConstructorLegacy:isConstructorModern,DESCRIPTORS$2=descriptors,definePropertyModule=objectDefineProperty,createPropertyDescriptor=createPropertyDescriptor$5,createProperty$1=function(st,at,ut){DESCRIPTORS$2?definePropertyModule.f(st,at,createPropertyDescriptor(0,ut)):st[at]=ut},call$2=functionCall,hasOwn$3=hasOwnProperty_1,isPrototypeOf=objectIsPrototypeOf,regExpFlagsDetection=regexpFlagsDetection,regExpFlagsGetterImplementation=regexpFlags,RegExpPrototype=RegExp.prototype,regexpGetFlags=regExpFlagsDetection.correct?function(st){return st.flags}:function(st){return!regExpFlagsDetection.correct&&isPrototypeOf(RegExpPrototype,st)&&!hasOwn$3(st,"flags")?call$2(regExpFlagsGetterImplementation,st):st.flags},uncurryThis$5=functionUncurryThis,SetPrototype$1=Set.prototype,setHelpers={Set,add:uncurryThis$5(SetPrototype$1.add),has:uncurryThis$5(SetPrototype$1.has),remove:uncurryThis$5(SetPrototype$1.delete),proto:SetPrototype$1},call$1=functionCall,iterateSimple$1=function(st,at,ut){for(var dt=ut?st:st.iterator,ct=st.next,pt,ft;!(pt=call$1(ct,dt)).done;)if(ft=at(pt.value),ft!==void 0)return ft},uncurryThis$4=functionUncurryThis,iterateSimple=iterateSimple$1,SetHelpers$1=setHelpers,Set$2=SetHelpers$1.Set,SetPrototype=SetHelpers$1.proto,forEach$3=uncurryThis$4(SetPrototype.forEach),keys=uncurryThis$4(SetPrototype.keys),next$1=keys(new Set$2).next,setIterate$1=function(st,at,ut){return ut?iterateSimple({iterator:keys(st),next:next$1},at):forEach$3(st,at)},globalThis$4=globalThis_1,IS_NODE=environmentIsNode,getBuiltInNodeModule$1=function(st){if(IS_NODE){try{return globalThis$4.process.getBuiltinModule(st)}catch{}try{return Function('return require("'+st+'")')()}catch{}}},globalThis$3=globalThis_1,fails$3=fails$o,V8=environmentV8Version,ENVIRONMENT=environment,structuredClone$1=globalThis$3.structuredClone,structuredCloneProperTransfer=!!structuredClone$1&&!fails$3(function(){if(ENVIRONMENT==="DENO"&&V8>92||ENVIRONMENT==="NODE"&&V8>94||ENVIRONMENT==="BROWSER"&&V8>97)return!1;var st=new ArrayBuffer(8),at=structuredClone$1(st,{transfer:[st]});return st.byteLength!==0||at.byteLength!==8}),globalThis$2=globalThis_1,getBuiltInNodeModule=getBuiltInNodeModule$1,PROPER_STRUCTURED_CLONE_TRANSFER$1=structuredCloneProperTransfer,structuredClone=globalThis$2.structuredClone,$ArrayBuffer=globalThis$2.ArrayBuffer,$MessageChannel=globalThis$2.MessageChannel,detach=!1,WorkerThreads,channel,buffer,$detach;if(PROPER_STRUCTURED_CLONE_TRANSFER$1)detach=function(st){structuredClone(st,{transfer:[st]})};else if($ArrayBuffer)try{$MessageChannel||(WorkerThreads=getBuiltInNodeModule("worker_threads"),WorkerThreads&&($MessageChannel=WorkerThreads.MessageChannel)),$MessageChannel&&(channel=new $MessageChannel,buffer=new $ArrayBuffer(2),$detach=function(st){channel.port1.postMessage(null,[st])},buffer.byteLength===2&&($detach(buffer),buffer.byteLength===0&&(detach=$detach)))}catch{}var detachTransferable$1=detach,$$3=_export,globalThis$1=globalThis_1,getBuiltIn$1=getBuiltIn$a,uncurryThis$3=functionUncurryThis,fails$2=fails$o,uid=uid$4,isCallable=isCallable$i,isConstructor=isConstructor$1,isNullOrUndefined=isNullOrUndefined$4,isObject$2=isObject$c,isSymbol=isSymbol$3,iterate=iterate$3,anObject=anObject$9,classof=classof$8,hasOwn$2=hasOwnProperty_1,createProperty=createProperty$1,createNonEnumerableProperty=createNonEnumerableProperty$7,lengthOfArrayLike=lengthOfArrayLike$c,validateArgumentsLength$3=validateArgumentsLength$6,getRegExpFlags=regexpGetFlags,MapHelpers=mapHelpers,SetHelpers=setHelpers,setIterate=setIterate$1,detachTransferable=detachTransferable$1,ERROR_STACK_INSTALLABLE=errorStackInstallable,PROPER_STRUCTURED_CLONE_TRANSFER=structuredCloneProperTransfer,Object$1=globalThis$1.Object,Array$1=globalThis$1.Array,Date$1=globalThis$1.Date,Error$1=globalThis$1.Error,TypeError$1=globalThis$1.TypeError,PerformanceMark=globalThis$1.PerformanceMark,DOMException$1=getBuiltIn$1("DOMException"),Map$1=MapHelpers.Map,mapHas=MapHelpers.has,mapGet=MapHelpers.get,mapSet=MapHelpers.set,Set$1=SetHelpers.Set,setAdd=SetHelpers.add,setHas=SetHelpers.has,objectKeys=getBuiltIn$1("Object","keys"),push$2=uncurryThis$3([].push),thisBooleanValue=uncurryThis$3((!0).valueOf),thisNumberValue=uncurryThis$3(1.1.valueOf),thisStringValue=uncurryThis$3("".valueOf),thisTimeValue=uncurryThis$3(Date$1.prototype.getTime),PERFORMANCE_MARK=uid("structuredClone"),DATA_CLONE_ERROR="DataCloneError",TRANSFERRING="Transferring",checkBasicSemantic=function(st){return!fails$2(function(){var at=new globalThis$1.Set([7]),ut=st(at),dt=st(Object$1(7));return ut===at||!ut.has(7)||!isObject$2(dt)||+dt!=7})&&st},checkErrorsCloning=function(st,at){return!fails$2(function(){var ut=new at,dt=st({a:ut,b:ut});return!(dt&&dt.a===dt.b&&dt.a instanceof at&&dt.a.stack===ut.stack)})},checkNewErrorsCloningSemantic=function(st){return!fails$2(function(){var at=st(new globalThis$1.AggregateError([1],PERFORMANCE_MARK,{cause:3}));return at.name!=="AggregateError"||at.errors[0]!==1||at.message!==PERFORMANCE_MARK||at.cause!==3})},nativeStructuredClone=globalThis$1.structuredClone,FORCED_REPLACEMENT=!checkErrorsCloning(nativeStructuredClone,Error$1)||!checkErrorsCloning(nativeStructuredClone,DOMException$1)||!checkNewErrorsCloningSemantic(nativeStructuredClone),structuredCloneFromMark=!nativeStructuredClone&&checkBasicSemantic(function(st){return new PerformanceMark(PERFORMANCE_MARK,{detail:st}).detail}),nativeRestrictedStructuredClone=checkBasicSemantic(nativeStructuredClone)||structuredCloneFromMark,throwUncloneable=function(st){throw new DOMException$1("Uncloneable type: "+st,DATA_CLONE_ERROR)},throwUnpolyfillable=function(st,at){throw new DOMException$1((at||"Cloning")+" of "+st+" cannot be properly polyfilled in this engine",DATA_CLONE_ERROR)},tryNativeRestrictedStructuredClone=function(st,at){return nativeRestrictedStructuredClone||throwUnpolyfillable(at),nativeRestrictedStructuredClone(st)},createDataTransfer=function(){var st;try{st=new globalThis$1.DataTransfer}catch{try{st=new globalThis$1.ClipboardEvent("").clipboardData}catch{}}return st&&st.items&&st.files?st:null},cloneBuffer=function(st,at,ut){if(mapHas(at,st))return mapGet(at,st);var dt=ut||classof(st),ct,pt,ft,ht,mt,yt;if(dt==="SharedArrayBuffer")nativeRestrictedStructuredClone?ct=nativeRestrictedStructuredClone(st):ct=st;else{var bt=globalThis$1.DataView;!bt&&!isCallable(st.slice)&&throwUnpolyfillable("ArrayBuffer");try{if(isCallable(st.slice)&&!st.resizable)ct=st.slice(0);else for(pt=st.byteLength,ft=("maxByteLength"in st)?{maxByteLength:st.maxByteLength}:void 0,ct=new ArrayBuffer(pt,ft),ht=new bt(st),mt=new bt(ct),yt=0;yt1&&!isNullOrUndefined(arguments[1])?anObject(arguments[1]):void 0,dt=ut?ut.transfer:void 0,ct,pt;dt!==void 0&&(ct=new Map$1,pt=tryToTransfer(dt,ct));var ft=structuredCloneInternal(at,ct);return pt&&detachBuffers(pt),ft}});var fails$1=fails$o,wellKnownSymbol=wellKnownSymbol$8,DESCRIPTORS$1=descriptors,IS_PURE=isPure,ITERATOR=wellKnownSymbol("iterator"),urlConstructorDetection=!fails$1(function(){var st=new URL("b?a=1&b=2&c=3","https://a"),at=st.searchParams,ut=new URLSearchParams("a=1&a=2&b=3"),dt="";return st.pathname="c%20d",at.forEach(function(ct,pt){at.delete("b"),dt+=pt+ct}),ut.delete("a",2),ut.delete("b",void 0),IS_PURE&&(!st.toJSON||!ut.has("a",1)||ut.has("a",2)||!ut.has("a",void 0)||ut.has("b"))||!at.size&&(IS_PURE||!DESCRIPTORS$1)||!at.sort||st.href!=="https://a/c%20d?a=1&c=3"||at.get("c")!=="3"||String(new URLSearchParams("?a=1"))!=="a=1"||!at[ITERATOR]||new URL("https://a@b").username!=="a"||new URLSearchParams(new URLSearchParams("a=b")).get("a")!=="b"||new URL("https://тест").host!=="xn--e1aybc"||new URL("https://a#б").hash!=="#%D0%B1"||dt!=="a1c3"||new URL("https://x",void 0).host!=="x"}),$$2=_export,getBuiltIn=getBuiltIn$a,fails=fails$o,validateArgumentsLength$2=validateArgumentsLength$6,toString$4=toString$9,USE_NATIVE_URL=urlConstructorDetection,URL$1=getBuiltIn("URL"),THROWS_WITHOUT_ARGUMENTS=USE_NATIVE_URL&&fails(function(){URL$1.canParse()}),WRONG_ARITY=fails(function(){return URL$1.canParse.length!==1});$$2({target:"URL",stat:!0,forced:!THROWS_WITHOUT_ARGUMENTS||WRONG_ARITY},{canParse:function(at){var ut=validateArgumentsLength$2(arguments.length,1),dt=toString$4(at),ct=ut<2||arguments[1]===void 0?void 0:toString$4(arguments[1]);try{return!!new URL$1(dt,ct)}catch{return!1}}});var defineBuiltIn$1=defineBuiltIn$4,uncurryThis$2=functionUncurryThis,toString$3=toString$9,validateArgumentsLength$1=validateArgumentsLength$6,$URLSearchParams$1=URLSearchParams,URLSearchParamsPrototype$2=$URLSearchParams$1.prototype,append$2=uncurryThis$2(URLSearchParamsPrototype$2.append),$delete=uncurryThis$2(URLSearchParamsPrototype$2.delete),forEach$2=uncurryThis$2(URLSearchParamsPrototype$2.forEach),push$1=uncurryThis$2([].push),params$1=new $URLSearchParams$1("a=1&a=2&b=3");params$1.delete("a",1);params$1.delete("b",void 0);params$1+""!="a=2"&&defineBuiltIn$1(URLSearchParamsPrototype$2,"delete",function(st){var at=arguments.length,ut=at<2?void 0:arguments[1];if(at&&ut===void 0)return $delete(this,st);var dt=[];forEach$2(this,function(Tt,St){push$1(dt,{key:St,value:Tt})}),validateArgumentsLength$1(at,1);for(var ct=toString$3(st),pt=toString$3(ut),ft=0,ht=0,mt=!1,yt=dt.length,bt;ft{let at;const ut=new Set,dt=(bt,Tt)=>{const St=typeof bt=="function"?bt(at):bt;if(!Object.is(St,at)){const At=at;at=Tt??(typeof St!="object"||St===null)?St:Object.assign({},at,St),ut.forEach(vt=>vt(at,At))}},ct=()=>at,mt={setState:dt,getState:ct,getInitialState:()=>yt,subscribe:bt=>(ut.add(bt),()=>ut.delete(bt)),destroy:()=>{(__vite_import_meta_env__$2?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),ut.clear()}},yt=at=st(dt,ct,mt);return mt},createStore=st=>st?createStoreImpl(st):createStoreImpl;var withSelector={exports:{}},withSelector_production={},shim$2={exports:{}},useSyncExternalStoreShim_production={};/** * @license React * use-sync-external-store-shim.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var React$2=reactExports;function is$6(st,at){return st===at&&(st!==0||1/st===1/at)||st!==st&&at!==at}var objectIs$1=typeof Object.is=="function"?Object.is:is$6,useState=React$2.useState,useEffect$1=React$2.useEffect,useLayoutEffect=React$2.useLayoutEffect,useDebugValue$2=React$2.useDebugValue;function useSyncExternalStore$2(st,at){var ut=at(),dt=useState({inst:{value:ut,getSnapshot:at}}),ct=dt[0].inst,pt=dt[1];return useLayoutEffect(function(){ct.value=ut,ct.getSnapshot=at,checkIfSnapshotChanged(ct)&&pt({inst:ct})},[st,ut,at]),useEffect$1(function(){return checkIfSnapshotChanged(ct)&&pt({inst:ct}),st(function(){checkIfSnapshotChanged(ct)&&pt({inst:ct})})},[st]),useDebugValue$2(ut),ut}function checkIfSnapshotChanged(st){var at=st.getSnapshot;st=st.value;try{var ut=at();return!objectIs$1(st,ut)}catch{return!0}}function useSyncExternalStore$1(st,at){return at()}var shim$1=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?useSyncExternalStore$1:useSyncExternalStore$2;useSyncExternalStoreShim_production.useSyncExternalStore=React$2.useSyncExternalStore!==void 0?React$2.useSyncExternalStore:shim$1;shim$2.exports=useSyncExternalStoreShim_production;var shimExports=shim$2.exports;/** * @license React * use-sync-external-store-shim/with-selector.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var React$1=reactExports,shim=shimExports;function is$5(st,at){return st===at&&(st!==0||1/st===1/at)||st!==st&&at!==at}var objectIs=typeof Object.is=="function"?Object.is:is$5,useSyncExternalStore=shim.useSyncExternalStore,useRef=React$1.useRef,useEffect=React$1.useEffect,useMemo=React$1.useMemo,useDebugValue$1=React$1.useDebugValue;withSelector_production.useSyncExternalStoreWithSelector=function(st,at,ut,dt,ct){var pt=useRef(null);if(pt.current===null){var ft={hasValue:!1,value:null};pt.current=ft}else ft=pt.current;pt=useMemo(function(){function mt(At){if(!yt){if(yt=!0,bt=At,At=dt(At),ct!==void 0&&ft.hasValue){var vt=ft.value;if(ct(vt,At))return Tt=vt}return Tt=At}if(vt=Tt,objectIs(bt,At))return vt;var Dt=dt(At);return ct!==void 0&&ct(vt,Dt)?(bt=At,vt):(bt=At,Tt=Dt)}var yt=!1,bt,Tt,St=ut===void 0?null:ut;return[function(){return mt(at())},St===null?void 0:function(){return mt(St())}]},[at,ut,dt,ct]);var ht=useSyncExternalStore(st,pt[0],pt[1]);return useEffect(function(){ft.hasValue=!0,ft.value=ht},[ht]),useDebugValue$1(ht),ht};withSelector.exports=withSelector_production;var withSelectorExports=withSelector.exports;const useSyncExternalStoreExports=getDefaultExportFromCjs$1(withSelectorExports),__vite_import_meta_env__$1={},{useDebugValue}=React$3,{useSyncExternalStoreWithSelector}=useSyncExternalStoreExports;let didWarnAboutEqualityFn=!1;const identity=st=>st;function useStore(st,at=identity,ut){(__vite_import_meta_env__$1?"production":void 0)!=="production"&&ut&&!didWarnAboutEqualityFn&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),didWarnAboutEqualityFn=!0);const dt=useSyncExternalStoreWithSelector(st.subscribe,st.getState,st.getServerState||st.getInitialState,at,ut);return useDebugValue(dt),dt}const createImpl=st=>{(__vite_import_meta_env__$1?"production":void 0)!=="production"&&typeof st!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { useStore } from 'zustand'`.");const at=typeof st=="function"?createStore(st):st,ut=(dt,ct)=>useStore(at,dt,ct);return Object.assign(ut,at),ut},create$1=st=>st?createImpl(st):createImpl,__vite_import_meta_env__={};function createJSONStorage(st,at){let ut;try{ut=st()}catch{return}return{getItem:ct=>{var pt;const ft=mt=>mt===null?null:JSON.parse(mt,void 0),ht=(pt=ut.getItem(ct))!=null?pt:null;return ht instanceof Promise?ht.then(ft):ft(ht)},setItem:(ct,pt)=>ut.setItem(ct,JSON.stringify(pt,void 0)),removeItem:ct=>ut.removeItem(ct)}}const toThenable=st=>at=>{try{const ut=st(at);return ut instanceof Promise?ut:{then(dt){return toThenable(dt)(ut)},catch(dt){return this}}}catch(ut){return{then(dt){return this},catch(dt){return toThenable(dt)(ut)}}}},oldImpl=(st,at)=>(ut,dt,ct)=>{let pt={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:Et=>Et,version:0,merge:(Et,_t)=>({..._t,...Et}),...at},ft=!1;const ht=new Set,mt=new Set;let yt;try{yt=pt.getStorage()}catch{}if(!yt)return st((...Et)=>{console.warn(`[zustand persist middleware] Unable to update item '${pt.name}', the given storage is currently unavailable.`),ut(...Et)},dt,ct);const bt=toThenable(pt.serialize),Tt=()=>{const Et=pt.partialize({...dt()});let _t;const xt=bt({state:Et,version:pt.version}).then(Ct=>yt.setItem(pt.name,Ct)).catch(Ct=>{_t=Ct});if(_t)throw _t;return xt},St=ct.setState;ct.setState=(Et,_t)=>{St(Et,_t),Tt()};const At=st((...Et)=>{ut(...Et),Tt()},dt,ct);let vt;const Dt=()=>{var Et;if(!yt)return;ft=!1,ht.forEach(xt=>xt(dt()));const _t=((Et=pt.onRehydrateStorage)==null?void 0:Et.call(pt,dt()))||void 0;return toThenable(yt.getItem.bind(yt))(pt.name).then(xt=>{if(xt)return pt.deserialize(xt)}).then(xt=>{if(xt)if(typeof xt.version=="number"&&xt.version!==pt.version){if(pt.migrate)return pt.migrate(xt.state,xt.version);console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return xt.state}).then(xt=>{var Ct;return vt=pt.merge(xt,(Ct=dt())!=null?Ct:At),ut(vt,!0),Tt()}).then(()=>{_t==null||_t(vt,void 0),ft=!0,mt.forEach(xt=>xt(vt))}).catch(xt=>{_t==null||_t(void 0,xt)})};return ct.persist={setOptions:Et=>{pt={...pt,...Et},Et.getStorage&&(yt=Et.getStorage())},clearStorage:()=>{yt==null||yt.removeItem(pt.name)},getOptions:()=>pt,rehydrate:()=>Dt(),hasHydrated:()=>ft,onHydrate:Et=>(ht.add(Et),()=>{ht.delete(Et)}),onFinishHydration:Et=>(mt.add(Et),()=>{mt.delete(Et)})},Dt(),vt||At},newImpl=(st,at)=>(ut,dt,ct)=>{let pt={storage:createJSONStorage(()=>localStorage),partialize:Dt=>Dt,version:0,merge:(Dt,Et)=>({...Et,...Dt}),...at},ft=!1;const ht=new Set,mt=new Set;let yt=pt.storage;if(!yt)return st((...Dt)=>{console.warn(`[zustand persist middleware] Unable to update item '${pt.name}', the given storage is currently unavailable.`),ut(...Dt)},dt,ct);const bt=()=>{const Dt=pt.partialize({...dt()});return yt.setItem(pt.name,{state:Dt,version:pt.version})},Tt=ct.setState;ct.setState=(Dt,Et)=>{Tt(Dt,Et),bt()};const St=st((...Dt)=>{ut(...Dt),bt()},dt,ct);ct.getInitialState=()=>St;let At;const vt=()=>{var Dt,Et;if(!yt)return;ft=!1,ht.forEach(xt=>{var Ct;return xt((Ct=dt())!=null?Ct:St)});const _t=((Et=pt.onRehydrateStorage)==null?void 0:Et.call(pt,(Dt=dt())!=null?Dt:St))||void 0;return toThenable(yt.getItem.bind(yt))(pt.name).then(xt=>{if(xt)if(typeof xt.version=="number"&&xt.version!==pt.version){if(pt.migrate)return[!0,pt.migrate(xt.state,xt.version)];console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}else return[!1,xt.state];return[!1,void 0]}).then(xt=>{var Ct;const[kt,wt]=xt;if(At=pt.merge(wt,(Ct=dt())!=null?Ct:St),ut(At,!0),kt)return bt()}).then(()=>{_t==null||_t(At,void 0),At=dt(),ft=!0,mt.forEach(xt=>xt(At))}).catch(xt=>{_t==null||_t(void 0,xt)})};return ct.persist={setOptions:Dt=>{pt={...pt,...Dt},Dt.storage&&(yt=Dt.storage)},clearStorage:()=>{yt==null||yt.removeItem(pt.name)},getOptions:()=>pt,rehydrate:()=>vt(),hasHydrated:()=>ft,onHydrate:Dt=>(ht.add(Dt),()=>{ht.delete(Dt)}),onFinishHydration:Dt=>(mt.add(Dt),()=>{mt.delete(Dt)})},pt.skipHydration||vt(),At||St},persistImpl=(st,at)=>"getStorage"in at||"serialize"in at||"deserialize"in at?((__vite_import_meta_env__?"production":void 0)!=="production"&&console.warn("[DEPRECATED] `getStorage`, `serialize` and `deserialize` options are deprecated. Use `storage` option instead."),oldImpl(st,at)):newImpl(st,at),persist=persistImpl;var NOTHING=Symbol.for("immer-nothing"),DRAFTABLE=Symbol.for("immer-draftable"),DRAFT_STATE=Symbol.for("immer-state");function die(st,...at){throw new Error(`[Immer] minified error nr: ${st}. Full error at: https://bit.ly/3cXEKWf`)}var getPrototypeOf$1=Object.getPrototypeOf;function isDraft(st){return!!st&&!!st[DRAFT_STATE]}function isDraftable(st){var at;return st?isPlainObject(st)||Array.isArray(st)||!!st[DRAFTABLE]||!!((at=st.constructor)!=null&&at[DRAFTABLE])||isMap(st)||isSet(st):!1}var objectCtorString=Object.prototype.constructor.toString();function isPlainObject(st){if(!st||typeof st!="object")return!1;const at=getPrototypeOf$1(st);if(at===null)return!0;const ut=Object.hasOwnProperty.call(at,"constructor")&&at.constructor;return ut===Object?!0:typeof ut=="function"&&Function.toString.call(ut)===objectCtorString}function each$2(st,at){getArchtype(st)===0?Reflect.ownKeys(st).forEach(ut=>{at(ut,st[ut],st)}):st.forEach((ut,dt)=>at(dt,ut,st))}function getArchtype(st){const at=st[DRAFT_STATE];return at?at.type_:Array.isArray(st)?1:isMap(st)?2:isSet(st)?3:0}function has$1(st,at){return getArchtype(st)===2?st.has(at):Object.prototype.hasOwnProperty.call(st,at)}function set(st,at,ut){const dt=getArchtype(st);dt===2?st.set(at,ut):dt===3?st.add(ut):st[at]=ut}function is$4(st,at){return st===at?st!==0||1/st===1/at:st!==st&&at!==at}function isMap(st){return st instanceof Map}function isSet(st){return st instanceof Set}function latest(st){return st.copy_||st.base_}function shallowCopy(st,at){if(isMap(st))return new Map(st);if(isSet(st))return new Set(st);if(Array.isArray(st))return Array.prototype.slice.call(st);const ut=isPlainObject(st);if(at===!0||at==="class_only"&&!ut){const dt=Object.getOwnPropertyDescriptors(st);delete dt[DRAFT_STATE];let ct=Reflect.ownKeys(dt);for(let pt=0;pt1&&(st.set=st.add=st.clear=st.delete=dontMutateFrozenCollections),Object.freeze(st),at&&Object.entries(st).forEach(([ut,dt])=>freeze$1(dt,!0))),st}function dontMutateFrozenCollections(){die(2)}function isFrozen$1(st){return Object.isFrozen(st)}var plugins={};function getPlugin(st){const at=plugins[st];return at||die(0,st),at}var currentScope;function getCurrentScope(){return currentScope}function createScope(st,at){return{drafts_:[],parent_:st,immer_:at,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function usePatchesInScope(st,at){at&&(getPlugin("Patches"),st.patches_=[],st.inversePatches_=[],st.patchListener_=at)}function revokeScope(st){leaveScope(st),st.drafts_.forEach(revokeDraft),st.drafts_=null}function leaveScope(st){st===currentScope&&(currentScope=st.parent_)}function enterScope(st){return currentScope=createScope(currentScope,st)}function revokeDraft(st){const at=st[DRAFT_STATE];at.type_===0||at.type_===1?at.revoke_():at.revoked_=!0}function processResult(st,at){at.unfinalizedDrafts_=at.drafts_.length;const ut=at.drafts_[0];return st!==void 0&&st!==ut?(ut[DRAFT_STATE].modified_&&(revokeScope(at),die(4)),isDraftable(st)&&(st=finalize(at,st),at.parent_||maybeFreeze(at,st)),at.patches_&&getPlugin("Patches").generateReplacementPatches_(ut[DRAFT_STATE].base_,st,at.patches_,at.inversePatches_)):st=finalize(at,ut,[]),revokeScope(at),at.patches_&&at.patchListener_(at.patches_,at.inversePatches_),st!==NOTHING?st:void 0}function finalize(st,at,ut){if(isFrozen$1(at))return at;const dt=at[DRAFT_STATE];if(!dt)return each$2(at,(ct,pt)=>finalizeProperty(st,dt,at,ct,pt,ut)),at;if(dt.scope_!==st)return at;if(!dt.modified_)return maybeFreeze(st,dt.base_,!0),dt.base_;if(!dt.finalized_){dt.finalized_=!0,dt.scope_.unfinalizedDrafts_--;const ct=dt.copy_;let pt=ct,ft=!1;dt.type_===3&&(pt=new Set(ct),ct.clear(),ft=!0),each$2(pt,(ht,mt)=>finalizeProperty(st,dt,ct,ht,mt,ut,ft)),maybeFreeze(st,ct,!1),ut&&st.patches_&&getPlugin("Patches").generatePatches_(dt,ut,st.patches_,st.inversePatches_)}return dt.copy_}function finalizeProperty(st,at,ut,dt,ct,pt,ft){if(isDraft(ct)){const ht=pt&&at&&at.type_!==3&&!has$1(at.assigned_,dt)?pt.concat(dt):void 0,mt=finalize(st,ct,ht);if(set(ut,dt,mt),isDraft(mt))st.canAutoFreeze_=!1;else return}else ft&&ut.add(ct);if(isDraftable(ct)&&!isFrozen$1(ct)){if(!st.immer_.autoFreeze_&&st.unfinalizedDrafts_<1)return;finalize(st,ct),(!at||!at.scope_.parent_)&&typeof dt!="symbol"&&Object.prototype.propertyIsEnumerable.call(ut,dt)&&maybeFreeze(st,ct)}}function maybeFreeze(st,at,ut=!1){!st.parent_&&st.immer_.autoFreeze_&&st.canAutoFreeze_&&freeze$1(at,ut)}function createProxyProxy(st,at){const ut=Array.isArray(st),dt={type_:ut?1:0,scope_:at?at.scope_:getCurrentScope(),modified_:!1,finalized_:!1,assigned_:{},parent_:at,base_:st,draft_:null,copy_:null,revoke_:null,isManual_:!1};let ct=dt,pt=objectTraps;ut&&(ct=[dt],pt=arrayTraps);const{revoke:ft,proxy:ht}=Proxy.revocable(ct,pt);return dt.draft_=ht,dt.revoke_=ft,ht}var objectTraps={get(st,at){if(at===DRAFT_STATE)return st;const ut=latest(st);if(!has$1(ut,at))return readPropFromProto(st,ut,at);const dt=ut[at];return st.finalized_||!isDraftable(dt)?dt:dt===peek(st.base_,at)?(prepareCopy(st),st.copy_[at]=createProxy(dt,st)):dt},has(st,at){return at in latest(st)},ownKeys(st){return Reflect.ownKeys(latest(st))},set(st,at,ut){const dt=getDescriptorFromProto(latest(st),at);if(dt!=null&&dt.set)return dt.set.call(st.draft_,ut),!0;if(!st.modified_){const ct=peek(latest(st),at),pt=ct==null?void 0:ct[DRAFT_STATE];if(pt&&pt.base_===ut)return st.copy_[at]=ut,st.assigned_[at]=!1,!0;if(is$4(ut,ct)&&(ut!==void 0||has$1(st.base_,at)))return!0;prepareCopy(st),markChanged(st)}return st.copy_[at]===ut&&(ut!==void 0||at in st.copy_)||Number.isNaN(ut)&&Number.isNaN(st.copy_[at])||(st.copy_[at]=ut,st.assigned_[at]=!0),!0},deleteProperty(st,at){return peek(st.base_,at)!==void 0||at in st.base_?(st.assigned_[at]=!1,prepareCopy(st),markChanged(st)):delete st.assigned_[at],st.copy_&&delete st.copy_[at],!0},getOwnPropertyDescriptor(st,at){const ut=latest(st),dt=Reflect.getOwnPropertyDescriptor(ut,at);return dt&&{writable:!0,configurable:st.type_!==1||at!=="length",enumerable:dt.enumerable,value:ut[at]}},defineProperty(){die(11)},getPrototypeOf(st){return getPrototypeOf$1(st.base_)},setPrototypeOf(){die(12)}},arrayTraps={};each$2(objectTraps,(st,at)=>{arrayTraps[st]=function(){return arguments[0]=arguments[0][0],at.apply(this,arguments)}});arrayTraps.deleteProperty=function(st,at){return arrayTraps.set.call(this,st,at,void 0)};arrayTraps.set=function(st,at,ut){return objectTraps.set.call(this,st[0],at,ut,st[0])};function peek(st,at){const ut=st[DRAFT_STATE];return(ut?latest(ut):st)[at]}function readPropFromProto(st,at,ut){var ct;const dt=getDescriptorFromProto(at,ut);return dt?"value"in dt?dt.value:(ct=dt.get)==null?void 0:ct.call(st.draft_):void 0}function getDescriptorFromProto(st,at){if(!(at in st))return;let ut=getPrototypeOf$1(st);for(;ut;){const dt=Object.getOwnPropertyDescriptor(ut,at);if(dt)return dt;ut=getPrototypeOf$1(ut)}}function markChanged(st){st.modified_||(st.modified_=!0,st.parent_&&markChanged(st.parent_))}function prepareCopy(st){st.copy_||(st.copy_=shallowCopy(st.base_,st.scope_.immer_.useStrictShallowCopy_))}var Immer2=class{constructor(st){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(at,ut,dt)=>{if(typeof at=="function"&&typeof ut!="function"){const pt=ut;ut=at;const ft=this;return function(mt=pt,...yt){return ft.produce(mt,bt=>ut.call(this,bt,...yt))}}typeof ut!="function"&&die(6),dt!==void 0&&typeof dt!="function"&&die(7);let ct;if(isDraftable(at)){const pt=enterScope(this),ft=createProxy(at,void 0);let ht=!0;try{ct=ut(ft),ht=!1}finally{ht?revokeScope(pt):leaveScope(pt)}return usePatchesInScope(pt,dt),processResult(ct,pt)}else if(!at||typeof at!="object"){if(ct=ut(at),ct===void 0&&(ct=at),ct===NOTHING&&(ct=void 0),this.autoFreeze_&&freeze$1(ct,!0),dt){const pt=[],ft=[];getPlugin("Patches").generateReplacementPatches_(at,ct,pt,ft),dt(pt,ft)}return ct}else die(1,at)},this.produceWithPatches=(at,ut)=>{if(typeof at=="function")return(ft,...ht)=>this.produceWithPatches(ft,mt=>at(mt,...ht));let dt,ct;return[this.produce(at,ut,(ft,ht)=>{dt=ft,ct=ht}),dt,ct]},typeof(st==null?void 0:st.autoFreeze)=="boolean"&&this.setAutoFreeze(st.autoFreeze),typeof(st==null?void 0:st.useStrictShallowCopy)=="boolean"&&this.setUseStrictShallowCopy(st.useStrictShallowCopy)}createDraft(st){isDraftable(st)||die(8),isDraft(st)&&(st=current(st));const at=enterScope(this),ut=createProxy(st,void 0);return ut[DRAFT_STATE].isManual_=!0,leaveScope(at),ut}finishDraft(st,at){const ut=st&&st[DRAFT_STATE];(!ut||!ut.isManual_)&&die(9);const{scope_:dt}=ut;return usePatchesInScope(dt,at),processResult(void 0,dt)}setAutoFreeze(st){this.autoFreeze_=st}setUseStrictShallowCopy(st){this.useStrictShallowCopy_=st}applyPatches(st,at){let ut;for(ut=at.length-1;ut>=0;ut--){const ct=at[ut];if(ct.path.length===0&&ct.op==="replace"){st=ct.value;break}}ut>-1&&(at=at.slice(ut+1));const dt=getPlugin("Patches").applyPatches_;return isDraft(st)?dt(st,at):this.produce(st,ct=>dt(ct,at))}};function createProxy(st,at){const ut=isMap(st)?getPlugin("MapSet").proxyMap_(st,at):isSet(st)?getPlugin("MapSet").proxySet_(st,at):createProxyProxy(st,at);return(at?at.scope_:getCurrentScope()).drafts_.push(ut),ut}function current(st){return isDraft(st)||die(10,st),currentImpl(st)}function currentImpl(st){if(!isDraftable(st)||isFrozen$1(st))return st;const at=st[DRAFT_STATE];let ut;if(at){if(!at.modified_)return at.base_;at.finalized_=!0,ut=shallowCopy(st,at.scope_.immer_.useStrictShallowCopy_)}else ut=shallowCopy(st,!0);return each$2(ut,(dt,ct)=>{set(ut,dt,currentImpl(ct))}),at&&(at.finalized_=!1),ut}var immer$1=new Immer2,produce=immer$1.produce;immer$1.produceWithPatches.bind(immer$1);immer$1.setAutoFreeze.bind(immer$1);immer$1.setUseStrictShallowCopy.bind(immer$1);immer$1.applyPatches.bind(immer$1);immer$1.createDraft.bind(immer$1);immer$1.finishDraft.bind(immer$1);const immerImpl=st=>(at,ut,dt)=>(dt.setState=(ct,pt,...ft)=>{const ht=typeof ct=="function"?produce(ct):ct;return at(ht,pt,...ft)},st(dt.setState,ut,dt)),immer=immerImpl,suspectProtoRx=/"(?:_|\\u0{2}5[Ff]){2}(?:p|\\u0{2}70)(?:r|\\u0{2}72)(?:o|\\u0{2}6[Ff])(?:t|\\u0{2}74)(?:o|\\u0{2}6[Ff])(?:_|\\u0{2}5[Ff]){2}"\s*:/,suspectConstructorRx=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/,JsonSigRx=/^\s*["[{]|^\s*-?\d{1,16}(\.\d{1,17})?([Ee][+-]?\d+)?\s*$/;function jsonParseTransform(st,at){if(st==="__proto__"||st==="constructor"&&at&&typeof at=="object"&&"prototype"in at){warnKeyDropped(st);return}return at}function warnKeyDropped(st){console.warn(`[destr] Dropping "${st}" key to prevent prototype pollution.`)}function destr(st,at={}){if(typeof st!="string")return st;if(st[0]==='"'&&st[st.length-1]==='"'&&st.indexOf("\\")===-1)return st.slice(1,-1);const ut=st.trim();if(ut.length<=9)switch(ut.toLowerCase()){case"true":return!0;case"false":return!1;case"undefined":return;case"null":return null;case"nan":return Number.NaN;case"infinity":return Number.POSITIVE_INFINITY;case"-infinity":return Number.NEGATIVE_INFINITY}if(!JsonSigRx.test(st)){if(at.strict)throw new SyntaxError("[destr] Invalid JSON");return st}try{if(suspectProtoRx.test(st)||suspectConstructorRx.test(st)){if(at.strict)throw new Error("[destr] Possible prototype pollution");return JSON.parse(st,jsonParseTransform)}return JSON.parse(st)}catch(dt){if(at.strict)throw dt;return st}}const HASH_RE=/#/g,AMPERSAND_RE=/&/g,SLASH_RE=/\//g,EQUAL_RE=/=/g,PLUS_RE=/\+/g,ENC_CARET_RE=/%5e/gi,ENC_BACKTICK_RE=/%60/gi,ENC_PIPE_RE=/%7c/gi,ENC_SPACE_RE=/%20/gi;function encode$1(st){return encodeURI(""+st).replace(ENC_PIPE_RE,"|")}function encodeQueryValue(st){return encode$1(typeof st=="string"?st:JSON.stringify(st)).replace(PLUS_RE,"%2B").replace(ENC_SPACE_RE,"+").replace(HASH_RE,"%23").replace(AMPERSAND_RE,"%26").replace(ENC_BACKTICK_RE,"`").replace(ENC_CARET_RE,"^").replace(SLASH_RE,"%2F")}function encodeQueryKey(st){return encodeQueryValue(st).replace(EQUAL_RE,"%3D")}function decode$2(st=""){try{return decodeURIComponent(""+st)}catch{return""+st}}function decodeQueryKey(st){return decode$2(st.replace(PLUS_RE," "))}function decodeQueryValue(st){return decode$2(st.replace(PLUS_RE," "))}function parseQuery$1(st=""){const at=Object.create(null);st[0]==="?"&&(st=st.slice(1));for(const ut of st.split("&")){const dt=ut.match(/([^=]+)=?(.*)/)||[];if(dt.length<2)continue;const ct=decodeQueryKey(dt[1]);if(ct==="__proto__"||ct==="constructor")continue;const pt=decodeQueryValue(dt[2]||"");at[ct]===void 0?at[ct]=pt:Array.isArray(at[ct])?at[ct].push(pt):at[ct]=[at[ct],pt]}return at}function encodeQueryItem(st,at){return(typeof at=="number"||typeof at=="boolean")&&(at=String(at)),at?Array.isArray(at)?at.map(ut=>`${encodeQueryKey(st)}=${encodeQueryValue(ut)}`).join("&"):`${encodeQueryKey(st)}=${encodeQueryValue(at)}`:encodeQueryKey(st)}function stringifyQuery(st){return Object.keys(st).filter(at=>st[at]!==void 0).map(at=>encodeQueryItem(at,st[at])).filter(Boolean).join("&")}const PROTOCOL_STRICT_REGEX=/^[\s\w\0+.-]{2,}:([/\\]{1,2})/,PROTOCOL_REGEX=/^[\s\w\0+.-]{2,}:([/\\]{2})?/,PROTOCOL_RELATIVE_REGEX=/^([/\\]\s*){2,}[^/\\]/,JOIN_LEADING_SLASH_RE=/^\.?\//;function hasProtocol(st,at={}){return typeof at=="boolean"&&(at={acceptRelative:at}),at.strict?PROTOCOL_STRICT_REGEX.test(st):PROTOCOL_REGEX.test(st)||(at.acceptRelative?PROTOCOL_RELATIVE_REGEX.test(st):!1)}function hasTrailingSlash(st="",at){return st.endsWith("/")}function withoutTrailingSlash(st="",at){return(hasTrailingSlash(st)?st.slice(0,-1):st)||"/"}function withTrailingSlash(st="",at){return st.endsWith("/")?st:st+"/"}function withBase(st,at){if(isEmptyURL(at)||hasProtocol(st))return st;const ut=withoutTrailingSlash(at);return st.startsWith(ut)?st:joinURL(ut,st)}function withQuery(st,at){const ut=parseURL(st),dt={...parseQuery$1(ut.search),...at};return ut.search=stringifyQuery(dt),stringifyParsedURL(ut)}function isEmptyURL(st){return!st||st==="/"}function isNonEmptyURL(st){return st&&st!=="/"}function joinURL(st,...at){let ut=st||"";for(const dt of at.filter(ct=>isNonEmptyURL(ct)))if(ut){const ct=dt.replace(JOIN_LEADING_SLASH_RE,"");ut=withTrailingSlash(ut)+ct}else ut=dt;return ut}const protocolRelative=Symbol.for("ufo:protocolRelative");function parseURL(st="",at){const ut=st.match(/^[\s\0]*(blob:|data:|javascript:|vbscript:)(.*)/i);if(ut){const[,Tt,St=""]=ut;return{protocol:Tt.toLowerCase(),pathname:St,href:Tt+St,auth:"",host:"",search:"",hash:""}}if(!hasProtocol(st,{acceptRelative:!0}))return parsePath$1(st);const[,dt="",ct,pt=""]=st.replace(/\\/g,"/").match(/^[\s\0]*([\w+.-]{2,}:)?\/\/([^/@]+@)?(.*)/)||[];let[,ft="",ht=""]=pt.match(/([^#/?]*)(.*)?/)||[];dt==="file:"&&(ht=ht.replace(/\/(?=[A-Za-z]:)/,""));const{pathname:mt,search:yt,hash:bt}=parsePath$1(ht);return{protocol:dt.toLowerCase(),auth:ct?ct.slice(0,Math.max(0,ct.length-1)):"",host:ft,pathname:mt,search:yt,hash:bt,[protocolRelative]:!dt}}function parsePath$1(st=""){const[at="",ut="",dt=""]=(st.match(/([^#?]*)(\?[^#]*)?(#.*)?/)||[]).splice(1);return{pathname:at,search:ut,hash:dt}}function stringifyParsedURL(st){const at=st.pathname||"",ut=st.search?(st.search.startsWith("?")?"":"?")+st.search:"",dt=st.hash||"",ct=st.auth?st.auth+"@":"",pt=st.host||"";return(st.protocol||st[protocolRelative]?(st.protocol||"")+"//":"")+ct+pt+at+ut+dt}let FetchError$1=class extends Error{constructor(at,ut){super(at,ut),this.name="FetchError",ut!=null&&ut.cause&&!this.cause&&(this.cause=ut.cause)}};function createFetchError(st){var mt,yt,bt,Tt,St;const at=((mt=st.error)==null?void 0:mt.message)||((yt=st.error)==null?void 0:yt.toString())||"",ut=((bt=st.request)==null?void 0:bt.method)||((Tt=st.options)==null?void 0:Tt.method)||"GET",dt=((St=st.request)==null?void 0:St.url)||String(st.request)||"/",ct=`[${ut}] ${JSON.stringify(dt)}`,pt=st.response?`${st.response.status} ${st.response.statusText}`:"",ft=`${ct}: ${pt}${at?` ${at}`:""}`,ht=new FetchError$1(ft,st.error?{cause:st.error}:void 0);for(const At of["request","options","response"])Object.defineProperty(ht,At,{get(){return st[At]}});for(const[At,vt]of[["data","_data"],["status","status"],["statusCode","status"],["statusText","statusText"],["statusMessage","statusText"]])Object.defineProperty(ht,At,{get(){return st.response&&st.response[vt]}});return ht}const payloadMethods=new Set(Object.freeze(["PATCH","POST","PUT","DELETE"]));function isPayloadMethod(st="GET"){return payloadMethods.has(st.toUpperCase())}function isJSONSerializable(st){if(st===void 0)return!1;const at=typeof st;return at==="string"||at==="number"||at==="boolean"||at===null?!0:at!=="object"?!1:Array.isArray(st)?!0:st.buffer?!1:st.constructor&&st.constructor.name==="Object"||typeof st.toJSON=="function"}const textTypes=new Set(["image/svg","application/xml","application/xhtml","application/html"]),JSON_RE=/^application\/(?:[\w!#$%&*.^`~-]*\+)?json(;.+)?$/i;function detectResponseType(st=""){if(!st)return"json";const at=st.split(";").shift()||"";return JSON_RE.test(at)?"json":textTypes.has(at)||at.startsWith("text/")?"text":"blob"}function resolveFetchOptions(st,at,ut,dt){const ct=mergeHeaders((at==null?void 0:at.headers)??(st==null?void 0:st.headers),ut==null?void 0:ut.headers,dt);let pt;return(ut!=null&&ut.query||ut!=null&&ut.params||at!=null&&at.params||at!=null&&at.query)&&(pt={...ut==null?void 0:ut.params,...ut==null?void 0:ut.query,...at==null?void 0:at.params,...at==null?void 0:at.query}),{...ut,...at,query:pt,params:pt,headers:ct}}function mergeHeaders(st,at,ut){if(!at)return new ut(st);const dt=new ut(at);if(st)for(const[ct,pt]of Symbol.iterator in st||Array.isArray(st)?st:new ut(st))dt.set(ct,pt);return dt}async function callHooks(st,at){if(at)if(Array.isArray(at))for(const ut of at)await ut(st);else await at(st)}const retryStatusCodes=new Set([408,409,425,429,500,502,503,504]),nullBodyResponses=new Set([101,204,205,304]);function createFetch(st={}){const{fetch:at=globalThis.fetch,Headers:ut=globalThis.Headers,AbortController:dt=globalThis.AbortController}=st;async function ct(ht){const mt=ht.error&&ht.error.name==="AbortError"&&!ht.options.timeout||!1;if(ht.options.retry!==!1&&!mt){let bt;typeof ht.options.retry=="number"?bt=ht.options.retry:bt=isPayloadMethod(ht.options.method)?0:1;const Tt=ht.response&&ht.response.status||500;if(bt>0&&(Array.isArray(ht.options.retryStatusCodes)?ht.options.retryStatusCodes.includes(Tt):retryStatusCodes.has(Tt))){const St=typeof ht.options.retryDelay=="function"?ht.options.retryDelay(ht):ht.options.retryDelay||0;return St>0&&await new Promise(At=>setTimeout(At,St)),pt(ht.request,{...ht.options,retry:bt-1})}}const yt=createFetchError(ht);throw Error.captureStackTrace&&Error.captureStackTrace(yt,pt),yt}const pt=async function(mt,yt={}){const bt={request:mt,options:resolveFetchOptions(mt,yt,st.defaults,ut),response:void 0,error:void 0};bt.options.method&&(bt.options.method=bt.options.method.toUpperCase()),bt.options.onRequest&&await callHooks(bt,bt.options.onRequest),typeof bt.request=="string"&&(bt.options.baseURL&&(bt.request=withBase(bt.request,bt.options.baseURL)),bt.options.query&&(bt.request=withQuery(bt.request,bt.options.query),delete bt.options.query),"query"in bt.options&&delete bt.options.query,"params"in bt.options&&delete bt.options.params),bt.options.body&&isPayloadMethod(bt.options.method)&&(isJSONSerializable(bt.options.body)?(bt.options.body=typeof bt.options.body=="string"?bt.options.body:JSON.stringify(bt.options.body),bt.options.headers=new ut(bt.options.headers||{}),bt.options.headers.has("content-type")||bt.options.headers.set("content-type","application/json"),bt.options.headers.has("accept")||bt.options.headers.set("accept","application/json")):("pipeTo"in bt.options.body&&typeof bt.options.body.pipeTo=="function"||typeof bt.options.body.pipe=="function")&&("duplex"in bt.options||(bt.options.duplex="half")));let Tt;if(!bt.options.signal&&bt.options.timeout){const At=new dt;Tt=setTimeout(()=>{const vt=new Error("[TimeoutError]: The operation was aborted due to timeout");vt.name="TimeoutError",vt.code=23,At.abort(vt)},bt.options.timeout),bt.options.signal=At.signal}try{bt.response=await at(bt.request,bt.options)}catch(At){return bt.error=At,bt.options.onRequestError&&await callHooks(bt,bt.options.onRequestError),await ct(bt)}finally{Tt&&clearTimeout(Tt)}if((bt.response.body||bt.response._bodyInit)&&!nullBodyResponses.has(bt.response.status)&&bt.options.method!=="HEAD"){const At=(bt.options.parseResponse?"json":bt.options.responseType)||detectResponseType(bt.response.headers.get("content-type")||"");switch(At){case"json":{const vt=await bt.response.text(),Dt=bt.options.parseResponse||destr;bt.response._data=Dt(vt);break}case"stream":{bt.response._data=bt.response.body||bt.response._bodyInit;break}default:bt.response._data=await bt.response[At]()}}return bt.options.onResponse&&await callHooks(bt,bt.options.onResponse),!bt.options.ignoreResponseError&&bt.response.status>=400&&bt.response.status<600?(bt.options.onResponseError&&await callHooks(bt,bt.options.onResponseError),await ct(bt)):bt.response},ft=async function(mt,yt){return(await pt(mt,yt))._data};return ft.raw=pt,ft.native=(...ht)=>at(...ht),ft.create=(ht={},mt={})=>createFetch({...st,...mt,defaults:{...st.defaults,...mt.defaults,...ht}}),ft}const _globalThis=function(){if(typeof globalThis<"u")return globalThis;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")}(),fetch$2=_globalThis.fetch?(...st)=>_globalThis.fetch(...st):()=>Promise.reject(new Error("[ofetch] global.fetch is not supported!")),Headers$1=_globalThis.Headers,AbortController$1=_globalThis.AbortController,ofetch=createFetch({fetch:fetch$2,Headers:Headers$1,AbortController:AbortController$1});var hasElementType=typeof Element<"u",hasMap=typeof Map=="function",hasSet=typeof Set=="function",hasArrayBuffer=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function equal(st,at){if(st===at)return!0;if(st&&at&&typeof st=="object"&&typeof at=="object"){if(st.constructor!==at.constructor)return!1;var ut,dt,ct;if(Array.isArray(st)){if(ut=st.length,ut!=at.length)return!1;for(dt=ut;dt--!==0;)if(!equal(st[dt],at[dt]))return!1;return!0}var pt;if(hasMap&&st instanceof Map&&at instanceof Map){if(st.size!==at.size)return!1;for(pt=st.entries();!(dt=pt.next()).done;)if(!at.has(dt.value[0]))return!1;for(pt=st.entries();!(dt=pt.next()).done;)if(!equal(dt.value[1],at.get(dt.value[0])))return!1;return!0}if(hasSet&&st instanceof Set&&at instanceof Set){if(st.size!==at.size)return!1;for(pt=st.entries();!(dt=pt.next()).done;)if(!at.has(dt.value[0]))return!1;return!0}if(hasArrayBuffer&&ArrayBuffer.isView(st)&&ArrayBuffer.isView(at)){if(ut=st.length,ut!=at.length)return!1;for(dt=ut;dt--!==0;)if(st[dt]!==at[dt])return!1;return!0}if(st.constructor===RegExp)return st.source===at.source&&st.flags===at.flags;if(st.valueOf!==Object.prototype.valueOf&&typeof st.valueOf=="function"&&typeof at.valueOf=="function")return st.valueOf()===at.valueOf();if(st.toString!==Object.prototype.toString&&typeof st.toString=="function"&&typeof at.toString=="function")return st.toString()===at.toString();if(ct=Object.keys(st),ut=ct.length,ut!==Object.keys(at).length)return!1;for(dt=ut;dt--!==0;)if(!Object.prototype.hasOwnProperty.call(at,ct[dt]))return!1;if(hasElementType&&st instanceof Element)return!1;for(dt=ut;dt--!==0;)if(!((ct[dt]==="_owner"||ct[dt]==="__v"||ct[dt]==="__o")&&st.$$typeof)&&!equal(st[ct[dt]],at[ct[dt]]))return!1;return!0}return st!==st&&at!==at}var reactFastCompare=function(at,ut){try{return equal(at,ut)}catch(dt){if((dt.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw dt}};const fastCompare=getDefaultExportFromCjs$1(reactFastCompare);var invariant$3=function(st,at,ut,dt,ct,pt,ft,ht){if(!st){var mt;if(at===void 0)mt=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var yt=[ut,dt,ct,pt,ft,ht],bt=0;mt=new Error(at.replace(/%s/g,function(){return yt[bt++]})),mt.name="Invariant Violation"}throw mt.framesToPop=1,mt}},browser$1=invariant$3;const invariant$4=getDefaultExportFromCjs$1(browser$1);var shallowequal=function(at,ut,dt,ct){var pt=dt?dt.call(ct,at,ut):void 0;if(pt!==void 0)return!!pt;if(at===ut)return!0;if(typeof at!="object"||!at||typeof ut!="object"||!ut)return!1;var ft=Object.keys(at),ht=Object.keys(ut);if(ft.length!==ht.length)return!1;for(var mt=Object.prototype.hasOwnProperty.bind(ut),yt=0;yt(st.BASE="base",st.BODY="body",st.HEAD="head",st.HTML="html",st.LINK="link",st.META="meta",st.NOSCRIPT="noscript",st.SCRIPT="script",st.STYLE="style",st.TITLE="title",st.FRAGMENT="Symbol(react.fragment)",st))(TAG_NAMES$1||{}),SEO_PRIORITY_TAGS={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},VALID_TAG_NAMES=Object.values(TAG_NAMES$1),REACT_TAG_MAP={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},HTML_TAG_MAP=Object.entries(REACT_TAG_MAP).reduce((st,[at,ut])=>(st[ut]=at,st),{}),HELMET_ATTRIBUTE="data-rh",HELMET_PROPS={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},getInnermostProperty=(st,at)=>{for(let ut=st.length-1;ut>=0;ut-=1){const dt=st[ut];if(Object.prototype.hasOwnProperty.call(dt,at))return dt[at]}return null},getTitleFromPropsList=st=>{let at=getInnermostProperty(st,"title");const ut=getInnermostProperty(st,HELMET_PROPS.TITLE_TEMPLATE);if(Array.isArray(at)&&(at=at.join("")),ut&&at)return ut.replace(/%s/g,()=>at);const dt=getInnermostProperty(st,HELMET_PROPS.DEFAULT_TITLE);return at||dt||void 0},getOnChangeClientState=st=>getInnermostProperty(st,HELMET_PROPS.ON_CHANGE_CLIENT_STATE)||(()=>{}),getAttributesFromPropsList=(st,at)=>at.filter(ut=>typeof ut[st]<"u").map(ut=>ut[st]).reduce((ut,dt)=>({...ut,...dt}),{}),getBaseTagFromPropsList=(st,at)=>at.filter(ut=>typeof ut.base<"u").map(ut=>ut.base).reverse().reduce((ut,dt)=>{if(!ut.length){const ct=Object.keys(dt);for(let pt=0;ptconsole&&typeof console.warn=="function"&&console.warn(st),getTagsFromPropsList=(st,at,ut)=>{const dt={};return ut.filter(ct=>Array.isArray(ct[st])?!0:(typeof ct[st]<"u"&&warn$1(`Helmet: ${st} should be of type "Array". Instead found type "${typeof ct[st]}"`),!1)).map(ct=>ct[st]).reverse().reduce((ct,pt)=>{const ft={};pt.filter(mt=>{let yt;const bt=Object.keys(mt);for(let St=0;Stct.push(mt));const ht=Object.keys(ft);for(let mt=0;mt{if(Array.isArray(st)&&st.length){for(let ut=0;ut({baseTag:getBaseTagFromPropsList(["href"],st),bodyAttributes:getAttributesFromPropsList("bodyAttributes",st),defer:getInnermostProperty(st,HELMET_PROPS.DEFER),encode:getInnermostProperty(st,HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:getAttributesFromPropsList("htmlAttributes",st),linkTags:getTagsFromPropsList("link",["rel","href"],st),metaTags:getTagsFromPropsList("meta",["name","charset","http-equiv","property","itemprop"],st),noscriptTags:getTagsFromPropsList("noscript",["innerHTML"],st),onChangeClientState:getOnChangeClientState(st),scriptTags:getTagsFromPropsList("script",["src","innerHTML"],st),styleTags:getTagsFromPropsList("style",["cssText"],st),title:getTitleFromPropsList(st),titleAttributes:getAttributesFromPropsList("titleAttributes",st),prioritizeSeoTags:getAnyTrueFromPropsList(st,HELMET_PROPS.PRIORITIZE_SEO_TAGS)}),flattenArray=st=>Array.isArray(st)?st.join(""):st,checkIfPropsMatch=(st,at)=>{const ut=Object.keys(st);for(let dt=0;dtArray.isArray(st)?st.reduce((ut,dt)=>(checkIfPropsMatch(dt,at)?ut.priority.push(dt):ut.default.push(dt),ut),{priority:[],default:[]}):{default:st,priority:[]},without=(st,at)=>({...st,[at]:void 0}),SELF_CLOSING_TAGS=["noscript","script","style"],encodeSpecialCharacters=(st,at=!0)=>at===!1?String(st):String(st).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'"),generateElementAttributesAsString=st=>Object.keys(st).reduce((at,ut)=>{const dt=typeof st[ut]<"u"?`${ut}="${st[ut]}"`:`${ut}`;return at?`${at} ${dt}`:dt},""),generateTitleAsString=(st,at,ut,dt)=>{const ct=generateElementAttributesAsString(ut),pt=flattenArray(at);return ct?`<${st} ${HELMET_ATTRIBUTE}="true" ${ct}>${encodeSpecialCharacters(pt,dt)}`:`<${st} ${HELMET_ATTRIBUTE}="true">${encodeSpecialCharacters(pt,dt)}`},generateTagsAsString=(st,at,ut=!0)=>at.reduce((dt,ct)=>{const pt=ct,ft=Object.keys(pt).filter(yt=>!(yt==="innerHTML"||yt==="cssText")).reduce((yt,bt)=>{const Tt=typeof pt[bt]>"u"?bt:`${bt}="${encodeSpecialCharacters(pt[bt],ut)}"`;return yt?`${yt} ${Tt}`:Tt},""),ht=pt.innerHTML||pt.cssText||"",mt=SELF_CLOSING_TAGS.indexOf(st)===-1;return`${dt}<${st} ${HELMET_ATTRIBUTE}="true" ${ft}${mt?"/>":`>${ht}`}`},""),convertElementAttributesToReactProps=(st,at={})=>Object.keys(st).reduce((ut,dt)=>{const ct=REACT_TAG_MAP[dt];return ut[ct||dt]=st[dt],ut},at),generateTitleAsReactComponent=(st,at,ut)=>{const dt={key:at,[HELMET_ATTRIBUTE]:!0},ct=convertElementAttributesToReactProps(ut,dt);return[React$3.createElement("title",ct,at)]},generateTagsAsReactComponent=(st,at)=>at.map((ut,dt)=>{const ct={key:dt,[HELMET_ATTRIBUTE]:!0};return Object.keys(ut).forEach(pt=>{const ht=REACT_TAG_MAP[pt]||pt;if(ht==="innerHTML"||ht==="cssText"){const mt=ut.innerHTML||ut.cssText;ct.dangerouslySetInnerHTML={__html:mt}}else ct[ht]=ut[pt]}),React$3.createElement(st,ct)}),getMethodsForTag=(st,at,ut=!0)=>{switch(st){case"title":return{toComponent:()=>generateTitleAsReactComponent(st,at.title,at.titleAttributes),toString:()=>generateTitleAsString(st,at.title,at.titleAttributes,ut)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>convertElementAttributesToReactProps(at),toString:()=>generateElementAttributesAsString(at)};default:return{toComponent:()=>generateTagsAsReactComponent(st,at),toString:()=>generateTagsAsString(st,at,ut)}}},getPriorityMethods=({metaTags:st,linkTags:at,scriptTags:ut,encode:dt})=>{const ct=prioritizer(st,SEO_PRIORITY_TAGS.meta),pt=prioritizer(at,SEO_PRIORITY_TAGS.link),ft=prioritizer(ut,SEO_PRIORITY_TAGS.script);return{priorityMethods:{toComponent:()=>[...generateTagsAsReactComponent("meta",ct.priority),...generateTagsAsReactComponent("link",pt.priority),...generateTagsAsReactComponent("script",ft.priority)],toString:()=>`${getMethodsForTag("meta",ct.priority,dt)} ${getMethodsForTag("link",pt.priority,dt)} ${getMethodsForTag("script",ft.priority,dt)}`},metaTags:ct.default,linkTags:pt.default,scriptTags:ft.default}},mapStateOnServer=st=>{const{baseTag:at,bodyAttributes:ut,encode:dt=!0,htmlAttributes:ct,noscriptTags:pt,styleTags:ft,title:ht="",titleAttributes:mt,prioritizeSeoTags:yt}=st;let{linkTags:bt,metaTags:Tt,scriptTags:St}=st,At={toComponent:()=>{},toString:()=>""};return yt&&({priorityMethods:At,linkTags:bt,metaTags:Tt,scriptTags:St}=getPriorityMethods(st)),{priority:At,base:getMethodsForTag("base",at,dt),bodyAttributes:getMethodsForTag("bodyAttributes",ut,dt),htmlAttributes:getMethodsForTag("htmlAttributes",ct,dt),link:getMethodsForTag("link",bt,dt),meta:getMethodsForTag("meta",Tt,dt),noscript:getMethodsForTag("noscript",pt,dt),script:getMethodsForTag("script",St,dt),style:getMethodsForTag("style",ft,dt),title:getMethodsForTag("title",{title:ht,titleAttributes:mt},dt)}},server_default=mapStateOnServer,instances=[],isDocument$1=!!(typeof window<"u"&&window.document&&window.document.createElement),HelmetData=class{constructor(st,at){cr(this,"instances",[]);cr(this,"canUseDOM",isDocument$1);cr(this,"context");cr(this,"value",{setHelmet:st=>{this.context.helmet=st},helmetInstances:{get:()=>this.canUseDOM?instances:this.instances,add:st=>{(this.canUseDOM?instances:this.instances).push(st)},remove:st=>{const at=(this.canUseDOM?instances:this.instances).indexOf(st);(this.canUseDOM?instances:this.instances).splice(at,1)}}});this.context=st,this.canUseDOM=at||!1,at||(st.helmet=server_default({baseTag:[],bodyAttributes:{},htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},defaultValue={},Context=React$3.createContext(defaultValue),Tr,HelmetProvider=(Tr=class extends reactExports.Component{constructor(ut){super(ut);cr(this,"helmetData");this.helmetData=new HelmetData(this.props.context||{},Tr.canUseDOM)}render(){return React$3.createElement(Context.Provider,{value:this.helmetData.value},this.props.children)}},cr(Tr,"canUseDOM",isDocument$1),Tr),updateTags=(st,at)=>{const ut=document.head||document.querySelector("head"),dt=ut.querySelectorAll(`${st}[${HELMET_ATTRIBUTE}]`),ct=[].slice.call(dt),pt=[];let ft;return at&&at.length&&at.forEach(ht=>{const mt=document.createElement(st);for(const yt in ht)if(Object.prototype.hasOwnProperty.call(ht,yt))if(yt==="innerHTML")mt.innerHTML=ht.innerHTML;else if(yt==="cssText")mt.styleSheet?mt.styleSheet.cssText=ht.cssText:mt.appendChild(document.createTextNode(ht.cssText));else{const bt=yt,Tt=typeof ht[bt]>"u"?"":ht[bt];mt.setAttribute(yt,Tt)}mt.setAttribute(HELMET_ATTRIBUTE,"true"),ct.some((yt,bt)=>(ft=bt,mt.isEqualNode(yt)))?ct.splice(ft,1):pt.push(mt)}),ct.forEach(ht=>{var mt;return(mt=ht.parentNode)==null?void 0:mt.removeChild(ht)}),pt.forEach(ht=>ut.appendChild(ht)),{oldTags:ct,newTags:pt}},updateAttributes=(st,at)=>{const ut=document.getElementsByTagName(st)[0];if(!ut)return;const dt=ut.getAttribute(HELMET_ATTRIBUTE),ct=dt?dt.split(","):[],pt=[...ct],ft=Object.keys(at);for(const ht of ft){const mt=at[ht]||"";ut.getAttribute(ht)!==mt&&ut.setAttribute(ht,mt),ct.indexOf(ht)===-1&&ct.push(ht);const yt=pt.indexOf(ht);yt!==-1&&pt.splice(yt,1)}for(let ht=pt.length-1;ht>=0;ht-=1)ut.removeAttribute(pt[ht]);ct.length===pt.length?ut.removeAttribute(HELMET_ATTRIBUTE):ut.getAttribute(HELMET_ATTRIBUTE)!==ft.join(",")&&ut.setAttribute(HELMET_ATTRIBUTE,ft.join(","))},updateTitle=(st,at)=>{typeof st<"u"&&document.title!==st&&(document.title=flattenArray(st)),updateAttributes("title",at)},commitTagChanges=(st,at)=>{const{baseTag:ut,bodyAttributes:dt,htmlAttributes:ct,linkTags:pt,metaTags:ft,noscriptTags:ht,onChangeClientState:mt,scriptTags:yt,styleTags:bt,title:Tt,titleAttributes:St}=st;updateAttributes("body",dt),updateAttributes("html",ct),updateTitle(Tt,St);const At={baseTag:updateTags("base",ut),linkTags:updateTags("link",pt),metaTags:updateTags("meta",ft),noscriptTags:updateTags("noscript",ht),scriptTags:updateTags("script",yt),styleTags:updateTags("style",bt)},vt={},Dt={};Object.keys(At).forEach(Et=>{const{newTags:_t,oldTags:xt}=At[Et];_t.length&&(vt[Et]=_t),xt.length&&(Dt[Et]=At[Et].oldTags)}),at&&at(),mt(st,vt,Dt)},_helmetCallback=null,handleStateChangeOnClient=st=>{_helmetCallback&&cancelAnimationFrame(_helmetCallback),st.defer?_helmetCallback=requestAnimationFrame(()=>{commitTagChanges(st,()=>{_helmetCallback=null})}):(commitTagChanges(st),_helmetCallback=null)},client_default=handleStateChangeOnClient,HelmetDispatcher=class extends reactExports.Component{constructor(){super(...arguments);cr(this,"rendered",!1)}shouldComponentUpdate(at){return!shallowEqual(at,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:at}=this.props.context;at.remove(this),this.emitChange()}emitChange(){const{helmetInstances:at,setHelmet:ut}=this.props.context;let dt=null;const ct=reducePropsToState(at.get().map(pt=>{const ft={...pt.props};return delete ft.context,ft}));HelmetProvider.canUseDOM?client_default(ct):server_default&&(dt=server_default(ct)),ut(dt)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:at}=this.props.context;at.add(this),this.emitChange()}render(){return this.init(),null}},Hr,Helmet=(Hr=class extends reactExports.Component{shouldComponentUpdate(st){return!fastCompare(without(this.props,"helmetData"),without(st,"helmetData"))}mapNestedChildrenToProps(st,at){if(!at)return null;switch(st.type){case"script":case"noscript":return{innerHTML:at};case"style":return{cssText:at};default:throw new Error(`<${st.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(st,at,ut,dt){return{...at,[st.type]:[...at[st.type]||[],{...ut,...this.mapNestedChildrenToProps(st,dt)}]}}mapObjectTypeChildren(st,at,ut,dt){switch(st.type){case"title":return{...at,[st.type]:dt,titleAttributes:{...ut}};case"body":return{...at,bodyAttributes:{...ut}};case"html":return{...at,htmlAttributes:{...ut}};default:return{...at,[st.type]:{...ut}}}}mapArrayTypeChildrenToProps(st,at){let ut={...at};return Object.keys(st).forEach(dt=>{ut={...ut,[dt]:st[dt]}}),ut}warnOnInvalidChildren(st,at){return invariant$4(VALID_TAG_NAMES.some(ut=>st.type===ut),typeof st.type=="function"?"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${VALID_TAG_NAMES.join(", ")} are allowed. Helmet does not support rendering <${st.type}> elements. Refer to our API for more information.`),invariant$4(!at||typeof at=="string"||Array.isArray(at)&&!at.some(ut=>typeof ut!="string"),`Helmet expects a string as a child of <${st.type}>. Did you forget to wrap your children in braces? ( <${st.type}>{\`\`} ) Refer to our API for more information.`),!0}mapChildrenToProps(st,at){let ut={};return React$3.Children.forEach(st,dt=>{if(!dt||!dt.props)return;const{children:ct,...pt}=dt.props,ft=Object.keys(pt).reduce((mt,yt)=>(mt[HTML_TAG_MAP[yt]||yt]=pt[yt],mt),{});let{type:ht}=dt;switch(typeof ht=="symbol"?ht=ht.toString():this.warnOnInvalidChildren(dt,ct),ht){case"Symbol(react.fragment)":at=this.mapChildrenToProps(ct,at);break;case"link":case"meta":case"noscript":case"script":case"style":ut=this.flattenArrayTypeChildren(dt,ut,ft,ct);break;default:at=this.mapObjectTypeChildren(dt,at,ft,ct);break}}),this.mapArrayTypeChildrenToProps(ut,at)}render(){const{children:st,...at}=this.props;let ut={...at},{helmetData:dt}=at;if(st&&(ut=this.mapChildrenToProps(st,ut)),dt&&!(dt instanceof HelmetData)){const ct=dt;dt=new HelmetData(ct.context,!0),delete ut.helmetData}return dt?React$3.createElement(HelmetDispatcher,{...ut,context:dt.value}):React$3.createElement(Context.Consumer,null,ct=>React$3.createElement(HelmetDispatcher,{...ut,context:ct}))}},cr(Hr,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),Hr);const isString$2=st=>typeof st=="string",defer=()=>{let st,at;const ut=new Promise((dt,ct)=>{st=dt,at=ct});return ut.resolve=st,ut.reject=at,ut},makeString=st=>st==null?"":""+st,copy$1=(st,at,ut)=>{st.forEach(dt=>{at[dt]&&(ut[dt]=at[dt])})},lastOfPathSeparatorRegExp=/###/g,cleanKey=st=>st&&st.indexOf("###")>-1?st.replace(lastOfPathSeparatorRegExp,"."):st,canNotTraverseDeeper=st=>!st||isString$2(st),getLastOfPath=(st,at,ut)=>{const dt=isString$2(at)?at.split("."):at;let ct=0;for(;ct{const{obj:dt,k:ct}=getLastOfPath(st,at,Object);if(dt!==void 0||at.length===1){dt[ct]=ut;return}let pt=at[at.length-1],ft=at.slice(0,at.length-1),ht=getLastOfPath(st,ft,Object);for(;ht.obj===void 0&&ft.length;)pt=`${ft[ft.length-1]}.${pt}`,ft=ft.slice(0,ft.length-1),ht=getLastOfPath(st,ft,Object),ht&&ht.obj&&typeof ht.obj[`${ht.k}.${pt}`]<"u"&&(ht.obj=void 0);ht.obj[`${ht.k}.${pt}`]=ut},pushPath=(st,at,ut,dt)=>{const{obj:ct,k:pt}=getLastOfPath(st,at,Object);ct[pt]=ct[pt]||[],ct[pt].push(ut)},getPath=(st,at)=>{const{obj:ut,k:dt}=getLastOfPath(st,at);if(ut)return ut[dt]},getPathWithDefaults=(st,at,ut)=>{const dt=getPath(st,ut);return dt!==void 0?dt:getPath(at,ut)},deepExtend=(st,at,ut)=>{for(const dt in at)dt!=="__proto__"&&dt!=="constructor"&&(dt in st?isString$2(st[dt])||st[dt]instanceof String||isString$2(at[dt])||at[dt]instanceof String?ut&&(st[dt]=at[dt]):deepExtend(st[dt],at[dt],ut):st[dt]=at[dt]);return st},regexEscape=st=>st.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var _entityMap={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const escape$1=st=>isString$2(st)?st.replace(/[&<>"'\/]/g,at=>_entityMap[at]):st;class RegExpCache{constructor(at){this.capacity=at,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(at){const ut=this.regExpMap.get(at);if(ut!==void 0)return ut;const dt=new RegExp(at);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(at,dt),this.regExpQueue.push(at),dt}}const chars=[" ",",","?","!",";"],looksLikeObjectPathRegExpCache=new RegExpCache(20),looksLikeObjectPath=(st,at,ut)=>{at=at||"",ut=ut||"";const dt=chars.filter(ft=>at.indexOf(ft)<0&&ut.indexOf(ft)<0);if(dt.length===0)return!0;const ct=looksLikeObjectPathRegExpCache.getRegExp(`(${dt.map(ft=>ft==="?"?"\\?":ft).join("|")})`);let pt=!ct.test(st);if(!pt){const ft=st.indexOf(ut);ft>0&&!ct.test(st.substring(0,ft))&&(pt=!0)}return pt},deepFind=function(st,at){let ut=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!st)return;if(st[at])return st[at];const dt=at.split(ut);let ct=st;for(let pt=0;pt-1&&mtst&&st.replace("_","-"),consoleLogger={type:"logger",log(st){this.output("log",st)},warn(st){this.output("warn",st)},error(st){this.output("error",st)},output(st,at){console&&console[st]&&console[st].apply(console,at)}};let Logger$1=class qr{constructor(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(at,ut)}init(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=ut.prefix||"i18next:",this.logger=at||consoleLogger,this.options=ut,this.debug=ut.debug}log(){for(var at=arguments.length,ut=new Array(at),dt=0;dt{this.observers[dt]||(this.observers[dt]=new Map);const ct=this.observers[dt].get(ut)||0;this.observers[dt].set(ut,ct+1)}),this}off(at,ut){if(this.observers[at]){if(!ut){delete this.observers[at];return}this.observers[at].delete(ut)}}emit(at){for(var ut=arguments.length,dt=new Array(ut>1?ut-1:0),ct=1;ct{let[ht,mt]=ft;for(let yt=0;yt{let[ht,mt]=ft;for(let yt=0;yt1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=at||{},this.options=ut,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(at){this.options.ns.indexOf(at)<0&&this.options.ns.push(at)}removeNamespaces(at){const ut=this.options.ns.indexOf(at);ut>-1&&this.options.ns.splice(ut,1)}getResource(at,ut,dt){let ct=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const pt=ct.keySeparator!==void 0?ct.keySeparator:this.options.keySeparator,ft=ct.ignoreJSONStructure!==void 0?ct.ignoreJSONStructure:this.options.ignoreJSONStructure;let ht;at.indexOf(".")>-1?ht=at.split("."):(ht=[at,ut],dt&&(Array.isArray(dt)?ht.push(...dt):isString$2(dt)&&pt?ht.push(...dt.split(pt)):ht.push(dt)));const mt=getPath(this.data,ht);return!mt&&!ut&&!dt&&at.indexOf(".")>-1&&(at=ht[0],ut=ht[1],dt=ht.slice(2).join(".")),mt||!ft||!isString$2(dt)?mt:deepFind(this.data&&this.data[at]&&this.data[at][ut],dt,pt)}addResource(at,ut,dt,ct){let pt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const ft=pt.keySeparator!==void 0?pt.keySeparator:this.options.keySeparator;let ht=[at,ut];dt&&(ht=ht.concat(ft?dt.split(ft):dt)),at.indexOf(".")>-1&&(ht=at.split("."),ct=ut,ut=ht[1]),this.addNamespaces(ut),setPath(this.data,ht,ct),pt.silent||this.emit("added",at,ut,dt,ct)}addResources(at,ut,dt){let ct=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const pt in dt)(isString$2(dt[pt])||Array.isArray(dt[pt]))&&this.addResource(at,ut,pt,dt[pt],{silent:!0});ct.silent||this.emit("added",at,ut,dt)}addResourceBundle(at,ut,dt,ct,pt){let ft=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1,skipCopy:!1},ht=[at,ut];at.indexOf(".")>-1&&(ht=at.split("."),ct=dt,dt=ut,ut=ht[1]),this.addNamespaces(ut);let mt=getPath(this.data,ht)||{};ft.skipCopy||(dt=JSON.parse(JSON.stringify(dt))),ct?deepExtend(mt,dt,pt):mt={...mt,...dt},setPath(this.data,ht,mt),ft.silent||this.emit("added",at,ut,dt)}removeResourceBundle(at,ut){this.hasResourceBundle(at,ut)&&delete this.data[at][ut],this.removeNamespaces(ut),this.emit("removed",at,ut)}hasResourceBundle(at,ut){return this.getResource(at,ut)!==void 0}getResourceBundle(at,ut){return ut||(ut=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(at,ut)}:this.getResource(at,ut)}getDataByLanguage(at){return this.data[at]}hasLanguageSomeTranslations(at){const ut=this.getDataByLanguage(at);return!!(ut&&Object.keys(ut)||[]).find(ct=>ut[ct]&&Object.keys(ut[ct]).length>0)}toJSON(){return this.data}}var postProcessor={processors:{},addPostProcessor(st){this.processors[st.name]=st},handle(st,at,ut,dt,ct){return st.forEach(pt=>{this.processors[pt]&&(at=this.processors[pt].process(at,ut,dt,ct))}),at}};const checkedLoadedFor={};class Translator extends EventEmitter$1{constructor(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),copy$1(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],at,this),this.options=ut,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=baseLogger.create("translator")}changeLanguage(at){at&&(this.language=at)}exists(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(at==null)return!1;const dt=this.resolve(at,ut);return dt&&dt.res!==void 0}extractFromKey(at,ut){let dt=ut.nsSeparator!==void 0?ut.nsSeparator:this.options.nsSeparator;dt===void 0&&(dt=":");const ct=ut.keySeparator!==void 0?ut.keySeparator:this.options.keySeparator;let pt=ut.ns||this.options.defaultNS||[];const ft=dt&&at.indexOf(dt)>-1,ht=!this.options.userDefinedKeySeparator&&!ut.keySeparator&&!this.options.userDefinedNsSeparator&&!ut.nsSeparator&&!looksLikeObjectPath(at,dt,ct);if(ft&&!ht){const mt=at.match(this.interpolator.nestingRegexp);if(mt&&mt.length>0)return{key:at,namespaces:isString$2(pt)?[pt]:pt};const yt=at.split(dt);(dt!==ct||dt===ct&&this.options.ns.indexOf(yt[0])>-1)&&(pt=yt.shift()),at=yt.join(ct)}return{key:at,namespaces:isString$2(pt)?[pt]:pt}}translate(at,ut,dt){if(typeof ut!="object"&&this.options.overloadTranslationOptionHandler&&(ut=this.options.overloadTranslationOptionHandler(arguments)),typeof ut=="object"&&(ut={...ut}),ut||(ut={}),at==null)return"";Array.isArray(at)||(at=[String(at)]);const ct=ut.returnDetails!==void 0?ut.returnDetails:this.options.returnDetails,pt=ut.keySeparator!==void 0?ut.keySeparator:this.options.keySeparator,{key:ft,namespaces:ht}=this.extractFromKey(at[at.length-1],ut),mt=ht[ht.length-1],yt=ut.lng||this.language,bt=ut.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(yt&&yt.toLowerCase()==="cimode"){if(bt){const kt=ut.nsSeparator||this.options.nsSeparator;return ct?{res:`${mt}${kt}${ft}`,usedKey:ft,exactUsedKey:ft,usedLng:yt,usedNS:mt,usedParams:this.getUsedParamsDetails(ut)}:`${mt}${kt}${ft}`}return ct?{res:ft,usedKey:ft,exactUsedKey:ft,usedLng:yt,usedNS:mt,usedParams:this.getUsedParamsDetails(ut)}:ft}const Tt=this.resolve(at,ut);let St=Tt&&Tt.res;const At=Tt&&Tt.usedKey||ft,vt=Tt&&Tt.exactUsedKey||ft,Dt=Object.prototype.toString.apply(St),Et=["[object Number]","[object Function]","[object RegExp]"],_t=ut.joinArrays!==void 0?ut.joinArrays:this.options.joinArrays,xt=!this.i18nFormat||this.i18nFormat.handleAsObject,Ct=!isString$2(St)&&typeof St!="boolean"&&typeof St!="number";if(xt&&St&&Ct&&Et.indexOf(Dt)<0&&!(isString$2(_t)&&Array.isArray(St))){if(!ut.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const kt=this.options.returnedObjectHandler?this.options.returnedObjectHandler(At,St,{...ut,ns:ht}):`key '${ft} (${this.language})' returned an object instead of string.`;return ct?(Tt.res=kt,Tt.usedParams=this.getUsedParamsDetails(ut),Tt):kt}if(pt){const kt=Array.isArray(St),wt=kt?[]:{},$t=kt?vt:At;for(const Lt in St)if(Object.prototype.hasOwnProperty.call(St,Lt)){const Ot=`${$t}${pt}${Lt}`;wt[Lt]=this.translate(Ot,{...ut,joinArrays:!1,ns:ht}),wt[Lt]===Ot&&(wt[Lt]=St[Lt])}St=wt}}else if(xt&&isString$2(_t)&&Array.isArray(St))St=St.join(_t),St&&(St=this.extendTranslation(St,at,ut,dt));else{let kt=!1,wt=!1;const $t=ut.count!==void 0&&!isString$2(ut.count),Lt=Translator.hasDefaultValue(ut),Ot=$t?this.pluralResolver.getSuffix(yt,ut.count,ut):"",zt=ut.ordinal&&$t?this.pluralResolver.getSuffix(yt,ut.count,{ordinal:!1}):"",Mt=$t&&!ut.ordinal&&ut.count===0&&this.pluralResolver.shouldUseIntlApi(),qt=Mt&&ut[`defaultValue${this.options.pluralSeparator}zero`]||ut[`defaultValue${Ot}`]||ut[`defaultValue${zt}`]||ut.defaultValue;!this.isValidLookup(St)&&Lt&&(kt=!0,St=qt),this.isValidLookup(St)||(wt=!0,St=ft);const Yt=(ut.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&wt?void 0:St,jt=Lt&&qt!==St&&this.options.updateMissing;if(wt||kt||jt){if(this.logger.log(jt?"updateKey":"missingKey",yt,mt,ft,jt?qt:St),pt){const Kt=this.resolve(ft,{...ut,keySeparator:!1});Kt&&Kt.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let Ft=[];const Vt=this.languageUtils.getFallbackCodes(this.options.fallbackLng,ut.lng||this.language);if(this.options.saveMissingTo==="fallback"&&Vt&&Vt[0])for(let Kt=0;Kt{const Nt=Lt&&Wt!==St?Wt:Yt;this.options.missingKeyHandler?this.options.missingKeyHandler(Kt,mt,Zt,Nt,jt,ut):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(Kt,mt,Zt,Nt,jt,ut),this.emit("missingKey",Kt,mt,Zt,St)};this.options.saveMissing&&(this.options.saveMissingPlurals&&$t?Ft.forEach(Kt=>{const Zt=this.pluralResolver.getSuffixes(Kt,ut);Mt&&ut[`defaultValue${this.options.pluralSeparator}zero`]&&Zt.indexOf(`${this.options.pluralSeparator}zero`)<0&&Zt.push(`${this.options.pluralSeparator}zero`),Zt.forEach(Wt=>{Ht([Kt],ft+Wt,ut[`defaultValue${Wt}`]||qt)})}):Ht(Ft,ft,qt))}St=this.extendTranslation(St,at,ut,Tt,dt),wt&&St===ft&&this.options.appendNamespaceToMissingKey&&(St=`${mt}:${ft}`),(wt||kt)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?St=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${mt}:${ft}`:ft,kt?St:void 0):St=this.options.parseMissingKeyHandler(St))}return ct?(Tt.res=St,Tt.usedParams=this.getUsedParamsDetails(ut),Tt):St}extendTranslation(at,ut,dt,ct,pt){var ft=this;if(this.i18nFormat&&this.i18nFormat.parse)at=this.i18nFormat.parse(at,{...this.options.interpolation.defaultVariables,...dt},dt.lng||this.language||ct.usedLng,ct.usedNS,ct.usedKey,{resolved:ct});else if(!dt.skipInterpolation){dt.interpolation&&this.interpolator.init({...dt,interpolation:{...this.options.interpolation,...dt.interpolation}});const yt=isString$2(at)&&(dt&&dt.interpolation&&dt.interpolation.skipOnVariables!==void 0?dt.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let bt;if(yt){const St=at.match(this.interpolator.nestingRegexp);bt=St&&St.length}let Tt=dt.replace&&!isString$2(dt.replace)?dt.replace:dt;if(this.options.interpolation.defaultVariables&&(Tt={...this.options.interpolation.defaultVariables,...Tt}),at=this.interpolator.interpolate(at,Tt,dt.lng||this.language||ct.usedLng,dt),yt){const St=at.match(this.interpolator.nestingRegexp),At=St&&St.length;bt1&&arguments[1]!==void 0?arguments[1]:{},dt,ct,pt,ft,ht;return isString$2(at)&&(at=[at]),at.forEach(mt=>{if(this.isValidLookup(dt))return;const yt=this.extractFromKey(mt,ut),bt=yt.key;ct=bt;let Tt=yt.namespaces;this.options.fallbackNS&&(Tt=Tt.concat(this.options.fallbackNS));const St=ut.count!==void 0&&!isString$2(ut.count),At=St&&!ut.ordinal&&ut.count===0&&this.pluralResolver.shouldUseIntlApi(),vt=ut.context!==void 0&&(isString$2(ut.context)||typeof ut.context=="number")&&ut.context!=="",Dt=ut.lngs?ut.lngs:this.languageUtils.toResolveHierarchy(ut.lng||this.language,ut.fallbackLng);Tt.forEach(Et=>{this.isValidLookup(dt)||(ht=Et,!checkedLoadedFor[`${Dt[0]}-${Et}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(ht)&&(checkedLoadedFor[`${Dt[0]}-${Et}`]=!0,this.logger.warn(`key "${ct}" for languages "${Dt.join(", ")}" won't get resolved as namespace "${ht}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),Dt.forEach(_t=>{if(this.isValidLookup(dt))return;ft=_t;const xt=[bt];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(xt,bt,_t,Et,ut);else{let kt;St&&(kt=this.pluralResolver.getSuffix(_t,ut.count,ut));const wt=`${this.options.pluralSeparator}zero`,$t=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(St&&(xt.push(bt+kt),ut.ordinal&&kt.indexOf($t)===0&&xt.push(bt+kt.replace($t,this.options.pluralSeparator)),At&&xt.push(bt+wt)),vt){const Lt=`${bt}${this.options.contextSeparator}${ut.context}`;xt.push(Lt),St&&(xt.push(Lt+kt),ut.ordinal&&kt.indexOf($t)===0&&xt.push(Lt+kt.replace($t,this.options.pluralSeparator)),At&&xt.push(Lt+wt))}}let Ct;for(;Ct=xt.pop();)this.isValidLookup(dt)||(pt=Ct,dt=this.getResource(_t,Et,Ct,ut))}))})}),{res:dt,usedKey:ct,exactUsedKey:pt,usedLng:ft,usedNS:ht}}isValidLookup(at){return at!==void 0&&!(!this.options.returnNull&&at===null)&&!(!this.options.returnEmptyString&&at==="")}getResource(at,ut,dt){let ct=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(at,ut,dt,ct):this.resourceStore.getResource(at,ut,dt,ct)}getUsedParamsDetails(){let at=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const ut=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],dt=at.replace&&!isString$2(at.replace);let ct=dt?at.replace:at;if(dt&&typeof at.count<"u"&&(ct.count=at.count),this.options.interpolation.defaultVariables&&(ct={...this.options.interpolation.defaultVariables,...ct}),!dt){ct={...ct};for(const pt of ut)delete ct[pt]}return ct}static hasDefaultValue(at){const ut="defaultValue";for(const dt in at)if(Object.prototype.hasOwnProperty.call(at,dt)&&ut===dt.substring(0,ut.length)&&at[dt]!==void 0)return!0;return!1}}const capitalize=st=>st.charAt(0).toUpperCase()+st.slice(1);class LanguageUtil{constructor(at){this.options=at,this.supportedLngs=this.options.supportedLngs||!1,this.logger=baseLogger.create("languageUtils")}getScriptPartFromCode(at){if(at=getCleanedCode(at),!at||at.indexOf("-")<0)return null;const ut=at.split("-");return ut.length===2||(ut.pop(),ut[ut.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(ut.join("-"))}getLanguagePartFromCode(at){if(at=getCleanedCode(at),!at||at.indexOf("-")<0)return at;const ut=at.split("-");return this.formatLanguageCode(ut[0])}formatLanguageCode(at){if(isString$2(at)&&at.indexOf("-")>-1){if(typeof Intl<"u"&&typeof Intl.getCanonicalLocales<"u")try{let ct=Intl.getCanonicalLocales(at)[0];if(ct&&this.options.lowerCaseLng&&(ct=ct.toLowerCase()),ct)return ct}catch{}const ut=["hans","hant","latn","cyrl","cans","mong","arab"];let dt=at.split("-");return this.options.lowerCaseLng?dt=dt.map(ct=>ct.toLowerCase()):dt.length===2?(dt[0]=dt[0].toLowerCase(),dt[1]=dt[1].toUpperCase(),ut.indexOf(dt[1].toLowerCase())>-1&&(dt[1]=capitalize(dt[1].toLowerCase()))):dt.length===3&&(dt[0]=dt[0].toLowerCase(),dt[1].length===2&&(dt[1]=dt[1].toUpperCase()),dt[0]!=="sgn"&&dt[2].length===2&&(dt[2]=dt[2].toUpperCase()),ut.indexOf(dt[1].toLowerCase())>-1&&(dt[1]=capitalize(dt[1].toLowerCase())),ut.indexOf(dt[2].toLowerCase())>-1&&(dt[2]=capitalize(dt[2].toLowerCase()))),dt.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?at.toLowerCase():at}isSupportedCode(at){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(at=this.getLanguagePartFromCode(at)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(at)>-1}getBestMatchFromCodes(at){if(!at)return null;let ut;return at.forEach(dt=>{if(ut)return;const ct=this.formatLanguageCode(dt);(!this.options.supportedLngs||this.isSupportedCode(ct))&&(ut=ct)}),!ut&&this.options.supportedLngs&&at.forEach(dt=>{if(ut)return;const ct=this.getLanguagePartFromCode(dt);if(this.isSupportedCode(ct))return ut=ct;ut=this.options.supportedLngs.find(pt=>{if(pt===ct)return pt;if(!(pt.indexOf("-")<0&&ct.indexOf("-")<0)&&(pt.indexOf("-")>0&&ct.indexOf("-")<0&&pt.substring(0,pt.indexOf("-"))===ct||pt.indexOf(ct)===0&&ct.length>1))return pt})}),ut||(ut=this.getFallbackCodes(this.options.fallbackLng)[0]),ut}getFallbackCodes(at,ut){if(!at)return[];if(typeof at=="function"&&(at=at(ut)),isString$2(at)&&(at=[at]),Array.isArray(at))return at;if(!ut)return at.default||[];let dt=at[ut];return dt||(dt=at[this.getScriptPartFromCode(ut)]),dt||(dt=at[this.formatLanguageCode(ut)]),dt||(dt=at[this.getLanguagePartFromCode(ut)]),dt||(dt=at.default),dt||[]}toResolveHierarchy(at,ut){const dt=this.getFallbackCodes(ut||this.options.fallbackLng||[],at),ct=[],pt=ft=>{ft&&(this.isSupportedCode(ft)?ct.push(ft):this.logger.warn(`rejecting language code not found in supportedLngs: ${ft}`))};return isString$2(at)&&(at.indexOf("-")>-1||at.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&pt(this.formatLanguageCode(at)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&pt(this.getScriptPartFromCode(at)),this.options.load!=="currentOnly"&&pt(this.getLanguagePartFromCode(at))):isString$2(at)&&pt(this.formatLanguageCode(at)),dt.forEach(ft=>{ct.indexOf(ft)<0&&pt(this.formatLanguageCode(ft))}),ct}}let sets=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],_rulesPluralsTypes={1:st=>+(st>1),2:st=>+(st!=1),3:st=>0,4:st=>st%10==1&&st%100!=11?0:st%10>=2&&st%10<=4&&(st%100<10||st%100>=20)?1:2,5:st=>st==0?0:st==1?1:st==2?2:st%100>=3&&st%100<=10?3:st%100>=11?4:5,6:st=>st==1?0:st>=2&&st<=4?1:2,7:st=>st==1?0:st%10>=2&&st%10<=4&&(st%100<10||st%100>=20)?1:2,8:st=>st==1?0:st==2?1:st!=8&&st!=11?2:3,9:st=>+(st>=2),10:st=>st==1?0:st==2?1:st<7?2:st<11?3:4,11:st=>st==1||st==11?0:st==2||st==12?1:st>2&&st<20?2:3,12:st=>+(st%10!=1||st%100==11),13:st=>+(st!==0),14:st=>st==1?0:st==2?1:st==3?2:3,15:st=>st%10==1&&st%100!=11?0:st%10>=2&&(st%100<10||st%100>=20)?1:2,16:st=>st%10==1&&st%100!=11?0:st!==0?1:2,17:st=>st==1||st%10==1&&st%100!=11?0:1,18:st=>st==0?0:st==1?1:2,19:st=>st==1?0:st==0||st%100>1&&st%100<11?1:st%100>10&&st%100<20?2:3,20:st=>st==1?0:st==0||st%100>0&&st%100<20?1:2,21:st=>st%100==1?1:st%100==2?2:st%100==3||st%100==4?3:0,22:st=>st==1?0:st==2?1:(st<0||st>10)&&st%10==0?2:3};const nonIntlVersions=["v1","v2","v3"],intlVersions=["v4"],suffixesOrder={zero:0,one:1,two:2,few:3,many:4,other:5},createRules=()=>{const st={};return sets.forEach(at=>{at.lngs.forEach(ut=>{st[ut]={numbers:at.nr,plurals:_rulesPluralsTypes[at.fc]}})}),st};class PluralResolver{constructor(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=at,this.options=ut,this.logger=baseLogger.create("pluralResolver"),(!this.options.compatibilityJSON||intlVersions.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=createRules(),this.pluralRulesCache={}}addRule(at,ut){this.rules[at]=ut}clearCache(){this.pluralRulesCache={}}getRule(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi()){const dt=getCleanedCode(at==="dev"?"en":at),ct=ut.ordinal?"ordinal":"cardinal",pt=JSON.stringify({cleanedCode:dt,type:ct});if(pt in this.pluralRulesCache)return this.pluralRulesCache[pt];let ft;try{ft=new Intl.PluralRules(dt,{type:ct})}catch{if(!at.match(/-|_/))return;const mt=this.languageUtils.getLanguagePartFromCode(at);ft=this.getRule(mt,ut)}return this.pluralRulesCache[pt]=ft,ft}return this.rules[at]||this.rules[this.languageUtils.getLanguagePartFromCode(at)]}needsPlural(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const dt=this.getRule(at,ut);return this.shouldUseIntlApi()?dt&&dt.resolvedOptions().pluralCategories.length>1:dt&&dt.numbers.length>1}getPluralFormsOfKey(at,ut){let dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(at,dt).map(ct=>`${ut}${ct}`)}getSuffixes(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const dt=this.getRule(at,ut);return dt?this.shouldUseIntlApi()?dt.resolvedOptions().pluralCategories.sort((ct,pt)=>suffixesOrder[ct]-suffixesOrder[pt]).map(ct=>`${this.options.prepend}${ut.ordinal?`ordinal${this.options.prepend}`:""}${ct}`):dt.numbers.map(ct=>this.getSuffix(at,ct,ut)):[]}getSuffix(at,ut){let dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const ct=this.getRule(at,dt);return ct?this.shouldUseIntlApi()?`${this.options.prepend}${dt.ordinal?`ordinal${this.options.prepend}`:""}${ct.select(ut)}`:this.getSuffixRetroCompatible(ct,ut):(this.logger.warn(`no plural rule found for: ${at}`),"")}getSuffixRetroCompatible(at,ut){const dt=at.noAbs?at.plurals(ut):at.plurals(Math.abs(ut));let ct=at.numbers[dt];this.options.simplifyPluralSuffix&&at.numbers.length===2&&at.numbers[0]===1&&(ct===2?ct="plural":ct===1&&(ct=""));const pt=()=>this.options.prepend&&ct.toString()?this.options.prepend+ct.toString():ct.toString();return this.options.compatibilityJSON==="v1"?ct===1?"":typeof ct=="number"?`_plural_${ct.toString()}`:pt():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&at.numbers.length===2&&at.numbers[0]===1?pt():this.options.prepend&&dt.toString()?this.options.prepend+dt.toString():dt.toString()}shouldUseIntlApi(){return!nonIntlVersions.includes(this.options.compatibilityJSON)}}const deepFindWithDefaults=function(st,at,ut){let dt=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",ct=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,pt=getPathWithDefaults(st,at,ut);return!pt&&ct&&isString$2(ut)&&(pt=deepFind(st,ut,dt),pt===void 0&&(pt=deepFind(at,ut,dt))),pt},regexSafe=st=>st.replace(/\$/g,"$$$$");class Interpolator{constructor(){let at=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=baseLogger.create("interpolator"),this.options=at,this.format=at.interpolation&&at.interpolation.format||(ut=>ut),this.init(at)}init(){let at=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};at.interpolation||(at.interpolation={escapeValue:!0});const{escape:ut,escapeValue:dt,useRawValueToEscape:ct,prefix:pt,prefixEscaped:ft,suffix:ht,suffixEscaped:mt,formatSeparator:yt,unescapeSuffix:bt,unescapePrefix:Tt,nestingPrefix:St,nestingPrefixEscaped:At,nestingSuffix:vt,nestingSuffixEscaped:Dt,nestingOptionsSeparator:Et,maxReplaces:_t,alwaysFormat:xt}=at.interpolation;this.escape=ut!==void 0?ut:escape$1,this.escapeValue=dt!==void 0?dt:!0,this.useRawValueToEscape=ct!==void 0?ct:!1,this.prefix=pt?regexEscape(pt):ft||"{{",this.suffix=ht?regexEscape(ht):mt||"}}",this.formatSeparator=yt||",",this.unescapePrefix=bt?"":Tt||"-",this.unescapeSuffix=this.unescapePrefix?"":bt||"",this.nestingPrefix=St?regexEscape(St):At||regexEscape("$t("),this.nestingSuffix=vt?regexEscape(vt):Dt||regexEscape(")"),this.nestingOptionsSeparator=Et||",",this.maxReplaces=_t||1e3,this.alwaysFormat=xt!==void 0?xt:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const at=(ut,dt)=>ut&&ut.source===dt?(ut.lastIndex=0,ut):new RegExp(dt,"g");this.regexp=at(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=at(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=at(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(at,ut,dt,ct){let pt,ft,ht;const mt=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},yt=At=>{if(At.indexOf(this.formatSeparator)<0){const _t=deepFindWithDefaults(ut,mt,At,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(_t,void 0,dt,{...ct,...ut,interpolationkey:At}):_t}const vt=At.split(this.formatSeparator),Dt=vt.shift().trim(),Et=vt.join(this.formatSeparator).trim();return this.format(deepFindWithDefaults(ut,mt,Dt,this.options.keySeparator,this.options.ignoreJSONStructure),Et,dt,{...ct,...ut,interpolationkey:Dt})};this.resetRegExp();const bt=ct&&ct.missingInterpolationHandler||this.options.missingInterpolationHandler,Tt=ct&&ct.interpolation&&ct.interpolation.skipOnVariables!==void 0?ct.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:At=>regexSafe(At)},{regex:this.regexp,safeValue:At=>this.escapeValue?regexSafe(this.escape(At)):regexSafe(At)}].forEach(At=>{for(ht=0;pt=At.regex.exec(at);){const vt=pt[1].trim();if(ft=yt(vt),ft===void 0)if(typeof bt=="function"){const Et=bt(at,pt,ct);ft=isString$2(Et)?Et:""}else if(ct&&Object.prototype.hasOwnProperty.call(ct,vt))ft="";else if(Tt){ft=pt[0];continue}else this.logger.warn(`missed to pass in variable ${vt} for interpolating ${at}`),ft="";else!isString$2(ft)&&!this.useRawValueToEscape&&(ft=makeString(ft));const Dt=At.safeValue(ft);if(at=at.replace(pt[0],Dt),Tt?(At.regex.lastIndex+=ft.length,At.regex.lastIndex-=pt[0].length):At.regex.lastIndex=0,ht++,ht>=this.maxReplaces)break}}),at}nest(at,ut){let dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},ct,pt,ft;const ht=(mt,yt)=>{const bt=this.nestingOptionsSeparator;if(mt.indexOf(bt)<0)return mt;const Tt=mt.split(new RegExp(`${bt}[ ]*{`));let St=`{${Tt[1]}`;mt=Tt[0],St=this.interpolate(St,ft);const At=St.match(/'/g),vt=St.match(/"/g);(At&&At.length%2===0&&!vt||vt.length%2!==0)&&(St=St.replace(/'/g,'"'));try{ft=JSON.parse(St),yt&&(ft={...yt,...ft})}catch(Dt){return this.logger.warn(`failed parsing options string in nesting for key ${mt}`,Dt),`${mt}${bt}${St}`}return ft.defaultValue&&ft.defaultValue.indexOf(this.prefix)>-1&&delete ft.defaultValue,mt};for(;ct=this.nestingRegexp.exec(at);){let mt=[];ft={...dt},ft=ft.replace&&!isString$2(ft.replace)?ft.replace:ft,ft.applyPostProcessor=!1,delete ft.defaultValue;let yt=!1;if(ct[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(ct[1])){const bt=ct[1].split(this.formatSeparator).map(Tt=>Tt.trim());ct[1]=bt.shift(),mt=bt,yt=!0}if(pt=ut(ht.call(this,ct[1].trim(),ft),ft),pt&&ct[0]===at&&!isString$2(pt))return pt;isString$2(pt)||(pt=makeString(pt)),pt||(this.logger.warn(`missed to resolve ${ct[1]} for nesting ${at}`),pt=""),yt&&(pt=mt.reduce((bt,Tt)=>this.format(bt,Tt,dt.lng,{...dt,interpolationkey:ct[1].trim()}),pt.trim())),at=at.replace(ct[0],pt),this.regexp.lastIndex=0}return at}}const parseFormatStr=st=>{let at=st.toLowerCase().trim();const ut={};if(st.indexOf("(")>-1){const dt=st.split("(");at=dt[0].toLowerCase().trim();const ct=dt[1].substring(0,dt[1].length-1);at==="currency"&&ct.indexOf(":")<0?ut.currency||(ut.currency=ct.trim()):at==="relativetime"&&ct.indexOf(":")<0?ut.range||(ut.range=ct.trim()):ct.split(";").forEach(ft=>{if(ft){const[ht,...mt]=ft.split(":"),yt=mt.join(":").trim().replace(/^'+|'+$/g,""),bt=ht.trim();ut[bt]||(ut[bt]=yt),yt==="false"&&(ut[bt]=!1),yt==="true"&&(ut[bt]=!0),isNaN(yt)||(ut[bt]=parseInt(yt,10))}})}return{formatName:at,formatOptions:ut}},createCachedFormatter=st=>{const at={};return(ut,dt,ct)=>{let pt=ct;ct&&ct.interpolationkey&&ct.formatParams&&ct.formatParams[ct.interpolationkey]&&ct[ct.interpolationkey]&&(pt={...pt,[ct.interpolationkey]:void 0});const ft=dt+JSON.stringify(pt);let ht=at[ft];return ht||(ht=st(getCleanedCode(dt),ct),at[ft]=ht),ht(ut)}};class Formatter{constructor(){let at=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=baseLogger.create("formatter"),this.options=at,this.formats={number:createCachedFormatter((ut,dt)=>{const ct=new Intl.NumberFormat(ut,{...dt});return pt=>ct.format(pt)}),currency:createCachedFormatter((ut,dt)=>{const ct=new Intl.NumberFormat(ut,{...dt,style:"currency"});return pt=>ct.format(pt)}),datetime:createCachedFormatter((ut,dt)=>{const ct=new Intl.DateTimeFormat(ut,{...dt});return pt=>ct.format(pt)}),relativetime:createCachedFormatter((ut,dt)=>{const ct=new Intl.RelativeTimeFormat(ut,{...dt});return pt=>ct.format(pt,dt.range||"day")}),list:createCachedFormatter((ut,dt)=>{const ct=new Intl.ListFormat(ut,{...dt});return pt=>ct.format(pt)})},this.init(at)}init(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};this.formatSeparator=ut.interpolation.formatSeparator||","}add(at,ut){this.formats[at.toLowerCase().trim()]=ut}addCached(at,ut){this.formats[at.toLowerCase().trim()]=createCachedFormatter(ut)}format(at,ut,dt){let ct=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const pt=ut.split(this.formatSeparator);if(pt.length>1&&pt[0].indexOf("(")>1&&pt[0].indexOf(")")<0&&pt.find(ht=>ht.indexOf(")")>-1)){const ht=pt.findIndex(mt=>mt.indexOf(")")>-1);pt[0]=[pt[0],...pt.splice(1,ht)].join(this.formatSeparator)}return pt.reduce((ht,mt)=>{const{formatName:yt,formatOptions:bt}=parseFormatStr(mt);if(this.formats[yt]){let Tt=ht;try{const St=ct&&ct.formatParams&&ct.formatParams[ct.interpolationkey]||{},At=St.locale||St.lng||ct.locale||ct.lng||dt;Tt=this.formats[yt](ht,At,{...bt,...ct,...St})}catch(St){this.logger.warn(St)}return Tt}else this.logger.warn(`there was no format function for ${yt}`);return ht},at)}}const removePending=(st,at)=>{st.pending[at]!==void 0&&(delete st.pending[at],st.pendingCount--)};class Connector extends EventEmitter$1{constructor(at,ut,dt){let ct=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=at,this.store=ut,this.services=dt,this.languageUtils=dt.languageUtils,this.options=ct,this.logger=baseLogger.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=ct.maxParallelReads||10,this.readingCalls=0,this.maxRetries=ct.maxRetries>=0?ct.maxRetries:5,this.retryTimeout=ct.retryTimeout>=1?ct.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(dt,ct.backend,ct)}queueLoad(at,ut,dt,ct){const pt={},ft={},ht={},mt={};return at.forEach(yt=>{let bt=!0;ut.forEach(Tt=>{const St=`${yt}|${Tt}`;!dt.reload&&this.store.hasResourceBundle(yt,Tt)?this.state[St]=2:this.state[St]<0||(this.state[St]===1?ft[St]===void 0&&(ft[St]=!0):(this.state[St]=1,bt=!1,ft[St]===void 0&&(ft[St]=!0),pt[St]===void 0&&(pt[St]=!0),mt[Tt]===void 0&&(mt[Tt]=!0)))}),bt||(ht[yt]=!0)}),(Object.keys(pt).length||Object.keys(ft).length)&&this.queue.push({pending:ft,pendingCount:Object.keys(ft).length,loaded:{},errors:[],callback:ct}),{toLoad:Object.keys(pt),pending:Object.keys(ft),toLoadLanguages:Object.keys(ht),toLoadNamespaces:Object.keys(mt)}}loaded(at,ut,dt){const ct=at.split("|"),pt=ct[0],ft=ct[1];ut&&this.emit("failedLoading",pt,ft,ut),!ut&&dt&&this.store.addResourceBundle(pt,ft,dt,void 0,void 0,{skipCopy:!0}),this.state[at]=ut?-1:2,ut&&dt&&(this.state[at]=0);const ht={};this.queue.forEach(mt=>{pushPath(mt.loaded,[pt],ft),removePending(mt,at),ut&&mt.errors.push(ut),mt.pendingCount===0&&!mt.done&&(Object.keys(mt.loaded).forEach(yt=>{ht[yt]||(ht[yt]={});const bt=mt.loaded[yt];bt.length&&bt.forEach(Tt=>{ht[yt][Tt]===void 0&&(ht[yt][Tt]=!0)})}),mt.done=!0,mt.errors.length?mt.callback(mt.errors):mt.callback())}),this.emit("loaded",ht),this.queue=this.queue.filter(mt=>!mt.done)}read(at,ut,dt){let ct=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,pt=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,ft=arguments.length>5?arguments[5]:void 0;if(!at.length)return ft(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:at,ns:ut,fcName:dt,tried:ct,wait:pt,callback:ft});return}this.readingCalls++;const ht=(yt,bt)=>{if(this.readingCalls--,this.waitingReads.length>0){const Tt=this.waitingReads.shift();this.read(Tt.lng,Tt.ns,Tt.fcName,Tt.tried,Tt.wait,Tt.callback)}if(yt&&bt&&ct{this.read.call(this,at,ut,dt,ct+1,pt*2,ft)},pt);return}ft(yt,bt)},mt=this.backend[dt].bind(this.backend);if(mt.length===2){try{const yt=mt(at,ut);yt&&typeof yt.then=="function"?yt.then(bt=>ht(null,bt)).catch(ht):ht(null,yt)}catch(yt){ht(yt)}return}return mt(at,ut,ht)}prepareLoading(at,ut){let dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},ct=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),ct&&ct();isString$2(at)&&(at=this.languageUtils.toResolveHierarchy(at)),isString$2(ut)&&(ut=[ut]);const pt=this.queueLoad(at,ut,dt,ct);if(!pt.toLoad.length)return pt.pending.length||ct(),null;pt.toLoad.forEach(ft=>{this.loadOne(ft)})}load(at,ut,dt){this.prepareLoading(at,ut,{},dt)}reload(at,ut,dt){this.prepareLoading(at,ut,{reload:!0},dt)}loadOne(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const dt=at.split("|"),ct=dt[0],pt=dt[1];this.read(ct,pt,"read",void 0,void 0,(ft,ht)=>{ft&&this.logger.warn(`${ut}loading namespace ${pt} for language ${ct} failed`,ft),!ft&&ht&&this.logger.log(`${ut}loaded namespace ${pt} for language ${ct}`,ht),this.loaded(at,ft,ht)})}saveMissing(at,ut,dt,ct,pt){let ft=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},ht=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(ut)){this.logger.warn(`did not save key "${dt}" as the namespace "${ut}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(dt==null||dt==="")){if(this.backend&&this.backend.create){const mt={...ft,isUpdate:pt},yt=this.backend.create.bind(this.backend);if(yt.length<6)try{let bt;yt.length===5?bt=yt(at,ut,dt,ct,mt):bt=yt(at,ut,dt,ct),bt&&typeof bt.then=="function"?bt.then(Tt=>ht(null,Tt)).catch(ht):ht(null,bt)}catch(bt){ht(bt)}else yt(at,ut,dt,ct,ht,mt)}!at||!at[0]||this.store.addResource(at[0],ut,dt,ct)}}}const get$2=()=>({debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:st=>{let at={};if(typeof st[1]=="object"&&(at=st[1]),isString$2(st[1])&&(at.defaultValue=st[1]),isString$2(st[2])&&(at.tDescription=st[2]),typeof st[2]=="object"||typeof st[3]=="object"){const ut=st[3]||st[2];Object.keys(ut).forEach(dt=>{at[dt]=ut[dt]})}return at},interpolation:{escapeValue:!0,format:st=>st,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}),transformOptions=st=>(isString$2(st.ns)&&(st.ns=[st.ns]),isString$2(st.fallbackLng)&&(st.fallbackLng=[st.fallbackLng]),isString$2(st.fallbackNS)&&(st.fallbackNS=[st.fallbackNS]),st.supportedLngs&&st.supportedLngs.indexOf("cimode")<0&&(st.supportedLngs=st.supportedLngs.concat(["cimode"])),st),noop$3=()=>{},bindMemberFunctions=st=>{Object.getOwnPropertyNames(Object.getPrototypeOf(st)).forEach(ut=>{typeof st[ut]=="function"&&(st[ut]=st[ut].bind(st))})};class I18n extends EventEmitter$1{constructor(){let at=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ut=arguments.length>1?arguments[1]:void 0;if(super(),this.options=transformOptions(at),this.services={},this.logger=baseLogger,this.modules={external:[]},bindMemberFunctions(this),ut&&!this.isInitialized&&!at.isClone){if(!this.options.initImmediate)return this.init(at,ut),this;setTimeout(()=>{this.init(at,ut)},0)}}init(){var at=this;let ut=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},dt=arguments.length>1?arguments[1]:void 0;this.isInitializing=!0,typeof ut=="function"&&(dt=ut,ut={}),!ut.defaultNS&&ut.defaultNS!==!1&&ut.ns&&(isString$2(ut.ns)?ut.defaultNS=ut.ns:ut.ns.indexOf("translation")<0&&(ut.defaultNS=ut.ns[0]));const ct=get$2();this.options={...ct,...this.options,...transformOptions(ut)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...ct.interpolation,...this.options.interpolation}),ut.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=ut.keySeparator),ut.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=ut.nsSeparator);const pt=bt=>bt?typeof bt=="function"?new bt:bt:null;if(!this.options.isClone){this.modules.logger?baseLogger.init(pt(this.modules.logger),this.options):baseLogger.init(null,this.options);let bt;this.modules.formatter?bt=this.modules.formatter:typeof Intl<"u"&&(bt=Formatter);const Tt=new LanguageUtil(this.options);this.store=new ResourceStore(this.options.resources,this.options);const St=this.services;St.logger=baseLogger,St.resourceStore=this.store,St.languageUtils=Tt,St.pluralResolver=new PluralResolver(Tt,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),bt&&(!this.options.interpolation.format||this.options.interpolation.format===ct.interpolation.format)&&(St.formatter=pt(bt),St.formatter.init(St,this.options),this.options.interpolation.format=St.formatter.format.bind(St.formatter)),St.interpolator=new Interpolator(this.options),St.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},St.backendConnector=new Connector(pt(this.modules.backend),St.resourceStore,St,this.options),St.backendConnector.on("*",function(At){for(var vt=arguments.length,Dt=new Array(vt>1?vt-1:0),Et=1;Et1?vt-1:0),Et=1;Et{At.init&&At.init(this)})}if(this.format=this.options.interpolation.format,dt||(dt=noop$3),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const bt=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);bt.length>0&&bt[0]!=="dev"&&(this.options.lng=bt[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(bt=>{this[bt]=function(){return at.store[bt](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(bt=>{this[bt]=function(){return at.store[bt](...arguments),at}});const mt=defer(),yt=()=>{const bt=(Tt,St)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),mt.resolve(St),dt(Tt,St)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return bt(null,this.t.bind(this));this.changeLanguage(this.options.lng,bt)};return this.options.resources||!this.options.initImmediate?yt():setTimeout(yt,0),mt}loadResources(at){let dt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:noop$3;const ct=isString$2(at)?at:this.language;if(typeof at=="function"&&(dt=at),!this.options.resources||this.options.partialBundledLanguages){if(ct&&ct.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return dt();const pt=[],ft=ht=>{if(!ht||ht==="cimode")return;this.services.languageUtils.toResolveHierarchy(ht).forEach(yt=>{yt!=="cimode"&&pt.indexOf(yt)<0&&pt.push(yt)})};ct?ft(ct):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(mt=>ft(mt)),this.options.preload&&this.options.preload.forEach(ht=>ft(ht)),this.services.backendConnector.load(pt,this.options.ns,ht=>{!ht&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),dt(ht)})}else dt(null)}reloadResources(at,ut,dt){const ct=defer();return typeof at=="function"&&(dt=at,at=void 0),typeof ut=="function"&&(dt=ut,ut=void 0),at||(at=this.languages),ut||(ut=this.options.ns),dt||(dt=noop$3),this.services.backendConnector.reload(at,ut,pt=>{ct.resolve(),dt(pt)}),ct}use(at){if(!at)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!at.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return at.type==="backend"&&(this.modules.backend=at),(at.type==="logger"||at.log&&at.warn&&at.error)&&(this.modules.logger=at),at.type==="languageDetector"&&(this.modules.languageDetector=at),at.type==="i18nFormat"&&(this.modules.i18nFormat=at),at.type==="postProcessor"&&postProcessor.addPostProcessor(at),at.type==="formatter"&&(this.modules.formatter=at),at.type==="3rdParty"&&this.modules.external.push(at),this}setResolvedLanguage(at){if(!(!at||!this.languages)&&!(["cimode","dev"].indexOf(at)>-1))for(let ut=0;ut-1)&&this.store.hasLanguageSomeTranslations(dt)){this.resolvedLanguage=dt;break}}}changeLanguage(at,ut){var dt=this;this.isLanguageChangingTo=at;const ct=defer();this.emit("languageChanging",at);const pt=mt=>{this.language=mt,this.languages=this.services.languageUtils.toResolveHierarchy(mt),this.resolvedLanguage=void 0,this.setResolvedLanguage(mt)},ft=(mt,yt)=>{yt?(pt(yt),this.translator.changeLanguage(yt),this.isLanguageChangingTo=void 0,this.emit("languageChanged",yt),this.logger.log("languageChanged",yt)):this.isLanguageChangingTo=void 0,ct.resolve(function(){return dt.t(...arguments)}),ut&&ut(mt,function(){return dt.t(...arguments)})},ht=mt=>{!at&&!mt&&this.services.languageDetector&&(mt=[]);const yt=isString$2(mt)?mt:this.services.languageUtils.getBestMatchFromCodes(mt);yt&&(this.language||pt(yt),this.translator.language||this.translator.changeLanguage(yt),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(yt)),this.loadResources(yt,bt=>{ft(bt,yt)})};return!at&&this.services.languageDetector&&!this.services.languageDetector.async?ht(this.services.languageDetector.detect()):!at&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(ht):this.services.languageDetector.detect(ht):ht(at),ct}getFixedT(at,ut,dt){var ct=this;const pt=function(ft,ht){let mt;if(typeof ht!="object"){for(var yt=arguments.length,bt=new Array(yt>2?yt-2:0),Tt=2;Tt`${mt.keyPrefix}${St}${vt}`):At=mt.keyPrefix?`${mt.keyPrefix}${St}${ft}`:ft,ct.t(At,mt)};return isString$2(at)?pt.lng=at:pt.lngs=at,pt.ns=ut,pt.keyPrefix=dt,pt}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(at){this.options.defaultNS=at}hasLoadedNamespace(at){let ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const dt=ut.lng||this.resolvedLanguage||this.languages[0],ct=this.options?this.options.fallbackLng:!1,pt=this.languages[this.languages.length-1];if(dt.toLowerCase()==="cimode")return!0;const ft=(ht,mt)=>{const yt=this.services.backendConnector.state[`${ht}|${mt}`];return yt===-1||yt===0||yt===2};if(ut.precheck){const ht=ut.precheck(this,ft);if(ht!==void 0)return ht}return!!(this.hasResourceBundle(dt,at)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||ft(dt,at)&&(!ct||ft(pt,at)))}loadNamespaces(at,ut){const dt=defer();return this.options.ns?(isString$2(at)&&(at=[at]),at.forEach(ct=>{this.options.ns.indexOf(ct)<0&&this.options.ns.push(ct)}),this.loadResources(ct=>{dt.resolve(),ut&&ut(ct)}),dt):(ut&&ut(),Promise.resolve())}loadLanguages(at,ut){const dt=defer();isString$2(at)&&(at=[at]);const ct=this.options.preload||[],pt=at.filter(ft=>ct.indexOf(ft)<0&&this.services.languageUtils.isSupportedCode(ft));return pt.length?(this.options.preload=ct.concat(pt),this.loadResources(ft=>{dt.resolve(),ut&&ut(ft)}),dt):(ut&&ut(),Promise.resolve())}dir(at){if(at||(at=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!at)return"rtl";const ut=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],dt=this.services&&this.services.languageUtils||new LanguageUtil(get$2());return ut.indexOf(dt.getLanguagePartFromCode(at))>-1||at.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let at=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ut=arguments.length>1?arguments[1]:void 0;return new I18n(at,ut)}cloneInstance(){let at=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ut=arguments.length>1&&arguments[1]!==void 0?arguments[1]:noop$3;const dt=at.forkResourceStore;dt&&delete at.forkResourceStore;const ct={...this.options,...at,isClone:!0},pt=new I18n(ct);return(at.debug!==void 0||at.prefix!==void 0)&&(pt.logger=pt.logger.clone(at)),["store","services","language"].forEach(ht=>{pt[ht]=this[ht]}),pt.services={...this.services},pt.services.utils={hasLoadedNamespace:pt.hasLoadedNamespace.bind(pt)},dt&&(pt.store=new ResourceStore(this.store.data,ct),pt.services.resourceStore=pt.store),pt.translator=new Translator(pt.services,ct),pt.translator.on("*",function(ht){for(var mt=arguments.length,yt=new Array(mt>1?mt-1:0),bt=1;bt<]+?)[\s/>]|([^\s=]+)=\s?(".*?"|'.*?')/g;function n$2(st){var at={type:"tag",name:"",voidElement:!1,attrs:{},children:[]},ut=st.match(/<\/?([^\s]+?)[/\s>]/);if(ut&&(at.name=ut[1],(e$1[ut[1]]||st.charAt(st.length-2)==="/")&&(at.voidElement=!0),at.name.startsWith("!--"))){var dt=st.indexOf("-->");return{type:"comment",comment:dt!==-1?st.slice(4,dt):""}}for(var ct=new RegExp(t$6),pt=null;(pt=ct.exec(st))!==null;)if(pt[0].trim())if(pt[1]){var ft=pt[1].trim(),ht=[ft,""];ft.indexOf("=")>-1&&(ht=ft.split("=")),at.attrs[ht[0]]=ht[1],ct.lastIndex--}else pt[2]&&(at.attrs[pt[2]]=pt[3].trim().substring(1,pt[3].length-1));return at}var r$2=/<[a-zA-Z0-9\-\!\/](?:"[^"]*"|'[^']*'|[^'">])*>/g,i$6=/^\s*$/,s$9=Object.create(null);function a$1(st,at){switch(at.type){case"text":return st+at.content;case"tag":return st+="<"+at.name+(at.attrs?function(ut){var dt=[];for(var ct in ut)dt.push(ct+'="'+ut[ct]+'"');return dt.length?" "+dt.join(" "):""}(at.attrs):"")+(at.voidElement?"/>":">"),at.voidElement?st:st+at.children.reduce(a$1,"")+"";case"comment":return st+""}}var c$3={parse:function(st,at){at||(at={}),at.components||(at.components=s$9);var ut,dt=[],ct=[],pt=-1,ft=!1;if(st.indexOf("<")!==0){var ht=st.indexOf("<");dt.push({type:"text",content:ht===-1?st:st.substring(0,ht)})}return st.replace(r$2,function(mt,yt){if(ft){if(mt!=="")return;ft=!1}var bt,Tt=mt.charAt(1)!=="/",St=mt.startsWith("`}function getOuterHTML(st,at){return render$1(st,at)}function getInnerHTML(st,at){return hasChildren(st)?st.children.map(ut=>getOuterHTML(ut,at)).join(""):""}function getText(st){return Array.isArray(st)?st.map(getText).join(""):isTag(st)?st.name==="br"?` `:getText(st.children):isCDATA(st)?getText(st.children):isText(st)?st.data:""}function textContent(st){return Array.isArray(st)?st.map(textContent).join(""):hasChildren(st)&&!isComment(st)?textContent(st.children):isText(st)?st.data:""}function innerText(st){return Array.isArray(st)?st.map(innerText).join(""):hasChildren(st)&&(st.type===ElementType$1.Tag||isCDATA(st))?innerText(st.children):isText(st)?st.data:""}function getChildren(st){return hasChildren(st)?st.children:[]}function getParent(st){return st.parent||null}function getSiblings(st){const at=getParent(st);if(at!=null)return getChildren(at);const ut=[st];let{prev:dt,next:ct}=st;for(;dt!=null;)ut.unshift(dt),{prev:dt}=dt;for(;ct!=null;)ut.push(ct),{next:ct}=ct;return ut}function getAttributeValue(st,at){var ut;return(ut=st.attribs)===null||ut===void 0?void 0:ut[at]}function hasAttrib(st,at){return st.attribs!=null&&Object.prototype.hasOwnProperty.call(st.attribs,at)&&st.attribs[at]!=null}function getName(st){return st.name}function nextElementSibling(st){let{next:at}=st;for(;at!==null&&!isTag(at);)({next:at}=at);return at}function prevElementSibling(st){let{prev:at}=st;for(;at!==null&&!isTag(at);)({prev:at}=at);return at}function removeElement(st){if(st.prev&&(st.prev.next=st.next),st.next&&(st.next.prev=st.prev),st.parent){const at=st.parent.children,ut=at.lastIndexOf(st);ut>=0&&at.splice(ut,1)}st.next=null,st.prev=null,st.parent=null}function replaceElement(st,at){const ut=at.prev=st.prev;ut&&(ut.next=at);const dt=at.next=st.next;dt&&(dt.prev=at);const ct=at.parent=st.parent;if(ct){const pt=ct.children;pt[pt.lastIndexOf(st)]=at,st.parent=null}}function appendChild(st,at){if(removeElement(at),at.next=null,at.parent=st,st.children.push(at)>1){const ut=st.children[st.children.length-2];ut.next=at,at.prev=ut}else at.prev=null}function append$1(st,at){removeElement(at);const{parent:ut}=st,dt=st.next;if(at.next=dt,at.prev=st,st.next=at,at.parent=ut,dt){if(dt.prev=at,ut){const ct=ut.children;ct.splice(ct.lastIndexOf(dt),0,at)}}else ut&&ut.children.push(at)}function prependChild(st,at){if(removeElement(at),at.parent=st,at.prev=null,st.children.unshift(at)!==1){const ut=st.children[1];ut.prev=at,at.next=ut}else at.next=null}function prepend$1(st,at){removeElement(at);const{parent:ut}=st;if(ut){const dt=ut.children;dt.splice(dt.indexOf(st),0,at)}st.prev&&(st.prev.next=at),at.parent=ut,at.prev=st.prev,at.next=st,st.prev=at}function filter$2(st,at,ut=!0,dt=1/0){return find$4(st,Array.isArray(at)?at:[at],ut,dt)}function find$4(st,at,ut,dt){const ct=[],pt=[Array.isArray(at)?at:[at]],ft=[0];for(;;){if(ft[0]>=pt[0].length){if(ft.length===1)return ct;pt.shift(),ft.shift();continue}const ht=pt[0][ft[0]++];if(st(ht)&&(ct.push(ht),--dt<=0))return ct;ut&&hasChildren(ht)&&ht.children.length>0&&(ft.unshift(0),pt.unshift(ht.children))}}function findOneChild(st,at){return at.find(st)}function findOne(st,at,ut=!0){const dt=Array.isArray(at)?at:[at];for(let ct=0;ct0){const ft=findOne(st,pt.children,!0);if(ft)return ft}}return null}function existsOne(st,at){return(Array.isArray(at)?at:[at]).some(ut=>isTag(ut)&&st(ut)||hasChildren(ut)&&existsOne(st,ut.children))}function findAll(st,at){const ut=[],dt=[Array.isArray(at)?at:[at]],ct=[0];for(;;){if(ct[0]>=dt[0].length){if(dt.length===1)return ut;dt.shift(),ct.shift();continue}const pt=dt[0][ct[0]++];isTag(pt)&&st(pt)&&ut.push(pt),hasChildren(pt)&&pt.children.length>0&&(ct.unshift(0),dt.unshift(pt.children))}}const Checks={tag_name(st){return typeof st=="function"?at=>isTag(at)&&st(at.name):st==="*"?isTag:at=>isTag(at)&&at.name===st},tag_type(st){return typeof st=="function"?at=>st(at.type):at=>at.type===st},tag_contains(st){return typeof st=="function"?at=>isText(at)&&st(at.data):at=>isText(at)&&at.data===st}};function getAttribCheck(st,at){return typeof at=="function"?ut=>isTag(ut)&&at(ut.attribs[st]):ut=>isTag(ut)&&ut.attribs[st]===at}function combineFuncs(st,at){return ut=>st(ut)||at(ut)}function compileTest(st){const at=Object.keys(st).map(ut=>{const dt=st[ut];return Object.prototype.hasOwnProperty.call(Checks,ut)?Checks[ut](dt):getAttribCheck(ut,dt)});return at.length===0?null:at.reduce(combineFuncs)}function testElement(st,at){const ut=compileTest(st);return ut?ut(at):!0}function getElements$1(st,at,ut,dt=1/0){const ct=compileTest(st);return ct?filter$2(ct,at,ut,dt):[]}function getElementById(st,at,ut=!0){return Array.isArray(at)||(at=[at]),findOne(getAttribCheck("id",st),at,ut)}function getElementsByTagName(st,at,ut=!0,dt=1/0){return filter$2(Checks.tag_name(st),at,ut,dt)}function getElementsByClassName(st,at,ut=!0,dt=1/0){return filter$2(getAttribCheck("class",st),at,ut,dt)}function getElementsByTagType(st,at,ut=!0,dt=1/0){return filter$2(Checks.tag_type(st),at,ut,dt)}function removeSubsets(st){let at=st.length;for(;--at>=0;){const ut=st[at];if(at>0&&st.lastIndexOf(ut,at-1)>=0){st.splice(at,1);continue}for(let dt=ut.parent;dt;dt=dt.parent)if(st.includes(dt)){st.splice(at,1);break}}return st}var DocumentPosition;(function(st){st[st.DISCONNECTED=1]="DISCONNECTED",st[st.PRECEDING=2]="PRECEDING",st[st.FOLLOWING=4]="FOLLOWING",st[st.CONTAINS=8]="CONTAINS",st[st.CONTAINED_BY=16]="CONTAINED_BY"})(DocumentPosition||(DocumentPosition={}));function compareDocumentPosition(st,at){const ut=[],dt=[];if(st===at)return 0;let ct=hasChildren(st)?st:st.parent;for(;ct;)ut.unshift(ct),ct=ct.parent;for(ct=hasChildren(at)?at:at.parent;ct;)dt.unshift(ct),ct=ct.parent;const pt=Math.min(ut.length,dt.length);let ft=0;for(;ftmt.indexOf(bt)?ht===at?DocumentPosition.FOLLOWING|DocumentPosition.CONTAINED_BY:DocumentPosition.FOLLOWING:ht===st?DocumentPosition.PRECEDING|DocumentPosition.CONTAINS:DocumentPosition.PRECEDING}function uniqueSort(st){return st=st.filter((at,ut,dt)=>!dt.includes(at,ut+1)),st.sort((at,ut)=>{const dt=compareDocumentPosition(at,ut);return dt&DocumentPosition.PRECEDING?-1:dt&DocumentPosition.FOLLOWING?1:0}),st}function getFeed(st){const at=getOneElement(isValidFeed,st);return at?at.name==="feed"?getAtomFeed(at):getRssFeed(at):null}function getAtomFeed(st){var at;const ut=st.children,dt={type:"atom",items:getElementsByTagName("entry",ut).map(ft=>{var ht;const{children:mt}=ft,yt={media:getMediaElements(mt)};addConditionally(yt,"id","id",mt),addConditionally(yt,"title","title",mt);const bt=(ht=getOneElement("link",mt))===null||ht===void 0?void 0:ht.attribs.href;bt&&(yt.link=bt);const Tt=fetch$1("summary",mt)||fetch$1("content",mt);Tt&&(yt.description=Tt);const St=fetch$1("updated",mt);return St&&(yt.pubDate=new Date(St)),yt})};addConditionally(dt,"id","id",ut),addConditionally(dt,"title","title",ut);const ct=(at=getOneElement("link",ut))===null||at===void 0?void 0:at.attribs.href;ct&&(dt.link=ct),addConditionally(dt,"description","subtitle",ut);const pt=fetch$1("updated",ut);return pt&&(dt.updated=new Date(pt)),addConditionally(dt,"author","email",ut,!0),dt}function getRssFeed(st){var at,ut;const dt=(ut=(at=getOneElement("channel",st.children))===null||at===void 0?void 0:at.children)!==null&&ut!==void 0?ut:[],ct={type:st.name.substr(0,3),id:"",items:getElementsByTagName("item",st.children).map(ft=>{const{children:ht}=ft,mt={media:getMediaElements(ht)};addConditionally(mt,"id","guid",ht),addConditionally(mt,"title","title",ht),addConditionally(mt,"link","link",ht),addConditionally(mt,"description","description",ht);const yt=fetch$1("pubDate",ht)||fetch$1("dc:date",ht);return yt&&(mt.pubDate=new Date(yt)),mt})};addConditionally(ct,"title","title",dt),addConditionally(ct,"link","link",dt),addConditionally(ct,"description","description",dt);const pt=fetch$1("lastBuildDate",dt);return pt&&(ct.updated=new Date(pt)),addConditionally(ct,"author","managingEditor",dt,!0),ct}const MEDIA_KEYS_STRING=["url","type","lang"],MEDIA_KEYS_INT=["fileSize","bitrate","framerate","samplingrate","channels","duration","height","width"];function getMediaElements(st){return getElementsByTagName("media:content",st).map(at=>{const{attribs:ut}=at,dt={medium:ut.medium,isDefault:!!ut.isDefault};for(const ct of MEDIA_KEYS_STRING)ut[ct]&&(dt[ct]=ut[ct]);for(const ct of MEDIA_KEYS_INT)ut[ct]&&(dt[ct]=parseInt(ut[ct],10));return ut.expression&&(dt.expression=ut.expression),dt})}function getOneElement(st,at){return getElementsByTagName(st,at,!0,1)[0]}function fetch$1(st,at,ut=!1){return textContent(getElementsByTagName(st,at,ut,1)).trim()}function addConditionally(st,at,ut,dt,ct=!1){const pt=fetch$1(ut,dt,ct);pt&&(st[at]=pt)}function isValidFeed(st){return st==="rss"||st==="feed"||st==="rdf:RDF"}const DomUtils=Object.freeze(Object.defineProperty({__proto__:null,get DocumentPosition(){return DocumentPosition},append:append$1,appendChild,compareDocumentPosition,existsOne,filter:filter$2,find:find$4,findAll,findOne,findOneChild,getAttributeValue,getChildren,getElementById,getElements:getElements$1,getElementsByClassName,getElementsByTagName,getElementsByTagType,getFeed,getInnerHTML,getName,getOuterHTML,getParent,getSiblings,getText,hasAttrib,hasChildren,innerText,isCDATA,isComment,isDocument,isTag,isText,nextElementSibling,prepend:prepend$1,prependChild,prevElementSibling,removeElement,removeSubsets,replaceElement,testElement,textContent,uniqueSort},Symbol.toStringTag,{value:"Module"}));function render(st,at,ut){return st?st(at??st._root.children,null,void 0,ut).toString():""}function isOptions(st,at){return typeof st=="object"&&st!=null&&!("length"in st)&&!("type"in st)}function html$3(st,at){const ut=isOptions(st)?(at=st,void 0):st,dt={...defaultOpts$2,...this===null||this===void 0?void 0:this._options,...flatten(at??{})};return render(this,ut,dt)}function xml$1(st){const at={...this._options,xmlMode:!0};return render(this,st,at)}function text$2(st){const at=st||(this?this.root():[]);let ut="";for(let dt=0;dtut.toUpperCase())}function cssCase(st){return st.replace(/[A-Z]/g,"-$&").toLowerCase()}function domEach(st,at){const ut=st.length;for(let dt=0;dtcloneNode(dt,!0)):[cloneNode(st,!0)],ut=new Document$1(at);return at.forEach(dt=>{dt.parent=ut}),at}var CharacterCodes;(function(st){st[st.LowerA=97]="LowerA",st[st.LowerZ=122]="LowerZ",st[st.UpperA=65]="UpperA",st[st.UpperZ=90]="UpperZ",st[st.Exclamation=33]="Exclamation"})(CharacterCodes||(CharacterCodes={}));function isHtml(st){const at=st.indexOf("<");if(at<0||at>st.length-3)return!1;const ut=st.charCodeAt(at+1);return(ut>=CharacterCodes.LowerA&&ut<=CharacterCodes.LowerZ||ut>=CharacterCodes.UpperA&&ut<=CharacterCodes.UpperZ||ut===CharacterCodes.Exclamation)&&st.includes(">",at+2)}const hasOwn$1=Object.prototype.hasOwnProperty,rspace=/\s+/,dataAttrPrefix="data-",primitives$1={null:null,true:!0,false:!1},rboolean=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,rbrace=/^{[^]*}$|^\[[^]*]$/;function getAttr(st,at,ut){var dt;if(!(!st||!isTag(st))){if((dt=st.attribs)!==null&&dt!==void 0||(st.attribs={}),!at)return st.attribs;if(hasOwn$1.call(st.attribs,at))return!ut&&rboolean.test(at)?at:st.attribs[at];if(st.name==="option"&&at==="value")return text$2(st.children);if(st.name==="input"&&(st.attribs.type==="radio"||st.attribs.type==="checkbox")&&at==="value")return"on"}}function setAttr(st,at,ut){ut===null?removeAttribute(st,at):st.attribs[at]=`${ut}`}function attr(st,at){if(typeof st=="object"||at!==void 0){if(typeof at=="function"){if(typeof st!="string")throw new Error("Bad combination of arguments.");return domEach(this,(ut,dt)=>{isTag(ut)&&setAttr(ut,st,at.call(ut,dt,ut.attribs[st]))})}return domEach(this,ut=>{isTag(ut)&&(typeof st=="object"?Object.keys(st).forEach(dt=>{const ct=st[dt];setAttr(ut,dt,ct)}):setAttr(ut,st,at))})}return arguments.length>1?this:getAttr(this[0],st,this.options.xmlMode)}function getProp(st,at,ut){return at in st?st[at]:!ut&&rboolean.test(at)?getAttr(st,at,!1)!==void 0:getAttr(st,at,ut)}function setProp(st,at,ut,dt){at in st?st[at]=ut:setAttr(st,at,!dt&&rboolean.test(at)?ut?"":null:`${ut}`)}function prop(st,at){var ut;if(typeof st=="string"&&at===void 0){const dt=this[0];if(!dt||!isTag(dt))return;switch(st){case"style":{const ct=this.css(),pt=Object.keys(ct);return pt.forEach((ft,ht)=>{ct[ht]=ft}),ct.length=pt.length,ct}case"tagName":case"nodeName":return dt.name.toUpperCase();case"href":case"src":{const ct=(ut=dt.attribs)===null||ut===void 0?void 0:ut[st];return typeof URL<"u"&&(st==="href"&&(dt.tagName==="a"||dt.name==="link")||st==="src"&&(dt.tagName==="img"||dt.tagName==="iframe"||dt.tagName==="audio"||dt.tagName==="video"||dt.tagName==="source"))&&ct!==void 0&&this.options.baseURI?new URL(ct,this.options.baseURI).href:ct}case"innerText":return innerText(dt);case"textContent":return textContent(dt);case"outerHTML":return this.clone().wrap("").parent().html();case"innerHTML":return this.html();default:return getProp(dt,st,this.options.xmlMode)}}if(typeof st=="object"||at!==void 0){if(typeof at=="function"){if(typeof st=="object")throw new Error("Bad combination of arguments.");return domEach(this,(dt,ct)=>{isTag(dt)&&setProp(dt,st,at.call(dt,ct,getProp(dt,st,this.options.xmlMode)),this.options.xmlMode)})}return domEach(this,dt=>{isTag(dt)&&(typeof st=="object"?Object.keys(st).forEach(ct=>{const pt=st[ct];setProp(dt,ct,pt,this.options.xmlMode)}):setProp(dt,st,at,this.options.xmlMode))})}}function setData(st,at,ut){var dt;const ct=st;(dt=ct.data)!==null&&dt!==void 0||(ct.data={}),typeof at=="object"?Object.assign(ct.data,at):typeof at=="string"&&ut!==void 0&&(ct.data[at]=ut)}function readData(st,at){let ut,dt,ct;at==null?(ut=Object.keys(st.attribs).filter(pt=>pt.startsWith(dataAttrPrefix)),dt=ut.map(pt=>camelCase(pt.slice(dataAttrPrefix.length)))):(ut=[dataAttrPrefix+cssCase(at)],dt=[at]);for(let pt=0;pt{isTag(pt)&&(typeof st=="object"?setData(pt,st):setData(pt,st,at))}),this):hasOwn$1.call(ct.data,st)?ct.data[st]:readData(ct,st):readData(ct)}function val(st){const at=arguments.length===0,ut=this[0];if(!ut||!isTag(ut))return at?void 0:this;switch(ut.name){case"textarea":return this.text(st);case"select":{const dt=this.find("option:selected");if(!at){if(this.attr("multiple")==null&&typeof st=="object")return this;this.find("option").removeAttr("selected");const ct=typeof st!="object"?[st]:st;for(let pt=0;pttext$2(ct.children)):dt.attr("value")}case"input":case"option":return at?this.attr("value"):this.attr("value",st)}}function removeAttribute(st,at){!st.attribs||!hasOwn$1.call(st.attribs,at)||delete st.attribs[at]}function splitNames(st){return st?st.trim().split(rspace):[]}function removeAttr(st){const at=splitNames(st);for(let ut=0;ut{isTag(dt)&&removeAttribute(dt,at[ut])});return this}function hasClass(st){return this.toArray().some(at=>{const ut=isTag(at)&&at.attribs.class;let dt=-1;if(ut&&st.length)for(;(dt=ut.indexOf(st,dt+1))>-1;){const ct=dt+st.length;if((dt===0||rspace.test(ut[dt-1]))&&(ct===ut.length||rspace.test(ut[ct])))return!0}return!1})}function addClass(st){if(typeof st=="function")return domEach(this,(dt,ct)=>{if(isTag(dt)){const pt=dt.attribs.class||"";addClass.call([dt],st.call(dt,ct,pt))}});if(!st||typeof st!="string")return this;const at=st.split(rspace),ut=this.length;for(let dt=0;dt{isTag(ct)&&removeClass.call([ct],st.call(ct,pt,ct.attribs.class||""))});const at=splitNames(st),ut=at.length,dt=arguments.length===0;return domEach(this,ct=>{if(isTag(ct))if(dt)ct.attribs.class="";else{const pt=splitNames(ct.attribs.class);let ft=!1;for(let ht=0;ht=0&&(pt.splice(mt,1),ft=!0,ht--)}ft&&(ct.attribs.class=pt.join(" "))}})}function toggleClass(st,at){if(typeof st=="function")return domEach(this,(ft,ht)=>{isTag(ft)&&toggleClass.call([ft],st.call(ft,ht,ft.attribs.class||"",at),at)});if(!st||typeof st!="string")return this;const ut=st.split(rspace),dt=ut.length,ct=typeof at=="boolean"?at?1:-1:0,pt=this.length;for(let ft=0;ft=0&&bt<0?mt.push(ut[yt]):ct<=0&&bt>=0&&mt.splice(bt,1)}ht.attribs.class=mt.join(" ")}return this}const Attributes=Object.freeze(Object.defineProperty({__proto__:null,addClass,attr,data,hasClass,prop,removeAttr,removeClass,toggleClass,val},Symbol.toStringTag,{value:"Module"}));var SelectorType;(function(st){st.Attribute="attribute",st.Pseudo="pseudo",st.PseudoElement="pseudo-element",st.Tag="tag",st.Universal="universal",st.Adjacent="adjacent",st.Child="child",st.Descendant="descendant",st.Parent="parent",st.Sibling="sibling",st.ColumnCombinator="column-combinator"})(SelectorType||(SelectorType={}));var AttributeAction;(function(st){st.Any="any",st.Element="element",st.End="end",st.Equals="equals",st.Exists="exists",st.Hyphen="hyphen",st.Not="not",st.Start="start"})(AttributeAction||(AttributeAction={}));const reName=/^[^\\#]?(?:\\(?:[\da-f]{1,6}\s?|.)|[\w\-\u00b0-\uFFFF])+/,reEscape=/\\([\da-f]{1,6}\s?|(\s)|.)/gi,actionTypes=new Map([[126,AttributeAction.Element],[94,AttributeAction.Start],[36,AttributeAction.End],[42,AttributeAction.Any],[33,AttributeAction.Not],[124,AttributeAction.Hyphen]]),unpackPseudos=new Set(["has","not","matches","is","where","host","host-context"]);function isTraversal$1(st){switch(st.type){case SelectorType.Adjacent:case SelectorType.Child:case SelectorType.Descendant:case SelectorType.Parent:case SelectorType.Sibling:case SelectorType.ColumnCombinator:return!0;default:return!1}}const stripQuotesFromPseudos=new Set(["contains","icontains"]);function funescape(st,at,ut){const dt=parseInt(at,16)-65536;return dt!==dt||ut?at:dt<0?String.fromCharCode(dt+65536):String.fromCharCode(dt>>10|55296,dt&1023|56320)}function unescapeCSS(st){return st.replace(reEscape,funescape)}function isQuote(st){return st===39||st===34}function isWhitespace$2(st){return st===32||st===9||st===10||st===12||st===13}function parse$n(st){const at=[],ut=parseSelector(at,`${st}`,0);if(ut0&&ut0&&isTraversal$1(dt[dt.length-1]))throw new Error("Did not expect successive traversals.")}function yt(St){if(dt.length>0&&dt[dt.length-1].type===SelectorType.Descendant){dt[dt.length-1].type=St;return}mt(),dt.push({type:St})}function bt(St,At){dt.push({type:SelectorType.Attribute,name:St,action:At,value:ct(1),namespace:null,ignoreCase:"quirks"})}function Tt(){if(dt.length&&dt[dt.length-1].type===SelectorType.Descendant&&dt.pop(),dt.length===0)throw new Error("Empty sub-selector");st.push(dt)}if(pt(0),at.length===ut)return ut;e:for(;ut=0&&dt>=1)):st.type===SelectorType.Pseudo&&(st.data?st.name==="has"||st.name==="contains"?dt=0:Array.isArray(st.data)?(dt=Math.min(...st.data.map(ct=>Math.min(...ct.map(getProcedure)))),dt<0&&(dt=0)):dt=2:dt=3),dt}const reChars=/[-[\]{}()*+?.,\\^$|#\s]/g;function escapeRegex(st){return st.replace(reChars,"\\$&")}const caseInsensitiveAttributes=new Set(["accept","accept-charset","align","alink","axis","bgcolor","charset","checked","clear","codetype","color","compact","declare","defer","dir","direction","disabled","enctype","face","frame","hreflang","http-equiv","lang","language","link","media","method","multiple","nohref","noresize","noshade","nowrap","readonly","rel","rev","rules","scope","scrolling","selected","shape","target","text","type","valign","valuetype","vlink"]);function shouldIgnoreCase(st,at){return typeof st.ignoreCase=="boolean"?st.ignoreCase:st.ignoreCase==="quirks"?!!at.quirksMode:!at.xmlMode&&caseInsensitiveAttributes.has(st.name)}const attributeRules={equals(st,at,ut){const{adapter:dt}=ut,{name:ct}=at;let{value:pt}=at;return shouldIgnoreCase(at,ut)?(pt=pt.toLowerCase(),ft=>{const ht=dt.getAttributeValue(ft,ct);return ht!=null&&ht.length===pt.length&&ht.toLowerCase()===pt&&st(ft)}):ft=>dt.getAttributeValue(ft,ct)===pt&&st(ft)},hyphen(st,at,ut){const{adapter:dt}=ut,{name:ct}=at;let{value:pt}=at;const ft=pt.length;return shouldIgnoreCase(at,ut)?(pt=pt.toLowerCase(),function(mt){const yt=dt.getAttributeValue(mt,ct);return yt!=null&&(yt.length===ft||yt.charAt(ft)==="-")&&yt.substr(0,ft).toLowerCase()===pt&&st(mt)}):function(mt){const yt=dt.getAttributeValue(mt,ct);return yt!=null&&(yt.length===ft||yt.charAt(ft)==="-")&&yt.substr(0,ft)===pt&&st(mt)}},element(st,at,ut){const{adapter:dt}=ut,{name:ct,value:pt}=at;if(/\s/.test(pt))return boolbase$1.falseFunc;const ft=new RegExp(`(?:^|\\s)${escapeRegex(pt)}(?:$|\\s)`,shouldIgnoreCase(at,ut)?"i":"");return function(mt){const yt=dt.getAttributeValue(mt,ct);return yt!=null&&yt.length>=pt.length&&ft.test(yt)&&st(mt)}},exists(st,{name:at},{adapter:ut}){return dt=>ut.hasAttrib(dt,at)&&st(dt)},start(st,at,ut){const{adapter:dt}=ut,{name:ct}=at;let{value:pt}=at;const ft=pt.length;return ft===0?boolbase$1.falseFunc:shouldIgnoreCase(at,ut)?(pt=pt.toLowerCase(),ht=>{const mt=dt.getAttributeValue(ht,ct);return mt!=null&&mt.length>=ft&&mt.substr(0,ft).toLowerCase()===pt&&st(ht)}):ht=>{var mt;return!!(!((mt=dt.getAttributeValue(ht,ct))===null||mt===void 0)&&mt.startsWith(pt))&&st(ht)}},end(st,at,ut){const{adapter:dt}=ut,{name:ct}=at;let{value:pt}=at;const ft=-pt.length;return ft===0?boolbase$1.falseFunc:shouldIgnoreCase(at,ut)?(pt=pt.toLowerCase(),ht=>{var mt;return((mt=dt.getAttributeValue(ht,ct))===null||mt===void 0?void 0:mt.substr(ft).toLowerCase())===pt&&st(ht)}):ht=>{var mt;return!!(!((mt=dt.getAttributeValue(ht,ct))===null||mt===void 0)&&mt.endsWith(pt))&&st(ht)}},any(st,at,ut){const{adapter:dt}=ut,{name:ct,value:pt}=at;if(pt==="")return boolbase$1.falseFunc;if(shouldIgnoreCase(at,ut)){const ft=new RegExp(escapeRegex(pt),"i");return function(mt){const yt=dt.getAttributeValue(mt,ct);return yt!=null&&yt.length>=pt.length&&ft.test(yt)&&st(mt)}}return ft=>{var ht;return!!(!((ht=dt.getAttributeValue(ft,ct))===null||ht===void 0)&&ht.includes(pt))&&st(ft)}},not(st,at,ut){const{adapter:dt}=ut,{name:ct}=at;let{value:pt}=at;return pt===""?ft=>!!dt.getAttributeValue(ft,ct)&&st(ft):shouldIgnoreCase(at,ut)?(pt=pt.toLowerCase(),ft=>{const ht=dt.getAttributeValue(ft,ct);return(ht==null||ht.length!==pt.length||ht.toLowerCase()!==pt)&&st(ft)}):ft=>dt.getAttributeValue(ft,ct)!==pt&&st(ft)}},whitespace=new Set([9,10,12,13,32]),ZERO=48,NINE=57;function parse$m(st){if(st=st.trim().toLowerCase(),st==="even")return[2,0];if(st==="odd")return[2,1];let at=0,ut=0,dt=pt(),ct=ft();if(at=ZERO&&st.charCodeAt(at)<=NINE;)yt=yt*10+(st.charCodeAt(at)-ZERO),at++;return at===mt?null:yt}function ht(){for(;atpt<=ut;if(at===0)return pt=>pt===ut;if(at===1)return ut<0?boolbase$1.trueFunc:pt=>pt>=ut;const dt=Math.abs(at),ct=(ut%dt+dt)%dt;return at>1?pt=>pt>=ut&&pt%dt===ct:pt=>pt<=ut&&pt%dt===ct}function nthCheck(st){return compile(parse$m(st))}function getChildFunc(st,at){return ut=>{const dt=at.getParent(ut);return dt!=null&&at.isTag(dt)&&st(ut)}}const filters={contains(st,at,{adapter:ut}){return function(ct){return st(ct)&&ut.getText(ct).includes(at)}},icontains(st,at,{adapter:ut}){const dt=at.toLowerCase();return function(pt){return st(pt)&&ut.getText(pt).toLowerCase().includes(dt)}},"nth-child"(st,at,{adapter:ut,equals:dt}){const ct=nthCheck(at);return ct===boolbase$1.falseFunc?boolbase$1.falseFunc:ct===boolbase$1.trueFunc?getChildFunc(st,ut):function(ft){const ht=ut.getSiblings(ft);let mt=0;for(let yt=0;yt=0&&!dt(ft,ht[yt]);yt--)ut.isTag(ht[yt])&&mt++;return ct(mt)&&st(ft)}},"nth-of-type"(st,at,{adapter:ut,equals:dt}){const ct=nthCheck(at);return ct===boolbase$1.falseFunc?boolbase$1.falseFunc:ct===boolbase$1.trueFunc?getChildFunc(st,ut):function(ft){const ht=ut.getSiblings(ft);let mt=0;for(let yt=0;yt=0;yt--){const bt=ht[yt];if(dt(ft,bt))break;ut.isTag(bt)&&ut.getName(bt)===ut.getName(ft)&&mt++}return ct(mt)&&st(ft)}},root(st,at,{adapter:ut}){return dt=>{const ct=ut.getParent(dt);return(ct==null||!ut.isTag(ct))&&st(dt)}},scope(st,at,ut,dt){const{equals:ct}=ut;return!dt||dt.length===0?filters.root(st,at,ut):dt.length===1?pt=>ct(dt[0],pt)&&st(pt):pt=>dt.includes(pt)&&st(pt)},hover:dynamicStatePseudo("isHovered"),visited:dynamicStatePseudo("isVisited"),active:dynamicStatePseudo("isActive")};function dynamicStatePseudo(st){return function(ut,dt,{adapter:ct}){const pt=ct[st];return typeof pt!="function"?boolbase$1.falseFunc:function(ht){return pt(ht)&&ut(ht)}}}const pseudos={empty(st,{adapter:at}){return!at.getChildren(st).some(ut=>at.isTag(ut)||at.getText(ut)!=="")},"first-child"(st,{adapter:at,equals:ut}){if(at.prevElementSibling)return at.prevElementSibling(st)==null;const dt=at.getSiblings(st).find(ct=>at.isTag(ct));return dt!=null&&ut(st,dt)},"last-child"(st,{adapter:at,equals:ut}){const dt=at.getSiblings(st);for(let ct=dt.length-1;ct>=0;ct--){if(ut(st,dt[ct]))return!0;if(at.isTag(dt[ct]))break}return!1},"first-of-type"(st,{adapter:at,equals:ut}){const dt=at.getSiblings(st),ct=at.getName(st);for(let pt=0;pt=0;pt--){const ft=dt[pt];if(ut(st,ft))return!0;if(at.isTag(ft)&&at.getName(ft)===ct)break}return!1},"only-of-type"(st,{adapter:at,equals:ut}){const dt=at.getName(st);return at.getSiblings(st).every(ct=>ut(st,ct)||!at.isTag(ct)||at.getName(ct)!==dt)},"only-child"(st,{adapter:at,equals:ut}){return at.getSiblings(st).every(dt=>ut(st,dt)||!at.isTag(dt))}};function verifyPseudoArgs(st,at,ut,dt){if(ut===null){if(st.length>dt)throw new Error(`Pseudo-class :${at} requires an argument`)}else if(st.length===dt)throw new Error(`Pseudo-class :${at} doesn't have any arguments`)}const aliases={"any-link":":is(a, area, link)[href]",link:":any-link:not(:visited)",disabled:`:is( :is(button, input, select, textarea, optgroup, option)[disabled], optgroup[disabled] > option, fieldset[disabled]:not(fieldset[disabled] legend:first-of-type *) )`,enabled:":not(:disabled)",checked:":is(:is(input[type=radio], input[type=checkbox])[checked], option:selected)",required:":is(input, select, textarea)[required]",optional:":is(input, select, textarea):not([required])",selected:"option:is([selected], select:not([multiple]):not(:has(> option[selected])) > :first-of-type)",checkbox:"[type=checkbox]",file:"[type=file]",password:"[type=password]",radio:"[type=radio]",reset:"[type=reset]",image:"[type=image]",submit:"[type=submit]",parent:":not(:empty)",header:":is(h1, h2, h3, h4, h5, h6)",button:":is(button, input[type=button])",input:":is(input, textarea, select, button)",text:"input:is(:not([type!='']), [type=text])"},PLACEHOLDER_ELEMENT={};function ensureIsTag(st,at){return st===boolbase$1.falseFunc?boolbase$1.falseFunc:ut=>at.isTag(ut)&&st(ut)}function getNextSiblings(st,at){const ut=at.getSiblings(st);if(ut.length<=1)return[];const dt=ut.indexOf(st);return dt<0||dt===ut.length-1?[]:ut.slice(dt+1).filter(at.isTag)}function copyOptions(st){return{xmlMode:!!st.xmlMode,lowerCaseAttributeNames:!!st.lowerCaseAttributeNames,lowerCaseTags:!!st.lowerCaseTags,quirksMode:!!st.quirksMode,cacheResults:!!st.cacheResults,pseudos:st.pseudos,adapter:st.adapter,equals:st.equals}}const is$3=(st,at,ut,dt,ct)=>{const pt=ct(at,copyOptions(ut),dt);return pt===boolbase$1.trueFunc?st:pt===boolbase$1.falseFunc?boolbase$1.falseFunc:ft=>pt(ft)&&st(ft)},subselects={is:is$3,matches:is$3,where:is$3,not(st,at,ut,dt,ct){const pt=ct(at,copyOptions(ut),dt);return pt===boolbase$1.falseFunc?st:pt===boolbase$1.trueFunc?boolbase$1.falseFunc:ft=>!pt(ft)&&st(ft)},has(st,at,ut,dt,ct){const{adapter:pt}=ut,ft=copyOptions(ut);ft.relativeSelector=!0;const ht=at.some(bt=>bt.some(isTraversal))?[PLACEHOLDER_ELEMENT]:void 0,mt=ct(at,ft,ht);if(mt===boolbase$1.falseFunc)return boolbase$1.falseFunc;const yt=ensureIsTag(mt,pt);if(ht&&mt!==boolbase$1.trueFunc){const{shouldTestNextSiblings:bt=!1}=mt;return Tt=>{if(!st(Tt))return!1;ht[0]=Tt;const St=pt.getChildren(Tt),At=bt?[...St,...getNextSiblings(Tt,pt)]:St;return pt.existsOne(yt,At)}}return bt=>st(bt)&&pt.existsOne(yt,pt.getChildren(bt))}};function compilePseudoSelector(st,at,ut,dt,ct){var pt;const{name:ft,data:ht}=at;if(Array.isArray(ht)){if(!(ft in subselects))throw new Error(`Unknown pseudo-class :${ft}(${ht})`);return subselects[ft](st,ht,ut,dt,ct)}const mt=(pt=ut.pseudos)===null||pt===void 0?void 0:pt[ft],yt=typeof mt=="string"?mt:aliases[ft];if(typeof yt=="string"){if(ht!=null)throw new Error(`Pseudo ${ft} doesn't have any arguments`);const bt=parse$n(yt);return subselects.is(st,bt,ut,dt,ct)}if(typeof mt=="function")return verifyPseudoArgs(mt,ft,ht,1),bt=>mt(bt,ht)&&st(bt);if(ft in filters)return filters[ft](st,ht,ut,dt);if(ft in pseudos){const bt=pseudos[ft];return verifyPseudoArgs(bt,ft,ht,2),Tt=>bt(Tt,ut,ht)&&st(Tt)}throw new Error(`Unknown pseudo-class :${ft}`)}function getElementParent(st,at){const ut=at.getParent(st);return ut&&at.isTag(ut)?ut:null}function compileGeneralSelector(st,at,ut,dt,ct){const{adapter:pt,equals:ft}=ut;switch(at.type){case SelectorType.PseudoElement:throw new Error("Pseudo-elements are not supported by css-select");case SelectorType.ColumnCombinator:throw new Error("Column combinators are not yet supported by css-select");case SelectorType.Attribute:{if(at.namespace!=null)throw new Error("Namespaced attributes are not yet supported by css-select");return(!ut.xmlMode||ut.lowerCaseAttributeNames)&&(at.name=at.name.toLowerCase()),attributeRules[at.action](st,at,ut)}case SelectorType.Pseudo:return compilePseudoSelector(st,at,ut,dt,ct);case SelectorType.Tag:{if(at.namespace!=null)throw new Error("Namespaced tag names are not yet supported by css-select");let{name:ht}=at;return(!ut.xmlMode||ut.lowerCaseTags)&&(ht=ht.toLowerCase()),function(yt){return pt.getName(yt)===ht&&st(yt)}}case SelectorType.Descendant:{if(ut.cacheResults===!1||typeof WeakSet>"u")return function(yt){let bt=yt;for(;bt=getElementParent(bt,pt);)if(st(bt))return!0;return!1};const ht=new WeakSet;return function(yt){let bt=yt;for(;bt=getElementParent(bt,pt);)if(!ht.has(bt)){if(pt.isTag(bt)&&st(bt))return!0;ht.add(bt)}return!1}}case"_flexibleDescendant":return function(mt){let yt=mt;do if(st(yt))return!0;while(yt=getElementParent(yt,pt));return!1};case SelectorType.Parent:return function(mt){return pt.getChildren(mt).some(yt=>pt.isTag(yt)&&st(yt))};case SelectorType.Child:return function(mt){const yt=pt.getParent(mt);return yt!=null&&pt.isTag(yt)&&st(yt)};case SelectorType.Sibling:return function(mt){const yt=pt.getSiblings(mt);for(let bt=0;btat.some(includesScopePseudo)))}const DESCENDANT_TOKEN={type:SelectorType.Descendant},FLEXIBLE_DESCENDANT_TOKEN={type:"_flexibleDescendant"},SCOPE_TOKEN={type:SelectorType.Pseudo,name:"scope",data:null};function absolutize(st,{adapter:at},ut){const dt=!!(ut!=null&&ut.every(ct=>{const pt=at.isTag(ct)&&at.getParent(ct);return ct===PLACEHOLDER_ELEMENT||pt&&at.isTag(pt)}));for(const ct of st){if(!(ct.length>0&&isTraversal(ct[0])&&ct[0].type!==SelectorType.Descendant))if(dt&&!ct.some(includesScopePseudo))ct.unshift(DESCENDANT_TOKEN);else continue;ct.unshift(SCOPE_TOKEN)}}function compileToken(st,at,ut){var dt;st.forEach(sortByProcedure),ut=(dt=at.context)!==null&&dt!==void 0?dt:ut;const ct=Array.isArray(ut),pt=ut&&(Array.isArray(ut)?ut:[ut]);if(at.relativeSelector!==!1)absolutize(st,at,pt);else if(st.some(mt=>mt.length>0&&isTraversal(mt[0])))throw new Error("Relative selectors are not allowed when the `relativeSelector` option is disabled");let ft=!1;const ht=st.map(mt=>{if(mt.length>=2){const[yt,bt]=mt;yt.type!==SelectorType.Pseudo||yt.name!=="scope"||(ct&&bt.type===SelectorType.Descendant?mt[1]=FLEXIBLE_DESCENDANT_TOKEN:(bt.type===SelectorType.Adjacent||bt.type===SelectorType.Sibling)&&(ft=!0))}return compileRules(mt,at,pt)}).reduce(reduceRules,boolbase$1.falseFunc);return ht.shouldTestNextSiblings=ft,ht}function compileRules(st,at,ut){var dt;return st.reduce((ct,pt)=>ct===boolbase$1.falseFunc?boolbase$1.falseFunc:compileGeneralSelector(ct,pt,at,ut,compileToken),(dt=at.rootFunc)!==null&&dt!==void 0?dt:boolbase$1.trueFunc)}function reduceRules(st,at){return at===boolbase$1.falseFunc||st===boolbase$1.trueFunc?st:st===boolbase$1.falseFunc||at===boolbase$1.trueFunc?at:function(dt){return st(dt)||at(dt)}}const defaultEquals=(st,at)=>st===at,defaultOptions={adapter:DomUtils,equals:defaultEquals};function convertOptionFormats(st){var at,ut,dt,ct;const pt=st??defaultOptions;return(at=pt.adapter)!==null&&at!==void 0||(pt.adapter=DomUtils),(ut=pt.equals)!==null&&ut!==void 0||(pt.equals=(ct=(dt=pt.adapter)===null||dt===void 0?void 0:dt.equals)!==null&&ct!==void 0?ct:defaultEquals),pt}function wrapCompile(st){return function(ut,dt,ct){const pt=convertOptionFormats(dt);return st(ut,pt,ct)}}const _compileToken=wrapCompile(compileToken);function prepareContext(st,at,ut=!1){return ut&&(st=appendNextSiblings(st,at)),Array.isArray(st)?at.removeSubsets(st):at.getChildren(st)}function appendNextSiblings(st,at){const ut=Array.isArray(st)?st.slice(0):[st],dt=ut.length;for(let ct=0;ctat.some(isFilter)):!1}function getLimit(st,at,ut){const dt=at!=null?parseInt(at,10):NaN;switch(st){case"first":return 1;case"nth":case"eq":return isFinite(dt)?dt>=0?dt+1:1/0:0;case"lt":return isFinite(dt)?dt>=0?Math.min(dt,ut):1/0:0;case"gt":return isFinite(dt)?1/0:0;case"odd":return 2*ut;case"even":return 2*ut-1;case"last":case"not":return 1/0}}function getDocumentRoot(st){for(;st.parent;)st=st.parent;return st}function groupSelectors(st){const at=[],ut=[];for(const dt of st)dt.some(isFilter)?at.push(dt):ut.push(dt);return[ut,at]}const UNIVERSAL_SELECTOR={type:SelectorType.Universal,namespace:null},SCOPE_PSEUDO={type:SelectorType.Pseudo,name:"scope",data:null};function is$2(st,at,ut={}){return some([st],at,ut)}function some(st,at,ut={}){if(typeof at=="function")return st.some(at);const[dt,ct]=groupSelectors(parse$n(at));return dt.length>0&&st.some(_compileToken(dt,ut))||ct.some(pt=>filterBySelector(pt,st,ut).length>0)}function filterByPosition(st,at,ut,dt){const ct=typeof ut=="string"?parseInt(ut,10):NaN;switch(st){case"first":case"lt":return at;case"last":return at.length>0?[at[at.length-1]]:at;case"nth":case"eq":return isFinite(ct)&&Math.abs(ct)ft%2===0);case"odd":return at.filter((pt,ft)=>ft%2===1);case"not":{const pt=new Set(filterParsed(ut,at,dt));return at.filter(ft=>!pt.has(ft))}}}function filter$1(st,at,ut={}){return filterParsed(parse$n(st),at,ut)}function filterParsed(st,at,ut){if(at.length===0)return[];const[dt,ct]=groupSelectors(st);let pt;if(dt.length){const ft=filterElements(at,dt,ut);if(ct.length===0)return ft;ft.length&&(pt=new Set(ft))}for(let ft=0;ftisTag(bt)&&!pt.has(bt)):at).length===0)break;const yt=filterBySelector(ht,at,ut);if(yt.length)if(pt)yt.forEach(bt=>pt.add(bt));else{if(ft===ct.length-1)return yt;pt=new Set(yt)}}return typeof pt<"u"?pt.size===at.length?at:at.filter(ft=>pt.has(ft)):[]}function filterBySelector(st,at,ut){var dt;if(st.some(isTraversal$1)){const ct=(dt=ut.root)!==null&&dt!==void 0?dt:getDocumentRoot(at[0]),pt={...ut,context:at,relativeSelector:!1};return st.push(SCOPE_PSEUDO),findFilterElements(ct,st,pt,!0,at.length)}return findFilterElements(at,st,ut,!1,at.length)}function select(st,at,ut={},dt=1/0){if(typeof st=="function")return find$3(at,st);const[ct,pt]=groupSelectors(parse$n(st)),ft=pt.map(ht=>findFilterElements(at,ht,ut,!0,dt));return ct.length&&ft.push(findElements(at,ct,ut,dt)),ft.length===0?[]:ft.length===1?ft[0]:uniqueSort(ft.reduce((ht,mt)=>[...ht,...mt]))}function findFilterElements(st,at,ut,dt,ct){const pt=at.findIndex(isFilter),ft=at.slice(0,pt),ht=at[pt],mt=at.length-1===pt?ct:1/0,yt=getLimit(ht.name,ht.data,mt);if(yt===0)return[];const Tt=(ft.length===0&&!Array.isArray(st)?getChildren(st).filter(isTag):ft.length===0?(Array.isArray(st)?st:[st]).filter(isTag):dt||ft.some(isTraversal$1)?findElements(st,[ft],ut,yt):filterElements(st,[ft],ut)).slice(0,yt);let St=filterByPosition(ht.name,Tt,ht.data,ut);if(St.length===0||at.length===pt+1)return St;const At=at.slice(pt+1),vt=At.some(isTraversal$1);if(vt){if(isTraversal$1(At[0])){const{type:Dt}=At[0];(Dt===SelectorType.Sibling||Dt===SelectorType.Adjacent)&&(St=prepareContext(St,DomUtils,!0)),At.unshift(UNIVERSAL_SELECTOR)}ut={...ut,relativeSelector:!1,rootFunc:Dt=>St.includes(Dt)}}else ut.rootFunc&&ut.rootFunc!==boolbase.trueFunc&&(ut={...ut,rootFunc:boolbase.trueFunc});return At.some(isFilter)?findFilterElements(St,At,ut,!1,ct):vt?findElements(St,[At],ut,ct):filterElements(St,[At],ut)}function findElements(st,at,ut,dt){const ct=_compileToken(at,ut,st);return find$3(st,ct,dt)}function find$3(st,at,ut=1/0){const dt=prepareContext(st,DomUtils,at.shouldTestNextSiblings);return find$4(ct=>isTag(ct)&&at(ct),dt,!0,ut)}function filterElements(st,at,ut){const dt=(Array.isArray(st)?st:[st]).filter(isTag);if(dt.length===0)return dt;const ct=_compileToken(at,ut);return ct===boolbase.trueFunc?dt:dt.filter(ct)}const reSiblingSelector=/^\s*[~+]/;function find$2(st){var at;if(!st)return this._make([]);const ut=this.toArray();if(typeof st!="string"){const pt=isCheerio(st)?st.toArray():[st];return this._make(pt.filter(ft=>ut.some(ht=>contains(ht,ft))))}const dt=reSiblingSelector.test(st)?ut:this.children().toArray(),ct={context:ut,root:(at=this._root)===null||at===void 0?void 0:at[0],xmlMode:this.options.xmlMode,lowerCaseTags:this.options.lowerCaseTags,lowerCaseAttributeNames:this.options.lowerCaseAttributeNames,pseudos:this.options.pseudos,quirksMode:this.options.quirksMode};return this._make(select(st,dt,ct))}function _getMatcher(st){return function(at,...ut){return function(dt){var ct;let pt=st(at,this);return dt&&(pt=filterArray(pt,dt,this.options.xmlMode,(ct=this._root)===null||ct===void 0?void 0:ct[0])),this._make(this.length>1&&pt.length>1?ut.reduce((ft,ht)=>ht(ft),pt):pt)}}}const _matcher=_getMatcher((st,at)=>{const ut=[];for(let dt=0;dt{const ut=[];for(let dt=0;dt{const ft=[];return domEach(pt,ht=>{for(let mt;(mt=ct(ht))&&!(ut!=null&&ut(mt,ft.length));ht=mt)ft.push(mt)}),ft})(st,...at);return function(ct,pt){ut=typeof ct=="string"?ht=>is$2(ht,ct,this.options):ct?getFilterFn(ct):null;const ft=dt.call(this,pt);return ut=null,ft}}function _removeDuplicates(st){return Array.from(new Set(st))}const parent=_singleMatcher(({parent:st})=>st&&!isDocument(st)?st:null,_removeDuplicates),parents$1=_matcher(st=>{const at=[];for(;st.parent&&!isDocument(st.parent);)at.push(st.parent),st=st.parent;return at},uniqueSort,st=>st.reverse()),parentsUntil=_matchUntil(({parent:st})=>st&&!isDocument(st)?st:null,uniqueSort,st=>st.reverse());function closest(st){var at;const ut=[];if(!st)return this._make(ut);const dt={xmlMode:this.options.xmlMode,root:(at=this._root)===null||at===void 0?void 0:at[0]},ct=typeof st=="string"?pt=>is$2(pt,st,dt):getFilterFn(st);return domEach(this,pt=>{for(;pt&&isTag(pt);){if(ct(pt,0)){ut.includes(pt)||ut.push(pt);break}pt=pt.parent}}),this._make(ut)}const next=_singleMatcher(st=>nextElementSibling(st)),nextAll=_matcher(st=>{const at=[];for(;st.next;)st=st.next,isTag(st)&&at.push(st);return at},_removeDuplicates),nextUntil=_matchUntil(st=>nextElementSibling(st),_removeDuplicates),prev=_singleMatcher(st=>prevElementSibling(st)),prevAll=_matcher(st=>{const at=[];for(;st.prev;)st=st.prev,isTag(st)&&at.push(st);return at},_removeDuplicates),prevUntil=_matchUntil(st=>prevElementSibling(st),_removeDuplicates),siblings$1=_matcher(st=>getSiblings(st).filter(at=>isTag(at)&&at!==st),uniqueSort),children=_matcher(st=>getChildren(st).filter(isTag),_removeDuplicates);function contents(){const st=this.toArray().reduce((at,ut)=>hasChildren(ut)?at.concat(ut.children):at,[]);return this._make(st)}function each$1(st){let at=0;const ut=this.length;for(;atst.call(at,ut,at):isCheerio(st)?at=>Array.prototype.includes.call(st,at):function(at){return st===at}}function filter(st){var at;return this._make(filterArray(this.toArray(),st,this.options.xmlMode,(at=this._root)===null||at===void 0?void 0:at[0]))}function filterArray(st,at,ut,dt){return typeof at=="string"?filter$1(at,st,{xmlMode:ut,root:dt}):st.filter(getFilterFn(at))}function is$1(st){const at=this.toArray();return typeof st=="string"?some(at.filter(isTag),st,this.options):st?at.some(getFilterFn(st)):!1}function not(st){let at=this.toArray();if(typeof st=="string"){const ut=new Set(filter$1(st,at,this.options));at=at.filter(dt=>!ut.has(dt))}else{const ut=getFilterFn(st);at=at.filter((dt,ct)=>!ut(dt,ct))}return this._make(at)}function has(st){return this.filter(typeof st=="string"?`:has(${st})`:(at,ut)=>this._make(ut).find(st).length>0)}function first(){return this.length>1?this._make(this[0]):this}function last(){return this.length>0?this._make(this[this.length-1]):this}function eq$3(st){var at;return st=+st,st===0&&this.length<=1?this:(st<0&&(st=this.length+st),this._make((at=this[st])!==null&&at!==void 0?at:[]))}function get$1(st){return st==null?this.toArray():this[st<0?this.length+st:st]}function toArray$1(){return Array.prototype.slice.call(this)}function index(st){let at,ut;return st==null?(at=this.parent().children(),ut=this[0]):typeof st=="string"?(at=this._make(st),ut=this[0]):(at=this,ut=isCheerio(st)?st[0]:st),Array.prototype.indexOf.call(at,ut)}function slice(st,at){return this._make(Array.prototype.slice.call(this,st,at))}function end(){var st;return(st=this.prevObject)!==null&&st!==void 0?st:this._make([])}function add$2(st,at){const ut=this._make(st,at),dt=uniqueSort([...this.get(),...ut.get()]);return this._make(dt)}function addBack(st){return this.prevObject?this.add(st?this.prevObject.filter(st):this.prevObject):this}const Traversing=Object.freeze(Object.defineProperty({__proto__:null,add:add$2,addBack,children,closest,contents,each:each$1,end,eq:eq$3,filter,filterArray,find:find$2,first,get:get$1,has,index,is:is$1,last,map,next,nextAll,nextUntil,not,parent,parents:parents$1,parentsUntil,prev,prevAll,prevUntil,siblings:siblings$1,slice,toArray:toArray$1},Symbol.toStringTag,{value:"Module"}));function getParse(st){return function(ut,dt,ct,pt){if(typeof Buffer<"u"&&Buffer.isBuffer(ut)&&(ut=ut.toString()),typeof ut=="string")return st(ut,dt,ct,pt);const ft=ut;if(!Array.isArray(ft)&&isDocument(ft))return ft;const ht=new Document$1([]);return update$1(ft,ht),ht}}function update$1(st,at){const ut=Array.isArray(st)?st:[st];at?at.children=ut:at=null;for(let dt=0;dtut.concat(this._makeDomArray(dt,at)),[]):typeof st=="string"?this._parse(st,this.options,!1,null).children:at?cloneDom([st]):[st]}function _insert(st){return function(...at){const ut=this.length-1;return domEach(this,(dt,ct)=>{if(!hasChildren(dt))return;const pt=typeof at[0]=="function"?at[0].call(dt,ct,this._render(dt.children)):at,ft=this._makeDomArray(pt,ct=st.length?null:st[at+ut];for(let bt=0;bt-1&&(St.children.splice(vt,1),ct===St&&at>vt&&ht[0]--)}Tt.parent=ct,Tt.prev&&(Tt.prev.next=(pt=Tt.next)!==null&&pt!==void 0?pt:null),Tt.next&&(Tt.next.prev=(ft=Tt.prev)!==null&&ft!==void 0?ft:null),Tt.prev=bt===0?mt:dt[bt-1],Tt.next=bt===dt.length-1?yt:dt[bt+1]}return mt&&(mt.next=dt[0]),yt&&(yt.prev=dt[dt.length-1]),st.splice(...ht)}function appendTo(st){return(isCheerio(st)?st:this._make(st)).append(this),this}function prependTo(st){return(isCheerio(st)?st:this._make(st)).prepend(this),this}const append=_insert((st,at,ut)=>{uniqueSplice(at,at.length,0,st,ut)}),prepend=_insert((st,at,ut)=>{uniqueSplice(at,0,0,st,ut)});function _wrap(st){return function(at){const ut=this.length-1,dt=this.parents().last();for(let ct=0;ct{const{parent:dt}=st;if(!dt)return;const ct=dt.children,pt=ct.indexOf(st);update$1([st],at),uniqueSplice(ct,pt,0,ut,dt)}),wrapInner=_wrap((st,at,ut)=>{hasChildren(st)&&(update$1(st.children,at),update$1(ut,st))});function unwrap(st){return this.parent(st).not("body").each((at,ut)=>{this._make(ut).replaceWith(ut.children)}),this}function wrapAll(st){const at=this[0];if(at){const ut=this._make(typeof st=="function"?st.call(at,0,at):st).insertBefore(at);let dt;for(let pt=0;pt{const{parent:ct}=ut;if(!hasChildren(ut)||!ct)return;const pt=ct.children,ft=pt.indexOf(ut);if(ft<0)return;const ht=typeof st[0]=="function"?st[0].call(ut,dt,this._render(ut.children)):st,mt=this._makeDomArray(ht,dt{const dt=this.clone().toArray(),{parent:ct}=ut;if(!ct)return;const pt=ct.children,ft=pt.indexOf(ut);ft<0||(uniqueSplice(pt,ft+1,0,dt,ct),at.push(...dt))}),this._make(at)}function before(...st){const at=this.length-1;return domEach(this,(ut,dt)=>{const{parent:ct}=ut;if(!hasChildren(ut)||!ct)return;const pt=ct.children,ft=pt.indexOf(ut);if(ft<0)return;const ht=typeof st[0]=="function"?st[0].call(ut,dt,this._render(ut.children)):st,mt=this._makeDomArray(ht,dt{const ct=this.clone().toArray(),{parent:pt}=dt;if(!pt)return;const ft=pt.children,ht=ft.indexOf(dt);ht<0||(uniqueSplice(ft,ht,0,ct,pt),ut.push(...ct))}),this._make(ut)}function remove$1(st){const at=st?this.filter(st):this;return domEach(at,ut=>{removeElement(ut),ut.prev=ut.next=ut.parent=null}),this}function replaceWith(st){return domEach(this,(at,ut)=>{const{parent:dt}=at;if(!dt)return;const ct=dt.children,pt=typeof st=="function"?st.call(at,ut,at):st,ft=this._makeDomArray(pt);update$1(ft,null);const ht=ct.indexOf(at);uniqueSplice(ct,ht,1,ft,dt),ft.includes(at)||(at.parent=at.prev=at.next=null)})}function empty(){return domEach(this,st=>{hasChildren(st)&&(st.children.forEach(at=>{at.next=at.prev=at.parent=null}),st.children.length=0)})}function html$2(st){if(st===void 0){const at=this[0];return!at||!hasChildren(at)?null:this._render(at.children)}return domEach(this,at=>{if(!hasChildren(at))return;at.children.forEach(dt=>{dt.next=dt.prev=dt.parent=null});const ut=isCheerio(st)?st.toArray():this._parse(`${st}`,this.options,!1,at).children;update$1(ut,at)})}function toString$1(){return this._render(this)}function text$1(st){return st===void 0?text$2(this):typeof st=="function"?domEach(this,(at,ut)=>this._make(at).text(st.call(at,ut,text$2([at])))):domEach(this,at=>{if(!hasChildren(at))return;at.children.forEach(dt=>{dt.next=dt.prev=dt.parent=null});const ut=new Text(`${st}`);update$1(ut,at)})}function clone$2(){return this._make(cloneDom(this.get()))}const Manipulation=Object.freeze(Object.defineProperty({__proto__:null,_makeDomArray,after,append,appendTo,before,clone:clone$2,empty,html:html$2,insertAfter,insertBefore,prepend,prependTo,remove:remove$1,replaceWith,text:text$1,toString:toString$1,unwrap,wrap,wrapAll,wrapInner},Symbol.toStringTag,{value:"Module"}));function css(st,at){if(st!=null&&at!=null||typeof st=="object"&&!Array.isArray(st))return domEach(this,(ut,dt)=>{isTag(ut)&&setCss(ut,st,at,dt)});if(this.length!==0)return getCss(this[0],st)}function setCss(st,at,ut,dt){if(typeof at=="string"){const ct=getCss(st),pt=typeof ut=="function"?ut.call(st,dt,ct[at]):ut;pt===""?delete ct[at]:pt!=null&&(ct[at]=pt),st.attribs.style=stringify$1(ct)}else typeof at=="object"&&Object.keys(at).forEach((ct,pt)=>{setCss(st,ct,at[ct],pt)})}function getCss(st,at){if(!st||!isTag(st))return;const ut=parse$l(st.attribs.style);if(typeof at=="string")return ut[at];if(Array.isArray(at)){const dt={};return at.forEach(ct=>{ut[ct]!=null&&(dt[ct]=ut[ct])}),dt}return ut}function stringify$1(st){return Object.keys(st).reduce((at,ut)=>`${at}${at?" ":""}${ut}: ${st[ut]};`,"")}function parse$l(st){if(st=(st||"").trim(),!st)return{};const at={};let ut;for(const dt of st.split(";")){const ct=dt.indexOf(":");if(ct<1||ct===dt.length-1){const pt=dt.trimEnd();pt.length>0&&ut!==void 0&&(at[ut]+=`;${pt}`)}else ut=dt.slice(0,ct).trim(),at[ut]=dt.slice(ct+1).trim()}return at}const Css=Object.freeze(Object.defineProperty({__proto__:null,css},Symbol.toStringTag,{value:"Module"})),submittableSelector="input,select,textarea,keygen",r20=/%20/g,rCRLF=/\r?\n/g;function serialize$1(){return this.serializeArray().map(ut=>`${encodeURIComponent(ut.name)}=${encodeURIComponent(ut.value)}`).join("&").replace(r20,"+")}function serializeArray(){return this.map((st,at)=>{const ut=this._make(at);return isTag(at)&&at.name==="form"?ut.find(submittableSelector).toArray():ut.filter(submittableSelector).toArray()}).filter('[name!=""]:enabled:not(:submit, :button, :image, :reset, :file):matches([checked], :not(:checkbox, :radio))').map((st,at)=>{var ut;const dt=this._make(at),ct=dt.attr("name"),pt=(ut=dt.val())!==null&&ut!==void 0?ut:"";return Array.isArray(pt)?pt.map(ft=>({name:ct,value:ft.replace(rCRLF,`\r `)})):{name:ct,value:pt.replace(rCRLF,`\r `)}}).toArray()}const Forms=Object.freeze(Object.defineProperty({__proto__:null,serialize:serialize$1,serializeArray},Symbol.toStringTag,{value:"Module"}));class Cheerio{constructor(at,ut,dt){if(this.length=0,this.options=dt,this._root=ut,at){for(let ct=0;ct=55296&&st<=57343}function isSurrogatePair(st){return st>=56320&&st<=57343}function getSurrogatePairCodePoint(st,at){return(st-55296)*1024+9216+at}function isControlCodePoint(st){return st!==32&&st!==10&&st!==13&&st!==9&&st!==12&&st>=1&&st<=31||st>=127&&st<=159}function isUndefinedCodePoint(st){return st>=64976&&st<=65007||UNDEFINED_CODE_POINTS.has(st)}var ERR;(function(st){st.controlCharacterInInputStream="control-character-in-input-stream",st.noncharacterInInputStream="noncharacter-in-input-stream",st.surrogateInInputStream="surrogate-in-input-stream",st.nonVoidHtmlElementStartTagWithTrailingSolidus="non-void-html-element-start-tag-with-trailing-solidus",st.endTagWithAttributes="end-tag-with-attributes",st.endTagWithTrailingSolidus="end-tag-with-trailing-solidus",st.unexpectedSolidusInTag="unexpected-solidus-in-tag",st.unexpectedNullCharacter="unexpected-null-character",st.unexpectedQuestionMarkInsteadOfTagName="unexpected-question-mark-instead-of-tag-name",st.invalidFirstCharacterOfTagName="invalid-first-character-of-tag-name",st.unexpectedEqualsSignBeforeAttributeName="unexpected-equals-sign-before-attribute-name",st.missingEndTagName="missing-end-tag-name",st.unexpectedCharacterInAttributeName="unexpected-character-in-attribute-name",st.unknownNamedCharacterReference="unknown-named-character-reference",st.missingSemicolonAfterCharacterReference="missing-semicolon-after-character-reference",st.unexpectedCharacterAfterDoctypeSystemIdentifier="unexpected-character-after-doctype-system-identifier",st.unexpectedCharacterInUnquotedAttributeValue="unexpected-character-in-unquoted-attribute-value",st.eofBeforeTagName="eof-before-tag-name",st.eofInTag="eof-in-tag",st.missingAttributeValue="missing-attribute-value",st.missingWhitespaceBetweenAttributes="missing-whitespace-between-attributes",st.missingWhitespaceAfterDoctypePublicKeyword="missing-whitespace-after-doctype-public-keyword",st.missingWhitespaceBetweenDoctypePublicAndSystemIdentifiers="missing-whitespace-between-doctype-public-and-system-identifiers",st.missingWhitespaceAfterDoctypeSystemKeyword="missing-whitespace-after-doctype-system-keyword",st.missingQuoteBeforeDoctypePublicIdentifier="missing-quote-before-doctype-public-identifier",st.missingQuoteBeforeDoctypeSystemIdentifier="missing-quote-before-doctype-system-identifier",st.missingDoctypePublicIdentifier="missing-doctype-public-identifier",st.missingDoctypeSystemIdentifier="missing-doctype-system-identifier",st.abruptDoctypePublicIdentifier="abrupt-doctype-public-identifier",st.abruptDoctypeSystemIdentifier="abrupt-doctype-system-identifier",st.cdataInHtmlContent="cdata-in-html-content",st.incorrectlyOpenedComment="incorrectly-opened-comment",st.eofInScriptHtmlCommentLikeText="eof-in-script-html-comment-like-text",st.eofInDoctype="eof-in-doctype",st.nestedComment="nested-comment",st.abruptClosingOfEmptyComment="abrupt-closing-of-empty-comment",st.eofInComment="eof-in-comment",st.incorrectlyClosedComment="incorrectly-closed-comment",st.eofInCdata="eof-in-cdata",st.absenceOfDigitsInNumericCharacterReference="absence-of-digits-in-numeric-character-reference",st.nullCharacterReference="null-character-reference",st.surrogateCharacterReference="surrogate-character-reference",st.characterReferenceOutsideUnicodeRange="character-reference-outside-unicode-range",st.controlCharacterReference="control-character-reference",st.noncharacterCharacterReference="noncharacter-character-reference",st.missingWhitespaceBeforeDoctypeName="missing-whitespace-before-doctype-name",st.missingDoctypeName="missing-doctype-name",st.invalidCharacterSequenceAfterDoctypeName="invalid-character-sequence-after-doctype-name",st.duplicateAttribute="duplicate-attribute",st.nonConformingDoctype="non-conforming-doctype",st.missingDoctype="missing-doctype",st.misplacedDoctype="misplaced-doctype",st.endTagWithoutMatchingOpenElement="end-tag-without-matching-open-element",st.closingOfElementWithOpenChildElements="closing-of-element-with-open-child-elements",st.disallowedContentInNoscriptInHead="disallowed-content-in-noscript-in-head",st.openElementsLeftAfterEof="open-elements-left-after-eof",st.abandonedHeadElementChild="abandoned-head-element-child",st.misplacedStartTagForHeadElement="misplaced-start-tag-for-head-element",st.nestedNoscriptInHead="nested-noscript-in-head",st.eofInElementThatCanContainOnlyText="eof-in-element-that-can-contain-only-text"})(ERR||(ERR={}));const DEFAULT_BUFFER_WATERLINE=65536;class Preprocessor{constructor(at){this.handler=at,this.html="",this.pos=-1,this.lastGapPos=-2,this.gapStack=[],this.skipNextNewLine=!1,this.lastChunkWritten=!1,this.endOfChunkHit=!1,this.bufferWaterline=DEFAULT_BUFFER_WATERLINE,this.isEol=!1,this.lineStartPos=0,this.droppedBufferSize=0,this.line=1,this.lastErrOffset=-1}get col(){return this.pos-this.lineStartPos+ +(this.lastGapPos!==this.pos)}get offset(){return this.droppedBufferSize+this.pos}getError(at,ut){const{line:dt,col:ct,offset:pt}=this,ft=ct+ut,ht=pt+ut;return{code:at,startLine:dt,endLine:dt,startCol:ft,endCol:ft,startOffset:ht,endOffset:ht}}_err(at){this.handler.onParseError&&this.lastErrOffset!==this.offset&&(this.lastErrOffset=this.offset,this.handler.onParseError(this.getError(at,0)))}_addGap(){this.gapStack.push(this.lastGapPos),this.lastGapPos=this.pos}_processSurrogate(at){if(this.pos!==this.html.length-1){const ut=this.html.charCodeAt(this.pos+1);if(isSurrogatePair(ut))return this.pos++,this._addGap(),getSurrogatePairCodePoint(at,ut)}else if(!this.lastChunkWritten)return this.endOfChunkHit=!0,CODE_POINTS.EOF;return this._err(ERR.surrogateInInputStream),at}willDropParsedChunk(){return this.pos>this.bufferWaterline}dropParsedChunk(){this.willDropParsedChunk()&&(this.html=this.html.substring(this.pos),this.lineStartPos-=this.pos,this.droppedBufferSize+=this.pos,this.pos=0,this.lastGapPos=-2,this.gapStack.length=0)}write(at,ut){this.html.length>0?this.html+=at:this.html=at,this.endOfChunkHit=!1,this.lastChunkWritten=ut}insertHtmlAtCurrentPos(at){this.html=this.html.substring(0,this.pos+1)+at+this.html.substring(this.pos+1),this.endOfChunkHit=!1}startsWith(at,ut){if(this.pos+at.length>this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,!1;if(ut)return this.html.startsWith(at,this.pos);for(let dt=0;dt=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,CODE_POINTS.EOF;const dt=this.html.charCodeAt(ut);return dt===CODE_POINTS.CARRIAGE_RETURN?CODE_POINTS.LINE_FEED:dt}advance(){if(this.pos++,this.isEol&&(this.isEol=!1,this.line++,this.lineStartPos=this.pos),this.pos>=this.html.length)return this.endOfChunkHit=!this.lastChunkWritten,CODE_POINTS.EOF;let at=this.html.charCodeAt(this.pos);return at===CODE_POINTS.CARRIAGE_RETURN?(this.isEol=!0,this.skipNextNewLine=!0,CODE_POINTS.LINE_FEED):at===CODE_POINTS.LINE_FEED&&(this.isEol=!0,this.skipNextNewLine)?(this.line--,this.skipNextNewLine=!1,this._addGap(),this.advance()):(this.skipNextNewLine=!1,isSurrogate(at)&&(at=this._processSurrogate(at)),this.handler.onParseError===null||at>31&&at<127||at===CODE_POINTS.LINE_FEED||at===CODE_POINTS.CARRIAGE_RETURN||at>159&&at<64976||this._checkForProblematicCharacters(at),at)}_checkForProblematicCharacters(at){isControlCodePoint(at)?this._err(ERR.controlCharacterInInputStream):isUndefinedCodePoint(at)&&this._err(ERR.noncharacterInInputStream)}retreat(at){for(this.pos-=at;this.pos=0;ut--)if(st.attrs[ut].name===at)return st.attrs[ut].value;return null}const htmlDecodeTree=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(st=>st.charCodeAt(0))),decodeMap=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]);function replaceCodePoint(st){var at;return st>=55296&&st<=57343||st>1114111?65533:(at=decodeMap.get(st))!==null&&at!==void 0?at:st}var CharCodes$1;(function(st){st[st.NUM=35]="NUM",st[st.SEMI=59]="SEMI",st[st.EQUALS=61]="EQUALS",st[st.ZERO=48]="ZERO",st[st.NINE=57]="NINE",st[st.LOWER_A=97]="LOWER_A",st[st.LOWER_F=102]="LOWER_F",st[st.LOWER_X=120]="LOWER_X",st[st.LOWER_Z=122]="LOWER_Z",st[st.UPPER_A=65]="UPPER_A",st[st.UPPER_F=70]="UPPER_F",st[st.UPPER_Z=90]="UPPER_Z"})(CharCodes$1||(CharCodes$1={}));const TO_LOWER_BIT=32;var BinTrieFlags;(function(st){st[st.VALUE_LENGTH=49152]="VALUE_LENGTH",st[st.BRANCH_LENGTH=16256]="BRANCH_LENGTH",st[st.JUMP_TABLE=127]="JUMP_TABLE"})(BinTrieFlags||(BinTrieFlags={}));function isNumber$2(st){return st>=CharCodes$1.ZERO&&st<=CharCodes$1.NINE}function isHexadecimalCharacter(st){return st>=CharCodes$1.UPPER_A&&st<=CharCodes$1.UPPER_F||st>=CharCodes$1.LOWER_A&&st<=CharCodes$1.LOWER_F}function isAsciiAlphaNumeric$1(st){return st>=CharCodes$1.UPPER_A&&st<=CharCodes$1.UPPER_Z||st>=CharCodes$1.LOWER_A&&st<=CharCodes$1.LOWER_Z||isNumber$2(st)}function isEntityInAttributeInvalidEnd(st){return st===CharCodes$1.EQUALS||isAsciiAlphaNumeric$1(st)}var EntityDecoderState;(function(st){st[st.EntityStart=0]="EntityStart",st[st.NumericStart=1]="NumericStart",st[st.NumericDecimal=2]="NumericDecimal",st[st.NumericHex=3]="NumericHex",st[st.NamedEntity=4]="NamedEntity"})(EntityDecoderState||(EntityDecoderState={}));var DecodingMode;(function(st){st[st.Legacy=0]="Legacy",st[st.Strict=1]="Strict",st[st.Attribute=2]="Attribute"})(DecodingMode||(DecodingMode={}));class EntityDecoder{constructor(at,ut,dt){this.decodeTree=at,this.emitCodePoint=ut,this.errors=dt,this.state=EntityDecoderState.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=DecodingMode.Strict}startEntity(at){this.decodeMode=at,this.state=EntityDecoderState.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(at,ut){switch(this.state){case EntityDecoderState.EntityStart:return at.charCodeAt(ut)===CharCodes$1.NUM?(this.state=EntityDecoderState.NumericStart,this.consumed+=1,this.stateNumericStart(at,ut+1)):(this.state=EntityDecoderState.NamedEntity,this.stateNamedEntity(at,ut));case EntityDecoderState.NumericStart:return this.stateNumericStart(at,ut);case EntityDecoderState.NumericDecimal:return this.stateNumericDecimal(at,ut);case EntityDecoderState.NumericHex:return this.stateNumericHex(at,ut);case EntityDecoderState.NamedEntity:return this.stateNamedEntity(at,ut)}}stateNumericStart(at,ut){return ut>=at.length?-1:(at.charCodeAt(ut)|TO_LOWER_BIT)===CharCodes$1.LOWER_X?(this.state=EntityDecoderState.NumericHex,this.consumed+=1,this.stateNumericHex(at,ut+1)):(this.state=EntityDecoderState.NumericDecimal,this.stateNumericDecimal(at,ut))}addToNumericResult(at,ut,dt,ct){if(ut!==dt){const pt=dt-ut;this.result=this.result*Math.pow(ct,pt)+Number.parseInt(at.substr(ut,pt),ct),this.consumed+=pt}}stateNumericHex(at,ut){const dt=ut;for(;ut>14;for(;ut>14,pt!==0){if(ft===CharCodes$1.SEMI)return this.emitNamedEntityData(this.treeIndex,pt,this.consumed+this.excess);this.decodeMode!==DecodingMode.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var at;const{result:ut,decodeTree:dt}=this,ct=(dt[ut]&BinTrieFlags.VALUE_LENGTH)>>14;return this.emitNamedEntityData(ut,ct,this.consumed),(at=this.errors)===null||at===void 0||at.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(at,ut,dt){const{decodeTree:ct}=this;return this.emitCodePoint(ut===1?ct[at]&~BinTrieFlags.VALUE_LENGTH:ct[at+1],dt),ut===3&&this.emitCodePoint(ct[at+2],dt),dt}end(){var at;switch(this.state){case EntityDecoderState.NamedEntity:return this.result!==0&&(this.decodeMode!==DecodingMode.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case EntityDecoderState.NumericDecimal:return this.emitNumericEntity(0,2);case EntityDecoderState.NumericHex:return this.emitNumericEntity(0,3);case EntityDecoderState.NumericStart:return(at=this.errors)===null||at===void 0||at.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case EntityDecoderState.EntityStart:return 0}}}function determineBranch(st,at,ut,dt){const ct=(at&BinTrieFlags.BRANCH_LENGTH)>>7,pt=at&BinTrieFlags.JUMP_TABLE;if(ct===0)return pt!==0&&dt===pt?ut:-1;if(pt){const mt=dt-pt;return mt<0||mt>=ct?-1:st[ut+mt]-1}let ft=ut,ht=ft+ct-1;for(;ft<=ht;){const mt=ft+ht>>>1,yt=st[mt];if(ytdt)ht=mt-1;else return st[mt+ct]}return-1}var NS;(function(st){st.HTML="http://www.w3.org/1999/xhtml",st.MATHML="http://www.w3.org/1998/Math/MathML",st.SVG="http://www.w3.org/2000/svg",st.XLINK="http://www.w3.org/1999/xlink",st.XML="http://www.w3.org/XML/1998/namespace",st.XMLNS="http://www.w3.org/2000/xmlns/"})(NS||(NS={}));var ATTRS;(function(st){st.TYPE="type",st.ACTION="action",st.ENCODING="encoding",st.PROMPT="prompt",st.NAME="name",st.COLOR="color",st.FACE="face",st.SIZE="size"})(ATTRS||(ATTRS={}));var DOCUMENT_MODE;(function(st){st.NO_QUIRKS="no-quirks",st.QUIRKS="quirks",st.LIMITED_QUIRKS="limited-quirks"})(DOCUMENT_MODE||(DOCUMENT_MODE={}));var TAG_NAMES;(function(st){st.A="a",st.ADDRESS="address",st.ANNOTATION_XML="annotation-xml",st.APPLET="applet",st.AREA="area",st.ARTICLE="article",st.ASIDE="aside",st.B="b",st.BASE="base",st.BASEFONT="basefont",st.BGSOUND="bgsound",st.BIG="big",st.BLOCKQUOTE="blockquote",st.BODY="body",st.BR="br",st.BUTTON="button",st.CAPTION="caption",st.CENTER="center",st.CODE="code",st.COL="col",st.COLGROUP="colgroup",st.DD="dd",st.DESC="desc",st.DETAILS="details",st.DIALOG="dialog",st.DIR="dir",st.DIV="div",st.DL="dl",st.DT="dt",st.EM="em",st.EMBED="embed",st.FIELDSET="fieldset",st.FIGCAPTION="figcaption",st.FIGURE="figure",st.FONT="font",st.FOOTER="footer",st.FOREIGN_OBJECT="foreignObject",st.FORM="form",st.FRAME="frame",st.FRAMESET="frameset",st.H1="h1",st.H2="h2",st.H3="h3",st.H4="h4",st.H5="h5",st.H6="h6",st.HEAD="head",st.HEADER="header",st.HGROUP="hgroup",st.HR="hr",st.HTML="html",st.I="i",st.IMG="img",st.IMAGE="image",st.INPUT="input",st.IFRAME="iframe",st.KEYGEN="keygen",st.LABEL="label",st.LI="li",st.LINK="link",st.LISTING="listing",st.MAIN="main",st.MALIGNMARK="malignmark",st.MARQUEE="marquee",st.MATH="math",st.MENU="menu",st.META="meta",st.MGLYPH="mglyph",st.MI="mi",st.MO="mo",st.MN="mn",st.MS="ms",st.MTEXT="mtext",st.NAV="nav",st.NOBR="nobr",st.NOFRAMES="noframes",st.NOEMBED="noembed",st.NOSCRIPT="noscript",st.OBJECT="object",st.OL="ol",st.OPTGROUP="optgroup",st.OPTION="option",st.P="p",st.PARAM="param",st.PLAINTEXT="plaintext",st.PRE="pre",st.RB="rb",st.RP="rp",st.RT="rt",st.RTC="rtc",st.RUBY="ruby",st.S="s",st.SCRIPT="script",st.SEARCH="search",st.SECTION="section",st.SELECT="select",st.SOURCE="source",st.SMALL="small",st.SPAN="span",st.STRIKE="strike",st.STRONG="strong",st.STYLE="style",st.SUB="sub",st.SUMMARY="summary",st.SUP="sup",st.TABLE="table",st.TBODY="tbody",st.TEMPLATE="template",st.TEXTAREA="textarea",st.TFOOT="tfoot",st.TD="td",st.TH="th",st.THEAD="thead",st.TITLE="title",st.TR="tr",st.TRACK="track",st.TT="tt",st.U="u",st.UL="ul",st.SVG="svg",st.VAR="var",st.WBR="wbr",st.XMP="xmp"})(TAG_NAMES||(TAG_NAMES={}));var TAG_ID;(function(st){st[st.UNKNOWN=0]="UNKNOWN",st[st.A=1]="A",st[st.ADDRESS=2]="ADDRESS",st[st.ANNOTATION_XML=3]="ANNOTATION_XML",st[st.APPLET=4]="APPLET",st[st.AREA=5]="AREA",st[st.ARTICLE=6]="ARTICLE",st[st.ASIDE=7]="ASIDE",st[st.B=8]="B",st[st.BASE=9]="BASE",st[st.BASEFONT=10]="BASEFONT",st[st.BGSOUND=11]="BGSOUND",st[st.BIG=12]="BIG",st[st.BLOCKQUOTE=13]="BLOCKQUOTE",st[st.BODY=14]="BODY",st[st.BR=15]="BR",st[st.BUTTON=16]="BUTTON",st[st.CAPTION=17]="CAPTION",st[st.CENTER=18]="CENTER",st[st.CODE=19]="CODE",st[st.COL=20]="COL",st[st.COLGROUP=21]="COLGROUP",st[st.DD=22]="DD",st[st.DESC=23]="DESC",st[st.DETAILS=24]="DETAILS",st[st.DIALOG=25]="DIALOG",st[st.DIR=26]="DIR",st[st.DIV=27]="DIV",st[st.DL=28]="DL",st[st.DT=29]="DT",st[st.EM=30]="EM",st[st.EMBED=31]="EMBED",st[st.FIELDSET=32]="FIELDSET",st[st.FIGCAPTION=33]="FIGCAPTION",st[st.FIGURE=34]="FIGURE",st[st.FONT=35]="FONT",st[st.FOOTER=36]="FOOTER",st[st.FOREIGN_OBJECT=37]="FOREIGN_OBJECT",st[st.FORM=38]="FORM",st[st.FRAME=39]="FRAME",st[st.FRAMESET=40]="FRAMESET",st[st.H1=41]="H1",st[st.H2=42]="H2",st[st.H3=43]="H3",st[st.H4=44]="H4",st[st.H5=45]="H5",st[st.H6=46]="H6",st[st.HEAD=47]="HEAD",st[st.HEADER=48]="HEADER",st[st.HGROUP=49]="HGROUP",st[st.HR=50]="HR",st[st.HTML=51]="HTML",st[st.I=52]="I",st[st.IMG=53]="IMG",st[st.IMAGE=54]="IMAGE",st[st.INPUT=55]="INPUT",st[st.IFRAME=56]="IFRAME",st[st.KEYGEN=57]="KEYGEN",st[st.LABEL=58]="LABEL",st[st.LI=59]="LI",st[st.LINK=60]="LINK",st[st.LISTING=61]="LISTING",st[st.MAIN=62]="MAIN",st[st.MALIGNMARK=63]="MALIGNMARK",st[st.MARQUEE=64]="MARQUEE",st[st.MATH=65]="MATH",st[st.MENU=66]="MENU",st[st.META=67]="META",st[st.MGLYPH=68]="MGLYPH",st[st.MI=69]="MI",st[st.MO=70]="MO",st[st.MN=71]="MN",st[st.MS=72]="MS",st[st.MTEXT=73]="MTEXT",st[st.NAV=74]="NAV",st[st.NOBR=75]="NOBR",st[st.NOFRAMES=76]="NOFRAMES",st[st.NOEMBED=77]="NOEMBED",st[st.NOSCRIPT=78]="NOSCRIPT",st[st.OBJECT=79]="OBJECT",st[st.OL=80]="OL",st[st.OPTGROUP=81]="OPTGROUP",st[st.OPTION=82]="OPTION",st[st.P=83]="P",st[st.PARAM=84]="PARAM",st[st.PLAINTEXT=85]="PLAINTEXT",st[st.PRE=86]="PRE",st[st.RB=87]="RB",st[st.RP=88]="RP",st[st.RT=89]="RT",st[st.RTC=90]="RTC",st[st.RUBY=91]="RUBY",st[st.S=92]="S",st[st.SCRIPT=93]="SCRIPT",st[st.SEARCH=94]="SEARCH",st[st.SECTION=95]="SECTION",st[st.SELECT=96]="SELECT",st[st.SOURCE=97]="SOURCE",st[st.SMALL=98]="SMALL",st[st.SPAN=99]="SPAN",st[st.STRIKE=100]="STRIKE",st[st.STRONG=101]="STRONG",st[st.STYLE=102]="STYLE",st[st.SUB=103]="SUB",st[st.SUMMARY=104]="SUMMARY",st[st.SUP=105]="SUP",st[st.TABLE=106]="TABLE",st[st.TBODY=107]="TBODY",st[st.TEMPLATE=108]="TEMPLATE",st[st.TEXTAREA=109]="TEXTAREA",st[st.TFOOT=110]="TFOOT",st[st.TD=111]="TD",st[st.TH=112]="TH",st[st.THEAD=113]="THEAD",st[st.TITLE=114]="TITLE",st[st.TR=115]="TR",st[st.TRACK=116]="TRACK",st[st.TT=117]="TT",st[st.U=118]="U",st[st.UL=119]="UL",st[st.SVG=120]="SVG",st[st.VAR=121]="VAR",st[st.WBR=122]="WBR",st[st.XMP=123]="XMP"})(TAG_ID||(TAG_ID={}));const TAG_NAME_TO_ID=new Map([[TAG_NAMES.A,TAG_ID.A],[TAG_NAMES.ADDRESS,TAG_ID.ADDRESS],[TAG_NAMES.ANNOTATION_XML,TAG_ID.ANNOTATION_XML],[TAG_NAMES.APPLET,TAG_ID.APPLET],[TAG_NAMES.AREA,TAG_ID.AREA],[TAG_NAMES.ARTICLE,TAG_ID.ARTICLE],[TAG_NAMES.ASIDE,TAG_ID.ASIDE],[TAG_NAMES.B,TAG_ID.B],[TAG_NAMES.BASE,TAG_ID.BASE],[TAG_NAMES.BASEFONT,TAG_ID.BASEFONT],[TAG_NAMES.BGSOUND,TAG_ID.BGSOUND],[TAG_NAMES.BIG,TAG_ID.BIG],[TAG_NAMES.BLOCKQUOTE,TAG_ID.BLOCKQUOTE],[TAG_NAMES.BODY,TAG_ID.BODY],[TAG_NAMES.BR,TAG_ID.BR],[TAG_NAMES.BUTTON,TAG_ID.BUTTON],[TAG_NAMES.CAPTION,TAG_ID.CAPTION],[TAG_NAMES.CENTER,TAG_ID.CENTER],[TAG_NAMES.CODE,TAG_ID.CODE],[TAG_NAMES.COL,TAG_ID.COL],[TAG_NAMES.COLGROUP,TAG_ID.COLGROUP],[TAG_NAMES.DD,TAG_ID.DD],[TAG_NAMES.DESC,TAG_ID.DESC],[TAG_NAMES.DETAILS,TAG_ID.DETAILS],[TAG_NAMES.DIALOG,TAG_ID.DIALOG],[TAG_NAMES.DIR,TAG_ID.DIR],[TAG_NAMES.DIV,TAG_ID.DIV],[TAG_NAMES.DL,TAG_ID.DL],[TAG_NAMES.DT,TAG_ID.DT],[TAG_NAMES.EM,TAG_ID.EM],[TAG_NAMES.EMBED,TAG_ID.EMBED],[TAG_NAMES.FIELDSET,TAG_ID.FIELDSET],[TAG_NAMES.FIGCAPTION,TAG_ID.FIGCAPTION],[TAG_NAMES.FIGURE,TAG_ID.FIGURE],[TAG_NAMES.FONT,TAG_ID.FONT],[TAG_NAMES.FOOTER,TAG_ID.FOOTER],[TAG_NAMES.FOREIGN_OBJECT,TAG_ID.FOREIGN_OBJECT],[TAG_NAMES.FORM,TAG_ID.FORM],[TAG_NAMES.FRAME,TAG_ID.FRAME],[TAG_NAMES.FRAMESET,TAG_ID.FRAMESET],[TAG_NAMES.H1,TAG_ID.H1],[TAG_NAMES.H2,TAG_ID.H2],[TAG_NAMES.H3,TAG_ID.H3],[TAG_NAMES.H4,TAG_ID.H4],[TAG_NAMES.H5,TAG_ID.H5],[TAG_NAMES.H6,TAG_ID.H6],[TAG_NAMES.HEAD,TAG_ID.HEAD],[TAG_NAMES.HEADER,TAG_ID.HEADER],[TAG_NAMES.HGROUP,TAG_ID.HGROUP],[TAG_NAMES.HR,TAG_ID.HR],[TAG_NAMES.HTML,TAG_ID.HTML],[TAG_NAMES.I,TAG_ID.I],[TAG_NAMES.IMG,TAG_ID.IMG],[TAG_NAMES.IMAGE,TAG_ID.IMAGE],[TAG_NAMES.INPUT,TAG_ID.INPUT],[TAG_NAMES.IFRAME,TAG_ID.IFRAME],[TAG_NAMES.KEYGEN,TAG_ID.KEYGEN],[TAG_NAMES.LABEL,TAG_ID.LABEL],[TAG_NAMES.LI,TAG_ID.LI],[TAG_NAMES.LINK,TAG_ID.LINK],[TAG_NAMES.LISTING,TAG_ID.LISTING],[TAG_NAMES.MAIN,TAG_ID.MAIN],[TAG_NAMES.MALIGNMARK,TAG_ID.MALIGNMARK],[TAG_NAMES.MARQUEE,TAG_ID.MARQUEE],[TAG_NAMES.MATH,TAG_ID.MATH],[TAG_NAMES.MENU,TAG_ID.MENU],[TAG_NAMES.META,TAG_ID.META],[TAG_NAMES.MGLYPH,TAG_ID.MGLYPH],[TAG_NAMES.MI,TAG_ID.MI],[TAG_NAMES.MO,TAG_ID.MO],[TAG_NAMES.MN,TAG_ID.MN],[TAG_NAMES.MS,TAG_ID.MS],[TAG_NAMES.MTEXT,TAG_ID.MTEXT],[TAG_NAMES.NAV,TAG_ID.NAV],[TAG_NAMES.NOBR,TAG_ID.NOBR],[TAG_NAMES.NOFRAMES,TAG_ID.NOFRAMES],[TAG_NAMES.NOEMBED,TAG_ID.NOEMBED],[TAG_NAMES.NOSCRIPT,TAG_ID.NOSCRIPT],[TAG_NAMES.OBJECT,TAG_ID.OBJECT],[TAG_NAMES.OL,TAG_ID.OL],[TAG_NAMES.OPTGROUP,TAG_ID.OPTGROUP],[TAG_NAMES.OPTION,TAG_ID.OPTION],[TAG_NAMES.P,TAG_ID.P],[TAG_NAMES.PARAM,TAG_ID.PARAM],[TAG_NAMES.PLAINTEXT,TAG_ID.PLAINTEXT],[TAG_NAMES.PRE,TAG_ID.PRE],[TAG_NAMES.RB,TAG_ID.RB],[TAG_NAMES.RP,TAG_ID.RP],[TAG_NAMES.RT,TAG_ID.RT],[TAG_NAMES.RTC,TAG_ID.RTC],[TAG_NAMES.RUBY,TAG_ID.RUBY],[TAG_NAMES.S,TAG_ID.S],[TAG_NAMES.SCRIPT,TAG_ID.SCRIPT],[TAG_NAMES.SEARCH,TAG_ID.SEARCH],[TAG_NAMES.SECTION,TAG_ID.SECTION],[TAG_NAMES.SELECT,TAG_ID.SELECT],[TAG_NAMES.SOURCE,TAG_ID.SOURCE],[TAG_NAMES.SMALL,TAG_ID.SMALL],[TAG_NAMES.SPAN,TAG_ID.SPAN],[TAG_NAMES.STRIKE,TAG_ID.STRIKE],[TAG_NAMES.STRONG,TAG_ID.STRONG],[TAG_NAMES.STYLE,TAG_ID.STYLE],[TAG_NAMES.SUB,TAG_ID.SUB],[TAG_NAMES.SUMMARY,TAG_ID.SUMMARY],[TAG_NAMES.SUP,TAG_ID.SUP],[TAG_NAMES.TABLE,TAG_ID.TABLE],[TAG_NAMES.TBODY,TAG_ID.TBODY],[TAG_NAMES.TEMPLATE,TAG_ID.TEMPLATE],[TAG_NAMES.TEXTAREA,TAG_ID.TEXTAREA],[TAG_NAMES.TFOOT,TAG_ID.TFOOT],[TAG_NAMES.TD,TAG_ID.TD],[TAG_NAMES.TH,TAG_ID.TH],[TAG_NAMES.THEAD,TAG_ID.THEAD],[TAG_NAMES.TITLE,TAG_ID.TITLE],[TAG_NAMES.TR,TAG_ID.TR],[TAG_NAMES.TRACK,TAG_ID.TRACK],[TAG_NAMES.TT,TAG_ID.TT],[TAG_NAMES.U,TAG_ID.U],[TAG_NAMES.UL,TAG_ID.UL],[TAG_NAMES.SVG,TAG_ID.SVG],[TAG_NAMES.VAR,TAG_ID.VAR],[TAG_NAMES.WBR,TAG_ID.WBR],[TAG_NAMES.XMP,TAG_ID.XMP]]);function getTagID(st){var at;return(at=TAG_NAME_TO_ID.get(st))!==null&&at!==void 0?at:TAG_ID.UNKNOWN}const $$1=TAG_ID,SPECIAL_ELEMENTS={[NS.HTML]:new Set([$$1.ADDRESS,$$1.APPLET,$$1.AREA,$$1.ARTICLE,$$1.ASIDE,$$1.BASE,$$1.BASEFONT,$$1.BGSOUND,$$1.BLOCKQUOTE,$$1.BODY,$$1.BR,$$1.BUTTON,$$1.CAPTION,$$1.CENTER,$$1.COL,$$1.COLGROUP,$$1.DD,$$1.DETAILS,$$1.DIR,$$1.DIV,$$1.DL,$$1.DT,$$1.EMBED,$$1.FIELDSET,$$1.FIGCAPTION,$$1.FIGURE,$$1.FOOTER,$$1.FORM,$$1.FRAME,$$1.FRAMESET,$$1.H1,$$1.H2,$$1.H3,$$1.H4,$$1.H5,$$1.H6,$$1.HEAD,$$1.HEADER,$$1.HGROUP,$$1.HR,$$1.HTML,$$1.IFRAME,$$1.IMG,$$1.INPUT,$$1.LI,$$1.LINK,$$1.LISTING,$$1.MAIN,$$1.MARQUEE,$$1.MENU,$$1.META,$$1.NAV,$$1.NOEMBED,$$1.NOFRAMES,$$1.NOSCRIPT,$$1.OBJECT,$$1.OL,$$1.P,$$1.PARAM,$$1.PLAINTEXT,$$1.PRE,$$1.SCRIPT,$$1.SECTION,$$1.SELECT,$$1.SOURCE,$$1.STYLE,$$1.SUMMARY,$$1.TABLE,$$1.TBODY,$$1.TD,$$1.TEMPLATE,$$1.TEXTAREA,$$1.TFOOT,$$1.TH,$$1.THEAD,$$1.TITLE,$$1.TR,$$1.TRACK,$$1.UL,$$1.WBR,$$1.XMP]),[NS.MATHML]:new Set([$$1.MI,$$1.MO,$$1.MN,$$1.MS,$$1.MTEXT,$$1.ANNOTATION_XML]),[NS.SVG]:new Set([$$1.TITLE,$$1.FOREIGN_OBJECT,$$1.DESC]),[NS.XLINK]:new Set,[NS.XML]:new Set,[NS.XMLNS]:new Set},NUMBERED_HEADERS=new Set([$$1.H1,$$1.H2,$$1.H3,$$1.H4,$$1.H5,$$1.H6]),UNESCAPED_TEXT=new Set([TAG_NAMES.STYLE,TAG_NAMES.SCRIPT,TAG_NAMES.XMP,TAG_NAMES.IFRAME,TAG_NAMES.NOEMBED,TAG_NAMES.NOFRAMES,TAG_NAMES.PLAINTEXT]);function hasUnescapedText(st,at){return UNESCAPED_TEXT.has(st)||at&&st===TAG_NAMES.NOSCRIPT}var State$2;(function(st){st[st.DATA=0]="DATA",st[st.RCDATA=1]="RCDATA",st[st.RAWTEXT=2]="RAWTEXT",st[st.SCRIPT_DATA=3]="SCRIPT_DATA",st[st.PLAINTEXT=4]="PLAINTEXT",st[st.TAG_OPEN=5]="TAG_OPEN",st[st.END_TAG_OPEN=6]="END_TAG_OPEN",st[st.TAG_NAME=7]="TAG_NAME",st[st.RCDATA_LESS_THAN_SIGN=8]="RCDATA_LESS_THAN_SIGN",st[st.RCDATA_END_TAG_OPEN=9]="RCDATA_END_TAG_OPEN",st[st.RCDATA_END_TAG_NAME=10]="RCDATA_END_TAG_NAME",st[st.RAWTEXT_LESS_THAN_SIGN=11]="RAWTEXT_LESS_THAN_SIGN",st[st.RAWTEXT_END_TAG_OPEN=12]="RAWTEXT_END_TAG_OPEN",st[st.RAWTEXT_END_TAG_NAME=13]="RAWTEXT_END_TAG_NAME",st[st.SCRIPT_DATA_LESS_THAN_SIGN=14]="SCRIPT_DATA_LESS_THAN_SIGN",st[st.SCRIPT_DATA_END_TAG_OPEN=15]="SCRIPT_DATA_END_TAG_OPEN",st[st.SCRIPT_DATA_END_TAG_NAME=16]="SCRIPT_DATA_END_TAG_NAME",st[st.SCRIPT_DATA_ESCAPE_START=17]="SCRIPT_DATA_ESCAPE_START",st[st.SCRIPT_DATA_ESCAPE_START_DASH=18]="SCRIPT_DATA_ESCAPE_START_DASH",st[st.SCRIPT_DATA_ESCAPED=19]="SCRIPT_DATA_ESCAPED",st[st.SCRIPT_DATA_ESCAPED_DASH=20]="SCRIPT_DATA_ESCAPED_DASH",st[st.SCRIPT_DATA_ESCAPED_DASH_DASH=21]="SCRIPT_DATA_ESCAPED_DASH_DASH",st[st.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN=22]="SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN",st[st.SCRIPT_DATA_ESCAPED_END_TAG_OPEN=23]="SCRIPT_DATA_ESCAPED_END_TAG_OPEN",st[st.SCRIPT_DATA_ESCAPED_END_TAG_NAME=24]="SCRIPT_DATA_ESCAPED_END_TAG_NAME",st[st.SCRIPT_DATA_DOUBLE_ESCAPE_START=25]="SCRIPT_DATA_DOUBLE_ESCAPE_START",st[st.SCRIPT_DATA_DOUBLE_ESCAPED=26]="SCRIPT_DATA_DOUBLE_ESCAPED",st[st.SCRIPT_DATA_DOUBLE_ESCAPED_DASH=27]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH",st[st.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH=28]="SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH",st[st.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN=29]="SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN",st[st.SCRIPT_DATA_DOUBLE_ESCAPE_END=30]="SCRIPT_DATA_DOUBLE_ESCAPE_END",st[st.BEFORE_ATTRIBUTE_NAME=31]="BEFORE_ATTRIBUTE_NAME",st[st.ATTRIBUTE_NAME=32]="ATTRIBUTE_NAME",st[st.AFTER_ATTRIBUTE_NAME=33]="AFTER_ATTRIBUTE_NAME",st[st.BEFORE_ATTRIBUTE_VALUE=34]="BEFORE_ATTRIBUTE_VALUE",st[st.ATTRIBUTE_VALUE_DOUBLE_QUOTED=35]="ATTRIBUTE_VALUE_DOUBLE_QUOTED",st[st.ATTRIBUTE_VALUE_SINGLE_QUOTED=36]="ATTRIBUTE_VALUE_SINGLE_QUOTED",st[st.ATTRIBUTE_VALUE_UNQUOTED=37]="ATTRIBUTE_VALUE_UNQUOTED",st[st.AFTER_ATTRIBUTE_VALUE_QUOTED=38]="AFTER_ATTRIBUTE_VALUE_QUOTED",st[st.SELF_CLOSING_START_TAG=39]="SELF_CLOSING_START_TAG",st[st.BOGUS_COMMENT=40]="BOGUS_COMMENT",st[st.MARKUP_DECLARATION_OPEN=41]="MARKUP_DECLARATION_OPEN",st[st.COMMENT_START=42]="COMMENT_START",st[st.COMMENT_START_DASH=43]="COMMENT_START_DASH",st[st.COMMENT=44]="COMMENT",st[st.COMMENT_LESS_THAN_SIGN=45]="COMMENT_LESS_THAN_SIGN",st[st.COMMENT_LESS_THAN_SIGN_BANG=46]="COMMENT_LESS_THAN_SIGN_BANG",st[st.COMMENT_LESS_THAN_SIGN_BANG_DASH=47]="COMMENT_LESS_THAN_SIGN_BANG_DASH",st[st.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH=48]="COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH",st[st.COMMENT_END_DASH=49]="COMMENT_END_DASH",st[st.COMMENT_END=50]="COMMENT_END",st[st.COMMENT_END_BANG=51]="COMMENT_END_BANG",st[st.DOCTYPE=52]="DOCTYPE",st[st.BEFORE_DOCTYPE_NAME=53]="BEFORE_DOCTYPE_NAME",st[st.DOCTYPE_NAME=54]="DOCTYPE_NAME",st[st.AFTER_DOCTYPE_NAME=55]="AFTER_DOCTYPE_NAME",st[st.AFTER_DOCTYPE_PUBLIC_KEYWORD=56]="AFTER_DOCTYPE_PUBLIC_KEYWORD",st[st.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER=57]="BEFORE_DOCTYPE_PUBLIC_IDENTIFIER",st[st.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED=58]="DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED",st[st.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED=59]="DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED",st[st.AFTER_DOCTYPE_PUBLIC_IDENTIFIER=60]="AFTER_DOCTYPE_PUBLIC_IDENTIFIER",st[st.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS=61]="BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS",st[st.AFTER_DOCTYPE_SYSTEM_KEYWORD=62]="AFTER_DOCTYPE_SYSTEM_KEYWORD",st[st.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER=63]="BEFORE_DOCTYPE_SYSTEM_IDENTIFIER",st[st.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED=64]="DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED",st[st.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED=65]="DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED",st[st.AFTER_DOCTYPE_SYSTEM_IDENTIFIER=66]="AFTER_DOCTYPE_SYSTEM_IDENTIFIER",st[st.BOGUS_DOCTYPE=67]="BOGUS_DOCTYPE",st[st.CDATA_SECTION=68]="CDATA_SECTION",st[st.CDATA_SECTION_BRACKET=69]="CDATA_SECTION_BRACKET",st[st.CDATA_SECTION_END=70]="CDATA_SECTION_END",st[st.CHARACTER_REFERENCE=71]="CHARACTER_REFERENCE",st[st.AMBIGUOUS_AMPERSAND=72]="AMBIGUOUS_AMPERSAND"})(State$2||(State$2={}));const TokenizerMode={DATA:State$2.DATA,RCDATA:State$2.RCDATA,RAWTEXT:State$2.RAWTEXT,SCRIPT_DATA:State$2.SCRIPT_DATA,PLAINTEXT:State$2.PLAINTEXT,CDATA_SECTION:State$2.CDATA_SECTION};function isAsciiDigit(st){return st>=CODE_POINTS.DIGIT_0&&st<=CODE_POINTS.DIGIT_9}function isAsciiUpper(st){return st>=CODE_POINTS.LATIN_CAPITAL_A&&st<=CODE_POINTS.LATIN_CAPITAL_Z}function isAsciiLower(st){return st>=CODE_POINTS.LATIN_SMALL_A&&st<=CODE_POINTS.LATIN_SMALL_Z}function isAsciiLetter(st){return isAsciiLower(st)||isAsciiUpper(st)}function isAsciiAlphaNumeric(st){return isAsciiLetter(st)||isAsciiDigit(st)}function toAsciiLower(st){return st+32}function isWhitespace$1(st){return st===CODE_POINTS.SPACE||st===CODE_POINTS.LINE_FEED||st===CODE_POINTS.TABULATION||st===CODE_POINTS.FORM_FEED}function isScriptDataDoubleEscapeSequenceEnd(st){return isWhitespace$1(st)||st===CODE_POINTS.SOLIDUS||st===CODE_POINTS.GREATER_THAN_SIGN}function getErrorForNumericCharacterReference(st){return st===CODE_POINTS.NULL?ERR.nullCharacterReference:st>1114111?ERR.characterReferenceOutsideUnicodeRange:isSurrogate(st)?ERR.surrogateCharacterReference:isUndefinedCodePoint(st)?ERR.noncharacterCharacterReference:isControlCodePoint(st)||st===CODE_POINTS.CARRIAGE_RETURN?ERR.controlCharacterReference:null}let Tokenizer$1=class{constructor(at,ut){this.options=at,this.handler=ut,this.paused=!1,this.inLoop=!1,this.inForeignNode=!1,this.lastStartTagName="",this.active=!1,this.state=State$2.DATA,this.returnState=State$2.DATA,this.entityStartPos=0,this.consumedAfterSnapshot=-1,this.currentCharacterToken=null,this.currentToken=null,this.currentAttr={name:"",value:""},this.preprocessor=new Preprocessor(ut),this.currentLocation=this.getCurrentLocation(-1),this.entityDecoder=new EntityDecoder(htmlDecodeTree,(dt,ct)=>{this.preprocessor.pos=this.entityStartPos+ct-1,this._flushCodePointConsumedAsCharacterReference(dt)},ut.onParseError?{missingSemicolonAfterCharacterReference:()=>{this._err(ERR.missingSemicolonAfterCharacterReference,1)},absenceOfDigitsInNumericCharacterReference:dt=>{this._err(ERR.absenceOfDigitsInNumericCharacterReference,this.entityStartPos-this.preprocessor.pos+dt)},validateNumericCharacterReference:dt=>{const ct=getErrorForNumericCharacterReference(dt);ct&&this._err(ct,1)}}:void 0)}_err(at,ut=0){var dt,ct;(ct=(dt=this.handler).onParseError)===null||ct===void 0||ct.call(dt,this.preprocessor.getError(at,ut))}getCurrentLocation(at){return this.options.sourceCodeLocationInfo?{startLine:this.preprocessor.line,startCol:this.preprocessor.col-at,startOffset:this.preprocessor.offset-at,endLine:-1,endCol:-1,endOffset:-1}:null}_runParsingLoop(){if(!this.inLoop){for(this.inLoop=!0;this.active&&!this.paused;){this.consumedAfterSnapshot=0;const at=this._consume();this._ensureHibernation()||this._callState(at)}this.inLoop=!1}}pause(){this.paused=!0}resume(at){if(!this.paused)throw new Error("Parser was already resumed");this.paused=!1,!this.inLoop&&(this._runParsingLoop(),this.paused||at==null||at())}write(at,ut,dt){this.active=!0,this.preprocessor.write(at,ut),this._runParsingLoop(),this.paused||dt==null||dt()}insertHtmlAtCurrentPos(at){this.active=!0,this.preprocessor.insertHtmlAtCurrentPos(at),this._runParsingLoop()}_ensureHibernation(){return this.preprocessor.endOfChunkHit?(this.preprocessor.retreat(this.consumedAfterSnapshot),this.consumedAfterSnapshot=0,this.active=!1,!0):!1}_consume(){return this.consumedAfterSnapshot++,this.preprocessor.advance()}_advanceBy(at){this.consumedAfterSnapshot+=at;for(let ut=0;ut0&&this._err(ERR.endTagWithAttributes),at.selfClosing&&this._err(ERR.endTagWithTrailingSolidus),this.handler.onEndTag(at)),this.preprocessor.dropParsedChunk()}emitCurrentComment(at){this.prepareToken(at),this.handler.onComment(at),this.preprocessor.dropParsedChunk()}emitCurrentDoctype(at){this.prepareToken(at),this.handler.onDoctype(at),this.preprocessor.dropParsedChunk()}_emitCurrentCharacterToken(at){if(this.currentCharacterToken){switch(at&&this.currentCharacterToken.location&&(this.currentCharacterToken.location.endLine=at.startLine,this.currentCharacterToken.location.endCol=at.startCol,this.currentCharacterToken.location.endOffset=at.startOffset),this.currentCharacterToken.type){case TokenType.CHARACTER:{this.handler.onCharacter(this.currentCharacterToken);break}case TokenType.NULL_CHARACTER:{this.handler.onNullCharacter(this.currentCharacterToken);break}case TokenType.WHITESPACE_CHARACTER:{this.handler.onWhitespaceCharacter(this.currentCharacterToken);break}}this.currentCharacterToken=null}}_emitEOFToken(){const at=this.getCurrentLocation(0);at&&(at.endLine=at.startLine,at.endCol=at.startCol,at.endOffset=at.startOffset),this._emitCurrentCharacterToken(at),this.handler.onEof({type:TokenType.EOF,location:at}),this.active=!1}_appendCharToCurrentCharacterToken(at,ut){if(this.currentCharacterToken)if(this.currentCharacterToken.type===at){this.currentCharacterToken.chars+=ut;return}else this.currentLocation=this.getCurrentLocation(0),this._emitCurrentCharacterToken(this.currentLocation),this.preprocessor.dropParsedChunk();this._createCharacterToken(at,ut)}_emitCodePoint(at){const ut=isWhitespace$1(at)?TokenType.WHITESPACE_CHARACTER:at===CODE_POINTS.NULL?TokenType.NULL_CHARACTER:TokenType.CHARACTER;this._appendCharToCurrentCharacterToken(ut,String.fromCodePoint(at))}_emitChars(at){this._appendCharToCurrentCharacterToken(TokenType.CHARACTER,at)}_startCharacterReference(){this.returnState=this.state,this.state=State$2.CHARACTER_REFERENCE,this.entityStartPos=this.preprocessor.pos,this.entityDecoder.startEntity(this._isCharacterReferenceInAttribute()?DecodingMode.Attribute:DecodingMode.Legacy)}_isCharacterReferenceInAttribute(){return this.returnState===State$2.ATTRIBUTE_VALUE_DOUBLE_QUOTED||this.returnState===State$2.ATTRIBUTE_VALUE_SINGLE_QUOTED||this.returnState===State$2.ATTRIBUTE_VALUE_UNQUOTED}_flushCodePointConsumedAsCharacterReference(at){this._isCharacterReferenceInAttribute()?this.currentAttr.value+=String.fromCodePoint(at):this._emitCodePoint(at)}_callState(at){switch(this.state){case State$2.DATA:{this._stateData(at);break}case State$2.RCDATA:{this._stateRcdata(at);break}case State$2.RAWTEXT:{this._stateRawtext(at);break}case State$2.SCRIPT_DATA:{this._stateScriptData(at);break}case State$2.PLAINTEXT:{this._statePlaintext(at);break}case State$2.TAG_OPEN:{this._stateTagOpen(at);break}case State$2.END_TAG_OPEN:{this._stateEndTagOpen(at);break}case State$2.TAG_NAME:{this._stateTagName(at);break}case State$2.RCDATA_LESS_THAN_SIGN:{this._stateRcdataLessThanSign(at);break}case State$2.RCDATA_END_TAG_OPEN:{this._stateRcdataEndTagOpen(at);break}case State$2.RCDATA_END_TAG_NAME:{this._stateRcdataEndTagName(at);break}case State$2.RAWTEXT_LESS_THAN_SIGN:{this._stateRawtextLessThanSign(at);break}case State$2.RAWTEXT_END_TAG_OPEN:{this._stateRawtextEndTagOpen(at);break}case State$2.RAWTEXT_END_TAG_NAME:{this._stateRawtextEndTagName(at);break}case State$2.SCRIPT_DATA_LESS_THAN_SIGN:{this._stateScriptDataLessThanSign(at);break}case State$2.SCRIPT_DATA_END_TAG_OPEN:{this._stateScriptDataEndTagOpen(at);break}case State$2.SCRIPT_DATA_END_TAG_NAME:{this._stateScriptDataEndTagName(at);break}case State$2.SCRIPT_DATA_ESCAPE_START:{this._stateScriptDataEscapeStart(at);break}case State$2.SCRIPT_DATA_ESCAPE_START_DASH:{this._stateScriptDataEscapeStartDash(at);break}case State$2.SCRIPT_DATA_ESCAPED:{this._stateScriptDataEscaped(at);break}case State$2.SCRIPT_DATA_ESCAPED_DASH:{this._stateScriptDataEscapedDash(at);break}case State$2.SCRIPT_DATA_ESCAPED_DASH_DASH:{this._stateScriptDataEscapedDashDash(at);break}case State$2.SCRIPT_DATA_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataEscapedLessThanSign(at);break}case State$2.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:{this._stateScriptDataEscapedEndTagOpen(at);break}case State$2.SCRIPT_DATA_ESCAPED_END_TAG_NAME:{this._stateScriptDataEscapedEndTagName(at);break}case State$2.SCRIPT_DATA_DOUBLE_ESCAPE_START:{this._stateScriptDataDoubleEscapeStart(at);break}case State$2.SCRIPT_DATA_DOUBLE_ESCAPED:{this._stateScriptDataDoubleEscaped(at);break}case State$2.SCRIPT_DATA_DOUBLE_ESCAPED_DASH:{this._stateScriptDataDoubleEscapedDash(at);break}case State$2.SCRIPT_DATA_DOUBLE_ESCAPED_DASH_DASH:{this._stateScriptDataDoubleEscapedDashDash(at);break}case State$2.SCRIPT_DATA_DOUBLE_ESCAPED_LESS_THAN_SIGN:{this._stateScriptDataDoubleEscapedLessThanSign(at);break}case State$2.SCRIPT_DATA_DOUBLE_ESCAPE_END:{this._stateScriptDataDoubleEscapeEnd(at);break}case State$2.BEFORE_ATTRIBUTE_NAME:{this._stateBeforeAttributeName(at);break}case State$2.ATTRIBUTE_NAME:{this._stateAttributeName(at);break}case State$2.AFTER_ATTRIBUTE_NAME:{this._stateAfterAttributeName(at);break}case State$2.BEFORE_ATTRIBUTE_VALUE:{this._stateBeforeAttributeValue(at);break}case State$2.ATTRIBUTE_VALUE_DOUBLE_QUOTED:{this._stateAttributeValueDoubleQuoted(at);break}case State$2.ATTRIBUTE_VALUE_SINGLE_QUOTED:{this._stateAttributeValueSingleQuoted(at);break}case State$2.ATTRIBUTE_VALUE_UNQUOTED:{this._stateAttributeValueUnquoted(at);break}case State$2.AFTER_ATTRIBUTE_VALUE_QUOTED:{this._stateAfterAttributeValueQuoted(at);break}case State$2.SELF_CLOSING_START_TAG:{this._stateSelfClosingStartTag(at);break}case State$2.BOGUS_COMMENT:{this._stateBogusComment(at);break}case State$2.MARKUP_DECLARATION_OPEN:{this._stateMarkupDeclarationOpen(at);break}case State$2.COMMENT_START:{this._stateCommentStart(at);break}case State$2.COMMENT_START_DASH:{this._stateCommentStartDash(at);break}case State$2.COMMENT:{this._stateComment(at);break}case State$2.COMMENT_LESS_THAN_SIGN:{this._stateCommentLessThanSign(at);break}case State$2.COMMENT_LESS_THAN_SIGN_BANG:{this._stateCommentLessThanSignBang(at);break}case State$2.COMMENT_LESS_THAN_SIGN_BANG_DASH:{this._stateCommentLessThanSignBangDash(at);break}case State$2.COMMENT_LESS_THAN_SIGN_BANG_DASH_DASH:{this._stateCommentLessThanSignBangDashDash(at);break}case State$2.COMMENT_END_DASH:{this._stateCommentEndDash(at);break}case State$2.COMMENT_END:{this._stateCommentEnd(at);break}case State$2.COMMENT_END_BANG:{this._stateCommentEndBang(at);break}case State$2.DOCTYPE:{this._stateDoctype(at);break}case State$2.BEFORE_DOCTYPE_NAME:{this._stateBeforeDoctypeName(at);break}case State$2.DOCTYPE_NAME:{this._stateDoctypeName(at);break}case State$2.AFTER_DOCTYPE_NAME:{this._stateAfterDoctypeName(at);break}case State$2.AFTER_DOCTYPE_PUBLIC_KEYWORD:{this._stateAfterDoctypePublicKeyword(at);break}case State$2.BEFORE_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateBeforeDoctypePublicIdentifier(at);break}case State$2.DOCTYPE_PUBLIC_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypePublicIdentifierDoubleQuoted(at);break}case State$2.DOCTYPE_PUBLIC_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypePublicIdentifierSingleQuoted(at);break}case State$2.AFTER_DOCTYPE_PUBLIC_IDENTIFIER:{this._stateAfterDoctypePublicIdentifier(at);break}case State$2.BETWEEN_DOCTYPE_PUBLIC_AND_SYSTEM_IDENTIFIERS:{this._stateBetweenDoctypePublicAndSystemIdentifiers(at);break}case State$2.AFTER_DOCTYPE_SYSTEM_KEYWORD:{this._stateAfterDoctypeSystemKeyword(at);break}case State$2.BEFORE_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateBeforeDoctypeSystemIdentifier(at);break}case State$2.DOCTYPE_SYSTEM_IDENTIFIER_DOUBLE_QUOTED:{this._stateDoctypeSystemIdentifierDoubleQuoted(at);break}case State$2.DOCTYPE_SYSTEM_IDENTIFIER_SINGLE_QUOTED:{this._stateDoctypeSystemIdentifierSingleQuoted(at);break}case State$2.AFTER_DOCTYPE_SYSTEM_IDENTIFIER:{this._stateAfterDoctypeSystemIdentifier(at);break}case State$2.BOGUS_DOCTYPE:{this._stateBogusDoctype(at);break}case State$2.CDATA_SECTION:{this._stateCdataSection(at);break}case State$2.CDATA_SECTION_BRACKET:{this._stateCdataSectionBracket(at);break}case State$2.CDATA_SECTION_END:{this._stateCdataSectionEnd(at);break}case State$2.CHARACTER_REFERENCE:{this._stateCharacterReference();break}case State$2.AMBIGUOUS_AMPERSAND:{this._stateAmbiguousAmpersand(at);break}default:throw new Error("Unknown state")}}_stateData(at){switch(at){case CODE_POINTS.LESS_THAN_SIGN:{this.state=State$2.TAG_OPEN;break}case CODE_POINTS.AMPERSAND:{this._startCharacterReference();break}case CODE_POINTS.NULL:{this._err(ERR.unexpectedNullCharacter),this._emitCodePoint(at);break}case CODE_POINTS.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(at)}}_stateRcdata(at){switch(at){case CODE_POINTS.AMPERSAND:{this._startCharacterReference();break}case CODE_POINTS.LESS_THAN_SIGN:{this.state=State$2.RCDATA_LESS_THAN_SIGN;break}case CODE_POINTS.NULL:{this._err(ERR.unexpectedNullCharacter),this._emitChars(REPLACEMENT_CHARACTER);break}case CODE_POINTS.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(at)}}_stateRawtext(at){switch(at){case CODE_POINTS.LESS_THAN_SIGN:{this.state=State$2.RAWTEXT_LESS_THAN_SIGN;break}case CODE_POINTS.NULL:{this._err(ERR.unexpectedNullCharacter),this._emitChars(REPLACEMENT_CHARACTER);break}case CODE_POINTS.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(at)}}_stateScriptData(at){switch(at){case CODE_POINTS.LESS_THAN_SIGN:{this.state=State$2.SCRIPT_DATA_LESS_THAN_SIGN;break}case CODE_POINTS.NULL:{this._err(ERR.unexpectedNullCharacter),this._emitChars(REPLACEMENT_CHARACTER);break}case CODE_POINTS.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(at)}}_statePlaintext(at){switch(at){case CODE_POINTS.NULL:{this._err(ERR.unexpectedNullCharacter),this._emitChars(REPLACEMENT_CHARACTER);break}case CODE_POINTS.EOF:{this._emitEOFToken();break}default:this._emitCodePoint(at)}}_stateTagOpen(at){if(isAsciiLetter(at))this._createStartTagToken(),this.state=State$2.TAG_NAME,this._stateTagName(at);else switch(at){case CODE_POINTS.EXCLAMATION_MARK:{this.state=State$2.MARKUP_DECLARATION_OPEN;break}case CODE_POINTS.SOLIDUS:{this.state=State$2.END_TAG_OPEN;break}case CODE_POINTS.QUESTION_MARK:{this._err(ERR.unexpectedQuestionMarkInsteadOfTagName),this._createCommentToken(1),this.state=State$2.BOGUS_COMMENT,this._stateBogusComment(at);break}case CODE_POINTS.EOF:{this._err(ERR.eofBeforeTagName),this._emitChars("<"),this._emitEOFToken();break}default:this._err(ERR.invalidFirstCharacterOfTagName),this._emitChars("<"),this.state=State$2.DATA,this._stateData(at)}}_stateEndTagOpen(at){if(isAsciiLetter(at))this._createEndTagToken(),this.state=State$2.TAG_NAME,this._stateTagName(at);else switch(at){case CODE_POINTS.GREATER_THAN_SIGN:{this._err(ERR.missingEndTagName),this.state=State$2.DATA;break}case CODE_POINTS.EOF:{this._err(ERR.eofBeforeTagName),this._emitChars("");break}case CODE_POINTS.NULL:{this._err(ERR.unexpectedNullCharacter),this.state=State$2.SCRIPT_DATA_ESCAPED,this._emitChars(REPLACEMENT_CHARACTER);break}case CODE_POINTS.EOF:{this._err(ERR.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=State$2.SCRIPT_DATA_ESCAPED,this._emitCodePoint(at)}}_stateScriptDataEscapedLessThanSign(at){at===CODE_POINTS.SOLIDUS?this.state=State$2.SCRIPT_DATA_ESCAPED_END_TAG_OPEN:isAsciiLetter(at)?(this._emitChars("<"),this.state=State$2.SCRIPT_DATA_DOUBLE_ESCAPE_START,this._stateScriptDataDoubleEscapeStart(at)):(this._emitChars("<"),this.state=State$2.SCRIPT_DATA_ESCAPED,this._stateScriptDataEscaped(at))}_stateScriptDataEscapedEndTagOpen(at){isAsciiLetter(at)?(this.state=State$2.SCRIPT_DATA_ESCAPED_END_TAG_NAME,this._stateScriptDataEscapedEndTagName(at)):(this._emitChars("");break}case CODE_POINTS.NULL:{this._err(ERR.unexpectedNullCharacter),this.state=State$2.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitChars(REPLACEMENT_CHARACTER);break}case CODE_POINTS.EOF:{this._err(ERR.eofInScriptHtmlCommentLikeText),this._emitEOFToken();break}default:this.state=State$2.SCRIPT_DATA_DOUBLE_ESCAPED,this._emitCodePoint(at)}}_stateScriptDataDoubleEscapedLessThanSign(at){at===CODE_POINTS.SOLIDUS?(this.state=State$2.SCRIPT_DATA_DOUBLE_ESCAPE_END,this._emitChars("/")):(this.state=State$2.SCRIPT_DATA_DOUBLE_ESCAPED,this._stateScriptDataDoubleEscaped(at))}_stateScriptDataDoubleEscapeEnd(at){if(this.preprocessor.startsWith(SEQUENCES.SCRIPT,!1)&&isScriptDataDoubleEscapeSequenceEnd(this.preprocessor.peek(SEQUENCES.SCRIPT.length))){this._emitCodePoint(at);for(let ut=0;ut0&&this._isInTemplate()&&this.tmplCount--,this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(at,!0)}replace(at,ut){const dt=this._indexOf(at);this.items[dt]=ut,dt===this.stackTop&&(this.current=ut)}insertAfter(at,ut,dt){const ct=this._indexOf(at)+1;this.items.splice(ct,0,ut),this.tagIDs.splice(ct,0,dt),this.stackTop++,ct===this.stackTop&&this._updateCurrentElement(),this.current&&this.currentTagId!==void 0&&this.handler.onItemPush(this.current,this.currentTagId,ct===this.stackTop)}popUntilTagNamePopped(at){let ut=this.stackTop+1;do ut=this.tagIDs.lastIndexOf(at,ut-1);while(ut>0&&this.treeAdapter.getNamespaceURI(this.items[ut])!==NS.HTML);this.shortenToLength(Math.max(ut,0))}shortenToLength(at){for(;this.stackTop>=at;){const ut=this.current;this.tmplCount>0&&this._isInTemplate()&&(this.tmplCount-=1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(ut,this.stackTop=0;dt--)if(at.has(this.tagIDs[dt])&&this.treeAdapter.getNamespaceURI(this.items[dt])===ut)return dt;return-1}clearBackTo(at,ut){const dt=this._indexOfTagNames(at,ut);this.shortenToLength(dt+1)}clearBackToTableContext(){this.clearBackTo(TABLE_CONTEXT,NS.HTML)}clearBackToTableBodyContext(){this.clearBackTo(TABLE_BODY_CONTEXT,NS.HTML)}clearBackToTableRowContext(){this.clearBackTo(TABLE_ROW_CONTEXT,NS.HTML)}remove(at){const ut=this._indexOf(at);ut>=0&&(ut===this.stackTop?this.pop():(this.items.splice(ut,1),this.tagIDs.splice(ut,1),this.stackTop--,this._updateCurrentElement(),this.handler.onItemPop(at,!1)))}tryPeekProperlyNestedBodyElement(){return this.stackTop>=1&&this.tagIDs[1]===TAG_ID.BODY?this.items[1]:null}contains(at){return this._indexOf(at)>-1}getCommonAncestor(at){const ut=this._indexOf(at)-1;return ut>=0?this.items[ut]:null}isRootHtmlElementCurrent(){return this.stackTop===0&&this.tagIDs[0]===TAG_ID.HTML}hasInDynamicScope(at,ut){for(let dt=this.stackTop;dt>=0;dt--){const ct=this.tagIDs[dt];switch(this.treeAdapter.getNamespaceURI(this.items[dt])){case NS.HTML:{if(ct===at)return!0;if(ut.has(ct))return!1;break}case NS.SVG:{if(SCOPING_ELEMENTS_SVG.has(ct))return!1;break}case NS.MATHML:{if(SCOPING_ELEMENTS_MATHML.has(ct))return!1;break}}}return!0}hasInScope(at){return this.hasInDynamicScope(at,SCOPING_ELEMENTS_HTML)}hasInListItemScope(at){return this.hasInDynamicScope(at,SCOPING_ELEMENTS_HTML_LIST)}hasInButtonScope(at){return this.hasInDynamicScope(at,SCOPING_ELEMENTS_HTML_BUTTON)}hasNumberedHeaderInScope(){for(let at=this.stackTop;at>=0;at--){const ut=this.tagIDs[at];switch(this.treeAdapter.getNamespaceURI(this.items[at])){case NS.HTML:{if(NUMBERED_HEADERS.has(ut))return!0;if(SCOPING_ELEMENTS_HTML.has(ut))return!1;break}case NS.SVG:{if(SCOPING_ELEMENTS_SVG.has(ut))return!1;break}case NS.MATHML:{if(SCOPING_ELEMENTS_MATHML.has(ut))return!1;break}}}return!0}hasInTableScope(at){for(let ut=this.stackTop;ut>=0;ut--)if(this.treeAdapter.getNamespaceURI(this.items[ut])===NS.HTML)switch(this.tagIDs[ut]){case at:return!0;case TAG_ID.TABLE:case TAG_ID.HTML:return!1}return!0}hasTableBodyContextInTableScope(){for(let at=this.stackTop;at>=0;at--)if(this.treeAdapter.getNamespaceURI(this.items[at])===NS.HTML)switch(this.tagIDs[at]){case TAG_ID.TBODY:case TAG_ID.THEAD:case TAG_ID.TFOOT:return!0;case TAG_ID.TABLE:case TAG_ID.HTML:return!1}return!0}hasInSelectScope(at){for(let ut=this.stackTop;ut>=0;ut--)if(this.treeAdapter.getNamespaceURI(this.items[ut])===NS.HTML)switch(this.tagIDs[ut]){case at:return!0;case TAG_ID.OPTION:case TAG_ID.OPTGROUP:break;default:return!1}return!0}generateImpliedEndTags(){for(;this.currentTagId!==void 0&&IMPLICIT_END_TAG_REQUIRED.has(this.currentTagId);)this.pop()}generateImpliedEndTagsThoroughly(){for(;this.currentTagId!==void 0&&IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId);)this.pop()}generateImpliedEndTagsWithExclusion(at){for(;this.currentTagId!==void 0&&this.currentTagId!==at&&IMPLICIT_END_TAG_REQUIRED_THOROUGHLY.has(this.currentTagId);)this.pop()}}const NOAH_ARK_CAPACITY=3;var EntryType;(function(st){st[st.Marker=0]="Marker",st[st.Element=1]="Element"})(EntryType||(EntryType={}));const MARKER={type:EntryType.Marker};class FormattingElementList{constructor(at){this.treeAdapter=at,this.entries=[],this.bookmark=null}_getNoahArkConditionCandidates(at,ut){const dt=[],ct=ut.length,pt=this.treeAdapter.getTagName(at),ft=this.treeAdapter.getNamespaceURI(at);for(let ht=0;ht[ft.name,ft.value]));let pt=0;for(let ft=0;ftct.get(mt.name)===mt.value)&&(pt+=1,pt>=NOAH_ARK_CAPACITY&&this.entries.splice(ht.idx,1))}}insertMarker(){this.entries.unshift(MARKER)}pushElement(at,ut){this._ensureNoahArkCondition(at),this.entries.unshift({type:EntryType.Element,element:at,token:ut})}insertElementAfterBookmark(at,ut){const dt=this.entries.indexOf(this.bookmark);this.entries.splice(dt,0,{type:EntryType.Element,element:at,token:ut})}removeEntry(at){const ut=this.entries.indexOf(at);ut!==-1&&this.entries.splice(ut,1)}clearToLastMarker(){const at=this.entries.indexOf(MARKER);at===-1?this.entries.length=0:this.entries.splice(0,at+1)}getElementEntryInScopeWithTagName(at){const ut=this.entries.find(dt=>dt.type===EntryType.Marker||this.treeAdapter.getTagName(dt.element)===at);return ut&&ut.type===EntryType.Element?ut:null}getElementEntry(at){return this.entries.find(ut=>ut.type===EntryType.Element&&ut.element===at)}}const defaultTreeAdapter={createDocument(){return{nodeName:"#document",mode:DOCUMENT_MODE.NO_QUIRKS,childNodes:[]}},createDocumentFragment(){return{nodeName:"#document-fragment",childNodes:[]}},createElement(st,at,ut){return{nodeName:st,tagName:st,attrs:ut,namespaceURI:at,childNodes:[],parentNode:null}},createCommentNode(st){return{nodeName:"#comment",data:st,parentNode:null}},createTextNode(st){return{nodeName:"#text",value:st,parentNode:null}},appendChild(st,at){st.childNodes.push(at),at.parentNode=st},insertBefore(st,at,ut){const dt=st.childNodes.indexOf(ut);st.childNodes.splice(dt,0,at),at.parentNode=st},setTemplateContent(st,at){st.content=at},getTemplateContent(st){return st.content},setDocumentType(st,at,ut,dt){const ct=st.childNodes.find(pt=>pt.nodeName==="#documentType");if(ct)ct.name=at,ct.publicId=ut,ct.systemId=dt;else{const pt={nodeName:"#documentType",name:at,publicId:ut,systemId:dt,parentNode:null};defaultTreeAdapter.appendChild(st,pt)}},setDocumentMode(st,at){st.mode=at},getDocumentMode(st){return st.mode},detachNode(st){if(st.parentNode){const at=st.parentNode.childNodes.indexOf(st);st.parentNode.childNodes.splice(at,1),st.parentNode=null}},insertText(st,at){if(st.childNodes.length>0){const ut=st.childNodes[st.childNodes.length-1];if(defaultTreeAdapter.isTextNode(ut)){ut.value+=at;return}}defaultTreeAdapter.appendChild(st,defaultTreeAdapter.createTextNode(at))},insertTextBefore(st,at,ut){const dt=st.childNodes[st.childNodes.indexOf(ut)-1];dt&&defaultTreeAdapter.isTextNode(dt)?dt.value+=at:defaultTreeAdapter.insertBefore(st,defaultTreeAdapter.createTextNode(at),ut)},adoptAttributes(st,at){const ut=new Set(st.attrs.map(dt=>dt.name));for(let dt=0;dtst.startsWith(ut))}function isConforming(st){return st.name===VALID_DOCTYPE_NAME&&st.publicId===null&&(st.systemId===null||st.systemId===VALID_SYSTEM_ID)}function getDocumentMode(st){if(st.name!==VALID_DOCTYPE_NAME)return DOCUMENT_MODE.QUIRKS;const{systemId:at}=st;if(at&&at.toLowerCase()===QUIRKS_MODE_SYSTEM_ID)return DOCUMENT_MODE.QUIRKS;let{publicId:ut}=st;if(ut!==null){if(ut=ut.toLowerCase(),QUIRKS_MODE_PUBLIC_IDS.has(ut))return DOCUMENT_MODE.QUIRKS;let dt=at===null?QUIRKS_MODE_NO_SYSTEM_ID_PUBLIC_ID_PREFIXES:QUIRKS_MODE_PUBLIC_ID_PREFIXES;if(hasPrefix(ut,dt))return DOCUMENT_MODE.QUIRKS;if(dt=at===null?LIMITED_QUIRKS_PUBLIC_ID_PREFIXES:LIMITED_QUIRKS_WITH_SYSTEM_ID_PUBLIC_ID_PREFIXES,hasPrefix(ut,dt))return DOCUMENT_MODE.LIMITED_QUIRKS}return DOCUMENT_MODE.NO_QUIRKS}const MIME_TYPES={TEXT_HTML:"text/html",APPLICATION_XML:"application/xhtml+xml"},DEFINITION_URL_ATTR="definitionurl",ADJUSTED_DEFINITION_URL_ATTR="definitionURL",SVG_ATTRS_ADJUSTMENT_MAP=new Map(["attributeName","attributeType","baseFrequency","baseProfile","calcMode","clipPathUnits","diffuseConstant","edgeMode","filterUnits","glyphRef","gradientTransform","gradientUnits","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","lengthAdjust","limitingConeAngle","markerHeight","markerUnits","markerWidth","maskContentUnits","maskUnits","numOctaves","pathLength","patternContentUnits","patternTransform","patternUnits","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","specularConstant","specularExponent","spreadMethod","startOffset","stdDeviation","stitchTiles","surfaceScale","systemLanguage","tableValues","targetX","targetY","textLength","viewBox","viewTarget","xChannelSelector","yChannelSelector","zoomAndPan"].map(st=>[st.toLowerCase(),st])),XML_ATTRS_ADJUSTMENT_MAP=new Map([["xlink:actuate",{prefix:"xlink",name:"actuate",namespace:NS.XLINK}],["xlink:arcrole",{prefix:"xlink",name:"arcrole",namespace:NS.XLINK}],["xlink:href",{prefix:"xlink",name:"href",namespace:NS.XLINK}],["xlink:role",{prefix:"xlink",name:"role",namespace:NS.XLINK}],["xlink:show",{prefix:"xlink",name:"show",namespace:NS.XLINK}],["xlink:title",{prefix:"xlink",name:"title",namespace:NS.XLINK}],["xlink:type",{prefix:"xlink",name:"type",namespace:NS.XLINK}],["xml:lang",{prefix:"xml",name:"lang",namespace:NS.XML}],["xml:space",{prefix:"xml",name:"space",namespace:NS.XML}],["xmlns",{prefix:"",name:"xmlns",namespace:NS.XMLNS}],["xmlns:xlink",{prefix:"xmlns",name:"xlink",namespace:NS.XMLNS}]]),SVG_TAG_NAMES_ADJUSTMENT_MAP=new Map(["altGlyph","altGlyphDef","altGlyphItem","animateColor","animateMotion","animateTransform","clipPath","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","foreignObject","glyphRef","linearGradient","radialGradient","textPath"].map(st=>[st.toLowerCase(),st])),EXITS_FOREIGN_CONTENT=new Set([TAG_ID.B,TAG_ID.BIG,TAG_ID.BLOCKQUOTE,TAG_ID.BODY,TAG_ID.BR,TAG_ID.CENTER,TAG_ID.CODE,TAG_ID.DD,TAG_ID.DIV,TAG_ID.DL,TAG_ID.DT,TAG_ID.EM,TAG_ID.EMBED,TAG_ID.H1,TAG_ID.H2,TAG_ID.H3,TAG_ID.H4,TAG_ID.H5,TAG_ID.H6,TAG_ID.HEAD,TAG_ID.HR,TAG_ID.I,TAG_ID.IMG,TAG_ID.LI,TAG_ID.LISTING,TAG_ID.MENU,TAG_ID.META,TAG_ID.NOBR,TAG_ID.OL,TAG_ID.P,TAG_ID.PRE,TAG_ID.RUBY,TAG_ID.S,TAG_ID.SMALL,TAG_ID.SPAN,TAG_ID.STRONG,TAG_ID.STRIKE,TAG_ID.SUB,TAG_ID.SUP,TAG_ID.TABLE,TAG_ID.TT,TAG_ID.U,TAG_ID.UL,TAG_ID.VAR]);function causesExit(st){const at=st.tagID;return at===TAG_ID.FONT&&st.attrs.some(({name:dt})=>dt===ATTRS.COLOR||dt===ATTRS.SIZE||dt===ATTRS.FACE)||EXITS_FOREIGN_CONTENT.has(at)}function adjustTokenMathMLAttrs(st){for(let at=0;at0&&this._setContextModes(at,ut)}onItemPop(at,ut){var dt,ct;if(this.options.sourceCodeLocationInfo&&this._setEndLocation(at,this.currentToken),(ct=(dt=this.treeAdapter).onItemPop)===null||ct===void 0||ct.call(dt,at,this.openElements.current),ut){let pt,ft;this.openElements.stackTop===0&&this.fragmentContext?(pt=this.fragmentContext,ft=this.fragmentContextID):{current:pt,currentTagId:ft}=this.openElements,this._setContextModes(pt,ft)}}_setContextModes(at,ut){const dt=at===this.document||at&&this.treeAdapter.getNamespaceURI(at)===NS.HTML;this.currentNotInHTML=!dt,this.tokenizer.inForeignNode=!dt&&at!==void 0&&ut!==void 0&&!this._isIntegrationPoint(ut,at)}_switchToTextParsing(at,ut){this._insertElement(at,NS.HTML),this.tokenizer.state=ut,this.originalInsertionMode=this.insertionMode,this.insertionMode=InsertionMode.TEXT}switchToPlaintextParsing(){this.insertionMode=InsertionMode.TEXT,this.originalInsertionMode=InsertionMode.IN_BODY,this.tokenizer.state=TokenizerMode.PLAINTEXT}_getAdjustedCurrentElement(){return this.openElements.stackTop===0&&this.fragmentContext?this.fragmentContext:this.openElements.current}_findFormInFragmentContext(){let at=this.fragmentContext;for(;at;){if(this.treeAdapter.getTagName(at)===TAG_NAMES.FORM){this.formElement=at;break}at=this.treeAdapter.getParentNode(at)}}_initTokenizerForFragmentParsing(){if(!(!this.fragmentContext||this.treeAdapter.getNamespaceURI(this.fragmentContext)!==NS.HTML))switch(this.fragmentContextID){case TAG_ID.TITLE:case TAG_ID.TEXTAREA:{this.tokenizer.state=TokenizerMode.RCDATA;break}case TAG_ID.STYLE:case TAG_ID.XMP:case TAG_ID.IFRAME:case TAG_ID.NOEMBED:case TAG_ID.NOFRAMES:case TAG_ID.NOSCRIPT:{this.tokenizer.state=TokenizerMode.RAWTEXT;break}case TAG_ID.SCRIPT:{this.tokenizer.state=TokenizerMode.SCRIPT_DATA;break}case TAG_ID.PLAINTEXT:{this.tokenizer.state=TokenizerMode.PLAINTEXT;break}}}_setDocumentType(at){const ut=at.name||"",dt=at.publicId||"",ct=at.systemId||"";if(this.treeAdapter.setDocumentType(this.document,ut,dt,ct),at.location){const ft=this.treeAdapter.getChildNodes(this.document).find(ht=>this.treeAdapter.isDocumentTypeNode(ht));ft&&this.treeAdapter.setNodeSourceCodeLocation(ft,at.location)}}_attachElementToTree(at,ut){if(this.options.sourceCodeLocationInfo){const dt=ut&&{...ut,startTag:ut};this.treeAdapter.setNodeSourceCodeLocation(at,dt)}if(this._shouldFosterParentOnInsertion())this._fosterParentElement(at);else{const dt=this.openElements.currentTmplContentOrNode;this.treeAdapter.appendChild(dt??this.document,at)}}_appendElement(at,ut){const dt=this.treeAdapter.createElement(at.tagName,ut,at.attrs);this._attachElementToTree(dt,at.location)}_insertElement(at,ut){const dt=this.treeAdapter.createElement(at.tagName,ut,at.attrs);this._attachElementToTree(dt,at.location),this.openElements.push(dt,at.tagID)}_insertFakeElement(at,ut){const dt=this.treeAdapter.createElement(at,NS.HTML,[]);this._attachElementToTree(dt,null),this.openElements.push(dt,ut)}_insertTemplate(at){const ut=this.treeAdapter.createElement(at.tagName,NS.HTML,at.attrs),dt=this.treeAdapter.createDocumentFragment();this.treeAdapter.setTemplateContent(ut,dt),this._attachElementToTree(ut,at.location),this.openElements.push(ut,at.tagID),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(dt,null)}_insertFakeRootElement(){const at=this.treeAdapter.createElement(TAG_NAMES.HTML,NS.HTML,[]);this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(at,null),this.treeAdapter.appendChild(this.openElements.current,at),this.openElements.push(at,TAG_ID.HTML)}_appendCommentNode(at,ut){const dt=this.treeAdapter.createCommentNode(at.data);this.treeAdapter.appendChild(ut,dt),this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(dt,at.location)}_insertCharacters(at){let ut,dt;if(this._shouldFosterParentOnInsertion()?({parent:ut,beforeElement:dt}=this._findFosterParentingLocation(),dt?this.treeAdapter.insertTextBefore(ut,at.chars,dt):this.treeAdapter.insertText(ut,at.chars)):(ut=this.openElements.currentTmplContentOrNode,this.treeAdapter.insertText(ut,at.chars)),!at.location)return;const ct=this.treeAdapter.getChildNodes(ut),pt=dt?ct.lastIndexOf(dt):ct.length,ft=ct[pt-1];if(this.treeAdapter.getNodeSourceCodeLocation(ft)){const{endLine:mt,endCol:yt,endOffset:bt}=at.location;this.treeAdapter.updateNodeSourceCodeLocation(ft,{endLine:mt,endCol:yt,endOffset:bt})}else this.options.sourceCodeLocationInfo&&this.treeAdapter.setNodeSourceCodeLocation(ft,at.location)}_adoptNodes(at,ut){for(let dt=this.treeAdapter.getFirstChild(at);dt;dt=this.treeAdapter.getFirstChild(at))this.treeAdapter.detachNode(dt),this.treeAdapter.appendChild(ut,dt)}_setEndLocation(at,ut){if(this.treeAdapter.getNodeSourceCodeLocation(at)&&ut.location){const dt=ut.location,ct=this.treeAdapter.getTagName(at),pt=ut.type===TokenType.END_TAG&&ct===ut.tagName?{endTag:{...dt},endLine:dt.endLine,endCol:dt.endCol,endOffset:dt.endOffset}:{endLine:dt.startLine,endCol:dt.startCol,endOffset:dt.startOffset};this.treeAdapter.updateNodeSourceCodeLocation(at,pt)}}shouldProcessStartTagTokenInForeignContent(at){if(!this.currentNotInHTML)return!1;let ut,dt;return this.openElements.stackTop===0&&this.fragmentContext?(ut=this.fragmentContext,dt=this.fragmentContextID):{current:ut,currentTagId:dt}=this.openElements,at.tagID===TAG_ID.SVG&&this.treeAdapter.getTagName(ut)===TAG_NAMES.ANNOTATION_XML&&this.treeAdapter.getNamespaceURI(ut)===NS.MATHML?!1:this.tokenizer.inForeignNode||(at.tagID===TAG_ID.MGLYPH||at.tagID===TAG_ID.MALIGNMARK)&&dt!==void 0&&!this._isIntegrationPoint(dt,ut,NS.HTML)}_processToken(at){switch(at.type){case TokenType.CHARACTER:{this.onCharacter(at);break}case TokenType.NULL_CHARACTER:{this.onNullCharacter(at);break}case TokenType.COMMENT:{this.onComment(at);break}case TokenType.DOCTYPE:{this.onDoctype(at);break}case TokenType.START_TAG:{this._processStartTag(at);break}case TokenType.END_TAG:{this.onEndTag(at);break}case TokenType.EOF:{this.onEof(at);break}case TokenType.WHITESPACE_CHARACTER:{this.onWhitespaceCharacter(at);break}}}_isIntegrationPoint(at,ut,dt){const ct=this.treeAdapter.getNamespaceURI(ut),pt=this.treeAdapter.getAttrList(ut);return isIntegrationPoint(at,ct,pt,dt)}_reconstructActiveFormattingElements(){const at=this.activeFormattingElements.entries.length;if(at){const ut=this.activeFormattingElements.entries.findIndex(ct=>ct.type===EntryType.Marker||this.openElements.contains(ct.element)),dt=ut===-1?at-1:ut-1;for(let ct=dt;ct>=0;ct--){const pt=this.activeFormattingElements.entries[ct];this._insertElement(pt.token,this.treeAdapter.getNamespaceURI(pt.element)),pt.element=this.openElements.current}}}_closeTableCell(){this.openElements.generateImpliedEndTags(),this.openElements.popUntilTableCellPopped(),this.activeFormattingElements.clearToLastMarker(),this.insertionMode=InsertionMode.IN_ROW}_closePElement(){this.openElements.generateImpliedEndTagsWithExclusion(TAG_ID.P),this.openElements.popUntilTagNamePopped(TAG_ID.P)}_resetInsertionMode(){for(let at=this.openElements.stackTop;at>=0;at--)switch(at===0&&this.fragmentContext?this.fragmentContextID:this.openElements.tagIDs[at]){case TAG_ID.TR:{this.insertionMode=InsertionMode.IN_ROW;return}case TAG_ID.TBODY:case TAG_ID.THEAD:case TAG_ID.TFOOT:{this.insertionMode=InsertionMode.IN_TABLE_BODY;return}case TAG_ID.CAPTION:{this.insertionMode=InsertionMode.IN_CAPTION;return}case TAG_ID.COLGROUP:{this.insertionMode=InsertionMode.IN_COLUMN_GROUP;return}case TAG_ID.TABLE:{this.insertionMode=InsertionMode.IN_TABLE;return}case TAG_ID.BODY:{this.insertionMode=InsertionMode.IN_BODY;return}case TAG_ID.FRAMESET:{this.insertionMode=InsertionMode.IN_FRAMESET;return}case TAG_ID.SELECT:{this._resetInsertionModeForSelect(at);return}case TAG_ID.TEMPLATE:{this.insertionMode=this.tmplInsertionModeStack[0];return}case TAG_ID.HTML:{this.insertionMode=this.headElement?InsertionMode.AFTER_HEAD:InsertionMode.BEFORE_HEAD;return}case TAG_ID.TD:case TAG_ID.TH:{if(at>0){this.insertionMode=InsertionMode.IN_CELL;return}break}case TAG_ID.HEAD:{if(at>0){this.insertionMode=InsertionMode.IN_HEAD;return}break}}this.insertionMode=InsertionMode.IN_BODY}_resetInsertionModeForSelect(at){if(at>0)for(let ut=at-1;ut>0;ut--){const dt=this.openElements.tagIDs[ut];if(dt===TAG_ID.TEMPLATE)break;if(dt===TAG_ID.TABLE){this.insertionMode=InsertionMode.IN_SELECT_IN_TABLE;return}}this.insertionMode=InsertionMode.IN_SELECT}_isElementCausesFosterParenting(at){return TABLE_STRUCTURE_TAGS.has(at)}_shouldFosterParentOnInsertion(){return this.fosterParentingEnabled&&this.openElements.currentTagId!==void 0&&this._isElementCausesFosterParenting(this.openElements.currentTagId)}_findFosterParentingLocation(){for(let at=this.openElements.stackTop;at>=0;at--){const ut=this.openElements.items[at];switch(this.openElements.tagIDs[at]){case TAG_ID.TEMPLATE:{if(this.treeAdapter.getNamespaceURI(ut)===NS.HTML)return{parent:this.treeAdapter.getTemplateContent(ut),beforeElement:null};break}case TAG_ID.TABLE:{const dt=this.treeAdapter.getParentNode(ut);return dt?{parent:dt,beforeElement:ut}:{parent:this.openElements.items[at-1],beforeElement:null}}}}return{parent:this.openElements.items[0],beforeElement:null}}_fosterParentElement(at){const ut=this._findFosterParentingLocation();ut.beforeElement?this.treeAdapter.insertBefore(ut.parent,at,ut.beforeElement):this.treeAdapter.appendChild(ut.parent,at)}_isSpecialElement(at,ut){const dt=this.treeAdapter.getNamespaceURI(at);return SPECIAL_ELEMENTS[dt].has(ut)}onCharacter(at){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){characterInForeignContent(this,at);return}switch(this.insertionMode){case InsertionMode.INITIAL:{tokenInInitialMode(this,at);break}case InsertionMode.BEFORE_HTML:{tokenBeforeHtml(this,at);break}case InsertionMode.BEFORE_HEAD:{tokenBeforeHead(this,at);break}case InsertionMode.IN_HEAD:{tokenInHead(this,at);break}case InsertionMode.IN_HEAD_NO_SCRIPT:{tokenInHeadNoScript(this,at);break}case InsertionMode.AFTER_HEAD:{tokenAfterHead(this,at);break}case InsertionMode.IN_BODY:case InsertionMode.IN_CAPTION:case InsertionMode.IN_CELL:case InsertionMode.IN_TEMPLATE:{characterInBody(this,at);break}case InsertionMode.TEXT:case InsertionMode.IN_SELECT:case InsertionMode.IN_SELECT_IN_TABLE:{this._insertCharacters(at);break}case InsertionMode.IN_TABLE:case InsertionMode.IN_TABLE_BODY:case InsertionMode.IN_ROW:{characterInTable(this,at);break}case InsertionMode.IN_TABLE_TEXT:{characterInTableText(this,at);break}case InsertionMode.IN_COLUMN_GROUP:{tokenInColumnGroup(this,at);break}case InsertionMode.AFTER_BODY:{tokenAfterBody(this,at);break}case InsertionMode.AFTER_AFTER_BODY:{tokenAfterAfterBody(this,at);break}}}onNullCharacter(at){if(this.skipNextNewLine=!1,this.tokenizer.inForeignNode){nullCharacterInForeignContent(this,at);return}switch(this.insertionMode){case InsertionMode.INITIAL:{tokenInInitialMode(this,at);break}case InsertionMode.BEFORE_HTML:{tokenBeforeHtml(this,at);break}case InsertionMode.BEFORE_HEAD:{tokenBeforeHead(this,at);break}case InsertionMode.IN_HEAD:{tokenInHead(this,at);break}case InsertionMode.IN_HEAD_NO_SCRIPT:{tokenInHeadNoScript(this,at);break}case InsertionMode.AFTER_HEAD:{tokenAfterHead(this,at);break}case InsertionMode.TEXT:{this._insertCharacters(at);break}case InsertionMode.IN_TABLE:case InsertionMode.IN_TABLE_BODY:case InsertionMode.IN_ROW:{characterInTable(this,at);break}case InsertionMode.IN_COLUMN_GROUP:{tokenInColumnGroup(this,at);break}case InsertionMode.AFTER_BODY:{tokenAfterBody(this,at);break}case InsertionMode.AFTER_AFTER_BODY:{tokenAfterAfterBody(this,at);break}}}onComment(at){if(this.skipNextNewLine=!1,this.currentNotInHTML){appendComment(this,at);return}switch(this.insertionMode){case InsertionMode.INITIAL:case InsertionMode.BEFORE_HTML:case InsertionMode.BEFORE_HEAD:case InsertionMode.IN_HEAD:case InsertionMode.IN_HEAD_NO_SCRIPT:case InsertionMode.AFTER_HEAD:case InsertionMode.IN_BODY:case InsertionMode.IN_TABLE:case InsertionMode.IN_CAPTION:case InsertionMode.IN_COLUMN_GROUP:case InsertionMode.IN_TABLE_BODY:case InsertionMode.IN_ROW:case InsertionMode.IN_CELL:case InsertionMode.IN_SELECT:case InsertionMode.IN_SELECT_IN_TABLE:case InsertionMode.IN_TEMPLATE:case InsertionMode.IN_FRAMESET:case InsertionMode.AFTER_FRAMESET:{appendComment(this,at);break}case InsertionMode.IN_TABLE_TEXT:{tokenInTableText(this,at);break}case InsertionMode.AFTER_BODY:{appendCommentToRootHtmlElement(this,at);break}case InsertionMode.AFTER_AFTER_BODY:case InsertionMode.AFTER_AFTER_FRAMESET:{appendCommentToDocument(this,at);break}}}onDoctype(at){switch(this.skipNextNewLine=!1,this.insertionMode){case InsertionMode.INITIAL:{doctypeInInitialMode(this,at);break}case InsertionMode.BEFORE_HEAD:case InsertionMode.IN_HEAD:case InsertionMode.IN_HEAD_NO_SCRIPT:case InsertionMode.AFTER_HEAD:{this._err(at,ERR.misplacedDoctype);break}case InsertionMode.IN_TABLE_TEXT:{tokenInTableText(this,at);break}}}onStartTag(at){this.skipNextNewLine=!1,this.currentToken=at,this._processStartTag(at),at.selfClosing&&!at.ackSelfClosing&&this._err(at,ERR.nonVoidHtmlElementStartTagWithTrailingSolidus)}_processStartTag(at){this.shouldProcessStartTagTokenInForeignContent(at)?startTagInForeignContent(this,at):this._startTagOutsideForeignContent(at)}_startTagOutsideForeignContent(at){switch(this.insertionMode){case InsertionMode.INITIAL:{tokenInInitialMode(this,at);break}case InsertionMode.BEFORE_HTML:{startTagBeforeHtml(this,at);break}case InsertionMode.BEFORE_HEAD:{startTagBeforeHead(this,at);break}case InsertionMode.IN_HEAD:{startTagInHead(this,at);break}case InsertionMode.IN_HEAD_NO_SCRIPT:{startTagInHeadNoScript(this,at);break}case InsertionMode.AFTER_HEAD:{startTagAfterHead(this,at);break}case InsertionMode.IN_BODY:{startTagInBody(this,at);break}case InsertionMode.IN_TABLE:{startTagInTable(this,at);break}case InsertionMode.IN_TABLE_TEXT:{tokenInTableText(this,at);break}case InsertionMode.IN_CAPTION:{startTagInCaption(this,at);break}case InsertionMode.IN_COLUMN_GROUP:{startTagInColumnGroup(this,at);break}case InsertionMode.IN_TABLE_BODY:{startTagInTableBody(this,at);break}case InsertionMode.IN_ROW:{startTagInRow(this,at);break}case InsertionMode.IN_CELL:{startTagInCell(this,at);break}case InsertionMode.IN_SELECT:{startTagInSelect(this,at);break}case InsertionMode.IN_SELECT_IN_TABLE:{startTagInSelectInTable(this,at);break}case InsertionMode.IN_TEMPLATE:{startTagInTemplate(this,at);break}case InsertionMode.AFTER_BODY:{startTagAfterBody(this,at);break}case InsertionMode.IN_FRAMESET:{startTagInFrameset(this,at);break}case InsertionMode.AFTER_FRAMESET:{startTagAfterFrameset(this,at);break}case InsertionMode.AFTER_AFTER_BODY:{startTagAfterAfterBody(this,at);break}case InsertionMode.AFTER_AFTER_FRAMESET:{startTagAfterAfterFrameset(this,at);break}}}onEndTag(at){this.skipNextNewLine=!1,this.currentToken=at,this.currentNotInHTML?endTagInForeignContent(this,at):this._endTagOutsideForeignContent(at)}_endTagOutsideForeignContent(at){switch(this.insertionMode){case InsertionMode.INITIAL:{tokenInInitialMode(this,at);break}case InsertionMode.BEFORE_HTML:{endTagBeforeHtml(this,at);break}case InsertionMode.BEFORE_HEAD:{endTagBeforeHead(this,at);break}case InsertionMode.IN_HEAD:{endTagInHead(this,at);break}case InsertionMode.IN_HEAD_NO_SCRIPT:{endTagInHeadNoScript(this,at);break}case InsertionMode.AFTER_HEAD:{endTagAfterHead(this,at);break}case InsertionMode.IN_BODY:{endTagInBody(this,at);break}case InsertionMode.TEXT:{endTagInText(this,at);break}case InsertionMode.IN_TABLE:{endTagInTable(this,at);break}case InsertionMode.IN_TABLE_TEXT:{tokenInTableText(this,at);break}case InsertionMode.IN_CAPTION:{endTagInCaption(this,at);break}case InsertionMode.IN_COLUMN_GROUP:{endTagInColumnGroup(this,at);break}case InsertionMode.IN_TABLE_BODY:{endTagInTableBody(this,at);break}case InsertionMode.IN_ROW:{endTagInRow(this,at);break}case InsertionMode.IN_CELL:{endTagInCell(this,at);break}case InsertionMode.IN_SELECT:{endTagInSelect(this,at);break}case InsertionMode.IN_SELECT_IN_TABLE:{endTagInSelectInTable(this,at);break}case InsertionMode.IN_TEMPLATE:{endTagInTemplate(this,at);break}case InsertionMode.AFTER_BODY:{endTagAfterBody(this,at);break}case InsertionMode.IN_FRAMESET:{endTagInFrameset(this,at);break}case InsertionMode.AFTER_FRAMESET:{endTagAfterFrameset(this,at);break}case InsertionMode.AFTER_AFTER_BODY:{tokenAfterAfterBody(this,at);break}}}onEof(at){switch(this.insertionMode){case InsertionMode.INITIAL:{tokenInInitialMode(this,at);break}case InsertionMode.BEFORE_HTML:{tokenBeforeHtml(this,at);break}case InsertionMode.BEFORE_HEAD:{tokenBeforeHead(this,at);break}case InsertionMode.IN_HEAD:{tokenInHead(this,at);break}case InsertionMode.IN_HEAD_NO_SCRIPT:{tokenInHeadNoScript(this,at);break}case InsertionMode.AFTER_HEAD:{tokenAfterHead(this,at);break}case InsertionMode.IN_BODY:case InsertionMode.IN_TABLE:case InsertionMode.IN_CAPTION:case InsertionMode.IN_COLUMN_GROUP:case InsertionMode.IN_TABLE_BODY:case InsertionMode.IN_ROW:case InsertionMode.IN_CELL:case InsertionMode.IN_SELECT:case InsertionMode.IN_SELECT_IN_TABLE:{eofInBody(this,at);break}case InsertionMode.TEXT:{eofInText(this,at);break}case InsertionMode.IN_TABLE_TEXT:{tokenInTableText(this,at);break}case InsertionMode.IN_TEMPLATE:{eofInTemplate(this,at);break}case InsertionMode.AFTER_BODY:case InsertionMode.IN_FRAMESET:case InsertionMode.AFTER_FRAMESET:case InsertionMode.AFTER_AFTER_BODY:case InsertionMode.AFTER_AFTER_FRAMESET:{stopParsing(this,at);break}}}onWhitespaceCharacter(at){if(this.skipNextNewLine&&(this.skipNextNewLine=!1,at.chars.charCodeAt(0)===CODE_POINTS.LINE_FEED)){if(at.chars.length===1)return;at.chars=at.chars.substr(1)}if(this.tokenizer.inForeignNode){this._insertCharacters(at);return}switch(this.insertionMode){case InsertionMode.IN_HEAD:case InsertionMode.IN_HEAD_NO_SCRIPT:case InsertionMode.AFTER_HEAD:case InsertionMode.TEXT:case InsertionMode.IN_COLUMN_GROUP:case InsertionMode.IN_SELECT:case InsertionMode.IN_SELECT_IN_TABLE:case InsertionMode.IN_FRAMESET:case InsertionMode.AFTER_FRAMESET:{this._insertCharacters(at);break}case InsertionMode.IN_BODY:case InsertionMode.IN_CAPTION:case InsertionMode.IN_CELL:case InsertionMode.IN_TEMPLATE:case InsertionMode.AFTER_BODY:case InsertionMode.AFTER_AFTER_BODY:case InsertionMode.AFTER_AFTER_FRAMESET:{whitespaceCharacterInBody(this,at);break}case InsertionMode.IN_TABLE:case InsertionMode.IN_TABLE_BODY:case InsertionMode.IN_ROW:{characterInTable(this,at);break}case InsertionMode.IN_TABLE_TEXT:{whitespaceCharacterInTableText(this,at);break}}}};function aaObtainFormattingElementEntry(st,at){let ut=st.activeFormattingElements.getElementEntryInScopeWithTagName(at.tagName);return ut?st.openElements.contains(ut.element)?st.openElements.hasInScope(at.tagID)||(ut=null):(st.activeFormattingElements.removeEntry(ut),ut=null):genericEndTagInBody(st,at),ut}function aaObtainFurthestBlock(st,at){let ut=null,dt=st.openElements.stackTop;for(;dt>=0;dt--){const ct=st.openElements.items[dt];if(ct===at.element)break;st._isSpecialElement(ct,st.openElements.tagIDs[dt])&&(ut=ct)}return ut||(st.openElements.shortenToLength(Math.max(dt,0)),st.activeFormattingElements.removeEntry(at)),ut}function aaInnerLoop(st,at,ut){let dt=at,ct=st.openElements.getCommonAncestor(at);for(let pt=0,ft=ct;ft!==ut;pt++,ft=ct){ct=st.openElements.getCommonAncestor(ft);const ht=st.activeFormattingElements.getElementEntry(ft),mt=ht&&pt>=AA_INNER_LOOP_ITER;!ht||mt?(mt&&st.activeFormattingElements.removeEntry(ht),st.openElements.remove(ft)):(ft=aaRecreateElementFromEntry(st,ht),dt===at&&(st.activeFormattingElements.bookmark=ht),st.treeAdapter.detachNode(dt),st.treeAdapter.appendChild(ft,dt),dt=ft)}return dt}function aaRecreateElementFromEntry(st,at){const ut=st.treeAdapter.getNamespaceURI(at.element),dt=st.treeAdapter.createElement(at.token.tagName,ut,at.token.attrs);return st.openElements.replace(at.element,dt),at.element=dt,dt}function aaInsertLastNodeInCommonAncestor(st,at,ut){const dt=st.treeAdapter.getTagName(at),ct=getTagID(dt);if(st._isElementCausesFosterParenting(ct))st._fosterParentElement(ut);else{const pt=st.treeAdapter.getNamespaceURI(at);ct===TAG_ID.TEMPLATE&&pt===NS.HTML&&(at=st.treeAdapter.getTemplateContent(at)),st.treeAdapter.appendChild(at,ut)}}function aaReplaceFormattingElement(st,at,ut){const dt=st.treeAdapter.getNamespaceURI(ut.element),{token:ct}=ut,pt=st.treeAdapter.createElement(ct.tagName,dt,ct.attrs);st._adoptNodes(at,pt),st.treeAdapter.appendChild(at,pt),st.activeFormattingElements.insertElementAfterBookmark(pt,ct),st.activeFormattingElements.removeEntry(ut),st.openElements.remove(ut.element),st.openElements.insertAfter(at,pt,ct.tagID)}function callAdoptionAgency(st,at){for(let ut=0;ut=ut;dt--)st._setEndLocation(st.openElements.items[dt],at);if(!st.fragmentContext&&st.openElements.stackTop>=0){const dt=st.openElements.items[0],ct=st.treeAdapter.getNodeSourceCodeLocation(dt);if(ct&&!ct.endTag&&(st._setEndLocation(dt,at),st.openElements.stackTop>=1)){const pt=st.openElements.items[1],ft=st.treeAdapter.getNodeSourceCodeLocation(pt);ft&&!ft.endTag&&st._setEndLocation(pt,at)}}}}function doctypeInInitialMode(st,at){st._setDocumentType(at);const ut=at.forceQuirks?DOCUMENT_MODE.QUIRKS:getDocumentMode(at);isConforming(at)||st._err(at,ERR.nonConformingDoctype),st.treeAdapter.setDocumentMode(st.document,ut),st.insertionMode=InsertionMode.BEFORE_HTML}function tokenInInitialMode(st,at){st._err(at,ERR.missingDoctype,!0),st.treeAdapter.setDocumentMode(st.document,DOCUMENT_MODE.QUIRKS),st.insertionMode=InsertionMode.BEFORE_HTML,st._processToken(at)}function startTagBeforeHtml(st,at){at.tagID===TAG_ID.HTML?(st._insertElement(at,NS.HTML),st.insertionMode=InsertionMode.BEFORE_HEAD):tokenBeforeHtml(st,at)}function endTagBeforeHtml(st,at){const ut=at.tagID;(ut===TAG_ID.HTML||ut===TAG_ID.HEAD||ut===TAG_ID.BODY||ut===TAG_ID.BR)&&tokenBeforeHtml(st,at)}function tokenBeforeHtml(st,at){st._insertFakeRootElement(),st.insertionMode=InsertionMode.BEFORE_HEAD,st._processToken(at)}function startTagBeforeHead(st,at){switch(at.tagID){case TAG_ID.HTML:{startTagInBody(st,at);break}case TAG_ID.HEAD:{st._insertElement(at,NS.HTML),st.headElement=st.openElements.current,st.insertionMode=InsertionMode.IN_HEAD;break}default:tokenBeforeHead(st,at)}}function endTagBeforeHead(st,at){const ut=at.tagID;ut===TAG_ID.HEAD||ut===TAG_ID.BODY||ut===TAG_ID.HTML||ut===TAG_ID.BR?tokenBeforeHead(st,at):st._err(at,ERR.endTagWithoutMatchingOpenElement)}function tokenBeforeHead(st,at){st._insertFakeElement(TAG_NAMES.HEAD,TAG_ID.HEAD),st.headElement=st.openElements.current,st.insertionMode=InsertionMode.IN_HEAD,st._processToken(at)}function startTagInHead(st,at){switch(at.tagID){case TAG_ID.HTML:{startTagInBody(st,at);break}case TAG_ID.BASE:case TAG_ID.BASEFONT:case TAG_ID.BGSOUND:case TAG_ID.LINK:case TAG_ID.META:{st._appendElement(at,NS.HTML),at.ackSelfClosing=!0;break}case TAG_ID.TITLE:{st._switchToTextParsing(at,TokenizerMode.RCDATA);break}case TAG_ID.NOSCRIPT:{st.options.scriptingEnabled?st._switchToTextParsing(at,TokenizerMode.RAWTEXT):(st._insertElement(at,NS.HTML),st.insertionMode=InsertionMode.IN_HEAD_NO_SCRIPT);break}case TAG_ID.NOFRAMES:case TAG_ID.STYLE:{st._switchToTextParsing(at,TokenizerMode.RAWTEXT);break}case TAG_ID.SCRIPT:{st._switchToTextParsing(at,TokenizerMode.SCRIPT_DATA);break}case TAG_ID.TEMPLATE:{st._insertTemplate(at),st.activeFormattingElements.insertMarker(),st.framesetOk=!1,st.insertionMode=InsertionMode.IN_TEMPLATE,st.tmplInsertionModeStack.unshift(InsertionMode.IN_TEMPLATE);break}case TAG_ID.HEAD:{st._err(at,ERR.misplacedStartTagForHeadElement);break}default:tokenInHead(st,at)}}function endTagInHead(st,at){switch(at.tagID){case TAG_ID.HEAD:{st.openElements.pop(),st.insertionMode=InsertionMode.AFTER_HEAD;break}case TAG_ID.BODY:case TAG_ID.BR:case TAG_ID.HTML:{tokenInHead(st,at);break}case TAG_ID.TEMPLATE:{templateEndTagInHead(st,at);break}default:st._err(at,ERR.endTagWithoutMatchingOpenElement)}}function templateEndTagInHead(st,at){st.openElements.tmplCount>0?(st.openElements.generateImpliedEndTagsThoroughly(),st.openElements.currentTagId!==TAG_ID.TEMPLATE&&st._err(at,ERR.closingOfElementWithOpenChildElements),st.openElements.popUntilTagNamePopped(TAG_ID.TEMPLATE),st.activeFormattingElements.clearToLastMarker(),st.tmplInsertionModeStack.shift(),st._resetInsertionMode()):st._err(at,ERR.endTagWithoutMatchingOpenElement)}function tokenInHead(st,at){st.openElements.pop(),st.insertionMode=InsertionMode.AFTER_HEAD,st._processToken(at)}function startTagInHeadNoScript(st,at){switch(at.tagID){case TAG_ID.HTML:{startTagInBody(st,at);break}case TAG_ID.BASEFONT:case TAG_ID.BGSOUND:case TAG_ID.HEAD:case TAG_ID.LINK:case TAG_ID.META:case TAG_ID.NOFRAMES:case TAG_ID.STYLE:{startTagInHead(st,at);break}case TAG_ID.NOSCRIPT:{st._err(at,ERR.nestedNoscriptInHead);break}default:tokenInHeadNoScript(st,at)}}function endTagInHeadNoScript(st,at){switch(at.tagID){case TAG_ID.NOSCRIPT:{st.openElements.pop(),st.insertionMode=InsertionMode.IN_HEAD;break}case TAG_ID.BR:{tokenInHeadNoScript(st,at);break}default:st._err(at,ERR.endTagWithoutMatchingOpenElement)}}function tokenInHeadNoScript(st,at){const ut=at.type===TokenType.EOF?ERR.openElementsLeftAfterEof:ERR.disallowedContentInNoscriptInHead;st._err(at,ut),st.openElements.pop(),st.insertionMode=InsertionMode.IN_HEAD,st._processToken(at)}function startTagAfterHead(st,at){switch(at.tagID){case TAG_ID.HTML:{startTagInBody(st,at);break}case TAG_ID.BODY:{st._insertElement(at,NS.HTML),st.framesetOk=!1,st.insertionMode=InsertionMode.IN_BODY;break}case TAG_ID.FRAMESET:{st._insertElement(at,NS.HTML),st.insertionMode=InsertionMode.IN_FRAMESET;break}case TAG_ID.BASE:case TAG_ID.BASEFONT:case TAG_ID.BGSOUND:case TAG_ID.LINK:case TAG_ID.META:case TAG_ID.NOFRAMES:case TAG_ID.SCRIPT:case TAG_ID.STYLE:case TAG_ID.TEMPLATE:case TAG_ID.TITLE:{st._err(at,ERR.abandonedHeadElementChild),st.openElements.push(st.headElement,TAG_ID.HEAD),startTagInHead(st,at),st.openElements.remove(st.headElement);break}case TAG_ID.HEAD:{st._err(at,ERR.misplacedStartTagForHeadElement);break}default:tokenAfterHead(st,at)}}function endTagAfterHead(st,at){switch(at.tagID){case TAG_ID.BODY:case TAG_ID.HTML:case TAG_ID.BR:{tokenAfterHead(st,at);break}case TAG_ID.TEMPLATE:{templateEndTagInHead(st,at);break}default:st._err(at,ERR.endTagWithoutMatchingOpenElement)}}function tokenAfterHead(st,at){st._insertFakeElement(TAG_NAMES.BODY,TAG_ID.BODY),st.insertionMode=InsertionMode.IN_BODY,modeInBody(st,at)}function modeInBody(st,at){switch(at.type){case TokenType.CHARACTER:{characterInBody(st,at);break}case TokenType.WHITESPACE_CHARACTER:{whitespaceCharacterInBody(st,at);break}case TokenType.COMMENT:{appendComment(st,at);break}case TokenType.START_TAG:{startTagInBody(st,at);break}case TokenType.END_TAG:{endTagInBody(st,at);break}case TokenType.EOF:{eofInBody(st,at);break}}}function whitespaceCharacterInBody(st,at){st._reconstructActiveFormattingElements(),st._insertCharacters(at)}function characterInBody(st,at){st._reconstructActiveFormattingElements(),st._insertCharacters(at),st.framesetOk=!1}function htmlStartTagInBody(st,at){st.openElements.tmplCount===0&&st.treeAdapter.adoptAttributes(st.openElements.items[0],at.attrs)}function bodyStartTagInBody(st,at){const ut=st.openElements.tryPeekProperlyNestedBodyElement();ut&&st.openElements.tmplCount===0&&(st.framesetOk=!1,st.treeAdapter.adoptAttributes(ut,at.attrs))}function framesetStartTagInBody(st,at){const ut=st.openElements.tryPeekProperlyNestedBodyElement();st.framesetOk&&ut&&(st.treeAdapter.detachNode(ut),st.openElements.popAllUpToHtmlElement(),st._insertElement(at,NS.HTML),st.insertionMode=InsertionMode.IN_FRAMESET)}function addressStartTagInBody(st,at){st.openElements.hasInButtonScope(TAG_ID.P)&&st._closePElement(),st._insertElement(at,NS.HTML)}function numberedHeaderStartTagInBody(st,at){st.openElements.hasInButtonScope(TAG_ID.P)&&st._closePElement(),st.openElements.currentTagId!==void 0&&NUMBERED_HEADERS.has(st.openElements.currentTagId)&&st.openElements.pop(),st._insertElement(at,NS.HTML)}function preStartTagInBody(st,at){st.openElements.hasInButtonScope(TAG_ID.P)&&st._closePElement(),st._insertElement(at,NS.HTML),st.skipNextNewLine=!0,st.framesetOk=!1}function formStartTagInBody(st,at){const ut=st.openElements.tmplCount>0;(!st.formElement||ut)&&(st.openElements.hasInButtonScope(TAG_ID.P)&&st._closePElement(),st._insertElement(at,NS.HTML),ut||(st.formElement=st.openElements.current))}function listItemStartTagInBody(st,at){st.framesetOk=!1;const ut=at.tagID;for(let dt=st.openElements.stackTop;dt>=0;dt--){const ct=st.openElements.tagIDs[dt];if(ut===TAG_ID.LI&&ct===TAG_ID.LI||(ut===TAG_ID.DD||ut===TAG_ID.DT)&&(ct===TAG_ID.DD||ct===TAG_ID.DT)){st.openElements.generateImpliedEndTagsWithExclusion(ct),st.openElements.popUntilTagNamePopped(ct);break}if(ct!==TAG_ID.ADDRESS&&ct!==TAG_ID.DIV&&ct!==TAG_ID.P&&st._isSpecialElement(st.openElements.items[dt],ct))break}st.openElements.hasInButtonScope(TAG_ID.P)&&st._closePElement(),st._insertElement(at,NS.HTML)}function plaintextStartTagInBody(st,at){st.openElements.hasInButtonScope(TAG_ID.P)&&st._closePElement(),st._insertElement(at,NS.HTML),st.tokenizer.state=TokenizerMode.PLAINTEXT}function buttonStartTagInBody(st,at){st.openElements.hasInScope(TAG_ID.BUTTON)&&(st.openElements.generateImpliedEndTags(),st.openElements.popUntilTagNamePopped(TAG_ID.BUTTON)),st._reconstructActiveFormattingElements(),st._insertElement(at,NS.HTML),st.framesetOk=!1}function aStartTagInBody(st,at){const ut=st.activeFormattingElements.getElementEntryInScopeWithTagName(TAG_NAMES.A);ut&&(callAdoptionAgency(st,at),st.openElements.remove(ut.element),st.activeFormattingElements.removeEntry(ut)),st._reconstructActiveFormattingElements(),st._insertElement(at,NS.HTML),st.activeFormattingElements.pushElement(st.openElements.current,at)}function bStartTagInBody(st,at){st._reconstructActiveFormattingElements(),st._insertElement(at,NS.HTML),st.activeFormattingElements.pushElement(st.openElements.current,at)}function nobrStartTagInBody(st,at){st._reconstructActiveFormattingElements(),st.openElements.hasInScope(TAG_ID.NOBR)&&(callAdoptionAgency(st,at),st._reconstructActiveFormattingElements()),st._insertElement(at,NS.HTML),st.activeFormattingElements.pushElement(st.openElements.current,at)}function appletStartTagInBody(st,at){st._reconstructActiveFormattingElements(),st._insertElement(at,NS.HTML),st.activeFormattingElements.insertMarker(),st.framesetOk=!1}function tableStartTagInBody(st,at){st.treeAdapter.getDocumentMode(st.document)!==DOCUMENT_MODE.QUIRKS&&st.openElements.hasInButtonScope(TAG_ID.P)&&st._closePElement(),st._insertElement(at,NS.HTML),st.framesetOk=!1,st.insertionMode=InsertionMode.IN_TABLE}function areaStartTagInBody(st,at){st._reconstructActiveFormattingElements(),st._appendElement(at,NS.HTML),st.framesetOk=!1,at.ackSelfClosing=!0}function isHiddenInput$1(st){const at=getTokenAttr(st,ATTRS.TYPE);return at!=null&&at.toLowerCase()===HIDDEN_INPUT_TYPE}function inputStartTagInBody(st,at){st._reconstructActiveFormattingElements(),st._appendElement(at,NS.HTML),isHiddenInput$1(at)||(st.framesetOk=!1),at.ackSelfClosing=!0}function paramStartTagInBody(st,at){st._appendElement(at,NS.HTML),at.ackSelfClosing=!0}function hrStartTagInBody(st,at){st.openElements.hasInButtonScope(TAG_ID.P)&&st._closePElement(),st._appendElement(at,NS.HTML),st.framesetOk=!1,at.ackSelfClosing=!0}function imageStartTagInBody(st,at){at.tagName=TAG_NAMES.IMG,at.tagID=TAG_ID.IMG,areaStartTagInBody(st,at)}function textareaStartTagInBody(st,at){st._insertElement(at,NS.HTML),st.skipNextNewLine=!0,st.tokenizer.state=TokenizerMode.RCDATA,st.originalInsertionMode=st.insertionMode,st.framesetOk=!1,st.insertionMode=InsertionMode.TEXT}function xmpStartTagInBody(st,at){st.openElements.hasInButtonScope(TAG_ID.P)&&st._closePElement(),st._reconstructActiveFormattingElements(),st.framesetOk=!1,st._switchToTextParsing(at,TokenizerMode.RAWTEXT)}function iframeStartTagInBody(st,at){st.framesetOk=!1,st._switchToTextParsing(at,TokenizerMode.RAWTEXT)}function rawTextStartTagInBody(st,at){st._switchToTextParsing(at,TokenizerMode.RAWTEXT)}function selectStartTagInBody(st,at){st._reconstructActiveFormattingElements(),st._insertElement(at,NS.HTML),st.framesetOk=!1,st.insertionMode=st.insertionMode===InsertionMode.IN_TABLE||st.insertionMode===InsertionMode.IN_CAPTION||st.insertionMode===InsertionMode.IN_TABLE_BODY||st.insertionMode===InsertionMode.IN_ROW||st.insertionMode===InsertionMode.IN_CELL?InsertionMode.IN_SELECT_IN_TABLE:InsertionMode.IN_SELECT}function optgroupStartTagInBody(st,at){st.openElements.currentTagId===TAG_ID.OPTION&&st.openElements.pop(),st._reconstructActiveFormattingElements(),st._insertElement(at,NS.HTML)}function rbStartTagInBody(st,at){st.openElements.hasInScope(TAG_ID.RUBY)&&st.openElements.generateImpliedEndTags(),st._insertElement(at,NS.HTML)}function rtStartTagInBody(st,at){st.openElements.hasInScope(TAG_ID.RUBY)&&st.openElements.generateImpliedEndTagsWithExclusion(TAG_ID.RTC),st._insertElement(at,NS.HTML)}function mathStartTagInBody(st,at){st._reconstructActiveFormattingElements(),adjustTokenMathMLAttrs(at),adjustTokenXMLAttrs(at),at.selfClosing?st._appendElement(at,NS.MATHML):st._insertElement(at,NS.MATHML),at.ackSelfClosing=!0}function svgStartTagInBody(st,at){st._reconstructActiveFormattingElements(),adjustTokenSVGAttrs(at),adjustTokenXMLAttrs(at),at.selfClosing?st._appendElement(at,NS.SVG):st._insertElement(at,NS.SVG),at.ackSelfClosing=!0}function genericStartTagInBody(st,at){st._reconstructActiveFormattingElements(),st._insertElement(at,NS.HTML)}function startTagInBody(st,at){switch(at.tagID){case TAG_ID.I:case TAG_ID.S:case TAG_ID.B:case TAG_ID.U:case TAG_ID.EM:case TAG_ID.TT:case TAG_ID.BIG:case TAG_ID.CODE:case TAG_ID.FONT:case TAG_ID.SMALL:case TAG_ID.STRIKE:case TAG_ID.STRONG:{bStartTagInBody(st,at);break}case TAG_ID.A:{aStartTagInBody(st,at);break}case TAG_ID.H1:case TAG_ID.H2:case TAG_ID.H3:case TAG_ID.H4:case TAG_ID.H5:case TAG_ID.H6:{numberedHeaderStartTagInBody(st,at);break}case TAG_ID.P:case TAG_ID.DL:case TAG_ID.OL:case TAG_ID.UL:case TAG_ID.DIV:case TAG_ID.DIR:case TAG_ID.NAV:case TAG_ID.MAIN:case TAG_ID.MENU:case TAG_ID.ASIDE:case TAG_ID.CENTER:case TAG_ID.FIGURE:case TAG_ID.FOOTER:case TAG_ID.HEADER:case TAG_ID.HGROUP:case TAG_ID.DIALOG:case TAG_ID.DETAILS:case TAG_ID.ADDRESS:case TAG_ID.ARTICLE:case TAG_ID.SEARCH:case TAG_ID.SECTION:case TAG_ID.SUMMARY:case TAG_ID.FIELDSET:case TAG_ID.BLOCKQUOTE:case TAG_ID.FIGCAPTION:{addressStartTagInBody(st,at);break}case TAG_ID.LI:case TAG_ID.DD:case TAG_ID.DT:{listItemStartTagInBody(st,at);break}case TAG_ID.BR:case TAG_ID.IMG:case TAG_ID.WBR:case TAG_ID.AREA:case TAG_ID.EMBED:case TAG_ID.KEYGEN:{areaStartTagInBody(st,at);break}case TAG_ID.HR:{hrStartTagInBody(st,at);break}case TAG_ID.RB:case TAG_ID.RTC:{rbStartTagInBody(st,at);break}case TAG_ID.RT:case TAG_ID.RP:{rtStartTagInBody(st,at);break}case TAG_ID.PRE:case TAG_ID.LISTING:{preStartTagInBody(st,at);break}case TAG_ID.XMP:{xmpStartTagInBody(st,at);break}case TAG_ID.SVG:{svgStartTagInBody(st,at);break}case TAG_ID.HTML:{htmlStartTagInBody(st,at);break}case TAG_ID.BASE:case TAG_ID.LINK:case TAG_ID.META:case TAG_ID.STYLE:case TAG_ID.TITLE:case TAG_ID.SCRIPT:case TAG_ID.BGSOUND:case TAG_ID.BASEFONT:case TAG_ID.TEMPLATE:{startTagInHead(st,at);break}case TAG_ID.BODY:{bodyStartTagInBody(st,at);break}case TAG_ID.FORM:{formStartTagInBody(st,at);break}case TAG_ID.NOBR:{nobrStartTagInBody(st,at);break}case TAG_ID.MATH:{mathStartTagInBody(st,at);break}case TAG_ID.TABLE:{tableStartTagInBody(st,at);break}case TAG_ID.INPUT:{inputStartTagInBody(st,at);break}case TAG_ID.PARAM:case TAG_ID.TRACK:case TAG_ID.SOURCE:{paramStartTagInBody(st,at);break}case TAG_ID.IMAGE:{imageStartTagInBody(st,at);break}case TAG_ID.BUTTON:{buttonStartTagInBody(st,at);break}case TAG_ID.APPLET:case TAG_ID.OBJECT:case TAG_ID.MARQUEE:{appletStartTagInBody(st,at);break}case TAG_ID.IFRAME:{iframeStartTagInBody(st,at);break}case TAG_ID.SELECT:{selectStartTagInBody(st,at);break}case TAG_ID.OPTION:case TAG_ID.OPTGROUP:{optgroupStartTagInBody(st,at);break}case TAG_ID.NOEMBED:case TAG_ID.NOFRAMES:{rawTextStartTagInBody(st,at);break}case TAG_ID.FRAMESET:{framesetStartTagInBody(st,at);break}case TAG_ID.TEXTAREA:{textareaStartTagInBody(st,at);break}case TAG_ID.NOSCRIPT:{st.options.scriptingEnabled?rawTextStartTagInBody(st,at):genericStartTagInBody(st,at);break}case TAG_ID.PLAINTEXT:{plaintextStartTagInBody(st,at);break}case TAG_ID.COL:case TAG_ID.TH:case TAG_ID.TD:case TAG_ID.TR:case TAG_ID.HEAD:case TAG_ID.FRAME:case TAG_ID.TBODY:case TAG_ID.TFOOT:case TAG_ID.THEAD:case TAG_ID.CAPTION:case TAG_ID.COLGROUP:break;default:genericStartTagInBody(st,at)}}function bodyEndTagInBody(st,at){if(st.openElements.hasInScope(TAG_ID.BODY)&&(st.insertionMode=InsertionMode.AFTER_BODY,st.options.sourceCodeLocationInfo)){const ut=st.openElements.tryPeekProperlyNestedBodyElement();ut&&st._setEndLocation(ut,at)}}function htmlEndTagInBody(st,at){st.openElements.hasInScope(TAG_ID.BODY)&&(st.insertionMode=InsertionMode.AFTER_BODY,endTagAfterBody(st,at))}function addressEndTagInBody(st,at){const ut=at.tagID;st.openElements.hasInScope(ut)&&(st.openElements.generateImpliedEndTags(),st.openElements.popUntilTagNamePopped(ut))}function formEndTagInBody(st){const at=st.openElements.tmplCount>0,{formElement:ut}=st;at||(st.formElement=null),(ut||at)&&st.openElements.hasInScope(TAG_ID.FORM)&&(st.openElements.generateImpliedEndTags(),at?st.openElements.popUntilTagNamePopped(TAG_ID.FORM):ut&&st.openElements.remove(ut))}function pEndTagInBody(st){st.openElements.hasInButtonScope(TAG_ID.P)||st._insertFakeElement(TAG_NAMES.P,TAG_ID.P),st._closePElement()}function liEndTagInBody(st){st.openElements.hasInListItemScope(TAG_ID.LI)&&(st.openElements.generateImpliedEndTagsWithExclusion(TAG_ID.LI),st.openElements.popUntilTagNamePopped(TAG_ID.LI))}function ddEndTagInBody(st,at){const ut=at.tagID;st.openElements.hasInScope(ut)&&(st.openElements.generateImpliedEndTagsWithExclusion(ut),st.openElements.popUntilTagNamePopped(ut))}function numberedHeaderEndTagInBody(st){st.openElements.hasNumberedHeaderInScope()&&(st.openElements.generateImpliedEndTags(),st.openElements.popUntilNumberedHeaderPopped())}function appletEndTagInBody(st,at){const ut=at.tagID;st.openElements.hasInScope(ut)&&(st.openElements.generateImpliedEndTags(),st.openElements.popUntilTagNamePopped(ut),st.activeFormattingElements.clearToLastMarker())}function brEndTagInBody(st){st._reconstructActiveFormattingElements(),st._insertFakeElement(TAG_NAMES.BR,TAG_ID.BR),st.openElements.pop(),st.framesetOk=!1}function genericEndTagInBody(st,at){const ut=at.tagName,dt=at.tagID;for(let ct=st.openElements.stackTop;ct>0;ct--){const pt=st.openElements.items[ct],ft=st.openElements.tagIDs[ct];if(dt===ft&&(dt!==TAG_ID.UNKNOWN||st.treeAdapter.getTagName(pt)===ut)){st.openElements.generateImpliedEndTagsWithExclusion(dt),st.openElements.stackTop>=ct&&st.openElements.shortenToLength(ct);break}if(st._isSpecialElement(pt,ft))break}}function endTagInBody(st,at){switch(at.tagID){case TAG_ID.A:case TAG_ID.B:case TAG_ID.I:case TAG_ID.S:case TAG_ID.U:case TAG_ID.EM:case TAG_ID.TT:case TAG_ID.BIG:case TAG_ID.CODE:case TAG_ID.FONT:case TAG_ID.NOBR:case TAG_ID.SMALL:case TAG_ID.STRIKE:case TAG_ID.STRONG:{callAdoptionAgency(st,at);break}case TAG_ID.P:{pEndTagInBody(st);break}case TAG_ID.DL:case TAG_ID.UL:case TAG_ID.OL:case TAG_ID.DIR:case TAG_ID.DIV:case TAG_ID.NAV:case TAG_ID.PRE:case TAG_ID.MAIN:case TAG_ID.MENU:case TAG_ID.ASIDE:case TAG_ID.BUTTON:case TAG_ID.CENTER:case TAG_ID.FIGURE:case TAG_ID.FOOTER:case TAG_ID.HEADER:case TAG_ID.HGROUP:case TAG_ID.DIALOG:case TAG_ID.ADDRESS:case TAG_ID.ARTICLE:case TAG_ID.DETAILS:case TAG_ID.SEARCH:case TAG_ID.SECTION:case TAG_ID.SUMMARY:case TAG_ID.LISTING:case TAG_ID.FIELDSET:case TAG_ID.BLOCKQUOTE:case TAG_ID.FIGCAPTION:{addressEndTagInBody(st,at);break}case TAG_ID.LI:{liEndTagInBody(st);break}case TAG_ID.DD:case TAG_ID.DT:{ddEndTagInBody(st,at);break}case TAG_ID.H1:case TAG_ID.H2:case TAG_ID.H3:case TAG_ID.H4:case TAG_ID.H5:case TAG_ID.H6:{numberedHeaderEndTagInBody(st);break}case TAG_ID.BR:{brEndTagInBody(st);break}case TAG_ID.BODY:{bodyEndTagInBody(st,at);break}case TAG_ID.HTML:{htmlEndTagInBody(st,at);break}case TAG_ID.FORM:{formEndTagInBody(st);break}case TAG_ID.APPLET:case TAG_ID.OBJECT:case TAG_ID.MARQUEE:{appletEndTagInBody(st,at);break}case TAG_ID.TEMPLATE:{templateEndTagInHead(st,at);break}default:genericEndTagInBody(st,at)}}function eofInBody(st,at){st.tmplInsertionModeStack.length>0?eofInTemplate(st,at):stopParsing(st,at)}function endTagInText(st,at){var ut;at.tagID===TAG_ID.SCRIPT&&((ut=st.scriptHandler)===null||ut===void 0||ut.call(st,st.openElements.current)),st.openElements.pop(),st.insertionMode=st.originalInsertionMode}function eofInText(st,at){st._err(at,ERR.eofInElementThatCanContainOnlyText),st.openElements.pop(),st.insertionMode=st.originalInsertionMode,st.onEof(at)}function characterInTable(st,at){if(st.openElements.currentTagId!==void 0&&TABLE_STRUCTURE_TAGS.has(st.openElements.currentTagId))switch(st.pendingCharacterTokens.length=0,st.hasNonWhitespacePendingCharacterToken=!1,st.originalInsertionMode=st.insertionMode,st.insertionMode=InsertionMode.IN_TABLE_TEXT,at.type){case TokenType.CHARACTER:{characterInTableText(st,at);break}case TokenType.WHITESPACE_CHARACTER:{whitespaceCharacterInTableText(st,at);break}}else tokenInTable(st,at)}function captionStartTagInTable(st,at){st.openElements.clearBackToTableContext(),st.activeFormattingElements.insertMarker(),st._insertElement(at,NS.HTML),st.insertionMode=InsertionMode.IN_CAPTION}function colgroupStartTagInTable(st,at){st.openElements.clearBackToTableContext(),st._insertElement(at,NS.HTML),st.insertionMode=InsertionMode.IN_COLUMN_GROUP}function colStartTagInTable(st,at){st.openElements.clearBackToTableContext(),st._insertFakeElement(TAG_NAMES.COLGROUP,TAG_ID.COLGROUP),st.insertionMode=InsertionMode.IN_COLUMN_GROUP,startTagInColumnGroup(st,at)}function tbodyStartTagInTable(st,at){st.openElements.clearBackToTableContext(),st._insertElement(at,NS.HTML),st.insertionMode=InsertionMode.IN_TABLE_BODY}function tdStartTagInTable(st,at){st.openElements.clearBackToTableContext(),st._insertFakeElement(TAG_NAMES.TBODY,TAG_ID.TBODY),st.insertionMode=InsertionMode.IN_TABLE_BODY,startTagInTableBody(st,at)}function tableStartTagInTable(st,at){st.openElements.hasInTableScope(TAG_ID.TABLE)&&(st.openElements.popUntilTagNamePopped(TAG_ID.TABLE),st._resetInsertionMode(),st._processStartTag(at))}function inputStartTagInTable(st,at){isHiddenInput$1(at)?st._appendElement(at,NS.HTML):tokenInTable(st,at),at.ackSelfClosing=!0}function formStartTagInTable(st,at){!st.formElement&&st.openElements.tmplCount===0&&(st._insertElement(at,NS.HTML),st.formElement=st.openElements.current,st.openElements.pop())}function startTagInTable(st,at){switch(at.tagID){case TAG_ID.TD:case TAG_ID.TH:case TAG_ID.TR:{tdStartTagInTable(st,at);break}case TAG_ID.STYLE:case TAG_ID.SCRIPT:case TAG_ID.TEMPLATE:{startTagInHead(st,at);break}case TAG_ID.COL:{colStartTagInTable(st,at);break}case TAG_ID.FORM:{formStartTagInTable(st,at);break}case TAG_ID.TABLE:{tableStartTagInTable(st,at);break}case TAG_ID.TBODY:case TAG_ID.TFOOT:case TAG_ID.THEAD:{tbodyStartTagInTable(st,at);break}case TAG_ID.INPUT:{inputStartTagInTable(st,at);break}case TAG_ID.CAPTION:{captionStartTagInTable(st,at);break}case TAG_ID.COLGROUP:{colgroupStartTagInTable(st,at);break}default:tokenInTable(st,at)}}function endTagInTable(st,at){switch(at.tagID){case TAG_ID.TABLE:{st.openElements.hasInTableScope(TAG_ID.TABLE)&&(st.openElements.popUntilTagNamePopped(TAG_ID.TABLE),st._resetInsertionMode());break}case TAG_ID.TEMPLATE:{templateEndTagInHead(st,at);break}case TAG_ID.BODY:case TAG_ID.CAPTION:case TAG_ID.COL:case TAG_ID.COLGROUP:case TAG_ID.HTML:case TAG_ID.TBODY:case TAG_ID.TD:case TAG_ID.TFOOT:case TAG_ID.TH:case TAG_ID.THEAD:case TAG_ID.TR:break;default:tokenInTable(st,at)}}function tokenInTable(st,at){const ut=st.fosterParentingEnabled;st.fosterParentingEnabled=!0,modeInBody(st,at),st.fosterParentingEnabled=ut}function whitespaceCharacterInTableText(st,at){st.pendingCharacterTokens.push(at)}function characterInTableText(st,at){st.pendingCharacterTokens.push(at),st.hasNonWhitespacePendingCharacterToken=!0}function tokenInTableText(st,at){let ut=0;if(st.hasNonWhitespacePendingCharacterToken)for(;ut0&&st.openElements.currentTagId===TAG_ID.OPTION&&st.openElements.tagIDs[st.openElements.stackTop-1]===TAG_ID.OPTGROUP&&st.openElements.pop(),st.openElements.currentTagId===TAG_ID.OPTGROUP&&st.openElements.pop();break}case TAG_ID.OPTION:{st.openElements.currentTagId===TAG_ID.OPTION&&st.openElements.pop();break}case TAG_ID.SELECT:{st.openElements.hasInSelectScope(TAG_ID.SELECT)&&(st.openElements.popUntilTagNamePopped(TAG_ID.SELECT),st._resetInsertionMode());break}case TAG_ID.TEMPLATE:{templateEndTagInHead(st,at);break}}}function startTagInSelectInTable(st,at){const ut=at.tagID;ut===TAG_ID.CAPTION||ut===TAG_ID.TABLE||ut===TAG_ID.TBODY||ut===TAG_ID.TFOOT||ut===TAG_ID.THEAD||ut===TAG_ID.TR||ut===TAG_ID.TD||ut===TAG_ID.TH?(st.openElements.popUntilTagNamePopped(TAG_ID.SELECT),st._resetInsertionMode(),st._processStartTag(at)):startTagInSelect(st,at)}function endTagInSelectInTable(st,at){const ut=at.tagID;ut===TAG_ID.CAPTION||ut===TAG_ID.TABLE||ut===TAG_ID.TBODY||ut===TAG_ID.TFOOT||ut===TAG_ID.THEAD||ut===TAG_ID.TR||ut===TAG_ID.TD||ut===TAG_ID.TH?st.openElements.hasInTableScope(ut)&&(st.openElements.popUntilTagNamePopped(TAG_ID.SELECT),st._resetInsertionMode(),st.onEndTag(at)):endTagInSelect(st,at)}function startTagInTemplate(st,at){switch(at.tagID){case TAG_ID.BASE:case TAG_ID.BASEFONT:case TAG_ID.BGSOUND:case TAG_ID.LINK:case TAG_ID.META:case TAG_ID.NOFRAMES:case TAG_ID.SCRIPT:case TAG_ID.STYLE:case TAG_ID.TEMPLATE:case TAG_ID.TITLE:{startTagInHead(st,at);break}case TAG_ID.CAPTION:case TAG_ID.COLGROUP:case TAG_ID.TBODY:case TAG_ID.TFOOT:case TAG_ID.THEAD:{st.tmplInsertionModeStack[0]=InsertionMode.IN_TABLE,st.insertionMode=InsertionMode.IN_TABLE,startTagInTable(st,at);break}case TAG_ID.COL:{st.tmplInsertionModeStack[0]=InsertionMode.IN_COLUMN_GROUP,st.insertionMode=InsertionMode.IN_COLUMN_GROUP,startTagInColumnGroup(st,at);break}case TAG_ID.TR:{st.tmplInsertionModeStack[0]=InsertionMode.IN_TABLE_BODY,st.insertionMode=InsertionMode.IN_TABLE_BODY,startTagInTableBody(st,at);break}case TAG_ID.TD:case TAG_ID.TH:{st.tmplInsertionModeStack[0]=InsertionMode.IN_ROW,st.insertionMode=InsertionMode.IN_ROW,startTagInRow(st,at);break}default:st.tmplInsertionModeStack[0]=InsertionMode.IN_BODY,st.insertionMode=InsertionMode.IN_BODY,startTagInBody(st,at)}}function endTagInTemplate(st,at){at.tagID===TAG_ID.TEMPLATE&&templateEndTagInHead(st,at)}function eofInTemplate(st,at){st.openElements.tmplCount>0?(st.openElements.popUntilTagNamePopped(TAG_ID.TEMPLATE),st.activeFormattingElements.clearToLastMarker(),st.tmplInsertionModeStack.shift(),st._resetInsertionMode(),st.onEof(at)):stopParsing(st,at)}function startTagAfterBody(st,at){at.tagID===TAG_ID.HTML?startTagInBody(st,at):tokenAfterBody(st,at)}function endTagAfterBody(st,at){var ut;if(at.tagID===TAG_ID.HTML){if(st.fragmentContext||(st.insertionMode=InsertionMode.AFTER_AFTER_BODY),st.options.sourceCodeLocationInfo&&st.openElements.tagIDs[0]===TAG_ID.HTML){st._setEndLocation(st.openElements.items[0],at);const dt=st.openElements.items[1];dt&&!(!((ut=st.treeAdapter.getNodeSourceCodeLocation(dt))===null||ut===void 0)&&ut.endTag)&&st._setEndLocation(dt,at)}}else tokenAfterBody(st,at)}function tokenAfterBody(st,at){st.insertionMode=InsertionMode.IN_BODY,modeInBody(st,at)}function startTagInFrameset(st,at){switch(at.tagID){case TAG_ID.HTML:{startTagInBody(st,at);break}case TAG_ID.FRAMESET:{st._insertElement(at,NS.HTML);break}case TAG_ID.FRAME:{st._appendElement(at,NS.HTML),at.ackSelfClosing=!0;break}case TAG_ID.NOFRAMES:{startTagInHead(st,at);break}}}function endTagInFrameset(st,at){at.tagID===TAG_ID.FRAMESET&&!st.openElements.isRootHtmlElementCurrent()&&(st.openElements.pop(),!st.fragmentContext&&st.openElements.currentTagId!==TAG_ID.FRAMESET&&(st.insertionMode=InsertionMode.AFTER_FRAMESET))}function startTagAfterFrameset(st,at){switch(at.tagID){case TAG_ID.HTML:{startTagInBody(st,at);break}case TAG_ID.NOFRAMES:{startTagInHead(st,at);break}}}function endTagAfterFrameset(st,at){at.tagID===TAG_ID.HTML&&(st.insertionMode=InsertionMode.AFTER_AFTER_FRAMESET)}function startTagAfterAfterBody(st,at){at.tagID===TAG_ID.HTML?startTagInBody(st,at):tokenAfterAfterBody(st,at)}function tokenAfterAfterBody(st,at){st.insertionMode=InsertionMode.IN_BODY,modeInBody(st,at)}function startTagAfterAfterFrameset(st,at){switch(at.tagID){case TAG_ID.HTML:{startTagInBody(st,at);break}case TAG_ID.NOFRAMES:{startTagInHead(st,at);break}}}function nullCharacterInForeignContent(st,at){at.chars=REPLACEMENT_CHARACTER,st._insertCharacters(at)}function characterInForeignContent(st,at){st._insertCharacters(at),st.framesetOk=!1}function popUntilHtmlOrIntegrationPoint(st){for(;st.treeAdapter.getNamespaceURI(st.openElements.current)!==NS.HTML&&st.openElements.currentTagId!==void 0&&!st._isIntegrationPoint(st.openElements.currentTagId,st.openElements.current);)st.openElements.pop()}function startTagInForeignContent(st,at){if(causesExit(at))popUntilHtmlOrIntegrationPoint(st),st._startTagOutsideForeignContent(at);else{const ut=st._getAdjustedCurrentElement(),dt=st.treeAdapter.getNamespaceURI(ut);dt===NS.MATHML?adjustTokenMathMLAttrs(at):dt===NS.SVG&&(adjustTokenSVGTagName(at),adjustTokenSVGAttrs(at)),adjustTokenXMLAttrs(at),at.selfClosing?st._appendElement(at,dt):st._insertElement(at,dt),at.ackSelfClosing=!0}}function endTagInForeignContent(st,at){if(at.tagID===TAG_ID.P||at.tagID===TAG_ID.BR){popUntilHtmlOrIntegrationPoint(st),st._endTagOutsideForeignContent(at);return}for(let ut=st.openElements.stackTop;ut>0;ut--){const dt=st.openElements.items[ut];if(st.treeAdapter.getNamespaceURI(dt)===NS.HTML){st._endTagOutsideForeignContent(at);break}const ct=st.treeAdapter.getTagName(dt);if(ct.toLowerCase()===at.tagName){at.tagName=ct,st.openElements.shortenToLength(ut);break}}}function getEscaper(st,at){return function(dt){let ct,pt=0,ft="";for(;ct=st.exec(dt);)pt!==ct.index&&(ft+=dt.substring(pt,ct.index)),ft+=at.get(ct[0].charCodeAt(0)),pt=ct.index+1;return ft+dt.substring(pt)}}const escapeAttribute=getEscaper(/["&\u00A0]/g,new Map([[34,"""],[38,"&"],[160," "]])),escapeText=getEscaper(/[&<>\u00A0]/g,new Map([[38,"&"],[60,"<"],[62,">"],[160," "]])),VOID_ELEMENTS=new Set([TAG_NAMES.AREA,TAG_NAMES.BASE,TAG_NAMES.BASEFONT,TAG_NAMES.BGSOUND,TAG_NAMES.BR,TAG_NAMES.COL,TAG_NAMES.EMBED,TAG_NAMES.FRAME,TAG_NAMES.HR,TAG_NAMES.IMG,TAG_NAMES.INPUT,TAG_NAMES.KEYGEN,TAG_NAMES.LINK,TAG_NAMES.META,TAG_NAMES.PARAM,TAG_NAMES.SOURCE,TAG_NAMES.TRACK,TAG_NAMES.WBR]);function isVoidElement(st,at){return at.treeAdapter.isElementNode(st)&&at.treeAdapter.getNamespaceURI(st)===NS.HTML&&VOID_ELEMENTS.has(at.treeAdapter.getTagName(st))}const defaultOpts={treeAdapter:defaultTreeAdapter,scriptingEnabled:!0};function serializeOuter(st,at){const ut={...defaultOpts,...at};return serializeNode(st,ut)}function serializeChildNodes(st,at){let ut="";const dt=at.treeAdapter.isElementNode(st)&&at.treeAdapter.getTagName(st)===TAG_NAMES.TEMPLATE&&at.treeAdapter.getNamespaceURI(st)===NS.HTML?at.treeAdapter.getTemplateContent(st):st,ct=at.treeAdapter.getChildNodes(dt);if(ct)for(const pt of ct)ut+=serializeNode(pt,at);return ut}function serializeNode(st,at){return at.treeAdapter.isElementNode(st)?serializeElement(st,at):at.treeAdapter.isTextNode(st)?serializeTextNode(st,at):at.treeAdapter.isCommentNode(st)?serializeCommentNode(st,at):at.treeAdapter.isDocumentTypeNode(st)?serializeDocumentTypeNode(st,at):""}function serializeElement(st,at){const ut=at.treeAdapter.getTagName(st);return`<${ut}${serializeAttributes(st,at)}>${isVoidElement(st,at)?"":`${serializeChildNodes(st,at)}`}`}function serializeAttributes(st,{treeAdapter:at}){let ut="";for(const dt of at.getAttrList(st)){if(ut+=" ",dt.namespace)switch(dt.namespace){case NS.XML:{ut+=`xml:${dt.name}`;break}case NS.XMLNS:{dt.name!=="xmlns"&&(ut+="xmlns:"),ut+=dt.name;break}case NS.XLINK:{ut+=`xlink:${dt.name}`;break}default:ut+=`${dt.prefix}:${dt.name}`}else ut+=dt.name;ut+=`="${escapeAttribute(dt.value)}"`}return ut}function serializeTextNode(st,at){const{treeAdapter:ut}=at,dt=ut.getTextNodeContent(st),ct=ut.getParentNode(st),pt=ct&&ut.isElementNode(ct)&&ut.getTagName(ct);return pt&&ut.getNamespaceURI(ct)===NS.HTML&&hasUnescapedText(pt,at.scriptingEnabled)?dt:escapeText(dt)}function serializeCommentNode(st,{treeAdapter:at}){return``}function serializeDocumentTypeNode(st,{treeAdapter:at}){return``}function parse$k(st,at){return Parser$1.parse(st,at)}function parseFragment(st,at,ut){typeof st=="string"&&(ut=at,at=st,st=null);const dt=Parser$1.getFragmentParser(st,ut);return dt.tokenizer.write(at,!0),dt.getFragment()}function enquoteDoctypeId(st){const at=st.includes('"')?"'":'"';return at+st+at}function serializeDoctypeContent(st,at,ut){let dt="!DOCTYPE ";return st&&(dt+=st),at?dt+=` PUBLIC ${enquoteDoctypeId(at)}`:ut&&(dt+=" SYSTEM"),ut&&(dt+=` ${enquoteDoctypeId(ut)}`),dt}const adapter={isCommentNode:isComment,isElementNode:isTag,isTextNode:isText,createDocument(){const st=new Document$1([]);return st["x-mode"]=DOCUMENT_MODE.NO_QUIRKS,st},createDocumentFragment(){return new Document$1([])},createElement(st,at,ut){const dt=Object.create(null),ct=Object.create(null),pt=Object.create(null);for(let ht=0;htisDirective(ft)&&ft.name==="!doctype");pt?pt.data=ct??null:(pt=new ProcessingInstruction("!doctype",ct),adapter.appendChild(st,pt)),pt["x-name"]=at,pt["x-publicId"]=ut,pt["x-systemId"]=dt},setDocumentMode(st,at){st["x-mode"]=at},getDocumentMode(st){return st["x-mode"]},detachNode(st){if(st.parent){const at=st.parent.children.indexOf(st),{prev:ut,next:dt}=st;st.prev=null,st.next=null,ut&&(ut.next=dt),dt&&(dt.prev=ut),st.parent.children.splice(at,1),st.parent=null}},insertText(st,at){const ut=st.children[st.children.length-1];ut&&isText(ut)?ut.data+=at:adapter.appendChild(st,adapter.createTextNode(at))},insertTextBefore(st,at,ut){const dt=st.children[st.children.indexOf(ut)-1];dt&&isText(dt)?dt.data+=at:adapter.insertBefore(st,adapter.createTextNode(at),ut)},adoptAttributes(st,at){for(let ut=0;ut=CharCodes.Zero&&st<=CharCodes.Nine}function isASCIIAlpha(st){return st>=CharCodes.LowerA&&st<=CharCodes.LowerZ||st>=CharCodes.UpperA&&st<=CharCodes.UpperZ}function isHexDigit(st){return st>=CharCodes.UpperA&&st<=CharCodes.UpperF||st>=CharCodes.LowerA&&st<=CharCodes.LowerF}var QuoteType;(function(st){st[st.NoValue=0]="NoValue",st[st.Unquoted=1]="Unquoted",st[st.Single=2]="Single",st[st.Double=3]="Double"})(QuoteType||(QuoteType={}));const Sequences={Cdata:new Uint8Array([67,68,65,84,65,91]),CdataEnd:new Uint8Array([93,93,62]),CommentEnd:new Uint8Array([45,45,62]),ScriptEnd:new Uint8Array([60,47,115,99,114,105,112,116]),StyleEnd:new Uint8Array([60,47,115,116,121,108,101]),TitleEnd:new Uint8Array([60,47,116,105,116,108,101])};class Tokenizer{constructor({xmlMode:at=!1,decodeEntities:ut=!0},dt){this.cbs=dt,this.state=State$1.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=State$1.Text,this.isSpecial=!1,this.running=!0,this.offset=0,this.currentSequence=void 0,this.sequenceIndex=0,this.trieIndex=0,this.trieCurrent=0,this.entityResult=0,this.entityExcess=0,this.xmlMode=at,this.decodeEntities=ut,this.entityTrie=at?xmlDecodeTree:htmlDecodeTree$1}reset(){this.state=State$1.Text,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=State$1.Text,this.currentSequence=void 0,this.running=!0,this.offset=0}write(at){this.offset+=this.buffer.length,this.buffer=at,this.parse()}end(){this.running&&this.finish()}pause(){this.running=!1}resume(){this.running=!0,this.indexthis.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=State$1.BeforeTagName,this.sectionStart=this.index):this.decodeEntities&&at===CharCodes.Amp&&(this.state=State$1.BeforeEntity)}stateSpecialStartSequence(at){const ut=this.sequenceIndex===this.currentSequence.length;if(!(ut?isEndOfTagSection(at):(at|32)===this.currentSequence[this.sequenceIndex]))this.isSpecial=!1;else if(!ut){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=State$1.InTagName,this.stateInTagName(at)}stateInSpecialTag(at){if(this.sequenceIndex===this.currentSequence.length){if(at===CharCodes.Gt||isWhitespace(at)){const ut=this.index-this.currentSequence.length;if(this.sectionStart>14)-1;if(!this.allowLegacyEntity()&&at!==CharCodes.Semi)this.trieIndex+=dt;else{const ct=this.index-this.entityExcess+1;ct>this.sectionStart&&this.emitPartial(this.sectionStart,ct),this.entityResult=this.trieIndex,this.trieIndex+=dt,this.entityExcess=0,this.sectionStart=this.index+1,dt===0&&this.emitNamedEntity()}}}emitNamedEntity(){if(this.state=this.baseState,this.entityResult===0)return;switch((this.entityTrie[this.entityResult]&BinTrieFlags$1.VALUE_LENGTH)>>14){case 1:{this.emitCodePoint(this.entityTrie[this.entityResult]&~BinTrieFlags$1.VALUE_LENGTH);break}case 2:{this.emitCodePoint(this.entityTrie[this.entityResult+1]);break}case 3:this.emitCodePoint(this.entityTrie[this.entityResult+1]),this.emitCodePoint(this.entityTrie[this.entityResult+2])}}stateBeforeNumericEntity(at){(at|32)===CharCodes.LowerX?(this.entityExcess++,this.state=State$1.InHexEntity):(this.state=State$1.InNumericEntity,this.stateInNumericEntity(at))}emitNumericEntity(at){const ut=this.index-this.entityExcess-1;ut+2+ +(this.state===State$1.InHexEntity)!==this.index&&(ut>this.sectionStart&&this.emitPartial(this.sectionStart,ut),this.sectionStart=this.index+Number(at),this.emitCodePoint(replaceCodePoint$1(this.entityResult))),this.state=this.baseState}stateInNumericEntity(at){at===CharCodes.Semi?this.emitNumericEntity(!0):isNumber$1(at)?(this.entityResult=this.entityResult*10+(at-CharCodes.Zero),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}stateInHexEntity(at){at===CharCodes.Semi?this.emitNumericEntity(!0):isNumber$1(at)?(this.entityResult=this.entityResult*16+(at-CharCodes.Zero),this.entityExcess++):isHexDigit(at)?(this.entityResult=this.entityResult*16+((at|32)-CharCodes.LowerA+10),this.entityExcess++):(this.allowLegacyEntity()?this.emitNumericEntity(!1):this.state=this.baseState,this.index--)}allowLegacyEntity(){return!this.xmlMode&&(this.baseState===State$1.Text||this.baseState===State$1.InSpecialTag)}cleanup(){this.running&&this.sectionStart!==this.index&&(this.state===State$1.Text||this.state===State$1.InSpecialTag&&this.sequenceIndex===0?(this.cbs.ontext(this.sectionStart,this.index),this.sectionStart=this.index):(this.state===State$1.InAttributeValueDq||this.state===State$1.InAttributeValueSq||this.state===State$1.InAttributeValueNq)&&(this.cbs.onattribdata(this.sectionStart,this.index),this.sectionStart=this.index))}shouldContinue(){return this.index0&&ft.has(this.stack[this.stack.length-1]);){const ht=this.stack.pop();(dt=(ut=this.cbs).onclosetag)===null||dt===void 0||dt.call(ut,ht,!0)}this.isVoidElement(at)||(this.stack.push(at),foreignContextElements.has(at)?this.foreignContext.push(!0):htmlIntegrationElements.has(at)&&this.foreignContext.push(!1)),(pt=(ct=this.cbs).onopentagname)===null||pt===void 0||pt.call(ct,at),this.cbs.onopentag&&(this.attribs={})}endOpenTag(at){var ut,dt;this.startIndex=this.openTagStart,this.attribs&&((dt=(ut=this.cbs).onopentag)===null||dt===void 0||dt.call(ut,this.tagname,this.attribs,at),this.attribs=null),this.cbs.onclosetag&&this.isVoidElement(this.tagname)&&this.cbs.onclosetag(this.tagname,!0),this.tagname=""}onopentagend(at){this.endIndex=at,this.endOpenTag(!1),this.startIndex=at+1}onclosetag(at,ut){var dt,ct,pt,ft,ht,mt;this.endIndex=ut;let yt=this.getSlice(at,ut);if(this.lowerCaseTagNames&&(yt=yt.toLowerCase()),(foreignContextElements.has(yt)||htmlIntegrationElements.has(yt))&&this.foreignContext.pop(),this.isVoidElement(yt))!this.options.xmlMode&&yt==="br"&&((ct=(dt=this.cbs).onopentagname)===null||ct===void 0||ct.call(dt,"br"),(ft=(pt=this.cbs).onopentag)===null||ft===void 0||ft.call(pt,"br",{},!0),(mt=(ht=this.cbs).onclosetag)===null||mt===void 0||mt.call(ht,"br",!1));else{const bt=this.stack.lastIndexOf(yt);if(bt!==-1)if(this.cbs.onclosetag){let Tt=this.stack.length-bt;for(;Tt--;)this.cbs.onclosetag(this.stack.pop(),Tt!==0)}else this.stack.length=bt;else!this.options.xmlMode&&yt==="p"&&(this.emitOpenTag("p"),this.closeCurrentTag(!0))}this.startIndex=ut+1}onselfclosingtag(at){this.endIndex=at,this.options.xmlMode||this.options.recognizeSelfClosing||this.foreignContext[this.foreignContext.length-1]?(this.closeCurrentTag(!1),this.startIndex=at+1):this.onopentagend(at)}closeCurrentTag(at){var ut,dt;const ct=this.tagname;this.endOpenTag(at),this.stack[this.stack.length-1]===ct&&((dt=(ut=this.cbs).onclosetag)===null||dt===void 0||dt.call(ut,ct,!at),this.stack.pop())}onattribname(at,ut){this.startIndex=at;const dt=this.getSlice(at,ut);this.attribname=this.lowerCaseAttributeNames?dt.toLowerCase():dt}onattribdata(at,ut){this.attribvalue+=this.getSlice(at,ut)}onattribentity(at){this.attribvalue+=fromCodePoint(at)}onattribend(at,ut){var dt,ct;this.endIndex=ut,(ct=(dt=this.cbs).onattribute)===null||ct===void 0||ct.call(dt,this.attribname,this.attribvalue,at===QuoteType.Double?'"':at===QuoteType.Single?"'":at===QuoteType.NoValue?void 0:null),this.attribs&&!Object.prototype.hasOwnProperty.call(this.attribs,this.attribname)&&(this.attribs[this.attribname]=this.attribvalue),this.attribvalue=""}getInstructionName(at){const ut=at.search(reNameEnd);let dt=ut<0?at:at.substr(0,ut);return this.lowerCaseTagNames&&(dt=dt.toLowerCase()),dt}ondeclaration(at,ut){this.endIndex=ut;const dt=this.getSlice(at,ut);if(this.cbs.onprocessinginstruction){const ct=this.getInstructionName(dt);this.cbs.onprocessinginstruction(`!${ct}`,`!${dt}`)}this.startIndex=ut+1}onprocessinginstruction(at,ut){this.endIndex=ut;const dt=this.getSlice(at,ut);if(this.cbs.onprocessinginstruction){const ct=this.getInstructionName(dt);this.cbs.onprocessinginstruction(`?${ct}`,`?${dt}`)}this.startIndex=ut+1}oncomment(at,ut,dt){var ct,pt,ft,ht;this.endIndex=ut,(pt=(ct=this.cbs).oncomment)===null||pt===void 0||pt.call(ct,this.getSlice(at,ut-dt)),(ht=(ft=this.cbs).oncommentend)===null||ht===void 0||ht.call(ft),this.startIndex=ut+1}oncdata(at,ut,dt){var ct,pt,ft,ht,mt,yt,bt,Tt,St,At;this.endIndex=ut;const vt=this.getSlice(at,ut-dt);this.options.xmlMode||this.options.recognizeCDATA?((pt=(ct=this.cbs).oncdatastart)===null||pt===void 0||pt.call(ct),(ht=(ft=this.cbs).ontext)===null||ht===void 0||ht.call(ft,vt),(yt=(mt=this.cbs).oncdataend)===null||yt===void 0||yt.call(mt)):((Tt=(bt=this.cbs).oncomment)===null||Tt===void 0||Tt.call(bt,`[CDATA[${vt}]]`),(At=(St=this.cbs).oncommentend)===null||At===void 0||At.call(St)),this.startIndex=ut+1}onend(){var at,ut;if(this.cbs.onclosetag){this.endIndex=this.startIndex;for(let dt=this.stack.length;dt>0;this.cbs.onclosetag(this.stack[--dt],!0));}(ut=(at=this.cbs).onend)===null||ut===void 0||ut.call(at)}reset(){var at,ut,dt,ct;(ut=(at=this.cbs).onreset)===null||ut===void 0||ut.call(at),this.tokenizer.reset(),this.tagname="",this.attribname="",this.attribs=null,this.stack.length=0,this.startIndex=0,this.endIndex=0,(ct=(dt=this.cbs).onparserinit)===null||ct===void 0||ct.call(dt,this),this.buffers.length=0,this.bufferOffset=0,this.writeIndex=0,this.ended=!1}parseComplete(at){this.reset(),this.end(at)}getSlice(at,ut){for(;at-this.bufferOffset>=this.buffers[0].length;)this.shiftBuffer();let dt=this.buffers[0].slice(at-this.bufferOffset,ut-this.bufferOffset);for(;ut-this.bufferOffset>this.buffers[0].length;)this.shiftBuffer(),dt+=this.buffers[0].slice(0,ut-this.bufferOffset);return dt}shiftBuffer(){this.bufferOffset+=this.buffers[0].length,this.writeIndex--,this.buffers.shift()}write(at){var ut,dt;if(this.ended){(dt=(ut=this.cbs).onerror)===null||dt===void 0||dt.call(ut,new Error(".write() after done!"));return}this.buffers.push(at),this.tokenizer.running&&(this.tokenizer.write(at),this.writeIndex++)}end(at){var ut,dt;if(this.ended){(dt=(ut=this.cbs).onerror)===null||dt===void 0||dt.call(ut,new Error(".end() after done!"));return}at&&this.write(at),this.ended=!0,this.tokenizer.end()}pause(){this.tokenizer.pause()}resume(){for(this.tokenizer.resume();this.tokenizer.running&&this.writeIndexat.xmlMode||at._useHtmlParser2?parseDocument(st,at):parseWithParse5(st,at,ut,dt)),load=getLoad(parse$j,(st,at)=>at.xmlMode||at._useHtmlParser2?render$1(st,at):renderWithParse5(st));load([]);var cookie={};/*! * cookie * Copyright(c) 2012-2014 Roman Shtylman * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed */cookie.parse=parse$i;cookie.serialize=serialize;var __toString=Object.prototype.toString,fieldContentRegExp=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/;function parse$i(st,at){if(typeof st!="string")throw new TypeError("argument str must be a string");for(var ut={},dt=at||{},ct=dt.decode||decode$1,pt=0;pt1?(at=dt.shift(),ut=dt.join("=")):ut=st,{name:at,value:ut}}function parse$h(st,at){if(at=at?Object.assign({},defaultParseOptions,at):defaultParseOptions,!st)return at.map?{}:[];if(st.headers)if(typeof st.headers.getSetCookie=="function")st=st.headers.getSetCookie();else if(st.headers["set-cookie"])st=st.headers["set-cookie"];else{var ut=st.headers[Object.keys(st.headers).find(function(ct){return ct.toLowerCase()==="set-cookie"})];!ut&&st.headers.cookie&&!at.silent&&console.warn("Warning: set-cookie-parser appears to have been called on a request object. It is designed to parse Set-Cookie headers from responses, not Cookie headers from requests. Set the option {silent: true} to suppress this warning."),st=ut}if(Array.isArray(st)||(st=[st]),at.map){var dt={};return st.filter(isNonEmptyString).reduce(function(ct,pt){var ft=parseString(pt,at);return ct[ft.name]=ft,ct},dt)}else return st.filter(isNonEmptyString).map(function(ct){return parseString(ct,at)})}function splitCookiesString(st){if(Array.isArray(st))return st;if(typeof st!="string")return[];var at=[],ut=0,dt,ct,pt,ft,ht;function mt(){for(;ut=st.length)&&at.push(st.substring(dt,st.length))}return at}setCookie.exports=parse$h;setCookie.exports.parse=parse$h;setCookie.exports.parseString=parseString;setCookie.exports.splitCookiesString=splitCookiesString;var setCookieExports=setCookie.exports;const setCookieParser=getDefaultExportFromCjs$1(setCookieExports);var hlsParser_min={exports:{}};/*! For license information please see hls-parser.min.js.LICENSE.txt */(function(st,at){(function(ut,dt){st.exports=dt()})(self,()=>(()=>{var ut={31:function(pt,ft,ht){function mt(Pt){return mt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Ut){return typeof Ut}:function(Ut){return Ut&&typeof Symbol=="function"&&Ut.constructor===Symbol&&Ut!==Symbol.prototype?"symbol":typeof Ut},mt(Pt)}function yt(Pt,Ut){var Gt=Object.keys(Pt);if(Object.getOwnPropertySymbols){var Xt=Object.getOwnPropertySymbols(Pt);Ut&&(Xt=Xt.filter(function(na){return Object.getOwnPropertyDescriptor(Pt,na).enumerable})),Gt.push.apply(Gt,Xt)}return Gt}function bt(Pt){for(var Ut=1;Ut=0],[an,an>=0]),this.id=Gt,this.classId=Xt,this.start=na,this.end=xa,this.duration=$a,this.plannedDuration=an,this.endOnNext=nn,this.attributes=en});ft.DateRange=jt;var Ft=Et(function Pt(Ut){var Gt=Ut.type,Xt=Ut.duration,na=Ut.tagName,xa=Ut.value;_t(this,Pt),xt(this,"type",void 0),xt(this,"duration",void 0),xt(this,"tagName",void 0),xt(this,"value",void 0),Ot.PARAMCHECK(Gt),Ot.CONDITIONALPARAMCHECK([Gt==="OUT",Xt]),Ot.CONDITIONALPARAMCHECK([Gt==="RAW",na]),this.type=Gt,this.duration=Xt,this.tagName=na,this.value=xa});ft.SpliceInfo=Ft;var Vt=Et(function Pt(Ut){_t(this,Pt),xt(this,"type",void 0),Ot.PARAMCHECK(Ut),this.type=Ut}),Ht=function(Pt){function Ut(Gt){var Xt,na=Gt.isMasterPlaylist,xa=Gt.uri,$a=Gt.version,an=Gt.independentSegments,nn=an!==void 0&&an,rn=Gt.start,en=Gt.source;return _t(this,Ut),xt(Xt=Tt(this,Ut,["playlist"]),"isMasterPlaylist",void 0),xt(Xt,"uri",void 0),xt(Xt,"version",void 0),xt(Xt,"independentSegments",void 0),xt(Xt,"start",void 0),xt(Xt,"source",void 0),Ot.PARAMCHECK(na),Xt.isMasterPlaylist=na,Xt.uri=xa,Xt.version=$a,Xt.independentSegments=nn,Xt.start=rn,Xt.source=en,Xt}return vt(Ut,Pt),Et(Ut)}(Vt);ft.Playlist=Ht;var Kt=function(Pt){function Ut(){var Gt,Xt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};_t(this,Ut),xt(Gt=Tt(this,Ut,[bt(bt({},Xt),{},{isMasterPlaylist:!0})]),"variants",void 0),xt(Gt,"currentVariant",void 0),xt(Gt,"sessionDataList",void 0),xt(Gt,"sessionKeyList",void 0);var na=Xt.variants,xa=na===void 0?[]:na,$a=Xt.currentVariant,an=Xt.sessionDataList,nn=an===void 0?[]:an,rn=Xt.sessionKeyList,en=rn===void 0?[]:rn;return Gt.variants=xa,Gt.currentVariant=$a,Gt.sessionDataList=nn,Gt.sessionKeyList=en,Gt}return vt(Ut,Pt),Et(Ut)}(Ht);ft.MasterPlaylist=Kt;var Zt=function(Pt){function Ut(){var Gt,Xt=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};_t(this,Ut),xt(Gt=Tt(this,Ut,[bt(bt({},Xt),{},{isMasterPlaylist:!1})]),"targetDuration",void 0),xt(Gt,"mediaSequenceBase",void 0),xt(Gt,"discontinuitySequenceBase",void 0),xt(Gt,"endlist",void 0),xt(Gt,"playlistType",void 0),xt(Gt,"isIFrame",void 0),xt(Gt,"segments",void 0),xt(Gt,"prefetchSegments",void 0),xt(Gt,"lowLatencyCompatibility",void 0),xt(Gt,"partTargetDuration",void 0),xt(Gt,"renditionReports",void 0),xt(Gt,"skip",void 0),xt(Gt,"hash",void 0);var na=Xt.targetDuration,xa=Xt.mediaSequenceBase,$a=xa===void 0?0:xa,an=Xt.discontinuitySequenceBase,nn=an===void 0?0:an,rn=Xt.endlist,en=rn!==void 0&&rn,dn=Xt.playlistType,gn=Xt.isIFrame,ln=Xt.segments,cn=ln===void 0?[]:ln,sn=Xt.prefetchSegments,pn=sn===void 0?[]:sn,bn=Xt.lowLatencyCompatibility,Sn=Xt.partTargetDuration,mn=Xt.renditionReports,An=mn===void 0?[]:mn,En=Xt.skip,Tn=En===void 0?0:En,xn=Xt.hash;return Gt.targetDuration=na,Gt.mediaSequenceBase=$a,Gt.discontinuitySequenceBase=nn,Gt.endlist=en,Gt.playlistType=dn,Gt.isIFrame=gn,Gt.segments=cn,Gt.prefetchSegments=pn,Gt.lowLatencyCompatibility=bn,Gt.partTargetDuration=Sn,Gt.renditionReports=An,Gt.skip=Tn,Gt.hash=xn,Gt}return vt(Ut,Pt),Et(Ut)}(Ht);ft.MediaPlaylist=Zt;var Wt=function(Pt){function Ut(Gt){var Xt,na=Gt.uri,xa=Gt.mimeType,$a=Gt.data,an=Gt.duration,nn=Gt.title,rn=Gt.byterange,en=Gt.discontinuity,dn=Gt.mediaSequenceNumber,gn=dn===void 0?0:dn,ln=Gt.discontinuitySequence,cn=ln===void 0?0:ln,sn=Gt.key,pn=Gt.map,bn=Gt.programDateTime,Sn=Gt.dateRange,mn=Gt.markers,An=mn===void 0?[]:mn,En=Gt.parts,Tn=En===void 0?[]:En,xn=Gt.gap;return _t(this,Ut),xt(Xt=Tt(this,Ut,["segment"]),"uri",void 0),xt(Xt,"mimeType",void 0),xt(Xt,"data",void 0),xt(Xt,"duration",void 0),xt(Xt,"title",void 0),xt(Xt,"byterange",void 0),xt(Xt,"discontinuity",void 0),xt(Xt,"mediaSequenceNumber",void 0),xt(Xt,"discontinuitySequence",void 0),xt(Xt,"key",void 0),xt(Xt,"map",void 0),xt(Xt,"programDateTime",void 0),xt(Xt,"dateRange",void 0),xt(Xt,"markers",void 0),xt(Xt,"parts",void 0),xt(Xt,"gap",void 0),Xt.uri=na,Xt.mimeType=xa,Xt.data=$a,Xt.duration=an,Xt.title=nn,Xt.byterange=rn,Xt.discontinuity=en,Xt.mediaSequenceNumber=gn,Xt.discontinuitySequence=cn,Xt.key=sn,Xt.map=pn,Xt.programDateTime=bn,Xt.dateRange=Sn,Xt.markers=An,Xt.parts=Tn,Xt.gap=xn,Xt}return vt(Ut,Pt),Et(Ut)}(Vt);ft.Segment=Wt;var Nt=function(Pt){function Ut(Gt){var Xt,na=Gt.hint,xa=na!==void 0&&na,$a=Gt.uri,an=Gt.duration,nn=Gt.independent,rn=Gt.byterange,en=Gt.gap;return _t(this,Ut),xt(Xt=Tt(this,Ut,["part"]),"hint",void 0),xt(Xt,"uri",void 0),xt(Xt,"duration",void 0),xt(Xt,"independent",void 0),xt(Xt,"byterange",void 0),xt(Xt,"gap",void 0),Ot.PARAMCHECK($a),Xt.hint=xa,Xt.uri=$a,Xt.duration=an,Xt.independent=nn,Xt.duration=an,Xt.byterange=rn,Xt.gap=en,Xt}return vt(Ut,Pt),Et(Ut)}(Vt);ft.PartialSegment=Nt;var Rt=function(Pt){function Ut(Gt){var Xt,na=Gt.uri,xa=Gt.discontinuity,$a=Gt.mediaSequenceNumber,an=$a===void 0?0:$a,nn=Gt.discontinuitySequence,rn=nn===void 0?0:nn,en=Gt.key;return _t(this,Ut),xt(Xt=Tt(this,Ut,["prefetch"]),"uri",void 0),xt(Xt,"discontinuity",void 0),xt(Xt,"mediaSequenceNumber",void 0),xt(Xt,"discontinuitySequence",void 0),xt(Xt,"key",void 0),Ot.PARAMCHECK(na),Xt.uri=na,Xt.discontinuity=xa,Xt.mediaSequenceNumber=an,Xt.discontinuitySequence=rn,Xt.key=en,Xt}return vt(Ut,Pt),Et(Ut)}(Vt);ft.PrefetchSegment=Rt;var Bt=Et(function Pt(Ut){var Gt=Ut.uri,Xt=Ut.lastMSN,na=Ut.lastPart;_t(this,Pt),xt(this,"uri",void 0),xt(this,"lastMSN",void 0),xt(this,"lastPart",void 0),Ot.PARAMCHECK(Gt),this.uri=Gt,this.lastMSN=Xt,this.lastPart=na});ft.RenditionReport=Bt},73:function(pt,ft,ht){var mt,yt=this&&this.__createBinding||(Object.create?function(_t,xt,Ct,kt){kt===void 0&&(kt=Ct);var wt=Object.getOwnPropertyDescriptor(xt,Ct);wt&&!("get"in wt?!xt.__esModule:wt.writable||wt.configurable)||(wt={enumerable:!0,get:function(){return xt[Ct]}}),Object.defineProperty(_t,kt,wt)}:function(_t,xt,Ct,kt){kt===void 0&&(kt=Ct),_t[kt]=xt[Ct]}),bt=this&&this.__setModuleDefault||(Object.create?function(_t,xt){Object.defineProperty(_t,"default",{enumerable:!0,value:xt})}:function(_t,xt){_t.default=xt}),Tt=this&&this.__importStar||(mt=function(_t){return mt=Object.getOwnPropertyNames||function(xt){var Ct=[];for(var kt in xt)Object.prototype.hasOwnProperty.call(xt,kt)&&(Ct[Ct.length]=kt);return Ct},mt(_t)},function(_t){if(_t&&_t.__esModule)return _t;var xt={};if(_t!=null)for(var Ct=mt(_t),kt=0;kt{function ht(At,vt){return function(Dt){if(Array.isArray(Dt))return Dt}(At)||function(Dt,Et){var _t=Dt==null?null:typeof Symbol<"u"&&Dt[Symbol.iterator]||Dt["@@iterator"];if(_t!=null){var xt,Ct,kt,wt,$t=[],Lt=!0,Ot=!1;try{if(kt=(_t=_t.call(Dt)).next,Et!==0)for(;!(Lt=(xt=kt.call(_t)).done)&&($t.push(xt.value),$t.length!==Et);Lt=!0);}catch(zt){Ot=!0,Ct=zt}finally{try{if(!Lt&&_t.return!=null&&(wt=_t.return(),Object(wt)!==wt))return}finally{if(Ot)throw Ct}}return $t}}(At,vt)||yt(At,vt)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function mt(At,vt){var Dt=typeof Symbol<"u"&&At[Symbol.iterator]||At["@@iterator"];if(!Dt){if(Array.isArray(At)||(Dt=yt(At))||vt){Dt&&(At=Dt);var Et=0,_t=function(){};return{s:_t,n:function(){return Et>=At.length?{done:!0}:{done:!1,value:At[Et++]}},e:function(wt){throw wt},f:_t}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var xt,Ct=!0,kt=!1;return{s:function(){Dt=Dt.call(At)},n:function(){var wt=Dt.next();return Ct=wt.done,wt},e:function(wt){kt=!0,xt=wt},f:function(){try{Ct||Dt.return==null||Dt.return()}finally{if(kt)throw xt}}}}function yt(At,vt){if(At){if(typeof At=="string")return bt(At,vt);var Dt={}.toString.call(At).slice(8,-1);return Dt==="Object"&&At.constructor&&(Dt=At.constructor.name),Dt==="Map"||Dt==="Set"?Array.from(At):Dt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Dt)?bt(At,vt):void 0}}function bt(At,vt){(vt==null||vt>At.length)&&(vt=At.length);for(var Dt=0,Et=Array(vt);Dt1?vt-1:0),Et=1;Et1&&arguments[1]!==void 0?arguments[1]:10;if(typeof At=="number")return At;var Dt=vt===10?Number.parseFloat(At):Number.parseInt(At,vt);return Number.isNaN(Dt)?0:Dt},ft.hexToByteSequence=function(At){(At.startsWith("0x")||At.startsWith("0X"))&&(At=At.slice(2));for(var vt=new Uint8Array(At.length/2),Dt=0;Dt1&&arguments[1]!==void 0?arguments[1]:0,Dt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:At.byteLength;Dt<=vt&&St(new Error("end must be larger than start : start=".concat(vt,", end=").concat(Dt)));for(var Et=[],_t=vt;_t2&&arguments[2]!==void 0?arguments[2]:0,Et=-1,_t=0,xt=0;_t1&&arguments[1]!==void 0?arguments[1]:" ";return!At||(At=At.trim(),vt===" ")||(At.startsWith(vt)&&(At=At.slice(1)),At.endsWith(vt)&&(At=At.slice(0,-1))),At},ft.splitByCommaWithPreservingQuotes=function(At){for(var vt=[],Dt=!0,Et=0,_t=[],xt=0;xt0&&arguments[0]!==void 0?arguments[0]:{};Tt=Object.assign(Tt,At)},ft.getOptions=function(){return Object.assign({},Tt)};var Tt={};function St(At){if(Tt.strictMode)throw At;Tt.silent||console.error(At.message)}},377:function(pt,ft,ht){function mt(Wt,Nt){return function(Rt){if(Array.isArray(Rt))return Rt}(Wt)||function(Rt,Bt){var Pt=Rt==null?null:typeof Symbol<"u"&&Rt[Symbol.iterator]||Rt["@@iterator"];if(Pt!=null){var Ut,Gt,Xt,na,xa=[],$a=!0,an=!1;try{if(Xt=(Pt=Pt.call(Rt)).next,Bt===0){if(Object(Pt)!==Pt)return;$a=!1}else for(;!($a=(Ut=Xt.call(Pt)).done)&&(xa.push(Ut.value),xa.length!==Bt);$a=!0);}catch(nn){an=!0,Gt=nn}finally{try{if(!$a&&Pt.return!=null&&(na=Pt.return(),Object(na)!==na))return}finally{if(an)throw Gt}}return xa}}(Wt,Nt)||bt(Wt,Nt)||function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}()}function yt(Wt,Nt){var Rt=typeof Symbol<"u"&&Wt[Symbol.iterator]||Wt["@@iterator"];if(!Rt){if(Array.isArray(Wt)||(Rt=bt(Wt))||Nt){Rt&&(Wt=Rt);var Bt=0,Pt=function(){};return{s:Pt,n:function(){return Bt>=Wt.length?{done:!0}:{done:!1,value:Wt[Bt++]}},e:function(na){throw na},f:Pt}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Ut,Gt=!0,Xt=!1;return{s:function(){Rt=Rt.call(Wt)},n:function(){var na=Rt.next();return Gt=na.done,na},e:function(na){Xt=!0,Ut=na},f:function(){try{Gt||Rt.return==null||Rt.return()}finally{if(Xt)throw Ut}}}}function bt(Wt,Nt){if(Wt){if(typeof Wt=="string")return Tt(Wt,Nt);var Rt={}.toString.call(Wt).slice(8,-1);return Rt==="Object"&&Wt.constructor&&(Rt=Wt.constructor.name),Rt==="Map"||Rt==="Set"?Array.from(Wt):Rt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Rt)?Tt(Wt,Nt):void 0}}function Tt(Wt,Nt){(Nt==null||Nt>Wt.length)&&(Nt=Wt.length);for(var Rt=0,Bt=Array(Nt);RtGt.targetDuration&&Et.INVALIDPLAYLIST("EXTINF duration, when rounded to the nearest integer, MUST be less than or equal to the target duration"),Xt.duration=rn.duration,Xt.title=rn.title;else if(nn==="EXT-X-BYTERANGE")Gt.compatibleVersion<4&&(Gt.compatibleVersion=4),Xt.byterange=rn;else if(nn==="EXT-X-DISCONTINUITY")Xt.parts.length>0&&Et.INVALIDPLAYLIST("EXT-X-DISCONTINUITY must appear before the first EXT-X-PART tag of the Parent Segment."),Xt.discontinuity=!0;else if(nn==="EXT-X-GAP")Gt.compatibleVersion<8&&(Gt.compatibleVersion=8),Xt.gap=!0;else if(nn==="EXT-X-KEY")Xt.parts.length>0&&Et.INVALIDPLAYLIST("EXT-X-KEY must appear before the first EXT-X-PART tag of the Parent Segment."),Ot(Gt,en),Xt.key=new _t.Key({method:en.METHOD,uri:en.URI,iv:en.IV,format:en.KEYFORMAT,formatVersion:en.KEYFORMATVERSIONS});else if(nn==="EXT-X-MAP")Xt.parts.length>0&&Et.INVALIDPLAYLIST("EXT-X-MAP must appear before the first EXT-X-PART tag of the Parent Segment."),Gt.compatibleVersion<5&&(Gt.compatibleVersion=5),Gt.hasMap=!0,Xt.map=new _t.MediaInitializationSection({uri:en.URI,byterange:en.BYTERANGE});else if(nn==="EXT-X-PROGRAM-DATE-TIME")Xt.programDateTime=rn;else if(nn==="EXT-X-DATERANGE"){for(var dn={},gn=0,ln=Object.keys(en);gn0&&Et.INVALIDPLAYLIST("The EXT-X-MEDIA-SEQUENCE tag MUST appear before the first Media Segment in the Playlist."),Bt.mediaSequenceBase=Ut=cn;else if(ln==="EXT-X-DISCONTINUITY-SEQUENCE")Bt.segments.length>0&&Et.INVALIDPLAYLIST("The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before the first Media Segment in the Playlist."),Gt&&Et.INVALIDPLAYLIST("The EXT-X-DISCONTINUITY-SEQUENCE tag MUST appear before any EXT-X-DISCONTINUITY tag."),Bt.discontinuitySequenceBase=na=cn;else if(ln==="EXT-X-ENDLIST")Bt.endlist=!0;else if(ln==="EXT-X-PLAYLIST-TYPE")Bt.playlistType=cn;else if(ln==="EXT-X-I-FRAMES-ONLY")Nt.compatibleVersion<4&&(Nt.compatibleVersion=4),Bt.isIFrame=!0;else if(ln==="EXT-X-INDEPENDENT-SEGMENTS")Bt.independentSegments&&Et.INVALIDPLAYLIST("EXT-X-INDEPENDENT-SEGMENTS tag MUST NOT appear more than once in a Playlist"),Bt.independentSegments=!0;else if(ln==="EXT-X-START")Bt.start&&Et.INVALIDPLAYLIST("EXT-X-START tag MUST NOT appear more than once in a Playlist"),typeof sn["TIME-OFFSET"]!="number"&&Et.INVALIDPLAYLIST("EXT-X-START: TIME-OFFSET attribute is REQUIRED"),Bt.start={offset:sn["TIME-OFFSET"],precise:sn.PRECISE||!1};else if(ln==="EXT-X-SERVER-CONTROL")sn["CAN-BLOCK-RELOAD"]||Et.INVALIDPLAYLIST("EXT-X-SERVER-CONTROL: CAN-BLOCK-RELOAD=YES is mandatory for Low-Latency HLS"),Bt.lowLatencyCompatibility={canBlockReload:sn["CAN-BLOCK-RELOAD"],canSkipUntil:sn["CAN-SKIP-UNTIL"],holdBack:sn["HOLD-BACK"],partHoldBack:sn["PART-HOLD-BACK"]};else if(ln==="EXT-X-PART-INF")sn["PART-TARGET"]||Et.INVALIDPLAYLIST("EXT-X-PART-INF: PART-TARGET attribute is mandatory"),Bt.partTargetDuration=sn["PART-TARGET"];else if(ln==="EXT-X-RENDITION-REPORT")sn.URI||Et.INVALIDPLAYLIST("EXT-X-RENDITION-REPORT: URI attribute is mandatory"),sn.URI.search(/^[a-z]+:/)===0&&Et.INVALIDPLAYLIST("EXT-X-RENDITION-REPORT: URI must be relative to the playlist uri"),Bt.renditionReports.push(new _t.RenditionReport({uri:sn.URI,lastMSN:sn["LAST-MSN"],lastPart:sn["LAST-PART"]}));else if(ln==="EXT-X-SKIP")sn["SKIPPED-SEGMENTS"]||Et.INVALIDPLAYLIST("EXT-X-SKIP: SKIPPED-SEGMENTS attribute is mandatory"),Nt.compatibleVersion<9&&(Nt.compatibleVersion=9),Bt.skip=sn["SKIPPED-SEGMENTS"],Ut+=Bt.skip;else if(ln==="EXT-X-PREFETCH"){var pn=jt(Wt,cn,Pt===-1?en:Pt,en-1,Ut++,na,Nt);pn&&(pn.discontinuity&&(pn.discontinuitySequence++,na=pn.discontinuitySequence),pn.key?xa=pn.key:pn.key=xa,Bt.prefetchSegments.push(pn)),Xt=!0,Pt=-1}else if(typeof dn=="string"){Pt===-1&&Et.INVALIDPLAYLIST("A URI line is not preceded by any segment tags"),Bt.targetDuration||Et.INVALIDPLAYLIST("The EXT-X-TARGETDURATION tag is REQUIRED"),Xt&&Et.INVALIDPLAYLIST("These segments must appear after all complete segments.");var bn=Yt(Wt,dn,Pt,en-1,Ut++,na,Nt);if(bn){var Sn=mt(Vt(Bt,bn,na,xa,$a),3);na=Sn[0],xa=Sn[1],$a=Sn[2],!an&&bn.parts.length>0&&(an=!0)}Pt=-1}}else Pt===-1&&(Pt=en),ln==="EXT-X-DISCONTINUITY"&&(Gt=!0)}}catch(Tn){nn.e(Tn)}finally{nn.f()}if(Pt!==-1){var mn=Yt(Wt,"",Pt,Wt.length-1,Ut++,na,Nt);if(mn){var An,En=mn.parts;!(En.length>0)||Bt.endlist||(An=En.at(-1))!==null&&An!==void 0&&An.hint||Et.INVALIDPLAYLIST("If the Playlist contains EXT-X-PART tags and does not contain an EXT-X-ENDLIST tag, the Playlist must contain an EXT-X-PRELOAD-HINT tag with a TYPE=PART attribute"),Vt(Bt,mn,xa,$a),!an&&mn.parts.length>0&&(an=!0)}}return function(Tn){for(var xn=new Map,kn=new Map,Ln=!1,Pn=!1,Cn=Tn.length-1;Cn>=0;Cn--){var Gn=Tn[Cn],ir=Gn.programDateTime,Dn=Gn.dateRange;if(ir&&(Pn=!0),Dn&&Dn.start){Ln=!0,Dn.endOnNext&&(Dn.end||Dn.duration)&&Et.INVALIDPLAYLIST("An EXT-X-DATERANGE tag with an END-ON-NEXT=YES attribute MUST NOT contain DURATION or END-DATE attributes.");var wn=Dn.start.getTime(),Xn=Dn.duration||0;Dn.end&&Dn.duration&&wn+1e3*Xn!==Dn.end.getTime()&&Et.INVALIDPLAYLIST("END-DATE MUST be equal to the value of the START-DATE attribute plus the value of the DURATION"),Dn.endOnNext&&(Dn.end=xn.get(Dn.classId)),xn.set(Dn.classId,Dn.start);var Wn=Dn.end?Dn.end.getTime():Dn.start.getTime()+1e3*(Dn.duration||0),Qn=kn.get(Dn.classId);if(Qn){var tr,zn=yt(Qn);try{for(zn.s();!(tr=zn.n()).done;){var qn=tr.value;(qn.start<=wn&&qn.end>wn||qn.start>=wn&&qn.start0&&trPn&&Et.INVALIDPLAYLIST("PART-TARGET is the maximum duration of any Partial Segment"),yr0&&(Fn.lastPart=dr.parts.length-1)}}catch(ar){gr.e(ar)}finally{gr.f()}}(Bt,an),Bt}function Vt(Wt,Nt,Rt,Bt,Pt){var Ut=Nt.discontinuity,Gt=Nt.key,Xt=Nt.map,na=Nt.byterange,xa=Nt.uri;if(Ut&&(Nt.discontinuitySequence=Rt+1),Gt||(Nt.key=Bt),Xt||(Nt.map=Pt),na&&na.offset===-1){var $a=Wt.segments;if($a.length>0){var an=$a.at(-1);an.byterange&&an.uri===xa?na.offset=an.byterange.offset+an.byterange.length:Et.INVALIDPLAYLIST("If offset of EXT-X-BYTERANGE is not present, a previous Media Segment MUST be a sub-range of the same media resource")}else Et.INVALIDPLAYLIST("If offset of EXT-X-BYTERANGE is not present, a previous Media Segment MUST appear in the Playlist file")}return Wt.segments.push(Nt),[Nt.discontinuitySequence,Nt.key,Nt.map]}function Ht(Wt,Nt){var Rt=function(xa){var $a=xa.indexOf(":");return $a===-1?[xa.slice(1).trim(),null]:[xa.slice(1,$a).trim(),xa.slice($a+1).trim()]}(Wt),Bt=mt(Rt,2),Pt=Bt[0],Ut=Bt[1],Gt=function(xa){switch(xa){case"EXTM3U":case"EXT-X-VERSION":return"Basic";case"EXTINF":case"EXT-X-BYTERANGE":case"EXT-X-DISCONTINUITY":case"EXT-X-PREFETCH-DISCONTINUITY":case"EXT-X-KEY":case"EXT-X-MAP":case"EXT-X-PROGRAM-DATE-TIME":case"EXT-X-DATERANGE":case"EXT-X-CUE-OUT":case"EXT-X-CUE-IN":case"EXT-X-CUE-OUT-CONT":case"EXT-X-CUE":case"EXT-OATCLS-SCTE35":case"EXT-X-ASSET":case"EXT-X-SCTE35":case"EXT-X-PART":case"EXT-X-PRELOAD-HINT":case"EXT-X-GAP":return"Segment";case"EXT-X-TARGETDURATION":case"EXT-X-MEDIA-SEQUENCE":case"EXT-X-DISCONTINUITY-SEQUENCE":case"EXT-X-ENDLIST":case"EXT-X-PLAYLIST-TYPE":case"EXT-X-I-FRAMES-ONLY":case"EXT-X-SERVER-CONTROL":case"EXT-X-PART-INF":case"EXT-X-PREFETCH":case"EXT-X-RENDITION-REPORT":case"EXT-X-SKIP":return"MediaPlaylist";case"EXT-X-MEDIA":case"EXT-X-STREAM-INF":case"EXT-X-I-FRAME-STREAM-INF":case"EXT-X-SESSION-DATA":case"EXT-X-SESSION-KEY":return"MasterPlaylist";case"EXT-X-INDEPENDENT-SEGMENTS":case"EXT-X-START":return"MediaorMasterPlaylist";default:return"Unknown"}}(Pt);if(function(xa,$a){if(xa==="Segment"||xa==="MediaPlaylist")return $a.isMasterPlaylist===void 0?void($a.isMasterPlaylist=!1):void($a.isMasterPlaylist&&Mt());if(xa==="MasterPlaylist"){if($a.isMasterPlaylist===void 0)return void($a.isMasterPlaylist=!0);$a.isMasterPlaylist===!1&&Mt()}}(Gt,Nt),Gt==="Unknown")return null;Gt==="MediaPlaylist"&&Pt!=="EXT-X-RENDITION-REPORT"&&Pt!=="EXT-X-PREFETCH"&&(Nt.hash[Pt]&&Et.INVALIDPLAYLIST("There MUST NOT be more than one Media Playlist tag of each type in any Media Playlist"),Nt.hash[Pt]=!0);var Xt=function(xa,$a){switch(xa){case"EXTM3U":case"EXT-X-DISCONTINUITY":case"EXT-X-ENDLIST":case"EXT-X-I-FRAMES-ONLY":case"EXT-X-INDEPENDENT-SEGMENTS":case"EXT-X-CUE-IN":case"EXT-X-GAP":return[null,null];case"EXT-X-VERSION":case"EXT-X-TARGETDURATION":case"EXT-X-MEDIA-SEQUENCE":case"EXT-X-DISCONTINUITY-SEQUENCE":return[Et.toNumber($a),null];case"EXT-X-CUE-OUT":return Number.isNaN(Number($a))?[null,zt($a)]:[Et.toNumber($a),null];case"EXT-X-KEY":case"EXT-X-MAP":case"EXT-X-DATERANGE":case"EXT-X-MEDIA":case"EXT-X-STREAM-INF":case"EXT-X-I-FRAME-STREAM-INF":case"EXT-X-SESSION-DATA":case"EXT-X-SESSION-KEY":case"EXT-X-START":case"EXT-X-SERVER-CONTROL":case"EXT-X-PART-INF":case"EXT-X-PART":case"EXT-X-PRELOAD-HINT":case"EXT-X-RENDITION-REPORT":case"EXT-X-SKIP":return[null,zt($a)];case"EXTINF":return[Ct($a),null];case"EXT-X-BYTERANGE":return[kt($a),null];case"EXT-X-PROGRAM-DATE-TIME":return[new Date($a),null];default:return[$a,null]}}(Pt,Ut),na=mt(Xt,2);return{name:Pt,category:Gt,value:na[0],attributes:na[1]}}function Kt(Wt,Nt){var Rt;return Nt.isMasterPlaylist?Rt=function(Bt,Pt){var Ut,Gt=new _t.MasterPlaylist,Xt=!1,na=yt(Bt.entries());try{var xa=function(){var en=mt(Ut.value,2),dn=en[0],gn=Zt(en[1]),ln=gn.name,cn=gn.value,sn=gn.attributes;if(ln==="EXT-X-VERSION")Gt.version=cn;else if(ln==="EXT-X-STREAM-INF"){var pn=Bt[dn+1];(typeof pn!="string"||pn.startsWith("#EXT"))&&Et.INVALIDPLAYLIST("EXT-X-STREAM-INF must be followed by a URI line");var bn=Qt(Bt,sn,pn,!1,Pt);bn&&(typeof bn.score=="number"&&(Xt=!0,bn.score<0&&Et.INVALIDPLAYLIST("SCORE attribute on EXT-X-STREAM-INF must be positive decimal-floating-point number.")),Gt.variants.push(bn))}else if(ln==="EXT-X-I-FRAME-STREAM-INF"){var Sn=Qt(Bt,sn,sn.URI,!0,Pt);Sn&&Gt.variants.push(Sn)}else if(ln==="EXT-X-SESSION-DATA"){var mn=new _t.SessionData({id:sn["DATA-ID"],value:sn.VALUE,uri:sn.URI,language:sn.LANGUAGE});Gt.sessionDataList.some(function(En){return En.id===mn.id&&En.language===mn.language})&&Et.INVALIDPLAYLIST("A Playlist MUST NOT contain more than one EXT-X-SESSION-DATA tag with the same DATA-ID attribute and the same LANGUAGE attribute."),Gt.sessionDataList.push(mn)}else if(ln==="EXT-X-SESSION-KEY"){sn.METHOD==="NONE"&&Et.INVALIDPLAYLIST("EXT-X-SESSION-KEY: The value of the METHOD attribute MUST NOT be NONE");var An=new _t.Key({method:sn.METHOD,uri:sn.URI,iv:sn.IV,format:sn.KEYFORMAT,formatVersion:sn.KEYFORMATVERSIONS});Gt.sessionKeyList.some(function(En){return function(Tn,xn){if(Tn.method!==xn.method||Tn.uri!==xn.uri)return!1;if(Tn.iv){if(!xn.iv||Tn.iv.byteLength!==xn.iv.byteLength)return!1;for(var kn=0;kn0&&Et.INVALIDPLAYLIST("If there is a variant with CLOSED-CAPTIONS attribute of NONE, all EXT-X-STREAM-INF tags MUST have this attribute with a value of NONE")}catch(en){rn.e(en)}finally{rn.f()}}return Gt}(Wt,Nt):!(Rt=Ft(Wt,Nt)).isIFrame&&Nt.hasMap&&Nt.compatibleVersion<6&&(Nt.compatibleVersion=6),Nt.compatibleVersion>1&&(!Rt.version||Rt.version=Nt.length?{done:!0}:{done:!1,value:Nt[Pt++]}},e:function(xa){throw xa},f:Ut}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var Gt,Xt=!0,na=!1;return{s:function(){Bt=Bt.call(Nt)},n:function(){var xa=Bt.next();return Xt=xa.done,xa},e:function(xa){na=!0,Gt=xa},f:function(){try{Xt||Bt.return==null||Bt.return()}finally{if(na)throw Gt}}}}function Tt(Nt,Rt){if(Nt){if(typeof Nt=="string")return St(Nt,Rt);var Bt={}.toString.call(Nt).slice(8,-1);return Bt==="Object"&&Nt.constructor&&(Bt=Nt.constructor.name),Bt==="Map"||Bt==="Set"?Array.from(Nt):Bt==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(Bt)?St(Nt,Rt):void 0}}function St(Nt,Rt){(Rt==null||Rt>Nt.length)&&(Rt=Nt.length);for(var Bt=0,Pt=Array(Rt);Bt0&&arguments[0]!==void 0?arguments[0]:",",Xt=this.length-1;Xt>=0;Xt--)this[Xt]||this.splice(Xt,1);return Dt(Rt,"join",this,3)([Gt])}}],Pt&&At(Bt.prototype,Pt),Ut&&At(Bt,Ut),Object.defineProperty(Bt,"prototype",{writable:!1}),Bt;var Bt,Pt,Ut}(_t(Array));function jt(Nt,Rt){var Bt=1e3;Rt&&(Bt=Math.pow(10,Rt));var Pt=Math.round(Nt*Bt)/Bt;return Rt?Pt.toFixed(Rt):Pt}function Ft(Nt){var Rt=['DATA-ID="'.concat(Nt.id,'"')];return Nt.language&&Rt.push('LANGUAGE="'.concat(Nt.language,'"')),Nt.value?Rt.push('VALUE="'.concat(Nt.value,'"')):Nt.uri&&Rt.push('URI="'.concat(Nt.uri,'"')),"#EXT-X-SESSION-DATA:".concat(Rt.join(","))}function Vt(Nt,Rt){var Bt=Rt?"#EXT-X-SESSION-KEY":"#EXT-X-KEY",Pt=["METHOD=".concat(Nt.method)];return Nt.uri&&Pt.push('URI="'.concat(Nt.uri,'"')),Nt.iv&&(Nt.iv.byteLength!==16&&Mt.INVALIDPLAYLIST("IV must be a 128-bit unsigned integer"),Pt.push("IV=".concat(Mt.byteSequenceToHex(Nt.iv)))),Nt.format&&Pt.push('KEYFORMAT="'.concat(Nt.format,'"')),Nt.formatVersion&&Pt.push('KEYFORMATVERSIONS="'.concat(Nt.formatVersion,'"')),"".concat(Bt,":").concat(Pt.join(","))}function Ht(Nt,Rt){var Bt=Rt.isIFrameOnly?"#EXT-X-I-FRAME-STREAM-INF":"#EXT-X-STREAM-INF",Pt=["BANDWIDTH=".concat(Rt.bandwidth)];if(Rt.averageBandwidth&&Pt.push("AVERAGE-BANDWIDTH=".concat(Rt.averageBandwidth)),Rt.isIFrameOnly&&Pt.push('URI="'.concat(Rt.uri,'"')),Rt.codecs&&Pt.push('CODECS="'.concat(Rt.codecs,'"')),Rt.resolution&&Pt.push("RESOLUTION=".concat(Rt.resolution.width,"x").concat(Rt.resolution.height)),Rt.frameRate&&Pt.push("FRAME-RATE=".concat(jt(Rt.frameRate,3))),Rt.hdcpLevel&&Pt.push("HDCP-LEVEL=".concat(Rt.hdcpLevel)),Rt.audio.length>0){Pt.push('AUDIO="'.concat(Rt.audio[0].groupId,'"'));var Ut,Gt=bt(Rt.audio);try{for(Gt.s();!(Ut=Gt.n()).done;){var Xt=Ut.value;Nt.push(Kt(Xt))}}catch(mn){Gt.e(mn)}finally{Gt.f()}}if(Rt.video.length>0){Pt.push('VIDEO="'.concat(Rt.video[0].groupId,'"'));var na,xa=bt(Rt.video);try{for(xa.s();!(na=xa.n()).done;){var $a=na.value;Nt.push(Kt($a))}}catch(mn){xa.e(mn)}finally{xa.f()}}if(Rt.subtitles.length>0){Pt.push('SUBTITLES="'.concat(Rt.subtitles[0].groupId,'"'));var an,nn=bt(Rt.subtitles);try{for(nn.s();!(an=nn.n()).done;){var rn=an.value;Nt.push(Kt(rn))}}catch(mn){nn.e(mn)}finally{nn.f()}}if(Mt.getOptions().allowClosedCaptionsNone&&Rt.closedCaptions.length===0)Pt.push("CLOSED-CAPTIONS=NONE");else if(Rt.closedCaptions.length>0){Pt.push('CLOSED-CAPTIONS="'.concat(Rt.closedCaptions[0].groupId,'"'));var en,dn=bt(Rt.closedCaptions);try{for(dn.s();!(en=dn.n()).done;){var gn=en.value;Nt.push(Kt(gn))}}catch(mn){dn.e(mn)}finally{dn.f()}}if(Rt.score&&Pt.push("SCORE=".concat(Rt.score)),Rt.allowedCpc){var ln,cn=[],sn=bt(Rt.allowedCpc);try{for(sn.s();!(ln=sn.n()).done;){var pn=ln.value,bn=pn.format,Sn=pn.cpcList;cn.push("".concat(bn,":").concat(Sn.join("/")))}}catch(mn){sn.e(mn)}finally{sn.f()}Pt.push('ALLOWED-CPC="'.concat(cn.join(","),'"'))}Rt.videoRange&&Pt.push("VIDEO-RANGE=".concat(Rt.videoRange)),Rt.stableVariantId&&Pt.push('STABLE-VARIANT-ID="'.concat(Rt.stableVariantId,'"')),Rt.programId&&Pt.push("PROGRAM-ID=".concat(Rt.programId)),Nt.push("".concat(Bt,":").concat(Pt.join(","))),Rt.isIFrameOnly||Nt.push("".concat(Rt.uri))}function Kt(Nt){var Rt=["TYPE=".concat(Nt.type),'GROUP-ID="'.concat(Nt.groupId,'"'),'NAME="'.concat(Nt.name,'"')];return Nt.isDefault!==void 0&&Rt.push("DEFAULT=".concat(Nt.isDefault?"YES":"NO")),Nt.autoselect!==void 0&&Rt.push("AUTOSELECT=".concat(Nt.autoselect?"YES":"NO")),Nt.forced!==void 0&&Rt.push("FORCED=".concat(Nt.forced?"YES":"NO")),Nt.language&&Rt.push('LANGUAGE="'.concat(Nt.language,'"')),Nt.assocLanguage&&Rt.push('ASSOC-LANGUAGE="'.concat(Nt.assocLanguage,'"')),Nt.instreamId&&Rt.push('INSTREAM-ID="'.concat(Nt.instreamId,'"')),Nt.characteristics&&Rt.push('CHARACTERISTICS="'.concat(Nt.characteristics,'"')),Nt.channels&&Rt.push('CHANNELS="'.concat(Nt.channels,'"')),Nt.uri&&Rt.push('URI="'.concat(Nt.uri,'"')),"#EXT-X-MEDIA:".concat(Rt.join(","))}function Zt(Nt,Rt,Bt,Pt){var Ut,Gt,Xt,na=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1,xa=!1,$a="";if(Rt.discontinuity&&Nt.push("#EXT-X-DISCONTINUITY"),Rt.gap&&Nt.push("#EXT-X-GAP"),Rt.key){var an=Vt(Rt.key);an!==Bt&&(Nt.push(an),Bt=an)}if(Rt.map){var nn=function(en){var dn=['URI="'.concat(en.uri,'"')];return en.byterange&&dn.push('BYTERANGE="'.concat(Wt(en.byterange),'"')),"#EXT-X-MAP:".concat(dn.join(","))}(Rt.map);nn!==Pt&&(Nt.push(nn),Pt=nn)}if(Rt.programDateTime&&Nt.push("#EXT-X-PROGRAM-DATE-TIME:".concat(Mt.formatDate(Rt.programDateTime))),Rt.dateRange&&Nt.push(function(en){var dn=['ID="'.concat(en.id,'"')];en.start&&dn.push('START-DATE="'.concat(Mt.formatDate(en.start),'"')),en.end&&dn.push('END-DATE="'.concat(Mt.formatDate(en.end),'"')),en.duration&&dn.push("DURATION=".concat(en.duration)),en.plannedDuration&&dn.push("PLANNED-DURATION=".concat(en.plannedDuration)),en.classId&&dn.push('CLASS="'.concat(en.classId,'"')),en.endOnNext&&dn.push("END-ON-NEXT=YES");for(var gn=0,ln=Object.keys(en.attributes);gn0&&($a=function(en,dn){var gn,ln="",cn=bt(dn);try{for(cn.s();!(gn=cn.n()).done;){var sn=gn.value;if(sn.type==="OUT")ln="OUT",en.push("#EXT-X-CUE-OUT:DURATION=".concat(sn.duration));else if(sn.type==="IN")ln="IN",en.push("#EXT-X-CUE-IN");else if(sn.type==="RAW"){var pn=sn.value?":".concat(sn.value):"";en.push("#".concat(sn.tagName).concat(pn))}}}catch(bn){cn.e(bn)}finally{cn.f()}return ln}(Nt,Rt.markers)),Rt.parts.length>0&&(xa=function(en,dn){var gn,ln=!1,cn=bt(dn);try{for(cn.s();!(gn=cn.n()).done;){var sn=gn.value;if(sn.hint){var pn=[];if(pn.push("TYPE=PART",'URI="'.concat(sn.uri,'"')),sn.byterange){var bn=sn.byterange,Sn=bn.offset,mn=bn.length;pn.push("BYTERANGE-START=".concat(Sn)),mn&&pn.push("BYTERANGE-LENGTH=".concat(mn))}en.push("#EXT-X-PRELOAD-HINT:".concat(pn.join(","))),ln=!0}else{var An=[];An.push("DURATION=".concat(sn.duration),'URI="'.concat(sn.uri,'"')),sn.byterange&&An.push("BYTERANGE=".concat(Wt(sn.byterange))),sn.independent&&An.push("INDEPENDENT=YES"),sn.gap&&An.push("GAP=YES"),en.push("#EXT-X-PART:".concat(An.join(",")))}}}catch(En){cn.e(En)}finally{cn.f()}return ln}(Nt,Rt.parts)),xa)return[Bt,Pt];if(typeof Rt.duration=="number"&&!Number.isNaN(Rt.duration)){var rn=na<3?Math.round(Rt.duration):jt(Rt.duration,(Ut=Rt.duration,Gt=Ut.toString(10),(Xt=Gt.indexOf("."))===-1?0:Gt.length-Xt-1));Nt.push("#EXTINF:".concat(rn,",").concat(unescape(encodeURIComponent(Rt.title||""))))}return Rt.byterange&&Nt.push("#EXT-X-BYTERANGE:".concat(Wt(Rt.byterange))),Array.prototype.push.call(Nt,"".concat(Rt.uri)),[Bt,Pt,$a]}function Wt(Nt){var Rt=Nt.offset,Bt=Nt.length;return"".concat(Bt,"@").concat(Rt)}ft.default=function(Nt,Rt){Mt.PARAMCHECK(Nt),Mt.ASSERT("Not a playlist",Nt.type==="playlist");var Bt=new Yt(Nt.uri);return Bt.push("#EXTM3U"),Nt.version&&Bt.push("#EXT-X-VERSION:".concat(Nt.version)),Nt.independentSegments&&Bt.push("#EXT-X-INDEPENDENT-SEGMENTS"),Nt.start&&Bt.push("#EXT-X-START:TIME-OFFSET=".concat(jt(Nt.start.offset)).concat(Nt.start.precise?",PRECISE=YES":"")),Nt.isMasterPlaylist?function(Pt,Ut,Gt){var Xt,na=bt(Ut.sessionDataList);try{for(na.s();!(Xt=na.n()).done;){var xa=Xt.value;Pt.push(Ft(xa))}}catch(sn){na.e(sn)}finally{na.f()}var $a,an=bt(Ut.sessionKeyList);try{for(an.s();!($a=an.n()).done;){var nn=$a.value;Pt.push(Vt(nn,!0))}}catch(sn){an.e(sn)}finally{an.f()}var rn,en=bt(Ut.variants.entries());try{for(en.s();!(rn=en.n()).done;){var dn=yt(rn.value,2),gn=dn[0],ln=dn[1],cn=Pt.length;Ht(Pt,ln),Gt!=null&&Gt.variantProcessor&&Gt.variantProcessor(Pt,cn,Pt.length-1,ln,gn)}}catch(sn){en.e(sn)}finally{en.f()}}(Bt,Nt,Rt):function(Pt,Ut,Gt){var Xt="",na="",xa=!1;if(Ut.targetDuration&&Pt.push("#EXT-X-TARGETDURATION:".concat(Ut.targetDuration)),Ut.lowLatencyCompatibility){var $a=Ut.lowLatencyCompatibility,an=$a.canBlockReload,nn=$a.canSkipUntil,rn=$a.holdBack,en=$a.partHoldBack,dn=[];dn.push("CAN-BLOCK-RELOAD=".concat(an?"YES":"NO")),nn!==void 0&&dn.push("CAN-SKIP-UNTIL=".concat(nn)),rn!==void 0&&dn.push("HOLD-BACK=".concat(rn)),en!==void 0&&dn.push("PART-HOLD-BACK=".concat(en)),Pt.push("#EXT-X-SERVER-CONTROL:".concat(dn.join(",")))}Ut.partTargetDuration&&Pt.push("#EXT-X-PART-INF:PART-TARGET=".concat(Ut.partTargetDuration)),Ut.mediaSequenceBase&&Pt.push("#EXT-X-MEDIA-SEQUENCE:".concat(Ut.mediaSequenceBase)),Ut.discontinuitySequenceBase&&Pt.push("#EXT-X-DISCONTINUITY-SEQUENCE:".concat(Ut.discontinuitySequenceBase)),Ut.playlistType&&Pt.push("#EXT-X-PLAYLIST-TYPE:".concat(Ut.playlistType)),Ut.isIFrame&&Pt.push("#EXT-X-I-FRAMES-ONLY"),Ut.skip>0&&Pt.push("#EXT-X-SKIP:SKIPPED-SEGMENTS=".concat(Ut.skip));var gn,ln=bt(Ut.segments.entries());try{for(ln.s();!(gn=ln.n()).done;){var cn,sn=yt(gn.value,2),pn=sn[0],bn=sn[1],Sn=Pt.length,mn=yt(Zt(Pt,bn,Xt,na,Ut.version),3);Xt=mn[0],na=mn[1],(cn=mn[2])==="OUT"?xa=!0:cn==="IN"&&xa&&(xa=!1),Gt!=null&&Gt.segmentProcessor&&Gt.segmentProcessor(Pt,Sn,Pt.length-1,bn,pn)}}catch(Cn){ln.e(Cn)}finally{ln.f()}Ut.playlistType==="VOD"&&xa&&Pt.push("#EXT-X-CUE-IN"),Ut.prefetchSegments.length>2&&Mt.INVALIDPLAYLIST("The server must deliver no more than two prefetch segments");var An,En=bt(Ut.prefetchSegments);try{for(En.s();!(An=En.n()).done;){var Tn=An.value;Tn.discontinuity&&Pt.push("#EXT-X-PREFETCH-DISCONTINUITY"),Pt.push("#EXT-X-PREFETCH:".concat(Tn.uri))}}catch(Cn){En.e(Cn)}finally{En.f()}Ut.endlist&&Pt.push("#EXT-X-ENDLIST");var xn,kn=bt(Ut.renditionReports);try{for(kn.s();!(xn=kn.n()).done;){var Ln=xn.value,Pn=[];Pn.push('URI="'.concat(Ln.uri,'"'),"LAST-MSN=".concat(Ln.lastMSN)),Ln.lastPart!==void 0&&Pn.push("LAST-PART=".concat(Ln.lastPart)),Pt.push("#EXT-X-RENDITION-REPORT:".concat(Pn.join(",")))}}catch(Cn){kn.e(Cn)}finally{kn.f()}}(Bt,Nt,Rt),Bt.join(` `)}}},dt={},ct=function pt(ft){var ht=dt[ft];if(ht!==void 0)return ht.exports;var mt=dt[ft]={exports:{}};return ut[ft].call(mt.exports,mt,mt.exports,pt),mt.exports}(73);return ct})())})(hlsParser_min);var hlsParser_minExports=hlsParser_min.exports,browser=typeof self=="object"?self.FormData:window.FormData;const FormData$1=getDefaultExportFromCjs$1(browser);class NotFoundError extends Error{constructor(at){super(`Couldn't find a stream: ${at??"not found"}`),this.name="NotFoundError"}}function formatSourceMeta(st){const at=[];return st.scrapeMovie&&at.push("movie"),st.scrapeShow&&at.push("show"),{type:"source",id:st.id,rank:st.rank,name:st.name,mediaTypes:at}}function formatEmbedMeta(st){return{type:"embed",id:st.id,rank:st.rank,name:st.name}}function getAllSourceMetaSorted(st){return st.sources.sort((at,ut)=>ut.rank-at.rank).map(formatSourceMeta)}function getAllEmbedMetaSorted(st){return st.embeds.sort((at,ut)=>ut.rank-at.rank).map(formatEmbedMeta)}function getSpecificId(st,at){const ut=st.sources.find(ct=>ct.id===at);if(ut)return formatSourceMeta(ut);const dt=st.embeds.find(ct=>ct.id===at);return dt?formatEmbedMeta(dt):null}function makeFullUrl(st,at){let ut=(at==null?void 0:at.baseUrl)??"",dt=st;ut.length>0&&!ut.endsWith("/")&&(ut+="/"),dt.startsWith("/")&&(dt=dt.slice(1));const ct=ut+dt;if(!ct.startsWith("http://")&&!ct.startsWith("https://")&&!ct.startsWith("data:"))throw new Error(`Invald URL -- URL doesn't start with a http scheme: '${ct}'`);const pt=new URL(ct);return Object.entries((at==null?void 0:at.query)??{}).forEach(([ft,ht])=>{pt.searchParams.set(ft,ht)}),pt.toString()}function makeFetcher(st){const at=(dt,ct)=>st(dt,{headers:(ct==null?void 0:ct.headers)??{},method:(ct==null?void 0:ct.method)??"GET",query:(ct==null?void 0:ct.query)??{},baseUrl:(ct==null?void 0:ct.baseUrl)??"",readHeaders:(ct==null?void 0:ct.readHeaders)??[],body:ct==null?void 0:ct.body,credentials:ct==null?void 0:ct.credentials}),ut=async(dt,ct)=>(await at(dt,ct)).body;return ut.full=at,ut}const flags={CORS_ALLOWED:"cors-allowed",IP_LOCKED:"ip-locked",CF_BLOCKED:"cf-blocked",PROXY_BLOCKED:"proxy-blocked"},targets={BROWSER:"browser",BROWSER_EXTENSION:"browser-extension"},targetToFeatures={browser:{requires:[flags.CORS_ALLOWED],disallowed:[]},"browser-extension":{requires:[],disallowed:[]},native:{requires:[],disallowed:[]},any:{requires:[],disallowed:[]}};function getTargetFeatures(st,at,ut){const dt=targetToFeatures[st];return at||dt.disallowed.push(flags.IP_LOCKED),ut&&dt.disallowed.push(flags.PROXY_BLOCKED),dt}function flagsAllowedInFeatures(st,at){return!(!st.requires.every(ut=>at.includes(ut))||st.disallowed.some(ut=>at.includes(ut)))}const captionTypes={srt:"srt",vtt:"vtt"};function getCaptionTypeFromUrl(st){return Object.keys(captionTypes).find(ut=>st.endsWith(`.${ut}`))||null}function labelToLanguageCode(st){const at=ISO6391.getCode(st);return at.length===0?null:at}async function addWyzieCaptions(st,at,ut,dt,ct){try{const pt={encoding:"utf-8",source:"all",imdb_id:ut};at&&!ut&&(pt.tmdb_id=typeof at=="string"?parseInt(at,10):at),dt&&ct&&(pt.season=dt,pt.episode=ct),console.log("Searching Wyzie subtitles with params:",pt);const ft=await searchSubtitles(pt);console.log("Found Wyzie subtitles:",ft);const ht=ft.map(mt=>({id:mt.id,url:mt.url,type:mt.format==="srt"||mt.format==="vtt"?mt.format:"srt",hasCorsRestrictions:!1,language:mt.language,flagUrl:mt.flagUrl,display:mt.display,media:mt.media,isHearingImpaired:mt.isHearingImpaired,source:typeof mt.source=="number"?mt.source.toString():mt.source,encoding:mt.encoding}));return[...st,...ht]}catch(pt){return console.error("Error fetching Wyzie subtitles:",pt),st}}const timeout=(st,at)=>new Promise(ut=>{setTimeout(()=>{console.error(`${at} captions request timed out after ${st}ms`),ut(null)},st)});async function addOpenSubtitlesCaptions(st,at,ut){var dt,ct;try{const[pt,ft,ht]=atob(ut).split(".").map((At,vt)=>vt===0?At:Number(At)||null);if(!pt)return st;const mt=[...st],yt=addWyzieCaptions([],((ct=(dt=at.media)==null?void 0:dt.tmdbId)==null?void 0:ct.toString())||"",pt.toString(),typeof ft=="number"?ft:void 0,typeof ht=="number"?ht:void 0).then(At=>At&&At.length>0?At.map(vt=>({...vt,opensubtitles:!0})):[]).catch(At=>(console.error("Wyzie subtitles fetch failed:",At),[])),bt=at.proxiedFetcher(`https://rest.opensubtitles.org/search/${ft&&ht?`episode-${ht}/`:""}imdbid-${pt.slice(2)}${ft&&ht?`/season-${ft}`:""}`,{headers:{"X-User-Agent":"VLSub 0.10.2"}}).then(At=>{const vt=[];for(const Dt of At){const Et=Dt.SubDownloadLink.replace(".gz","").replace("download/","download/subencoding-utf8/"),_t=labelToLanguageCode(Dt.LanguageName);!Et||!_t||vt.push({id:Et,opensubtitles:!0,url:Et,type:Dt.SubFormat||"srt",hasCorsRestrictions:!1,language:_t})}return vt}).catch(At=>(console.error("OpenSubtitles fetch failed:",At),[])),[Tt,St]=await Promise.all([Promise.race([yt,timeout(2e3,"Wyzie")]),Promise.race([bt,timeout(5e3,"OpenSubtitles")])]);return Tt&&mt.push(...Tt),St&&mt.push(...St),mt}catch(pt){return console.error("Error in addOpenSubtitlesCaptions:",pt),st}}const DEFAULT_PROXY_URL="https://proxy.nsbx.ru/proxy";let CONFIGURED_M3U8_PROXY_URL="https://proxy2.pstream.org";function setM3U8ProxyUrl(st){CONFIGURED_M3U8_PROXY_URL=st}function requiresProxy(st){return!!(!st.flags.includes(flags.CORS_ALLOWED)||st.headers&&Object.keys(st.headers).length>0)}function setupProxy(st){const at=st.headers&&Object.keys(st.headers).length>0?st.headers:void 0,ut={...st.type==="hls"&&{depth:st.proxyDepth??0}},dt={headers:at,options:ut};return st.type==="hls"&&(dt.type="hls",dt.url=st.playlist,st.playlist=`${DEFAULT_PROXY_URL}?${new URLSearchParams({payload:Buffer.from(JSON.stringify(dt)).toString("base64url")})}`),st.type==="file"&&(dt.type="mp4",Object.entries(st.qualities).forEach(ct=>{dt.url=ct[1].url,ct[1].url=`${DEFAULT_PROXY_URL}?${new URLSearchParams({payload:Buffer.from(JSON.stringify(dt)).toString("base64url")})}`})),st.headers={},st.flags=[flags.CORS_ALLOWED],st}function createM3U8ProxyUrl(st,at={}){const ut=encodeURIComponent(st),dt=encodeURIComponent(JSON.stringify(at));return`${CONFIGURED_M3U8_PROXY_URL}/m3u8-proxy?url=${ut}${at?`&headers=${dt}`:""}`}function updateM3U8ProxyUrl(st){return st.includes("/m3u8-proxy?url=")?st.replace(/https:\/\/[^/]+\/m3u8-proxy/,`${CONFIGURED_M3U8_PROXY_URL}/m3u8-proxy`):st}function makeSourcerer(st){const at=[];return st.scrapeMovie&&at.push("movie"),st.scrapeShow&&at.push("show"),{...st,type:"source",disabled:st.disabled??!1,externalSource:st.externalSource??!1,mediaTypes:at}}function makeEmbed(st){return{...st,type:"embed",disabled:st.disabled??!1,mediaTypes:void 0}}const warezcdnBase="https://embed.warezcdn.link",warezcdnPlayerBase="https://warezcdn.link/player",warezcdnWorkerProxy="https://workerproxy.warezcdn.workers.dev";function decrypt$1(st){let at=atob(st);at=at.trim(),at=at.split("").reverse().join("");let ut=at.slice(-5);return ut=ut.split("").reverse().join(""),at=at.slice(0,-5),`${at}${ut}`}async function getDecryptedId(st){var at;const ut=(at=(await st.proxiedFetcher("/player.php",{baseUrl:warezcdnPlayerBase,headers:{Referer:`${warezcdnPlayerBase}/getEmbed.php?${new URLSearchParams({id:st.url,sv:"warezcdn"})}`},query:{id:st.url}})).match(/let allowanceKey = "(.*?)";/))==null?void 0:at[1];if(!ut)throw new NotFoundError("Failed to get allowanceKey");const dt=await st.proxiedFetcher("/functions.php",{baseUrl:warezcdnPlayerBase,method:"POST",body:new URLSearchParams({getVideo:st.url,key:ut})}),ct=JSON.parse(dt);if(!ct.id)throw new NotFoundError("can't get stream id");const pt=decrypt$1(ct.id);if(!pt)throw new NotFoundError("can't get file id");return pt}const cdnListing=[50,51,52,53,54,55,56,57,58,59,60,61,62,63,64];async function checkUrls(st,at){for(const ut of cdnListing){const dt=`https://cloclo${ut}.cloud.mail.ru/weblink/view/${at}`;if((await st.proxiedFetcher.full(dt,{method:"GET",headers:{Range:"bytes=0-1"}})).statusCode===206)return dt}return null}const warezcdnembedMp4Scraper=makeEmbed({id:"warezcdnembedmp4",name:"WarezCDN MP4",rank:82,disabled:!0,async scrape(st){const at=await getDecryptedId(st);if(!at)throw new NotFoundError("can't get file id");const ut=await checkUrls(st,at);if(!ut)throw new NotFoundError("can't get stream id");return{stream:[{id:"primary",captions:[],qualities:{unknown:{type:"mp4",url:`${warezcdnWorkerProxy}/?${new URLSearchParams({url:ut})}`}},type:"file",flags:[flags.CORS_ALLOWED]}]}}}),SKIP_VALIDATION_CHECK_IDS=[warezcdnembedMp4Scraper.id];function isValidStream(st){return st?st.type==="hls"?!!st.playlist:st.type==="file"?Object.values(st.qualities).filter(at=>at.url.length>0).length!==0:!1:!1}function isM3U8ProxyUrl(st){return st.includes("/m3u8-proxy?url=")||st.includes("mp4.peptobismolveinsandigrin.site/?url=")||st.includes("oca.flutch09.workers.dev/?v=")}async function validatePlayableStream(st,at,ut){if(SKIP_VALIDATION_CHECK_IDS.includes(ut))return st;if(st.type==="hls"){if(st.playlist.startsWith("data:"))return st;const dt=isM3U8ProxyUrl(st.playlist);let ct;if(dt)try{const pt=await fetch(st.playlist,{method:"GET",headers:{...st.preferredHeaders,...st.headers}});ct={statusCode:pt.status,body:await pt.text(),finalUrl:pt.url}}catch{return null}else ct=await at.proxiedFetcher.full(st.playlist,{method:"GET",headers:{...st.preferredHeaders,...st.headers}});return ct.statusCode<200||ct.statusCode>=400?null:st}if(st.type==="file"){const dt=await Promise.all(Object.values(st.qualities).map(pt=>at.proxiedFetcher.full(pt.url,{method:"GET",headers:{...st.preferredHeaders,...st.headers,Range:"bytes=0-1"}}))),ct=st.qualities;return Object.keys(st.qualities).forEach((pt,ft)=>{(dt[ft].statusCode<200||dt[ft].statusCode>=400)&&delete ct[pt]}),Object.keys(ct).length===0?null:{...st,qualities:ct}}return null}async function validatePlayableStreams(st,at,ut){return SKIP_VALIDATION_CHECK_IDS.includes(ut)?st:(await Promise.all(st.map(dt=>validatePlayableStream(dt,at,ut)))).filter(dt=>dt!==null)}async function scrapeInvidualSource(st,at){const ut=st.sources.find(pt=>at.id===pt.id);if(!ut)throw new Error("Source with ID not found");if(at.media.type==="movie"&&!ut.scrapeMovie)throw new Error("Source is not compatible with movies");if(at.media.type==="show"&&!ut.scrapeShow)throw new Error("Source is not compatible with shows");const dt={fetcher:at.fetcher,proxiedFetcher:at.proxiedFetcher,progress(pt){var ft,ht;(ht=(ft=at.events)==null?void 0:ft.update)==null||ht.call(ft,{id:ut.id,percentage:pt,status:"pending"})}};let ct=null;if(at.media.type==="movie"&&ut.scrapeMovie?ct=await ut.scrapeMovie({...dt,media:at.media}):at.media.type==="show"&&ut.scrapeShow&&(ct=await ut.scrapeShow({...dt,media:at.media})),ct!=null&&ct.stream&&(ct.stream=ct.stream.filter(pt=>isValidStream(pt)).filter(pt=>flagsAllowedInFeatures(at.features,pt.flags)),ct.stream=ct.stream.map(pt=>requiresProxy(pt)&&at.proxyStreams?setupProxy(pt):pt)),!ct)throw new Error("output is null");if(ct.embeds=ct.embeds.filter(pt=>{const ft=st.embeds.find(ht=>ht.id===pt.embedId);return!(!ft||ft.disabled)}),!at.disableOpensubtitles)for(const pt of ct.embeds)pt.url=`${pt.url}${btoa("MEDIA=")}${btoa(`${at.media.imdbId}${at.media.type==="show"?`.${at.media.season.number}.${at.media.episode.number}`:""}`)}`;if((!ct.stream||ct.stream.length===0)&&ct.embeds.length===0)throw new NotFoundError("No streams found");if(ct.stream&&ct.stream.length>0&&ct.embeds.length===0){const pt=await validatePlayableStreams(ct.stream,at,ut.id);if(pt.length===0)throw new NotFoundError("No playable streams found");if(!at.disableOpensubtitles)for(const ft of pt)ft.captions=await addOpenSubtitlesCaptions(ft.captions,at,btoa(`${at.media.imdbId}${at.media.type==="show"?`.${at.media.season.number}.${at.media.episode.number}`:""}`));ct.stream=pt}return ct}async function scrapeIndividualEmbed(st,at){const ut=st.embeds.find(ht=>at.id===ht.id);if(!ut)throw new Error("Embed with ID not found");let dt=at.url,ct;at.url.includes(btoa("MEDIA="))&&([dt,ct]=dt.split(btoa("MEDIA=")));const pt=await ut.scrape({fetcher:at.fetcher,proxiedFetcher:at.proxiedFetcher,url:dt,progress(ht){var mt,yt;(yt=(mt=at.events)==null?void 0:mt.update)==null||yt.call(mt,{id:ut.id,percentage:ht,status:"pending"})}});if(pt.stream=pt.stream.filter(ht=>isValidStream(ht)).filter(ht=>flagsAllowedInFeatures(at.features,ht.flags)),pt.stream.length===0)throw new NotFoundError("No streams found");pt.stream=pt.stream.map(ht=>requiresProxy(ht)&&at.proxyStreams?setupProxy(ht):ht);const ft=await validatePlayableStreams(pt.stream,at,ut.id);if(ft.length===0)throw new NotFoundError("No playable streams found");if(ct&&!at.disableOpensubtitles){const[ht,mt,yt]=atob(ct).split(".").map((Tt,St)=>St===0?Tt:Number(Tt)||null),bt={...at,media:{type:mt&&yt?"show":"movie",imdbId:(ht==null?void 0:ht.toString())||"",...mt&&yt?{season:{number:mt},episode:{number:yt}}:{}}};for(const Tt of ft)Tt.captions=await addOpenSubtitlesCaptions(Tt.captions,bt,ct)}return pt.stream=ft,pt}function reorderOnIdList(st,at){const ut=[...at];return ut.sort((dt,ct)=>{const pt=st.indexOf(dt.id),ft=st.indexOf(ct.id);return pt>=0&&ft>=0?pt-ft:ft>=0?1:pt>=0?-1:ct.rank-dt.rank}),ut}async function runAllProviders(st,at){var ut,dt,ct,pt,ft,ht,mt,yt,bt,Tt,St,At,vt,Dt;const Et=reorderOnIdList(at.sourceOrder??[],st.sources).filter(wt=>at.media.type==="movie"?!!wt.scrapeMovie:at.media.type==="show"?!!wt.scrapeShow:!1),_t=reorderOnIdList(at.embedOrder??[],st.embeds),xt=_t.map(wt=>wt.id);let Ct="";const kt={fetcher:at.fetcher,proxiedFetcher:at.proxiedFetcher,progress(wt){var $t,Lt;(Lt=($t=at.events)==null?void 0:$t.update)==null||Lt.call($t,{id:Ct,percentage:wt,status:"pending"})}};(dt=(ut=at.events)==null?void 0:ut.init)==null||dt.call(ut,{sourceIds:Et.map(wt=>wt.id)});for(const wt of Et){(pt=(ct=at.events)==null?void 0:ct.start)==null||pt.call(ct,wt.id),Ct=wt.id;let $t=null;try{if(at.media.type==="movie"&&wt.scrapeMovie?$t=await wt.scrapeMovie({...kt,media:at.media}):at.media.type==="show"&&wt.scrapeShow&&($t=await wt.scrapeShow({...kt,media:at.media})),$t&&($t.stream=($t.stream??[]).filter(isValidStream).filter(Ot=>flagsAllowedInFeatures(at.features,Ot.flags)),$t.stream=$t.stream.map(Ot=>requiresProxy(Ot)&&at.proxyStreams?setupProxy(Ot):Ot)),!$t||!((ft=$t.stream)!=null&&ft.length)&&!$t.embeds.length)throw new NotFoundError("No streams found")}catch(Ot){const zt={id:wt.id,percentage:100,status:Ot instanceof NotFoundError?"notfound":"failure",reason:Ot instanceof NotFoundError?Ot.message:void 0,error:Ot instanceof NotFoundError?void 0:Ot};(mt=(ht=at.events)==null?void 0:ht.update)==null||mt.call(ht,zt);continue}if(!$t)throw new Error("Invalid media type");if((yt=$t.stream)!=null&&yt[0]){const Ot=await validatePlayableStream($t.stream[0],at,wt.id);if(!Ot)throw new NotFoundError("No streams found");return at.disableOpensubtitles||at.media.imdbId&&(Ot.captions=await addOpenSubtitlesCaptions(Ot.captions,at,btoa(`${at.media.imdbId}${at.media.type==="show"?`.${at.media.season.number}.${at.media.episode.number}`:""}`))),{sourceId:wt.id,stream:Ot}}const Lt=$t.embeds.filter(Ot=>{const zt=st.embeds.find(Mt=>Mt.id===Ot.embedId);return zt&&!zt.disabled}).sort((Ot,zt)=>xt.indexOf(Ot.embedId)-xt.indexOf(zt.embedId));Lt.length>0&&((Tt=(bt=at.events)==null?void 0:bt.discoverEmbeds)==null||Tt.call(bt,{embeds:Lt.map((Ot,zt)=>({id:[wt.id,zt].join("-"),embedScraperId:Ot.embedId})),sourceId:wt.id}));for(const[Ot,zt]of Lt.entries()){const Mt=_t.find(Yt=>Yt.id===zt.embedId);if(!Mt)throw new Error("Invalid embed returned");const qt=[wt.id,Ot].join("-");(At=(St=at.events)==null?void 0:St.start)==null||At.call(St,qt),Ct=qt;let Qt;try{if(Qt=await Mt.scrape({...kt,url:zt.url}),Qt.stream=Qt.stream.filter(isValidStream).filter(jt=>flagsAllowedInFeatures(at.features,jt.flags)),Qt.stream=Qt.stream.map(jt=>requiresProxy(jt)&&at.proxyStreams?setupProxy(jt):jt),Qt.stream.length===0)throw new NotFoundError("No streams found");const Yt=await validatePlayableStream(Qt.stream[0],at,zt.embedId);if(!Yt)throw new NotFoundError("No streams found");at.disableOpensubtitles||at.media.imdbId&&(Yt.captions=await addOpenSubtitlesCaptions(Yt.captions,at,btoa(`${at.media.imdbId}${at.media.type==="show"?`.${at.media.season.number}.${at.media.episode.number}`:""}`))),Qt.stream=[Yt]}catch(Yt){const jt={id:qt,percentage:100,status:Yt instanceof NotFoundError?"notfound":"failure",reason:Yt instanceof NotFoundError?Yt.message:void 0,error:Yt instanceof NotFoundError?void 0:Yt};(Dt=(vt=at.events)==null?void 0:vt.update)==null||Dt.call(vt,jt);continue}return{sourceId:wt.id,embedId:Mt.id,stream:Qt.stream[0]}}}return null}function makeControls(st){const at={embeds:st.embeds,sources:st.sources},ut={features:st.features,fetcher:makeFetcher(st.fetcher),proxiedFetcher:makeFetcher(st.proxiedFetcher??st.fetcher),proxyStreams:st.proxyStreams};return{runAll(dt){return runAllProviders(at,{...ut,...dt})},runSourceScraper(dt){return scrapeInvidualSource(at,{...ut,...dt})},runEmbedScraper(dt){return scrapeIndividualEmbed(at,{...ut,...dt})},getMetadata(dt){return getSpecificId(at,dt)},listSources(){return getAllSourceMetaSorted(at)},listEmbeds(){return getAllEmbedMetaSorted(at)}}}const nanoid$1=customAlphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",10),baseUrl$m="https://d000d.com",doodScraper=makeEmbed({id:"dood",name:"dood",rank:173,async scrape(st){var at,ut;let dt=st.url;st.url.includes("primewire")&&(dt=(await st.proxiedFetcher.full(st.url)).finalUrl);const ct=dt.split("/d/")[1]||dt.split("/e/")[1],pt=await st.proxiedFetcher(`/e/${ct}`,{method:"GET",baseUrl:baseUrl$m}),ft=(at=pt.match(/\?token=([^&]+)&expiry=/))==null?void 0:at[1],ht=(ut=pt.match(/\$\.get\('\/pass_md5([^']+)/))==null?void 0:ut[1],mt=pt.match(/thumbnails:\s\{\s*vtt:\s'([^']*)'/),yt=`${await st.proxiedFetcher(`/pass_md5${ht}`,{headers:{Referer:`${baseUrl$m}/e/${ct}`},method:"GET",baseUrl:baseUrl$m})}${nanoid$1()}?token=${ft}&expiry=${Date.now()}`;if(!yt.startsWith("http"))throw new Error("Invalid URL");return{stream:[{id:"primary",type:"file",flags:[],captions:[],qualities:{unknown:{type:"mp4",url:yt}},headers:{Referer:baseUrl$m},...mt?{thumbnailTrack:{type:"vtt",url:`https:${mt[1]}`}}:{}}]}}}),MEGACLOUD_KEY="1b33635e913b32d65a2c9a30885db0988b31999b1149bc056150d60ce361896c",hianimeHd1DubEmbed=makeEmbed({id:"hianime-hd1-dub",name:"HD-1 (Dub)",rank:250,async scrape(st){var at,ut,dt,ct,pt;const ft=`https://megacloud.blog/embed-2/v2/e-1/getSources?id=${JSON.parse(st.url).episodeId}`,ht=await st.fetcher(ft);if(!ht)throw new NotFoundError("No response received");if(!((dt=(ut=(at=ht.data)==null?void 0:at.sources)==null?void 0:ut[0])!=null&&dt.url))throw new NotFoundError("No stream URL found in response");const mt=ht.data.sources[0].url,yt=CryptoJS.AES.decrypt(mt,MEGACLOUD_KEY).toString(CryptoJS.enc.Utf8),bt=(pt=(ct=ht.data.tracks)==null?void 0:ct.find(Tt=>Tt.kind==="thumbnails"))==null?void 0:pt.file;return{stream:[{type:"hls",id:"primary",playlist:createM3U8ProxyUrl(yt,ht.data.headers),flags:[flags.CORS_ALLOWED],captions:[],...bt?{thumbnailTrack:{type:"vtt",url:bt}}:{}}]}}}),hianimeHd2DubEmbed=makeEmbed({id:"hianime-hd2-dub",name:"HD-2 (Dub)",rank:251,async scrape(st){var at,ut,dt,ct,pt;const ft=`https://hianime.pstream.mov/api/v2/hianime/episode/sources?animeEpisodeId=${JSON.parse(st.url).episodeId}&server=hd-2&category=dub`,ht=await st.fetcher(ft);if(!ht)throw new NotFoundError("No response received");if(!((dt=(ut=(at=ht.data)==null?void 0:at.sources)==null?void 0:ut[0])!=null&&dt.url))throw new NotFoundError("No stream URL found in response");const mt=(pt=(ct=ht.data.tracks)==null?void 0:ct.find(yt=>yt.kind==="thumbnails"))==null?void 0:pt.file;return{stream:[{type:"hls",id:"primary",playlist:createM3U8ProxyUrl(ht.data.sources[0].url,ht.data.headers),flags:[flags.CORS_ALLOWED],captions:[],...mt?{thumbnailTrack:{type:"vtt",url:mt}}:{}}]}}}),hianimeHd1SubEmbed=makeEmbed({id:"hianime-hd1-sub",name:"HD-1 (Sub)",rank:252,async scrape(st){var at,ut,dt,ct,pt;const ft=`https://hianime.pstream.mov/api/v2/hianime/episode/sources?animeEpisodeId=${JSON.parse(st.url).episodeId}&server=hd-1&category=sub`,ht=await st.fetcher(ft);if(!ht)throw new NotFoundError("No response received");if(!((dt=(ut=(at=ht.data)==null?void 0:at.sources)==null?void 0:ut[0])!=null&&dt.url))throw new NotFoundError("No stream URL found in response");const mt=(pt=(ct=ht.data.tracks)==null?void 0:ct.find(yt=>yt.kind==="thumbnails"))==null?void 0:pt.file;return{stream:[{type:"hls",id:"primary",playlist:createM3U8ProxyUrl(ht.data.sources[0].url,ht.data.headers),flags:[flags.CORS_ALLOWED],captions:[],...mt?{thumbnailTrack:{type:"vtt",url:mt}}:{}}]}}}),hianimeHd2SubEmbed=makeEmbed({id:"hianime-hd2-sub",name:"HD-2 (Sub)",rank:253,async scrape(st){var at,ut,dt,ct,pt;const ft=`https://hianime.pstream.mov/api/v2/hianime/episode/sources?animeEpisodeId=${JSON.parse(st.url).episodeId}&server=hd-2&category=sub`,ht=await st.fetcher(ft);if(!ht)throw new NotFoundError("No response received");if(!((dt=(ut=(at=ht.data)==null?void 0:at.sources)==null?void 0:ut[0])!=null&&dt.url))throw new NotFoundError("No stream URL found in response");const mt=(pt=(ct=ht.data.tracks)==null?void 0:ct.find(yt=>yt.kind==="thumbnails"))==null?void 0:pt.file;return{stream:[{type:"hls",id:"primary",playlist:createM3U8ProxyUrl(ht.data.sources[0].url,ht.data.headers),flags:[flags.CORS_ALLOWED],captions:[],...mt?{thumbnailTrack:{type:"vtt",url:mt}}:{}}]}}}),mixdropBase="https://mixdrop.ag",packedRegex$1=/(eval\(function\(p,a,c,k,e,d\){.*{}\)\))/,linkRegex$1=/MDCore\.wurl="(.*?)";/,mixdropScraper=makeEmbed({id:"mixdrop",name:"MixDrop",rank:198,async scrape(st){let at=st.url;st.url.includes("primewire")&&(at=(await st.fetcher.full(st.url)).finalUrl);const ut=new URL(at).pathname.split("/")[2],dt=(await st.proxiedFetcher(`/e/${ut}`,{baseUrl:mixdropBase})).match(packedRegex$1);if(!dt)throw new Error("failed to find packed mixdrop JavaScript");const ct=unpack_1(dt[1]).match(linkRegex$1);if(!ct)throw new Error("failed to find packed mixdrop source link");const pt=ct[1];return{stream:[{id:"primary",type:"file",flags:[flags.IP_LOCKED],captions:[],qualities:{unknown:{type:"mp4",url:pt.startsWith("http")?pt:`https:${pt}`,headers:{Referer:mixdropBase}}}}]}}});function hexToChar(st){return String.fromCharCode(parseInt(st,16))}function decrypt(st,at){var ut;return(((ut=st.match(/../g))==null?void 0:ut.map(hexToChar).join(""))||"").split("").map((dt,ct)=>String.fromCharCode(dt.charCodeAt(0)^at.charCodeAt(ct%at.length))).join("")}const turbovidScraper=makeEmbed({id:"turbovid",name:"Turbovid",rank:122,async scrape(st){var at,ut;const dt=new URL(st.url).origin,ct=await st.proxiedFetcher(st.url);st.progress(30);const pt=(at=ct.match(/const\s+apkey\s*=\s*"(.*?)";/))==null?void 0:at[1],ft=(ut=ct.match(/const\s+xxid\s*=\s*"(.*?)";/))==null?void 0:ut[1];if(!pt||!ft)throw new Error("Failed to get required values");const ht=JSON.parse(await st.proxiedFetcher("/api/cucked/juice_key",{baseUrl:dt,headers:{referer:st.url,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36",Accept:"*/*","Accept-Language":"en-US,en;q=0.9",Connection:"keep-alive","Content-Type":"application/json","X-Turbo":"TurboVidClient","Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin"}})).juice;if(!ht)throw new Error("Failed to fetch the key");const mt=atob(ht);st.progress(60);const yt=JSON.parse(await st.proxiedFetcher("/api/cucked/the_juice_v2/",{baseUrl:dt,query:{[pt]:ft},headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36",Accept:"*/*","Accept-Language":"en-US,en;q=0.9",Connection:"keep-alive","Content-Type":"application/json","X-Turbo":"TurboVidClient","Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin",referer:st.url}})).data;if(!yt)throw new Error("Failed to fetch required data");st.progress(90);const bt=decrypt(yt,mt),Tt={referer:`${dt}/`,origin:dt};return{stream:[{type:"hls",id:"primary",playlist:createM3U8ProxyUrl(bt,Tt),flags:[],captions:[]}]}}}),origin="https://rabbitstream.net",referer$2="https://rabbitstream.net/",{AES,enc}=CryptoJS;function isJSON(st){try{return JSON.parse(st),!0}catch{return!1}}function extractKey(st){const at=st.lastIndexOf("switch"),ut=st.indexOf("partKeyStartPosition"),dt=st.slice(at,ut),ct=[],pt=dt.matchAll(/:[a-zA-Z0-9]+=([a-zA-Z0-9]+),[a-zA-Z0-9]+=([a-zA-Z0-9]+);/g);for(const ft of pt){const ht=[];for(const mt of[ft[1],ft[2]]){const yt=new RegExp(`${mt}=0x([a-zA-Z0-9]+)`,"g"),bt=[...st.matchAll(yt)],Tt=bt[bt.length-1];if(!Tt)return null;const St=parseInt(Tt[1],16);ht.push(St)}ct.push([ht[0],ht[1]])}return ct}const upcloudScraper=makeEmbed({id:"upcloud",name:"UpCloud",rank:200,disabled:!0,async scrape(st){const at=new URL(st.url.replace("embed-5","embed-4")),ut=at.pathname.split("/"),dt=ut[ut.length-1],ct=await st.proxiedFetcher(`${at.origin}/ajax/embed-4/getSources?id=${dt}`,{headers:{Referer:at.origin,"X-Requested-With":"XMLHttpRequest"}});let pt=null;if(!isJSON(ct.sources)){const ht=await st.proxiedFetcher("https://rabbitstream.net/js/player/prod/e4-player.min.js",{query:{v:Date.now().toString()}}),mt=extractKey(ht);if(!mt)throw new Error("Key extraction failed");let yt="",bt=ct.sources,Tt=0;mt.forEach(([vt,Dt])=>{const Et=vt+Tt,_t=Et+Dt;yt+=ct.sources.slice(Et,_t),bt=bt.replace(ct.sources.substring(Et,_t),""),Tt+=Dt});const St=AES.decrypt(bt,yt).toString(enc.Utf8),At=JSON.parse(St)[0];if(!At)throw new Error("No stream found");pt=At}if(!pt)throw new Error("upcloud source not found");const ft=[];return ct.tracks.forEach(ht=>{if(ht.kind!=="captions")return;const mt=getCaptionTypeFromUrl(ht.file);if(!mt)return;const yt=labelToLanguageCode(ht.label.split(" ")[0]);yt&&ft.push({id:ht.file,language:yt,hasCorsRestrictions:!1,type:mt,url:ht.file})}),{stream:[{id:"primary",type:"hls",playlist:pt.file,flags:[flags.CORS_ALLOWED],captions:ft,preferredHeaders:{Referer:referer$2,Origin:origin}}]}}}),embeds$1=[{id:"vidsrc-comet",name:"Comet",rank:39},{id:"vidsrc-pulsar",name:"Pulsar",rank:38},{id:"vidsrc-nova",name:"Nova",rank:37}],headers$1={referer:"https://vidsrc.vip/",origin:"https://vidsrc.vip"};function makeVidSrcEmbed(st){return makeEmbed({id:st.id,name:st.name,rank:st.rank,async scrape(at){return at.url.includes("https://cdn.niggaflix.xyz")?{stream:[{id:"primary",type:"hls",playlist:createM3U8ProxyUrl(at.url,headers$1),flags:[flags.CORS_ALLOWED],captions:[]}]}:{stream:[{id:"primary",type:"hls",playlist:at.url,flags:[flags.CORS_ALLOWED],captions:[]}]}}})}const[vidsrcCometEmbed,vidsrcPulsarEmbed,vidsrcNovaEmbed]=embeds$1.map(makeVidSrcEmbed),apiUrl$2="https://tom.autoembed.cc";async function comboScraper$y(st){const at=st.media.type==="show"?"tv":"movie";let ut=st.media.tmdbId;st.media.type==="show"&&(ut=`${ut}/${st.media.season.number}/${st.media.episode.number}`);const dt=await st.proxiedFetcher("/api/getVideoSource",{baseUrl:apiUrl$2,query:{type:at,id:ut},headers:{Referer:apiUrl$2,Origin:apiUrl$2}});if(!dt)throw new NotFoundError("Failed to fetch video source");if(!dt.videoSource)throw new NotFoundError("No video source found");st.progress(50);const ct=[{embedId:"autoembed-english",url:dt.videoSource}];return st.progress(90),{embeds:ct}}const autoembedScraper=makeSourcerer({id:"autoembed",name:"Autoembed",rank:110,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$y,scrapeShow:comboScraper$y}),apiUrl$1="https://api-taupe-gamma.vercel.app";async function comboScraper$x(st){let at;if(st.media.type==="show"){const ht=st;at=`/api/stream/tv/${st.media.tmdbId}/${ht.media.season.number}/${ht.media.episode.number}`}else at=`/api/stream/${st.media.tmdbId}`;const ut=await st.fetcher(at,{baseUrl:apiUrl$1});let dt;if(Array.isArray(ut)?dt=ut:ut&&Array.isArray(ut.sources)?dt=ut.sources:ut&&ut.data&&Array.isArray(ut.data.sources)&&(dt=ut.data.sources),!dt||dt.length===0)throw new NotFoundError("Failed to fetch video sources");const ct=dt.filter(ht=>ht.working&&ht.videoUrl);if(ct.length===0)throw new NotFoundError("No working video sources found");st.progress(50);const pt={SR8:{embedId:"beech-ash",name:"ASH"},SR6:{embedId:"beech-willow",name:"WILLOW"},SR9:{embedId:"beech-elm",name:"ELM"},SR5:{embedId:"beech-cedar",name:"CEDAR"}},ft=[];for(const ht of ct){const mt=pt[ht.server];mt&&ft.push({embedId:mt.embedId,url:ht.videoUrl})}return st.progress(90),{embeds:ft}}const beechScraper=makeSourcerer({id:"beech",name:"Beech 🔥",rank:165,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$x,scrapeShow:comboScraper$x}),baseUrl$l="https://catflix.su";async function comboScraper$w(st){const at=st.media.title.replace(/ /g,"-").replace(/[():]/g,"").toLowerCase(),ut=st.media.type,dt=st.media.tmdbId,ct=ut==="movie"?`${baseUrl$l}/movie/${at}-${dt}`:`${baseUrl$l}/episode/${at}-season-${st.media.season.number}-episode-${st.media.episode.number}/eid-${st.media.episode.tmdbId}`;st.progress(60);const pt=await st.proxiedFetcher(ct),ft=load(pt)("script").toArray().find(yt=>{const bt=yt.children[0];return bt&&"type"in bt&&bt.type==="text"&&"data"in bt&&bt.data.includes("main_origin =")});if(!ft)throw new NotFoundError("No embed data found");const ht=ft.children[0].data.match(/main_origin = "(.*?)";/);if(!ht)throw new NotFoundError("Failed to extract embed URL");const mt=atob(ht[1]);return st.progress(90),{embeds:[{embedId:"turbovid",url:mt}]}}const catflixScraper=makeSourcerer({id:"catflix",name:"Catflix",rank:160,disabled:!1,flags:[],scrapeMovie:comboScraper$w,scrapeShow:comboScraper$w});function normalizeTitle$1(st){let at=st.trim().toLowerCase();return at!=="the movie"&&at.endsWith("the movie")&&(at=at.replace("the movie","")),at!=="the series"&&at.endsWith("the series")&&(at=at.replace("the series","")),at.replace(/['":]/g,"").replace(/[^a-zA-Z0-9]+/g,"_")}function compareTitle(st,at){return normalizeTitle$1(st)===normalizeTitle$1(at)}function compareMedia(st,at,ut){const dt=ut===void 0?!0:st.releaseYear===ut;return compareTitle(st.title,at)&&dt}function makeCookieHeader(st){return Object.entries(st).map(([at,ut])=>cookie.serialize(at,ut)).join("; ")}function parseSetCookie(st){const at=setCookieParser.splitCookiesString(st);return setCookieParser.parse(at,{map:!0})}const baseUrl$k="https://ee3.me",username="_sf_",password="defonotscraping";async function login(st,at,ut){const dt=await ut.proxiedFetcher.full("/login",{baseUrl:baseUrl$k,method:"POST",body:new URLSearchParams({user:st,pass:at,action:"login"}),readHeaders:["Set-Cookie"]}),ct=JSON.parse(dt.body);return parseSetCookie(ct.status===1?dt.headers.get("Set-Cookie")??"":"PHPSESSID=mk2p73c77qc28o5i5120843ruu;").PHPSESSID.value}function parseSearch$1(st){const at=[],ut=load(st);return ut("div").each((dt,ct)=>{const pt=ut(ct).find(".title").text().trim(),ft=parseInt(ut(ct).find(".details span").first().text().trim(),10),ht=ut(ct).find(".control-buttons").attr("data-id");pt&&ft&&ht&&at.push({title:pt,year:ft,id:ht})}),at}async function comboScraper$v(st){var at,ut;const dt=await login(username,password,st);if(!dt)throw new Error("Login failed");const ct=(at=parseSearch$1(await st.proxiedFetcher("/get",{baseUrl:baseUrl$k,method:"POST",body:new URLSearchParams({query:st.media.title,action:"search"}),headers:{cookie:makeCookieHeader({PHPSESSID:dt})}})).find(Tt=>Tt&&compareMedia(st.media,Tt.title,Tt.year)))==null?void 0:at.id;if(!ct)throw new NotFoundError("No watchable item found");st.progress(20);const pt=JSON.parse(await st.proxiedFetcher("/get",{baseUrl:baseUrl$k,method:"POST",body:new URLSearchParams({id:ct,action:"get_movie_info"}),headers:{cookie:makeCookieHeader({PHPSESSID:dt})}}));if(!pt.message.video)throw new Error("Failed to get the stream");st.progress(40);const ft=JSON.parse(await st.proxiedFetcher("/renew",{baseUrl:baseUrl$k,method:"POST",headers:{cookie:makeCookieHeader({PHPSESSID:dt})}}));if(!ft.k)throw new Error("Failed to get the key");st.progress(60);const ht=pt.message.server==="1"?"https://vid.ee3.me/vid/":"https://vault.rips.cc/video/",mt=ft.k,yt=`${ht}${pt.message.video}?${new URLSearchParams({k:mt})}`,bt=[];return((ut=pt.message.subs)==null?void 0:ut.toLowerCase())==="yes"&&pt.message.imdbID&&bt.push({id:`https://rips.cc/subs/${pt.message.imdbID}.vtt`,url:`https://rips.cc/subs/${pt.message.imdbID}.vtt`,type:"vtt",hasCorsRestrictions:!1,language:"en"}),st.progress(90),{embeds:[],stream:[{id:"primary",type:"file",flags:[flags.CORS_ALLOWED],captions:bt,qualities:{720:{type:"mp4",url:yt}}}]}}const ee3Scraper=makeSourcerer({id:"ee3",name:"EE3",rank:120,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$v});function getValidQualityFromString(st){switch(st.toLowerCase().replace("p","")){case"360":return"360";case"480":return"480";case"720":return"720";case"1080":return"1080";case"2160":return"4k";case"4k":return"4k";default:return"unknown"}}const baseUrl$j="https://fsharetv.co";async function comboScraper$u(st){var at,ut;const dt=await st.proxiedFetcher("/search",{baseUrl:baseUrl$j,query:{q:st.media.title}}),ct=load(dt),pt=[];ct(".movie-item").each((Tt,St)=>{var At;const[,vt,Dt]=((At=ct(St).find("b").text())==null?void 0:At.match(/^(.*?)\s*(?:\(?\s*(\d{4})(?:\s*-\s*\d{0,4})?\s*\)?)?\s*$/))||[],Et=ct(St).find("a").attr("href");!vt||!Et||pt.push({title:vt,year:Number(Dt)??void 0,url:Et})});const ft=(at=pt.find(Tt=>Tt&&compareMedia(st.media,Tt.title,Tt.year)))==null?void 0:at.url;if(!ft)throw new NotFoundError("No watchable item found");st.progress(50);const ht=(ut=(await st.proxiedFetcher(ft.replace("/movie","/w"),{baseUrl:baseUrl$j})).match(/Movie\.setSource\('([^']*)'/))==null?void 0:ut[1];if(!ht)throw new Error("File ID not found");const mt=await st.proxiedFetcher(`/api/file/${ht}/source`,{baseUrl:baseUrl$j,query:{type:"watch"}});if(!mt.data.file.sources.length)throw new Error("No sources found");const yt=new URL((await st.proxiedFetcher.full(mt.data.file.sources[0].src,{baseUrl:baseUrl$j})).finalUrl).origin,bt=mt.data.file.sources.reduce((Tt,St)=>{const At=typeof St.quality=="number"?St.quality.toString():St.quality,vt=getValidQualityFromString(At);return Tt[vt]={type:"mp4",url:`${yt}${St.src.replace("/api","")}`},Tt},{});return st.progress(90),{embeds:[],stream:[{id:"primary",type:"file",flags:[],headers:{referer:"https://fsharetv.co"},qualities:bt,captions:[]}]}}const fsharetvScraper=makeSourcerer({id:"fsharetv",name:"FshareTV",rank:200,flags:[],scrapeMovie:comboScraper$u}),apiKey="5b9790d9305dca8713b9a0afad42ea8d",baseUrl$i="https://hianime.pstream.mov/";async function searchAnime(st){const at=await fetch(`${baseUrl$i}api/v2/hianime/search?q=${encodeURIComponent(st)}`);if(!at.ok)throw new Error("Failed to search anime");const ut=await at.json();if(!ut.success||!ut.data.animes.length)throw new Error("Anime not found");const dt=ut.data.animes.find(ct=>ct.name.toLowerCase()===st.toLowerCase());return(dt==null?void 0:dt.id)??ut.data.animes[0].id}async function fetchTmdbShowDetails(st){const at=await fetch(`https://api.themoviedb.org/3/tv/${st}?api_key=${apiKey}`);if(!at.ok)throw new NotFoundError("Failed to fetch show data from TMDB");const ut=await at.json();return ut.name||ut.original_name}async function fetchTmdbSeasonEpisodes(st,at){const ut=await fetch(`https://api.themoviedb.org/3/tv/${st}/season/${at}?api_key=${apiKey}`);if(!ut.ok)throw new NotFoundError("Failed to fetch season data from TMDB");return(await ut.json()).episodes}async function calculateAbsoluteEpisodeNumber(st,at,ut){return(await Promise.all(Array.from({length:at-1},(dt,ct)=>fetchTmdbSeasonEpisodes(st,ct+1)))).reduce((dt,ct)=>dt+ct.length,0)+ut}async function fetchEpisodeData(st){const at=await fetch(`${baseUrl$i}api/v2/hianime/anime/${st}/episodes`);if(!at.ok)throw new NotFoundError("Failed to fetch episode data");return at.json()}async function comboScraper$t(st){const at=await fetchTmdbShowDetails(st.media.tmdbId),ut=await searchAnime(at),dt=await calculateAbsoluteEpisodeNumber(st.media.tmdbId,st.media.season.number,st.media.episode.number),ct=(await fetchEpisodeData(ut)).data.episodes.find(pt=>pt.number===dt);if(!ct)throw new NotFoundError("Episode not found");return{embeds:[{embedId:"hianime-hd1-dub",url:JSON.stringify({episodeId:ct.episodeId})},{embedId:"hianime-hd2-dub",url:JSON.stringify({episodeId:ct.episodeId})},{embedId:"hianime-hd1-sub",url:JSON.stringify({episodeId:ct.episodeId})},{embedId:"hianime-hd2-sub",url:JSON.stringify({episodeId:ct.episodeId})}]}}const hianimeScraper=makeSourcerer({id:"hianime",name:"Hianime 🔥",rank:175,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeShow:comboScraper$t}),BASE_URL$2="https://isut.streamflix.one";async function comboScraper$s(st){const at=(await st.fetcher(`${BASE_URL$2}/api/source/${st.media.type==="movie"?`${st.media.tmdbId}`:`${st.media.tmdbId}/${st.media.season.number}/${st.media.episode.number}`}`)).sources;if(!at||at.length===0)throw new NotFoundError("No sources found");const ut=at[0].file;if(!ut)throw new NotFoundError("No file URL found");return st.progress(90),{embeds:[],stream:[{id:"primary",playlist:ut,type:"hls",flags:[flags.CORS_ALLOWED],captions:[]}]}}const insertunitScraper=makeSourcerer({id:"insertunit",name:"Insertunit",rank:12,disabled:!0,flags:[flags.CORS_ALLOWED,flags.IP_LOCKED],scrapeMovie:comboScraper$s,scrapeShow:comboScraper$s}),baseUrl$h="https://mp4hydra.org/";async function comboScraper$r(st){var at;const ut=await st.proxiedFetcher("/search",{baseUrl:baseUrl$h,query:{q:st.media.title}});st.progress(40);const dt=load(ut),ct=[];dt(".search-details").each((mt,yt)=>{var bt;const[,Tt,St]=dt(yt).find("a").first().text().trim().match(/^(.*?)\s*(?:\(?\s*(\d{4})(?:\s*-\s*\d{0,4})?\s*\)?)?\s*$/)||[],At=(bt=dt(yt).find("a").attr("href"))==null?void 0:bt.split("/")[4];!Tt||!At||ct.push({title:Tt,year:St?parseInt(St,10):void 0,url:At})});const pt=(at=ct.find(mt=>mt&&compareMedia(st.media,mt.title,mt.year)))==null?void 0:at.url;if(!pt)throw new NotFoundError("No watchable item found");st.progress(60);const ft=await st.proxiedFetcher("/info2?v=8",{method:"POST",body:new URLSearchParams({z:JSON.stringify([{s:pt,t:"movie"}])}),baseUrl:baseUrl$h});if(!ft.playlist[0].src||!ft.servers)throw new NotFoundError("No watchable item found");st.progress(80);const ht=[];return[ft.servers[ft.servers.auto],...Object.values(ft.servers).filter(mt=>mt!==ft.servers[ft.servers.auto]&&mt!==ft.servers.auto)].forEach((mt,yt)=>ht.push({embedId:`mp4hydra-${yt+1}`,url:`${mt}${ft.playlist[0].src}|${ft.playlist[0].label}`})),st.progress(90),{embeds:ht}}const mp4hydraScraper=makeSourcerer({id:"mp4hydra",name:"Mp4Hydra",rank:4,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$r,scrapeShow:comboScraper$r}),nepuBase="https://nscrape.andresdev.org/api";async function scrape(st){const at=st.media.tmdbId;let ut;st.media.type==="movie"?ut=`${nepuBase}/get-stream?tmdbId=${at}`:ut=`${nepuBase}/get-show-stream?tmdbId=${at}&season=${st.media.season.number}&episode=${st.media.episode.number}`;const dt=await st.proxiedFetcher(ut);if(!dt.success||!dt.rurl)throw new NotFoundError("No stream found");return{stream:[{id:"nepu",type:"hls",playlist:dt.rurl,flags:[flags.CORS_ALLOWED],captions:[]}],embeds:[]}}const nepuScraper=makeSourcerer({id:"nepu",name:"Nepu 🔥",rank:180,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:scrape,scrapeShow:scrape}),baseUrl$g="https://mbp.pirxcy.dev";function buildQualitiesFromStreams(st){const at=st.list.reduce((dt,ct)=>{const{path:pt,quality:ft,format:ht}=ct,mt=ct.real_quality;if(ht!=="mp4")return dt;let yt;if(ft==="4K"||mt==="4K")yt=2160;else{const bt=ft.replace("p","");yt=parseInt(bt,10)}return Number.isNaN(yt)||dt[yt]||(dt[yt]=pt),dt},{}),ut=Object.entries(at).reduce((dt,[ct,pt])=>(dt[ct]=pt,dt),{});return{...ut[2160]&&{"4k":{type:"mp4",url:ut[2160]}},...ut[1080]&&{1080:{type:"mp4",url:ut[1080]}},...ut[720]&&{720:{type:"mp4",url:ut[720]}},...ut[480]&&{480:{type:"mp4",url:ut[480]}},...ut[360]&&{360:{type:"mp4",url:ut[360]}},...ut.unknown&&{unknown:{type:"mp4",url:ut.unknown}}}}async function findMediaByTMDBId(st,at,ut,dt,ct){const pt=`${baseUrl$g}/search?q=${encodeURIComponent(ut)}&type=${dt}${ct?`&year=${ct}`:""}`,ft=await st.proxiedFetcher(pt);if(!ft.data||ft.data.length===0)throw new NotFoundError("No results found in search");for(const ht of ft.data){const mt=`${baseUrl$g}/details/${dt}/${ht.id}`,yt=await st.proxiedFetcher(mt);if(yt.data&&yt.data.tmdb_id.toString()===at)return ht.id}throw new NotFoundError("Could not find matching media item for TMDB ID")}async function scrapeMovie(st){var at;const ut=st.media.tmdbId,dt=st.media.title,ct=(at=st.media.releaseYear)==null?void 0:at.toString();if(!ut||!dt)throw new NotFoundError("Missing required media information");const pt=await findMediaByTMDBId(st,ut,dt,"movie",ct),ft=`${baseUrl$g}/movie/${pt}`,ht=await st.proxiedFetcher(ft);if(!ht.data||!ht.data.list)throw new NotFoundError("No streams found for this movie");return{stream:[{id:"pirxcy",type:"file",qualities:buildQualitiesFromStreams(ht.data),flags:[flags.CORS_ALLOWED],captions:[]}],embeds:[]}}async function scrapeShow(st){var at;const ut=st.media.tmdbId,dt=st.media.title,ct=(at=st.media.releaseYear)==null?void 0:at.toString(),pt=st.media.season.number,ft=st.media.episode.number;if(!ut||!dt||!pt||!ft)throw new NotFoundError("Missing required media information");const ht=await findMediaByTMDBId(st,ut,dt,"tv",ct),mt=`${baseUrl$g}/tv/${ht}/${pt}/${ft}`,yt=await st.proxiedFetcher(mt);if(!yt.data||!yt.data.list)throw new NotFoundError("No streams found for this episode");const bt=buildQualitiesFromStreams(yt.data);return{embeds:[],stream:[{id:"primary",type:"file",qualities:bt,flags:[flags.CORS_ALLOWED],captions:[]}]}}const pirxcyScraper=makeSourcerer({id:"pirxcy",name:"Pirxcy",rank:230,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie,scrapeShow}),baseUrl$f="https://tugaflix.love/";function parseSearch(st){const at=[],ut=load(st);return ut(".items .poster").each((dt,ct)=>{var pt;const ft=ut(ct).find("a"),ht=ft.attr("href"),[,mt,yt]=((pt=ft.attr("title"))==null?void 0:pt.match(/^(.*?)\s*(?:\((\d{4})\))?\s*$/))||[];!mt||!ht||at.push({title:mt,year:yt?parseInt(yt,10):void 0,url:ht})}),at}const tugaflixScraper=makeSourcerer({id:"tugaflix",name:"Tugaflix",rank:70,flags:[flags.IP_LOCKED],scrapeMovie:async st=>{var at;const ut=parseSearch(await st.proxiedFetcher("/filmes/",{baseUrl:baseUrl$f,query:{s:st.media.title}}));if(ut.length===0)throw new NotFoundError("No watchable item found");const dt=(at=ut.find(ht=>ht&&compareMedia(st.media,ht.title,ht.year)))==null?void 0:at.url;if(!dt)throw new NotFoundError("No watchable item found");st.progress(50);const ct=await st.proxiedFetcher(dt,{method:"POST",body:new URLSearchParams({play:""})}),pt=load(ct),ft=[];for(const ht of pt(".play a")){const mt=pt(ht).attr("href");if(!mt)continue;const yt=await st.proxiedFetcher.full(mt.startsWith("https://")?mt:`https://${mt}`),bt=load(yt.body)('a:contains("Download Filme")').attr("href");bt&&(bt.includes("streamtape")?ft.push({embedId:"streamtape",url:bt}):bt.includes("dood")&&ft.push({embedId:"dood",url:bt}))}return st.progress(90),{embeds:ft}},scrapeShow:async st=>{var at;const ut=parseSearch(await st.proxiedFetcher("/series/",{baseUrl:baseUrl$f,query:{s:st.media.title}}));if(ut.length===0)throw new NotFoundError("No watchable item found");const dt=(at=ut.find(Tt=>Tt&&compareMedia(st.media,Tt.title,Tt.year)))==null?void 0:at.url;if(!dt)throw new NotFoundError("No watchable item found");st.progress(50);const ct=st.media.season.number<10?`0${st.media.season.number}`:st.media.season.number.toString(),pt=st.media.episode.number<10?`0${st.media.episode.number}`:st.media.episode.number.toString(),ft=await st.proxiedFetcher(dt,{method:"POST",body:new URLSearchParams({[`S${ct}E${pt}`]:""})}),ht=load(ft)('iframe[name="player"]').attr("src");if(!ht)throw new Error("Failed to find iframe");const mt=await st.proxiedFetcher(ht.startsWith("https:")?ht:`https:${ht}`,{method:"POST",body:new URLSearchParams({submit:""})}),yt=[],bt=load(mt)('a:contains("Download Episodio")').attr("href");return bt!=null&&bt.includes("streamtape")?yt.push({embedId:"streamtape",url:bt}):bt!=null&&bt.includes("dood")&&yt.push({embedId:"dood",url:bt}),st.progress(90),{embeds:yt}}}),baseUrl$e="https://proxyv1.vidify.top/proxy",apiBase$2="https://api.vidify.top";async function comboScraper$q(st){let at;st.media.type==="movie"?at=`${apiBase$2}/movie/${st.media.tmdbId}?sr=2`:at=`${apiBase$2}/tv/${st.media.tmdbId}?s=${st.media.season.number}&e=${st.media.episode.number}&sr=2`;const ut=await st.proxiedFetcher(baseUrl$e,{query:{url:at},headers:{referer:"https://player.vidify.top/"}});if(!ut||!ut.quality||ut.quality.length===0)throw new NotFoundError("No sources found");st.progress(50);const dt={};for(const ct of ut.quality){const pt=ct.quality.match(/(\d+)P?/i),ft=pt?pt[1]:"unknown";dt[ft]={type:"mp4",url:ct.url}}return!ut.hasMultiQuality&&ut.url&&Object.keys(dt).length===0&&(dt.unknown={type:"mp4",url:ut.url}),st.progress(90),{embeds:[],stream:[{id:"primary",type:"file",qualities:dt,flags:[flags.CORS_ALLOWED],captions:[]}]}}const vidifyScraper=makeSourcerer({id:"vidify",name:"not embed.su 🔥",rank:132,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$q,scrapeShow:comboScraper$q}),abc="ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz",dechar=st=>String.fromCharCode(st),salt={_keyStr:`${abc}0123456789+/=`,e(st){let at="",ut,dt,ct,pt,ft,ht,mt,yt=0;for(st=salt._ue(st);yt>2,ft=(ut&3)<<4|dt>>4,ht=(dt&15)<<2|ct>>6,mt=ct&63,Number.isNaN(dt)?(ht=64,mt=64):Number.isNaN(ct)&&(mt=64),at+=this._keyStr.charAt(pt)+this._keyStr.charAt(ft)+this._keyStr.charAt(ht)+this._keyStr.charAt(mt);return at},d(st){let at="",ut,dt,ct,pt,ft,ht,mt,yt=0;for(st=st.replace(/[^A-Za-z0-9+/=]/g,"");yt>4,dt=(ft&15)<<4|ht>>2,ct=(ht&3)<<6|mt,at+=dechar(ut),ht!==64&&(at+=dechar(dt)),mt!==64&&(at+=dechar(ct));return at=salt._ud(at),at},_ue(st){st=st.replace(/\r\n/g,` `);let at="";for(let ut=0;ut127&&dt<2048?(at+=dechar(dt>>6|192),at+=dechar(dt&63|128)):(at+=dechar(dt>>12|224),at+=dechar(dt>>6&63|128),at+=dechar(dt&63|128))}return at},_ud(st){let at="",ut=0,dt,ct,pt;for(;ut191&&dt<224?(ct=st.charCodeAt(ut+1),at+=dechar((dt&31)<<6|ct&63),ut+=2):(ct=st.charCodeAt(ut+1),pt=st.charCodeAt(ut+2),at+=dechar((dt&15)<<12|(ct&63)<<6|pt&63),ut+=3);return at}},sugar=st=>{const at=st.split(dechar(61));let ut="";const dt=dechar(120);for(const ct of at){let pt="";for(let ht=0;ht{st=st.replace(/\+/g,"#"),st=st.replace(/#/g,"+");let ut=Number(sugar("xx??x?=xx?xx?="))*at;ut+=abc.length/2;const dt=abc.substr(ut*2)+abc.substr(0,ut*2);return st.replace(/[A-Za-z]/g,ct=>dt.charAt(abc.indexOf(ct)))},decode=st=>st.substr(0,2)==="#1"?salt.d(pepper(st.substr(2),-1)):st.substr(0,2)==="#0"?salt.d(st.substr(2)):st,mirza=(st,at)=>{let ut=st.substring(2);for(let dt=4;dt>=0;dt--)if(at[`bk${dt}`]){const ct=pt=>btoa(encodeURIComponent(pt).replace(/%([0-9A-F]{2})/g,(ft,ht)=>String.fromCharCode(parseInt(ht,16))));ut=ut.replace(at.file3_separator+ct(at[`bk${dt}`]),"")}return(dt=>decodeURIComponent(atob(dt).split("").map(ct=>`%${`00${ct.charCodeAt(0).toString(16)}`.slice(-2)}`).join("")))(ut)},o$8={u:"#1RyJzl3JYmljm0mkJWOGYWNyI6MfwVNGYXmj9uQj5tQkeYIWoxLCJXNkawOGF5QZ9sQj1YIWowLCJXO20VbVJ1OZ11QGiSlni0QG9uIn19"};async function vidsrcScrape(st){var at,ut;const dt=st.media.imdbId;if(!dt)throw new NotFoundError("IMDb ID not found");const ct=st.media.type==="show";let pt,ft;if(ct){const _t=st.media;pt=(at=_t.season)==null?void 0:at.number,ft=(ut=_t.episode)==null?void 0:ut.number}const ht=ct?`https://vidsrc.net/embed/tv?imdb=${dt}&season=${pt}&episode=${ft}`:`https://vidsrc.net/embed/${dt}`;st.progress(10);const mt=await st.proxiedFetcher(ht,{headers:{Referer:"https://vidsrc.net/","User-Agent":"Mozilla/5.0"}});st.progress(30);const yt=mt.match(/]*id="player_iframe"[^>]*src="([^"]*)"[^>]*>/);if(!yt)throw new NotFoundError("Initial iframe not found");const bt=yt[1].startsWith("//")?`https:${yt[1]}`:yt[1];st.progress(50);const Tt=(await st.proxiedFetcher(bt,{headers:{Referer:ht,"User-Agent":"Mozilla/5.0"}})).match(/src\s*:\s*['"]([^'"]+)['"]/);if(!Tt)throw new NotFoundError("prorcp iframe not found");const St=Tt[1].startsWith("/")?`https://cloudnestra.com${Tt[1]}`:Tt[1];st.progress(70);const At=(await st.proxiedFetcher(St,{headers:{Referer:bt,"User-Agent":"Mozilla/5.0"}})).split("=2){const ut=at[1].split(".m3u8")[0];try{const dt=Buffer.from(ut,"base64").toString("utf-8"),ct=JSON.parse(dt),pt=ct.u,ft=ct.r||"";return createProxyUrl$1(pt,ft)}catch(dt){console.error("Error decoding/parsing orbitproxy data:",dt)}}}catch(at){console.error("Error processing orbitproxy URL:",at)}return st.includes("/m3u8-proxy?url=")?updateM3U8ProxyUrl(st):st}const getHost=()=>{const st=new URL(window.location.href);return`${st.protocol}//${st.host}`};async function comboScraper$p(st){const at=await st.proxiedFetcher(`https://vidsrc.su/embed/${st.media.type==="movie"?`movie/${st.media.tmdbId}`:`tv/${st.media.tmdbId}/${st.media.season.number}/${st.media.episode.number}`}`,{headers:{Referer:getHost()}});console.log("host",getHost()),st.progress(30);const ut=at.match(/decodeURIComponent\('([^']+)'\)/),dt=ut?decodeURIComponent(ut[1]):null,ct=[...at.matchAll(/label: 'Server (\d+)', url: '(https.*)'/g)].map(ft=>({serverNumber:parseInt(ft[1],10),url:ft[2]}));if(dt&&ct.push({serverNumber:40,url:dt}),st.progress(60),!ct.length)throw new NotFoundError("No server playlist found");const pt=ct.map(ft=>({...ft,url:processProxiedURL$1(ft.url)})).map(ft=>({embedId:`server-${ft.serverNumber}`,url:ft.url}));return st.progress(90),{embeds:pt}}const vidsrcsuScraper=makeSourcerer({id:"vidsrcsu",name:"vidsrc.su",rank:140,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$p,scrapeShow:comboScraper$p}),baseUrl$d="https://api2.vidsrc.vip";function digitToLetterMap(st){return["a","b","c","d","e","f","g","h","i","j"][parseInt(st,10)]}function encodeTmdbId(st,at,ut,dt){let ct;at==="show"&&ut&&dt?ct=`${st}-${ut}-${dt}`:ct=st.split("").map(digitToLetterMap).join("");const pt=ct.split("").reverse().join("");return btoa(btoa(pt))}async function comboScraper$o(st){const at=st.media.type==="show"?"tv":"movie",ut=encodeTmdbId(st.media.tmdbId,st.media.type,st.media.type==="show"?st.media.season.number:void 0,st.media.type==="show"?st.media.episode.number:void 0),dt=`${baseUrl$d}/${at}/${ut}`,ct=await st.proxiedFetcher(dt);if(!ct||!ct.source1)throw new NotFoundError("No sources found");const pt=[],ft=["vidsrc-comet","vidsrc-pulsar","vidsrc-nova"];let ht=0;for(let mt=1;ct[`source${mt}`];mt++){const yt=ct[`source${mt}`];yt!=null&&yt.url&&(pt.push({embedId:ft[ht%ft.length],url:yt.url}),ht++)}if(pt.length===0)throw new NotFoundError("No embeds found");return{embeds:pt}}const vidsrcvipScraper=makeSourcerer({id:"vidsrcvip",name:"VidSrc.vip",rank:150,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$o,scrapeShow:comboScraper$o}),zoeBase="https://zoechip.org";function createSlug(st){return st.toLowerCase().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").trim()}async function extractFileFromFilemoon(st,at){const ut={Referer:zoeBase,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"};try{const dt=(await st.proxiedFetcher.full(at,{method:"HEAD",headers:ut})).finalUrl;if(!dt)return null;const ct=await st.proxiedFetcher(dt,{headers:ut}),pt=load(ct)("iframe").attr("src");if(!pt)throw new NotFoundError("No iframe URL found");const ft=(await st.proxiedFetcher(pt,{headers:ut})).match(/eval\(function\(p,a,c,k,e,.*\)\)/i);if(!ft)throw new NotFoundError("No packed JavaScript found");const ht=unpack_1(ft[0]).match(/file\s*:\s*"([^"]+)"/i);if(!ht)throw new NotFoundError("No file URL found in unpacked JavaScript");return ht[1]}catch{throw new NotFoundError("Failed to extract file URL from streaming server")}}async function comboScraper$n(st){const at={Referer:zoeBase,"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"};let ut,dt;try{if(st.media.type==="movie"){const At=createSlug(st.media.title);ut=`${zoeBase}/film/${At}-${st.media.releaseYear}`}else{const At=createSlug(st.media.title);ut=`${zoeBase}/episode/${At}-season-${st.media.season.number}-episode-${st.media.episode.number}`}st.progress(20);const ct=await st.proxiedFetcher(ut,{headers:at}),pt=load(ct);if(dt=pt("div#show_player_ajax").attr("movie-id"),!dt){const At=pt("[data-movie-id]").attr("data-movie-id")||pt("[movie-id]").attr("movie-id")||pt(".player-wrapper").attr("data-id");if(At)dt=At;else throw new NotFoundError(`No content found for ${st.media.type==="movie"?"movie":"episode"}`)}st.progress(40);const ft=`${zoeBase}/wp-admin/admin-ajax.php`,ht={...at,"X-Requested-With":"XMLHttpRequest","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8",Referer:ut},mt=new URLSearchParams({action:"lazy_player",movieID:dt}),yt=await st.proxiedFetcher(ft,{method:"POST",headers:ht,body:mt.toString()}),bt=load(yt),Tt=bt("ul.nav a:contains(Filemoon)").attr("data-server");if(!Tt)throw bt("ul.nav a").map((At,vt)=>({name:bt(vt).text().trim(),url:bt(vt).attr("data-server")})).get().length===0?new NotFoundError("No streaming servers found"):new NotFoundError("Filemoon server not available");st.progress(60);const St=await extractFileFromFilemoon(st,Tt);if(!St)throw new NotFoundError("Failed to extract file URL from streaming server");return st.progress(90),{stream:[{id:"primary",type:"hls",playlist:St,flags:[flags.CORS_ALLOWED],captions:[]}],embeds:[]}}catch(ct){if(ct instanceof NotFoundError)throw ct;if(ct instanceof Error){if(ct.message.includes("fetch"))throw new NotFoundError("Failed to connect to ZoeChip");if(ct.message.includes("timeout"))throw new NotFoundError("Request timed out")}throw new NotFoundError(`ZoeChip scraping failed: ${ct instanceof Error?ct.message:"Unknown error"}`)}}const zoechipScraper=makeSourcerer({id:"zoechip",name:"ZoeChip",rank:170,flags:[],scrapeMovie:comboScraper$n,scrapeShow:comboScraper$n}),baseUrl$c="https://flix.1anime.app",languageMap$3={"chinese - hong kong":"zh","chinese - traditional":"zh",czech:"cs",danish:"da",dutch:"nl",english:"en","english - sdh":"en",finnish:"fi",french:"fr",german:"de",greek:"el",hungarian:"hu",italian:"it",korean:"ko",norwegian:"no",polish:"pl",portuguese:"pt","portuguese - brazilian":"pt",romanian:"ro","spanish - european":"es","spanish - latin american":"es",swedish:"sv",turkish:"tr",اَلْعَرَبِيَّةُ:"ar",বাংলা:"bn",filipino:"tl",indonesia:"id",اردو:"ur"};function createProxyUrl(st,at){const ut={};return at&&(ut.referer=at),createM3U8ProxyUrl(st,ut)}function processProxiedURL(st){if(st.includes("orbitproxy"))try{const at=st.split(/orbitproxy\.[^/]+\//);if(at.length>=2){const ut=at[1].split(".m3u8")[0];try{const dt=typeof window<"u"?atob(ut):Buffer.from(ut,"base64").toString("utf-8"),ct=JSON.parse(dt),pt=ct.u,ft=ct.r||"";return createProxyUrl(pt,ft)}catch(dt){console.error("Error decoding/parsing orbitproxy data:",dt)}}}catch(at){console.error("Error processing orbitproxy URL:",at)}return st.includes("/m3u8-proxy?url=")?updateM3U8ProxyUrl(st):createProxyUrl(st)}function isOnionflixerUrl(st){return st.includes("onionflixer")}function processSubtitles(st){const at=[];if(st&&Array.isArray(st))for(const ut of st){const dt=ut.url||ut.file,ct=ut.lang||ut.label||"unknown";dt&&at.push({type:ut.type||"vtt",url:dt,language:languageMap$3[ct.toLowerCase()]||ct.toLowerCase()||"unknown"})}return at}function processApiResponse(st,at){if(!st)throw new NotFoundError("No response received");if(st.error)throw new NotFoundError(`${st.error}${st.hint?` - ${st.hint}`:""}`);if(Array.isArray(st))for(const dt of st){if(dt.headers&&dt.sources&&Array.isArray(dt.sources)){const ct=dt.sources.find(pt=>pt.isM3U8);if(ct&&ct.url){const pt=processProxiedURL(ct.url),ft=processSubtitles(dt.subtitles);return{stream:[{id:"primary",type:"hls",playlist:pt,flags:[flags.CORS_ALLOWED],captions:ft}]}}}if(dt.source&&dt.source.files&&Array.isArray(dt.source.files)){const ct=dt.source.files.find(pt=>pt.type==="hls"||pt.file.includes(".m3u8"));if(ct&&ct.file){const pt=processProxiedURL(ct.file),ft=processSubtitles(dt.source.subtitles);return{stream:[{id:"primary",type:"hls",playlist:pt,flags:[flags.CORS_ALLOWED],captions:ft}]}}}}const ut=st.sources;if(ut){let dt=null;for(const ct in ut)if(Object.prototype.hasOwnProperty.call(ut,ct)){const pt=ut[ct];if(pt&&pt.length>0){for(const ft of pt)if(ft.url&&ft.isM3U8&&!isOnionflixerUrl(ft.url)){dt=ft;break}if(dt)break}}if(!dt){for(const ct in ut)if(Object.prototype.hasOwnProperty.call(ut,ct)){const pt=ut[ct];if(pt&&pt.length>0){dt=pt[0];break}}}if(dt&&dt.url){const ct=processProxiedURL(dt.url),pt=processSubtitles(st.subtitles);return at.progress(100),{stream:[{id:"primary",type:"hls",playlist:createProxyUrl(ct,at.referer),flags:[flags.CORS_ALLOWED],captions:pt}]}}}throw new NotFoundError("No valid stream URL found in response")}const movieTvProviders=[{id:"autoembed",name:"Autoembed",rank:165},{id:"vidsrcsu",name:"vidsrc.su",rank:164,disabled:!0},{id:"primebox",name:"Primebox",rank:162,disabled:!0},{id:"foxstream",name:"Foxstream",rank:161,disabled:!0},{id:"flixhq",name:"FlixHQ",rank:166},{id:"goku",name:"Goku",rank:163,disabled:!0}],createMovieTvEmbed=st=>makeEmbed({id:`oneserver-${st.id}`,name:st.name,rank:st.rank,disabled:st.disabled,async scrape(at){const ut=JSON.parse(at.url),dt=ut.type==="movie"?`${baseUrl$c}/movie/${st.id}/${ut.tmdbId}`:`${baseUrl$c}/tv/${st.id}/${ut.tmdbId}/${ut.season}/${ut.episode}`;try{const ct=await at.fetcher(dt);return at.progress(50),processApiResponse(ct,at)}catch(ct){throw ct instanceof NotFoundError?ct:new NotFoundError(`Failed to fetch from ${st.id}: ${ct}`)}}}),[oneServerAutoembedEmbed,oneServerVidsrcsuEmbed,oneServerPrimeboxEmbed,oneServerFoxstreamEmbed,oneServerFlixhqEmbed,oneServerGokuEmbed]=movieTvProviders.map(createMovieTvEmbed),animeProviders=[{id:"hianime",name:"Hianime",rank:269},{id:"animepahe",name:"Animepahe",rank:268},{id:"anizone",name:"Anizone",rank:267}],createAnimeEmbed=st=>makeEmbed({id:`oneserver-${st.id}`,name:st.name,rank:st.rank,async scrape(at){const ut=JSON.parse(at.url),dt=`${baseUrl$c}/anime/${st.id}/${ut.anilistId}${ut.episode?`/${ut.episode}`:""}`;try{const ct=await at.fetcher(dt);return processApiResponse(ct,at)}catch(ct){throw ct instanceof NotFoundError?ct:new NotFoundError(`Failed to fetch from ${st.id}: ${ct}`)}}}),[oneServerHianimeEmbed,oneServerAnimepaheEmbed,oneServerAnizoneEmbed]=animeProviders.map(createAnimeEmbed),providers$a=[{id:"autoembed-english",rank:10},{id:"autoembed-hindi",rank:9,disabled:!0},{id:"autoembed-tamil",rank:8,disabled:!0},{id:"autoembed-telugu",rank:7,disabled:!0},{id:"autoembed-bengali",rank:6,disabled:!0}];function embed$c(st){return makeEmbed({id:st.id,name:st.id.split("-").map(at=>at[0].toUpperCase()+at.slice(1)).join(" "),disabled:st.disabled,rank:st.rank,async scrape(at){return{stream:[{id:"primary",type:"hls",playlist:at.url,flags:[flags.CORS_ALLOWED],captions:[]}]}}})}const[autoembedEnglishScraper,autoembedHindiScraper,autoembedBengaliScraper,autoembedTamilScraper,autoembedTeluguScraper]=providers$a.map(embed$c),providers$9=[{id:"beech-ash",rank:16,name:"ASH"},{id:"beech-willow",rank:15,name:"WILLOW"},{id:"beech-elm",rank:14,name:"ELM"},{id:"beech-cedar",rank:13,name:"CEDAR"}];function embed$b(st){return makeEmbed({id:st.id,name:st.name,rank:st.rank,async scrape(at){return{stream:[{id:"primary",type:"hls",playlist:at.url,flags:[flags.CORS_ALLOWED],captions:[]}]}}})}const[beechAshScraper,beechWillowScraper,beechElmScraper,beechCedarScraper]=providers$9.map(embed$b),BASE_URL$1="https://febbox.andresdev.org",embeds=[{id:"cia-api-embed",rank:301,name:"CIA API",useToken:!0}];function embed$a(st){return makeEmbed({id:st.id,name:st.name,rank:st.rank,disabled:st.disabled,async scrape(at){const ut=JSON.parse(at.url),dt=ut.type==="movie"?`${BASE_URL$1}/movie/${ut.tmdbId}`:`${BASE_URL$1}/tv/${ut.tmdbId}/season/${ut.season}/episode/${ut.episode}`,ct={};st.useToken&&ut.token&&(ct["ui-token"]=ut.token);const pt=await at.fetcher(dt,{headers:Object.keys(ct).length>0?ct:void 0});if(console.log("cia API Response:",JSON.stringify(pt,null,2)),pt!=null&&pt.error&&pt.error.startsWith("No results found"))throw new NotFoundError("No stream found");if((pt==null?void 0:pt.error)==="No cached data found for this episode")throw new NotFoundError("No stream found");if((pt==null?void 0:pt.error)==="No cached data found for this ID")throw new NotFoundError("No stream found");if(!pt)throw new NotFoundError("No response from API");if(at.progress(50),!pt.sources||!Array.isArray(pt.sources)||pt.sources.length===0)throw new NotFoundError("No streams data found in response");const ft=pt.sources.reduce((ht,mt)=>{const yt=mt.label,bt=mt.file;if(bt.includes("/video/vip_only.mp4"))return ht;let Tt;return yt==="ORG[HDR]"||yt==="ORG"?(bt.split("?")[0].toLowerCase().endsWith(".mp4")&&(ht.unknown=bt),ht):(yt==="4K"?Tt=2160:Tt=parseInt(yt.replace("P",""),10),Number.isNaN(Tt)||ht[Tt]||(ht[Tt]=bt),ht)},{});return at.progress(90),{stream:[{id:"primary",captions:[],qualities:{...ft[2160]&&{"4k":{type:"mp4",url:ft[2160]}},...ft[1080]&&{1080:{type:"mp4",url:ft[1080]}},...ft[720]&&{720:{type:"mp4",url:ft[720]}},...ft[480]&&{480:{type:"mp4",url:ft[480]}},...ft[360]&&{360:{type:"mp4",url:ft[360]}},...ft.unknown&&{unknown:{type:"mp4",url:ft.unknown}}},type:"file",flags:[flags.CORS_ALLOWED]}]}}})}const[ciaapiEmbedScraper]=embeds.map(embed$a),CINEMAOS_API=atob("aHR0cHM6Ly9jaW5lbWFvcy12My52ZXJjZWwuYXBwL2FwaS9uZW8vYmFja2VuZGZldGNo");function makeCinemaOSEmbed(st,at){return makeEmbed({id:`cinemaos-${st}`,name:`${st.charAt(0).toUpperCase()+st.slice(1)}`,rank:at,disabled:!0,async scrape(ut){var dt;const ct=JSON.parse(ut.url),{tmdbId:pt,type:ft,season:ht,episode:mt}=ct;let yt=`${CINEMAOS_API}?requestID=${ft==="show"?"tvVideoProvider":"movieVideoProvider"}&id=${pt}&service=${st}`;ft==="show"&&(yt+=`&season=${ht}&episode=${mt}`);const bt=await ut.proxiedFetcher(yt),Tt=typeof bt=="string"?JSON.parse(bt):bt,St=(dt=Tt==null?void 0:Tt.data)==null?void 0:dt.sources;if(!St||!Array.isArray(St)||St.length===0)throw new NotFoundError("No sources found");if(ut.progress(80),St.length===1)return{stream:[{id:"primary",type:"hls",playlist:St[0].url,flags:[flags.CORS_ALLOWED],captions:[]}]};const At={};for(const vt of St){const Dt=(vt.quality||vt.source||"unknown").toString();let Et;Dt==="4K"?Et=2160:Et=parseInt(Dt.replace("P",""),10),!(Number.isNaN(Et)||At[Et])&&(At[Et]={type:"mp4",url:vt.url})}return{stream:[{id:"primary",type:"file",flags:[flags.CORS_ALLOWED],qualities:At,captions:[]}]}}})}const CINEMAOS_SERVERS$1=["shadow","asiacloud","ophim"],cinemaosEmbeds=CINEMAOS_SERVERS$1.map((st,at)=>makeCinemaOSEmbed(st,300-at));function makeCinemaOSHexaEmbed(st,at=100){return makeEmbed({id:`cinemaos-hexa-${st}`,name:`Hexa ${st.charAt(0).toUpperCase()+st.slice(1)}`,disabled:!0,rank:at,async scrape(ut){const dt=JSON.parse(ut.url).directUrl;if(!dt)throw new NotFoundError("No directUrl provided for Hexa embed");return{stream:[{id:"primary",type:"hls",playlist:createM3U8ProxyUrl(dt,{referer:"https://megacloud.store/",origin:"https://megacloud.store"}),flags:[flags.CORS_ALLOWED],captions:[]}]}}})}const HEXA_SERVERS=["alpha","bravo","charlie","delta","echo","foxtrot","golf","hotel","india"];HEXA_SERVERS.map((st,at)=>makeCinemaOSHexaEmbed(st,315-at));const referer$1="https://ridomovies.tv/",closeLoadScraper=makeEmbed({id:"closeload",name:"CloseLoad",rank:105,async scrape(st){var at;const ut=new URL(st.url).origin,dt=await st.proxiedFetcher(st.url,{headers:{referer:referer$1}}),ct=load(dt),pt=ct("track").map((yt,bt)=>{const Tt=ct(bt),St=`${ut}${Tt.attr("src")}`,At=Tt.attr("label")??"",vt=labelToLanguageCode(At),Dt=getCaptionTypeFromUrl(St);return!vt||!Dt?null:{id:St,language:vt,hasCorsRestrictions:!0,type:Dt,url:St}}).get().filter(yt=>yt!==null),ft=ct("script").filter((yt,bt)=>{var Tt;const St=ct(bt);return(St.attr("type")==="text/javascript"&&((Tt=St.html())==null?void 0:Tt.includes("p,a,c,k,e,d")))??!1}).html();if(!ft)throw new Error("Couldn't find eval code");const ht=unpack_1(ft),mt=(at=/var\s+(\w+)\s*=\s*"([^"]+)";/g.exec(ht))==null?void 0:at[2];if(!mt)throw new NotFoundError("Unable to find source url");return{stream:[{id:"primary",type:"hls",playlist:atob(mt),captions:pt,flags:[flags.IP_LOCKED],headers:{Referer:"https://closeload.top/",Origin:"https://closeload.top"}}]}}}),providers$8=[{id:"consumet-vidcloud",rank:405,name:"VidCloud",server:"vidcloud"},{id:"consumet-streamsb",rank:404,name:"StreamSB",server:"streamsb",disabled:!0},{id:"consumet-vidstreaming",rank:403,name:"VidStreaming",server:"vidstreaming",disabled:!0},{id:"consumet-streamtape",rank:402,name:"StreamTape",server:"streamtape",disabled:!0}],languageMap$2={English:"en",Spanish:"es",French:"fr",German:"de",Italian:"it",Portuguese:"pt",Arabic:"ar",Russian:"ru",Japanese:"ja",Korean:"ko",Chinese:"zh",Hindi:"hi",Turkish:"tr",Dutch:"nl",Polish:"pl",Swedish:"sv",Indonesian:"id",Thai:"th",Vietnamese:"vi"};function embed$9(st){return makeEmbed({id:st.id,name:st.name,rank:st.rank,disabled:!0,async scrape(at){var ut;const dt=`https://api.1anime.app/anime/zoro/watch?episodeId=${JSON.parse(at.url).episodeId}&server=${st.server}`,ct=await at.fetcher(dt);if(!((ut=ct==null?void 0:ct.sources)!=null&&ut.length))throw new NotFoundError("No stream found");at.progress(50);const pt=ct.subtitles.filter(yt=>yt.lang!=="thumbnails").map(yt=>({type:"vtt",id:yt.url,url:yt.url,language:languageMap$2[yt.lang]||"unknown",hasCorsRestrictions:!1})),ft=ct.sources.reduce((yt,bt)=>(bt.isM3U8&&(yt.unknown=bt.url),yt),{}),ht=ct.subtitles.find(yt=>yt.lang==="thumbnails");at.progress(90);const mt={};return ct.headers.Referer&&(mt.referer=ct.headers.Referer),ct.headers.Origin&&(mt.origin=ct.headers.Origin),{stream:[{id:"primary",captions:pt,playlist:createM3U8ProxyUrl(ft.unknown,mt),type:"hls",flags:[flags.CORS_ALLOWED],...ht&&{thumbnailTrack:{type:"vtt",url:ht.url}}}]}}})}const[ConsumetVidCloudScraper,ConsumetStreamSBScraper,ConsumetVidStreamingScraper,ConsumetStreamTapeScraper]=providers$8.map(embed$9),getRegion=()=>{var st;try{if(typeof window>"u")return null;const at=window.localStorage.getItem("__MW::region");if(!at)return null;const ut=JSON.parse(at);return((st=ut==null?void 0:ut.state)==null?void 0:st.region)??null}catch(at){return console.warn("Unable to access localStorage or parse auth data:",at),null}},getBaseUrl=()=>{switch(getRegion()){case"us-east":return"https://fed-api-east.pstream.org";case"us-west":return"https://fed-api-west.pstream.org";case"south-america":return"https://fed-api-south.pstream.org";case"asia":return"https://fed-api-asia.pstream.org";case"europe":return"https://fed-api-europe.pstream.org";default:return"https://fed-api-east.pstream.org"}},BASE_URL=getBaseUrl(),languageMap$1={"chinese - hong kong":"zh","chinese - traditional":"zh",czech:"cs",danish:"da",dutch:"nl",english:"en","english - sdh":"en",finnish:"fi",french:"fr",german:"de",greek:"el",hungarian:"hu",italian:"it",korean:"ko",norwegian:"no",polish:"pl",portuguese:"pt","portuguese - brazilian":"pt",romanian:"ro","spanish - european":"es","spanish - latin american":"es",swedish:"sv",turkish:"tr",اَلْعَرَبِيَّةُ:"ar",বাংলা:"bn",filipino:"tl",indonesia:"id",اردو:"ur",English:"en",Arabic:"ar",Bosnian:"bs",Bulgarian:"bg",Croatian:"hr",Czech:"cs",Danish:"da",Dutch:"nl",Estonian:"et",Finnish:"fi",French:"fr",German:"de",Greek:"el",Hebrew:"he",Hungarian:"hu",Indonesian:"id",Italian:"it",Norwegian:"no",Persian:"fa",Polish:"pl",Portuguese:"pt","Protuguese (BR)":"pt-br",Romanian:"ro",Russian:"ru",Serbian:"sr",Slovenian:"sl",Spanish:"es",Swedish:"sv",Thai:"th",Turkish:"tr"},providers$7=[{id:"fedapi-private",rank:303,name:"FED API (Private)",useToken:!0,useCacheUrl:!1},{id:"feddb",rank:302,name:"FED DB",useToken:!1,useCacheUrl:!0}];function embed$8(st){return makeEmbed({id:st.id,name:st.name,rank:st.rank,disabled:st.disabled,async scrape(at){var ut;const dt=JSON.parse(at.url);let ct;st.useCacheUrl?ct=dt.type==="movie"?`${BASE_URL}/cache/${dt.imdbId}`:`${BASE_URL}/cache/${dt.imdbId}/${dt.season}/${dt.episode}`:ct=dt.type==="movie"?`${BASE_URL}/movie/${dt.imdbId}`:`${BASE_URL}/tv/${dt.imdbId}/${dt.season}/${dt.episode}`;const pt={};st.useToken&&dt.token&&(pt["ui-token"]=dt.token);const ft=await at.fetcher(ct,{headers:Object.keys(pt).length>0?pt:void 0});if(ft!=null&&ft.error&&ft.error.startsWith("No results found in MovieBox search"))throw new NotFoundError("No stream found");if((ft==null?void 0:ft.error)==="No cached data found for this episode")throw new NotFoundError("No stream found");if((ft==null?void 0:ft.error)==="No cached data found for this ID")throw new NotFoundError("No stream found");if(!ft)throw new NotFoundError("No response from API");at.progress(50);const ht=Object.entries(ft.streams).reduce((bt,[Tt,St])=>{let At;return Tt==="ORG"?(St.split("?")[0].toLowerCase().endsWith(".mp4")&&(bt.unknown=St),bt):(Tt==="4K"?At=2160:At=parseInt(Tt.replace("P",""),10),Number.isNaN(At)||bt[At]||(bt[At]=St),bt)},{}),mt=Object.entries(ht).reduce((bt,[Tt,St])=>(st.useCacheUrl&&Tt==="unknown"||(bt[Tt]=St),bt),{}),yt=[];if(ft.subtitles)for(const[bt,Tt]of Object.entries(ft.subtitles)){const St=bt.split("_")[0],At=St.charAt(0).toUpperCase()+St.slice(1),vt=((ut=languageMap$1[At])==null?void 0:ut.toLowerCase())??"unknown";if(Tt.subtitle_link){const Dt=Tt.subtitle_link,Et=Dt.toLowerCase().endsWith(".vtt");yt.push({type:Et?"vtt":"srt",id:Dt,url:Dt,language:vt,hasCorsRestrictions:!1})}}return at.progress(90),{stream:[{id:"primary",captions:yt,qualities:{...mt[2160]&&{"4k":{type:"mp4",url:mt[2160]}},...mt[1080]&&{1080:{type:"mp4",url:mt[1080]}},...mt[720]&&{720:{type:"mp4",url:mt[720]}},...mt[480]&&{480:{type:"mp4",url:mt[480]}},...mt[360]&&{360:{type:"mp4",url:mt[360]}},...mt.unknown&&{unknown:{type:"mp4",url:mt.unknown}}},type:"file",flags:[flags.CORS_ALLOWED]}]}}})}const[FedAPIPrivateScraper,FedDBScraper]=providers$7.map(embed$8),servers$1=[{id:"flixer-alpha",name:"Flixer Alpha",rank:57,disabled:!0},{id:"flixer-charlie",name:"Flixer Charlie",rank:56},{id:"flixer-delta",name:"Flixer Delta",rank:55},{id:"flixer-echo",name:"Flixer Echo",rank:54,disabled:!0},{id:"flixer-foxtrot",name:"Flixer Foxtrot",rank:53,disabled:!0}],headers={Referer:"https://111movies.com/",Origin:"https://111movies.com"};function embed$7(st){return makeEmbed({id:st.id,name:st.name,rank:st.rank,disabled:st.disabled,async scrape(at){let ut;return st.id==="flixer-charlie"?ut=at.url:ut=createM3U8ProxyUrl(at.url,headers),{stream:[{id:st.id,type:"hls",playlist:ut,flags:[flags.CORS_ALLOWED],captions:[]}]}}})}const[flixerAlphaScraper,flixerCharlieScraper,flixerDeltaScraper,flixerEchoScraper,flixerFoxtrotScraper]=servers$1.map(embed$7),providers$6=[{id:"mp4hydra-1",name:"MP4Hydra Server 1",rank:36},{id:"mp4hydra-2",name:"MP4Hydra Server 2",rank:35,disabled:!0}];function embed$6(st){return makeEmbed({id:st.id,name:st.name,disabled:!0,rank:st.rank,async scrape(at){const[ut,dt]=at.url.split("|");return{stream:[{id:"primary",type:"file",qualities:{[getValidQualityFromString(dt||"")]:{url:ut,type:"mp4"}},flags:[flags.CORS_ALLOWED],captions:[]}]}}})}const[mp4hydraServer1Scraper,mp4hydraServer2Scraper]=providers$6.map(embed$6),referer="https://ridomovies.tv/",ridooScraper=makeEmbed({id:"ridoo",name:"Ridoo",rank:104,async scrape(st){var at;const ut=await st.proxiedFetcher(st.url,{headers:{referer}}),dt=(at=/file:"([^"]+)"/g.exec(ut))==null?void 0:at[1];if(!dt)throw new NotFoundError("Unable to find source url");return{stream:[{id:"primary",type:"hls",playlist:dt,captions:[],flags:[flags.CORS_ALLOWED]}]}}}),baseUrl$b="https://spencerdevs.xyz";function _decode(st){return atob(st.match(/.{1,2}/g).reverse().join(""))}function decryptPart(st){return CryptoJS.AES.decrypt(st,_decode("V5a2")).toString(CryptoJS.enc.Utf8)}function generateKeyIV(st,at,ut,dt,ct){const pt=`${st}${_decode("==ZAVlc29vZGJ5b2Nvc2")}${at}${ut}${dt}${ct}`,ft=CryptoJS.SHA256(pt).toString(),ht=CryptoJS.enc.Hex.parse(ft.slice(0,64)),mt=CryptoJS.enc.Hex.parse(ft.slice(0,32));return{key:ht,iv:mt}}function decryptSnoopdog(st,at,ut,dt,ct){const pt=new Date;for(const ft of[0,-1,1]){const ht=new Date(pt.getTime()+ft*6e4);ht.setSeconds(0,0);const mt=`${ht.toISOString().slice(0,19)}Z`,{key:yt,iv:bt}=generateKeyIV(mt,at,ut,dt,ct);try{const Tt=CryptoJS.AES.decrypt(st,yt,{iv:bt,mode:CryptoJS.mode.CBC,padding:CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);if(Tt)return Tt}catch{continue}}throw new Error("Failed to decrypt snoopdog with all time offsets")}function replaceAnimeboxProxy(st){if(!st.includes("animebox.xyz/m3u8-proxy.m3u8"))return st;try{const at=new URL(st),ut=at.searchParams.get("url"),dt=at.searchParams.get("headers"),ct=ut?decodeURIComponent(ut):"";let pt={};if(dt){const ft=decodeURIComponent(dt);pt=JSON.parse(ft)}return createM3U8ProxyUrl(ct,pt)}catch{return st}}const providers$5=[{id:"speedstrm-ngflix",name:"Flix",rank:320,server:1,disabled:!0},{id:"speedstrm-upcloud",name:"Air1",rank:319,server:2},{id:"speedstrm-akcloud",name:"Air2",rank:318,server:3},{id:"speedstrm-megacloud",name:"Cloud",rank:317,server:4},{id:"speedstrm-hollymoviehd",name:"HD",rank:315,server:5},{id:"speedstrm-vidsrc",name:"Cloudnestra",rank:316,server:6},{id:"speedstrm-onionflixer",name:"Crying",rank:314,server:7},{id:"speedstrm-soaper",name:"Slippery",rank:313,server:8}];function embed$5(st){return makeEmbed({id:st.id,name:st.name,rank:st.rank,disabled:st.disabled,async scrape(at){const ut=await at.proxiedFetcher(at.url,{headers:{Referer:baseUrl$b,Origin:baseUrl$b}});if(!ut||!ut.snoopdog||!ut.part1||!ut.part2||!ut.part3||!ut.part4)throw new NotFoundError("Invalid response from server");const dt=decryptPart(ut.part1),ct=decryptPart(ut.part2),pt=decryptPart(ut.part3),ft=decryptPart(ut.part4),ht=decryptSnoopdog(ut.snoopdog,dt,ct,pt,ft);if(!ht||ht.trim()==="")throw new NotFoundError("Failed to decrypt stream URL or URL is empty");const mt=replaceAnimeboxProxy(ht);if(!mt||mt.trim()==="")throw new NotFoundError("Processed URL is empty");if(mt.includes("m3u8-proxy")&&mt.includes("url=&"))throw new NotFoundError("Stream URL is empty in proxy parameters");return{stream:[{id:"primary",type:"hls",playlist:mt,flags:[flags.CORS_ALLOWED],captions:[]}]}}})}const[spencerdevsNgflixScraper,spencerdevsUpcloudScraper,spencerdevsAkcloudScraper,spencerdevsMegacloudScraper,spencerdevsHollymoviehd,spencerdevsVidsrcScraper,spencerdevsOnionflixerScraper,spencerdevsSoaperScraper]=providers$5.map(embed$5),providers$4=[{id:"streamtape",name:"Streamtape",rank:160},{id:"streamtape-latino",name:"Streamtape (Latino)",rank:159}];function embed$4(st){return makeEmbed({id:st.id,name:st.name,rank:st.rank,async scrape(at){var ut;const dt=(await at.proxiedFetcher(at.url)).match(/robotlink'\).innerHTML = (.*)'/);if(!dt)throw new Error("No match found");const[ct,pt]=((ut=dt==null?void 0:dt[1])==null?void 0:ut.split("+ ('"))??[];if(!ct||!pt)throw new Error("No match found");const ft=`https:${ct==null?void 0:ct.replace(/'/g,"").trim()}${pt==null?void 0:pt.substring(3).trim()}`;return{stream:[{id:"primary",type:"file",flags:[flags.CORS_ALLOWED,flags.IP_LOCKED],captions:[],qualities:{unknown:{type:"mp4",url:ft}},headers:{Referer:"https://streamtape.com"}}]}}})}const[streamtapeScraper,streamtapeLatinoScraper]=providers$4.map(embed$4),packedRegex=/(eval\(function\(p,a,c,k,e,d\).*\)\)\))/,linkRegex=/src:"(https:\/\/[^"]+)"/,streamvidScraper=makeEmbed({id:"streamvid",name:"Streamvid",rank:215,async scrape(st){const at=(await st.proxiedFetcher(st.url)).match(packedRegex);if(!at)throw new Error("streamvid packed not found");const ut=unpack_1(at[1]).match(linkRegex);if(!ut)throw new Error("streamvid link not found");return{stream:[{type:"hls",id:"primary",playlist:ut[1],flags:[flags.CORS_ALLOWED],captions:[]}]}}});class Unbaser{constructor(at){if(this.ALPHABET={62:"0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",95:"' !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'"},this.dictionary={},this.base=at,at>36&&at<62&&(this.ALPHABET[at]=this.ALPHABET[at]||this.ALPHABET[62].substring(0,at)),at>=2&&at<=36)this.unbase=ut=>parseInt(ut,at);else{try{[...this.ALPHABET[at]].forEach((ut,dt)=>{this.dictionary[ut]=dt})}catch{throw new Error("Unsupported base encoding.")}this.unbase=this._dictunbaser.bind(this)}}_dictunbaser(at){let ut=0;return[...at].reverse().forEach((dt,ct)=>{ut+=this.base**ct*this.dictionary[dt]}),ut}}function _filterargs(st){const at=[/}\('(.*)', *(\d+|\[\]), *(\d+), *'(.*)'\.split\('\|'\), *(\d+), *(.*)\)\)/,/}\('(.*)', *(\d+|\[\]), *(\d+), *'(.*)'\.split\('\|'\)/];for(const ut of at){const dt=ut.exec(st);if(dt)try{return{payload:dt[1],symtab:dt[4].split("|"),radix:parseInt(dt[2],10),count:parseInt(dt[3],10)}}catch{throw new Error("Corrupted p.a.c.k.e.r. data.")}}throw new Error("Could not make sense of p.a.c.k.e.r data (unexpected code structure)")}function unpack(st){const{payload:at,symtab:ut,radix:dt,count:ct}=_filterargs(st);if(ct!==ut.length)throw new Error("Malformed p.a.c.k.e.r. symtab.");let pt;try{pt=new Unbaser(dt)}catch{throw new Error("Unknown p.a.c.k.e.r. encoding.")}const ft=mt=>{const yt=mt;return(dt===1?ut[parseInt(yt,10)]:ut[pt.unbase(yt)])||yt};return at.replace(/\b\w+\b/g,ft)}const providers$3=[{id:"streamwish-japanese",name:"StreamWish (Japanese Sub Español)",rank:171},{id:"streamwish-latino",name:"streamwish (latino)",rank:170},{id:"streamwish-spanish",name:"streamwish (castellano)",rank:169},{id:"streamwish-english",name:"streamwish (english)",rank:168}];function embed$3(st){return makeEmbed({id:st.id,name:st.name,rank:st.rank,async scrape(at){const ut={Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8","Accept-Encoding":"*","Accept-Language":"en-US,en;q=0.9","User-Agent":"Mozilla/5.0"};let dt;try{dt=await at.proxiedFetcher(at.url,{headers:ut})}catch(yt){throw console.error("Error details:",{message:yt instanceof Error?yt.message:"Unknown error",cause:yt.cause||void 0,url:at.url}),yt}const ct=dt.match(/]*>\s*(eval\(function\(p,a,c,k,e,d.*?\)[\s\S]*?)<\/script>/);if(!ct)return{stream:[],embeds:[{embedId:st.id,url:at.url}]};let pt;try{pt=unpack(ct[1])}catch{return{stream:[],embeds:[{embedId:st.id,url:at.url}]}}const ft=Array.from(pt.matchAll(/"(hls2|hls4)"\s*:\s*"([^"]*\.m3u8[^"]*)"/g)).map(yt=>({key:yt[1],url:yt[2]}));if(!ft.length)return{stream:[],embeds:[{embedId:st.id,url:at.url}]};let ht=ft[0].url;/^https?:\/\//.test(ht)||(ht=`https://swiftplayers.com/${ht.replace(/^\/+/g,"")}`);try{const yt=await at.proxiedFetcher(ht,{headers:{Referer:at.url}}),bt=Array.from(yt.matchAll(/#EXT-X-STREAM-INF:[^\n]+\n(?!iframe)([^\n]*index[^\n]*\.m3u8[^\n]*)/gi));if(bt.length>0){const Tt=bt.find(St=>/#EXT-X-STREAM-INF/.test(St.input||""))||bt[0];ht=ht.substring(0,ht.lastIndexOf("/")+1)+Tt[1]}}catch{}const mt={Referer:at.url,Origin:at.url};return{stream:[{id:"primary",type:"hls",playlist:createM3U8ProxyUrl(ht,mt),flags:[flags.CORS_ALLOWED],captions:[]}],embeds:[]}}})}const[streamwishLatinoScraper,streamwishSpanishScraper,streamwishEnglishScraper,streamwishJapaneseScraper]=providers$3.map(embed$3),vidCloudScraper=makeEmbed({id:"vidcloud",name:"VidCloud",rank:201,disabled:!0,async scrape(st){return{stream:(await upcloudScraper.scrape(st)).stream.map(at=>({...at,flags:[]}))}}}),providers$2=[{id:"vidjoy-stream1",name:"Vidjoy 1",rank:110},{id:"vidjoy-stream2",name:"Vidjoy 2",rank:109},{id:"vidjoy-stream3",name:"Vidjoy 3",rank:108},{id:"vidjoy-stream4",name:"Vidjoy 4",rank:107},{id:"vidjoy-stream5",name:"Vidjoy 5",rank:106}];function embed$2(st){return makeEmbed({id:st.id,name:st.name,rank:st.rank,async scrape(at){let ut;try{ut=JSON.parse(at.url)}catch{throw new NotFoundError("Invalid stream data from vidjoy source")}if(!ut.link)throw new NotFoundError("No stream URL found in vidjoy data");if(!ut.link||ut.link.trim()==="")throw new NotFoundError("Stream URL is empty");let dt=ut.link;return ut.headers&&Object.keys(ut.headers).length>0&&(dt=createM3U8ProxyUrl(ut.link,ut.headers)),{stream:[{id:"primary",type:ut.type||"hls",playlist:dt,flags:[flags.CORS_ALLOWED],captions:[]}]}}})}const[vidjoyStream1Scraper,vidjoyStream2Scraper,vidjoyStream3Scraper,vidjoyStream4Scraper,vidjoyStream5Scraper]=providers$2.map(embed$2),providers$1=[{id:"server-13",rank:112},{id:"server-18",rank:111},{id:"server-11",rank:102},{id:"server-7",rank:92},{id:"server-10",rank:82},{id:"server-1",rank:72},{id:"server-16",rank:64},{id:"server-3",rank:62},{id:"server-17",rank:52},{id:"server-2",rank:42},{id:"server-4",rank:32},{id:"server-5",rank:24},{id:"server-14",rank:22},{id:"server-6",rank:21},{id:"server-15",rank:20},{id:"server-8",rank:19},{id:"server-9",rank:18},{id:"server-19",rank:17},{id:"server-12",rank:16}];function embed$1(st){return makeEmbed({id:st.id,name:st.name||st.id.split("-").map(at=>at[0].toUpperCase()+at.slice(1)).join(" "),disabled:!0,rank:st.rank,async scrape(at){return{stream:[{id:"primary",type:"hls",playlist:at.url,flags:[flags.CORS_ALLOWED],captions:[]}]}}})}const[VidsrcsuServer1Scraper,VidsrcsuServer2Scraper,VidsrcsuServer3Scraper,VidsrcsuServer4Scraper,VidsrcsuServer5Scraper,VidsrcsuServer6Scraper,VidsrcsuServer7Scraper,VidsrcsuServer8Scraper,VidsrcsuServer9Scraper,VidsrcsuServer10Scraper,VidsrcsuServer11Scraper,VidsrcsuServer12Scraper,VidsrcsuServer20Scraper]=providers$1.map(embed$1),viperScraper=makeEmbed({id:"viper",name:"Viper",rank:182,disabled:!0,async scrape(st){const at=await st.proxiedFetcher.full(st.url,{headers:{Accept:"application/json",Referer:"https://embed.su/"}});if(!at.body.source)throw new NotFoundError("No source found");const ut=at.body.source.replace(/^.*\/viper\//,"https://");return{stream:[{type:"hls",id:"primary",playlist:createM3U8ProxyUrl(ut,{referer:"https://megacloud.store/",origin:"https://megacloud.store"}),flags:[flags.CORS_ALLOWED],captions:[]}]}}});async function getVideowlUrlStream(st,at){var ut;const dt=await st.proxiedFetcher("https://cloud.mail.ru/public/uaRH/2PYWcJRpH"),ct=(ut=/"videowl_view":\{"count":"(\d+)","url":"([^"]+)"\}/g.exec(dt))==null?void 0:ut[2];if(!ct)throw new NotFoundError("Failed to get videoOwlUrl");return`${ct}/0p/${btoa(at)}.m3u8?${new URLSearchParams({double_encode:"1"})}`}const warezcdnembedHlsScraper=makeEmbed({id:"warezcdnembedhls",name:"WarezCDN HLS",disabled:!0,rank:83,async scrape(st){const at=await getDecryptedId(st);if(!at)throw new NotFoundError("can't get file id");const ut=await getVideowlUrlStream(st,at);return{stream:[{id:"primary",type:"hls",flags:[flags.IP_LOCKED],captions:[],playlist:ut}]}}}),warezPlayerScraper=makeEmbed({id:"warezplayer",name:"warezPLAYER",disabled:!0,rank:85,async scrape(st){const at=new URL(st.url),ut=at.pathname.split("/")[2],dt=await st.proxiedFetcher("/player/index.php",{baseUrl:at.origin,query:{data:ut,do:"getVideo"},method:"POST",body:new URLSearchParams({hash:ut}),headers:{"X-Requested-With":"XMLHttpRequest"}}),ct=JSON.parse(dt);if(!ct.videoSource)throw new Error("Playlist not found");return{stream:[{id:"primary",type:"hls",flags:[],captions:[],playlist:ct.videoSource,headers:{Accept:"*/*"}}]}}}),providers=[{id:"webtor-1080",rank:80},{id:"webtor-4k",rank:79},{id:"webtor-720",rank:78},{id:"webtor-480",rank:77}];function embed(st){return makeEmbed({id:st.id,name:`Webtor ${st.id.split("-")[1].toUpperCase()}`,rank:st.rank,async scrape(at){return{stream:[{id:"primary",type:"hls",playlist:at.url,flags:[flags.CORS_ALLOWED],captions:[]}]}}})}const[webtor4kScraper,webtor1080Scraper,webtor720Scraper,webtor480Scraper]=providers.map(embed),foxBaseUrl="https://backend.xprime.tv/fox",apolloBaseUrl="https://kendrickl-3amar.site",showboxBaseUrl="https://backend.xprime.tv/primebox",marantBaseUrl="https://backend.xprime.tv/marant",krakenBaseUrl="https://backend.xprime.tv/kraken",primenetBaseUrl="https://backend.xprime.tv/primenet",volkswagenBaseUrl="https://backend.xprime.tv/volkswagen",harbourBaseUrl="https://backend.xprime.tv/harbour",fendiBaseUrl="https://backend.xprime.tv/fendi",rageBaseUrl="https://backend.xprime.tv/rage",phoenixBaseUrl="https://backend.xprime.tv/phoenix",languageMap={"chinese - hong kong":"zh","chinese - traditional":"zh",czech:"cs",danish:"da",dutch:"nl",english:"en","english - sdh":"en",finnish:"fi",french:"fr",german:"de",greek:"el",hungarian:"hu",italian:"it",korean:"ko",norwegian:"no",polish:"pl",portuguese:"pt","portuguese - brazilian":"pt",romanian:"ro","spanish - european":"es","spanish - latin american":"es",spanish:"es",swedish:"sv",turkish:"tr",اَلْعَرَبِيَّةُ:"ar",বাংলা:"bn",filipino:"tl",indonesia:"id",اردو:"ur",English:"en",Arabic:"ar",Bosnian:"bs",Bulgarian:"bg",Croatian:"hr",Czech:"cs",Danish:"da",Dutch:"nl",Estonian:"et",Finnish:"fi",French:"fr",German:"de",Greek:"el",Hebrew:"he",Hungarian:"hu",Indonesian:"id",Italian:"it",Norwegian:"no",Persian:"fa",Polish:"pl",Portuguese:"pt","Protuguese (BR)":"pt-br",Romanian:"ro",Russian:"ru",russian:"ru",Serbian:"sr",Slovenian:"sl",Spanish:"es",Swedish:"sv",Thai:"th",Turkish:"tr"},xprimeApolloEmbed=makeEmbed({id:"xprime-apollo",name:"Appolo",disabled:!0,rank:239,async scrape(st){var at,ut;const dt=JSON.parse(st.url);let ct=`${apolloBaseUrl}/${dt.tmdbId}`;dt.type==="show"&&(ct+=`/${dt.season}/${dt.episode}`);const pt=await st.fetcher(ct);if(!pt)throw new NotFoundError("No response received");if(pt.error)throw new NotFoundError(pt.error);if(!pt.url)throw new NotFoundError("No stream URL found in response");const ft=((at=pt.subtitles)==null?void 0:at.map((ht,mt)=>({id:mt,type:"vtt",url:ht.file,language:languageMap[ht.label.toLowerCase()]||"unknown"})))||[];return st.progress(90),{stream:[{type:"hls",id:"primary",playlist:pt.url,flags:[flags.CORS_ALLOWED],captions:ft,...(ut=pt.thumbnails)!=null&&ut.file?{thumbnailTrack:{type:"vtt",url:pt.thumbnails.file}}:{}}]}}}),xprimeStreamboxEmbed=makeEmbed({id:"xprime-streambox",name:"Streambox",rank:238,async scrape(st){var at;const ut=JSON.parse(st.url);let dt=`${showboxBaseUrl}?name=${ut.title}&year=${ut.releaseYear}&fallback_year=${ut.releaseYear}`;ut.type==="show"&&(dt+=`&season=${ut.season}&episode=${ut.episode}`);const ct=await st.fetcher(dt);if(!ct)throw new NotFoundError("No response received");if(ct.error)throw new NotFoundError(ct.error);if(!ct.streams)throw new NotFoundError("No streams found in response");const pt=((at=ct.subtitles)==null?void 0:at.map((ht,mt)=>({id:mt,url:ht.file,language:languageMap[ht.label.toLowerCase()]||"unknown",type:"srt"})))||[],ft={};return Object.entries(ct.streams).forEach(([ht,mt])=>{const yt=ht.toLowerCase().replace("p","");ft[yt]={type:"mp4",url:mt}}),{stream:[{id:"primary",captions:pt,qualities:ft,type:"file",flags:[flags.CORS_ALLOWED]}]}}}),xprimeFoxEmbed=makeEmbed({id:"xprime-fox",name:"Fox",rank:237,async scrape(st){var at;const ut=JSON.parse(st.url),dt=new URLSearchParams({id:ut.tmdbId});ut.type==="show"&&(dt.append("season",ut.season.toString()),dt.append("episode",ut.episode.toString()));const ct=await st.fetcher(`${foxBaseUrl}?${dt.toString()}`);if(!ct)throw new NotFoundError("No response received");const pt=JSON.parse(ct);if(!pt.url)throw new NotFoundError("No stream URL found in response");const ft=((at=pt.subtitles)==null?void 0:at.map((ht,mt)=>{const yt=ht.label.split(" ")[0].toLowerCase();return{id:mt,type:"vtt",url:ht.file,language:languageMap[yt]||"unknown"}}))||[];return st.progress(90),{stream:[{type:"hls",id:"primary",playlist:pt.url,flags:[flags.CORS_ALLOWED],captions:ft}]}}}),xprimePrimenetEmbed=makeEmbed({id:"xprime-primenet",name:"Primenet",rank:236,async scrape(st){const at=JSON.parse(st.url);let ut=`${primenetBaseUrl}?id=${at.tmdbId}`;at.type==="show"&&(ut+=`&season=${at.season}&episode=${at.episode}`);const dt=await st.fetcher(ut);if(!dt)throw new NotFoundError("No response received");if(dt.error)throw new NotFoundError(dt.error);if(!dt.url)throw new NotFoundError("No stream URL found in response");return st.progress(90),{stream:[{type:"hls",id:"primary",playlist:dt.url,flags:[flags.CORS_ALLOWED],captions:[]}]}}}),xprimeKrakenEmbed=makeEmbed({id:"xprime-kraken",name:"Kraken",rank:235,async scrape(st){var at;const ut=JSON.parse(st.url);let dt=`${krakenBaseUrl}?id=${ut.tmdbId}&name=${encodeURIComponent(ut.title)}`;ut.type==="show"&&(dt+=`&season=${ut.season}&episode=${ut.episode}&eid=${ut.episodeId||""}`);const ct=await st.fetcher(dt);if(!ct)throw new NotFoundError("No response received");if(ct.error)throw new NotFoundError(ct.error);if(!ct.url)throw new NotFoundError("No stream URL found in response");const pt=((at=ct.subtitles)==null?void 0:at.map((ft,ht)=>({id:ht,type:"vtt",url:ft.file,language:languageMap[ft.label.toLowerCase()]||"unknown"})))||[];return st.progress(90),{stream:[{type:"hls",id:"primary",playlist:ct.url,flags:[flags.CORS_ALLOWED],captions:pt}]}}}),xprimePhoenixEmbed=makeEmbed({id:"xprime-phoenix",name:"Phoenix",rank:234,async scrape(st){const at=JSON.parse(st.url),ut=new URLSearchParams;ut.append("id",at.tmdbId),ut.append("imdb",at.imdbId),at.type==="show"&&(ut.append("season",at.season.toString()),ut.append("episode",at.episode.toString()));const dt=`${phoenixBaseUrl}?${ut.toString()}`;st.progress(50);const ct=await st.fetcher(dt);if(!ct)throw new NotFoundError("No response received");if(ct.error)throw new NotFoundError(ct.error);if(!ct.url)throw new NotFoundError("No stream URL found in response");st.progress(90);const pt=ct.subtitles?ct.subtitles.map((ft,ht)=>{const mt=ft.label.split(" ")[0],yt=languageMap[mt]||mt.toLowerCase().substring(0,2);return{id:ht,language:yt,url:ft.file,label:ft.label,type:"vtt"}}):[];return{stream:[{type:"hls",id:"primary",playlist:ct.url,flags:[flags.CORS_ALLOWED],captions:pt}]}}}),xprimeHarbourEmbed=makeEmbed({id:"xprime-harbour",name:"Harbour",disabled:!0,rank:233,async scrape(st){var at;const ut=JSON.parse(st.url),dt=new URLSearchParams({name:ut.title,year:ut.releaseYear.toString()});ut.type==="show"&&(dt.append("season",ut.season.toString()),dt.append("episode",ut.episode.toString()));const ct=await st.fetcher(`${harbourBaseUrl}?${dt.toString()}`);if(!ct)throw new NotFoundError("No response received");const pt=await JSON.parse(ct);if(!pt.url)throw new NotFoundError("No stream URL found in response");const ft=((at=pt.subtitles)==null?void 0:at.map((ht,mt)=>({id:mt,type:"vtt",url:ht.file,language:languageMap[ht.label.toLowerCase()]||"unknown"})))||[];return st.progress(90),{stream:[{type:"hls",id:"primary",playlist:pt.url,flags:[flags.CORS_ALLOWED],captions:ft}]}}}),xprimeRageEmbed=makeEmbed({id:"xprime-rage",name:"Rage (4K)",rank:232,async scrape(st){const at=JSON.parse(st.url);let ut=`${rageBaseUrl}?imdb=${at.imdbId}`;at.type==="show"&&(ut+=`&season=${at.season}&episode=${at.episode}`);const dt=await st.fetcher(ut);if(!dt)throw new NotFoundError("No response received");if(dt.error)throw new NotFoundError(dt.error);if(!dt.url)throw new NotFoundError("No stream URL found in response");const ct={};dt.quality==="4K"?ct["4K"]=dt.url:dt.quality?ct[`${dt.quality}P`]=dt.url:ct.ORG=dt.url;const pt=Object.entries(ct).reduce((ft,[ht,mt])=>{let yt;return ht==="ORG"?(mt.split("?")[0].toLowerCase().endsWith(".mp4")&&(ft.unknown=mt),ft):(ht==="4K"?yt=2160:yt=parseInt(ht.replace("P",""),10),Number.isNaN(yt)||ft[yt]||(ft[yt]=mt),ft)},{});return st.progress(90),{stream:[{id:"primary",captions:[],qualities:{...pt[2160]&&{"4k":{type:"mp4",url:pt[2160]}},...pt[1080]&&{1080:{type:"mp4",url:pt[1080]}},...pt[720]&&{720:{type:"mp4",url:pt[720]}},...pt[480]&&{480:{type:"mp4",url:pt[480]}},...pt[360]&&{360:{type:"mp4",url:pt[360]}},...pt.unknown&&{unknown:{type:"mp4",url:pt.unknown}}},type:"file",flags:[flags.CORS_ALLOWED]}]}}}),xprimeFendiEmbed=makeEmbed({id:"xprime-fendi",name:"Fendi (Italian + English)",rank:231,async scrape(st){const at=JSON.parse(st.url);let ut=`${fendiBaseUrl}?id=${at.tmdbId}`;at.type==="show"&&(ut+=`&season=${at.season}&episode=${at.episode}`);const dt=await st.fetcher(ut);if(!dt)throw new NotFoundError("No response received");if(dt.error)throw new NotFoundError(dt.error);if(!dt.url)throw new NotFoundError("No stream URL found in response");return st.progress(90),{stream:[{type:"hls",id:"primary",playlist:dt.url,flags:[flags.CORS_ALLOWED],captions:[]}]}}}),xprimeMarantEmbed=makeEmbed({id:"xprime-marant",name:"Marant (French + English)",rank:230,async scrape(st){const at=JSON.parse(st.url);let ut=`${marantBaseUrl}?id=${at.tmdbId}`;at.type==="show"&&(ut+=`&season=${at.season}&episode=${at.episode}`);const dt=await st.fetcher(ut);if(!dt)throw new NotFoundError("No response received");if(dt.error)throw new NotFoundError(dt.error);if(!dt.url)throw new NotFoundError("No stream URL found in response");return st.progress(90),{stream:[{type:"hls",id:"primary",playlist:dt.url,flags:[flags.CORS_ALLOWED],captions:[]}]}}}),xprimeVolkswagenEmbed=makeEmbed({id:"xprime-volkswagen",name:"Volkswagen (German)",rank:229,async scrape(st){const at=JSON.parse(st.url);let ut=`${volkswagenBaseUrl}?name=${at.title}`;at.type==="show"?ut+=`&season=${at.season}&episode=${at.episode}`:ut+=`&year=${at.releaseYear}`;const dt=await st.fetcher(ut);if(!dt)throw new NotFoundError("No response received");if(dt.error)throw new NotFoundError(dt.error);if(!dt.streams)throw new NotFoundError("No streams found in response");const ct={};return Object.entries(dt.streams).forEach(([pt,ft])=>{const ht=pt.toLowerCase().replace("p","");ct[ht]={type:"mp4",url:ft}}),st.progress(90),{stream:[{id:"primary",type:"file",flags:[flags.CORS_ALLOWED],qualities:ct,captions:[]}]}}});async function comboScraper$m(st){const at={type:st.media.type,title:st.media.title,tmdbId:st.media.tmdbId.toString(),...st.media.type==="show"&&{season:st.media.season.number,episode:st.media.episode.number}};return{embeds:[{embedId:"oneserver-autoembed",url:JSON.stringify(at)},{embedId:"oneserver-vidsrcsu",url:JSON.stringify(at)},{embedId:"oneserver-primebox",url:JSON.stringify(at)},{embedId:"oneserver-foxstream",url:JSON.stringify(at)},{embedId:"oneserver-flixhq",url:JSON.stringify(at)},{embedId:"oneserver-goku",url:JSON.stringify(at)}]}}const oneServerScraper=makeSourcerer({id:"1server",name:"1Server 🤝",rank:119,disabled:!1,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$m,scrapeShow:comboScraper$m});async function getStream$2(st,at){var ut,dt;try{const ct="https://ftmoh345xme.com",pt={Origin:"https://friness-cherlormur-i-275.site",Referer:"https://google.com/",Dnt:"1"},ft=`${ct}/play/${at}`,ht=await st.proxiedFetcher(ft,{headers:{...pt},method:"GET"}),mt=load(ht)("script").last().html();if(!mt)throw new NotFoundError("Failed to extract script data");const yt=((ut=mt.match(/(\{[^;]+});/))==null?void 0:ut[1])||((dt=mt.match(/\((\{.*\})\)/))==null?void 0:dt[1]);if(!yt)throw new NotFoundError("Media not found");const bt=JSON.parse(yt);let Tt=bt.file;if(!Tt)throw new NotFoundError("File not found");Tt.startsWith("/")&&(Tt=ct+Tt);const St=bt.key,At={Origin:"https://friness-cherlormur-i-275.site",Referer:"https://google.com/",Dnt:"1","X-Csrf-Token":St};return{success:!0,data:{playlist:await st.proxiedFetcher(Tt,{headers:{...At},method:"GET"}),key:St}}}catch(ct){throw ct instanceof NotFoundError?ct:new NotFoundError("Failed to fetch media info")}}async function getStream$1(st,at,ut){const dt=`${at.slice(1)}.txt`;try{const ct="https://ftmoh345xme.com",pt={Origin:"https://friness-cherlormur-i-275.site",Referer:"https://google.com/",Dnt:"1","X-Csrf-Token":ut},ft=`${ct}/playlist/${dt}`;return{success:!0,data:{link:await st.proxiedFetcher(ft,{headers:{...pt},method:"GET"})}}}catch{throw new NotFoundError("Failed to fetch stream data")}}async function getMovie(st,at,ut="English"){var dt,ct;try{const pt=await getStream$2(st,at);if(pt!=null&&pt.success){const ft=(dt=pt==null?void 0:pt.data)==null?void 0:dt.playlist;if(!ft||!Array.isArray(ft))throw new NotFoundError("Playlist not found or invalid");let ht=ft.find(Tt=>(Tt==null?void 0:Tt.title)===ut);if(ht||(ht=ft==null?void 0:ft[0]),!ht)throw new NotFoundError("No file found");const mt=ft.map(Tt=>Tt==null?void 0:Tt.title),yt=(ct=pt==null?void 0:pt.data)==null?void 0:ct.key;st.progress(70);const bt=await getStream$1(st,ht==null?void 0:ht.file,yt);if(bt!=null&&bt.success)return{success:!0,data:bt==null?void 0:bt.data,availableLang:mt};throw new NotFoundError("No stream url found")}throw new NotFoundError("No media info found")}catch(pt){throw pt instanceof NotFoundError?pt:new NotFoundError("Failed to fetch movie data")}}async function getTV(st,at,ut,dt,ct){var pt,ft,ht;try{const mt=await getStream$2(st,at);if(!(mt!=null&&mt.success))throw new NotFoundError("No media info found");const yt=((pt=mt==null?void 0:mt.data)==null?void 0:pt.playlist).find(Dt=>(Dt==null?void 0:Dt.id)===ut.toString());if(!yt)throw new NotFoundError("No season found");const bt=yt==null?void 0:yt.folder.find(Dt=>(Dt==null?void 0:Dt.episode)===dt.toString());if(!bt)throw new NotFoundError("No episode found");let Tt=bt==null?void 0:bt.folder.find(Dt=>(Dt==null?void 0:Dt.title)===ct);if(Tt||(Tt=(ft=bt==null?void 0:bt.folder)==null?void 0:ft[0]),!Tt)throw new NotFoundError("No file found");const St=(bt==null?void 0:bt.folder.map(Dt=>Dt==null?void 0:Dt.title)).filter(Dt=>(Dt==null?void 0:Dt.length)>0),At=(ht=mt==null?void 0:mt.data)==null?void 0:ht.key;st.progress(70);const vt=await getStream$1(st,Tt==null?void 0:Tt.file,At);if(vt!=null&&vt.success)return{success:!0,data:vt==null?void 0:vt.data,availableLang:St};throw new NotFoundError("No stream url found")}catch(mt){throw mt instanceof NotFoundError?mt:new NotFoundError("Failed to fetch TV data")}}async function comboScraper$l(st){if(st.media.title,st.media.releaseYear,st.media.tmdbId,st.media.imdbId,st.media.type,st.media.type==="show"&&(st.media.season.number.toString(),st.media.episode.number.toString()),st.media.type==="movie"){st.progress(40);const at=await getMovie(st,st.media.imdbId);if(at!=null&&at.success)return st.progress(90),{embeds:[],stream:[{id:"primary",captions:[],playlist:at.data.link,type:"hls",flags:[flags.CORS_ALLOWED]}]};throw new NotFoundError("No providers available")}if(st.media.type==="show"){st.progress(40);const at=await getTV(st,st.media.imdbId,st.media.season.number,st.media.episode.number,"English");if(at!=null&&at.success)return st.progress(90),{embeds:[],stream:[{id:"primary",captions:[],playlist:at.data.link,type:"hls",flags:[flags.CORS_ALLOWED]}]};throw new NotFoundError("No providers available")}throw new NotFoundError("No providers available")}const EightStreamScraper=makeSourcerer({id:"8stream",name:"8stream",rank:111,flags:[],disabled:!0,scrapeMovie:comboScraper$l,scrapeShow:comboScraper$l}),baseUrl$a="https://www3.animeflv.net";async function searchAnimeFlv(st,at){const ut=`${baseUrl$a}/browse?q=${encodeURIComponent(at)}`,dt=await st.proxiedFetcher(ut),ct=load(dt),pt=ct("div.Container ul.ListAnimes li article");if(!pt.length)throw new NotFoundError("No se encontró el anime en AnimeFLV");let ft="";if(pt.each((ht,mt)=>{if(ct(mt).find("a h3").text().trim().toLowerCase()===at.trim().toLowerCase())return ft=ct(mt).find("div.Description a.Button").attr("href")||"",!1}),ft||(ft=pt.first().find("div.Description a.Button").attr("href")||""),!ft)throw new NotFoundError("No se encontró el anime en AnimeFLV");return ft.startsWith("http")?ft:`${baseUrl$a}${ft}`}async function getEpisodes(st,at){const ut=await st.proxiedFetcher(at),dt=load(ut);let ct=[];return dt("script").each((pt,ft)=>{var ht,mt,yt;const bt=dt(ft).html()||"";if(bt.includes("var anime_info =")){const Tt=(ht=bt.split("var anime_info = [")[1])==null?void 0:ht.split("];")[0],St=(mt=Tt==null?void 0:Tt.split(",")[2])==null?void 0:mt.replace(/"/g,"").trim(),At=(yt=bt.split("var episodes = [")[1])==null?void 0:yt.split("];")[0];St&&At?ct=At.split("],[").map(vt=>{const Dt=vt.replace("[","").replace("]","").split(",")[0];return{number:parseInt(Dt,10),url:`${baseUrl$a}/ver/${St}-${Dt}`}}):console.log("[AnimeFLV] No se encontró animeUri o lista de episodios en el script")}}),ct.length===0&&console.log("[AnimeFLV] No se encontraron episodios"),ct}async function getEmbeds$1(ctx,episodeUrl){const html=await ctx.proxiedFetcher(episodeUrl),$=load(html),script=$('script:contains("var videos =")').html();if(!script)return{};const match=script.match(/var videos = (\{[\s\S]*?\});/);if(!match)return{};let videos={};try{videos=eval(`(${match[1]})`)}catch{return{}}let streamwishJapanese;if(videos.SUB){const st=videos.SUB.find(at=>{var ut;return((ut=at.title)==null?void 0:ut.toLowerCase())==="sw"});st&&(st.url||st.code)&&(streamwishJapanese=st.url||st.code,streamwishJapanese&&streamwishJapanese.startsWith("/e/")&&(streamwishJapanese=`https://streamwish.to${streamwishJapanese}`))}let streamtapeLatino;if(videos.LAT){const st=videos.LAT.find(at=>{var ut,dt;return((ut=at.title)==null?void 0:ut.toLowerCase())==="stape"||((dt=at.title)==null?void 0:dt.toLowerCase())==="streamtape"});st&&(st.url||st.code)&&(streamtapeLatino=st.url||st.code,streamtapeLatino&&streamtapeLatino.startsWith("/e/")&&(streamtapeLatino=`https://streamtape.com${streamtapeLatino}`))}return{"streamwish-japanese":streamwishJapanese,"streamtape-latino":streamtapeLatino}}async function comboScraper$k(st){var at;const ut=st.media.title;if(!ut)throw new NotFoundError("Falta el título");console.log(`[AnimeFLV] Iniciando scraping para: ${ut}`);const dt=await searchAnimeFlv(st,ut);let ct=dt;if(st.media.type==="show"){const ht=(at=st.media.episode)==null?void 0:at.number;if(!ht)throw new NotFoundError("Faltan datos de episodio");const mt=(await getEpisodes(st,dt)).find(yt=>yt.number===ht);if(!mt)throw new NotFoundError(`No se encontró el episodio ${ht}`);ct=mt.url}else if(st.media.type==="movie"){const ht=await st.proxiedFetcher(dt),mt=load(ht);let yt=null;if(mt("script").each((bt,Tt)=>{var St,At;const vt=mt(Tt).html()||"";if(vt.includes("var anime_info =")){const Dt=(St=vt.split("var anime_info = [")[1])==null?void 0:St.split("];")[0];yt=((At=Dt==null?void 0:Dt.split(",")[2])==null?void 0:At.replace(/"/g,"").trim())||null}}),!yt)throw new NotFoundError("No se pudo obtener el animeUri para la película");ct=`${baseUrl$a}/ver/${yt}-1`}const pt=await getEmbeds$1(st,ct),ft=Object.entries(pt).filter(([,ht])=>typeof ht=="string"&&!!ht).map(([ht,mt])=>({embedId:ht,url:mt}));if(ft.length===0)throw new NotFoundError("No se encontraron streams válidos");return{embeds:ft}}const animeflvScraper=makeSourcerer({id:"animeflv",name:"AnimeFLV",rank:90,disabled:!1,flags:[flags.CORS_ALLOWED],scrapeShow:comboScraper$k,scrapeMovie:comboScraper$k}),getUserToken$2=()=>{var st;try{if(typeof window>"u")return null;const at=window.localStorage.getItem("__MW::preferences");if(!at)return null;const ut=JSON.parse(at);return((st=ut==null?void 0:ut.state)==null?void 0:st.febboxKey)||null}catch(at){return console.warn("Unable to access localStorage or parse auth data:",at),null}};async function comboScraper$j(st){const at={type:st.media.type,imdbId:st.media.imdbId,tmdbId:st.media.tmdbId,...st.media.type==="show"&&{season:st.media.season.number,episode:st.media.episode.number}},ut=getUserToken$2(),dt=[];return ut&&dt.push({embedId:"cia-api-embed",url:`${JSON.stringify({...at,token:ut})}`}),{embeds:dt}}const ciaapiScraper=makeSourcerer({id:"cia-api",name:"CIA API 🔥",rank:251,disabled:!getUserToken$2(),flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$j,scrapeShow:comboScraper$j}),CINEMAOS_SERVERS=["shadow","asiacloud","ophim"];async function comboScraper$i(st){const at=[],ut={type:st.media.type,tmdbId:st.media.tmdbId};st.media.type==="show"&&(ut.season=st.media.season.number,ut.episode=st.media.episode.number);for(const dt of CINEMAOS_SERVERS)at.push({embedId:`cinemaos-${dt}`,url:JSON.stringify({...ut,service:dt})});return st.progress(50),{embeds:at}}const cinemaosScraper=makeSourcerer({id:"cinemaos",name:"CinemaOS",rank:149,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$i,scrapeShow:comboScraper$i}),baseUrl$9="https://api.coitus.ca";async function comboScraper$h(st){const at=st.media.type==="movie"?`${baseUrl$9}/movie/${st.media.tmdbId}`:`${baseUrl$9}/tv/${st.media.tmdbId}/${st.media.season.number}/${st.media.episode.number}`,ut=await st.proxiedFetcher(at);if(!ut.videoSource)throw new NotFoundError("No watchable item found");let dt=ut.videoSource;if(dt.includes("orbitproxy"))try{const ct=dt.split(/orbitproxy\.[^/]+\//);if(ct.length>=2){const pt=ct[1].split(".m3u8")[0];try{const ft=Buffer.from(pt,"base64").toString("utf-8"),ht=JSON.parse(ft),mt=ht.u,yt={referer:ht.r||""};dt=createM3U8ProxyUrl(mt,yt)}catch(ft){console.error("Error decoding/parsing orbitproxy data:",ft)}}}catch(ct){console.error("Error processing orbitproxy URL:",ct)}return console.log(ut),st.progress(90),{embeds:[],stream:[{id:"primary",captions:[],playlist:dt,type:"hls",flags:[flags.CORS_ALLOWED]}]}}const coitusScraper=makeSourcerer({id:"coitus",name:"Autoembed+",rank:91,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$h,scrapeShow:comboScraper$h});async function consumetScraper(st){var at,ut;const dt=st.media.title,ct=`https://api.1anime.app/anime/zoro/${encodeURIComponent(dt)}?page=1`,pt=await st.fetcher(ct);if(!((at=pt==null?void 0:pt.results)!=null&&at.length))throw new Error("No results found");const ft=pt.results.find(Tt=>Tt.title.toLowerCase()===st.media.title.toLowerCase())||pt.results[0],ht=`https://api.1anime.app/anime/zoro/info?id=${ft.id}`,mt=await st.fetcher(ht);if(!((ut=mt==null?void 0:mt.episodes)!=null&&ut.length))throw new Error("No episodes found");const yt=mt.episodes.find(Tt=>Tt.number===st.media.episode.number);if(!yt)throw new Error("Episode not found");const bt={episodeId:`${ft.id}$${st.media.season.number}$${yt.id}$both`};return{embeds:[{embedId:"consumet-vidcloud",url:JSON.stringify({...bt,server:"vidcloud"})},{embedId:"consumet-streamsb",url:JSON.stringify({...bt,server:"streamsb"})},{embedId:"consumet-vidstreaming",url:JSON.stringify({...bt,server:"vidstreaming"})},{embedId:"consumet-streamtape",url:JSON.stringify({...bt,server:"streamtape"})}]}}const ConsumetScraper=makeSourcerer({id:"consumet",name:"Consumet (Anime) 🔥",rank:5,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeShow:consumetScraper}),baseUrl$8="https://www.cuevana3.eu";function normalizeTitle(st){return st.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/[^a-z0-9\s-]/gi,"").replace(/\s+/g,"-").replace(/-+/g,"-")}async function getStreamUrl(st,at){try{const ut=(await st.proxiedFetcher(at)).match(/var url = '([^']+)'/);if(ut)return ut[1]}catch{}return null}function validateStream(st){return st.startsWith("https://")&&(st.includes("streamwish")||st.includes("filemoon")||st.includes("vidhide"))}async function extractVideos(st,at){const ut=[];for(const[dt,ct]of Object.entries(at))if(ct)for(const pt of ct){if(!pt.result)continue;const ft=await getStreamUrl(st,pt.result);if(!ft||!validateStream(ft))continue;let ht="";if(ft.includes("filemoon"))ht="filemoon";else if(ft.includes("streamwish"))dt==="latino"?ht="streamwish-latino":dt==="spanish"?ht="streamwish-spanish":dt==="english"?ht="streamwish-english":ht="streamwish-latino";else if(ft.includes("vidhide"))ht="vidhide";else if(ft.includes("voe"))ht="voe";else continue;ut.push({embedId:ht,url:ft})}return ut}async function fetchTmdbTitleInSpanish(st,at,ut){const dt=ut==="movie"?`https://api.themoviedb.org/3/movie/${st}?api_key=${at}&language=es-ES`:`https://api.themoviedb.org/3/tv/${st}?api_key=${at}&language=es-ES`,ct=await fetch(dt);if(!ct.ok)throw new Error(`Error fetching TMDB data: ${ct.statusText}`);const pt=await ct.json();return ut==="movie"?pt.title:pt.name}async function fetchTitleSubstitutes(){try{const st=await fetch("https://raw.githubusercontent.com/moonpic/fixed-titles/refs/heads/main/main.json");if(!st.ok)throw new Error("Failed to fetch fallback titles");return await st.json()}catch{return{}}}async function comboScraper$g(st){var at,ut,dt,ct;const pt=st.media.type,ft=st.media.tmdbId,ht="a500049f3e06109fe3e8289b06cf5685";if(!ft)throw new NotFoundError("TMDB ID is required to fetch the title in Spanish");const mt=await fetchTmdbTitleInSpanish(Number(ft),ht,pt);let yt=normalizeTitle(mt),bt=pt==="movie"?`${baseUrl$8}/ver-pelicula/${yt}`:`${baseUrl$8}/episodio/${yt}-temporada-${(at=st.media.season)==null?void 0:at.number}-episodio-${(ut=st.media.episode)==null?void 0:ut.number}`;st.progress(60);let Tt=await st.proxiedFetcher(bt),St=load(Tt),At=St("script").toArray().find(Dt=>{var Et;return(((Et=Dt.children[0])==null?void 0:Et.data)||"").includes('{"props":{"pageProps":')}),vt=[];if(At){let Dt;try{const Et=At.children[0].data,_t=Et.indexOf('{"props":{"pageProps":');if(_t===-1)throw new Error("No valid JSON start found");const xt=Et.slice(_t);Dt=JSON.parse(xt)}catch(Et){throw new NotFoundError(`Failed to parse JSON: ${Et.message}`)}if(pt==="movie"){const Et=Dt.props.pageProps.thisMovie;Et!=null&&Et.videos&&(vt=await extractVideos(st,Et.videos)??[])}else{const Et=Dt.props.pageProps.episode;Et!=null&&Et.videos&&(vt=await extractVideos(st,Et.videos)??[])}}if(vt.length===0){const Dt=(await fetchTitleSubstitutes())[ft.toString()];if(!Dt)throw new NotFoundError("No embed data found and no fallback title available");if(yt=normalizeTitle(Dt),bt=pt==="movie"?`${baseUrl$8}/ver-pelicula/${yt}`:`${baseUrl$8}/episodio/${yt}-temporada-${(dt=st.media.season)==null?void 0:dt.number}-episodio-${(ct=st.media.episode)==null?void 0:ct.number}`,Tt=await st.proxiedFetcher(bt),St=load(Tt),At=St("script").toArray().find(Et=>{var _t;return(((_t=Et.children[0])==null?void 0:_t.data)||"").includes('{"props":{"pageProps":')}),At){let Et;try{const _t=At.children[0].data,xt=_t.indexOf('{"props":{"pageProps":');if(xt===-1)throw new Error("No valid JSON start found");const Ct=_t.slice(xt);Et=JSON.parse(Ct)}catch(_t){throw new NotFoundError(`Failed to parse JSON: ${_t.message}`)}if(pt==="movie"){const _t=Et.props.pageProps.thisMovie;_t!=null&&_t.videos&&(vt=await extractVideos(st,_t.videos)??[])}else{const _t=Et.props.pageProps.episode;_t!=null&&_t.videos&&(vt=await extractVideos(st,_t.videos)??[])}}}if(vt.length===0)throw new NotFoundError("No valid streams found");return{embeds:vt}}const cuevana3Scraper=makeSourcerer({id:"cuevana3",name:"Cuevana3",rank:80,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$g,scrapeShow:comboScraper$g});async function stringAtob(st){const at="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",ut=st.replace(/=+$/,"");let dt="";if(ut.length%4===1)throw new Error("The string to be decoded is not correctly encoded.");for(let ct=0,pt=0,ft=0;ft>(-2*ct&6))))}return dt}async function comboScraper$f(st){const at=`https://embed.su/embed/${st.media.type==="movie"?`movie/${st.media.tmdbId}`:`tv/${st.media.tmdbId}/${st.media.season.number}/${st.media.episode.number}`}`,ut=(await st.proxiedFetcher(at,{headers:{Referer:"https://embed.su/","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}})).match(/window\.vConfig\s*=\s*JSON\.parse\(atob\(`([^`]+)/i),dt=ut==null?void 0:ut[1];if(!dt)throw new NotFoundError("No encoded config found");const ct=JSON.parse(await stringAtob(dt));if(!(ct!=null&&ct.hash))throw new NotFoundError("No stream hash found");const pt=(await stringAtob(ct.hash)).split(".").map(mt=>mt.split("").reverse().join("")),ft=JSON.parse(await stringAtob(pt.join("").split("").reverse().join("")));if(!(ft!=null&&ft.length))throw new NotFoundError("No servers found");st.progress(50);const ht=ft.map(mt=>({embedId:"viper",url:`https://embed.su/api/e/${mt.hash}`}));return st.progress(90),{embeds:ht}}const embedsuScraper=makeSourcerer({id:"embedsu",name:"embed.su",rank:165,disabled:!0,flags:[],scrapeMovie:comboScraper$f,scrapeShow:comboScraper$f}),getUserToken$1=()=>{var st;try{if(typeof window>"u")return null;const at=window.localStorage.getItem("__MW::preferences");if(!at)return null;const ut=JSON.parse(at);return((st=ut==null?void 0:ut.state)==null?void 0:st.febboxKey)||null}catch(at){return console.warn("Unable to access localStorage or parse auth data:",at),null}};async function comboScraper$e(st){const at={type:st.media.type,imdbId:st.media.imdbId,tmdbId:st.media.tmdbId,...st.media.type==="show"&&{season:st.media.season.number,episode:st.media.episode.number}},ut=getUserToken$1(),dt=[];return ut&&dt.push({embedId:"fedapi-private",url:`${JSON.stringify({...at,token:ut})}`}),ut||dt.push({embedId:"feddb",url:`${JSON.stringify(at)}`}),{embeds:dt}}const FedAPIScraper=makeSourcerer({id:"fedapi",name:"FED API (4K) 🔥",rank:300,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$e,scrapeShow:comboScraper$e}),apiUrl="https://flixer.andresdev.org";async function comboScraper$d(st){const at=st.media.type==="show"?"tv":"movie",ut=st.media.tmdbId;let dt=`${apiUrl}/sources?type=${at}&id=${ut}`;st.media.type==="show"&&(dt+=`&season=${st.media.season.number}&episode=${st.media.episode.number}`);const ct=await st.proxiedFetcher(dt);if(!ct)throw new NotFoundError("Failed to fetch sources");if(!ct.sources||!Array.isArray(ct.sources)||ct.sources.length===0)throw new NotFoundError("No sources found");st.progress(50);const pt=ct.sources.map(ft=>({embedId:`flixer-${ft.server}`,url:ft.url}));return st.progress(90),{embeds:pt}}const flixerScraper=makeSourcerer({id:"flixer",name:"Flixer 🔥",rank:155,disabled:!1,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$d,scrapeShow:comboScraper$d});function generateRandomFavs(){const st=()=>Math.floor(Math.random()*16).toString(16),at=ut=>Array.from({length:ut},st).join("");return`${at(8)}-${at(4)}-${at(4)}-${at(4)}-${at(12)}`}function parseSubtitleLinks(st){if(!st||typeof st=="boolean")return[];const at=st.split(","),ut=[];return at.forEach(dt=>{const ct=dt.match(/\[([^\]]+)\](https?:\/\/\S+?)(?=,\[|$)/);if(ct){const pt=getCaptionTypeFromUrl(ct[2]),ft=labelToLanguageCode(ct[1]);if(!pt||!ft)return;ut.push({id:ct[2],language:ft,hasCorsRestrictions:!1,type:pt,url:ct[2]})}}),ut}function parseVideoLinks(st){if(!st)throw new NotFoundError("No video links found");try{const at={};st.split(",").forEach(dt=>{const ct=dt.match(/\[([^\]]+)\](https?:\/\/[^\s,]+)/);if(ct){const[pt,ft,ht]=ct;if(ht==="null")return;const mt=ft.replace(/<[^>]+>/g,"").toLowerCase().replace("p","").trim();at[mt]={type:"mp4",url:ht.trim()}}});const ut={};return Object.entries(at).forEach(([dt,ct])=>{const pt=getValidQualityFromString(dt);ut[pt]=ct}),ut}catch(at){throw console.error("Error parsing video links:",at),new NotFoundError("Failed to parse video links")}}const rezkaBase="https://hdrezka.ag/",baseHeaders={"X-Hdrezka-Android-App":"1","X-Hdrezka-Android-App-Version":"2.2.0","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","Accept-Language":"ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7","CF-IPCountry":"RU"};async function searchAndFindMediaId(st){const at=await st.proxiedFetcher("/engine/ajax/search.php",{baseUrl:rezkaBase,headers:baseHeaders,query:{q:st.media.title}}),ut=load(at),dt=ut("a").map((ct,pt)=>{var ft;const ht=ut(pt),mt=ht.attr("href"),yt=ht.find("span.enty").text(),bt=yt.match(/\((\d{4})\)/)||(mt==null?void 0:mt.match(/-(\d{4})(?:-|\.html)/))||yt.match(/(\d{4})/),Tt=bt?bt[1]:null,St=(ft=mt==null?void 0:mt.match(/\/(\d+)-[^/]+\.html$/))==null?void 0:ft[1];return St?{id:St,year:Tt?parseInt(Tt,10):st.media.releaseYear,type:st.media.type,url:mt||""}:null}).get().filter(Boolean);return dt.sort((ct,pt)=>{const ft=Math.abs(ct.year-st.media.releaseYear),ht=Math.abs(pt.year-st.media.releaseYear);return ft-ht}),dt[0]||null}async function getStream(st,at,ut){const dt=new URLSearchParams;dt.append("id",st),dt.append("translator_id",at),ut.media.type==="show"&&(dt.append("season",ut.media.season.number.toString()),dt.append("episode",ut.media.episode.number.toString())),dt.append("favs",generateRandomFavs()),dt.append("action",ut.media.type==="show"?"get_stream":"get_movie"),dt.append("t",Date.now().toString());const ct=await ut.proxiedFetcher("/ajax/get_cdn_series/",{baseUrl:rezkaBase,method:"POST",body:dt,headers:{...baseHeaders,"Content-Type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest",Referer:`${rezkaBase}films/action/${st}-novokain-2025-latest.html`}});try{const pt=JSON.parse(ct);if(!pt.url&&pt.success)throw new NotFoundError("Movie found but no stream available (might be premium or not yet released)");if(!pt.url)throw new NotFoundError("No stream URL found in response");return pt}catch(pt){throw console.error("Error parsing stream response:",pt),new NotFoundError("Failed to parse stream response")}}async function getTranslatorId(st,at,ut){const dt=await ut.proxiedFetcher(st,{headers:baseHeaders});if(dt.includes('data-translator_id="238"'))return"238";const ct=ut.media.type==="movie"?"initCDNMoviesEvents":"initCDNSeriesEvents",pt=new RegExp(`sof\\.tv\\.${ct}\\(${at}, ([^,]+)`,"i"),ft=dt.match(pt);return ft?ft[1]:null}const universalScraper$4=async st=>{const at=await searchAndFindMediaId(st);if(!at||!at.id)throw new NotFoundError("No result found");const ut=await getTranslatorId(at.url,at.id,st);if(!ut)throw new NotFoundError("No translator id found");const{url:dt,subtitle:ct}=await getStream(at.id,ut,st),pt=parseVideoLinks(dt),ft=parseSubtitleLinks(ct);return st.progress(90),{embeds:[],stream:[{id:"primary",type:"file",flags:[flags.CORS_ALLOWED,flags.IP_LOCKED],captions:ft,qualities:pt}]}},hdRezkaScraper=makeSourcerer({id:"hdrezka",name:"HDRezka",rank:100,flags:[flags.CORS_ALLOWED,flags.IP_LOCKED],scrapeShow:universalScraper$4,scrapeMovie:universalScraper$4});async function convertPlaylistsToDataUrls(st,at,ut){const dt=await st(at,{headers:ut}),ct=hlsParser_minExports.parse(dt);if(ct.isMasterPlaylist){const pt=new URL(at).origin;await Promise.all(ct.variants.map(async ft=>{let ht=ft.uri;ht.startsWith("http")||(ht.startsWith("/")||(ht=`/${ht}`),ht=pt+ht);const mt=await st(ht,{headers:ut}),yt=hlsParser_minExports.parse(mt);ft.uri=`data:application/vnd.apple.mpegurl;base64,${btoa(hlsParser_minExports.stringify(yt))}`}))}return`data:application/vnd.apple.mpegurl;base64,${btoa(hlsParser_minExports.stringify(ct))}`}const VRF_SECRET_KEY$1=atob("c3VwZXJzZWNyZXRrZXk="),apiBase$1="https://reyna.bludclart.com/api/source/hollymoviehd";function generateVrf$1(st,at="",ut=""){const dt=`${st}:${at}:${ut}`;return CryptoJS.HmacSHA256(dt,VRF_SECRET_KEY$1).toString(CryptoJS.enc.Hex)}async function comboScraper$c(st){var at,ut;let dt=`${apiBase$1}/${st.media.tmdbId}`,ct="",pt="";st.media.type==="show"&&(ct=st.media.season.number.toString(),pt=st.media.episode.number.toString(),dt+=`/${ct}/${pt}`);const ft=generateVrf$1(st.media.tmdbId,ct,pt);dt+=`?vrf=${ft}`;const ht=await st.proxiedFetcher(dt),mt=(ut=(at=ht==null?void 0:ht.sources)==null?void 0:at[0])==null?void 0:ut.file;if(!mt)throw new NotFoundError("Sources not found.");return st.progress(50),st.progress(90),{embeds:[],stream:[{id:"primary",type:"hls",playlist:await convertPlaylistsToDataUrls(st.proxiedFetcher,mt),proxyDepth:2,flags:[flags.CORS_ALLOWED],captions:[]}]}}const hollymoviehdScraper=makeSourcerer({id:"hollymoviehd",name:"BludClart: HollyMovieHD 🤝",rank:175,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$c,scrapeShow:comboScraper$c}),baseUrl$7="https://iosmirror.cc",baseUrl2$1="https://vercel-sucks.up.railway.app/iosmirror.cc:443",universalScraper$3=async st=>{var at,ut,dt,ct,pt;const ft=decodeURIComponent(await st.fetcher("https://iosmirror-hash.pstream.org/"));if(!ft)throw new NotFoundError("No hash found");st.progress(10);const ht=await st.proxiedFetcher("/search.php",{baseUrl:baseUrl2$1,query:{s:st.media.title},headers:{cookie:makeCookieHeader({t_hash_t:ft,hd:"on"})}});if(ht.status!=="y"||!ht.searchResult)throw new NotFoundError(ht.error);async function mt(Dt){return st.proxiedFetcher("/post.php",{baseUrl:baseUrl2$1,query:{id:Dt},headers:{cookie:makeCookieHeader({t_hash_t:ft,hd:"on"})}})}st.progress(30);let yt,bt=(at=ht.searchResult.find(async Dt=>(yt=await mt(Dt.id),compareTitle(Dt.t,st.media.title)&&(Number(yt.year)===st.media.releaseYear||yt.type===(st.media.type==="movie"?"m":"t")))))==null?void 0:at.id;if(!bt)throw new NotFoundError("No watchable item found");if(st.media.type==="show"){yt=await mt(bt);const Dt=st.media,Et=(ut=yt==null?void 0:yt.season.find(wt=>Number(wt.s)===Dt.season.number))==null?void 0:ut.id;if(!Et)throw new NotFoundError("Season not available");const _t=await st.proxiedFetcher("/episodes.php",{baseUrl:baseUrl2$1,query:{s:Et,series:bt},headers:{cookie:makeCookieHeader({t_hash_t:ft,hd:"on"})}});let xt=[..._t.episodes],Ct=2;for(;_t.nextPageShow===1;){const wt=await st.proxiedFetcher("/episodes.php",{baseUrl:baseUrl2$1,query:{s:Et,series:bt,page:Ct.toString()},headers:{cookie:makeCookieHeader({t_hash_t:ft,hd:"on"})}});xt=[...xt,...wt.episodes],_t.nextPageShow=wt.nextPageShow,Ct++}const kt=(dt=xt.find(wt=>wt.ep===`E${Dt.episode.number}`&&wt.s===`S${Dt.season.number}`))==null?void 0:dt.id;if(!kt)throw new NotFoundError("Episode not available");bt=kt}const Tt=await st.proxiedFetcher("/playlist.php?",{baseUrl:baseUrl2$1,query:{id:bt},headers:{cookie:makeCookieHeader({t_hash_t:ft,hd:"on"})}});st.progress(50);let St=(ct=Tt[0].sources.find(Dt=>Dt.label==="Auto"))==null?void 0:ct.file;if(St||(St=(pt=Tt[0].sources.find(Dt=>Dt.label==="Full HD"))==null?void 0:pt.file),St||(console.log('"Full HD" or "Auto" file not found, falling back to first source'),St=Tt[0].sources[0].file),!St)throw new Error("Failed to fetch playlist");const At={referer:baseUrl$7,cookie:makeCookieHeader({hd:"on"})},vt=createM3U8ProxyUrl(`${baseUrl$7}${St}`,At);return st.progress(90),{embeds:[],stream:[{id:"primary",playlist:vt,type:"hls",flags:[flags.CORS_ALLOWED],captions:[]}]}},iosmirrorScraper=makeSourcerer({id:"iosmirror",name:"NetMirror",rank:182,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:universalScraper$3,scrapeShow:universalScraper$3}),baseUrl$6="https://iosmirror.cc",baseUrl2="https://vercel-sucks.up.railway.app/iosmirror.cc:443/pv",universalScraper$2=async st=>{var at,ut,dt,ct,pt;const ft=decodeURIComponent(await st.fetcher("https://iosmirror-hash.pstream.org/"));if(!ft)throw new NotFoundError("No hash found");st.progress(10);const ht=await st.proxiedFetcher("/search.php",{baseUrl:baseUrl2,query:{s:st.media.title},headers:{cookie:makeCookieHeader({t_hash_t:ft,hd:"on"})}});if(!ht.searchResult)throw new NotFoundError(ht.error);async function mt(vt){return st.proxiedFetcher("/post.php",{baseUrl:baseUrl2,query:{id:vt},headers:{cookie:makeCookieHeader({t_hash_t:ft,hd:"on"})}})}st.progress(30);let yt=(at=ht.searchResult.find(async vt=>{const Dt=await mt(vt.id);return compareTitle(vt.t,st.media.title)&&(Number(vt.y)===st.media.releaseYear||Dt.type===(st.media.type==="movie"?"m":"t"))}))==null?void 0:at.id;if(!yt)throw new NotFoundError("No watchable item found");if(st.media.type==="show"){const vt=await mt(yt),Dt=st.media,Et=(ut=vt==null?void 0:vt.season.find(wt=>Number(wt.s)===Dt.season.number))==null?void 0:ut.id;if(!Et)throw new NotFoundError("Season not available");const _t=await st.proxiedFetcher("/episodes.php",{baseUrl:baseUrl2,query:{s:Et,series:yt},headers:{cookie:makeCookieHeader({t_hash_t:ft,hd:"on"})}});let xt=[..._t.episodes],Ct=2;for(;_t.nextPageShow===1;){const wt=await st.proxiedFetcher("/episodes.php",{baseUrl:baseUrl2,query:{s:Et,series:yt,page:Ct.toString()},headers:{cookie:makeCookieHeader({t_hash_t:ft,hd:"on"})}});xt=[...xt,...wt.episodes],_t.nextPageShow=wt.nextPageShow,Ct++}const kt=(dt=xt.find(wt=>wt.ep===`E${Dt.episode.number}`&&wt.s===`S${Dt.season.number}`))==null?void 0:dt.id;if(!kt)throw new NotFoundError("Episode not available");yt=kt}const bt=await st.proxiedFetcher("/playlist.php?",{baseUrl:baseUrl2,query:{id:yt},headers:{cookie:makeCookieHeader({t_hash_t:ft,hd:"on"})}});st.progress(50);let Tt=(ct=bt[0].sources.find(vt=>vt.label==="Auto"))==null?void 0:ct.file;if(Tt||(Tt=(pt=bt[0].sources.find(vt=>vt.label==="Full HD"))==null?void 0:pt.file),Tt||(console.log('"Full HD" or "Auto" file not found, falling back to first source'),Tt=bt[0].sources[0].file),!Tt)throw new Error("Failed to fetch playlist");const St={referer:baseUrl$6,cookie:makeCookieHeader({hd:"on"})},At=createM3U8ProxyUrl(`${baseUrl$6}${Tt}`,St);return st.progress(90),{embeds:[],stream:[{id:"primary",playlist:At,type:"hls",flags:[flags.CORS_ALLOWED],captions:[]}]}},iosmirrorPVScraper=makeSourcerer({id:"iosmirrorpv",name:"PrimeMirror",rank:183,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:universalScraper$2,scrapeShow:universalScraper$2}),mamaApiBase="https://mama.up.railway.app/api/showbox",getUserToken=()=>{try{return typeof window<"u"?window.localStorage.getItem("febbox_ui_token"):null}catch(st){return console.warn("Unable to access localStorage:",st),null}};async function comboScraper$b(st){const at=getUserToken(),ut=st.media.type==="movie"?`${mamaApiBase}/movie/${st.media.tmdbId}?token=${at}`:`${mamaApiBase}/tv/${st.media.tmdbId}?season=${st.media.season.number}&episode=${st.media.episode.number}&token=${at}`,dt=await st.proxiedFetcher(ut);if(!dt)throw new NotFoundError("No response from API");const ct=await dt;if(!ct.success)throw new NotFoundError("No streams found");const pt=Array.isArray(ct.streams)?ct.streams:[ct.streams];if(pt.length===0||!pt[0].player_streams)throw new NotFoundError("No valid streams found");let ft=pt[0];for(const mt of pt)if(mt.quality.includes("4K")||mt.quality.includes("2160p")){ft=mt;break}const ht=ft.player_streams.reduce((mt,yt)=>{let bt;if(yt.quality==="4K"||yt.quality.includes("4K"))bt=2160;else{if(yt.quality==="ORG"||yt.quality.includes("ORG"))return mt;bt=parseInt(yt.quality.replace("P",""),10)}return Number.isNaN(bt)||mt[bt]||(mt[bt]=yt.file),mt},{});return{embeds:[],stream:[{id:"primary",captions:[],qualities:{...ht[2160]&&{"4k":{type:"mp4",url:ht[2160]}},...ht[1080]&&{1080:{type:"mp4",url:ht[1080]}},...ht[720]&&{720:{type:"mp4",url:ht[720]}},...ht[480]&&{480:{type:"mp4",url:ht[480]}},...ht[360]&&{360:{type:"mp4",url:ht[360]}}},type:"file",flags:[flags.CORS_ALLOWED]}]}}const nunflixScraper=makeSourcerer({id:"nunflix",name:"NFlix",rank:155,disabled:!getUserToken(),flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$b,scrapeShow:comboScraper$b}),VRF_SECRET_KEY=atob("c3VwZXJzZWNyZXRrZXk="),apiBase="https://reyna.bludclart.com/api/source/oneroom";function generateVrf(st,at="",ut=""){const dt=`${st}:${at}:${ut}`;return CryptoJS.HmacSHA256(dt,VRF_SECRET_KEY).toString(CryptoJS.enc.Hex)}async function comboScraper$a(st){let at=`${apiBase}/${st.media.tmdbId}`,ut="",dt="";st.media.type==="show"&&(ut=st.media.season.number.toString(),dt=st.media.episode.number.toString(),at+=`/${ut}/${dt}`);const ct=generateVrf(st.media.tmdbId,ut,dt);at+=`?vrf=${ct}`;const pt=await st.proxiedFetcher(at),ft=pt==null?void 0:pt.sources;if(!ft||ft.length===0)throw new NotFoundError("Sources not found.");st.progress(50);const ht={};for(const mt of ft){const yt=/([0-9]{3,4})p/.exec(mt.label),bt=yt?yt[1]:"unknown";ht[bt]={type:"mp4",url:mt.file}}return st.progress(90),{embeds:[],stream:[{id:"primary",type:"file",qualities:ht,flags:[flags.CORS_ALLOWED],captions:[]}]}}const oneroomScraper=makeSourcerer({id:"oneroom",name:"BludClart: OneRoom 🤝",rank:174,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$a,scrapeShow:comboScraper$a}),REALDEBRID_BASE_URL="https://api.real-debrid.com/rest/1.0";async function addMagnetToRealDebrid(st,at,ut){console.log("Adding magnet to RealDebrid:",`${st.substring(0,50)}...`);const dt=await ut.proxiedFetcher.full(`${REALDEBRID_BASE_URL}/torrents/addMagnet`,{method:"POST",headers:{Authorization:`Bearer ${at}`,"Content-Type":"application/x-www-form-urlencoded"},body:`magnet=${encodeURIComponent(st)}`});if(dt.statusCode!==201||!dt.body.id)throw new NotFoundError("Failed to add magnet to RealDebrid");return console.log("Magnet added successfully, torrent ID:",dt.body.id),dt.body.id}async function selectAllFiles(st,at,ut){console.log("Selecting all files for torrent:",st);const dt=await ut.proxiedFetcher.full(`${REALDEBRID_BASE_URL}/torrents/selectFiles/${st}`,{method:"POST",headers:{Authorization:`Bearer ${at}`,"Content-Type":"application/x-www-form-urlencoded"},body:"files=all"});if(dt.statusCode!==204&&dt.statusCode!==202)throw new NotFoundError("Failed to select all files for torrent");console.log("All files selected successfully for torrent:",st)}async function selectSpecificFile(st,at,ut,dt){console.log(`Selecting specific file (${at}) for torrent:`,st);const ct=await dt.proxiedFetcher.full(`${REALDEBRID_BASE_URL}/torrents/selectFiles/${st}`,{method:"POST",headers:{Authorization:`Bearer ${ut}`,"Content-Type":"application/x-www-form-urlencoded"},body:`files=${at}`});if(ct.statusCode!==204&&ct.statusCode!==202)throw new Error(`Unexpected status code: ${ct.statusCode}`);console.log(`File ${at} selected successfully for torrent:`,st)}async function getTorrentInfo(st,at,ut){const dt=await ut.proxiedFetcher.full(`${REALDEBRID_BASE_URL}/torrents/info/${st}`,{method:"GET",headers:{Authorization:`Bearer ${at}`}});if(dt.statusCode===401||dt.statusCode===403)throw new NotFoundError("Failed to get torrent info");return dt.body}async function unrestrictLink(st,at,ut){console.log("Unrestricting link:",`${st.substring(0,50)}...`);const dt=await ut.proxiedFetcher.full(`${REALDEBRID_BASE_URL}/unrestrict/link`,{method:"POST",headers:{Authorization:`Bearer ${at}`,"Content-Type":"application/x-www-form-urlencoded"},body:`link=${encodeURIComponent(st)}`});if(dt.statusCode===401||dt.statusCode===403||!dt.body)throw new NotFoundError("Failed to unrestrict link");return console.log("Link unrestricted successfully, got download URL"),dt.body}async function getUnrestrictedLink(st,at,ut){try{if(!st||!st.startsWith("magnet:?"))throw new NotFoundError(`Invalid magnet URL: ${st}`);const dt=await addMagnetToRealDebrid(st,at,ut);console.log("Torrent added to RealDebrid:",dt);let ct=await getTorrentInfo(dt,at,ut),pt=0;const ft=5;for(;pt{setTimeout(Tt,2e3)}),pt++,ct=await getTorrentInfo(dt,at,ut)}if(ct.status==="waiting_files_selection")if(ct.files&&ct.files.length>0){const Tt=ct.files.filter(St=>St.path.toLowerCase().endsWith(".mp4"));if(Tt.length>0){console.log(`Found ${Tt.length} MP4 files, attempting to match title`);const St=ut.media.title.toLowerCase(),At=St.split(" ")[0],vt=Tt.filter(_t=>{var xt;return(((xt=_t.path.split("/").pop())==null?void 0:xt.toLowerCase().replace(/\./g," "))||"").includes(St)});let Dt;if(vt.length>0)console.log(`Found ${vt.length} files exactly matching title "${ut.media.title}"`),Dt=vt.reduce((_t,xt)=>xt.bytes>_t.bytes?xt:_t);else{const _t=Tt.filter(xt=>xt.path.includes(At));_t.length>0?(console.log(`Found ${_t.length} files matching first word "${At}"`),Dt=_t.reduce((xt,Ct)=>Ct.bytes>xt.bytes?Ct:xt)):(console.log("No matching files found, selecting largest MP4"),Dt=Tt.reduce((xt,Ct)=>Ct.bytes>xt.bytes?Ct:xt))}const Et=Dt;await selectSpecificFile(dt,Et.id,at,ut),console.log("Selected specific file:",Et.id)}else await selectAllFiles(dt,at,ut),console.log("Selected all files")}else await selectAllFiles(dt,at,ut),console.log("Selected all files");else ct.status!=="downloaded"&&(await selectAllFiles(dt,at,ut),console.log("Selected all files"));let ht=0;const mt=30,yt=["downloaded","ready"],bt=["error","virus","dead","magnet_error","magnet_conversion"];for(console.log("Waiting for torrent to be processed...");ht0){let Tt=ct.links[0];if(ct.files){const St=ct.files.filter(At=>At.path.toLowerCase().endsWith(".mp4")&&At.selected===1);if(St.length>0){console.log(`Found ${St.length} MP4 files, selecting largest`);const At=St.reduce((Dt,Et)=>Et.bytes>Dt.bytes?Et:Dt),vt=ct.files.findIndex(Dt=>Dt.id===At.id);vt!==-1&&ct.links[vt]&&(Tt=ct.links[vt],console.log(`Selected largest MP4: ${At.path}, size: ${At.bytes} bytes`))}else console.log("No MP4 files found, using first available link")}return(await unrestrictLink(Tt,at,ut)).download}if(bt.includes(ct.status))throw new NotFoundError(`Torrent processing failed with status: ${ct.status}`);if(ct.status==="downloading"&&ct.progress===0&&ht>5&&ht%5===0)if(console.log("Torrent seems stuck at 0%, trying to re-select files..."),ct=await getTorrentInfo(dt,at,ut),ct.files&&ct.files.length>0){const Tt=ct.files.filter(St=>St.path.toLowerCase().endsWith(".mp4"));if(Tt.length>0){const St=Tt.reduce((At,vt)=>vt.bytes>At.bytes?vt:At);await selectSpecificFile(dt,St.id,at,ut)}else await selectAllFiles(dt,at,ut)}else await selectAllFiles(dt,at,ut);if(ct.progress===100&&ht>10&&(console.log("Torrent is at 100% but status is not completed. Checking for links anyway..."),ct.links&&ct.links.length>0))return(await unrestrictLink(ct.links[0],at,ut)).download;await new Promise(Tt=>{setTimeout(Tt,2e3)}),ht++}throw new NotFoundError(`Timeout waiting for torrent to be processed after ${mt*2} seconds`)}catch(dt){if(dt instanceof NotFoundError)throw dt;const ct=dt instanceof Error?dt.message:"Unknown error";throw new NotFoundError(`Error processing magnet link: ${ct}`)}}function isAcceptableQuality(st){const at=st.toLowerCase();return!["cam","camrip","hdcam","ts","telesync","hdts","dvdscr","screener","scr","r5","workprint"].some(ut=>at.includes(ut))}function extractQuality(st){const at=st.toLowerCase();return at.includes("2160p")||at.includes("4k")?"4K":at.includes("1080p")?"1080P":at.includes("720p")?"720P":at.includes("480p")?"480P":at.includes("360p")?"360P":"unknown"}function processTorrents(st){const at=st.filter(ct=>isAcceptableQuality(ct.name)).filter(ct=>{var pt,ft,ht;return((pt=ct.title)==null?void 0:pt.toLowerCase().includes("mp4"))||((ht=(ft=ct.behaviorHints)==null?void 0:ft.filename)==null?void 0:ht.toLowerCase().includes("mp4"))});if(at.length===0)throw new NotFoundError("No usable torrents found");const ut={};for(const ct of at){const pt=extractQuality(ct.name);ut[pt]||(ut[pt]=[]),ut[pt].push(ct)}const dt={};for(const[ct,pt]of Object.entries(ut))if(pt.length>0){const ft=pt[0];let ht=ft.url;!ht&&ft.infoHash&&(ht=`magnet:?xt=urn:btih:${ft.infoHash}&dn=${encodeURIComponent(ft.name)}`),ht&&(dt[ct]=ht)}console.log("processed qualities:",Object.keys(dt));for(const[ct,pt]of Object.entries(dt))console.log(`${ct}: ${pt.substring(0,30)}...`);return dt}async function getTorrents(st){var at;if(!st.media.imdbId)throw new NotFoundError("IMDB ID required");const ut=st.media.imdbId;let dt;if(st.media.type==="show"){const ct=st.media.season.number,pt=st.media.episode.number;dt=`series/${ut}:${ct}:${pt}.json`}else dt=`movie/${ut}.json`;try{const ct=`https://torrentio.strem.fun/providers=yts,eztv,rarbg,1337x,thepiratebay,kickasstorrents,torrentgalaxy,magnetdl/stream/${dt}`;console.log("Fetching torrents from:",ct);const pt=await st.fetcher.full(ct);if(pt.statusCode!==200)throw new NotFoundError(`Failed to fetch torrents: ${pt.statusCode} ${pt.body}`);if(console.log("Found torrents:",((at=pt.body.streams)==null?void 0:at.length)||0),!pt.body.streams||pt.body.streams.length===0)throw new NotFoundError("No streams found");return processTorrents(pt.body.streams)}catch(ct){if(ct instanceof NotFoundError)throw ct;const pt=ct instanceof Error?ct.message:"Unknown error";throw new NotFoundError(`Error fetching torrents: ${pt}`)}}const getRealDebridToken=()=>{var st;try{if(typeof window>"u")return null;const at=window.localStorage.getItem("__MW::preferences");if(!at)return null;const ut=JSON.parse(at);return((st=ut==null?void 0:ut.state)==null?void 0:st.realDebridKey)||null}catch(at){return console.error("Error getting RealDebrid token:",at),null}};async function comboScraper$9(st){const at=getRealDebridToken();if(!at)throw new NotFoundError("RealDebrid API token is required");if(!st.media.imdbId)throw new NotFoundError("IMDB ID required");const ut=await getTorrents(st);st.progress(20);const dt=2,ct=Object.keys(ut),pt=[];for(let ht=0;ht{const vt=ut[At];return getUnrestrictedLink(vt,at,st).then(Dt=>({quality:At,url:Dt})).catch(Dt=>(console.error(`Failed to process ${At} stream:`,Dt),null))});if(St.length>0){const At=await Promise.all(St);pt.push(...At)}}const ft=pt.filter(ht=>ht!==null).filter(ht=>ht.url.toLowerCase().endsWith(".mp4")).reduce((ht,{quality:mt,url:yt})=>{let bt;return mt==="4K"?bt=2160:bt=parseInt(mt.replace("P",""),10),Number.isNaN(bt)&&(bt="unknown"),ht[bt]=yt,ht},{});if(Object.keys(ft).length===0)throw new NotFoundError("No suitable streams found");return st.progress(100),{stream:[{id:"primary",captions:[],qualities:{...ft[2160]&&{"4k":{type:"mp4",url:ft[2160]}},...ft[1080]&&{1080:{type:"mp4",url:ft[1080]}},...ft[720]&&{720:{type:"mp4",url:ft[720]}},...ft[480]&&{480:{type:"mp4",url:ft[480]}},...ft[360]&&{360:{type:"mp4",url:ft[360]}},...ft.unknown&&{unknown:{type:"mp4",url:ft.unknown}}},type:"file",flags:[flags.CORS_ALLOWED]}],embeds:[]}}const realDebridScraper=makeSourcerer({id:"realdebrid",name:"RealDebrid (Beta)",rank:280,disabled:!getRealDebridToken(),flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$9,scrapeShow:comboScraper$9}),ridoMoviesBase="https://ridomovies.tv",ridoMoviesApiBase=`${ridoMoviesBase}/core/api`,universalScraper$1=async st=>{const at=(await st.proxiedFetcher("/search",{baseUrl:ridoMoviesApiBase,query:{q:st.media.title}})).data.items.map(ft=>{const ht=ft.title,mt=ft.contentable.releaseYear,yt=ft.fullSlug;return{name:ht,year:mt,fullSlug:yt}}).find(ft=>ft.name===st.media.title&&ft.year===st.media.releaseYear.toString());if(!(at!=null&&at.fullSlug))throw new NotFoundError("No watchable item found");st.progress(40);let ut=`/${at.fullSlug}/videos`;if(st.media.type==="show"){const ft=await st.proxiedFetcher(`/${at.fullSlug}`,{baseUrl:ridoMoviesBase}),ht=`season-${st.media.season.number}/episode-${st.media.episode.number}`,mt=new RegExp(`\\\\"id\\\\":\\\\"(\\d+)\\\\"(?=.*?\\\\\\"fullSlug\\\\\\":\\\\\\"[^"]*${ht}[^"]*\\\\\\")`,"g"),yt=[...ft.matchAll(mt)].map(bt=>bt[1]);if(yt.length===0)throw new NotFoundError("No watchable item found");ut=`/episodes/${yt.at(-1)}/videos`}const dt=await st.proxiedFetcher(ut,{baseUrl:ridoMoviesApiBase}),ct=load(dt.data[0].url)("iframe").attr("data-src");if(!ct)throw new NotFoundError("No watchable item found");st.progress(60);const pt=[];return ct.includes("closeload")&&pt.push({embedId:closeLoadScraper.id,url:ct}),ct.includes("ridoo")&&pt.push({embedId:ridooScraper.id,url:ct}),st.progress(90),{embeds:pt}},ridooMoviesScraper=makeSourcerer({id:"ridomovies",name:"RidoMovies",rank:210,flags:[],scrapeMovie:universalScraper$1}),baseUrl$5="https://pupp.slidemovies-dev.workers.dev";async function comboScraper$8(st){const at=st.media.type==="movie"?`${baseUrl$5}/movie/${st.media.tmdbId}`:`${baseUrl$5}/tv/${st.media.tmdbId}/${st.media.season.number}/-${st.media.episode.number}`,ut=await st.proxiedFetcher(at),dt=load(ut);st.progress(50);const ct=dt("media-player").attr("src");if(!ct)throw new NotFoundError("Stream URL not found");const pt=new URL(ct).searchParams.get("url")||"",ft=decodeURIComponent(pt),ht={ng:"en",re:"fr",pa:"es"},mt=dt("media-provider track").map((yt,bt)=>{const Tt=dt(bt).attr("src")||"",St=dt(bt).attr("lang")||"unknown",At=ht[St]||St;return{type:Tt.endsWith(".vtt")?"vtt":"srt",id:Tt,url:Tt,language:At,hasCorsRestrictions:!1}}).get();return st.progress(90),{embeds:[],stream:[{id:"primary",type:"hls",flags:[],playlist:ft,captions:mt}]}}const slidemoviesScraper=makeSourcerer({id:"slidemovies",name:"SlideMovies",rank:135,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$8,scrapeShow:comboScraper$8}),baseUrl$4="https://soaper.cc",universalScraper=async st=>{var at;const ut=await st.proxiedFetcher("/search.html",{baseUrl:baseUrl$4,query:{keyword:st.media.title}}),dt=load(ut),ct=[];dt(".thumbnail").each((Dt,Et)=>{const _t=dt(Et).find("h5").find("a").first().text().trim(),xt=dt(Et).find(".img-tip").first().text().trim(),Ct=dt(Et).find("h5").find("a").first().attr("href");!_t||!Ct||ct.push({title:_t,year:xt?parseInt(xt,10):void 0,url:Ct})});let pt=(at=ct.find(Dt=>Dt&&compareMedia(st.media,Dt.title,Dt.year)))==null?void 0:at.url;if(!pt)throw new NotFoundError("Content not found");if(st.media.type==="show"){const Dt=st.media.season.number,Et=st.media.episode.number,_t=await st.proxiedFetcher(pt,{baseUrl:baseUrl$4}),xt=load(_t),Ct=xt("h4").filter((kt,wt)=>xt(wt).text().trim().split(":")[0].trim()===`Season${Dt}`).parent().find("a").toArray();pt=xt(Ct.find(kt=>parseInt(xt(kt).text().split(".")[0],10)===Et)).attr("href")}if(!pt)throw new NotFoundError("Content not found");const ft=await st.proxiedFetcher(pt,{baseUrl:baseUrl$4}),ht=load(ft)("#hId").attr("value");if(!ht)throw new NotFoundError("Content not found");st.progress(50);const mt=new URLSearchParams;mt.append("pass",ht),mt.append("e2","0"),mt.append("server","0");const yt=st.media.type==="show"?"/home/index/getEInfoAjax":"/home/index/getMInfoAjax",bt=await st.proxiedFetcher(yt,{baseUrl:baseUrl$4,method:"POST",body:mt,headers:{referer:`${baseUrl$4}${pt}`,"User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1","Viewport-Width":"375"}}),Tt=JSON.parse(bt),St={"chinese - hong kong":"zh","chinese - traditional":"zh",czech:"cs",danish:"da",dutch:"nl",english:"en","english - sdh":"en",finnish:"fi",french:"fr",german:"de",greek:"el",hungarian:"hu",italian:"it",korean:"ko",norwegian:"no",polish:"pl",portuguese:"pt","portuguese - brazilian":"pt",romanian:"ro","spanish - european":"es","spanish - latin american":"es",swedish:"sv",turkish:"tr",اَلْعَرَبِيَّةُ:"ar",বাংলা:"bn",filipino:"tl",indonesia:"id",اردو:"ur",English:"en",Arabic:"ar",Bosnian:"bs",Bulgarian:"bg",Croatian:"hr",Czech:"cs",Danish:"da",Dutch:"nl",Estonian:"et",Finnish:"fi",French:"fr",German:"de",Greek:"el",Hebrew:"he",Hungarian:"hu",Indonesian:"id",Italian:"it",Norwegian:"no",Persian:"fa",Polish:"pl",Portuguese:"pt","Protuguese (BR)":"pt-br",Romanian:"ro",Russian:"ru",Serbian:"sr",Slovenian:"sl",Spanish:"es",Swedish:"sv",Thai:"th",Turkish:"tr"},At=[];if(Array.isArray(Tt.subs))for(const Dt of Tt.subs){let Et="";if(Dt.name.includes(".srt")){const _t=Dt.name.split(".srt")[0].toLowerCase().trim();Et=St[_t]||labelToLanguageCode(_t)}else if(Dt.name.includes(":")){const _t=Dt.name.split(":")[0].toLowerCase().trim();Et=St[_t]||labelToLanguageCode(_t)}else{const _t=Dt.name.toLowerCase().trim();Et=St[_t]||labelToLanguageCode(_t)}Et&&At.push({id:Dt.path,url:`${baseUrl$4}${Dt.path}`,type:"srt",hasCorsRestrictions:!1,language:Et})}st.progress(90);const vt={referer:`${baseUrl$4}${pt}`,"User-Agent":"Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1","Viewport-Width":"375",Origin:baseUrl$4};return{embeds:[],stream:[{id:"primary",playlist:await convertPlaylistsToDataUrls(st.proxiedFetcher,`${baseUrl$4}/${Tt.val}`,vt),type:"hls",proxyDepth:2,flags:[flags.CORS_ALLOWED],captions:At},...Tt.val_bak?[{id:"backup",playlist:await convertPlaylistsToDataUrls(st.proxiedFetcher,`${baseUrl$4}/${Tt.val_bak}`,vt),type:"hls",flags:[flags.CORS_ALLOWED],proxyDepth:2,captions:At}]:[]]}},soaperTvScraper=makeSourcerer({id:"soapertv",name:"SoaperTV",rank:130,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:universalScraper,scrapeShow:universalScraper}),servers=[{embedId:"speedstrm-ngflix",server:1},{embedId:"speedstrm-upcloud",server:2},{embedId:"speedstrm-akcloud",server:3},{embedId:"speedstrm-megacloud",server:4},{embedId:"speedstrm-vidsrc",server:6},{embedId:"speedstrm-hollymoviehd",server:5},{embedId:"speedstrm-onionflixer",server:7},{embedId:"speedstrm-soaper",server:8}];async function comboScraper$7(st){const at=[],ut=st.media.type==="show"?"tv":"m";let dt=st.media.tmdbId;st.media.type==="show"&&(dt=`${dt}/${st.media.season.number}/${st.media.episode.number}`);for(const{embedId:ct,server:pt}of servers){const ft=`https://servers.spencerdevs.xyz/${pt}/${ut}/${dt}`;at.push({embedId:ct,url:ft})}return st.progress(90),{embeds:at}}const spencerdevsScraper=makeSourcerer({id:"spencerdevs",name:"SpeedStrm 🔥",rank:240,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$7,scrapeShow:comboScraper$7}),streamboxBase="https://vidjoy.pro/embed/api/fastfetch";async function comboScraper$6(st){var at,ut;const dt=await st.proxiedFetcher(st.media.type==="movie"?`${streamboxBase}/${st.media.tmdbId}?sr=0`:`${streamboxBase}/${st.media.tmdbId}/${st.media.season.number}/${st.media.episode.number}?sr=0`);if(!dt)throw new NotFoundError("Failed to fetch StreamBox data");console.log(dt);const ct=await dt,pt={};ct.url.forEach(mt=>{pt[mt.resulation]=mt.link});const ft=ct.tracks.map(mt=>({id:mt.lang,url:mt.url,language:mt.code,type:"srt"}));if(ct.provider==="MovieBox")return{embeds:[],stream:[{id:"primary",captions:ft,qualities:{...pt[1080]&&{1080:{type:"mp4",url:pt[1080]}},...pt[720]&&{720:{type:"mp4",url:pt[720]}},...pt[480]&&{480:{type:"mp4",url:pt[480]}},...pt[360]&&{360:{type:"mp4",url:pt[360]}}},type:"file",flags:[flags.CORS_ALLOWED],preferredHeaders:{Referer:(at=ct.headers)==null?void 0:at.Referer}}]};const ht=ct.url.find(mt=>mt.type==="hls")||ct.url[0];return{embeds:[],stream:[{id:"primary",captions:ft,playlist:ht.link,type:"hls",flags:[flags.CORS_ALLOWED],preferredHeaders:{Referer:(ut=ct.headers)==null?void 0:ut.Referer}}]}}const streamboxScraper=makeSourcerer({id:"streambox",name:"StreamBox",rank:119,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$6,scrapeShow:comboScraper$6}),baseUrl$3="https://xj4h5qk3tf7v2mlr9s.uira.live/";async function comboScraper$5(st){const at=`${baseUrl$3}all/${st.media.tmdbId}${st.media.type==="movie"?"":`?s=${st.media.season.number}&e=${st.media.episode.number}`}`;let ut;try{ut=await st.fetcher(at)}catch(dt){throw dt instanceof NotFoundError?new NotFoundError(`${dt.message}`):dt}if(!ut)try{ut=await st.fetcher(at)}catch(dt){throw dt instanceof NotFoundError?new NotFoundError(`${dt.message}`):dt}if(!ut||!ut.sources||ut.sources.length===0)throw new NotFoundError("No sources found");if(st.progress(90),!ut.sources[0].url)throw new Error("Source URL is missing");return{embeds:[],stream:[{id:"primary",playlist:ut.sources[0].url,type:"hls",flags:[flags.CORS_ALLOWED],captions:ut.captions||[]}]}}const uiraliveScraper=makeSourcerer({id:"uiralive",name:"uira.live 🤝",rank:245,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$5,scrapeShow:comboScraper$5}),baseUrl$2="https://vidapi.click";async function comboScraper$4(st){const at=st.media.type==="show"?`${baseUrl$2}/api/video/tv/${st.media.tmdbId}/${st.media.season.number}/${st.media.episode.number}`:`${baseUrl$2}/api/video/movie/${st.media.tmdbId}`,ut=await st.proxiedFetcher(at,{headers:{"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}});if(!ut)throw new NotFoundError("Failed to fetch video source");if(!ut.sources[0].file)throw new NotFoundError("No video source found");return st.progress(50),st.progress(90),{embeds:[],stream:[{id:"primary",type:"hls",playlist:ut.sources[0].file,flags:[flags.CORS_ALLOWED],captions:[]}]}}const vidapiClickScraper=makeSourcerer({id:"vidapi-click",name:"vidapi.click",rank:89,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$4,scrapeShow:comboScraper$4}),baseUrl$1="https://vidjoy.pro",decryptionKey="029f3936fb744c4512e66d3a8150c6129472ccdff5b0dd5ec6e512fc06194ef1";async function comboScraper$3(st){let at=`${baseUrl$1}/embed/api/fastfetch2/${st.media.tmdbId}?sr=0`,ut=await st.proxiedFetcher.full(at,{method:"GET",headers:{referer:"https://vidjoy.pro/",origin:"https://vidjoy.pro","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}});if(ut.statusCode!==200&&(at=`${baseUrl$1}/embed/api/fetch2/${st.media.tmdbId}?srName=Modread&sr=0`,ut=await st.proxiedFetcher.full(at,{method:"GET",headers:{referer:"https://vidjoy.pro/",origin:"https://vidjoy.pro","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"}})),ut.statusCode!==200)throw new NotFoundError("Failed to fetch video source from both endpoints");st.progress(50);const dt=ut.body,ct=CryptoJS.AES.decrypt(dt,decryptionKey).toString(CryptoJS.enc.Utf8);if(!ct)throw new NotFoundError("Failed to decrypt video source");st.progress(70);let pt;try{pt=JSON.parse(ct)}catch(ht){throw console.error("JSON parsing error:",ht),console.error("Decrypted data:",ct.substring(0,200)),new NotFoundError("Failed to parse decrypted video data")}if(!pt.url||!Array.isArray(pt.url)||pt.url.length===0)throw new NotFoundError("No video URLs found in response");st.progress(90);const ft=[];return pt.url.forEach((ht,mt)=>{ft.push({embedId:`vidjoy-stream${mt+1}`,url:JSON.stringify({link:ht.link,type:ht.type||"hls",lang:ht.lang||"English",headers:pt.headers||{}})})}),{embeds:ft}}const vidjoyScraper=makeSourcerer({id:"vidjoy",name:"vidsrc.joi 🔥",rank:185,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$3});async function getEmbeds(st,at,ut){var dt;const ct=[];for(const pt of at.split(",")){await ut.proxiedFetcher("/getEmbed.php",{baseUrl:warezcdnBase,headers:{Referer:`${warezcdnBase}/getEmbed.php?${new URLSearchParams({id:st,sv:pt})}`},method:"HEAD",query:{id:st,sv:pt}});const ft=(dt=(await ut.proxiedFetcher("/getPlay.php",{baseUrl:warezcdnBase,headers:{Referer:`${warezcdnBase}/getEmbed.php?${new URLSearchParams({id:st,sv:pt})}`},query:{id:st,sv:pt}})).match(/window.location.href\s*=\s*"([^"]+)"/))==null?void 0:dt[1];ft&&pt==="warezcdn"?ct.push({embedId:warezcdnembedHlsScraper.id,url:ft},{embedId:warezcdnembedMp4Scraper.id,url:ft},{embedId:warezPlayerScraper.id,url:ft}):ft&&pt==="mixdrop"&&ct.push({embedId:mixdropScraper.id,url:ft})}return{embeds:ct}}const warezcdnScraper=makeSourcerer({id:"warezcdn",name:"WarezCDN",disabled:!0,rank:115,flags:[],scrapeMovie:async st=>{if(!st.media.imdbId)throw new NotFoundError("This source requires IMDB id.");const at=await st.proxiedFetcher(`/filme/${st.media.imdbId}`,{baseUrl:warezcdnBase}),[,ut,dt]=at.match(/let\s+data\s*=\s*'\[\s*\{\s*"id":"([^"]+)".*?"servers":"([^"]+)"/);if(!ut||!dt)throw new NotFoundError("Failed to find episode id");return st.progress(40),getEmbeds(ut,dt,st)}}),trackers=["udp://tracker.opentrackr.org:1337/announce","udp://open.demonii.com:1337/announce","udp://open.tracker.cl:1337/announce","udp://open.stealth.si:80/announce","udp://tracker.torrent.eu.org:451/announce","udp://explodie.org:6969/announce","udp://tracker.qu.ax:6969/announce","udp://tracker.ololosh.space:6969/announce","udp://tracker.dump.cl:6969/announce","udp://tracker.dler.org:6969/announce","udp://tracker.bittor.pw:1337/announce","udp://tracker-udp.gbitt.info:80/announce","udp://opentracker.io:6969/announce","udp://open.free-tracker.ga:6969/announce","udp://ns-1.x-fins.com:6969/announce","udp://leet-tracker.moe:1337/announce","udp://isk.richardsw.club:6969/announce","udp://discord.heihachi.pw:6969/announce","http://www.torrentsnipe.info:2701/announce","http://www.genesis-sp.org:2710/announce"];function getMagnetUrl(st,at){const ut=encodeURIComponent(at),dt=trackers.map(ct=>`&tr=${encodeURIComponent(ct)}`).join("");return`magnet:?xt=urn:btih:${st}&dn=${ut}${dt}`}function constructProxyUrl(st){return`https://savingshub.online/api/fetchHls?magnet=${encodeURIComponent(st)}`}function categorizeStreams(st){const at={"4k":[],"1080p":[],"720p":[],"480p":[]};return st.forEach(ut=>{const dt=ut.name.toLowerCase();dt.includes("4k")?at["4k"].push(ut):dt.includes("1080p")?at["1080p"].push(ut):dt.includes("720p")?at["720p"].push(ut):dt.includes("480p")&&at["480p"].push(ut)}),at}function getTopStreamsBySeeders(st,at){return st.sort((ut,dt)=>{var ct,pt;const ft=parseInt(((ct=ut.title.match(/👤 (\d+) /))==null?void 0:ct[1])||"0",10);return parseInt(((pt=dt.title.match(/👤 (\d+) /))==null?void 0:pt[1])||"0",10)-ft}).slice(0,at)}async function comboScraper$2(st){const at=st.media.type==="movie"?`movie/${st.media.imdbId}.json`:`series/${st.media.imdbId}:${st.media.season.number}:${st.media.episode.number}.json`,ut=await st.fetcher(`https://torrentio.strem.fun/providers=yts,eztv,rarbg,1337x,thepiratebay,kickasstorrents,torrentgalaxy,magnetdl,horriblesubs,nyaasi,tokyotosho,anidex/stream/${at}`).then(pt=>typeof pt=="string"?JSON.parse(pt):pt);st.progress(50);const dt=categorizeStreams(ut.streams),ct=[];return(await Promise.all(Object.entries(dt).map(async([pt,ft])=>{const[ht]=getTopStreamsBySeeders(ft,1);if(!ht)return null;try{const mt=getMagnetUrl(ht.infoHash,ht.name),yt=constructProxyUrl(mt),bt=await st.fetcher(yt),Tt=typeof bt=="string"?JSON.parse(bt):bt;if(!(Tt!=null&&Tt.m3u8Link))throw new Error("No m3u8 link in response");return{quality:pt,url:Tt.m3u8Link}}catch(mt){return console.error(`Failed to fetch ${pt}:`,mt),null}}))).forEach(pt=>{pt!=null&&pt.url&&ct.push({embedId:`webtor-${pt.quality.replace("p","")}`,url:pt.url})}),st.progress(90),{embeds:ct}}const webtorScraper=makeSourcerer({id:"webtor",name:"Webtor 🤝",rank:2,disabled:!0,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper$2,scrapeShow:comboScraper$2}),baseUrl="https://wecima.tube";async function comboScraper$1(st){const at=await st.proxiedFetcher(`/search/${encodeURIComponent(st.media.title)}/`,{baseUrl}),ut=load(at)(".Grid--WecimaPosts .GridItem a").first();if(!ut.length)throw new NotFoundError("No results found");const dt=ut.attr("href");if(!dt)throw new NotFoundError("No content URL found");st.progress(30);const ct=await st.proxiedFetcher(dt,{baseUrl}),pt=load(ct);let ft;if(st.media.type==="movie")ft=pt('meta[itemprop="embedURL"]').attr("content");else{const yt=pt(".List--Seasons--Episodes a");let bt;for(const vt of yt)if(pt(vt).text().trim().includes(`موسم ${st.media.season}`)){bt=pt(vt).attr("href");break}if(!bt)throw new NotFoundError(`Season ${st.media.season} not found`);const Tt=await st.proxiedFetcher(bt,{baseUrl}),St=load(Tt),At=St(".Episodes--Seasons--Episodes a");for(const vt of At)if(St(vt).find("episodetitle").text().trim()===`الحلقة ${st.media.episode}`){const Dt=St(vt).attr("href");if(Dt){const Et=await st.proxiedFetcher(Dt,{baseUrl});ft=load(Et)('meta[itemprop="embedURL"]').attr("content")}break}}if(!ft)throw new NotFoundError("No embed URL found");st.progress(60);const ht=await st.proxiedFetcher(ft),mt=load(ht)('source[type="video/mp4"]').attr("src");if(!mt)throw new NotFoundError("No video source found");return st.progress(90),{embeds:[],stream:[{id:"primary",type:"file",flags:[],headers:{referer:baseUrl},qualities:{unknown:{type:"mp4",url:mt}},captions:[]}]}}const wecimaScraper=makeSourcerer({id:"wecima",name:"Wecima (Arabic)",rank:3,disabled:!0,flags:[],scrapeMovie:comboScraper$1,scrapeShow:comboScraper$1});async function comboScraper(st){const at={type:st.media.type,title:st.media.title,tmdbId:st.media.tmdbId,imdbId:st.media.imdbId,...st.media.type==="show"&&{season:st.media.season.number,episode:st.media.episode.number},releaseYear:st.media.releaseYear};return{embeds:[{embedId:"xprime-apollo",url:JSON.stringify(at)},{embedId:"xprime-streambox",url:JSON.stringify(at)},{embedId:"xprime-fox",url:JSON.stringify(at)},{embedId:"xprime-primenet",url:JSON.stringify(at)},{embedId:"xprime-kraken",url:JSON.stringify(at)},{embedId:"xprime-phoenix",url:JSON.stringify(at)},{embedId:"xprime-harbour",url:JSON.stringify(at)},{embedId:"xprime-rage",url:JSON.stringify(at)},{embedId:"xprime-fendi",url:JSON.stringify(at)},{embedId:"xprime-marant",url:JSON.stringify(at)},{embedId:"xprime-volkswagen",url:JSON.stringify(at)}]}}const xprimeScraper=makeSourcerer({id:"xprimetv",name:"xprime.tv 🤝",rank:189,disabled:!1,flags:[flags.CORS_ALLOWED],scrapeMovie:comboScraper,scrapeShow:comboScraper});function gatherAllSources(){return[cuevana3Scraper,catflixScraper,ridooMoviesScraper,hdRezkaScraper,warezcdnScraper,insertunitScraper,soaperTvScraper,autoembedScraper,beechScraper,tugaflixScraper,ee3Scraper,fsharetvScraper,vidsrcsuScraper,vidsrcScraper,vidifyScraper,zoechipScraper,mp4hydraScraper,webtorScraper,embedsuScraper,FedAPIScraper,slidemoviesScraper,iosmirrorScraper,iosmirrorPVScraper,uiraliveScraper,vidapiClickScraper,coitusScraper,streamboxScraper,nunflixScraper,EightStreamScraper,xprimeScraper,ConsumetScraper,hianimeScraper,oneServerScraper,wecimaScraper,animeflvScraper,cinemaosScraper,hollymoviehdScraper,oneroomScraper,realDebridScraper,vidjoyScraper,nepuScraper,spencerdevsScraper,pirxcyScraper,ciaapiScraper,vidsrcvipScraper,flixerScraper]}function gatherAllEmbeds(){return[upcloudScraper,vidCloudScraper,mixdropScraper,ridooScraper,closeLoadScraper,doodScraper,streamvidScraper,streamtapeScraper,warezcdnembedHlsScraper,warezcdnembedMp4Scraper,warezPlayerScraper,autoembedEnglishScraper,autoembedHindiScraper,autoembedBengaliScraper,autoembedTamilScraper,autoembedTeluguScraper,turbovidScraper,mp4hydraServer1Scraper,mp4hydraServer2Scraper,VidsrcsuServer1Scraper,VidsrcsuServer2Scraper,VidsrcsuServer3Scraper,VidsrcsuServer4Scraper,VidsrcsuServer5Scraper,VidsrcsuServer6Scraper,VidsrcsuServer7Scraper,VidsrcsuServer8Scraper,VidsrcsuServer9Scraper,VidsrcsuServer10Scraper,VidsrcsuServer11Scraper,VidsrcsuServer12Scraper,VidsrcsuServer20Scraper,webtor4kScraper,webtor1080Scraper,webtor720Scraper,webtor480Scraper,viperScraper,FedAPIPrivateScraper,FedDBScraper,xprimeFoxEmbed,xprimeApolloEmbed,xprimeStreamboxEmbed,xprimeMarantEmbed,xprimeFendiEmbed,xprimePrimenetEmbed,xprimeVolkswagenEmbed,xprimeHarbourEmbed,xprimePhoenixEmbed,xprimeRageEmbed,xprimeKrakenEmbed,ConsumetVidCloudScraper,ConsumetStreamSBScraper,ConsumetVidStreamingScraper,ConsumetStreamTapeScraper,hianimeHd1DubEmbed,hianimeHd2DubEmbed,hianimeHd1SubEmbed,hianimeHd2SubEmbed,oneServerAutoembedEmbed,oneServerVidsrcsuEmbed,oneServerPrimeboxEmbed,oneServerFoxstreamEmbed,oneServerFlixhqEmbed,oneServerGokuEmbed,oneServerHianimeEmbed,oneServerAnimepaheEmbed,oneServerAnizoneEmbed,streamwishJapaneseScraper,streamwishLatinoScraper,streamwishSpanishScraper,streamwishEnglishScraper,streamtapeLatinoScraper,...cinemaosEmbeds,spencerdevsNgflixScraper,spencerdevsUpcloudScraper,spencerdevsAkcloudScraper,spencerdevsMegacloudScraper,spencerdevsHollymoviehd,spencerdevsVidsrcScraper,spencerdevsOnionflixerScraper,spencerdevsSoaperScraper,beechAshScraper,beechWillowScraper,beechElmScraper,beechCedarScraper,vidjoyStream1Scraper,vidjoyStream2Scraper,vidjoyStream3Scraper,vidjoyStream4Scraper,vidjoyStream5Scraper,ciaapiEmbedScraper,vidsrcNovaEmbed,vidsrcCometEmbed,vidsrcPulsarEmbed,flixerAlphaScraper,flixerCharlieScraper,flixerDeltaScraper,flixerEchoScraper,flixerFoxtrotScraper]}function getBuiltinSources(){return gatherAllSources().filter(st=>!st.disabled&&!st.externalSource)}function getBuiltinExternalSources(){return gatherAllSources().filter(st=>st.externalSource&&!st.disabled)}function getBuiltinEmbeds(){return gatherAllEmbeds().filter(st=>!st.disabled)}function findDuplicates(st,at){const ut=new Map;for(const dt of st){const ct=at(dt);ut.has(ct)||ut.set(ct,[]),ut.get(ct).push(dt)}return Array.from(ut.entries()).filter(([dt,ct])=>ct.length>1).map(([dt,ct])=>({key:dt,items:ct}))}function formatDuplicateError(st,at,ut){const dt=at.map(({key:ct,items:pt})=>{const ft=pt.map(ht=>ht.name||ht.id).join(", ");return` ${ut} ${ct}: ${ft}`}).join(` `);return`${st} have duplicate ${ut}s: ${dt}`}function getProviders(st,at){const ut=at.sources.filter(mt=>!(mt!=null&&mt.disabled)),dt=at.embeds.filter(mt=>!(mt!=null&&mt.disabled)),ct=[...ut,...dt],pt=findDuplicates(ct,mt=>mt.id);if(pt.length>0)throw new Error(formatDuplicateError("Sources/embeds",pt,"ID"));const ft=findDuplicates(ut,mt=>mt.rank);if(ft.length>0)throw new Error(formatDuplicateError("Sources",ft,"rank"));const ht=findDuplicates(dt,mt=>mt.rank);if(ht.length>0)throw new Error(formatDuplicateError("Embeds",ht,"rank"));return{sources:ut.filter(mt=>flagsAllowedInFeatures(st,mt.flags)),embeds:dt}}function makeProviders(st){var at;const ut=getTargetFeatures(st.proxyStreams?"any":st.target,st.consistentIpForRequests??!1,st.proxyStreams),dt=[...getBuiltinSources()];st.externalSources==="all"?dt.push(...getBuiltinExternalSources()):(at=st.externalSources)==null||at.forEach(pt=>{const ft=getBuiltinExternalSources().find(ht=>ht.id===pt);ft&&dt.push(ft)});const ct=getProviders(ut,{embeds:getBuiltinEmbeds(),sources:dt});return makeControls({embeds:ct.embeds,sources:ct.sources,features:ut,fetcher:st.fetcher,proxiedFetcher:st.proxiedFetcher,proxyStreams:st.proxyStreams})}const isReactNative=()=>{try{return require("react-native"),!0}catch{return!1}};function serializeBody(st){return st===void 0||typeof st=="string"||st instanceof URLSearchParams||st instanceof FormData$1?st instanceof URLSearchParams&&isReactNative()?{headers:{"Content-Type":"application/x-www-form-urlencoded"},body:st.toString()}:{headers:{},body:st}:{headers:{"Content-Type":"application/json"},body:JSON.stringify(st)}}function getHeaders(st,at){const ut=new Headers;return st.forEach(dt=>{var ct;const pt=dt.toLowerCase(),ft=at.headers.get(pt),ht=((ct=at.extraHeaders)==null?void 0:ct.get(pt))??ft;ht&&ut.set(pt,ht)}),ut}function makeStandardFetcher(st){return async(at,ut)=>{var dt;const ct=makeFullUrl(at,ut),pt=serializeBody(ut.body),ft=new AbortController,ht=8e3,mt=setTimeout(()=>ft.abort(),ht);try{const yt=await st(ct,{method:ut.method,headers:{...pt.headers,...ut.headers},body:pt.body,credentials:ut.credentials,signal:ft.signal});clearTimeout(mt);let bt;const Tt=(dt=yt.headers.get("content-type"))==null?void 0:dt.includes("application/json");return yt.status===204?bt=null:Tt?bt=await yt.json():bt=await yt.text(),{body:bt,finalUrl:yt.extraUrl??yt.url,headers:getHeaders(ut.readHeaders,yt),statusCode:yt.status}}catch(yt){throw yt.name==="AbortError"?new Error(`Fetch request to ${ct} timed out after ${ht}ms`):yt}}}const headerMap={cookie:"X-Cookie",referer:"X-Referer",origin:"X-Origin","user-agent":"X-User-Agent","x-real-ip":"X-X-Real-Ip"},responseHeaderMap={"x-set-cookie":"Set-Cookie"};function makeSimpleProxyFetcher(st,at){return async(ut,dt)=>{const ct=makeStandardFetcher(async(ht,mt)=>{const yt=new AbortController,bt=8e3,Tt=setTimeout(()=>yt.abort(),bt);try{const St=await at(ht,{method:(mt==null?void 0:mt.method)||"GET",headers:(mt==null?void 0:mt.headers)||{},body:mt==null?void 0:mt.body,credentials:mt==null?void 0:mt.credentials,signal:yt.signal});return clearTimeout(Tt),St.extraHeaders=new Headers,Object.entries(responseHeaderMap).forEach(At=>{var vt;const Dt=St.headers.get(At[0]);Dt&&((vt=St.extraHeaders)==null||vt.set(At[1].toLowerCase(),Dt))}),St.extraUrl=St.headers.get("X-Final-Destination")??St.url,St}catch(St){throw St.name==="AbortError"?new Error(`Fetch request to ${ht} timed out after ${bt}ms`):St}}),pt=makeFullUrl(ut,dt),ft=Object.entries(dt.headers).map(ht=>{const mt=ht[0].toLowerCase();return headerMap[mt]?[headerMap[mt],ht[1]]:ht});return ct(st,{...dt,query:{destination:pt},headers:Object.fromEntries(ft),baseUrl:void 0})}}class InvalidTokenError extends Error{}InvalidTokenError.prototype.name="InvalidTokenError";function b64DecodeUnicode(st){return decodeURIComponent(atob(st).replace(/(.)/g,(at,ut)=>{let dt=ut.charCodeAt(0).toString(16).toUpperCase();return dt.length<2&&(dt="0"+dt),"%"+dt}))}function base64UrlDecode(st){let at=st.replace(/-/g,"+").replace(/_/g,"/");switch(at.length%4){case 0:break;case 2:at+="==";break;case 3:at+="=";break;default:throw new Error("base64 string is not of the correct length")}try{return b64DecodeUnicode(at)}catch{return atob(at)}}function jwtDecode(st,at){if(typeof st!="string")throw new InvalidTokenError("Invalid token specified: must be a string");at||(at={});const ut=at.header===!0?0:1,dt=st.split(".")[ut];if(typeof dt!="string")throw new InvalidTokenError(`Invalid token specified: missing part #${ut+1}`);let ct;try{ct=base64UrlDecode(dt)}catch(pt){throw new InvalidTokenError(`Invalid token specified: invalid base64 for part #${ut+1} (${pt.message})`)}try{return JSON.parse(ct)}catch(pt){throw new InvalidTokenError(`Invalid token specified: invalid json for part #${ut+1} (${pt.message})`)}}const Component=({as:st="div",...at},ut)=>jsxRuntimeExports.jsx(st,{...at,ref:ut}),Container=reactExports.forwardRef(Component),SCRIPT_URL="https://challenges.cloudflare.com/turnstile/v0/api.js",DEFAULT_SCRIPT_ID="cf-turnstile-script",DEFAULT_CONTAINER_ID="cf-turnstile",DEFAULT_ONLOAD_NAME="onloadTurnstileCallback",checkElementExistence=st=>!!document.getElementById(st),injectTurnstileScript=({render:st="explicit",onLoadCallbackName:at=DEFAULT_ONLOAD_NAME,scriptOptions:{nonce:ut="",defer:dt=!0,async:ct=!0,id:pt="",appendTo:ft,onError:ht,crossOrigin:mt=""}={}})=>{const yt=pt||DEFAULT_SCRIPT_ID;if(checkElementExistence(yt))return;const bt=document.createElement("script");if(bt.id=yt,bt.src=`${SCRIPT_URL}?onload=${at}&render=${st}`,document.querySelector(`script[src="${bt.src}"]`))return;bt.defer=!!dt,bt.async=!!ct,ut&&(bt.nonce=ut),mt&&(bt.crossOrigin=mt),ht&&(bt.onerror=ht,delete window[at]),(ft==="body"?document.body:document.getElementsByTagName("head")[0]).appendChild(bt)},CONTAINER_STYLE_SET={normal:{width:300,height:65},compact:{width:130,height:120},invisible:{width:0,height:0,overflow:"hidden"},auto:{},interactionOnly:{width:"fit-content",height:"auto",display:"flex"}};function getTurnstileSizeOpts(st){let at;return st!=="invisible"&&st!=="auto"&&(at=st),at}function useObserveScript(st=DEFAULT_SCRIPT_ID){const[at,ut]=reactExports.useState(!1);return reactExports.useEffect(()=>{const dt=()=>{checkElementExistence(st)&&ut(!0)},ct=new MutationObserver(dt);return ct.observe(document,{childList:!0,subtree:!0}),dt(),()=>{ct.disconnect()}},[st]),at}let turnstileState="unloaded",turnstileLoad;const turnstileLoadPromise=new Promise((st,at)=>{turnstileLoad={resolve:st,reject:at},turnstileState==="ready"&&st(void 0)}),ensureTurnstile=(st=DEFAULT_ONLOAD_NAME)=>(turnstileState==="unloaded"&&(turnstileState="loading",window[st]=()=>{turnstileLoad.resolve(),turnstileState="ready",delete window[st]}),turnstileLoadPromise),Turnstile=reactExports.forwardRef((st,at)=>{const{scriptOptions:ut,options:dt={},siteKey:ct,onWidgetLoad:pt,onSuccess:ft,onExpire:ht,onError:mt,onBeforeInteractive:yt,onAfterInteractive:bt,onUnsupported:Tt,onLoadScript:St,id:At,style:vt,as:Dt="div",injectScript:Et=!0,..._t}=st,xt=dt.size||"normal",[Ct,kt]=reactExports.useState(dt.execution==="execute"?CONTAINER_STYLE_SET.invisible:dt.appearance==="interaction-only"?CONTAINER_STYLE_SET.interactionOnly:CONTAINER_STYLE_SET[xt]),wt=reactExports.useRef(null),[$t,Lt]=reactExports.useState(!1),Ot=reactExports.useRef(),zt=reactExports.useRef(!1),Mt=At||DEFAULT_CONTAINER_ID,qt=(ut==null?void 0:ut.id)||DEFAULT_SCRIPT_ID,Qt=useObserveScript(qt),Yt=(ut==null?void 0:ut.onLoadCallbackName)||DEFAULT_ONLOAD_NAME,jt=dt.appearance||"always",Ft=reactExports.useMemo(()=>({sitekey:ct,action:dt.action,cData:dt.cData,callback:Ht=>{zt.current=!0,ft==null||ft(Ht)},"error-callback":mt,"expired-callback":ht,"before-interactive-callback":yt,"after-interactive-callback":bt,"unsupported-callback":Tt,theme:dt.theme||"auto",language:dt.language||"auto",tabindex:dt.tabIndex,"response-field":dt.responseField,"response-field-name":dt.responseFieldName,size:getTurnstileSizeOpts(xt),retry:dt.retry||"auto","retry-interval":dt.retryInterval||8e3,"refresh-expired":dt.refreshExpired||"auto",execution:dt.execution||"render",appearance:dt.appearance||"always"}),[dt.action,dt.appearance,dt.cData,dt.execution,dt.language,dt.refreshExpired,dt.responseField,dt.responseFieldName,dt.retry,dt.retryInterval,dt.tabIndex,dt.theme,ct,xt]),Vt=reactExports.useCallback(()=>typeof window<"u"&&!!window.turnstile,[]);return reactExports.useEffect(function(){Et&&!$t&&injectTurnstileScript({onLoadCallbackName:Yt,scriptOptions:{...ut,id:qt}})},[Et,$t,ut,qt]),reactExports.useEffect(function(){turnstileState!=="ready"&&ensureTurnstile(Yt).then(()=>Lt(!0)).catch(console.error)},[]),reactExports.useEffect(function(){if(!wt.current||!$t)return;let Kt=!1;return(async()=>{if(Kt||!wt.current)return;const Wt=window.turnstile.render(wt.current,Ft);Ot.current=Wt,Ot.current&&(pt==null||pt(Ot.current))})(),()=>{Kt=!0,Ot.current&&(window.turnstile.remove(Ot.current),zt.current=!1)}},[Mt,$t,Ft]),reactExports.useImperativeHandle(at,()=>{const{turnstile:Ht}=window;return{getResponse(){if(!(Ht!=null&&Ht.getResponse)||!Ot.current||!Vt()){console.warn("Turnstile has not been loaded");return}return Ht.getResponse(Ot.current)},async getResponsePromise(Kt=3e4,Zt=100){return new Promise((Wt,Nt)=>{let Rt;const Bt=async()=>{if(zt.current&&window.turnstile&&Ot.current)try{const Pt=window.turnstile.getResponse(Ot.current);return Rt&&clearTimeout(Rt),Pt?Wt(Pt):Nt(new Error("No response received"))}catch(Pt){return Rt&&clearTimeout(Rt),console.warn("Failed to get response",Pt),Nt(new Error("Failed to get response"))}Rt||(Rt=setTimeout(()=>{Rt&&clearTimeout(Rt),Nt(new Error("Timeout"))},Kt)),await new Promise(Pt=>setTimeout(Pt,Zt)),await Bt()};Bt()})},reset(){if(!(Ht!=null&&Ht.reset)||!Ot.current||!Vt()){console.warn("Turnstile has not been loaded");return}dt.execution==="execute"&&kt(CONTAINER_STYLE_SET.invisible);try{zt.current=!1,Ht.reset(Ot.current)}catch(Kt){console.warn(`Failed to reset Turnstile widget ${Ot}`,Kt)}},remove(){if(!(Ht!=null&&Ht.remove)||!Ot.current||!Vt()){console.warn("Turnstile has not been loaded");return}kt(CONTAINER_STYLE_SET.invisible),zt.current=!1,Ht.remove(Ot.current),Ot.current=null},render(){if(!(Ht!=null&&Ht.render)||!wt.current||!Vt()||Ot.current){console.warn("Turnstile has not been loaded or container not found");return}const Kt=Ht.render(wt.current,Ft);return Ot.current=Kt,Ot.current&&(pt==null||pt(Ot.current)),dt.execution!=="execute"&&kt(CONTAINER_STYLE_SET[xt]),Kt},execute(){if(dt.execution!=="execute"){console.warn('Execution mode is not set to "execute"');return}if(!(Ht!=null&&Ht.execute)||!wt.current||!Ot.current||!Vt()){console.warn("Turnstile has not been loaded or container not found");return}Ht.execute(wt.current,Ft),kt(CONTAINER_STYLE_SET[xt])},isExpired(){if(!(Ht!=null&&Ht.isExpired)||!Ot.current||!Vt()){console.warn("Turnstile has not been loaded");return}return Ht.isExpired(Ot.current)}}},[Ot,dt.execution,xt,Ft,wt,Vt,$t,pt]),reactExports.useEffect(()=>{Qt&&!$t&&window.turnstile&&Lt(!0)},[$t,Qt]),reactExports.useEffect(()=>{kt(dt.execution==="execute"?CONTAINER_STYLE_SET.invisible:jt==="interaction-only"?CONTAINER_STYLE_SET.interactionOnly:CONTAINER_STYLE_SET[xt])},[dt.execution,xt,jt]),reactExports.useEffect(()=>{!Qt||typeof St!="function"||St()},[Qt]),jsxRuntimeExports.jsx(Container,{ref:wt,as:Dt,id:Mt,style:{...Ct,...vt},..._t})});Turnstile.displayName="Turnstile";var classnames={exports:{}};/*! Copyright (c) 2018 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */(function(st){(function(){var at={}.hasOwnProperty;function ut(){for(var pt="",ft=0;ftcrypto.getRandomValues(new Uint8Array(st)).reduce((at,ut)=>(ut&=63,ut<36?at+=ut.toString(36):ut<62?at+=(ut-26).toString(36).toUpperCase():ut>62?at+="-":at+="_",at),"");var _i,es;(_i=globalThis.browser)!=null&&_i.tabs||((es=globalThis.chrome)==null||es.tabs);var g$3=(st,at)=>!at.__internal&&st.source===globalThis.window&&st.data.name===at.name&&(at.relayId===void 0||st.data.relayId===at.relayId),y$3=(st,at=globalThis.window)=>new Promise((ut,dt)=>{let ct=nanoid(),pt=new AbortController;at.addEventListener("message",ft=>{g$3(ft,st)&&ft.data.relayed&&ft.data.instanceId===ct&&(ut(ft.data.body),pt.abort())},{signal:pt.signal}),at.postMessage({...st,instanceId:ct},{targetOrigin:st.targetOrigin||"/"})}),u$6=y$3,re$3={exports:{}};const SEMVER_SPEC_VERSION="2.0.0",MAX_LENGTH$1=256,MAX_SAFE_INTEGER$2=Number.MAX_SAFE_INTEGER||9007199254740991,MAX_SAFE_COMPONENT_LENGTH=16,MAX_SAFE_BUILD_LENGTH=MAX_LENGTH$1-6,RELEASE_TYPES=["major","premajor","minor","preminor","patch","prepatch","prerelease"];var constants$1={MAX_LENGTH:MAX_LENGTH$1,MAX_SAFE_COMPONENT_LENGTH,MAX_SAFE_BUILD_LENGTH,MAX_SAFE_INTEGER:MAX_SAFE_INTEGER$2,RELEASE_TYPES,SEMVER_SPEC_VERSION,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},define_process_env_default={};const debug$1=typeof process=="object"&&define_process_env_default&&define_process_env_default.NODE_DEBUG&&/\bsemver\b/i.test(define_process_env_default.NODE_DEBUG)?(...st)=>console.error("SEMVER",...st):()=>{};var debug_1=debug$1;(function(st,at){const{MAX_SAFE_COMPONENT_LENGTH:ut,MAX_SAFE_BUILD_LENGTH:dt,MAX_LENGTH:ct}=constants$1,pt=debug_1;at=st.exports={};const ft=at.re=[],ht=at.safeRe=[],mt=at.src=[],yt=at.safeSrc=[],bt=at.t={};let Tt=0;const St="[a-zA-Z0-9-]",At=[["\\s",1],["\\d",ct],[St,dt]],vt=Et=>{for(const[_t,xt]of At)Et=Et.split(`${_t}*`).join(`${_t}{0,${xt}}`).split(`${_t}+`).join(`${_t}{1,${xt}}`);return Et},Dt=(Et,_t,xt)=>{const Ct=vt(_t),kt=Tt++;pt(Et,kt,_t),bt[Et]=kt,mt[kt]=_t,yt[kt]=Ct,ft[kt]=new RegExp(_t,xt?"g":void 0),ht[kt]=new RegExp(Ct,xt?"g":void 0)};Dt("NUMERICIDENTIFIER","0|[1-9]\\d*"),Dt("NUMERICIDENTIFIERLOOSE","\\d+"),Dt("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${St}*`),Dt("MAINVERSION",`(${mt[bt.NUMERICIDENTIFIER]})\\.(${mt[bt.NUMERICIDENTIFIER]})\\.(${mt[bt.NUMERICIDENTIFIER]})`),Dt("MAINVERSIONLOOSE",`(${mt[bt.NUMERICIDENTIFIERLOOSE]})\\.(${mt[bt.NUMERICIDENTIFIERLOOSE]})\\.(${mt[bt.NUMERICIDENTIFIERLOOSE]})`),Dt("PRERELEASEIDENTIFIER",`(?:${mt[bt.NONNUMERICIDENTIFIER]}|${mt[bt.NUMERICIDENTIFIER]})`),Dt("PRERELEASEIDENTIFIERLOOSE",`(?:${mt[bt.NONNUMERICIDENTIFIER]}|${mt[bt.NUMERICIDENTIFIERLOOSE]})`),Dt("PRERELEASE",`(?:-(${mt[bt.PRERELEASEIDENTIFIER]}(?:\\.${mt[bt.PRERELEASEIDENTIFIER]})*))`),Dt("PRERELEASELOOSE",`(?:-?(${mt[bt.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${mt[bt.PRERELEASEIDENTIFIERLOOSE]})*))`),Dt("BUILDIDENTIFIER",`${St}+`),Dt("BUILD",`(?:\\+(${mt[bt.BUILDIDENTIFIER]}(?:\\.${mt[bt.BUILDIDENTIFIER]})*))`),Dt("FULLPLAIN",`v?${mt[bt.MAINVERSION]}${mt[bt.PRERELEASE]}?${mt[bt.BUILD]}?`),Dt("FULL",`^${mt[bt.FULLPLAIN]}$`),Dt("LOOSEPLAIN",`[v=\\s]*${mt[bt.MAINVERSIONLOOSE]}${mt[bt.PRERELEASELOOSE]}?${mt[bt.BUILD]}?`),Dt("LOOSE",`^${mt[bt.LOOSEPLAIN]}$`),Dt("GTLT","((?:<|>)?=?)"),Dt("XRANGEIDENTIFIERLOOSE",`${mt[bt.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),Dt("XRANGEIDENTIFIER",`${mt[bt.NUMERICIDENTIFIER]}|x|X|\\*`),Dt("XRANGEPLAIN",`[v=\\s]*(${mt[bt.XRANGEIDENTIFIER]})(?:\\.(${mt[bt.XRANGEIDENTIFIER]})(?:\\.(${mt[bt.XRANGEIDENTIFIER]})(?:${mt[bt.PRERELEASE]})?${mt[bt.BUILD]}?)?)?`),Dt("XRANGEPLAINLOOSE",`[v=\\s]*(${mt[bt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${mt[bt.XRANGEIDENTIFIERLOOSE]})(?:\\.(${mt[bt.XRANGEIDENTIFIERLOOSE]})(?:${mt[bt.PRERELEASELOOSE]})?${mt[bt.BUILD]}?)?)?`),Dt("XRANGE",`^${mt[bt.GTLT]}\\s*${mt[bt.XRANGEPLAIN]}$`),Dt("XRANGELOOSE",`^${mt[bt.GTLT]}\\s*${mt[bt.XRANGEPLAINLOOSE]}$`),Dt("COERCEPLAIN",`(^|[^\\d])(\\d{1,${ut}})(?:\\.(\\d{1,${ut}}))?(?:\\.(\\d{1,${ut}}))?`),Dt("COERCE",`${mt[bt.COERCEPLAIN]}(?:$|[^\\d])`),Dt("COERCEFULL",mt[bt.COERCEPLAIN]+`(?:${mt[bt.PRERELEASE]})?(?:${mt[bt.BUILD]})?(?:$|[^\\d])`),Dt("COERCERTL",mt[bt.COERCE],!0),Dt("COERCERTLFULL",mt[bt.COERCEFULL],!0),Dt("LONETILDE","(?:~>?)"),Dt("TILDETRIM",`(\\s*)${mt[bt.LONETILDE]}\\s+`,!0),at.tildeTrimReplace="$1~",Dt("TILDE",`^${mt[bt.LONETILDE]}${mt[bt.XRANGEPLAIN]}$`),Dt("TILDELOOSE",`^${mt[bt.LONETILDE]}${mt[bt.XRANGEPLAINLOOSE]}$`),Dt("LONECARET","(?:\\^)"),Dt("CARETTRIM",`(\\s*)${mt[bt.LONECARET]}\\s+`,!0),at.caretTrimReplace="$1^",Dt("CARET",`^${mt[bt.LONECARET]}${mt[bt.XRANGEPLAIN]}$`),Dt("CARETLOOSE",`^${mt[bt.LONECARET]}${mt[bt.XRANGEPLAINLOOSE]}$`),Dt("COMPARATORLOOSE",`^${mt[bt.GTLT]}\\s*(${mt[bt.LOOSEPLAIN]})$|^$`),Dt("COMPARATOR",`^${mt[bt.GTLT]}\\s*(${mt[bt.FULLPLAIN]})$|^$`),Dt("COMPARATORTRIM",`(\\s*)${mt[bt.GTLT]}\\s*(${mt[bt.LOOSEPLAIN]}|${mt[bt.XRANGEPLAIN]})`,!0),at.comparatorTrimReplace="$1$2$3",Dt("HYPHENRANGE",`^\\s*(${mt[bt.XRANGEPLAIN]})\\s+-\\s+(${mt[bt.XRANGEPLAIN]})\\s*$`),Dt("HYPHENRANGELOOSE",`^\\s*(${mt[bt.XRANGEPLAINLOOSE]})\\s+-\\s+(${mt[bt.XRANGEPLAINLOOSE]})\\s*$`),Dt("STAR","(<|>)?=?\\s*\\*"),Dt("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),Dt("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(re$3,re$3.exports);var reExports=re$3.exports;const looseOption=Object.freeze({loose:!0}),emptyOpts=Object.freeze({}),parseOptions$2=st=>st?typeof st!="object"?looseOption:st:emptyOpts;var parseOptions_1=parseOptions$2;const numeric=/^[0-9]+$/,compareIdentifiers$1=(st,at)=>{const ut=numeric.test(st),dt=numeric.test(at);return ut&&dt&&(st=+st,at=+at),st===at?0:ut&&!dt?-1:dt&&!ut?1:stcompareIdentifiers$1(at,st);var identifiers$1={compareIdentifiers:compareIdentifiers$1,rcompareIdentifiers};const debug=debug_1,{MAX_LENGTH,MAX_SAFE_INTEGER:MAX_SAFE_INTEGER$1}=constants$1,{safeRe:re$2,t:t$5}=reExports,parseOptions$1=parseOptions_1,{compareIdentifiers}=identifiers$1;let SemVer$d=class pr{constructor(at,ut){if(ut=parseOptions$1(ut),at instanceof pr){if(at.loose===!!ut.loose&&at.includePrerelease===!!ut.includePrerelease)return at;at=at.version}else if(typeof at!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof at}".`);if(at.length>MAX_LENGTH)throw new TypeError(`version is longer than ${MAX_LENGTH} characters`);debug("SemVer",at,ut),this.options=ut,this.loose=!!ut.loose,this.includePrerelease=!!ut.includePrerelease;const dt=at.trim().match(ut.loose?re$2[t$5.LOOSE]:re$2[t$5.FULL]);if(!dt)throw new TypeError(`Invalid Version: ${at}`);if(this.raw=at,this.major=+dt[1],this.minor=+dt[2],this.patch=+dt[3],this.major>MAX_SAFE_INTEGER$1||this.major<0)throw new TypeError("Invalid major version");if(this.minor>MAX_SAFE_INTEGER$1||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>MAX_SAFE_INTEGER$1||this.patch<0)throw new TypeError("Invalid patch version");dt[4]?this.prerelease=dt[4].split(".").map(ct=>{if(/^[0-9]+$/.test(ct)){const pt=+ct;if(pt>=0&&pt=0;)typeof this.prerelease[pt]=="number"&&(this.prerelease[pt]++,pt=-2);if(pt===-1){if(ut===this.prerelease.join(".")&&dt===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(ct)}}if(ut){let pt=[ut,ct];dt===!1&&(pt=[ut]),compareIdentifiers(this.prerelease[0],ut)===0?isNaN(this.prerelease[1])&&(this.prerelease=pt):this.prerelease=pt}break}default:throw new Error(`invalid increment argument: ${at}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};var semver$1=SemVer$d;const SemVer$c=semver$1,parse$g=(st,at,ut=!1)=>{if(st instanceof SemVer$c)return st;try{return new SemVer$c(st,at)}catch(dt){if(!ut)return null;throw dt}};var parse_1=parse$g;const parse$f=parse_1,valid$2=(st,at)=>{const ut=parse$f(st,at);return ut?ut.version:null};var valid_1=valid$2;const parse$e=parse_1,clean$2=(st,at)=>{const ut=parse$e(st.trim().replace(/^[=v]+/,""),at);return ut?ut.version:null};var clean_1=clean$2;const SemVer$b=semver$1,inc$1=(st,at,ut,dt,ct)=>{typeof ut=="string"&&(ct=dt,dt=ut,ut=void 0);try{return new SemVer$b(st instanceof SemVer$b?st.version:st,ut).inc(at,dt,ct).version}catch{return null}};var inc_1=inc$1;const parse$d=parse_1,diff$1=(st,at)=>{const ut=parse$d(st,null,!0),dt=parse$d(at,null,!0),ct=ut.compare(dt);if(ct===0)return null;const pt=ct>0,ft=pt?ut:dt,ht=pt?dt:ut,mt=!!ft.prerelease.length;if(!!ht.prerelease.length&&!mt){if(!ht.patch&&!ht.minor)return"major";if(ht.compareMain(ft)===0)return ht.minor&&!ht.patch?"minor":"patch"}const bt=mt?"pre":"";return ut.major!==dt.major?bt+"major":ut.minor!==dt.minor?bt+"minor":ut.patch!==dt.patch?bt+"patch":"prerelease"};var diff_1=diff$1;const SemVer$a=semver$1,major$1=(st,at)=>new SemVer$a(st,at).major;var major_1=major$1;const SemVer$9=semver$1,minor$1=(st,at)=>new SemVer$9(st,at).minor;var minor_1=minor$1;const SemVer$8=semver$1,patch$1=(st,at)=>new SemVer$8(st,at).patch;var patch_1=patch$1;const parse$c=parse_1,prerelease$1=(st,at)=>{const ut=parse$c(st,at);return ut&&ut.prerelease.length?ut.prerelease:null};var prerelease_1=prerelease$1;const SemVer$7=semver$1,compare$b=(st,at,ut)=>new SemVer$7(st,ut).compare(new SemVer$7(at,ut));var compare_1=compare$b;const compare$a=compare_1,rcompare$1=(st,at,ut)=>compare$a(at,st,ut);var rcompare_1=rcompare$1;const compare$9=compare_1,compareLoose$1=(st,at)=>compare$9(st,at,!0);var compareLoose_1=compareLoose$1;const SemVer$6=semver$1,compareBuild$3=(st,at,ut)=>{const dt=new SemVer$6(st,ut),ct=new SemVer$6(at,ut);return dt.compare(ct)||dt.compareBuild(ct)};var compareBuild_1=compareBuild$3;const compareBuild$2=compareBuild_1,sort$1=(st,at)=>st.sort((ut,dt)=>compareBuild$2(ut,dt,at));var sort_1=sort$1;const compareBuild$1=compareBuild_1,rsort$1=(st,at)=>st.sort((ut,dt)=>compareBuild$1(dt,ut,at));var rsort_1=rsort$1;const compare$8=compare_1,gt$4=(st,at,ut)=>compare$8(st,at,ut)>0;var gt_1=gt$4;const compare$7=compare_1,lt$3=(st,at,ut)=>compare$7(st,at,ut)<0;var lt_1=lt$3;const compare$6=compare_1,eq$2=(st,at,ut)=>compare$6(st,at,ut)===0;var eq_1=eq$2;const compare$5=compare_1,neq$2=(st,at,ut)=>compare$5(st,at,ut)!==0;var neq_1=neq$2;const compare$4=compare_1,gte$3=(st,at,ut)=>compare$4(st,at,ut)>=0;var gte_1=gte$3;const compare$3=compare_1,lte$3=(st,at,ut)=>compare$3(st,at,ut)<=0;var lte_1=lte$3;const eq$1=eq_1,neq$1=neq_1,gt$3=gt_1,gte$2=gte_1,lt$2=lt_1,lte$2=lte_1,cmp$1=(st,at,ut,dt)=>{switch(at){case"===":return typeof st=="object"&&(st=st.version),typeof ut=="object"&&(ut=ut.version),st===ut;case"!==":return typeof st=="object"&&(st=st.version),typeof ut=="object"&&(ut=ut.version),st!==ut;case"":case"=":case"==":return eq$1(st,ut,dt);case"!=":return neq$1(st,ut,dt);case">":return gt$3(st,ut,dt);case">=":return gte$2(st,ut,dt);case"<":return lt$2(st,ut,dt);case"<=":return lte$2(st,ut,dt);default:throw new TypeError(`Invalid operator: ${at}`)}};var cmp_1=cmp$1;const SemVer$5=semver$1,parse$b=parse_1,{safeRe:re$1,t:t$4}=reExports,coerce$1=(st,at)=>{if(st instanceof SemVer$5)return st;if(typeof st=="number"&&(st=String(st)),typeof st!="string")return null;at=at||{};let ut=null;if(!at.rtl)ut=st.match(at.includePrerelease?re$1[t$4.COERCEFULL]:re$1[t$4.COERCE]);else{const mt=at.includePrerelease?re$1[t$4.COERCERTLFULL]:re$1[t$4.COERCERTL];let yt;for(;(yt=mt.exec(st))&&(!ut||ut.index+ut[0].length!==st.length);)(!ut||yt.index+yt[0].length!==ut.index+ut[0].length)&&(ut=yt),mt.lastIndex=yt.index+yt[1].length+yt[2].length;mt.lastIndex=-1}if(ut===null)return null;const dt=ut[2],ct=ut[3]||"0",pt=ut[4]||"0",ft=at.includePrerelease&&ut[5]?`-${ut[5]}`:"",ht=at.includePrerelease&&ut[6]?`+${ut[6]}`:"";return parse$b(`${dt}.${ct}.${pt}${ft}${ht}`,at)};var coerce_1=coerce$1;class LRUCache{constructor(){this.max=1e3,this.map=new Map}get(at){const ut=this.map.get(at);if(ut!==void 0)return this.map.delete(at),this.map.set(at,ut),ut}delete(at){return this.map.delete(at)}set(at,ut){if(!this.delete(at)&&ut!==void 0){if(this.map.size>=this.max){const ct=this.map.keys().next().value;this.delete(ct)}this.map.set(at,ut)}return this}}var lrucache=LRUCache,range,hasRequiredRange;function requireRange(){if(hasRequiredRange)return range;hasRequiredRange=1;const st=/\s+/g;class at{constructor(Ft,Vt){if(Vt=ct(Vt),Ft instanceof at)return Ft.loose===!!Vt.loose&&Ft.includePrerelease===!!Vt.includePrerelease?Ft:new at(Ft.raw,Vt);if(Ft instanceof pt)return this.raw=Ft.value,this.set=[[Ft]],this.formatted=void 0,this;if(this.options=Vt,this.loose=!!Vt.loose,this.includePrerelease=!!Vt.includePrerelease,this.raw=Ft.trim().replace(st," "),this.set=this.raw.split("||").map(Ht=>this.parseRange(Ht.trim())).filter(Ht=>Ht.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const Ht=this.set[0];if(this.set=this.set.filter(Kt=>!Dt(Kt[0])),this.set.length===0)this.set=[Ht];else if(this.set.length>1){for(const Kt of this.set)if(Kt.length===1&&Et(Kt[0])){this.set=[Kt];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let Ft=0;Ft0&&(this.formatted+="||");const Vt=this.set[Ft];for(let Ht=0;Ht0&&(this.formatted+=" "),this.formatted+=Vt[Ht].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(Ft){const Ht=((this.options.includePrerelease&&At)|(this.options.loose&&vt))+":"+Ft,Kt=dt.get(Ht);if(Kt)return Kt;const Zt=this.options.loose,Wt=Zt?mt[yt.HYPHENRANGELOOSE]:mt[yt.HYPHENRANGE];Ft=Ft.replace(Wt,Qt(this.options.includePrerelease)),ft("hyphen replace",Ft),Ft=Ft.replace(mt[yt.COMPARATORTRIM],bt),ft("comparator trim",Ft),Ft=Ft.replace(mt[yt.TILDETRIM],Tt),ft("tilde trim",Ft),Ft=Ft.replace(mt[yt.CARETTRIM],St),ft("caret trim",Ft);let Nt=Ft.split(" ").map(Ut=>xt(Ut,this.options)).join(" ").split(/\s+/).map(Ut=>qt(Ut,this.options));Zt&&(Nt=Nt.filter(Ut=>(ft("loose invalid filter",Ut,this.options),!!Ut.match(mt[yt.COMPARATORLOOSE])))),ft("range list",Nt);const Rt=new Map,Bt=Nt.map(Ut=>new pt(Ut,this.options));for(const Ut of Bt){if(Dt(Ut))return[Ut];Rt.set(Ut.value,Ut)}Rt.size>1&&Rt.has("")&&Rt.delete("");const Pt=[...Rt.values()];return dt.set(Ht,Pt),Pt}intersects(Ft,Vt){if(!(Ft instanceof at))throw new TypeError("a Range is required");return this.set.some(Ht=>_t(Ht,Vt)&&Ft.set.some(Kt=>_t(Kt,Vt)&&Ht.every(Zt=>Kt.every(Wt=>Zt.intersects(Wt,Vt)))))}test(Ft){if(!Ft)return!1;if(typeof Ft=="string")try{Ft=new ht(Ft,this.options)}catch{return!1}for(let Vt=0;Vtjt.value==="<0.0.0-0",Et=jt=>jt.value==="",_t=(jt,Ft)=>{let Vt=!0;const Ht=jt.slice();let Kt=Ht.pop();for(;Vt&&Ht.length;)Vt=Ht.every(Zt=>Kt.intersects(Zt,Ft)),Kt=Ht.pop();return Vt},xt=(jt,Ft)=>(ft("comp",jt,Ft),jt=$t(jt,Ft),ft("caret",jt),jt=kt(jt,Ft),ft("tildes",jt),jt=Ot(jt,Ft),ft("xrange",jt),jt=Mt(jt,Ft),ft("stars",jt),jt),Ct=jt=>!jt||jt.toLowerCase()==="x"||jt==="*",kt=(jt,Ft)=>jt.trim().split(/\s+/).map(Vt=>wt(Vt,Ft)).join(" "),wt=(jt,Ft)=>{const Vt=Ft.loose?mt[yt.TILDELOOSE]:mt[yt.TILDE];return jt.replace(Vt,(Ht,Kt,Zt,Wt,Nt)=>{ft("tilde",jt,Ht,Kt,Zt,Wt,Nt);let Rt;return Ct(Kt)?Rt="":Ct(Zt)?Rt=`>=${Kt}.0.0 <${+Kt+1}.0.0-0`:Ct(Wt)?Rt=`>=${Kt}.${Zt}.0 <${Kt}.${+Zt+1}.0-0`:Nt?(ft("replaceTilde pr",Nt),Rt=`>=${Kt}.${Zt}.${Wt}-${Nt} <${Kt}.${+Zt+1}.0-0`):Rt=`>=${Kt}.${Zt}.${Wt} <${Kt}.${+Zt+1}.0-0`,ft("tilde return",Rt),Rt})},$t=(jt,Ft)=>jt.trim().split(/\s+/).map(Vt=>Lt(Vt,Ft)).join(" "),Lt=(jt,Ft)=>{ft("caret",jt,Ft);const Vt=Ft.loose?mt[yt.CARETLOOSE]:mt[yt.CARET],Ht=Ft.includePrerelease?"-0":"";return jt.replace(Vt,(Kt,Zt,Wt,Nt,Rt)=>{ft("caret",jt,Kt,Zt,Wt,Nt,Rt);let Bt;return Ct(Zt)?Bt="":Ct(Wt)?Bt=`>=${Zt}.0.0${Ht} <${+Zt+1}.0.0-0`:Ct(Nt)?Zt==="0"?Bt=`>=${Zt}.${Wt}.0${Ht} <${Zt}.${+Wt+1}.0-0`:Bt=`>=${Zt}.${Wt}.0${Ht} <${+Zt+1}.0.0-0`:Rt?(ft("replaceCaret pr",Rt),Zt==="0"?Wt==="0"?Bt=`>=${Zt}.${Wt}.${Nt}-${Rt} <${Zt}.${Wt}.${+Nt+1}-0`:Bt=`>=${Zt}.${Wt}.${Nt}-${Rt} <${Zt}.${+Wt+1}.0-0`:Bt=`>=${Zt}.${Wt}.${Nt}-${Rt} <${+Zt+1}.0.0-0`):(ft("no pr"),Zt==="0"?Wt==="0"?Bt=`>=${Zt}.${Wt}.${Nt}${Ht} <${Zt}.${Wt}.${+Nt+1}-0`:Bt=`>=${Zt}.${Wt}.${Nt}${Ht} <${Zt}.${+Wt+1}.0-0`:Bt=`>=${Zt}.${Wt}.${Nt} <${+Zt+1}.0.0-0`),ft("caret return",Bt),Bt})},Ot=(jt,Ft)=>(ft("replaceXRanges",jt,Ft),jt.split(/\s+/).map(Vt=>zt(Vt,Ft)).join(" ")),zt=(jt,Ft)=>{jt=jt.trim();const Vt=Ft.loose?mt[yt.XRANGELOOSE]:mt[yt.XRANGE];return jt.replace(Vt,(Ht,Kt,Zt,Wt,Nt,Rt)=>{ft("xRange",jt,Ht,Kt,Zt,Wt,Nt,Rt);const Bt=Ct(Zt),Pt=Bt||Ct(Wt),Ut=Pt||Ct(Nt),Gt=Ut;return Kt==="="&&Gt&&(Kt=""),Rt=Ft.includePrerelease?"-0":"",Bt?Kt===">"||Kt==="<"?Ht="<0.0.0-0":Ht="*":Kt&&Gt?(Pt&&(Wt=0),Nt=0,Kt===">"?(Kt=">=",Pt?(Zt=+Zt+1,Wt=0,Nt=0):(Wt=+Wt+1,Nt=0)):Kt==="<="&&(Kt="<",Pt?Zt=+Zt+1:Wt=+Wt+1),Kt==="<"&&(Rt="-0"),Ht=`${Kt+Zt}.${Wt}.${Nt}${Rt}`):Pt?Ht=`>=${Zt}.0.0${Rt} <${+Zt+1}.0.0-0`:Ut&&(Ht=`>=${Zt}.${Wt}.0${Rt} <${Zt}.${+Wt+1}.0-0`),ft("xRange return",Ht),Ht})},Mt=(jt,Ft)=>(ft("replaceStars",jt,Ft),jt.trim().replace(mt[yt.STAR],"")),qt=(jt,Ft)=>(ft("replaceGTE0",jt,Ft),jt.trim().replace(mt[Ft.includePrerelease?yt.GTE0PRE:yt.GTE0],"")),Qt=jt=>(Ft,Vt,Ht,Kt,Zt,Wt,Nt,Rt,Bt,Pt,Ut,Gt)=>(Ct(Ht)?Vt="":Ct(Kt)?Vt=`>=${Ht}.0.0${jt?"-0":""}`:Ct(Zt)?Vt=`>=${Ht}.${Kt}.0${jt?"-0":""}`:Wt?Vt=`>=${Vt}`:Vt=`>=${Vt}${jt?"-0":""}`,Ct(Bt)?Rt="":Ct(Pt)?Rt=`<${+Bt+1}.0.0-0`:Ct(Ut)?Rt=`<${Bt}.${+Pt+1}.0-0`:Gt?Rt=`<=${Bt}.${Pt}.${Ut}-${Gt}`:jt?Rt=`<${Bt}.${Pt}.${+Ut+1}-0`:Rt=`<=${Rt}`,`${Vt} ${Rt}`.trim()),Yt=(jt,Ft,Vt)=>{for(let Ht=0;Ht0){const Kt=jt[Ht].semver;if(Kt.major===Ft.major&&Kt.minor===Ft.minor&&Kt.patch===Ft.patch)return!0}return!1}return!0};return range}var comparator,hasRequiredComparator;function requireComparator(){if(hasRequiredComparator)return comparator;hasRequiredComparator=1;const st=Symbol("SemVer ANY");class at{static get ANY(){return st}constructor(bt,Tt){if(Tt=ut(Tt),bt instanceof at){if(bt.loose===!!Tt.loose)return bt;bt=bt.value}bt=bt.trim().split(/\s+/).join(" "),ft("comparator",bt,Tt),this.options=Tt,this.loose=!!Tt.loose,this.parse(bt),this.semver===st?this.value="":this.value=this.operator+this.semver.version,ft("comp",this)}parse(bt){const Tt=this.options.loose?dt[ct.COMPARATORLOOSE]:dt[ct.COMPARATOR],St=bt.match(Tt);if(!St)throw new TypeError(`Invalid comparator: ${bt}`);this.operator=St[1]!==void 0?St[1]:"",this.operator==="="&&(this.operator=""),St[2]?this.semver=new ht(St[2],this.options.loose):this.semver=st}toString(){return this.value}test(bt){if(ft("Comparator.test",bt,this.options.loose),this.semver===st||bt===st)return!0;if(typeof bt=="string")try{bt=new ht(bt,this.options)}catch{return!1}return pt(bt,this.operator,this.semver,this.options)}intersects(bt,Tt){if(!(bt instanceof at))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new mt(bt.value,Tt).test(this.value):bt.operator===""?bt.value===""?!0:new mt(this.value,Tt).test(bt.semver):(Tt=ut(Tt),Tt.includePrerelease&&(this.value==="<0.0.0-0"||bt.value==="<0.0.0-0")||!Tt.includePrerelease&&(this.value.startsWith("<0.0.0")||bt.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&bt.operator.startsWith(">")||this.operator.startsWith("<")&&bt.operator.startsWith("<")||this.semver.version===bt.semver.version&&this.operator.includes("=")&&bt.operator.includes("=")||pt(this.semver,"<",bt.semver,Tt)&&this.operator.startsWith(">")&&bt.operator.startsWith("<")||pt(this.semver,">",bt.semver,Tt)&&this.operator.startsWith("<")&&bt.operator.startsWith(">")))}}comparator=at;const ut=parseOptions_1,{safeRe:dt,t:ct}=reExports,pt=cmp_1,ft=debug_1,ht=semver$1,mt=requireRange();return comparator}const Range$9=requireRange(),satisfies$4=(st,at,ut)=>{try{at=new Range$9(at,ut)}catch{return!1}return at.test(st)};var satisfies_1=satisfies$4;const Range$8=requireRange(),toComparators$1=(st,at)=>new Range$8(st,at).set.map(ut=>ut.map(dt=>dt.value).join(" ").trim().split(" "));var toComparators_1=toComparators$1;const SemVer$4=semver$1,Range$7=requireRange(),maxSatisfying$1=(st,at,ut)=>{let dt=null,ct=null,pt=null;try{pt=new Range$7(at,ut)}catch{return null}return st.forEach(ft=>{pt.test(ft)&&(!dt||ct.compare(ft)===-1)&&(dt=ft,ct=new SemVer$4(dt,ut))}),dt};var maxSatisfying_1=maxSatisfying$1;const SemVer$3=semver$1,Range$6=requireRange(),minSatisfying$1=(st,at,ut)=>{let dt=null,ct=null,pt=null;try{pt=new Range$6(at,ut)}catch{return null}return st.forEach(ft=>{pt.test(ft)&&(!dt||ct.compare(ft)===1)&&(dt=ft,ct=new SemVer$3(dt,ut))}),dt};var minSatisfying_1=minSatisfying$1;const SemVer$2=semver$1,Range$5=requireRange(),gt$2=gt_1,minVersion$1=(st,at)=>{st=new Range$5(st,at);let ut=new SemVer$2("0.0.0");if(st.test(ut)||(ut=new SemVer$2("0.0.0-0"),st.test(ut)))return ut;ut=null;for(let dt=0;dt{const ht=new SemVer$2(ft.semver.version);switch(ft.operator){case">":ht.prerelease.length===0?ht.patch++:ht.prerelease.push(0),ht.raw=ht.format();case"":case">=":(!pt||gt$2(ht,pt))&&(pt=ht);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${ft.operator}`)}}),pt&&(!ut||gt$2(ut,pt))&&(ut=pt)}return ut&&st.test(ut)?ut:null};var minVersion_1=minVersion$1;const Range$4=requireRange(),validRange$1=(st,at)=>{try{return new Range$4(st,at).range||"*"}catch{return null}};var valid$1=validRange$1;const SemVer$1=semver$1,Comparator$2=requireComparator(),{ANY:ANY$1}=Comparator$2,Range$3=requireRange(),satisfies$3=satisfies_1,gt$1=gt_1,lt$1=lt_1,lte$1=lte_1,gte$1=gte_1,outside$3=(st,at,ut,dt)=>{st=new SemVer$1(st,dt),at=new Range$3(at,dt);let ct,pt,ft,ht,mt;switch(ut){case">":ct=gt$1,pt=lte$1,ft=lt$1,ht=">",mt=">=";break;case"<":ct=lt$1,pt=gte$1,ft=gt$1,ht="<",mt="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(satisfies$3(st,at,dt))return!1;for(let yt=0;yt{At.semver===ANY$1&&(At=new Comparator$2(">=0.0.0")),Tt=Tt||At,St=St||At,ct(At.semver,Tt.semver,dt)?Tt=At:ft(At.semver,St.semver,dt)&&(St=At)}),Tt.operator===ht||Tt.operator===mt||(!St.operator||St.operator===ht)&&pt(st,St.semver))return!1;if(St.operator===mt&&ft(st,St.semver))return!1}return!0};var outside_1=outside$3;const outside$2=outside_1,gtr$1=(st,at,ut)=>outside$2(st,at,">",ut);var gtr_1=gtr$1;const outside$1=outside_1,ltr$1=(st,at,ut)=>outside$1(st,at,"<",ut);var ltr_1=ltr$1;const Range$2=requireRange(),intersects$1=(st,at,ut)=>(st=new Range$2(st,ut),at=new Range$2(at,ut),st.intersects(at,ut));var intersects_1=intersects$1;const satisfies$2=satisfies_1,compare$2=compare_1;var simplify=(st,at,ut)=>{const dt=[];let ct=null,pt=null;const ft=st.sort((bt,Tt)=>compare$2(bt,Tt,ut));for(const bt of ft)satisfies$2(bt,at,ut)?(pt=bt,ct||(ct=bt)):(pt&&dt.push([ct,pt]),pt=null,ct=null);ct&&dt.push([ct,null]);const ht=[];for(const[bt,Tt]of dt)bt===Tt?ht.push(bt):!Tt&&bt===ft[0]?ht.push("*"):Tt?bt===ft[0]?ht.push(`<=${Tt}`):ht.push(`${bt} - ${Tt}`):ht.push(`>=${bt}`);const mt=ht.join(" || "),yt=typeof at.raw=="string"?at.raw:String(at);return mt.length{if(st===at)return!0;st=new Range$1(st,ut),at=new Range$1(at,ut);let dt=!1;e:for(const ct of st.set){for(const pt of at.set){const ft=simpleSubset(ct,pt,ut);if(dt=dt||ft!==null,ft)continue e}if(dt)return!1}return!0},minimumVersionWithPreRelease=[new Comparator$1(">=0.0.0-0")],minimumVersion=[new Comparator$1(">=0.0.0")],simpleSubset=(st,at,ut)=>{if(st===at)return!0;if(st.length===1&&st[0].semver===ANY){if(at.length===1&&at[0].semver===ANY)return!0;ut.includePrerelease?st=minimumVersionWithPreRelease:st=minimumVersion}if(at.length===1&&at[0].semver===ANY){if(ut.includePrerelease)return!0;at=minimumVersion}const dt=new Set;let ct,pt;for(const At of st)At.operator===">"||At.operator===">="?ct=higherGT(ct,At,ut):At.operator==="<"||At.operator==="<="?pt=lowerLT(pt,At,ut):dt.add(At.semver);if(dt.size>1)return null;let ft;if(ct&&pt){if(ft=compare$1(ct.semver,pt.semver,ut),ft>0)return null;if(ft===0&&(ct.operator!==">="||pt.operator!=="<="))return null}for(const At of dt){if(ct&&!satisfies$1(At,String(ct),ut)||pt&&!satisfies$1(At,String(pt),ut))return null;for(const vt of at)if(!satisfies$1(At,String(vt),ut))return!1;return!0}let ht,mt,yt,bt,Tt=pt&&!ut.includePrerelease&&pt.semver.prerelease.length?pt.semver:!1,St=ct&&!ut.includePrerelease&&ct.semver.prerelease.length?ct.semver:!1;Tt&&Tt.prerelease.length===1&&pt.operator==="<"&&Tt.prerelease[0]===0&&(Tt=!1);for(const At of at){if(bt=bt||At.operator===">"||At.operator===">=",yt=yt||At.operator==="<"||At.operator==="<=",ct){if(St&&At.semver.prerelease&&At.semver.prerelease.length&&At.semver.major===St.major&&At.semver.minor===St.minor&&At.semver.patch===St.patch&&(St=!1),At.operator===">"||At.operator===">="){if(ht=higherGT(ct,At,ut),ht===At&&ht!==ct)return!1}else if(ct.operator===">="&&!satisfies$1(ct.semver,String(At),ut))return!1}if(pt){if(Tt&&At.semver.prerelease&&At.semver.prerelease.length&&At.semver.major===Tt.major&&At.semver.minor===Tt.minor&&At.semver.patch===Tt.patch&&(Tt=!1),At.operator==="<"||At.operator==="<="){if(mt=lowerLT(pt,At,ut),mt===At&&mt!==pt)return!1}else if(pt.operator==="<="&&!satisfies$1(pt.semver,String(At),ut))return!1}if(!At.operator&&(pt||ct)&&ft!==0)return!1}return!(ct&&yt&&!pt&&ft!==0||pt&&bt&&!ct&&ft!==0||St||Tt)},higherGT=(st,at,ut)=>{if(!st)return at;const dt=compare$1(st.semver,at.semver,ut);return dt>0?st:dt<0||at.operator===">"&&st.operator===">="?at:st},lowerLT=(st,at,ut)=>{if(!st)return at;const dt=compare$1(st.semver,at.semver,ut);return dt<0?st:dt>0||at.operator==="<"&&st.operator==="<="?at:st};var subset_1=subset$1;const internalRe=reExports,constants=constants$1,SemVer=semver$1,identifiers=identifiers$1,parse$a=parse_1,valid=valid_1,clean$1=clean_1,inc=inc_1,diff=diff_1,major=major_1,minor=minor_1,patch=patch_1,prerelease=prerelease_1,compare=compare_1,rcompare=rcompare_1,compareLoose=compareLoose_1,compareBuild=compareBuild_1,sort=sort_1,rsort=rsort_1,gt=gt_1,lt=lt_1,eq=eq_1,neq=neq_1,gte=gte_1,lte=lte_1,cmp=cmp_1,coerce=coerce_1,Comparator=requireComparator(),Range=requireRange(),satisfies=satisfies_1,toComparators=toComparators_1,maxSatisfying=maxSatisfying_1,minSatisfying=minSatisfying_1,minVersion=minVersion_1,validRange=valid$1,outside=outside_1,gtr=gtr_1,ltr=ltr_1,intersects=intersects_1,simplifyRange=simplify,subset=subset_1;var semver={parse:parse$a,valid,clean:clean$1,inc,diff,major,minor,patch,prerelease,compare,rcompare,compareLoose,compareBuild,sort,rsort,gt,lt,eq,neq,gte,lte,cmp,coerce,Comparator,Range,satisfies,toComparators,maxSatisfying,minSatisfying,minVersion,validRange,outside,gtr,ltr,intersects,simplifyRange,subset,SemVer,re:internalRe.re,src:internalRe.src,tokens:internalRe.t,SEMVER_SPEC_VERSION:constants.SEMVER_SPEC_VERSION,RELEASE_TYPES:constants.RELEASE_TYPES,compareIdentifiers:identifiers.compareIdentifiers,rcompareIdentifiers:identifiers.rcompareIdentifiers},lodash_merge={exports:{}};lodash_merge.exports;(function(st,at){var ut=200,dt="__lodash_hash_undefined__",ct=800,pt=16,ft=9007199254740991,ht="[object Arguments]",mt="[object Array]",yt="[object AsyncFunction]",bt="[object Boolean]",Tt="[object Date]",St="[object Error]",At="[object Function]",vt="[object GeneratorFunction]",Dt="[object Map]",Et="[object Number]",_t="[object Null]",xt="[object Object]",Ct="[object Proxy]",kt="[object RegExp]",wt="[object Set]",$t="[object String]",Lt="[object Undefined]",Ot="[object WeakMap]",zt="[object ArrayBuffer]",Mt="[object DataView]",qt="[object Float32Array]",Qt="[object Float64Array]",Yt="[object Int8Array]",jt="[object Int16Array]",Ft="[object Int32Array]",Vt="[object Uint8Array]",Ht="[object Uint8ClampedArray]",Kt="[object Uint16Array]",Zt="[object Uint32Array]",Wt=/[\\^$.*+?()[\]{}|]/g,Nt=/^\[object .+?Constructor\]$/,Rt=/^(?:0|[1-9]\d*)$/,Bt={};Bt[qt]=Bt[Qt]=Bt[Yt]=Bt[jt]=Bt[Ft]=Bt[Vt]=Bt[Ht]=Bt[Kt]=Bt[Zt]=!0,Bt[ht]=Bt[mt]=Bt[zt]=Bt[bt]=Bt[Mt]=Bt[Tt]=Bt[St]=Bt[At]=Bt[Dt]=Bt[Et]=Bt[xt]=Bt[kt]=Bt[wt]=Bt[$t]=Bt[Ot]=!1;var Pt=typeof commonjsGlobal=="object"&&commonjsGlobal&&commonjsGlobal.Object===Object&&commonjsGlobal,Ut=typeof self=="object"&&self&&self.Object===Object&&self,Gt=Pt||Ut||Function("return this")(),Xt=at&&!at.nodeType&&at,na=Xt&&!0&&st&&!st.nodeType&&st,xa=na&&na.exports===Xt,$a=xa&&Pt.process,an=function(){try{var Jt=na&&na.require&&na.require("util").types;return Jt||$a&&$a.binding&&$a.binding("util")}catch{}}(),nn=an&&an.isTypedArray;function rn(Jt,ba,tn){switch(tn.length){case 0:return Jt.call(ba);case 1:return Jt.call(ba,tn[0]);case 2:return Jt.call(ba,tn[0],tn[1]);case 3:return Jt.call(ba,tn[0],tn[1],tn[2])}return Jt.apply(ba,tn)}function en(Jt,ba){for(var tn=-1,hn=Array(Jt);++tn-1}function sr(Jt,ba){var tn=this.__data__,hn=jn(tn,Jt);return hn<0?(++this.size,tn.push([Jt,ba])):tn[hn][1]=ba,this}Fn.prototype.clear=dr,Fn.prototype.delete=ar,Fn.prototype.get=Vn,Fn.prototype.has=Un,Fn.prototype.set=sr;function ur(Jt){var ba=-1,tn=Jt==null?0:Jt.length;for(this.clear();++ba1?tn[_n-1]:void 0,On=_n>2?tn[2]:void 0;for($n=Jt.length>3&&typeof $n=="function"?(_n--,$n):void 0,On&&hs(tn[0],tn[1],On)&&($n=_n<3?void 0:$n,_n=1),ba=Object(ba);++hn<_n;){var In=tn[hn];In&&Jt(ba,In,hn,$n)}return ba})}function cs(Jt){return function(ba,tn,hn){for(var _n=-1,$n=Object(ba),On=hn(ba),In=On.length;In--;){var Mn=On[++_n];if(tn($n[Mn],Mn,$n)===!1)break}return ba}}function Nr(Jt,ba){var tn=Jt.__data__;return ys(ba)?tn[typeof ba=="string"?"string":"hash"]:tn.map}function Or(Jt,ba){var tn=gn(Jt,ba);return Ar(tn)?tn:void 0}function ps(Jt){var ba=mn.call(Jt,wn),tn=Jt[wn];try{Jt[wn]=void 0;var hn=!0}catch{}var _n=En.call(Jt);return hn&&(ba?Jt[wn]=tn:delete Jt[wn]),_n}function fs(Jt){return typeof Jt.constructor=="function"&&!Vr(Jt)?Kn(Cn(Jt)):{}}function Kr(Jt,ba){var tn=typeof Jt;return ba=ba??ft,!!ba&&(tn=="number"||tn!="symbol"&&Rt.test(Jt))&&Jt>-1&&Jt%1==0&&Jt0){if(++ba>=ct)return arguments[0]}else ba=0;return Jt.apply(void 0,arguments)}}function Es(Jt){if(Jt!=null){try{return Sn.call(Jt)}catch{}try{return Jt+""}catch{}}return""}function Rr(Jt,ba){return Jt===ba||Jt!==Jt&&ba!==ba}var Br=mr(function(){return arguments}())?mr:function(Jt){return Dr(Jt)&&mn.call(Jt,"callee")&&!ir.call(Jt,"callee")},Fr=Array.isArray;function Ur(Jt){return Jt!=null&&Yr(Jt.length)&&!jr(Jt)}function xs(Jt){return Dr(Jt)&&Ur(Jt)}var Wr=Wn||ws;function jr(Jt){if(!br(Jt))return!1;var ba=er(Jt);return ba==At||ba==vt||ba==yt||ba==Ct}function Yr(Jt){return typeof Jt=="number"&&Jt>-1&&Jt%1==0&&Jt<=ft}function br(Jt){var ba=typeof Jt;return Jt!=null&&(ba=="object"||ba=="function")}function Dr(Jt){return Jt!=null&&typeof Jt=="object"}function _s(Jt){if(!Dr(Jt)||er(Jt)!=xt)return!1;var ba=Cn(Jt);if(ba===null)return!0;var tn=mn.call(ba,"constructor")&&ba.constructor;return typeof tn=="function"&&tn instanceof tn&&Sn.call(tn)==Tn}var Xr=nn?dn(nn):Hn;function Cs(Jt){return gs(Jt,Qr(Jt))}function Qr(Jt){return Ur(Jt)?un(Jt):$r(Jt)}var ks=ds(function(Jt,ba,tn){vr(Jt,ba,tn)});function Is(Jt){return function(){return Jt}}function Zr(Jt){return Jt}function ws(){return!1}st.exports=ks})(lodash_merge,lodash_merge.exports);var lodash_mergeExports=lodash_merge.exports;const merge=getDefaultExportFromCjs$1(lodash_mergeExports);var dist={},ga4={},gtag={};(function(st){Object.defineProperty(st,"__esModule",{value:!0}),st.default=void 0;var at=function(){for(var ct=arguments.length,pt=new Array(ct),ft=0;ft"u"&&(window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)}),(ht=window).gtag.apply(ht,pt)}},ut=at;st.default=ut})(gtag);var format$4={};(function(st){Object.defineProperty(st,"__esModule",{value:!0}),st.default=ft;var at=/^(a|an|and|as|at|but|by|en|for|if|in|nor|of|on|or|per|the|to|vs?\.?|via)$/i;function ut(ht){return ht.toString().trim().replace(/[A-Za-z0-9\u00C0-\u00FF]+[^\s-]*/g,function(mt,yt,bt){return yt>0&&yt+mt.length!==bt.length&&mt.search(at)>-1&&bt.charAt(yt-2)!==":"&&(bt.charAt(yt+mt.length)!=="-"||bt.charAt(yt-1)==="-")&&bt.charAt(yt-1).search(/[^\s-]/)<0?mt.toLowerCase():mt.substr(1).search(/[A-Z]|\../)>-1?mt:mt.charAt(0).toUpperCase()+mt.substr(1)})}function dt(ht){return typeof ht=="string"&&ht.indexOf("@")!==-1}var ct="REDACTED (Potential Email Address)";function pt(ht){return dt(ht)?(console.warn("This arg looks like an email address, redacting."),ct):ht}function ft(){var ht=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",mt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,yt=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,bt=ht||"";return mt&&(bt=ut(ht)),yt&&(bt=pt(bt)),bt}})(format$4);(function(st){Object.defineProperty(st,"__esModule",{value:!0}),st.default=st.GA4=void 0;var at=ft(gtag),ut=ft(format$4),dt=["eventCategory","eventAction","eventLabel","eventValue","hitType"],ct=["title","location"],pt=["page","hitType"];function ft(jt){return jt&&jt.__esModule?jt:{default:jt}}function ht(jt,Ft){if(jt==null)return{};var Vt=mt(jt,Ft),Ht,Kt;if(Object.getOwnPropertySymbols){var Zt=Object.getOwnPropertySymbols(jt);for(Kt=0;Kt=0)&&Object.prototype.propertyIsEnumerable.call(jt,Ht)&&(Vt[Ht]=jt[Ht])}return Vt}function mt(jt,Ft){if(jt==null)return{};var Vt={},Ht=Object.keys(jt),Kt,Zt;for(Zt=0;Zt=0)&&(Vt[Kt]=jt[Kt]);return Vt}function yt(jt){"@babel/helpers - typeof";return yt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(Ft){return typeof Ft}:function(Ft){return Ft&&typeof Symbol=="function"&&Ft.constructor===Symbol&&Ft!==Symbol.prototype?"symbol":typeof Ft},yt(jt)}function bt(jt){return At(jt)||St(jt)||xt(jt)||Tt()}function Tt(){throw new TypeError(`Invalid attempt to spread non-iterable instance. In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function St(jt){if(typeof Symbol<"u"&&jt[Symbol.iterator]!=null||jt["@@iterator"]!=null)return Array.from(jt)}function At(jt){if(Array.isArray(jt))return Ct(jt)}function vt(jt,Ft){var Vt=Object.keys(jt);if(Object.getOwnPropertySymbols){var Ht=Object.getOwnPropertySymbols(jt);Ft&&(Ht=Ht.filter(function(Kt){return Object.getOwnPropertyDescriptor(jt,Kt).enumerable})),Vt.push.apply(Vt,Ht)}return Vt}function Dt(jt){for(var Ft=1;Ftjt.length)&&(Ft=jt.length);for(var Vt=0,Ht=new Array(Ft);Vt2&&arguments[2]!==void 0?arguments[2]:"https://www.googletagmanager.com/gtag/js";if(!(typeof window>"u"||typeof document>"u")&&!Ft._hasLoadedGA){var Zt=document.createElement("script");Zt.async=!0,Zt.src="".concat(Kt,"?id=").concat(Vt),Ht&&Zt.setAttribute("nonce",Ht),document.body.appendChild(Zt),window.dataLayer=window.dataLayer||[],window.gtag=function(){window.dataLayer.push(arguments)},Ft._hasLoadedGA=!0}}),zt(this,"_toGtagOptions",function(Vt){if(Vt){var Ht={cookieUpdate:"cookie_update",cookieExpires:"cookie_expires",cookieDomain:"cookie_domain",cookieFlags:"cookie_flags",userId:"user_id",clientId:"client_id",anonymizeIp:"anonymize_ip",contentGroup1:"content_group1",contentGroup2:"content_group2",contentGroup3:"content_group3",contentGroup4:"content_group4",contentGroup5:"content_group5",allowAdFeatures:"allow_google_signals",allowAdPersonalizationSignals:"allow_ad_personalization_signals",nonInteraction:"non_interaction",page:"page_path",hitCallback:"event_callback"},Kt=Object.entries(Vt).reduce(function(Zt,Wt){var Nt=Et(Wt,2),Rt=Nt[0],Bt=Nt[1];return Ht[Rt]?Zt[Ht[Rt]]=Bt:Zt[Rt]=Bt,Zt},{});return Kt}}),zt(this,"initialize",function(Vt){var Ht=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Vt)throw new Error("Require GA_MEASUREMENT_ID");var Kt=typeof Vt=="string"?[{trackingId:Vt}]:Vt;Ft._currentMeasurementId=Kt[0].trackingId;var Zt=Ht.gaOptions,Wt=Ht.gtagOptions,Nt=Ht.nonce,Rt=Ht.testMode,Bt=Rt===void 0?!1:Rt,Pt=Ht.gtagUrl;if(Ft._testMode=Bt,Bt||Ft._loadGA(Ft._currentMeasurementId,Nt,Pt),Ft.isInitialized||(Ft._gtag("js",new Date),Kt.forEach(function(Xt){var na=Dt(Dt(Dt({},Ft._toGtagOptions(Dt(Dt({},Zt),Xt.gaOptions))),Wt),Xt.gtagOptions);Object.keys(na).length?Ft._gtag("config",Xt.trackingId,na):Ft._gtag("config",Xt.trackingId)})),Ft.isInitialized=!0,!Bt){var Ut=bt(Ft._queueGtag);for(Ft._queueGtag=[],Ft._isQueuing=!1;Ut.length;){var Gt=Ut.shift();Ft._gtag.apply(Ft,bt(Gt)),Gt[0]==="get"&&(Ft._isQueuing=!0)}}}),zt(this,"set",function(Vt){if(!Vt){console.warn("`fieldsObject` is required in .set()");return}if(yt(Vt)!=="object"){console.warn("Expected `fieldsObject` arg to be an Object");return}Object.keys(Vt).length===0&&console.warn("empty `fieldsObject` given to .set()"),Ft._gaCommand("set",Vt)}),zt(this,"_gaCommandSendEvent",function(Vt,Ht,Kt,Zt,Wt){Ft._gtag("event",Ht,Dt(Dt({event_category:Vt,event_label:Kt,value:Zt},Wt&&{non_interaction:Wt.nonInteraction}),Ft._toGtagOptions(Wt)))}),zt(this,"_gaCommandSendEventParameters",function(){for(var Vt=arguments.length,Ht=new Array(Vt),Kt=0;Kt1?Ht-1:0),Zt=1;Zt>>1,Rt=Kt[Nt];if(0>>1;Ntct(Ut,Wt))Gtct(Xt,Ut)?(Kt[Nt]=Xt,Kt[Gt]=Wt,Nt=Gt):(Kt[Nt]=Ut,Kt[Pt]=Wt,Nt=Pt);else if(Gtct(Xt,Wt))Kt[Nt]=Xt,Kt[Gt]=Wt,Nt=Gt;else break e}}return Zt}function ct(Kt,Zt){var Wt=Kt.sortIndex-Zt.sortIndex;return Wt!==0?Wt:Kt.id-Zt.id}if(typeof performance=="object"&&typeof performance.now=="function"){var pt=performance;st.unstable_now=function(){return pt.now()}}else{var ft=Date,ht=ft.now();st.unstable_now=function(){return ft.now()-ht}}var mt=[],yt=[],bt=1,Tt=null,St=3,At=!1,vt=!1,Dt=!1,Et=typeof setTimeout=="function"?setTimeout:null,_t=typeof clearTimeout=="function"?clearTimeout:null,xt=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function Ct(Kt){for(var Zt=ut(yt);Zt!==null;){if(Zt.callback===null)dt(yt);else if(Zt.startTime<=Kt)dt(yt),Zt.sortIndex=Zt.expirationTime,at(mt,Zt);else break;Zt=ut(yt)}}function kt(Kt){if(Dt=!1,Ct(Kt),!vt)if(ut(mt)!==null)vt=!0,Vt(wt);else{var Zt=ut(yt);Zt!==null&&Ht(kt,Zt.startTime-Kt)}}function wt(Kt,Zt){vt=!1,Dt&&(Dt=!1,_t(Ot),Ot=-1),At=!0;var Wt=St;try{for(Ct(Zt),Tt=ut(mt);Tt!==null&&(!(Tt.expirationTime>Zt)||Kt&&!qt());){var Nt=Tt.callback;if(typeof Nt=="function"){Tt.callback=null,St=Tt.priorityLevel;var Rt=Nt(Tt.expirationTime<=Zt);Zt=st.unstable_now(),typeof Rt=="function"?Tt.callback=Rt:Tt===ut(mt)&&dt(mt),Ct(Zt)}else dt(mt);Tt=ut(mt)}if(Tt!==null)var Bt=!0;else{var Pt=ut(yt);Pt!==null&&Ht(kt,Pt.startTime-Zt),Bt=!1}return Bt}finally{Tt=null,St=Wt,At=!1}}var $t=!1,Lt=null,Ot=-1,zt=5,Mt=-1;function qt(){return!(st.unstable_now()-MtKt||125Nt?(Kt.sortIndex=Wt,at(yt,Kt),ut(mt)===null&&Kt===ut(yt)&&(Dt?(_t(Ot),Ot=-1):Dt=!0,Ht(kt,Wt-Nt))):(Kt.sortIndex=Rt,at(mt,Kt),vt||At||(vt=!0,Vt(wt))),Kt},st.unstable_shouldYield=qt,st.unstable_wrapCallback=function(Kt){var Zt=St;return function(){var Wt=St;St=Zt;try{return Kt.apply(this,arguments)}finally{St=Wt}}}})(scheduler_production_min);scheduler.exports=scheduler_production_min;var schedulerExports=scheduler.exports;/** * @license React * react-dom.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */var aa=reactExports,ca=schedulerExports;function p$3(st){for(var at="https://reactjs.org/docs/error-decoder.html?invariant="+st,ut=1;ut"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,la={},ma={};function oa(st){return ja.call(ma,st)?!0:ja.call(la,st)?!1:ka.test(st)?ma[st]=!0:(la[st]=!0,!1)}function pa(st,at,ut,dt){if(ut!==null&&ut.type===0)return!1;switch(typeof at){case"function":case"symbol":return!0;case"boolean":return dt?!1:ut!==null?!ut.acceptsBooleans:(st=st.toLowerCase().slice(0,5),st!=="data-"&&st!=="aria-");default:return!1}}function qa(st,at,ut,dt){if(at===null||typeof at>"u"||pa(st,at,ut,dt))return!0;if(dt)return!1;if(ut!==null)switch(ut.type){case 3:return!at;case 4:return at===!1;case 5:return isNaN(at);case 6:return isNaN(at)||1>at}return!1}function v$3(st,at,ut,dt,ct,pt,ft){this.acceptsBooleans=at===2||at===3||at===4,this.attributeName=dt,this.attributeNamespace=ct,this.mustUseProperty=ut,this.propertyName=st,this.type=at,this.sanitizeURL=pt,this.removeEmptyString=ft}var z$2={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(st){z$2[st]=new v$3(st,0,!1,st,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(st){var at=st[0];z$2[at]=new v$3(at,1,!1,st[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(st){z$2[st]=new v$3(st,2,!1,st.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(st){z$2[st]=new v$3(st,2,!1,st,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(st){z$2[st]=new v$3(st,3,!1,st.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(st){z$2[st]=new v$3(st,3,!0,st,null,!1,!1)});["capture","download"].forEach(function(st){z$2[st]=new v$3(st,4,!1,st,null,!1,!1)});["cols","rows","size","span"].forEach(function(st){z$2[st]=new v$3(st,6,!1,st,null,!1,!1)});["rowSpan","start"].forEach(function(st){z$2[st]=new v$3(st,5,!1,st.toLowerCase(),null,!1,!1)});var ra=/[\-:]([a-z])/g;function sa(st){return st[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(st){var at=st.replace(ra,sa);z$2[at]=new v$3(at,1,!1,st,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(st){var at=st.replace(ra,sa);z$2[at]=new v$3(at,1,!1,st,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(st){var at=st.replace(ra,sa);z$2[at]=new v$3(at,1,!1,st,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(st){z$2[st]=new v$3(st,1,!1,st.toLowerCase(),null,!1,!1)});z$2.xlinkHref=new v$3("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(st){z$2[st]=new v$3(st,1,!1,st.toLowerCase(),null,!0,!0)});function ta(st,at,ut,dt){var ct=z$2.hasOwnProperty(at)?z$2[at]:null;(ct!==null?ct.type!==0:dt||!(2ht||ct[ft]!==pt[ht]){var mt=` `+ct[ft].replace(" at new "," at ");return st.displayName&&mt.includes("")&&(mt=mt.replace("",st.displayName)),mt}while(1<=ft&&0<=ht);break}}}finally{Na=!1,Error.prepareStackTrace=ut}return(st=st?st.displayName||st.name:"")?Ma(st):""}function Pa(st){switch(st.tag){case 5:return Ma(st.type);case 16:return Ma("Lazy");case 13:return Ma("Suspense");case 19:return Ma("SuspenseList");case 0:case 2:case 15:return st=Oa(st.type,!1),st;case 11:return st=Oa(st.type.render,!1),st;case 1:return st=Oa(st.type,!0),st;default:return""}}function Qa(st){if(st==null)return null;if(typeof st=="function")return st.displayName||st.name||null;if(typeof st=="string")return st;switch(st){case ya:return"Fragment";case wa:return"Portal";case Aa:return"Profiler";case za:return"StrictMode";case Ea:return"Suspense";case Fa:return"SuspenseList"}if(typeof st=="object")switch(st.$$typeof){case Ca:return(st.displayName||"Context")+".Consumer";case Ba:return(st._context.displayName||"Context")+".Provider";case Da:var at=st.render;return st=st.displayName,st||(st=at.displayName||at.name||"",st=st!==""?"ForwardRef("+st+")":"ForwardRef"),st;case Ga:return at=st.displayName||null,at!==null?at:Qa(st.type)||"Memo";case Ha:at=st._payload,st=st._init;try{return Qa(st(at))}catch{}}return null}function Ra(st){var at=st.type;switch(st.tag){case 24:return"Cache";case 9:return(at.displayName||"Context")+".Consumer";case 10:return(at._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return st=at.render,st=st.displayName||st.name||"",at.displayName||(st!==""?"ForwardRef("+st+")":"ForwardRef");case 7:return"Fragment";case 5:return at;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qa(at);case 8:return at===za?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof at=="function")return at.displayName||at.name||null;if(typeof at=="string")return at}return null}function Sa(st){switch(typeof st){case"boolean":case"number":case"string":case"undefined":return st;case"object":return st;default:return""}}function Ta(st){var at=st.type;return(st=st.nodeName)&&st.toLowerCase()==="input"&&(at==="checkbox"||at==="radio")}function Ua(st){var at=Ta(st)?"checked":"value",ut=Object.getOwnPropertyDescriptor(st.constructor.prototype,at),dt=""+st[at];if(!st.hasOwnProperty(at)&&typeof ut<"u"&&typeof ut.get=="function"&&typeof ut.set=="function"){var ct=ut.get,pt=ut.set;return Object.defineProperty(st,at,{configurable:!0,get:function(){return ct.call(this)},set:function(ft){dt=""+ft,pt.call(this,ft)}}),Object.defineProperty(st,at,{enumerable:ut.enumerable}),{getValue:function(){return dt},setValue:function(ft){dt=""+ft},stopTracking:function(){st._valueTracker=null,delete st[at]}}}}function Va(st){st._valueTracker||(st._valueTracker=Ua(st))}function Wa(st){if(!st)return!1;var at=st._valueTracker;if(!at)return!0;var ut=at.getValue(),dt="";return st&&(dt=Ta(st)?st.checked?"true":"false":st.value),st=dt,st!==ut?(at.setValue(st),!0):!1}function Xa(st){if(st=st||(typeof document<"u"?document:void 0),typeof st>"u")return null;try{return st.activeElement||st.body}catch{return st.body}}function Ya(st,at){var ut=at.checked;return A$2({},at,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:ut??st._wrapperState.initialChecked})}function Za(st,at){var ut=at.defaultValue==null?"":at.defaultValue,dt=at.checked!=null?at.checked:at.defaultChecked;ut=Sa(at.value!=null?at.value:ut),st._wrapperState={initialChecked:dt,initialValue:ut,controlled:at.type==="checkbox"||at.type==="radio"?at.checked!=null:at.value!=null}}function ab(st,at){at=at.checked,at!=null&&ta(st,"checked",at,!1)}function bb(st,at){ab(st,at);var ut=Sa(at.value),dt=at.type;if(ut!=null)dt==="number"?(ut===0&&st.value===""||st.value!=ut)&&(st.value=""+ut):st.value!==""+ut&&(st.value=""+ut);else if(dt==="submit"||dt==="reset"){st.removeAttribute("value");return}at.hasOwnProperty("value")?cb(st,at.type,ut):at.hasOwnProperty("defaultValue")&&cb(st,at.type,Sa(at.defaultValue)),at.checked==null&&at.defaultChecked!=null&&(st.defaultChecked=!!at.defaultChecked)}function db(st,at,ut){if(at.hasOwnProperty("value")||at.hasOwnProperty("defaultValue")){var dt=at.type;if(!(dt!=="submit"&&dt!=="reset"||at.value!==void 0&&at.value!==null))return;at=""+st._wrapperState.initialValue,ut||at===st.value||(st.value=at),st.defaultValue=at}ut=st.name,ut!==""&&(st.name=""),st.defaultChecked=!!st._wrapperState.initialChecked,ut!==""&&(st.name=ut)}function cb(st,at,ut){(at!=="number"||Xa(st.ownerDocument)!==st)&&(ut==null?st.defaultValue=""+st._wrapperState.initialValue:st.defaultValue!==""+ut&&(st.defaultValue=""+ut))}var eb=Array.isArray;function fb(st,at,ut,dt){if(st=st.options,at){at={};for(var ct=0;ct"+at.valueOf().toString()+"",at=mb.firstChild;st.firstChild;)st.removeChild(st.firstChild);for(;at.firstChild;)st.appendChild(at.firstChild)}});function ob(st,at){if(at){var ut=st.firstChild;if(ut&&ut===st.lastChild&&ut.nodeType===3){ut.nodeValue=at;return}}st.textContent=at}var pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=["Webkit","ms","Moz","O"];Object.keys(pb).forEach(function(st){qb.forEach(function(at){at=at+st.charAt(0).toUpperCase()+st.substring(1),pb[at]=pb[st]})});function rb(st,at,ut){return at==null||typeof at=="boolean"||at===""?"":ut||typeof at!="number"||at===0||pb.hasOwnProperty(st)&&pb[st]?(""+at).trim():at+"px"}function sb(st,at){st=st.style;for(var ut in at)if(at.hasOwnProperty(ut)){var dt=ut.indexOf("--")===0,ct=rb(ut,at[ut],dt);ut==="float"&&(ut="cssFloat"),dt?st.setProperty(ut,ct):st[ut]=ct}}var tb=A$2({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ub(st,at){if(at){if(tb[st]&&(at.children!=null||at.dangerouslySetInnerHTML!=null))throw Error(p$3(137,st));if(at.dangerouslySetInnerHTML!=null){if(at.children!=null)throw Error(p$3(60));if(typeof at.dangerouslySetInnerHTML!="object"||!("__html"in at.dangerouslySetInnerHTML))throw Error(p$3(61))}if(at.style!=null&&typeof at.style!="object")throw Error(p$3(62))}}function vb(st,at){if(st.indexOf("-")===-1)return typeof at.is=="string";switch(st){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var wb=null;function xb(st){return st=st.target||st.srcElement||window,st.correspondingUseElement&&(st=st.correspondingUseElement),st.nodeType===3?st.parentNode:st}var yb=null,zb=null,Ab=null;function Bb(st){if(st=Cb(st)){if(typeof yb!="function")throw Error(p$3(280));var at=st.stateNode;at&&(at=Db(at),yb(st.stateNode,st.type,at))}}function Eb(st){zb?Ab?Ab.push(st):Ab=[st]:zb=st}function Fb(){if(zb){var st=zb,at=Ab;if(Ab=zb=null,Bb(st),at)for(st=0;st>>=0,st===0?32:31-(pc(st)/qc|0)|0}var rc=64,sc=4194304;function tc(st){switch(st&-st){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return st&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return st&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return st}}function uc(st,at){var ut=st.pendingLanes;if(ut===0)return 0;var dt=0,ct=st.suspendedLanes,pt=st.pingedLanes,ft=ut&268435455;if(ft!==0){var ht=ft&~ct;ht!==0?dt=tc(ht):(pt&=ft,pt!==0&&(dt=tc(pt)))}else ft=ut&~ct,ft!==0?dt=tc(ft):pt!==0&&(dt=tc(pt));if(dt===0)return 0;if(at!==0&&at!==dt&&!(at&ct)&&(ct=dt&-dt,pt=at&-at,ct>=pt||ct===16&&(pt&4194240)!==0))return at;if(dt&4&&(dt|=ut&16),at=st.entangledLanes,at!==0)for(st=st.entanglements,at&=dt;0ut;ut++)at.push(st);return at}function Ac(st,at,ut){st.pendingLanes|=at,at!==536870912&&(st.suspendedLanes=0,st.pingedLanes=0),st=st.eventTimes,at=31-oc(at),st[at]=ut}function Bc(st,at){var ut=st.pendingLanes&~at;st.pendingLanes=at,st.suspendedLanes=0,st.pingedLanes=0,st.expiredLanes&=at,st.mutableReadLanes&=at,st.entangledLanes&=at,at=st.entanglements;var dt=st.eventTimes;for(st=st.expirationTimes;0=be),ee=" ",fe=!1;function ge(st,at){switch(st){case"keyup":return $d.indexOf(at.keyCode)!==-1;case"keydown":return at.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function he(st){return st=st.detail,typeof st=="object"&&"data"in st?st.data:null}var ie=!1;function je$1(st,at){switch(st){case"compositionend":return he(at);case"keypress":return at.which!==32?null:(fe=!0,ee);case"textInput":return st=at.data,st===ee&&fe?null:st;default:return null}}function ke(st,at){if(ie)return st==="compositionend"||!ae$1&&ge(st,at)?(st=nd(),md=ld=kd=null,ie=!1,st):null;switch(st){case"paste":return null;case"keypress":if(!(at.ctrlKey||at.altKey||at.metaKey)||at.ctrlKey&&at.altKey){if(at.char&&1=at)return{node:ut,offset:at-st};st=dt}e:{for(;ut;){if(ut.nextSibling){ut=ut.nextSibling;break e}ut=ut.parentNode}ut=void 0}ut=Je$1(ut)}}function Le$1(st,at){return st&&at?st===at?!0:st&&st.nodeType===3?!1:at&&at.nodeType===3?Le$1(st,at.parentNode):"contains"in st?st.contains(at):st.compareDocumentPosition?!!(st.compareDocumentPosition(at)&16):!1:!1}function Me(){for(var st=window,at=Xa();at instanceof st.HTMLIFrameElement;){try{var ut=typeof at.contentWindow.location.href=="string"}catch{ut=!1}if(ut)st=at.contentWindow;else break;at=Xa(st.document)}return at}function Ne$2(st){var at=st&&st.nodeName&&st.nodeName.toLowerCase();return at&&(at==="input"&&(st.type==="text"||st.type==="search"||st.type==="tel"||st.type==="url"||st.type==="password")||at==="textarea"||st.contentEditable==="true")}function Oe(st){var at=Me(),ut=st.focusedElem,dt=st.selectionRange;if(at!==ut&&ut&&ut.ownerDocument&&Le$1(ut.ownerDocument.documentElement,ut)){if(dt!==null&&Ne$2(ut)){if(at=dt.start,st=dt.end,st===void 0&&(st=at),"selectionStart"in ut)ut.selectionStart=at,ut.selectionEnd=Math.min(st,ut.value.length);else if(st=(at=ut.ownerDocument||document)&&at.defaultView||window,st.getSelection){st=st.getSelection();var ct=ut.textContent.length,pt=Math.min(dt.start,ct);dt=dt.end===void 0?pt:Math.min(dt.end,ct),!st.extend&&pt>dt&&(ct=dt,dt=pt,pt=ct),ct=Ke$1(ut,pt);var ft=Ke$1(ut,dt);ct&&ft&&(st.rangeCount!==1||st.anchorNode!==ct.node||st.anchorOffset!==ct.offset||st.focusNode!==ft.node||st.focusOffset!==ft.offset)&&(at=at.createRange(),at.setStart(ct.node,ct.offset),st.removeAllRanges(),pt>dt?(st.addRange(at),st.extend(ft.node,ft.offset)):(at.setEnd(ft.node,ft.offset),st.addRange(at)))}}for(at=[],st=ut;st=st.parentNode;)st.nodeType===1&&at.push({element:st,left:st.scrollLeft,top:st.scrollTop});for(typeof ut.focus=="function"&&ut.focus(),ut=0;ut=document.documentMode,Qe$1=null,Re$1=null,Se$1=null,Te=!1;function Ue(st,at,ut){var dt=ut.window===ut?ut.document:ut.nodeType===9?ut:ut.ownerDocument;Te||Qe$1==null||Qe$1!==Xa(dt)||(dt=Qe$1,"selectionStart"in dt&&Ne$2(dt)?dt={start:dt.selectionStart,end:dt.selectionEnd}:(dt=(dt.ownerDocument&&dt.ownerDocument.defaultView||window).getSelection(),dt={anchorNode:dt.anchorNode,anchorOffset:dt.anchorOffset,focusNode:dt.focusNode,focusOffset:dt.focusOffset}),Se$1&&Ie(Se$1,dt)||(Se$1=dt,dt=oe(Re$1,"onSelect"),0Tf||(st.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G$1(st,at){Tf++,Sf[Tf]=st.current,st.current=at}var Vf={},H$1=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(st,at){var ut=st.type.contextTypes;if(!ut)return Vf;var dt=st.stateNode;if(dt&&dt.__reactInternalMemoizedUnmaskedChildContext===at)return dt.__reactInternalMemoizedMaskedChildContext;var ct={},pt;for(pt in ut)ct[pt]=at[pt];return dt&&(st=st.stateNode,st.__reactInternalMemoizedUnmaskedChildContext=at,st.__reactInternalMemoizedMaskedChildContext=ct),ct}function Zf(st){return st=st.childContextTypes,st!=null}function $f(){E$1(Wf),E$1(H$1)}function ag(st,at,ut){if(H$1.current!==Vf)throw Error(p$3(168));G$1(H$1,at),G$1(Wf,ut)}function bg(st,at,ut){var dt=st.stateNode;if(at=at.childContextTypes,typeof dt.getChildContext!="function")return ut;dt=dt.getChildContext();for(var ct in dt)if(!(ct in at))throw Error(p$3(108,Ra(st)||"Unknown",ct));return A$2({},ut,dt)}function cg(st){return st=(st=st.stateNode)&&st.__reactInternalMemoizedMergedChildContext||Vf,Xf=H$1.current,G$1(H$1,st),G$1(Wf,Wf.current),!0}function dg(st,at,ut){var dt=st.stateNode;if(!dt)throw Error(p$3(169));ut?(st=bg(st,at,Xf),dt.__reactInternalMemoizedMergedChildContext=st,E$1(Wf),E$1(H$1),G$1(H$1,st)):E$1(Wf),G$1(Wf,ut)}var eg=null,fg=!1,gg=!1;function hg(st){eg===null?eg=[st]:eg.push(st)}function ig(st){fg=!0,hg(st)}function jg(){if(!gg&&eg!==null){gg=!0;var st=0,at=C$2;try{var ut=eg;for(C$2=1;st>=ft,ct-=ft,rg=1<<32-oc(at)+ct|ut<Ot?(zt=Lt,Lt=null):zt=Lt.sibling;var Mt=St(_t,Lt,Ct[Ot],kt);if(Mt===null){Lt===null&&(Lt=zt);break}st&&Lt&&Mt.alternate===null&&at(_t,Lt),xt=pt(Mt,xt,Ot),$t===null?wt=Mt:$t.sibling=Mt,$t=Mt,Lt=zt}if(Ot===Ct.length)return ut(_t,Lt),I$5&&tg(_t,Ot),wt;if(Lt===null){for(;OtOt?(zt=Lt,Lt=null):zt=Lt.sibling;var qt=St(_t,Lt,Mt.value,kt);if(qt===null){Lt===null&&(Lt=zt);break}st&&Lt&&qt.alternate===null&&at(_t,Lt),xt=pt(qt,xt,Ot),$t===null?wt=qt:$t.sibling=qt,$t=qt,Lt=zt}if(Mt.done)return ut(_t,Lt),I$5&&tg(_t,Ot),wt;if(Lt===null){for(;!Mt.done;Ot++,Mt=Ct.next())Mt=Tt(_t,Mt.value,kt),Mt!==null&&(xt=pt(Mt,xt,Ot),$t===null?wt=Mt:$t.sibling=Mt,$t=Mt);return I$5&&tg(_t,Ot),wt}for(Lt=dt(_t,Lt);!Mt.done;Ot++,Mt=Ct.next())Mt=At(Lt,_t,Ot,Mt.value,kt),Mt!==null&&(st&&Mt.alternate!==null&&Lt.delete(Mt.key===null?Ot:Mt.key),xt=pt(Mt,xt,Ot),$t===null?wt=Mt:$t.sibling=Mt,$t=Mt);return st&&Lt.forEach(function(Qt){return at(_t,Qt)}),I$5&&tg(_t,Ot),wt}function Et(_t,xt,Ct,kt){if(typeof Ct=="object"&&Ct!==null&&Ct.type===ya&&Ct.key===null&&(Ct=Ct.props.children),typeof Ct=="object"&&Ct!==null){switch(Ct.$$typeof){case va:e:{for(var wt=Ct.key,$t=xt;$t!==null;){if($t.key===wt){if(wt=Ct.type,wt===ya){if($t.tag===7){ut(_t,$t.sibling),xt=ct($t,Ct.props.children),xt.return=_t,_t=xt;break e}}else if($t.elementType===wt||typeof wt=="object"&&wt!==null&&wt.$$typeof===Ha&&Ng(wt)===$t.type){ut(_t,$t.sibling),xt=ct($t,Ct.props),xt.ref=Lg(_t,$t,Ct),xt.return=_t,_t=xt;break e}ut(_t,$t);break}else at(_t,$t);$t=$t.sibling}Ct.type===ya?(xt=Tg(Ct.props.children,_t.mode,kt,Ct.key),xt.return=_t,_t=xt):(kt=Rg(Ct.type,Ct.key,Ct.props,null,_t.mode,kt),kt.ref=Lg(_t,xt,Ct),kt.return=_t,_t=kt)}return ft(_t);case wa:e:{for($t=Ct.key;xt!==null;){if(xt.key===$t)if(xt.tag===4&&xt.stateNode.containerInfo===Ct.containerInfo&&xt.stateNode.implementation===Ct.implementation){ut(_t,xt.sibling),xt=ct(xt,Ct.children||[]),xt.return=_t,_t=xt;break e}else{ut(_t,xt);break}else at(_t,xt);xt=xt.sibling}xt=Sg(Ct,_t.mode,kt),xt.return=_t,_t=xt}return ft(_t);case Ha:return $t=Ct._init,Et(_t,xt,$t(Ct._payload),kt)}if(eb(Ct))return vt(_t,xt,Ct,kt);if(Ka(Ct))return Dt(_t,xt,Ct,kt);Mg(_t,Ct)}return typeof Ct=="string"&&Ct!==""||typeof Ct=="number"?(Ct=""+Ct,xt!==null&&xt.tag===6?(ut(_t,xt.sibling),xt=ct(xt,Ct),xt.return=_t,_t=xt):(ut(_t,xt),xt=Qg(Ct,_t.mode,kt),xt.return=_t,_t=xt),ft(_t)):ut(_t,xt)}return Et}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(st){var at=Wg.current;E$1(Wg),st._currentValue=at}function bh(st,at,ut){for(;st!==null;){var dt=st.alternate;if((st.childLanes&at)!==at?(st.childLanes|=at,dt!==null&&(dt.childLanes|=at)):dt!==null&&(dt.childLanes&at)!==at&&(dt.childLanes|=at),st===ut)break;st=st.return}}function ch(st,at){Xg=st,Zg=Yg=null,st=st.dependencies,st!==null&&st.firstContext!==null&&(st.lanes&at&&(dh=!0),st.firstContext=null)}function eh(st){var at=st._currentValue;if(Zg!==st)if(st={context:st,memoizedValue:at,next:null},Yg===null){if(Xg===null)throw Error(p$3(308));Yg=st,Xg.dependencies={lanes:0,firstContext:st}}else Yg=Yg.next=st;return at}var fh=null;function gh(st){fh===null?fh=[st]:fh.push(st)}function hh(st,at,ut,dt){var ct=at.interleaved;return ct===null?(ut.next=ut,gh(at)):(ut.next=ct.next,ct.next=ut),at.interleaved=ut,ih(st,dt)}function ih(st,at){st.lanes|=at;var ut=st.alternate;for(ut!==null&&(ut.lanes|=at),ut=st,st=st.return;st!==null;)st.childLanes|=at,ut=st.alternate,ut!==null&&(ut.childLanes|=at),ut=st,st=st.return;return ut.tag===3?ut.stateNode:null}var jh=!1;function kh(st){st.updateQueue={baseState:st.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function lh(st,at){st=st.updateQueue,at.updateQueue===st&&(at.updateQueue={baseState:st.baseState,firstBaseUpdate:st.firstBaseUpdate,lastBaseUpdate:st.lastBaseUpdate,shared:st.shared,effects:st.effects})}function mh(st,at){return{eventTime:st,lane:at,tag:0,payload:null,callback:null,next:null}}function nh(st,at,ut){var dt=st.updateQueue;if(dt===null)return null;if(dt=dt.shared,K&2){var ct=dt.pending;return ct===null?at.next=at:(at.next=ct.next,ct.next=at),dt.pending=at,ih(st,ut)}return ct=dt.interleaved,ct===null?(at.next=at,gh(dt)):(at.next=ct.next,ct.next=at),dt.interleaved=at,ih(st,ut)}function oh(st,at,ut){if(at=at.updateQueue,at!==null&&(at=at.shared,(ut&4194240)!==0)){var dt=at.lanes;dt&=st.pendingLanes,ut|=dt,at.lanes=ut,Cc(st,ut)}}function ph(st,at){var ut=st.updateQueue,dt=st.alternate;if(dt!==null&&(dt=dt.updateQueue,ut===dt)){var ct=null,pt=null;if(ut=ut.firstBaseUpdate,ut!==null){do{var ft={eventTime:ut.eventTime,lane:ut.lane,tag:ut.tag,payload:ut.payload,callback:ut.callback,next:null};pt===null?ct=pt=ft:pt=pt.next=ft,ut=ut.next}while(ut!==null);pt===null?ct=pt=at:pt=pt.next=at}else ct=pt=at;ut={baseState:dt.baseState,firstBaseUpdate:ct,lastBaseUpdate:pt,shared:dt.shared,effects:dt.effects},st.updateQueue=ut;return}st=ut.lastBaseUpdate,st===null?ut.firstBaseUpdate=at:st.next=at,ut.lastBaseUpdate=at}function qh(st,at,ut,dt){var ct=st.updateQueue;jh=!1;var pt=ct.firstBaseUpdate,ft=ct.lastBaseUpdate,ht=ct.shared.pending;if(ht!==null){ct.shared.pending=null;var mt=ht,yt=mt.next;mt.next=null,ft===null?pt=yt:ft.next=yt,ft=mt;var bt=st.alternate;bt!==null&&(bt=bt.updateQueue,ht=bt.lastBaseUpdate,ht!==ft&&(ht===null?bt.firstBaseUpdate=yt:ht.next=yt,bt.lastBaseUpdate=mt))}if(pt!==null){var Tt=ct.baseState;ft=0,bt=yt=mt=null,ht=pt;do{var St=ht.lane,At=ht.eventTime;if((dt&St)===St){bt!==null&&(bt=bt.next={eventTime:At,lane:0,tag:ht.tag,payload:ht.payload,callback:ht.callback,next:null});e:{var vt=st,Dt=ht;switch(St=at,At=ut,Dt.tag){case 1:if(vt=Dt.payload,typeof vt=="function"){Tt=vt.call(At,Tt,St);break e}Tt=vt;break e;case 3:vt.flags=vt.flags&-65537|128;case 0:if(vt=Dt.payload,St=typeof vt=="function"?vt.call(At,Tt,St):vt,St==null)break e;Tt=A$2({},Tt,St);break e;case 2:jh=!0}}ht.callback!==null&&ht.lane!==0&&(st.flags|=64,St=ct.effects,St===null?ct.effects=[ht]:St.push(ht))}else At={eventTime:At,lane:St,tag:ht.tag,payload:ht.payload,callback:ht.callback,next:null},bt===null?(yt=bt=At,mt=Tt):bt=bt.next=At,ft|=St;if(ht=ht.next,ht===null){if(ht=ct.shared.pending,ht===null)break;St=ht,ht=St.next,St.next=null,ct.lastBaseUpdate=St,ct.shared.pending=null}}while(!0);if(bt===null&&(mt=Tt),ct.baseState=mt,ct.firstBaseUpdate=yt,ct.lastBaseUpdate=bt,at=ct.shared.interleaved,at!==null){ct=at;do ft|=ct.lane,ct=ct.next;while(ct!==at)}else pt===null&&(ct.shared.lanes=0);rh|=ft,st.lanes=ft,st.memoizedState=Tt}}function sh(st,at,ut){if(st=at.effects,at.effects=null,st!==null)for(at=0;atut?ut:4,st(!0);var dt=Gh.transition;Gh.transition={};try{st(!1),at()}finally{C$2=ut,Gh.transition=dt}}function wi(){return Uh().memoizedState}function xi(st,at,ut){var dt=yi(st);if(ut={lane:dt,action:ut,hasEagerState:!1,eagerState:null,next:null},zi(st))Ai(at,ut);else if(ut=hh(st,at,ut,dt),ut!==null){var ct=R$2();gi(ut,st,dt,ct),Bi(ut,at,dt)}}function ii(st,at,ut){var dt=yi(st),ct={lane:dt,action:ut,hasEagerState:!1,eagerState:null,next:null};if(zi(st))Ai(at,ct);else{var pt=st.alternate;if(st.lanes===0&&(pt===null||pt.lanes===0)&&(pt=at.lastRenderedReducer,pt!==null))try{var ft=at.lastRenderedState,ht=pt(ft,ut);if(ct.hasEagerState=!0,ct.eagerState=ht,He$2(ht,ft)){var mt=at.interleaved;mt===null?(ct.next=ct,gh(at)):(ct.next=mt.next,mt.next=ct),at.interleaved=ct;return}}catch{}finally{}ut=hh(st,at,ct,dt),ut!==null&&(ct=R$2(),gi(ut,st,dt,ct),Bi(ut,at,dt))}}function zi(st){var at=st.alternate;return st===M$5||at!==null&&at===M$5}function Ai(st,at){Jh=Ih=!0;var ut=st.pending;ut===null?at.next=at:(at.next=ut.next,ut.next=at),st.pending=at}function Bi(st,at,ut){if(ut&4194240){var dt=at.lanes;dt&=st.pendingLanes,ut|=dt,at.lanes=ut,Cc(st,ut)}}var Rh={readContext:eh,useCallback:P$1,useContext:P$1,useEffect:P$1,useImperativeHandle:P$1,useInsertionEffect:P$1,useLayoutEffect:P$1,useMemo:P$1,useReducer:P$1,useRef:P$1,useState:P$1,useDebugValue:P$1,useDeferredValue:P$1,useTransition:P$1,useMutableSource:P$1,useSyncExternalStore:P$1,useId:P$1,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(st,at){return Th().memoizedState=[st,at===void 0?null:at],st},useContext:eh,useEffect:mi,useImperativeHandle:function(st,at,ut){return ut=ut!=null?ut.concat([st]):null,ki(4194308,4,pi.bind(null,at,st),ut)},useLayoutEffect:function(st,at){return ki(4194308,4,st,at)},useInsertionEffect:function(st,at){return ki(4,2,st,at)},useMemo:function(st,at){var ut=Th();return at=at===void 0?null:at,st=st(),ut.memoizedState=[st,at],st},useReducer:function(st,at,ut){var dt=Th();return at=ut!==void 0?ut(at):at,dt.memoizedState=dt.baseState=at,st={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:st,lastRenderedState:at},dt.queue=st,st=st.dispatch=xi.bind(null,M$5,st),[dt.memoizedState,st]},useRef:function(st){var at=Th();return st={current:st},at.memoizedState=st},useState:hi,useDebugValue:ri,useDeferredValue:function(st){return Th().memoizedState=st},useTransition:function(){var st=hi(!1),at=st[0];return st=vi.bind(null,st[1]),Th().memoizedState=st,[at,st]},useMutableSource:function(){},useSyncExternalStore:function(st,at,ut){var dt=M$5,ct=Th();if(I$5){if(ut===void 0)throw Error(p$3(407));ut=ut()}else{if(ut=at(),Q$1===null)throw Error(p$3(349));Hh&30||di(dt,at,ut)}ct.memoizedState=ut;var pt={value:ut,getSnapshot:at};return ct.queue=pt,mi(ai.bind(null,dt,pt,st),[st]),dt.flags|=2048,bi(9,ci.bind(null,dt,pt,ut,at),void 0,null),ut},useId:function(){var st=Th(),at=Q$1.identifierPrefix;if(I$5){var ut=sg,dt=rg;ut=(dt&~(1<<32-oc(dt)-1)).toString(32)+ut,at=":"+at+"R"+ut,ut=Kh++,0<\/script>",st=st.removeChild(st.firstChild)):typeof dt.is=="string"?st=ft.createElement(ut,{is:dt.is}):(st=ft.createElement(ut),ut==="select"&&(ft=st,dt.multiple?ft.multiple=!0:dt.size&&(ft.size=dt.size))):st=ft.createElementNS(st,ut),st[Of]=at,st[Pf]=dt,zj(st,at,!1,!1),at.stateNode=st;e:{switch(ft=vb(ut,dt),ut){case"dialog":D$3("cancel",st),D$3("close",st),ct=dt;break;case"iframe":case"object":case"embed":D$3("load",st),ct=dt;break;case"video":case"audio":for(ct=0;ctGj&&(at.flags|=128,dt=!0,Dj(pt,!1),at.lanes=4194304)}else{if(!dt)if(st=Ch(ft),st!==null){if(at.flags|=128,dt=!0,ut=st.updateQueue,ut!==null&&(at.updateQueue=ut,at.flags|=4),Dj(pt,!0),pt.tail===null&&pt.tailMode==="hidden"&&!ft.alternate&&!I$5)return S$2(at),null}else 2*B$1()-pt.renderingStartTime>Gj&&ut!==1073741824&&(at.flags|=128,dt=!0,Dj(pt,!1),at.lanes=4194304);pt.isBackwards?(ft.sibling=at.child,at.child=ft):(ut=pt.last,ut!==null?ut.sibling=ft:at.child=ft,pt.last=ft)}return pt.tail!==null?(at=pt.tail,pt.rendering=at,pt.tail=at.sibling,pt.renderingStartTime=B$1(),at.sibling=null,ut=L$2.current,G$1(L$2,dt?ut&1|2:ut&1),at):(S$2(at),null);case 22:case 23:return Hj(),dt=at.memoizedState!==null,st!==null&&st.memoizedState!==null!==dt&&(at.flags|=8192),dt&&at.mode&1?fj&1073741824&&(S$2(at),at.subtreeFlags&6&&(at.flags|=8192)):S$2(at),null;case 24:return null;case 25:return null}throw Error(p$3(156,at.tag))}function Ij(st,at){switch(wg(at),at.tag){case 1:return Zf(at.type)&&$f(),st=at.flags,st&65536?(at.flags=st&-65537|128,at):null;case 3:return zh(),E$1(Wf),E$1(H$1),Eh(),st=at.flags,st&65536&&!(st&128)?(at.flags=st&-65537|128,at):null;case 5:return Bh(at),null;case 13:if(E$1(L$2),st=at.memoizedState,st!==null&&st.dehydrated!==null){if(at.alternate===null)throw Error(p$3(340));Ig()}return st=at.flags,st&65536?(at.flags=st&-65537|128,at):null;case 19:return E$1(L$2),null;case 4:return zh(),null;case 10:return ah(at.type._context),null;case 22:case 23:return Hj(),null;case 24:return null;default:return null}}var Jj=!1,U$2=!1,Kj=typeof WeakSet=="function"?WeakSet:Set,V$1=null;function Lj(st,at){var ut=st.ref;if(ut!==null)if(typeof ut=="function")try{ut(null)}catch(dt){W(st,at,dt)}else ut.current=null}function Mj(st,at,ut){try{ut()}catch(dt){W(st,at,dt)}}var Nj=!1;function Oj(st,at){if(Cf=dd,st=Me(),Ne$2(st)){if("selectionStart"in st)var ut={start:st.selectionStart,end:st.selectionEnd};else e:{ut=(ut=st.ownerDocument)&&ut.defaultView||window;var dt=ut.getSelection&&ut.getSelection();if(dt&&dt.rangeCount!==0){ut=dt.anchorNode;var ct=dt.anchorOffset,pt=dt.focusNode;dt=dt.focusOffset;try{ut.nodeType,pt.nodeType}catch{ut=null;break e}var ft=0,ht=-1,mt=-1,yt=0,bt=0,Tt=st,St=null;t:for(;;){for(var At;Tt!==ut||ct!==0&&Tt.nodeType!==3||(ht=ft+ct),Tt!==pt||dt!==0&&Tt.nodeType!==3||(mt=ft+dt),Tt.nodeType===3&&(ft+=Tt.nodeValue.length),(At=Tt.firstChild)!==null;)St=Tt,Tt=At;for(;;){if(Tt===st)break t;if(St===ut&&++yt===ct&&(ht=ft),St===pt&&++bt===dt&&(mt=ft),(At=Tt.nextSibling)!==null)break;Tt=St,St=Tt.parentNode}Tt=At}ut=ht===-1||mt===-1?null:{start:ht,end:mt}}else ut=null}ut=ut||{start:0,end:0}}else ut=null;for(Df={focusedElem:st,selectionRange:ut},dd=!1,V$1=at;V$1!==null;)if(at=V$1,st=at.child,(at.subtreeFlags&1028)!==0&&st!==null)st.return=at,V$1=st;else for(;V$1!==null;){at=V$1;try{var vt=at.alternate;if(at.flags&1024)switch(at.tag){case 0:case 11:case 15:break;case 1:if(vt!==null){var Dt=vt.memoizedProps,Et=vt.memoizedState,_t=at.stateNode,xt=_t.getSnapshotBeforeUpdate(at.elementType===at.type?Dt:Ci(at.type,Dt),Et);_t.__reactInternalSnapshotBeforeUpdate=xt}break;case 3:var Ct=at.stateNode.containerInfo;Ct.nodeType===1?Ct.textContent="":Ct.nodeType===9&&Ct.documentElement&&Ct.removeChild(Ct.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p$3(163))}}catch(kt){W(at,at.return,kt)}if(st=at.sibling,st!==null){st.return=at.return,V$1=st;break}V$1=at.return}return vt=Nj,Nj=!1,vt}function Pj(st,at,ut){var dt=at.updateQueue;if(dt=dt!==null?dt.lastEffect:null,dt!==null){var ct=dt=dt.next;do{if((ct.tag&st)===st){var pt=ct.destroy;ct.destroy=void 0,pt!==void 0&&Mj(at,ut,pt)}ct=ct.next}while(ct!==dt)}}function Qj(st,at){if(at=at.updateQueue,at=at!==null?at.lastEffect:null,at!==null){var ut=at=at.next;do{if((ut.tag&st)===st){var dt=ut.create;ut.destroy=dt()}ut=ut.next}while(ut!==at)}}function Rj(st){var at=st.ref;if(at!==null){var ut=st.stateNode;switch(st.tag){case 5:st=ut;break;default:st=ut}typeof at=="function"?at(st):at.current=st}}function Sj(st){var at=st.alternate;at!==null&&(st.alternate=null,Sj(at)),st.child=null,st.deletions=null,st.sibling=null,st.tag===5&&(at=st.stateNode,at!==null&&(delete at[Of],delete at[Pf],delete at[of],delete at[Qf],delete at[Rf])),st.stateNode=null,st.return=null,st.dependencies=null,st.memoizedProps=null,st.memoizedState=null,st.pendingProps=null,st.stateNode=null,st.updateQueue=null}function Tj(st){return st.tag===5||st.tag===3||st.tag===4}function Uj(st){e:for(;;){for(;st.sibling===null;){if(st.return===null||Tj(st.return))return null;st=st.return}for(st.sibling.return=st.return,st=st.sibling;st.tag!==5&&st.tag!==6&&st.tag!==18;){if(st.flags&2||st.child===null||st.tag===4)continue e;st.child.return=st,st=st.child}if(!(st.flags&2))return st.stateNode}}function Vj(st,at,ut){var dt=st.tag;if(dt===5||dt===6)st=st.stateNode,at?ut.nodeType===8?ut.parentNode.insertBefore(st,at):ut.insertBefore(st,at):(ut.nodeType===8?(at=ut.parentNode,at.insertBefore(st,ut)):(at=ut,at.appendChild(st)),ut=ut._reactRootContainer,ut!=null||at.onclick!==null||(at.onclick=Bf));else if(dt!==4&&(st=st.child,st!==null))for(Vj(st,at,ut),st=st.sibling;st!==null;)Vj(st,at,ut),st=st.sibling}function Wj(st,at,ut){var dt=st.tag;if(dt===5||dt===6)st=st.stateNode,at?ut.insertBefore(st,at):ut.appendChild(st);else if(dt!==4&&(st=st.child,st!==null))for(Wj(st,at,ut),st=st.sibling;st!==null;)Wj(st,at,ut),st=st.sibling}var X$1=null,Xj=!1;function Yj(st,at,ut){for(ut=ut.child;ut!==null;)Zj(st,at,ut),ut=ut.sibling}function Zj(st,at,ut){if(lc&&typeof lc.onCommitFiberUnmount=="function")try{lc.onCommitFiberUnmount(kc,ut)}catch{}switch(ut.tag){case 5:U$2||Lj(ut,at);case 6:var dt=X$1,ct=Xj;X$1=null,Yj(st,at,ut),X$1=dt,Xj=ct,X$1!==null&&(Xj?(st=X$1,ut=ut.stateNode,st.nodeType===8?st.parentNode.removeChild(ut):st.removeChild(ut)):X$1.removeChild(ut.stateNode));break;case 18:X$1!==null&&(Xj?(st=X$1,ut=ut.stateNode,st.nodeType===8?Kf(st.parentNode,ut):st.nodeType===1&&Kf(st,ut),bd(st)):Kf(X$1,ut.stateNode));break;case 4:dt=X$1,ct=Xj,X$1=ut.stateNode.containerInfo,Xj=!0,Yj(st,at,ut),X$1=dt,Xj=ct;break;case 0:case 11:case 14:case 15:if(!U$2&&(dt=ut.updateQueue,dt!==null&&(dt=dt.lastEffect,dt!==null))){ct=dt=dt.next;do{var pt=ct,ft=pt.destroy;pt=pt.tag,ft!==void 0&&(pt&2||pt&4)&&Mj(ut,at,ft),ct=ct.next}while(ct!==dt)}Yj(st,at,ut);break;case 1:if(!U$2&&(Lj(ut,at),dt=ut.stateNode,typeof dt.componentWillUnmount=="function"))try{dt.props=ut.memoizedProps,dt.state=ut.memoizedState,dt.componentWillUnmount()}catch(ht){W(ut,at,ht)}Yj(st,at,ut);break;case 21:Yj(st,at,ut);break;case 22:ut.mode&1?(U$2=(dt=U$2)||ut.memoizedState!==null,Yj(st,at,ut),U$2=dt):Yj(st,at,ut);break;default:Yj(st,at,ut)}}function ak(st){var at=st.updateQueue;if(at!==null){st.updateQueue=null;var ut=st.stateNode;ut===null&&(ut=st.stateNode=new Kj),at.forEach(function(dt){var ct=bk.bind(null,st,dt);ut.has(dt)||(ut.add(dt),dt.then(ct,ct))})}}function ck(st,at){var ut=at.deletions;if(ut!==null)for(var dt=0;dtct&&(ct=ft),dt&=~pt}if(dt=ct,dt=B$1()-dt,dt=(120>dt?120:480>dt?480:1080>dt?1080:1920>dt?1920:3e3>dt?3e3:4320>dt?4320:1960*lk(dt/1960))-dt,10st?16:st,wk===null)var dt=!1;else{if(st=wk,wk=null,xk=0,K&6)throw Error(p$3(331));var ct=K;for(K|=4,V$1=st.current;V$1!==null;){var pt=V$1,ft=pt.child;if(V$1.flags&16){var ht=pt.deletions;if(ht!==null){for(var mt=0;mtB$1()-fk?Kk(st,0):rk|=ut),Dk(st,at)}function Yk(st,at){at===0&&(st.mode&1?(at=sc,sc<<=1,!(sc&130023424)&&(sc=4194304)):at=1);var ut=R$2();st=ih(st,at),st!==null&&(Ac(st,at,ut),Dk(st,ut))}function uj(st){var at=st.memoizedState,ut=0;at!==null&&(ut=at.retryLane),Yk(st,ut)}function bk(st,at){var ut=0;switch(st.tag){case 13:var dt=st.stateNode,ct=st.memoizedState;ct!==null&&(ut=ct.retryLane);break;case 19:dt=st.stateNode;break;default:throw Error(p$3(314))}dt!==null&&dt.delete(at),Yk(st,ut)}var Vk;Vk=function(st,at,ut){if(st!==null)if(st.memoizedProps!==at.pendingProps||Wf.current)dh=!0;else{if(!(st.lanes&ut)&&!(at.flags&128))return dh=!1,yj(st,at,ut);dh=!!(st.flags&131072)}else dh=!1,I$5&&at.flags&1048576&&ug(at,ng,at.index);switch(at.lanes=0,at.tag){case 2:var dt=at.type;ij(st,at),st=at.pendingProps;var ct=Yf(at,H$1.current);ch(at,ut),ct=Nh(null,at,dt,st,ct,ut);var pt=Sh();return at.flags|=1,typeof ct=="object"&&ct!==null&&typeof ct.render=="function"&&ct.$$typeof===void 0?(at.tag=1,at.memoizedState=null,at.updateQueue=null,Zf(dt)?(pt=!0,cg(at)):pt=!1,at.memoizedState=ct.state!==null&&ct.state!==void 0?ct.state:null,kh(at),ct.updater=Ei,at.stateNode=ct,ct._reactInternals=at,Ii(at,dt,st,ut),at=jj(null,at,dt,!0,pt,ut)):(at.tag=0,I$5&&pt&&vg(at),Xi(null,at,ct,ut),at=at.child),at;case 16:dt=at.elementType;e:{switch(ij(st,at),st=at.pendingProps,ct=dt._init,dt=ct(dt._payload),at.type=dt,ct=at.tag=Zk(dt),st=Ci(dt,st),ct){case 0:at=cj(null,at,dt,st,ut);break e;case 1:at=hj(null,at,dt,st,ut);break e;case 11:at=Yi(null,at,dt,st,ut);break e;case 14:at=$i(null,at,dt,Ci(dt.type,st),ut);break e}throw Error(p$3(306,dt,""))}return at;case 0:return dt=at.type,ct=at.pendingProps,ct=at.elementType===dt?ct:Ci(dt,ct),cj(st,at,dt,ct,ut);case 1:return dt=at.type,ct=at.pendingProps,ct=at.elementType===dt?ct:Ci(dt,ct),hj(st,at,dt,ct,ut);case 3:e:{if(kj(at),st===null)throw Error(p$3(387));dt=at.pendingProps,pt=at.memoizedState,ct=pt.element,lh(st,at),qh(at,dt,null,ut);var ft=at.memoizedState;if(dt=ft.element,pt.isDehydrated)if(pt={element:dt,isDehydrated:!1,cache:ft.cache,pendingSuspenseBoundaries:ft.pendingSuspenseBoundaries,transitions:ft.transitions},at.updateQueue.baseState=pt,at.memoizedState=pt,at.flags&256){ct=Ji(Error(p$3(423)),at),at=lj(st,at,dt,ut,ct);break e}else if(dt!==ct){ct=Ji(Error(p$3(424)),at),at=lj(st,at,dt,ut,ct);break e}else for(yg=Lf(at.stateNode.containerInfo.firstChild),xg=at,I$5=!0,zg=null,ut=Vg(at,null,dt,ut),at.child=ut;ut;)ut.flags=ut.flags&-3|4096,ut=ut.sibling;else{if(Ig(),dt===ct){at=Zi(st,at,ut);break e}Xi(st,at,dt,ut)}at=at.child}return at;case 5:return Ah(at),st===null&&Eg(at),dt=at.type,ct=at.pendingProps,pt=st!==null?st.memoizedProps:null,ft=ct.children,Ef(dt,ct)?ft=null:pt!==null&&Ef(dt,pt)&&(at.flags|=32),gj(st,at),Xi(st,at,ft,ut),at.child;case 6:return st===null&&Eg(at),null;case 13:return oj(st,at,ut);case 4:return yh(at,at.stateNode.containerInfo),dt=at.pendingProps,st===null?at.child=Ug(at,null,dt,ut):Xi(st,at,dt,ut),at.child;case 11:return dt=at.type,ct=at.pendingProps,ct=at.elementType===dt?ct:Ci(dt,ct),Yi(st,at,dt,ct,ut);case 7:return Xi(st,at,at.pendingProps,ut),at.child;case 8:return Xi(st,at,at.pendingProps.children,ut),at.child;case 12:return Xi(st,at,at.pendingProps.children,ut),at.child;case 10:e:{if(dt=at.type._context,ct=at.pendingProps,pt=at.memoizedProps,ft=ct.value,G$1(Wg,dt._currentValue),dt._currentValue=ft,pt!==null)if(He$2(pt.value,ft)){if(pt.children===ct.children&&!Wf.current){at=Zi(st,at,ut);break e}}else for(pt=at.child,pt!==null&&(pt.return=at);pt!==null;){var ht=pt.dependencies;if(ht!==null){ft=pt.child;for(var mt=ht.firstContext;mt!==null;){if(mt.context===dt){if(pt.tag===1){mt=mh(-1,ut&-ut),mt.tag=2;var yt=pt.updateQueue;if(yt!==null){yt=yt.shared;var bt=yt.pending;bt===null?mt.next=mt:(mt.next=bt.next,bt.next=mt),yt.pending=mt}}pt.lanes|=ut,mt=pt.alternate,mt!==null&&(mt.lanes|=ut),bh(pt.return,ut,at),ht.lanes|=ut;break}mt=mt.next}}else if(pt.tag===10)ft=pt.type===at.type?null:pt.child;else if(pt.tag===18){if(ft=pt.return,ft===null)throw Error(p$3(341));ft.lanes|=ut,ht=ft.alternate,ht!==null&&(ht.lanes|=ut),bh(ft,ut,at),ft=pt.sibling}else ft=pt.child;if(ft!==null)ft.return=pt;else for(ft=pt;ft!==null;){if(ft===at){ft=null;break}if(pt=ft.sibling,pt!==null){pt.return=ft.return,ft=pt;break}ft=ft.return}pt=ft}Xi(st,at,ct.children,ut),at=at.child}return at;case 9:return ct=at.type,dt=at.pendingProps.children,ch(at,ut),ct=eh(ct),dt=dt(ct),at.flags|=1,Xi(st,at,dt,ut),at.child;case 14:return dt=at.type,ct=Ci(dt,at.pendingProps),ct=Ci(dt.type,ct),$i(st,at,dt,ct,ut);case 15:return bj(st,at,at.type,at.pendingProps,ut);case 17:return dt=at.type,ct=at.pendingProps,ct=at.elementType===dt?ct:Ci(dt,ct),ij(st,at),at.tag=1,Zf(dt)?(st=!0,cg(at)):st=!1,ch(at,ut),Gi(at,dt,ct),Ii(at,dt,ct,ut),jj(null,at,dt,!0,st,ut);case 19:return xj(st,at,ut);case 22:return dj(st,at,ut)}throw Error(p$3(156,at.tag))};function Fk(st,at){return ac(st,at)}function $k(st,at,ut,dt){this.tag=st,this.key=ut,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=at,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=dt,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Bg(st,at,ut,dt){return new $k(st,at,ut,dt)}function aj(st){return st=st.prototype,!(!st||!st.isReactComponent)}function Zk(st){if(typeof st=="function")return aj(st)?1:0;if(st!=null){if(st=st.$$typeof,st===Da)return 11;if(st===Ga)return 14}return 2}function Pg(st,at){var ut=st.alternate;return ut===null?(ut=Bg(st.tag,at,st.key,st.mode),ut.elementType=st.elementType,ut.type=st.type,ut.stateNode=st.stateNode,ut.alternate=st,st.alternate=ut):(ut.pendingProps=at,ut.type=st.type,ut.flags=0,ut.subtreeFlags=0,ut.deletions=null),ut.flags=st.flags&14680064,ut.childLanes=st.childLanes,ut.lanes=st.lanes,ut.child=st.child,ut.memoizedProps=st.memoizedProps,ut.memoizedState=st.memoizedState,ut.updateQueue=st.updateQueue,at=st.dependencies,ut.dependencies=at===null?null:{lanes:at.lanes,firstContext:at.firstContext},ut.sibling=st.sibling,ut.index=st.index,ut.ref=st.ref,ut}function Rg(st,at,ut,dt,ct,pt){var ft=2;if(dt=st,typeof st=="function")aj(st)&&(ft=1);else if(typeof st=="string")ft=5;else e:switch(st){case ya:return Tg(ut.children,ct,pt,at);case za:ft=8,ct|=8;break;case Aa:return st=Bg(12,ut,at,ct|2),st.elementType=Aa,st.lanes=pt,st;case Ea:return st=Bg(13,ut,at,ct),st.elementType=Ea,st.lanes=pt,st;case Fa:return st=Bg(19,ut,at,ct),st.elementType=Fa,st.lanes=pt,st;case Ia:return pj(ut,ct,pt,at);default:if(typeof st=="object"&&st!==null)switch(st.$$typeof){case Ba:ft=10;break e;case Ca:ft=9;break e;case Da:ft=11;break e;case Ga:ft=14;break e;case Ha:ft=16,dt=null;break e}throw Error(p$3(130,st==null?st:typeof st,""))}return at=Bg(ft,ut,at,ct),at.elementType=st,at.type=dt,at.lanes=pt,at}function Tg(st,at,ut,dt){return st=Bg(7,st,dt,at),st.lanes=ut,st}function pj(st,at,ut,dt){return st=Bg(22,st,dt,at),st.elementType=Ia,st.lanes=ut,st.stateNode={isHidden:!1},st}function Qg(st,at,ut){return st=Bg(6,st,null,at),st.lanes=ut,st}function Sg(st,at,ut){return at=Bg(4,st.children!==null?st.children:[],st.key,at),at.lanes=ut,at.stateNode={containerInfo:st.containerInfo,pendingChildren:null,implementation:st.implementation},at}function al(st,at,ut,dt,ct){this.tag=at,this.containerInfo=st,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=zc(0),this.expirationTimes=zc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=zc(0),this.identifierPrefix=dt,this.onRecoverableError=ct,this.mutableSourceEagerHydrationData=null}function bl(st,at,ut,dt,ct,pt,ft,ht,mt){return st=new al(st,at,ut,ht,mt),at===1?(at=1,pt===!0&&(at|=8)):at=0,pt=Bg(3,null,null,at),st.current=pt,pt.stateNode=st,pt.memoizedState={element:dt,isDehydrated:ut,cache:null,transitions:null,pendingSuspenseBoundaries:null},kh(pt),st}function cl(st,at,ut){var dt=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE)}catch(st){console.error(st)}}checkDCE(),reactDom.exports=reactDom_production_min;var reactDomExports=reactDom.exports,createRoot,m$2=reactDomExports;createRoot=m$2.createRoot,m$2.hydrateRoot;/** * @remix-run/router v1.23.0 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function _extends$3(){return _extends$3=Object.assign?Object.assign.bind():function(st){for(var at=1;at"u")throw new Error(at)}function warning(st,at){if(!st){typeof console<"u"&&console.warn(at);try{throw new Error(at)}catch{}}}function createKey$1(){return Math.random().toString(36).substr(2,8)}function getHistoryState(st,at){return{usr:st.state,key:st.key,idx:at}}function createLocation(st,at,ut,dt){return ut===void 0&&(ut=null),_extends$3({pathname:typeof st=="string"?st:st.pathname,search:"",hash:""},typeof at=="string"?parsePath(at):at,{state:ut,key:at&&at.key||dt||createKey$1()})}function createPath(st){let{pathname:at="/",search:ut="",hash:dt=""}=st;return ut&&ut!=="?"&&(at+=ut.charAt(0)==="?"?ut:"?"+ut),dt&&dt!=="#"&&(at+=dt.charAt(0)==="#"?dt:"#"+dt),at}function parsePath(st){let at={};if(st){let ut=st.indexOf("#");ut>=0&&(at.hash=st.substr(ut),st=st.substr(0,ut));let dt=st.indexOf("?");dt>=0&&(at.search=st.substr(dt),st=st.substr(0,dt)),st&&(at.pathname=st)}return at}function getUrlBasedHistory(st,at,ut,dt){dt===void 0&&(dt={});let{window:ct=document.defaultView,v5Compat:pt=!1}=dt,ft=ct.history,ht=Action.Pop,mt=null,yt=bt();yt==null&&(yt=0,ft.replaceState(_extends$3({},ft.state,{idx:yt}),""));function bt(){return(ft.state||{idx:null}).idx}function Tt(){ht=Action.Pop;let Et=bt(),_t=Et==null?null:Et-yt;yt=Et,mt&&mt({action:ht,location:Dt.location,delta:_t})}function St(Et,_t){ht=Action.Push;let xt=createLocation(Dt.location,Et,_t);ut&&ut(xt,Et),yt=bt()+1;let Ct=getHistoryState(xt,yt),kt=Dt.createHref(xt);try{ft.pushState(Ct,"",kt)}catch(wt){if(wt instanceof DOMException&&wt.name==="DataCloneError")throw wt;ct.location.assign(kt)}pt&&mt&&mt({action:ht,location:Dt.location,delta:1})}function At(Et,_t){ht=Action.Replace;let xt=createLocation(Dt.location,Et,_t);ut&&ut(xt,Et),yt=bt();let Ct=getHistoryState(xt,yt),kt=Dt.createHref(xt);ft.replaceState(Ct,"",kt),pt&&mt&&mt({action:ht,location:Dt.location,delta:0})}function vt(Et){let _t=ct.location.origin!=="null"?ct.location.origin:ct.location.href,xt=typeof Et=="string"?Et:createPath(Et);return xt=xt.replace(/ $/,"%20"),invariant(_t,"No window.location.(origin|href) available to create URL for href: "+xt),new URL(xt,_t)}let Dt={get action(){return ht},get location(){return st(ct,ft)},listen(Et){if(mt)throw new Error("A history only accepts one active listener");return ct.addEventListener(PopStateEventType,Tt),mt=Et,()=>{ct.removeEventListener(PopStateEventType,Tt),mt=null}},createHref(Et){return at(ct,Et)},createURL:vt,encodeLocation(Et){let _t=vt(Et);return{pathname:_t.pathname,search:_t.search,hash:_t.hash}},push:St,replace:At,go(Et){return ft.go(Et)}};return Dt}var ResultType;(function(st){st.data="data",st.deferred="deferred",st.redirect="redirect",st.error="error"})(ResultType||(ResultType={}));function matchRoutes(st,at,ut){return ut===void 0&&(ut="/"),matchRoutesImpl(st,at,ut)}function matchRoutesImpl(st,at,ut,dt){let ct=typeof at=="string"?parsePath(at):at,pt=stripBasename(ct.pathname||"/",ut);if(pt==null)return null;let ft=flattenRoutes(st);rankRouteBranches(ft);let ht=null;for(let mt=0;ht==null&&mt{let mt={relativePath:ht===void 0?pt.path||"":ht,caseSensitive:pt.caseSensitive===!0,childrenIndex:ft,route:pt};mt.relativePath.startsWith("/")&&(invariant(mt.relativePath.startsWith(dt),'Absolute route path "'+mt.relativePath+'" nested under path '+('"'+dt+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),mt.relativePath=mt.relativePath.slice(dt.length));let yt=joinPaths([dt,mt.relativePath]),bt=ut.concat(mt);pt.children&&pt.children.length>0&&(invariant(pt.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+yt+'".')),flattenRoutes(pt.children,at,bt,yt)),!(pt.path==null&&!pt.index)&&at.push({path:yt,score:computeScore$2(yt,pt.index),routesMeta:bt})};return st.forEach((pt,ft)=>{var ht;if(pt.path===""||!((ht=pt.path)!=null&&ht.includes("?")))ct(pt,ft);else for(let mt of explodeOptionalSegments(pt.path))ct(pt,ft,mt)}),at}function explodeOptionalSegments(st){let at=st.split("/");if(at.length===0)return[];let[ut,...dt]=at,ct=ut.endsWith("?"),pt=ut.replace(/\?$/,"");if(dt.length===0)return ct?[pt,""]:[pt];let ft=explodeOptionalSegments(dt.join("/")),ht=[];return ht.push(...ft.map(mt=>mt===""?pt:[pt,mt].join("/"))),ct&&ht.push(...ft),ht.map(mt=>st.startsWith("/")&&mt===""?"/":mt)}function rankRouteBranches(st){st.sort((at,ut)=>at.score!==ut.score?ut.score-at.score:compareIndexes(at.routesMeta.map(dt=>dt.childrenIndex),ut.routesMeta.map(dt=>dt.childrenIndex)))}const paramRe=/^:[\w-]+$/,dynamicSegmentValue=3,indexRouteValue=2,emptySegmentValue=1,staticSegmentValue=10,splatPenalty=-2,isSplat=st=>st==="*";function computeScore$2(st,at){let ut=st.split("/"),dt=ut.length;return ut.some(isSplat)&&(dt+=splatPenalty),at&&(dt+=indexRouteValue),ut.filter(ct=>!isSplat(ct)).reduce((ct,pt)=>ct+(paramRe.test(pt)?dynamicSegmentValue:pt===""?emptySegmentValue:staticSegmentValue),dt)}function compareIndexes(st,at){return st.length===at.length&&st.slice(0,-1).every((dt,ct)=>dt===at[ct])?st[st.length-1]-at[at.length-1]:0}function matchRouteBranch(st,at,ut){let{routesMeta:dt}=st,ct={},pt="/",ft=[];for(let ht=0;htft==null?"":typeof ft=="string"?ft:String(ft),pt=ut.split(/\/+/).map((ft,ht,mt)=>{if(ht===mt.length-1&&ft==="*")return ct(at["*"]);const bt=ft.match(/^:([\w-]+)(\??)$/);if(bt){const[,Tt,St]=bt;let At=at[Tt];return invariant(St==="?"||At!=null,'Missing ":'+Tt+'" param'),ct(At)}return ft.replace(/\?$/g,"")}).filter(ft=>!!ft);return dt+pt.join("/")}function matchPath(st,at){typeof st=="string"&&(st={path:st,caseSensitive:!1,end:!0});let[ut,dt]=compilePath(st.path,st.caseSensitive,st.end),ct=at.match(ut);if(!ct)return null;let pt=ct[0],ft=pt.replace(/(.)\/+$/,"$1"),ht=ct.slice(1);return{params:dt.reduce((yt,bt,Tt)=>{let{paramName:St,isOptional:At}=bt;if(St==="*"){let Dt=ht[Tt]||"";ft=pt.slice(0,pt.length-Dt.length).replace(/(.)\/+$/,"$1")}const vt=ht[Tt];return At&&!vt?yt[St]=void 0:yt[St]=(vt||"").replace(/%2F/g,"/"),yt},{}),pathname:pt,pathnameBase:ft,pattern:st}}function compilePath(st,at,ut){at===void 0&&(at=!1),ut===void 0&&(ut=!0),warning(st==="*"||!st.endsWith("*")||st.endsWith("/*"),'Route path "'+st+'" will be treated as if it were '+('"'+st.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+st.replace(/\*$/,"/*")+'".'));let dt=[],ct="^"+st.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(ft,ht,mt)=>(dt.push({paramName:ht,isOptional:mt!=null}),mt?"/?([^\\/]+)?":"/([^\\/]+)"));return st.endsWith("*")?(dt.push({paramName:"*"}),ct+=st==="*"||st==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):ut?ct+="\\/*$":st!==""&&st!=="/"&&(ct+="(?:(?=\\/|$))"),[new RegExp(ct,at?void 0:"i"),dt]}function decodePath(st){try{return st.split("/").map(at=>decodeURIComponent(at).replace(/\//g,"%2F")).join("/")}catch(at){return warning(!1,'The URL path "'+st+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+at+").")),st}}function stripBasename(st,at){if(at==="/")return st;if(!st.toLowerCase().startsWith(at.toLowerCase()))return null;let ut=at.endsWith("/")?at.length-1:at.length,dt=st.charAt(ut);return dt&&dt!=="/"?null:st.slice(ut)||"/"}function resolvePath(st,at){at===void 0&&(at="/");let{pathname:ut,search:dt="",hash:ct=""}=typeof st=="string"?parsePath(st):st;return{pathname:ut?ut.startsWith("/")?ut:resolvePathname(ut,at):at,search:normalizeSearch(dt),hash:normalizeHash(ct)}}function resolvePathname(st,at){let ut=at.replace(/\/+$/,"").split("/");return st.split("/").forEach(ct=>{ct===".."?ut.length>1&&ut.pop():ct!=="."&&ut.push(ct)}),ut.length>1?ut.join("/"):"/"}function getInvalidPathError(st,at,ut,dt){return"Cannot include a '"+st+"' character in a manually specified "+("`to."+at+"` field ["+JSON.stringify(dt)+"]. Please separate it out to the ")+("`to."+ut+"` field. Alternatively you may provide the full path as ")+'a string in and the router will parse it for you.'}function getPathContributingMatches(st){return st.filter((at,ut)=>ut===0||at.route.path&&at.route.path.length>0)}function getResolveToMatches(st,at){let ut=getPathContributingMatches(st);return at?ut.map((dt,ct)=>ct===ut.length-1?dt.pathname:dt.pathnameBase):ut.map(dt=>dt.pathnameBase)}function resolveTo(st,at,ut,dt){dt===void 0&&(dt=!1);let ct;typeof st=="string"?ct=parsePath(st):(ct=_extends$3({},st),invariant(!ct.pathname||!ct.pathname.includes("?"),getInvalidPathError("?","pathname","search",ct)),invariant(!ct.pathname||!ct.pathname.includes("#"),getInvalidPathError("#","pathname","hash",ct)),invariant(!ct.search||!ct.search.includes("#"),getInvalidPathError("#","search","hash",ct)));let pt=st===""||ct.pathname==="",ft=pt?"/":ct.pathname,ht;if(ft==null)ht=ut;else{let Tt=at.length-1;if(!dt&&ft.startsWith("..")){let St=ft.split("/");for(;St[0]==="..";)St.shift(),Tt-=1;ct.pathname=St.join("/")}ht=Tt>=0?at[Tt]:"/"}let mt=resolvePath(ct,ht),yt=ft&&ft!=="/"&&ft.endsWith("/"),bt=(pt||ft===".")&&ut.endsWith("/");return!mt.pathname.endsWith("/")&&(yt||bt)&&(mt.pathname+="/"),mt}const joinPaths=st=>st.join("/").replace(/\/\/+/g,"/"),normalizePathname=st=>st.replace(/\/+$/,"").replace(/^\/*/,"/"),normalizeSearch=st=>!st||st==="?"?"":st.startsWith("?")?st:"?"+st,normalizeHash=st=>!st||st==="#"?"":st.startsWith("#")?st:"#"+st;function isRouteErrorResponse(st){return st!=null&&typeof st.status=="number"&&typeof st.statusText=="string"&&typeof st.internal=="boolean"&&"data"in st}const validMutationMethodsArr=["post","put","patch","delete"];new Set(validMutationMethodsArr);const validRequestMethodsArr=["get",...validMutationMethodsArr];new Set(validRequestMethodsArr);/** * React Router v6.30.1 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function _extends$2(){return _extends$2=Object.assign?Object.assign.bind():function(st){for(var at=1;at{ht.current=!0}),reactExports.useCallback(function(yt,bt){if(bt===void 0&&(bt={}),!ht.current)return;if(typeof yt=="number"){dt.go(yt);return}let Tt=resolveTo(yt,JSON.parse(ft),pt,bt.relative==="path");st==null&&at!=="/"&&(Tt.pathname=Tt.pathname==="/"?at:joinPaths([at,Tt.pathname])),(bt.replace?dt.replace:dt.push)(Tt,bt.state,bt)},[at,dt,ft,pt,st])}function useParams(){let{matches:st}=reactExports.useContext(RouteContext),at=st[st.length-1];return at?at.params:{}}function useResolvedPath(st,at){let{relative:ut}=at===void 0?{}:at,{future:dt}=reactExports.useContext(NavigationContext),{matches:ct}=reactExports.useContext(RouteContext),{pathname:pt}=useLocation(),ft=JSON.stringify(getResolveToMatches(ct,dt.v7_relativeSplatPath));return reactExports.useMemo(()=>resolveTo(st,JSON.parse(ft),pt,ut==="path"),[st,ft,pt,ut])}function useRoutes(st,at){return useRoutesImpl(st,at)}function useRoutesImpl(st,at,ut,dt){useInRouterContext()||invariant(!1);let{navigator:ct}=reactExports.useContext(NavigationContext),{matches:pt}=reactExports.useContext(RouteContext),ft=pt[pt.length-1],ht=ft?ft.params:{};ft&&ft.pathname;let mt=ft?ft.pathnameBase:"/";ft&&ft.route;let yt=useLocation(),bt;if(at){var Tt;let Et=typeof at=="string"?parsePath(at):at;mt==="/"||(Tt=Et.pathname)!=null&&Tt.startsWith(mt)||invariant(!1),bt=Et}else bt=yt;let St=bt.pathname||"/",At=St;if(mt!=="/"){let Et=mt.replace(/^\//,"").split("/");At="/"+St.replace(/^\//,"").split("/").slice(Et.length).join("/")}let vt=matchRoutes(st,{pathname:At}),Dt=_renderMatches(vt&&vt.map(Et=>Object.assign({},Et,{params:Object.assign({},ht,Et.params),pathname:joinPaths([mt,ct.encodeLocation?ct.encodeLocation(Et.pathname).pathname:Et.pathname]),pathnameBase:Et.pathnameBase==="/"?mt:joinPaths([mt,ct.encodeLocation?ct.encodeLocation(Et.pathnameBase).pathname:Et.pathnameBase])})),pt,ut,dt);return at&&Dt?reactExports.createElement(LocationContext.Provider,{value:{location:_extends$2({pathname:"/",search:"",hash:"",state:null,key:"default"},bt),navigationType:Action.Pop}},Dt):Dt}function DefaultErrorComponent(){let st=useRouteError(),at=isRouteErrorResponse(st)?st.status+" "+st.statusText:st instanceof Error?st.message:JSON.stringify(st),ut=st instanceof Error?st.stack:null,ct={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return reactExports.createElement(reactExports.Fragment,null,reactExports.createElement("h2",null,"Unexpected Application Error!"),reactExports.createElement("h3",{style:{fontStyle:"italic"}},at),ut?reactExports.createElement("pre",{style:ct},ut):null,null)}const defaultErrorElement=reactExports.createElement(DefaultErrorComponent,null);class RenderErrorBoundary extends reactExports.Component{constructor(at){super(at),this.state={location:at.location,revalidation:at.revalidation,error:at.error}}static getDerivedStateFromError(at){return{error:at}}static getDerivedStateFromProps(at,ut){return ut.location!==at.location||ut.revalidation!=="idle"&&at.revalidation==="idle"?{error:at.error,location:at.location,revalidation:at.revalidation}:{error:at.error!==void 0?at.error:ut.error,location:ut.location,revalidation:at.revalidation||ut.revalidation}}componentDidCatch(at,ut){console.error("React Router caught the following error during render",at,ut)}render(){return this.state.error!==void 0?reactExports.createElement(RouteContext.Provider,{value:this.props.routeContext},reactExports.createElement(RouteErrorContext.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function RenderedRoute(st){let{routeContext:at,match:ut,children:dt}=st,ct=reactExports.useContext(DataRouterContext);return ct&&ct.static&&ct.staticContext&&(ut.route.errorElement||ut.route.ErrorBoundary)&&(ct.staticContext._deepestRenderedBoundaryId=ut.route.id),reactExports.createElement(RouteContext.Provider,{value:at},dt)}function _renderMatches(st,at,ut,dt){var ct;if(at===void 0&&(at=[]),ut===void 0&&(ut=null),dt===void 0&&(dt=null),st==null){var pt;if(!ut)return null;if(ut.errors)st=ut.matches;else if((pt=dt)!=null&&pt.v7_partialHydration&&at.length===0&&!ut.initialized&&ut.matches.length>0)st=ut.matches;else return null}let ft=st,ht=(ct=ut)==null?void 0:ct.errors;if(ht!=null){let bt=ft.findIndex(Tt=>Tt.route.id&&(ht==null?void 0:ht[Tt.route.id])!==void 0);bt>=0||invariant(!1),ft=ft.slice(0,Math.min(ft.length,bt+1))}let mt=!1,yt=-1;if(ut&&dt&&dt.v7_partialHydration)for(let bt=0;bt=0?ft=ft.slice(0,yt+1):ft=[ft[0]];break}}}return ft.reduceRight((bt,Tt,St)=>{let At,vt=!1,Dt=null,Et=null;ut&&(At=ht&&Tt.route.id?ht[Tt.route.id]:void 0,Dt=Tt.route.errorElement||defaultErrorElement,mt&&(yt<0&&St===0?(warningOnce("route-fallback"),vt=!0,Et=null):yt===St&&(vt=!0,Et=Tt.route.hydrateFallbackElement||null)));let _t=at.concat(ft.slice(0,St+1)),xt=()=>{let Ct;return At?Ct=Dt:vt?Ct=Et:Tt.route.Component?Ct=reactExports.createElement(Tt.route.Component,null):Tt.route.element?Ct=Tt.route.element:Ct=bt,reactExports.createElement(RenderedRoute,{match:Tt,routeContext:{outlet:bt,matches:_t,isDataRoute:ut!=null},children:Ct})};return ut&&(Tt.route.ErrorBoundary||Tt.route.errorElement||St===0)?reactExports.createElement(RenderErrorBoundary,{location:ut.location,revalidation:ut.revalidation,component:Dt,error:At,children:xt(),routeContext:{outlet:null,matches:_t,isDataRoute:!0}}):xt()},null)}var DataRouterHook$1=function(st){return st.UseBlocker="useBlocker",st.UseRevalidator="useRevalidator",st.UseNavigateStable="useNavigate",st}(DataRouterHook$1||{}),DataRouterStateHook$1=function(st){return st.UseBlocker="useBlocker",st.UseLoaderData="useLoaderData",st.UseActionData="useActionData",st.UseRouteError="useRouteError",st.UseNavigation="useNavigation",st.UseRouteLoaderData="useRouteLoaderData",st.UseMatches="useMatches",st.UseRevalidator="useRevalidator",st.UseNavigateStable="useNavigate",st.UseRouteId="useRouteId",st}(DataRouterStateHook$1||{});function useDataRouterContext(st){let at=reactExports.useContext(DataRouterContext);return at||invariant(!1),at}function useDataRouterState(st){let at=reactExports.useContext(DataRouterStateContext);return at||invariant(!1),at}function useRouteContext(st){let at=reactExports.useContext(RouteContext);return at||invariant(!1),at}function useCurrentRouteId(st){let at=useRouteContext(),ut=at.matches[at.matches.length-1];return ut.route.id||invariant(!1),ut.route.id}function useRouteError(){var st;let at=reactExports.useContext(RouteErrorContext),ut=useDataRouterState(),dt=useCurrentRouteId();return at!==void 0?at:(st=ut.errors)==null?void 0:st[dt]}function useNavigateStable(){let{router:st}=useDataRouterContext(DataRouterHook$1.UseNavigateStable),at=useCurrentRouteId(DataRouterStateHook$1.UseNavigateStable),ut=reactExports.useRef(!1);return useIsomorphicLayoutEffect$2(()=>{ut.current=!0}),reactExports.useCallback(function(ct,pt){pt===void 0&&(pt={}),ut.current&&(typeof ct=="number"?st.navigate(ct):st.navigate(ct,_extends$2({fromRouteId:at},pt)))},[st,at])}const alreadyWarned$1={};function warningOnce(st,at,ut){alreadyWarned$1[st]||(alreadyWarned$1[st]=!0)}function logV6DeprecationWarnings(st,at){st==null||st.v7_startTransition,st==null||st.v7_relativeSplatPath}function Navigate(st){let{to:at,replace:ut,state:dt,relative:ct}=st;useInRouterContext()||invariant(!1);let{future:pt,static:ft}=reactExports.useContext(NavigationContext),{matches:ht}=reactExports.useContext(RouteContext),{pathname:mt}=useLocation(),yt=useNavigate(),bt=resolveTo(at,getResolveToMatches(ht,pt.v7_relativeSplatPath),mt,ct==="path"),Tt=JSON.stringify(bt);return reactExports.useEffect(()=>yt(JSON.parse(Tt),{replace:ut,state:dt,relative:ct}),[yt,Tt,ct,ut,dt]),null}function Route(st){invariant(!1)}function Router(st){let{basename:at="/",children:ut=null,location:dt,navigationType:ct=Action.Pop,navigator:pt,static:ft=!1,future:ht}=st;useInRouterContext()&&invariant(!1);let mt=at.replace(/^\/*/,"/"),yt=reactExports.useMemo(()=>({basename:mt,navigator:pt,static:ft,future:_extends$2({v7_relativeSplatPath:!1},ht)}),[mt,ht,pt,ft]);typeof dt=="string"&&(dt=parsePath(dt));let{pathname:bt="/",search:Tt="",hash:St="",state:At=null,key:vt="default"}=dt,Dt=reactExports.useMemo(()=>{let Et=stripBasename(bt,mt);return Et==null?null:{location:{pathname:Et,search:Tt,hash:St,state:At,key:vt},navigationType:ct}},[mt,bt,Tt,St,At,vt,ct]);return Dt==null?null:reactExports.createElement(NavigationContext.Provider,{value:yt},reactExports.createElement(LocationContext.Provider,{children:ut,value:Dt}))}function Routes(st){let{children:at,location:ut}=st;return useRoutes(createRoutesFromChildren(at),ut)}new Promise(()=>{});function createRoutesFromChildren(st,at){at===void 0&&(at=[]);let ut=[];return reactExports.Children.forEach(st,(dt,ct)=>{if(!reactExports.isValidElement(dt))return;let pt=[...at,ct];if(dt.type===reactExports.Fragment){ut.push.apply(ut,createRoutesFromChildren(dt.props.children,pt));return}dt.type!==Route&&invariant(!1),!dt.props.index||!dt.props.children||invariant(!1);let ft={id:dt.props.id||pt.join("-"),caseSensitive:dt.props.caseSensitive,element:dt.props.element,Component:dt.props.Component,index:dt.props.index,path:dt.props.path,loader:dt.props.loader,action:dt.props.action,errorElement:dt.props.errorElement,ErrorBoundary:dt.props.ErrorBoundary,hasErrorBoundary:dt.props.ErrorBoundary!=null||dt.props.errorElement!=null,shouldRevalidate:dt.props.shouldRevalidate,handle:dt.props.handle,lazy:dt.props.lazy};dt.props.children&&(ft.children=createRoutesFromChildren(dt.props.children,pt)),ut.push(ft)}),ut}/** * React Router DOM v6.30.1 * * Copyright (c) Remix Software Inc. * * This source code is licensed under the MIT license found in the * LICENSE.md file in the root directory of this source tree. * * @license MIT */function _extends$1(){return _extends$1=Object.assign?Object.assign.bind():function(st){for(var at=1;at=0)&&(ut[ct]=st[ct]);return ut}function isModifiedEvent(st){return!!(st.metaKey||st.altKey||st.ctrlKey||st.shiftKey)}function shouldProcessLinkClick(st,at){return st.button===0&&(!at||at==="_self")&&!isModifiedEvent(st)}const _excluded=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],REACT_ROUTER_VERSION="6";try{window.__reactRouterVersion=REACT_ROUTER_VERSION}catch(st){}const START_TRANSITION="startTransition",startTransitionImpl=e$2[START_TRANSITION];function BrowserRouter(st){let{basename:at,children:ut,future:dt,window:ct}=st,pt=reactExports.useRef();pt.current==null&&(pt.current=createBrowserHistory({window:ct,v5Compat:!0}));let ft=pt.current,[ht,mt]=reactExports.useState({action:ft.action,location:ft.location}),{v7_startTransition:yt}=dt||{},bt=reactExports.useCallback(Tt=>{yt&&startTransitionImpl?startTransitionImpl(()=>mt(Tt)):mt(Tt)},[mt,yt]);return reactExports.useLayoutEffect(()=>ft.listen(bt),[ft,bt]),reactExports.useEffect(()=>logV6DeprecationWarnings(dt),[dt]),reactExports.createElement(Router,{basename:at,children:ut,location:ht.location,navigationType:ht.action,navigator:ft,future:dt})}function HashRouter(st){let{basename:at,children:ut,future:dt,window:ct}=st,pt=reactExports.useRef();pt.current==null&&(pt.current=createHashHistory({window:ct,v5Compat:!0}));let ft=pt.current,[ht,mt]=reactExports.useState({action:ft.action,location:ft.location}),{v7_startTransition:yt}=dt||{},bt=reactExports.useCallback(Tt=>{yt&&startTransitionImpl?startTransitionImpl(()=>mt(Tt)):mt(Tt)},[mt,yt]);return reactExports.useLayoutEffect(()=>ft.listen(bt),[ft,bt]),reactExports.useEffect(()=>logV6DeprecationWarnings(dt),[dt]),reactExports.createElement(Router,{basename:at,children:ut,location:ht.location,navigationType:ht.action,navigator:ft,future:dt})}const isBrowser$1=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",ABSOLUTE_URL_REGEX=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Link=reactExports.forwardRef(function st(at,ut){let{onClick:dt,relative:ct,reloadDocument:pt,replace:ft,state:ht,target:mt,to:yt,preventScrollReset:bt,viewTransition:Tt}=at,St=_objectWithoutPropertiesLoose(at,_excluded),{basename:At}=reactExports.useContext(NavigationContext),vt,Dt=!1;if(typeof yt=="string"&&ABSOLUTE_URL_REGEX.test(yt)&&(vt=yt,isBrowser$1))try{let Ct=new URL(window.location.href),kt=yt.startsWith("//")?new URL(Ct.protocol+yt):new URL(yt),wt=stripBasename(kt.pathname,At);kt.origin===Ct.origin&&wt!=null?yt=wt+kt.search+kt.hash:Dt=!0}catch{}let Et=useHref(yt,{relative:ct}),_t=useLinkClickHandler(yt,{replace:ft,state:ht,target:mt,preventScrollReset:bt,relative:ct,viewTransition:Tt});function xt(Ct){dt&&dt(Ct),Ct.defaultPrevented||_t(Ct)}return reactExports.createElement("a",_extends$1({},St,{href:vt||Et,onClick:Dt||pt?dt:xt,ref:ut,target:mt}))});var DataRouterHook;(function(st){st.UseScrollRestoration="useScrollRestoration",st.UseSubmit="useSubmit",st.UseSubmitFetcher="useSubmitFetcher",st.UseFetcher="useFetcher",st.useViewTransitionState="useViewTransitionState"})(DataRouterHook||(DataRouterHook={}));var DataRouterStateHook;(function(st){st.UseFetcher="useFetcher",st.UseFetchers="useFetchers",st.UseScrollRestoration="useScrollRestoration"})(DataRouterStateHook||(DataRouterStateHook={}));function useLinkClickHandler(st,at){let{target:ut,replace:dt,state:ct,preventScrollReset:pt,relative:ft,viewTransition:ht}=at===void 0?{}:at,mt=useNavigate(),yt=useLocation(),bt=useResolvedPath(st,{relative:ft});return reactExports.useCallback(Tt=>{if(shouldProcessLinkClick(Tt,ut)){Tt.preventDefault();let St=dt!==void 0?dt:createPath(yt)===createPath(bt);mt(st,{replace:St,state:ct,preventScrollReset:pt,relative:ft,viewTransition:ht})}},[yt,mt,bt,dt,ct,ut,st,pt,ft,ht])}var __assign=function(){return __assign=Object.assign||function(at){for(var ut,dt=1,ct=arguments.length;dt"u"){ut&&console.warn("unable to use e.clipboardData"),ut&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var Tt=clipboardToIE11Formatting[at.format]||clipboardToIE11Formatting.default;window.clipboardData.setData(Tt,st)}else bt.clipboardData.clearData(),bt.clipboardData.setData(at.format,st);at.onCopy&&(bt.preventDefault(),at.onCopy(bt.clipboardData))}),document.body.appendChild(ht),pt.selectNodeContents(ht),ft.addRange(pt);var yt=document.execCommand("copy");if(!yt)throw new Error("copy command was unsuccessful");mt=!0}catch(bt){ut&&console.error("unable to copy using execCommand: ",bt),ut&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(at.format||"text",st),at.onCopy&&at.onCopy(window.clipboardData),mt=!0}catch(Tt){ut&&console.error("unable to copy using clipboardData: ",Tt),ut&&console.error("falling back to prompt"),dt=format$3("message"in at?at.message:defaultMessage),window.prompt(dt,st)}}finally{ft&&(typeof ft.removeRange=="function"?ft.removeRange(pt):ft.removeAllRanges()),ht&&document.body.removeChild(ht),ct()}return mt}var copyToClipboard=copy;const writeText=getDefaultExportFromCjs$1(copyToClipboard);var useCopyToClipboard=function(){var st=useMountedState(),at=useSetState({value:void 0,error:void 0,noUserInteraction:!0}),ut=at[0],dt=at[1],ct=reactExports.useCallback(function(pt){if(st()){var ft,ht;try{if(typeof pt!="string"&&typeof pt!="number"){var mt=new Error("Cannot copy typeof "+typeof pt+" to clipboard, must be a string");dt({value:pt,error:mt,noUserInteraction:!0});return}else if(pt===""){var mt=new Error("Cannot copy empty string to clipboard.");dt({value:pt,error:mt,noUserInteraction:!0});return}ht=pt.toString(),ft=writeText(ht),dt({value:ht,error:void 0,noUserInteraction:ft})}catch(yt){dt({value:ht,error:yt,noUserInteraction:ft})}}},[]);return[ut,ct]},useIsomorphicLayoutEffect$1=isBrowser?reactExports.useLayoutEffect:reactExports.useEffect;function useTimeoutFn(st,at){var ut=reactExports.useRef(!1),dt=reactExports.useRef(),ct=reactExports.useRef(st),pt=reactExports.useCallback(function(){return ut.current},[]),ft=reactExports.useCallback(function(){ut.current=!1,dt.current&&clearTimeout(dt.current),dt.current=setTimeout(function(){ut.current=!0,ct.current()},at)},[at]),ht=reactExports.useCallback(function(){ut.current=null,dt.current&&clearTimeout(dt.current)},[]);return reactExports.useEffect(function(){ct.current=st},[st]),reactExports.useEffect(function(){return ft(),ht},[at]),[pt,ht,ft]}var useEffectOnce=function(st){reactExports.useEffect(st,[])},useInterval=function(st,at){var ut=reactExports.useRef(function(){});reactExports.useEffect(function(){ut.current=st}),reactExports.useEffect(function(){if(at!==null){var dt=setInterval(function(){return ut.current()},at||0);return function(){return clearInterval(dt)}}},[at])},useUnmount=function(st){var at=reactExports.useRef(st);at.current=st,useEffectOnce(function(){return function(){return at.current()}})},useRafState=function(st){var at=reactExports.useRef(0),ut=reactExports.useState(st),dt=ut[0],ct=ut[1],pt=reactExports.useCallback(function(ft){cancelAnimationFrame(at.current),at.current=requestAnimationFrame(function(){ct(ft)})},[]);return useUnmount(function(){cancelAnimationFrame(at.current)}),[dt,pt]},useWindowSize=function(st){var at={},ut=at.initialWidth,dt=ut===void 0?1/0:ut,ct=at.initialHeight,pt=ct===void 0?1/0:ct,ft=at.onChange,ht=useRafState({width:isBrowser?window.innerWidth:dt,height:isBrowser?window.innerHeight:pt}),mt=ht[0],yt=ht[1];return reactExports.useEffect(function(){if(isBrowser){var bt=function(){var Tt=window.innerWidth,St=window.innerHeight;yt({width:Tt,height:St}),ft&&ft(Tt,St)};return on(window,"resize",bt),function(){off(window,"resize",bt)}}},[]),mt},defaultState={x:0,y:0,width:0,height:0,top:0,left:0,bottom:0,right:0};function useMeasure(){var st=reactExports.useState(null),at=st[0],ut=st[1],dt=reactExports.useState(defaultState),ct=dt[0],pt=dt[1],ft=reactExports.useMemo(function(){return new window.ResizeObserver(function(ht){if(ht[0]){var mt=ht[0].contentRect,yt=mt.x,bt=mt.y,Tt=mt.width,St=mt.height,At=mt.top,vt=mt.left,Dt=mt.bottom,Et=mt.right;pt({x:yt,y:bt,width:Tt,height:St,top:At,left:vt,bottom:Dt,right:Et})}})},[]);return useIsomorphicLayoutEffect$1(function(){if(at)return ft.observe(at),function(){ft.disconnect()}},[at]),[ut,ct]}const useMeasure$1=isBrowser&&typeof window.ResizeObserver<"u"?useMeasure:function(){return[noop$2,defaultState]},crypto$2=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function isBytes$1(st){return st instanceof Uint8Array||ArrayBuffer.isView(st)&&st.constructor.name==="Uint8Array"}function anumber$1(st){if(!Number.isSafeInteger(st)||st<0)throw new Error("positive integer expected, got "+st)}function abytes(st,...at){if(!isBytes$1(st))throw new Error("Uint8Array expected");if(at.length>0&&!at.includes(st.length))throw new Error("Uint8Array expected of length "+at+", got length="+st.length)}function ahash(st){if(typeof st!="function"||typeof st.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");anumber$1(st.outputLen),anumber$1(st.blockLen)}function aexists(st,at=!0){if(st.destroyed)throw new Error("Hash instance has been destroyed");if(at&&st.finished)throw new Error("Hash#digest() has already been called")}function aoutput(st,at){abytes(st);const ut=at.outputLen;if(st.length>>at}const nextTick=async()=>{};async function asyncLoop(st,at,ut){let dt=Date.now();for(let ct=0;ct=0&&ptst().update(toBytes(dt)).digest(),ut=st();return at.outputLen=ut.outputLen,at.blockLen=ut.blockLen,at.create=()=>st(),at}function randomBytes(st=32){if(crypto$2&&typeof crypto$2.getRandomValues=="function")return crypto$2.getRandomValues(new Uint8Array(st));if(crypto$2&&typeof crypto$2.randomBytes=="function")return Uint8Array.from(crypto$2.randomBytes(st));throw new Error("crypto.getRandomValues must be defined")}class HMAC extends Hash{constructor(at,ut){super(),this.finished=!1,this.destroyed=!1,ahash(at);const dt=toBytes(ut);if(this.iHash=at.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const ct=this.blockLen,pt=new Uint8Array(ct);pt.set(dt.length>ct?at.create().update(dt).digest():dt);for(let ft=0;ftnew HMAC(st,at).update(ut).digest();hmac$1.create=(st,at)=>new HMAC(st,at);function pbkdf2Init(st,at,ut,dt){ahash(st);const ct=checkOpts({dkLen:32,asyncTick:10},dt),{c:pt,dkLen:ft,asyncTick:ht}=ct;if(anumber$1(pt),anumber$1(ft),anumber$1(ht),pt<1)throw new Error("iterations (c) should be >= 1");const mt=kdfInputToBytes(at),yt=kdfInputToBytes(ut),bt=new Uint8Array(ft),Tt=hmac$1.create(st,mt),St=Tt._cloneInto().update(yt);return{c:pt,dkLen:ft,asyncTick:ht,DK:bt,PRF:Tt,PRFSalt:St}}function pbkdf2Output(st,at,ut,dt,ct){return st.destroy(),at.destroy(),dt&&dt.destroy(),clean(ct),ut}async function pbkdf2Async(st,at,ut,dt){const{c:ct,dkLen:pt,asyncTick:ft,DK:ht,PRF:mt,PRFSalt:yt}=pbkdf2Init(st,at,ut,dt);let bt;const Tt=new Uint8Array(4),St=createView(Tt),At=new Uint8Array(mt.outputLen);for(let vt=1,Dt=0;Dt{mt._cloneInto(bt).update(At).digestInto(At);for(let _t=0;_t>ct&pt),ht=Number(ut&pt),mt=dt?4:0,yt=dt?0:4;st.setUint32(at+mt,ft,dt),st.setUint32(at+yt,ht,dt)}function Chi(st,at,ut){return st&at^~st&ut}function Maj(st,at,ut){return st&at^st&ut^at&ut}class HashMD extends Hash{constructor(at,ut,dt,ct){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=at,this.outputLen=ut,this.padOffset=dt,this.isLE=ct,this.buffer=new Uint8Array(at),this.view=createView(this.buffer)}update(at){aexists(this),at=toBytes(at),abytes(at);const{view:ut,buffer:dt,blockLen:ct}=this,pt=at.length;for(let ft=0;ftct-ft&&(this.process(dt,0),ft=0);for(let Tt=ft;Ttbt.length)throw new Error("_sha2: outputLen bigger than state");for(let Tt=0;Tt>>3,Dt=rotr(At,17)^rotr(At,19)^At>>>10;SHA256_W[Tt]=Dt+SHA256_W[Tt-7]+vt+SHA256_W[Tt-16]|0}let{A:dt,B:ct,C:pt,D:ft,E:ht,F:mt,G:yt,H:bt}=this;for(let Tt=0;Tt<64;Tt++){const St=rotr(ht,6)^rotr(ht,11)^rotr(ht,25),At=bt+St+Chi(ht,mt,yt)+SHA256_K[Tt]+SHA256_W[Tt]|0,Dt=(rotr(dt,2)^rotr(dt,13)^rotr(dt,22))+Maj(dt,ct,pt)|0;bt=yt,yt=mt,mt=ht,ht=ft+At|0,ft=pt,pt=ct,ct=dt,dt=At+Dt|0}dt=dt+this.A|0,ct=ct+this.B|0,pt=pt+this.C|0,ft=ft+this.D|0,ht=ht+this.E|0,mt=mt+this.F|0,yt=yt+this.G|0,bt=bt+this.H|0,this.set(dt,ct,pt,ft,ht,mt,yt,bt)}roundClean(){clean(SHA256_W)}destroy(){this.set(0,0,0,0,0,0,0,0),clean(this.buffer)}}const sha256$2=createHasher(()=>new SHA256),sha256$1=sha256$2;/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function isBytes(st){return st instanceof Uint8Array||ArrayBuffer.isView(st)&&st.constructor.name==="Uint8Array"}function isArrayOf(st,at){return Array.isArray(at)?at.length===0?!0:st?at.every(ut=>typeof ut=="string"):at.every(ut=>Number.isSafeInteger(ut)):!1}function afn(st){if(typeof st!="function")throw new Error("function expected");return!0}function astr(st,at){if(typeof at!="string")throw new Error(`${st}: string expected`);return!0}function anumber(st){if(!Number.isSafeInteger(st))throw new Error(`invalid integer: ${st}`)}function aArr(st){if(!Array.isArray(st))throw new Error("array expected")}function astrArr(st,at){if(!isArrayOf(!0,at))throw new Error(`${st}: array of strings expected`)}function anumArr(st,at){if(!isArrayOf(!1,at))throw new Error(`${st}: array of numbers expected`)}function chain(...st){const at=pt=>pt,ut=(pt,ft)=>ht=>pt(ft(ht)),dt=st.map(pt=>pt.encode).reduceRight(ut,at),ct=st.map(pt=>pt.decode).reduce(ut,at);return{encode:dt,decode:ct}}function alphabet(st){const at=typeof st=="string"?st.split(""):st,ut=at.length;astrArr("alphabet",at);const dt=new Map(at.map((ct,pt)=>[ct,pt]));return{encode:ct=>(aArr(ct),ct.map(pt=>{if(!Number.isSafeInteger(pt)||pt<0||pt>=ut)throw new Error(`alphabet.encode: digit index outside alphabet "${pt}". Allowed: ${st}`);return at[pt]})),decode:ct=>(aArr(ct),ct.map(pt=>{astr("alphabet.decode",pt);const ft=dt.get(pt);if(ft===void 0)throw new Error(`Unknown letter: "${pt}". Allowed: ${st}`);return ft}))}}function join(st=""){return astr("join",st),{encode:at=>(astrArr("join.decode",at),at.join(st)),decode:at=>(astr("join.decode",at),at.split(st))}}function padding(st,at="="){return anumber(st),astr("padding",at),{encode(ut){for(astrArr("padding.encode",ut);ut.length*st%8;)ut.push(at);return ut},decode(ut){astrArr("padding.decode",ut);let dt=ut.length;if(dt*st%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;dt>0&&ut[dt-1]===at;dt--)if((dt-1)*st%8===0)throw new Error("padding: invalid, string has too much padding");return ut.slice(0,dt)}}}function convertRadix(st,at,ut){if(at<2)throw new Error(`convertRadix: invalid from=${at}, base cannot be less than 2`);if(ut<2)throw new Error(`convertRadix: invalid to=${ut}, base cannot be less than 2`);if(aArr(st),!st.length)return[];let dt=0;const ct=[],pt=Array.from(st,ht=>{if(anumber(ht),ht<0||ht>=at)throw new Error(`invalid integer: ${ht}`);return ht}),ft=pt.length;for(;;){let ht=0,mt=!0;for(let yt=dt;ytat===0?st:gcd(at,st%at),radix2carry=(st,at)=>st+(at-gcd(st,at)),powers=(()=>{let st=[];for(let at=0;at<40;at++)st.push(2**at);return st})();function convertRadix2(st,at,ut,dt){if(aArr(st),at<=0||at>32)throw new Error(`convertRadix2: wrong from=${at}`);if(ut<=0||ut>32)throw new Error(`convertRadix2: wrong to=${ut}`);if(radix2carry(at,ut)>32)throw new Error(`convertRadix2: carry overflow from=${at} to=${ut} carryBits=${radix2carry(at,ut)}`);let ct=0,pt=0;const ft=powers[at],ht=powers[ut]-1,mt=[];for(const yt of st){if(anumber(yt),yt>=ft)throw new Error(`convertRadix2: invalid data word=${yt} from=${at}`);if(ct=ct<32)throw new Error(`convertRadix2: carry overflow pos=${pt} from=${at}`);for(pt+=at;pt>=ut;pt-=ut)mt.push((ct>>pt-ut&ht)>>>0);const bt=powers[pt];if(bt===void 0)throw new Error("invalid carry");ct&=bt-1}if(ct=ct<=at)throw new Error("Excess padding");if(!dt&&ct>0)throw new Error(`Non-zero padding: ${ct}`);return dt&&pt>0&&mt.push(ct>>>0),mt}function radix(st){anumber(st);const at=2**8;return{encode:ut=>{if(!isBytes(ut))throw new Error("radix.encode input should be Uint8Array");return convertRadix(Array.from(ut),at,st)},decode:ut=>(anumArr("radix.decode",ut),Uint8Array.from(convertRadix(ut,st,at)))}}function radix2(st,at=!1){if(anumber(st),st<=0||st>32)throw new Error("radix2: bits should be in (0..32]");if(radix2carry(8,st)>32||radix2carry(st,8)>32)throw new Error("radix2: carry overflow");return{encode:ut=>{if(!isBytes(ut))throw new Error("radix2.encode input should be Uint8Array");return convertRadix2(Array.from(ut),8,st,!at)},decode:ut=>(anumArr("radix2.decode",ut),Uint8Array.from(convertRadix2(ut,st,8,at)))}}function checksum(st,at){return anumber(st),afn(at),{encode(ut){if(!isBytes(ut))throw new Error("checksum.encode: input should be Uint8Array");const dt=at(ut).slice(0,st),ct=new Uint8Array(ut.length+st);return ct.set(ut),ct.set(dt,ut.length),ct},decode(ut){if(!isBytes(ut))throw new Error("checksum.decode: input should be Uint8Array");const dt=ut.slice(0,-st),ct=ut.slice(-st),pt=at(dt).slice(0,st);for(let ft=0;ftst[0]==="あいこくしん";function nfkd(st){if(typeof st!="string")throw new TypeError("invalid mnemonic type: "+typeof st);return st.normalize("NFKD")}function normalize(st){const at=nfkd(st),ut=at.split(" ");if(![12,15,18,21,24].includes(ut.length))throw new Error("Invalid mnemonic");return{nfkd:at,words:ut}}function aentropy(st){abytes(st,16,20,24,28,32)}function generateMnemonic(st,at=128){if(anumber$1(at),at%32!==0||at>256)throw new TypeError("Invalid entropy");return entropyToMnemonic(randomBytes(at/8),st)}const calcChecksum=st=>{const at=8-st.length/4;return new Uint8Array([sha256$2(st)[0]>>at<{if(typeof at!="string")throw new Error("wordlist: non-string element: "+at)}),utils.chain(utils.checksum(1,calcChecksum),utils.radix2(11,!0),utils.alphabet(st))}function mnemonicToEntropy(st,at){const{words:ut}=normalize(st),dt=getCoder(at).decode(ut);return aentropy(dt),dt}function entropyToMnemonic(st,at){return aentropy(st),getCoder(at).encode(st).join(isJapanese(at)?" ":" ")}function validateMnemonic(st,at){try{mnemonicToEntropy(st,at)}catch{return!1}return!0}const wordlist=`abandon ability able about above absent absorb abstract absurd abuse access accident account accuse achieve acid acoustic acquire across act action actor actress actual adapt add addict address adjust admit adult advance advice aerobic affair afford afraid again age agent agree ahead aim air airport aisle alarm album alcohol alert alien all alley allow almost alone alpha already also alter always amateur amazing among amount amused analyst anchor ancient anger angle angry animal ankle announce annual another answer antenna antique anxiety any apart apology appear apple approve april arch arctic area arena argue arm armed armor army around arrange arrest arrive arrow art artefact artist artwork ask aspect assault asset assist assume asthma athlete atom attack attend attitude attract auction audit august aunt author auto autumn average avocado avoid awake aware away awesome awful awkward axis baby bachelor bacon badge bag balance balcony ball bamboo banana banner bar barely bargain barrel base basic basket battle beach bean beauty because become beef before begin behave behind believe below belt bench benefit best betray better between beyond bicycle bid bike bind biology bird birth bitter black blade blame blanket blast bleak bless blind blood blossom blouse blue blur blush board boat body boil bomb bone bonus book boost border boring borrow boss bottom bounce box boy bracket brain brand brass brave bread breeze brick bridge brief bright bring brisk broccoli broken bronze broom brother brown brush bubble buddy budget buffalo build bulb bulk bullet bundle bunker burden burger burst bus business busy butter buyer buzz cabbage cabin cable cactus cage cake call calm camera camp can canal cancel candy cannon canoe canvas canyon capable capital captain car carbon card cargo carpet carry cart case cash casino castle casual cat catalog catch category cattle caught cause caution cave ceiling celery cement census century cereal certain chair chalk champion change chaos chapter charge chase chat cheap check cheese chef cherry chest chicken chief child chimney choice choose chronic chuckle chunk churn cigar cinnamon circle citizen city civil claim clap clarify claw clay clean clerk clever click client cliff climb clinic clip clock clog close cloth cloud clown club clump cluster clutch coach coast coconut code coffee coil coin collect color column combine come comfort comic common company concert conduct confirm congress connect consider control convince cook cool copper copy coral core corn correct cost cotton couch country couple course cousin cover coyote crack cradle craft cram crane crash crater crawl crazy cream credit creek crew cricket crime crisp critic crop cross crouch crowd crucial cruel cruise crumble crunch crush cry crystal cube culture cup cupboard curious current curtain curve cushion custom cute cycle dad damage damp dance danger daring dash daughter dawn day deal debate debris decade december decide decline decorate decrease deer defense define defy degree delay deliver demand demise denial dentist deny depart depend deposit depth deputy derive describe desert design desk despair destroy detail detect develop device devote diagram dial diamond diary dice diesel diet differ digital dignity dilemma dinner dinosaur direct dirt disagree discover disease dish dismiss disorder display distance divert divide divorce dizzy doctor document dog doll dolphin domain donate donkey donor door dose double dove draft dragon drama drastic draw dream dress drift drill drink drip drive drop drum dry duck dumb dune during dust dutch duty dwarf dynamic eager eagle early earn earth easily east easy echo ecology economy edge edit educate effort egg eight either elbow elder electric elegant element elephant elevator elite else embark embody embrace emerge emotion employ empower empty enable enact end endless endorse enemy energy enforce engage engine enhance enjoy enlist enough enrich enroll ensure enter entire entry envelope episode equal equip era erase erode erosion error erupt escape essay essence estate eternal ethics evidence evil evoke evolve exact example excess exchange excite exclude excuse execute exercise exhaust exhibit exile exist exit exotic expand expect expire explain expose express extend extra eye eyebrow fabric face faculty fade faint faith fall false fame family famous fan fancy fantasy farm fashion fat fatal father fatigue fault favorite feature february federal fee feed feel female fence festival fetch fever few fiber fiction field figure file film filter final find fine finger finish fire firm first fiscal fish fit fitness fix flag flame flash flat flavor flee flight flip float flock floor flower fluid flush fly foam focus fog foil fold follow food foot force forest forget fork fortune forum forward fossil foster found fox fragile frame frequent fresh friend fringe frog front frost frown frozen fruit fuel fun funny furnace fury future gadget gain galaxy gallery game gap garage garbage garden garlic garment gas gasp gate gather gauge gaze general genius genre gentle genuine gesture ghost giant gift giggle ginger giraffe girl give glad glance glare glass glide glimpse globe gloom glory glove glow glue goat goddess gold good goose gorilla gospel gossip govern gown grab grace grain grant grape grass gravity great green grid grief grit grocery group grow grunt guard guess guide guilt guitar gun gym habit hair half hammer hamster hand happy harbor hard harsh harvest hat have hawk hazard head health heart heavy hedgehog height hello helmet help hen hero hidden high hill hint hip hire history hobby hockey hold hole holiday hollow home honey hood hope horn horror horse hospital host hotel hour hover hub huge human humble humor hundred hungry hunt hurdle hurry hurt husband hybrid ice icon idea identify idle ignore ill illegal illness image imitate immense immune impact impose improve impulse inch include income increase index indicate indoor industry infant inflict inform inhale inherit initial inject injury inmate inner innocent input inquiry insane insect inside inspire install intact interest into invest invite involve iron island isolate issue item ivory jacket jaguar jar jazz jealous jeans jelly jewel job join joke journey joy judge juice jump jungle junior junk just kangaroo keen keep ketchup key kick kid kidney kind kingdom kiss kit kitchen kite kitten kiwi knee knife knock know lab label labor ladder lady lake lamp language laptop large later latin laugh laundry lava law lawn lawsuit layer lazy leader leaf learn leave lecture left leg legal legend leisure lemon lend length lens leopard lesson letter level liar liberty library license life lift light like limb limit link lion liquid list little live lizard load loan lobster local lock logic lonely long loop lottery loud lounge love loyal lucky luggage lumber lunar lunch luxury lyrics machine mad magic magnet maid mail main major make mammal man manage mandate mango mansion manual maple marble march margin marine market marriage mask mass master match material math matrix matter maximum maze meadow mean measure meat mechanic medal media melody melt member memory mention menu mercy merge merit merry mesh message metal method middle midnight milk million mimic mind minimum minor minute miracle mirror misery miss mistake mix mixed mixture mobile model modify mom moment monitor monkey monster month moon moral more morning mosquito mother motion motor mountain mouse move movie much muffin mule multiply muscle museum mushroom music must mutual myself mystery myth naive name napkin narrow nasty nation nature near neck need negative neglect neither nephew nerve nest net network neutral never news next nice night noble noise nominee noodle normal north nose notable note nothing notice novel now nuclear number nurse nut oak obey object oblige obscure observe obtain obvious occur ocean october odor off offer office often oil okay old olive olympic omit once one onion online only open opera opinion oppose option orange orbit orchard order ordinary organ orient original orphan ostrich other outdoor outer output outside oval oven over own owner oxygen oyster ozone pact paddle page pair palace palm panda panel panic panther paper parade parent park parrot party pass patch path patient patrol pattern pause pave payment peace peanut pear peasant pelican pen penalty pencil people pepper perfect permit person pet phone photo phrase physical piano picnic picture piece pig pigeon pill pilot pink pioneer pipe pistol pitch pizza place planet plastic plate play please pledge pluck plug plunge poem poet point polar pole police pond pony pool popular portion position possible post potato pottery poverty powder power practice praise predict prefer prepare present pretty prevent price pride primary print priority prison private prize problem process produce profit program project promote proof property prosper protect proud provide public pudding pull pulp pulse pumpkin punch pupil puppy purchase purity purpose purse push put puzzle pyramid quality quantum quarter question quick quit quiz quote rabbit raccoon race rack radar radio rail rain raise rally ramp ranch random range rapid rare rate rather raven raw razor ready real reason rebel rebuild recall receive recipe record recycle reduce reflect reform refuse region regret regular reject relax release relief rely remain remember remind remove render renew rent reopen repair repeat replace report require rescue resemble resist resource response result retire retreat return reunion reveal review reward rhythm rib ribbon rice rich ride ridge rifle right rigid ring riot ripple risk ritual rival river road roast robot robust rocket romance roof rookie room rose rotate rough round route royal rubber rude rug rule run runway rural sad saddle sadness safe sail salad salmon salon salt salute same sample sand satisfy satoshi sauce sausage save say scale scan scare scatter scene scheme school science scissors scorpion scout scrap screen script scrub sea search season seat second secret section security seed seek segment select sell seminar senior sense sentence series service session settle setup seven shadow shaft shallow share shed shell sheriff shield shift shine ship shiver shock shoe shoot shop short shoulder shove shrimp shrug shuffle shy sibling sick side siege sight sign silent silk silly silver similar simple since sing siren sister situate six size skate sketch ski skill skin skirt skull slab slam sleep slender slice slide slight slim slogan slot slow slush small smart smile smoke smooth snack snake snap sniff snow soap soccer social sock soda soft solar soldier solid solution solve someone song soon sorry sort soul sound soup source south space spare spatial spawn speak special speed spell spend sphere spice spider spike spin spirit split spoil sponsor spoon sport spot spray spread spring spy square squeeze squirrel stable stadium staff stage stairs stamp stand start state stay steak steel stem step stereo stick still sting stock stomach stone stool story stove strategy street strike strong struggle student stuff stumble style subject submit subway success such sudden suffer sugar suggest suit summer sun sunny sunset super supply supreme sure surface surge surprise surround survey suspect sustain swallow swamp swap swarm swear sweet swift swim swing switch sword symbol symptom syrup system table tackle tag tail talent talk tank tape target task taste tattoo taxi teach team tell ten tenant tennis tent term test text thank that theme then theory there they thing this thought three thrive throw thumb thunder ticket tide tiger tilt timber time tiny tip tired tissue title toast tobacco today toddler toe together toilet token tomato tomorrow tone tongue tonight tool tooth top topic topple torch tornado tortoise toss total tourist toward tower town toy track trade traffic tragic train transfer trap trash travel tray treat tree trend trial tribe trick trigger trim trip trophy trouble truck true truly trumpet trust truth try tube tuition tumble tuna tunnel turkey turn turtle twelve twenty twice twin twist two type typical ugly umbrella unable unaware uncle uncover under undo unfair unfold unhappy uniform unique unit universe unknown unlock until unusual unveil update upgrade uphold upon upper upset urban urge usage use used useful useless usual utility vacant vacuum vague valid valley valve van vanish vapor various vast vault vehicle velvet vendor venture venue verb verify version very vessel veteran viable vibrant vicious victory video view village vintage violin virtual virus visa visit visual vital vivid vocal voice void volcano volume vote voyage wage wagon wait walk wall walnut want warfare warm warrior wash wasp waste water wave way wealth weapon wear weasel weather web wedding weekend weird welcome west wet whale what wheat wheel when where whip whisper wide width wife wild will win window wine wing wink winner winter wire wisdom wise wish witness wolf woman wonder wood wool word work world worry worth wrap wreck wrestle wrist write wrong yard year yellow you young youth zebra zero zone zoo`.split(` `);var forge$D={options:{usePureJavaScript:!1}},api={},baseN$1=api,_reverseAlphabets={};api.encode=function(st,at,ut){if(typeof at!="string")throw new TypeError('"alphabet" must be a string.');if(ut!==void 0&&typeof ut!="number")throw new TypeError('"maxline" must be a number.');var dt="";if(!(st instanceof Uint8Array))dt=_encodeWithByteBuffer(st,at);else{var ct=0,pt=at.length,ft=at.charAt(0),ht=[0];for(ct=0;ct0;)ht.push(yt%pt),yt=yt/pt|0}for(ct=0;st[ct]===0&&ct=0;--ct)dt+=at[ht[ct]]}if(ut){var bt=new RegExp(".{1,"+ut+"}","g");dt=dt.match(bt).join(`\r `)}return dt};api.decode=function(st,at){if(typeof st!="string")throw new TypeError('"input" must be a string.');if(typeof at!="string")throw new TypeError('"alphabet" must be a string.');var ut=_reverseAlphabets[at];if(!ut){ut=_reverseAlphabets[at]=[];for(var dt=0;dt>=8;for(;yt>0;)ft.push(yt&255),yt>>=8}for(var bt=0;st[bt]===pt&&bt0;)pt.push(ht%dt),ht=ht/dt|0}var mt="";for(ut=0;st.at(ut)===0&&ut=0;--ut)mt+=at[pt[ut]];return mt}var forge$C=forge$D,baseN=baseN$1,util$1=forge$C.util=forge$C.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){util$1.nextTick=process.nextTick,typeof setImmediate=="function"?util$1.setImmediate=setImmediate:util$1.setImmediate=util$1.nextTick;return}if(typeof setImmediate=="function"){util$1.setImmediate=function(){return setImmediate.apply(void 0,arguments)},util$1.nextTick=function(ft){return setImmediate(ft)};return}if(util$1.setImmediate=function(ft){setTimeout(ft,0)},typeof window<"u"&&typeof window.postMessage=="function"){let ft=function(ht){if(ht.source===window&&ht.data===st){ht.stopPropagation();var mt=at.slice();at.length=0,mt.forEach(function(yt){yt()})}};var st="forge.setImmediate",at=[];util$1.setImmediate=function(ht){at.push(ht),at.length===1&&window.postMessage(st,"*")},window.addEventListener("message",ft,!0)}if(typeof MutationObserver<"u"){var ut=Date.now(),dt=!0,ct=document.createElement("div"),at=[];new MutationObserver(function(){var ht=at.slice();at.length=0,ht.forEach(function(mt){mt()})}).observe(ct,{attributes:!0});var pt=util$1.setImmediate;util$1.setImmediate=function(ht){Date.now()-ut>15?(ut=Date.now(),pt(ht)):(at.push(ht),at.length===1&&ct.setAttribute("a",dt=!dt))}}util$1.nextTick=util$1.setImmediate})();util$1.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;util$1.globalScope=function(){return util$1.isNodejs?commonjsGlobal:typeof self>"u"?window:self}();util$1.isArray=Array.isArray||function(st){return Object.prototype.toString.call(st)==="[object Array]"};util$1.isArrayBuffer=function(st){return typeof ArrayBuffer<"u"&&st instanceof ArrayBuffer};util$1.isArrayBufferView=function(st){return st&&util$1.isArrayBuffer(st.buffer)&&st.byteLength!==void 0};function _checkBitsParam(st){if(!(st===8||st===16||st===24||st===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+st)}util$1.ByteBuffer=ByteStringBuffer;function ByteStringBuffer(st){if(this.data="",this.read=0,typeof st=="string")this.data=st;else if(util$1.isArrayBuffer(st)||util$1.isArrayBufferView(st))if(typeof Buffer<"u"&&st instanceof Buffer)this.data=st.toString("binary");else{var at=new Uint8Array(st);try{this.data=String.fromCharCode.apply(null,at)}catch{for(var ut=0;ut_MAX_CONSTRUCTED_STRING_LENGTH&&(this.data.substr(0,1),this._constructedStringLength=0)};util$1.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};util$1.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};util$1.ByteStringBuffer.prototype.putByte=function(st){return this.putBytes(String.fromCharCode(st))};util$1.ByteStringBuffer.prototype.fillWithByte=function(st,at){st=String.fromCharCode(st);for(var ut=this.data;at>0;)at&1&&(ut+=st),at>>>=1,at>0&&(st+=st);return this.data=ut,this._optimizeConstructedString(at),this};util$1.ByteStringBuffer.prototype.putBytes=function(st){return this.data+=st,this._optimizeConstructedString(st.length),this};util$1.ByteStringBuffer.prototype.putString=function(st){return this.putBytes(util$1.encodeUtf8(st))};util$1.ByteStringBuffer.prototype.putInt16=function(st){return this.putBytes(String.fromCharCode(st>>8&255)+String.fromCharCode(st&255))};util$1.ByteStringBuffer.prototype.putInt24=function(st){return this.putBytes(String.fromCharCode(st>>16&255)+String.fromCharCode(st>>8&255)+String.fromCharCode(st&255))};util$1.ByteStringBuffer.prototype.putInt32=function(st){return this.putBytes(String.fromCharCode(st>>24&255)+String.fromCharCode(st>>16&255)+String.fromCharCode(st>>8&255)+String.fromCharCode(st&255))};util$1.ByteStringBuffer.prototype.putInt16Le=function(st){return this.putBytes(String.fromCharCode(st&255)+String.fromCharCode(st>>8&255))};util$1.ByteStringBuffer.prototype.putInt24Le=function(st){return this.putBytes(String.fromCharCode(st&255)+String.fromCharCode(st>>8&255)+String.fromCharCode(st>>16&255))};util$1.ByteStringBuffer.prototype.putInt32Le=function(st){return this.putBytes(String.fromCharCode(st&255)+String.fromCharCode(st>>8&255)+String.fromCharCode(st>>16&255)+String.fromCharCode(st>>24&255))};util$1.ByteStringBuffer.prototype.putInt=function(st,at){_checkBitsParam(at);var ut="";do at-=8,ut+=String.fromCharCode(st>>at&255);while(at>0);return this.putBytes(ut)};util$1.ByteStringBuffer.prototype.putSignedInt=function(st,at){return st<0&&(st+=2<0);return at};util$1.ByteStringBuffer.prototype.getSignedInt=function(st){var at=this.getInt(st),ut=2<=ut&&(at-=ut<<1),at};util$1.ByteStringBuffer.prototype.getBytes=function(st){var at;return st?(st=Math.min(this.length(),st),at=this.data.slice(this.read,this.read+st),this.read+=st):st===0?at="":(at=this.read===0?this.data:this.data.slice(this.read),this.clear()),at};util$1.ByteStringBuffer.prototype.bytes=function(st){return typeof st>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+st)};util$1.ByteStringBuffer.prototype.at=function(st){return this.data.charCodeAt(this.read+st)};util$1.ByteStringBuffer.prototype.setAt=function(st,at){return this.data=this.data.substr(0,this.read+st)+String.fromCharCode(at)+this.data.substr(this.read+st+1),this};util$1.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};util$1.ByteStringBuffer.prototype.copy=function(){var st=util$1.createBuffer(this.data);return st.read=this.read,st};util$1.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};util$1.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};util$1.ByteStringBuffer.prototype.truncate=function(st){var at=Math.max(0,this.length()-st);return this.data=this.data.substr(this.read,at),this.read=0,this};util$1.ByteStringBuffer.prototype.toHex=function(){for(var st="",at=this.read;at=st)return this;at=Math.max(at||this.growSize,st);var ut=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),dt=new Uint8Array(this.length()+at);return dt.set(ut),this.data=new DataView(dt.buffer),this};util$1.DataBuffer.prototype.putByte=function(st){return this.accommodate(1),this.data.setUint8(this.write++,st),this};util$1.DataBuffer.prototype.fillWithByte=function(st,at){this.accommodate(at);for(var ut=0;ut>8&65535),this.data.setInt8(this.write,st>>16&255),this.write+=3,this};util$1.DataBuffer.prototype.putInt32=function(st){return this.accommodate(4),this.data.setInt32(this.write,st),this.write+=4,this};util$1.DataBuffer.prototype.putInt16Le=function(st){return this.accommodate(2),this.data.setInt16(this.write,st,!0),this.write+=2,this};util$1.DataBuffer.prototype.putInt24Le=function(st){return this.accommodate(3),this.data.setInt8(this.write,st>>16&255),this.data.setInt16(this.write,st>>8&65535,!0),this.write+=3,this};util$1.DataBuffer.prototype.putInt32Le=function(st){return this.accommodate(4),this.data.setInt32(this.write,st,!0),this.write+=4,this};util$1.DataBuffer.prototype.putInt=function(st,at){_checkBitsParam(at),this.accommodate(at/8);do at-=8,this.data.setInt8(this.write++,st>>at&255);while(at>0);return this};util$1.DataBuffer.prototype.putSignedInt=function(st,at){return _checkBitsParam(at),this.accommodate(at/8),st<0&&(st+=2<0);return at};util$1.DataBuffer.prototype.getSignedInt=function(st){var at=this.getInt(st),ut=2<=ut&&(at-=ut<<1),at};util$1.DataBuffer.prototype.getBytes=function(st){var at;return st?(st=Math.min(this.length(),st),at=this.data.slice(this.read,this.read+st),this.read+=st):st===0?at="":(at=this.read===0?this.data:this.data.slice(this.read),this.clear()),at};util$1.DataBuffer.prototype.bytes=function(st){return typeof st>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+st)};util$1.DataBuffer.prototype.at=function(st){return this.data.getUint8(this.read+st)};util$1.DataBuffer.prototype.setAt=function(st,at){return this.data.setUint8(st,at),this};util$1.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};util$1.DataBuffer.prototype.copy=function(){return new util$1.DataBuffer(this)};util$1.DataBuffer.prototype.compact=function(){if(this.read>0){var st=new Uint8Array(this.data.buffer,this.read),at=new Uint8Array(st.byteLength);at.set(st),this.data=new DataView(at),this.write-=this.read,this.read=0}return this};util$1.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};util$1.DataBuffer.prototype.truncate=function(st){return this.write=Math.max(0,this.length()-st),this.read=Math.min(this.read,this.write),this};util$1.DataBuffer.prototype.toHex=function(){for(var st="",at=this.read;at0;)at&1&&(ut+=st),at>>>=1,at>0&&(st+=st);return ut};util$1.xorBytes=function(st,at,ut){for(var dt="",ct="",pt="",ft=0,ht=0;ut>0;--ut,++ft)ct=st.charCodeAt(ft)^at.charCodeAt(ft),ht>=10&&(dt+=pt,pt="",ht=0),pt+=String.fromCharCode(ct),++ht;return dt+=pt,dt};util$1.hexToBytes=function(st){var at="",ut=0;for(st.length&!0&&(ut=1,at+=String.fromCharCode(parseInt(st[0],16)));ut>24&255)+String.fromCharCode(st>>16&255)+String.fromCharCode(st>>8&255)+String.fromCharCode(st&255)};var _base64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_base64Idx=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],_base58="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";util$1.encode64=function(st,at){for(var ut="",dt="",ct,pt,ft,ht=0;ht>2),ut+=_base64.charAt((ct&3)<<4|pt>>4),isNaN(pt)?ut+="==":(ut+=_base64.charAt((pt&15)<<2|ft>>6),ut+=isNaN(ft)?"=":_base64.charAt(ft&63)),at&&ut.length>at&&(dt+=ut.substr(0,at)+`\r `,ut=ut.substr(at));return dt+=ut,dt};util$1.decode64=function(st){st=st.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var at="",ut,dt,ct,pt,ft=0;ft>4),ct!==64&&(at+=String.fromCharCode((dt&15)<<4|ct>>2),pt!==64&&(at+=String.fromCharCode((ct&3)<<6|pt)));return at};util$1.encodeUtf8=function(st){return unescape(encodeURIComponent(st))};util$1.decodeUtf8=function(st){return decodeURIComponent(escape(st))};util$1.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:baseN.encode,decode:baseN.decode}};util$1.binary.raw.encode=function(st){return String.fromCharCode.apply(null,st)};util$1.binary.raw.decode=function(st,at,ut){var dt=at;dt||(dt=new Uint8Array(st.length)),ut=ut||0;for(var ct=ut,pt=0;pt>2),ut+=_base64.charAt((ct&3)<<4|pt>>4),isNaN(pt)?ut+="==":(ut+=_base64.charAt((pt&15)<<2|ft>>6),ut+=isNaN(ft)?"=":_base64.charAt(ft&63)),at&&ut.length>at&&(dt+=ut.substr(0,at)+`\r `,ut=ut.substr(at));return dt+=ut,dt};util$1.binary.base64.decode=function(st,at,ut){var dt=at;dt||(dt=new Uint8Array(Math.ceil(st.length/4)*3)),st=st.replace(/[^A-Za-z0-9\+\/\=]/g,""),ut=ut||0;for(var ct,pt,ft,ht,mt=0,yt=ut;mt>4,ft!==64&&(dt[yt++]=(pt&15)<<4|ft>>2,ht!==64&&(dt[yt++]=(ft&3)<<6|ht));return at?yt-ut:dt.subarray(0,yt)};util$1.binary.base58.encode=function(st,at){return util$1.binary.baseN.encode(st,_base58,at)};util$1.binary.base58.decode=function(st,at){return util$1.binary.baseN.decode(st,_base58,at)};util$1.text={utf8:{},utf16:{}};util$1.text.utf8.encode=function(st,at,ut){st=util$1.encodeUtf8(st);var dt=at;dt||(dt=new Uint8Array(st.length)),ut=ut||0;for(var ct=ut,pt=0;pt"u"&&(ut=["web","flash"]);var ct,pt=!1,ft=null;for(var ht in ut){ct=ut[ht];try{if(ct==="flash"||ct==="both"){if(at[0]===null)throw new Error("Flash local storage not available.");dt=st.apply(this,at),pt=ct==="flash"}(ct==="web"||ct==="both")&&(at[0]=localStorage,dt=st.apply(this,at),pt=!0)}catch(mt){ft=mt}if(pt)break}if(!pt)throw ft;return dt};util$1.setItem=function(st,at,ut,dt,ct){_callStorageFunction(_setItem,arguments,ct)};util$1.getItem=function(st,at,ut,dt){return _callStorageFunction(_getItem,arguments,dt)};util$1.removeItem=function(st,at,ut,dt){_callStorageFunction(_removeItem,arguments,dt)};util$1.clearItems=function(st,at,ut){_callStorageFunction(_clearItems,arguments,ut)};util$1.isEmpty=function(st){for(var at in st)if(st.hasOwnProperty(at))return!1;return!0};util$1.format=function(st){for(var at=/%./g,ut,dt,ct=0,pt=[],ft=0;ut=at.exec(st);){dt=st.substring(ft,at.lastIndex-2),dt.length>0&&pt.push(dt),ft=at.lastIndex;var ht=ut[0][1];switch(ht){case"s":case"o":ct");break;case"%":pt.push("%");break;default:pt.push("<%"+ht+"?>")}}return pt.push(st.substring(ft)),pt.join("")};util$1.formatNumber=function(st,at,ut,dt){var ct=st,pt=isNaN(at=Math.abs(at))?2:at,ft=ut===void 0?",":ut,ht=dt===void 0?".":dt,mt=ct<0?"-":"",yt=parseInt(ct=Math.abs(+ct||0).toFixed(pt),10)+"",bt=yt.length>3?yt.length%3:0;return mt+(bt?yt.substr(0,bt)+ht:"")+yt.substr(bt).replace(/(\d{3})(?=\d)/g,"$1"+ht)+(pt?ft+Math.abs(ct-yt).toFixed(pt).slice(2):"")};util$1.formatSize=function(st){return st>=1073741824?st=util$1.formatNumber(st/1073741824,2,".","")+" GiB":st>=1048576?st=util$1.formatNumber(st/1048576,2,".","")+" MiB":st>=1024?st=util$1.formatNumber(st/1024,0)+" KiB":st=util$1.formatNumber(st,0)+" bytes",st};util$1.bytesFromIP=function(st){return st.indexOf(".")!==-1?util$1.bytesFromIPv4(st):st.indexOf(":")!==-1?util$1.bytesFromIPv6(st):null};util$1.bytesFromIPv4=function(st){if(st=st.split("."),st.length!==4)return null;for(var at=util$1.createBuffer(),ut=0;utut[dt].end-ut[dt].start&&(dt=ut.length-1))}at.push(pt)}if(ut.length>0){var mt=ut[dt];mt.end-mt.start>0&&(at.splice(mt.start,mt.end-mt.start+1,""),mt.start===0&&at.unshift(""),mt.end===7&&at.push(""))}return at.join(":")};util$1.estimateCores=function(st,at){if(typeof st=="function"&&(at=st,st={}),st=st||{},"cores"in util$1&&!st.update)return at(null,util$1.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return util$1.cores=navigator.hardwareConcurrency,at(null,util$1.cores);if(typeof Worker>"u")return util$1.cores=1,at(null,util$1.cores);if(typeof Blob>"u")return util$1.cores=2,at(null,util$1.cores);var ut=URL.createObjectURL(new Blob(["(",(function(){self.addEventListener("message",function(ft){var ht=Date.now(),mt=ht+4;self.postMessage({st:ht,et:mt})})}).toString(),")()"],{type:"application/javascript"}));dt([],5,16);function dt(ft,ht,mt){if(ht===0){var yt=Math.floor(ft.reduce(function(bt,Tt){return bt+Tt},0)/ft.length);return util$1.cores=Math.max(1,yt),URL.revokeObjectURL(ut),at(null,util$1.cores)}ct(mt,function(bt,Tt){ft.push(pt(mt,Tt)),dt(ft,ht-1,mt)})}function ct(ft,ht){for(var mt=[],yt=[],bt=0;btAt.st&&bt.stbt.st&&At.st0))return!0;for(var dt=0;dt0))return!0;for(var dt=0;dt0)return!1;var ut=st.length(),dt=st.at(ut-1);return dt>this.blockSize<<2?!1:(st.truncate(dt),!0)};modes.cbc=function(st){st=st||{},this.name="CBC",this.cipher=st.cipher,this.blockSize=st.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};modes.cbc.prototype.start=function(st){if(st.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in st)this._iv=transformIV(st.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};modes.cbc.prototype.encrypt=function(st,at,ut){if(st.length()0))return!0;for(var dt=0;dt0))return!0;for(var dt=0;dt0)return!1;var ut=st.length(),dt=st.at(ut-1);return dt>this.blockSize<<2?!1:(st.truncate(dt),!0)};modes.cfb=function(st){st=st||{},this.name="CFB",this.cipher=st.cipher,this.blockSize=st.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=forge$A.util.createBuffer(),this._partialBytes=0};modes.cfb.prototype.start=function(st){if(!("iv"in st))throw new Error("Invalid IV parameter.");this._iv=transformIV(st.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};modes.cfb.prototype.encrypt=function(st,at,ut){var dt=st.length();if(dt===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&dt>=this.blockSize){for(var ct=0;ct0&&(pt=this.blockSize-pt),this._partialOutput.clear();for(var ct=0;ct0)st.read-=this.blockSize;else for(var ct=0;ct0&&this._partialOutput.getBytes(this._partialBytes),pt>0&&!ut)return at.putBytes(this._partialOutput.getBytes(pt-this._partialBytes)),this._partialBytes=pt,!0;at.putBytes(this._partialOutput.getBytes(dt-this._partialBytes)),this._partialBytes=0};modes.cfb.prototype.decrypt=function(st,at,ut){var dt=st.length();if(dt===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&dt>=this.blockSize){for(var ct=0;ct0&&(pt=this.blockSize-pt),this._partialOutput.clear();for(var ct=0;ct0)st.read-=this.blockSize;else for(var ct=0;ct0&&this._partialOutput.getBytes(this._partialBytes),pt>0&&!ut)return at.putBytes(this._partialOutput.getBytes(pt-this._partialBytes)),this._partialBytes=pt,!0;at.putBytes(this._partialOutput.getBytes(dt-this._partialBytes)),this._partialBytes=0};modes.ofb=function(st){st=st||{},this.name="OFB",this.cipher=st.cipher,this.blockSize=st.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=forge$A.util.createBuffer(),this._partialBytes=0};modes.ofb.prototype.start=function(st){if(!("iv"in st))throw new Error("Invalid IV parameter.");this._iv=transformIV(st.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};modes.ofb.prototype.encrypt=function(st,at,ut){var dt=st.length();if(st.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&dt>=this.blockSize){for(var ct=0;ct0&&(pt=this.blockSize-pt),this._partialOutput.clear();for(var ct=0;ct0)st.read-=this.blockSize;else for(var ct=0;ct0&&this._partialOutput.getBytes(this._partialBytes),pt>0&&!ut)return at.putBytes(this._partialOutput.getBytes(pt-this._partialBytes)),this._partialBytes=pt,!0;at.putBytes(this._partialOutput.getBytes(dt-this._partialBytes)),this._partialBytes=0};modes.ofb.prototype.decrypt=modes.ofb.prototype.encrypt;modes.ctr=function(st){st=st||{},this.name="CTR",this.cipher=st.cipher,this.blockSize=st.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=forge$A.util.createBuffer(),this._partialBytes=0};modes.ctr.prototype.start=function(st){if(!("iv"in st))throw new Error("Invalid IV parameter.");this._iv=transformIV(st.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};modes.ctr.prototype.encrypt=function(st,at,ut){var dt=st.length();if(dt===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&dt>=this.blockSize)for(var ct=0;ct0&&(pt=this.blockSize-pt),this._partialOutput.clear();for(var ct=0;ct0&&(st.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),pt>0&&!ut)return at.putBytes(this._partialOutput.getBytes(pt-this._partialBytes)),this._partialBytes=pt,!0;at.putBytes(this._partialOutput.getBytes(dt-this._partialBytes)),this._partialBytes=0}inc32(this._inBlock)};modes.ctr.prototype.decrypt=modes.ctr.prototype.encrypt;modes.gcm=function(st){st=st||{},this.name="GCM",this.cipher=st.cipher,this.blockSize=st.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=forge$A.util.createBuffer(),this._partialBytes=0,this._R=3774873600};modes.gcm.prototype.start=function(st){if(!("iv"in st))throw new Error("Invalid IV parameter.");var at=forge$A.util.createBuffer(st.iv);this._cipherLength=0;var ut;if("additionalData"in st?ut=forge$A.util.createBuffer(st.additionalData):ut=forge$A.util.createBuffer(),"tagLength"in st?this._tagLength=st.tagLength:this._tagLength=128,this._tag=null,st.decrypt&&(this._tag=forge$A.util.createBuffer(st.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var dt=at.length();if(dt===12)this._j0=[at.getInt32(),at.getInt32(),at.getInt32(),1];else{for(this._j0=[0,0,0,0];at.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[at.getInt32(),at.getInt32(),at.getInt32(),at.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(from64To32(dt*8)))}this._inBlock=this._j0.slice(0),inc32(this._inBlock),this._partialBytes=0,ut=forge$A.util.createBuffer(ut),this._aDataLength=from64To32(ut.length()*8);var ct=ut.length()%this.blockSize;for(ct&&ut.fillWithByte(0,this.blockSize-ct),this._s=[0,0,0,0];ut.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[ut.getInt32(),ut.getInt32(),ut.getInt32(),ut.getInt32()])};modes.gcm.prototype.encrypt=function(st,at,ut){var dt=st.length();if(dt===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&dt>=this.blockSize){for(var ct=0;ct0&&(pt=this.blockSize-pt),this._partialOutput.clear();for(var ct=0;ct0&&this._partialOutput.getBytes(this._partialBytes),pt>0&&!ut)return st.read-=this.blockSize,at.putBytes(this._partialOutput.getBytes(pt-this._partialBytes)),this._partialBytes=pt,!0;at.putBytes(this._partialOutput.getBytes(dt-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),inc32(this._inBlock)};modes.gcm.prototype.decrypt=function(st,at,ut){var dt=st.length();if(dt0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),inc32(this._inBlock),this._hashBlock[0]=st.getInt32(),this._hashBlock[1]=st.getInt32(),this._hashBlock[2]=st.getInt32(),this._hashBlock[3]=st.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var ct=0;ct0;--dt)at[dt]=st[dt]>>>1|(st[dt-1]&1)<<31;at[0]=st[0]>>>1,ut&&(at[0]^=this._R)};modes.gcm.prototype.tableMultiply=function(st){for(var at=[0,0,0,0],ut=0;ut<32;++ut){var dt=ut/8|0,ct=st[dt]>>>(7-ut%8)*4&15,pt=this._m[ut][ct];at[0]^=pt[0],at[1]^=pt[1],at[2]^=pt[2],at[3]^=pt[3]}return at};modes.gcm.prototype.ghash=function(st,at,ut){return at[0]^=ut[0],at[1]^=ut[1],at[2]^=ut[2],at[3]^=ut[3],this.tableMultiply(at)};modes.gcm.prototype.generateHashTable=function(st,at){for(var ut=8/at,dt=4*ut,ct=16*ut,pt=new Array(ct),ft=0;ft>>1,ct=new Array(ut);ct[dt]=st.slice(0);for(var pt=dt>>>1;pt>0;)this.pow(ct[2*pt],ct[pt]=[]),pt>>=1;for(pt=2;pt4){var ut=st;st=forge$A.util.createBuffer();for(var dt=0;dt>>2;for(var dt=0;dt>8^ht&255^99,sbox[ut]=ht,isbox[ht]=ut,mt=st[ht],ct=st[ut],pt=st[ct],ft=st[pt],yt=mt<<24^ht<<16^ht<<8^(ht^mt),bt=(ct^pt^ft)<<24^(ut^ft)<<16^(ut^pt^ft)<<8^(ut^ct^ft);for(var Tt=0;Tt<4;++Tt)mix[Tt][ut]=yt,imix[Tt][ht]=bt,yt=yt<<24|yt>>>8,bt=bt<<24|bt>>>8;ut===0?ut=dt=1:(ut=ct^st[st[st[ct^ft]]],dt^=st[st[dt]])}}function _expandKey(st,at){for(var ut=st.slice(0),dt,ct=1,pt=ut.length,ft=pt+6+1,ht=Nb*ft,mt=pt;mt>>16&255]<<24^sbox[dt>>>8&255]<<16^sbox[dt&255]<<8^sbox[dt>>>24]^rcon[ct]<<24,ct++):pt>6&&mt%pt===4&&(dt=sbox[dt>>>24]<<24^sbox[dt>>>16&255]<<16^sbox[dt>>>8&255]<<8^sbox[dt&255]),ut[mt]=ut[mt-pt]^dt;if(at){var yt,bt=imix[0],Tt=imix[1],St=imix[2],At=imix[3],vt=ut.slice(0);ht=ut.length;for(var mt=0,Dt=ht-Nb;mt>>24]]^Tt[sbox[yt>>>16&255]]^St[sbox[yt>>>8&255]]^At[sbox[yt&255]];ut=vt}return ut}function _updateBlock$1(st,at,ut,dt){var ct=st.length/4-1,pt,ft,ht,mt,yt;dt?(pt=imix[0],ft=imix[1],ht=imix[2],mt=imix[3],yt=isbox):(pt=mix[0],ft=mix[1],ht=mix[2],mt=mix[3],yt=sbox);var bt,Tt,St,At,vt,Dt,Et;bt=at[0]^st[0],Tt=at[dt?3:1]^st[1],St=at[2]^st[2],At=at[dt?1:3]^st[3];for(var _t=3,xt=1;xt>>24]^ft[Tt>>>16&255]^ht[St>>>8&255]^mt[At&255]^st[++_t],Dt=pt[Tt>>>24]^ft[St>>>16&255]^ht[At>>>8&255]^mt[bt&255]^st[++_t],Et=pt[St>>>24]^ft[At>>>16&255]^ht[bt>>>8&255]^mt[Tt&255]^st[++_t],At=pt[At>>>24]^ft[bt>>>16&255]^ht[Tt>>>8&255]^mt[St&255]^st[++_t],bt=vt,Tt=Dt,St=Et;ut[0]=yt[bt>>>24]<<24^yt[Tt>>>16&255]<<16^yt[St>>>8&255]<<8^yt[At&255]^st[++_t],ut[dt?3:1]=yt[Tt>>>24]<<24^yt[St>>>16&255]<<16^yt[At>>>8&255]<<8^yt[bt&255]^st[++_t],ut[2]=yt[St>>>24]<<24^yt[At>>>16&255]<<16^yt[bt>>>8&255]<<8^yt[Tt&255]^st[++_t],ut[dt?1:3]=yt[At>>>24]<<24^yt[bt>>>16&255]<<16^yt[Tt>>>8&255]<<8^yt[St&255]^st[++_t]}function _createCipher$1(st){st=st||{};var at=(st.mode||"CBC").toUpperCase(),ut="AES-"+at,dt;st.decrypt?dt=forge$z.cipher.createDecipher(ut,st.key):dt=forge$z.cipher.createCipher(ut,st.key);var ct=dt.start;return dt.start=function(pt,ft){var ht=null;ft instanceof forge$z.util.ByteBuffer&&(ht=ft,ft={}),ft=ft||{},ft.output=ht,ft.iv=pt,ct.call(dt,ft)},dt}var forge$y=forge$D;forge$y.pki=forge$y.pki||{};var oids$2=forge$y.pki.oids=forge$y.oids=forge$y.oids||{};function _IN(st,at){oids$2[st]=at,oids$2[at]=st}function _I_(st,at){oids$2[st]=at}_IN("1.2.840.113549.1.1.1","rsaEncryption");_IN("1.2.840.113549.1.1.4","md5WithRSAEncryption");_IN("1.2.840.113549.1.1.5","sha1WithRSAEncryption");_IN("1.2.840.113549.1.1.7","RSAES-OAEP");_IN("1.2.840.113549.1.1.8","mgf1");_IN("1.2.840.113549.1.1.9","pSpecified");_IN("1.2.840.113549.1.1.10","RSASSA-PSS");_IN("1.2.840.113549.1.1.11","sha256WithRSAEncryption");_IN("1.2.840.113549.1.1.12","sha384WithRSAEncryption");_IN("1.2.840.113549.1.1.13","sha512WithRSAEncryption");_IN("1.3.101.112","EdDSA25519");_IN("1.2.840.10040.4.3","dsa-with-sha1");_IN("1.3.14.3.2.7","desCBC");_IN("1.3.14.3.2.26","sha1");_IN("1.3.14.3.2.29","sha1WithRSASignature");_IN("2.16.840.1.101.3.4.2.1","sha256");_IN("2.16.840.1.101.3.4.2.2","sha384");_IN("2.16.840.1.101.3.4.2.3","sha512");_IN("2.16.840.1.101.3.4.2.4","sha224");_IN("2.16.840.1.101.3.4.2.5","sha512-224");_IN("2.16.840.1.101.3.4.2.6","sha512-256");_IN("1.2.840.113549.2.2","md2");_IN("1.2.840.113549.2.5","md5");_IN("1.2.840.113549.1.7.1","data");_IN("1.2.840.113549.1.7.2","signedData");_IN("1.2.840.113549.1.7.3","envelopedData");_IN("1.2.840.113549.1.7.4","signedAndEnvelopedData");_IN("1.2.840.113549.1.7.5","digestedData");_IN("1.2.840.113549.1.7.6","encryptedData");_IN("1.2.840.113549.1.9.1","emailAddress");_IN("1.2.840.113549.1.9.2","unstructuredName");_IN("1.2.840.113549.1.9.3","contentType");_IN("1.2.840.113549.1.9.4","messageDigest");_IN("1.2.840.113549.1.9.5","signingTime");_IN("1.2.840.113549.1.9.6","counterSignature");_IN("1.2.840.113549.1.9.7","challengePassword");_IN("1.2.840.113549.1.9.8","unstructuredAddress");_IN("1.2.840.113549.1.9.14","extensionRequest");_IN("1.2.840.113549.1.9.20","friendlyName");_IN("1.2.840.113549.1.9.21","localKeyId");_IN("1.2.840.113549.1.9.22.1","x509Certificate");_IN("1.2.840.113549.1.12.10.1.1","keyBag");_IN("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");_IN("1.2.840.113549.1.12.10.1.3","certBag");_IN("1.2.840.113549.1.12.10.1.4","crlBag");_IN("1.2.840.113549.1.12.10.1.5","secretBag");_IN("1.2.840.113549.1.12.10.1.6","safeContentsBag");_IN("1.2.840.113549.1.5.13","pkcs5PBES2");_IN("1.2.840.113549.1.5.12","pkcs5PBKDF2");_IN("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");_IN("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");_IN("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");_IN("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");_IN("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");_IN("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");_IN("1.2.840.113549.2.7","hmacWithSHA1");_IN("1.2.840.113549.2.8","hmacWithSHA224");_IN("1.2.840.113549.2.9","hmacWithSHA256");_IN("1.2.840.113549.2.10","hmacWithSHA384");_IN("1.2.840.113549.2.11","hmacWithSHA512");_IN("1.2.840.113549.3.7","des-EDE3-CBC");_IN("2.16.840.1.101.3.4.1.2","aes128-CBC");_IN("2.16.840.1.101.3.4.1.22","aes192-CBC");_IN("2.16.840.1.101.3.4.1.42","aes256-CBC");_IN("2.5.4.3","commonName");_IN("2.5.4.4","surname");_IN("2.5.4.5","serialNumber");_IN("2.5.4.6","countryName");_IN("2.5.4.7","localityName");_IN("2.5.4.8","stateOrProvinceName");_IN("2.5.4.9","streetAddress");_IN("2.5.4.10","organizationName");_IN("2.5.4.11","organizationalUnitName");_IN("2.5.4.12","title");_IN("2.5.4.13","description");_IN("2.5.4.15","businessCategory");_IN("2.5.4.17","postalCode");_IN("2.5.4.42","givenName");_IN("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");_IN("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");_IN("2.16.840.1.113730.1.1","nsCertType");_IN("2.16.840.1.113730.1.13","nsComment");_I_("2.5.29.1","authorityKeyIdentifier");_I_("2.5.29.2","keyAttributes");_I_("2.5.29.3","certificatePolicies");_I_("2.5.29.4","keyUsageRestriction");_I_("2.5.29.5","policyMapping");_I_("2.5.29.6","subtreesConstraint");_I_("2.5.29.7","subjectAltName");_I_("2.5.29.8","issuerAltName");_I_("2.5.29.9","subjectDirectoryAttributes");_I_("2.5.29.10","basicConstraints");_I_("2.5.29.11","nameConstraints");_I_("2.5.29.12","policyConstraints");_I_("2.5.29.13","basicConstraints");_IN("2.5.29.14","subjectKeyIdentifier");_IN("2.5.29.15","keyUsage");_I_("2.5.29.16","privateKeyUsagePeriod");_IN("2.5.29.17","subjectAltName");_IN("2.5.29.18","issuerAltName");_IN("2.5.29.19","basicConstraints");_I_("2.5.29.20","cRLNumber");_I_("2.5.29.21","cRLReason");_I_("2.5.29.22","expirationDate");_I_("2.5.29.23","instructionCode");_I_("2.5.29.24","invalidityDate");_I_("2.5.29.25","cRLDistributionPoints");_I_("2.5.29.26","issuingDistributionPoint");_I_("2.5.29.27","deltaCRLIndicator");_I_("2.5.29.28","issuingDistributionPoint");_I_("2.5.29.29","certificateIssuer");_I_("2.5.29.30","nameConstraints");_IN("2.5.29.31","cRLDistributionPoints");_IN("2.5.29.32","certificatePolicies");_I_("2.5.29.33","policyMappings");_I_("2.5.29.34","policyConstraints");_IN("2.5.29.35","authorityKeyIdentifier");_I_("2.5.29.36","policyConstraints");_IN("2.5.29.37","extKeyUsage");_I_("2.5.29.46","freshestCRL");_I_("2.5.29.54","inhibitAnyPolicy");_IN("1.3.6.1.4.1.11129.2.4.2","timestampList");_IN("1.3.6.1.5.5.7.1.1","authorityInfoAccess");_IN("1.3.6.1.5.5.7.3.1","serverAuth");_IN("1.3.6.1.5.5.7.3.2","clientAuth");_IN("1.3.6.1.5.5.7.3.3","codeSigning");_IN("1.3.6.1.5.5.7.3.4","emailProtection");_IN("1.3.6.1.5.5.7.3.8","timeStamping");var forge$x=forge$D,asn1$8=forge$x.asn1=forge$x.asn1||{};asn1$8.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};asn1$8.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};asn1$8.create=function(st,at,ut,dt,ct){if(forge$x.util.isArray(dt)){for(var pt=[],ft=0;ftat){var dt=new Error("Too few bytes to parse DER.");throw dt.available=st.length(),dt.remaining=at,dt.requested=ut,dt}}var _getValueLength=function(st,at){var ut=st.getByte();if(at--,ut!==128){var dt,ct=ut&128;if(!ct)dt=ut;else{var pt=ut&127;_checkBufferLength(st,at,pt),dt=st.getInt(pt<<3)}if(dt<0)throw new Error("Negative length: "+dt);return dt}};asn1$8.fromDer=function(st,at){at===void 0&&(at={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof at=="boolean"&&(at={strict:at,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in at||(at.strict=!0),"parseAllBytes"in at||(at.parseAllBytes=!0),"decodeBitStrings"in at||(at.decodeBitStrings=!0),typeof st=="string"&&(st=forge$x.util.createBuffer(st));var ut=st.length(),dt=_fromDer(st,st.length(),0,at);if(at.parseAllBytes&&st.length()!==0){var ct=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw ct.byteCount=ut,ct.remaining=st.length(),ct}return dt};function _fromDer(st,at,ut,dt){var ct;_checkBufferLength(st,at,2);var pt=st.getByte();at--;var ft=pt&192,ht=pt&31;ct=st.length();var mt=_getValueLength(st,at);if(at-=ct-st.length(),mt!==void 0&&mt>at){if(dt.strict){var yt=new Error("Too few bytes to read ASN.1 value.");throw yt.available=st.length(),yt.remaining=at,yt.requested=mt,yt}mt=at}var bt,Tt,St=(pt&32)===32;if(St)if(bt=[],mt===void 0)for(;;){if(_checkBufferLength(st,at,2),st.bytes(2)==="\0\0"){st.getBytes(2),at-=2;break}ct=st.length(),bt.push(_fromDer(st,at,ut+1,dt)),at-=ct-st.length()}else for(;mt>0;)ct=st.length(),bt.push(_fromDer(st,mt,ut+1,dt)),at-=ct-st.length(),mt-=ct-st.length();if(bt===void 0&&ft===asn1$8.Class.UNIVERSAL&&ht===asn1$8.Type.BITSTRING&&(Tt=st.bytes(mt)),bt===void 0&&dt.decodeBitStrings&&ft===asn1$8.Class.UNIVERSAL&&ht===asn1$8.Type.BITSTRING&&mt>1){var At=st.read,vt=at,Dt=0;if(ht===asn1$8.Type.BITSTRING&&(_checkBufferLength(st,at,1),Dt=st.getByte(),at--),Dt===0)try{ct=st.length();var Et={strict:!0,decodeBitStrings:!0},_t=_fromDer(st,at,ut+1,Et),xt=ct-st.length();at-=xt,ht==asn1$8.Type.BITSTRING&&xt++;var Ct=_t.tagClass;xt===mt&&(Ct===asn1$8.Class.UNIVERSAL||Ct===asn1$8.Class.CONTEXT_SPECIFIC)&&(bt=[_t])}catch{}bt===void 0&&(st.read=At,at=vt)}if(bt===void 0){if(mt===void 0){if(dt.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");mt=at}if(ht===asn1$8.Type.BMPSTRING)for(bt="";mt>0;mt-=2)_checkBufferLength(st,at,2),bt+=String.fromCharCode(st.getInt16()),at-=2;else bt=st.getBytes(mt),at-=mt}var kt=Tt===void 0?null:{bitStringContents:Tt};return asn1$8.create(ft,ht,St,bt,kt)}asn1$8.toDer=function(st){var at=forge$x.util.createBuffer(),ut=st.tagClass|st.type,dt=forge$x.util.createBuffer(),ct=!1;if("bitStringContents"in st&&(ct=!0,st.original&&(ct=asn1$8.equals(st,st.original))),ct)dt.putBytes(st.bitStringContents);else if(st.composed){st.constructed?ut|=32:dt.putByte(0);for(var pt=0;pt1&&(st.value.charCodeAt(0)===0&&!(st.value.charCodeAt(1)&128)||st.value.charCodeAt(0)===255&&(st.value.charCodeAt(1)&128)===128)?dt.putBytes(st.value.substr(1)):dt.putBytes(st.value);if(at.putByte(ut),dt.length()<=127)at.putByte(dt.length()&127);else{var ft=dt.length(),ht="";do ht+=String.fromCharCode(ft&255),ft=ft>>>8;while(ft>0);at.putByte(ht.length|128);for(var pt=ht.length-1;pt>=0;--pt)at.putByte(ht.charCodeAt(pt))}return at.putBuffer(dt),at};asn1$8.oidToDer=function(st){var at=st.split("."),ut=forge$x.util.createBuffer();ut.putByte(40*parseInt(at[0],10)+parseInt(at[1],10));for(var dt,ct,pt,ft,ht=2;ht>>7,dt||(ft|=128),ct.push(ft),dt=!1;while(pt>0);for(var mt=ct.length-1;mt>=0;--mt)ut.putByte(ct[mt])}return ut};asn1$8.derToOid=function(st){var at;typeof st=="string"&&(st=forge$x.util.createBuffer(st));var ut=st.getByte();at=Math.floor(ut/40)+"."+ut%40;for(var dt=0;st.length()>0;)ut=st.getByte(),dt=dt<<7,ut&128?dt+=ut&127:(at+="."+(dt+ut),dt=0);return at};asn1$8.utcTimeToDate=function(st){var at=new Date,ut=parseInt(st.substr(0,2),10);ut=ut>=50?1900+ut:2e3+ut;var dt=parseInt(st.substr(2,2),10)-1,ct=parseInt(st.substr(4,2),10),pt=parseInt(st.substr(6,2),10),ft=parseInt(st.substr(8,2),10),ht=0;if(st.length>11){var mt=st.charAt(10),yt=10;mt!=="+"&&mt!=="-"&&(ht=parseInt(st.substr(10,2),10),yt+=2)}if(at.setUTCFullYear(ut,dt,ct),at.setUTCHours(pt,ft,ht,0),yt&&(mt=st.charAt(yt),mt==="+"||mt==="-")){var bt=parseInt(st.substr(yt+1,2),10),Tt=parseInt(st.substr(yt+4,2),10),St=bt*60+Tt;St*=6e4,mt==="+"?at.setTime(+at-St):at.setTime(+at+St)}return at};asn1$8.generalizedTimeToDate=function(st){var at=new Date,ut=parseInt(st.substr(0,4),10),dt=parseInt(st.substr(4,2),10)-1,ct=parseInt(st.substr(6,2),10),pt=parseInt(st.substr(8,2),10),ft=parseInt(st.substr(10,2),10),ht=parseInt(st.substr(12,2),10),mt=0,yt=0,bt=!1;st.charAt(st.length-1)==="Z"&&(bt=!0);var Tt=st.length-5,St=st.charAt(Tt);if(St==="+"||St==="-"){var At=parseInt(st.substr(Tt+1,2),10),vt=parseInt(st.substr(Tt+4,2),10);yt=At*60+vt,yt*=6e4,St==="+"&&(yt*=-1),bt=!0}return st.charAt(14)==="."&&(mt=parseFloat(st.substr(14),10)*1e3),bt?(at.setUTCFullYear(ut,dt,ct),at.setUTCHours(pt,ft,ht,mt),at.setTime(+at+yt)):(at.setFullYear(ut,dt,ct),at.setHours(pt,ft,ht,mt)),at};asn1$8.dateToUtcTime=function(st){if(typeof st=="string")return st;var at="",ut=[];ut.push((""+st.getUTCFullYear()).substr(2)),ut.push(""+(st.getUTCMonth()+1)),ut.push(""+st.getUTCDate()),ut.push(""+st.getUTCHours()),ut.push(""+st.getUTCMinutes()),ut.push(""+st.getUTCSeconds());for(var dt=0;dt=-128&&st<128)return at.putSignedInt(st,8);if(st>=-32768&&st<32768)return at.putSignedInt(st,16);if(st>=-8388608&&st<8388608)return at.putSignedInt(st,24);if(st>=-2147483648&&st<2147483648)return at.putSignedInt(st,32);var ut=new Error("Integer too large; max is 32-bits.");throw ut.integer=st,ut};asn1$8.derToInteger=function(st){typeof st=="string"&&(st=forge$x.util.createBuffer(st));var at=st.length()*8;if(at>32)throw new Error("Integer too large; max is 32-bits.");return st.getSignedInt(at)};asn1$8.validate=function(st,at,ut,dt){var ct=!1;if((st.tagClass===at.tagClass||typeof at.tagClass>"u")&&(st.type===at.type||typeof at.type>"u"))if(st.constructed===at.constructed||typeof at.constructed>"u"){if(ct=!0,at.value&&forge$x.util.isArray(at.value))for(var pt=0,ft=0;ct&&ft0&&(dt+=` `);for(var ct="",pt=0;pt1?dt+="0x"+forge$x.util.bytesToHex(st.value.slice(1)):dt+="(none)",st.value.length>0){var yt=st.value.charCodeAt(0);yt==1?dt+=" (1 unused bit shown)":yt>1&&(dt+=" ("+yt+" unused bits shown)")}}else if(st.type===asn1$8.Type.OCTETSTRING)_nonLatinRegex.test(st.value)||(dt+="("+st.value+") "),dt+="0x"+forge$x.util.bytesToHex(st.value);else if(st.type===asn1$8.Type.UTF8)try{dt+=forge$x.util.decodeUtf8(st.value)}catch(bt){if(bt.message==="URI malformed")dt+="0x"+forge$x.util.bytesToHex(st.value)+" (malformed UTF8)";else throw bt}else st.type===asn1$8.Type.PRINTABLESTRING||st.type===asn1$8.Type.IA5String?dt+=st.value:_nonLatinRegex.test(st.value)?dt+="0x"+forge$x.util.bytesToHex(st.value):st.value.length===0?dt+="[null]":dt+=st.value}return dt};var forge$w=forge$D;forge$w.md=forge$w.md||{};forge$w.md.algorithms=forge$w.md.algorithms||{};var forge$v=forge$D,hmac=forge$v.hmac=forge$v.hmac||{};hmac.create=function(){var st=null,at=null,ut=null,dt=null,ct={};return ct.start=function(pt,ft){if(pt!==null)if(typeof pt=="string")if(pt=pt.toLowerCase(),pt in forge$v.md.algorithms)at=forge$v.md.algorithms[pt].create();else throw new Error('Unknown hash algorithm "'+pt+'"');else at=pt;if(ft===null)ft=st;else{if(typeof ft=="string")ft=forge$v.util.createBuffer(ft);else if(forge$v.util.isArray(ft)){var ht=ft;ft=forge$v.util.createBuffer();for(var mt=0;mtat.blockLength&&(at.start(),at.update(ft.bytes()),ft=at.digest()),ut=forge$v.util.createBuffer(),dt=forge$v.util.createBuffer(),yt=ft.length();for(var mt=0;mt>>0,ft>>>0];for(var ht=dt.fullMessageLength.length-1;ht>=0;--ht)dt.fullMessageLength[ht]+=ft[1],ft[1]=ft[0]+(dt.fullMessageLength[ht]/4294967296>>>0),dt.fullMessageLength[ht]=dt.fullMessageLength[ht]>>>0,ft[0]=ft[1]/4294967296>>>0;return at.putBytes(ct),_update$3(st,ut,at),(at.read>2048||at.length()===0)&&at.compact(),dt},dt.digest=function(){var ct=forge$u.util.createBuffer();ct.putBytes(at.bytes());var pt=dt.fullMessageLength[dt.fullMessageLength.length-1]+dt.messageLengthSize,ft=pt&dt.blockLength-1;ct.putBytes(_padding$3.substr(0,dt.blockLength-ft));for(var ht,mt=0,yt=dt.fullMessageLength.length-1;yt>=0;--yt)ht=dt.fullMessageLength[yt]*8+mt,mt=ht/4294967296>>>0,ct.putInt32Le(ht>>>0);var bt={h0:st.h0,h1:st.h1,h2:st.h2,h3:st.h3};_update$3(bt,ut,ct);var Tt=forge$u.util.createBuffer();return Tt.putInt32Le(bt.h0),Tt.putInt32Le(bt.h1),Tt.putInt32Le(bt.h2),Tt.putInt32Le(bt.h3),Tt},dt};var _padding$3=null,_g=null,_r=null,_k$2=null,_initialized$3=!1;function _init$3(){_padding$3="€",_padding$3+=forge$u.util.fillString("\0",64),_g=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,6,11,0,5,10,15,4,9,14,3,8,13,2,7,12,5,8,11,14,1,4,7,10,13,0,3,6,9,12,15,2,0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,9],_r=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],_k$2=new Array(64);for(var st=0;st<64;++st)_k$2[st]=Math.floor(Math.abs(Math.sin(st+1))*4294967296);_initialized$3=!0}function _update$3(st,at,ut){for(var dt,ct,pt,ft,ht,mt,yt,bt,Tt=ut.length();Tt>=64;){for(ct=st.h0,pt=st.h1,ft=st.h2,ht=st.h3,bt=0;bt<16;++bt)at[bt]=ut.getInt32Le(),mt=ht^pt&(ft^ht),dt=ct+mt+_k$2[bt]+at[bt],yt=_r[bt],ct=ht,ht=ft,ft=pt,pt+=dt<>>32-yt;for(;bt<32;++bt)mt=ft^ht&(pt^ft),dt=ct+mt+_k$2[bt]+at[_g[bt]],yt=_r[bt],ct=ht,ht=ft,ft=pt,pt+=dt<>>32-yt;for(;bt<48;++bt)mt=pt^ft^ht,dt=ct+mt+_k$2[bt]+at[_g[bt]],yt=_r[bt],ct=ht,ht=ft,ft=pt,pt+=dt<>>32-yt;for(;bt<64;++bt)mt=ft^(pt|~ht),dt=ct+mt+_k$2[bt]+at[_g[bt]],yt=_r[bt],ct=ht,ht=ft,ft=pt,pt+=dt<>>32-yt;st.h0=st.h0+ct|0,st.h1=st.h1+pt|0,st.h2=st.h2+ft|0,st.h3=st.h3+ht|0,Tt-=64}}var forge$t=forge$D,pem=forge$t.pem=forge$t.pem||{};pem.encode=function(st,at){at=at||{};var ut="-----BEGIN "+st.type+`-----\r `,dt;if(st.procType&&(dt={name:"Proc-Type",values:[String(st.procType.version),st.procType.type]},ut+=foldHeader(dt)),st.contentDomain&&(dt={name:"Content-Domain",values:[st.contentDomain]},ut+=foldHeader(dt)),st.dekInfo&&(dt={name:"DEK-Info",values:[st.dekInfo.algorithm]},st.dekInfo.parameters&&dt.values.push(st.dekInfo.parameters),ut+=foldHeader(dt)),st.headers)for(var ct=0;ct65&&ft!==-1){var ht=at[ft];ht===","?(++ft,at=at.substr(0,ft)+`\r `+at.substr(ft)):at=at.substr(0,ft)+`\r `+ht+at.substr(ft+1),pt=ct-ft-1,ft=-1,++ct}else(at[ct]===" "||at[ct]===" "||at[ct]===",")&&(ft=ct);return at}function ltrim(st){return st.replace(/^\s+/,"")}var forge$s=forge$D;forge$s.des=forge$s.des||{};forge$s.des.startEncrypting=function(st,at,ut,dt){var ct=_createCipher({key:st,output:ut,decrypt:!1,mode:dt||(at===null?"ECB":"CBC")});return ct.start(at),ct};forge$s.des.createEncryptionCipher=function(st,at){return _createCipher({key:st,output:null,decrypt:!1,mode:at})};forge$s.des.startDecrypting=function(st,at,ut,dt){var ct=_createCipher({key:st,output:ut,decrypt:!0,mode:dt||(at===null?"ECB":"CBC")});return ct.start(at),ct};forge$s.des.createDecryptionCipher=function(st,at){return _createCipher({key:st,output:null,decrypt:!0,mode:at})};forge$s.des.Algorithm=function(st,at){var ut=this;ut.name=st,ut.mode=new at({blockSize:8,cipher:{encrypt:function(dt,ct){return _updateBlock(ut._keys,dt,ct,!1)},decrypt:function(dt,ct){return _updateBlock(ut._keys,dt,ct,!0)}}}),ut._init=!1};forge$s.des.Algorithm.prototype.initialize=function(st){if(!this._init){var at=forge$s.util.createBuffer(st.key);if(this.name.indexOf("3DES")===0&&at.length()!==24)throw new Error("Invalid Triple-DES key size: "+at.length()*8);this._keys=_createKeys(at),this._init=!0}};registerAlgorithm("DES-ECB",forge$s.cipher.modes.ecb);registerAlgorithm("DES-CBC",forge$s.cipher.modes.cbc);registerAlgorithm("DES-CFB",forge$s.cipher.modes.cfb);registerAlgorithm("DES-OFB",forge$s.cipher.modes.ofb);registerAlgorithm("DES-CTR",forge$s.cipher.modes.ctr);registerAlgorithm("3DES-ECB",forge$s.cipher.modes.ecb);registerAlgorithm("3DES-CBC",forge$s.cipher.modes.cbc);registerAlgorithm("3DES-CFB",forge$s.cipher.modes.cfb);registerAlgorithm("3DES-OFB",forge$s.cipher.modes.ofb);registerAlgorithm("3DES-CTR",forge$s.cipher.modes.ctr);function registerAlgorithm(st,at){var ut=function(){return new forge$s.des.Algorithm(st,at)};forge$s.cipher.registerAlgorithm(st,ut)}var spfunction1=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],spfunction2=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],spfunction3=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],spfunction4=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],spfunction5=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],spfunction6=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],spfunction7=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],spfunction8=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function _createKeys(st){for(var at=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],ut=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],dt=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],ct=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],pt=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],ft=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],ht=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],mt=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],yt=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],bt=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],Tt=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],St=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],At=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],vt=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],Dt=st.length()>8?3:1,Et=[],_t=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],xt=0,Ct,kt=0;kt>>4^$t)&252645135,$t^=Ct,wt^=Ct<<4,Ct=($t>>>-16^wt)&65535,wt^=Ct,$t^=Ct<<-16,Ct=(wt>>>2^$t)&858993459,$t^=Ct,wt^=Ct<<2,Ct=($t>>>-16^wt)&65535,wt^=Ct,$t^=Ct<<-16,Ct=(wt>>>1^$t)&1431655765,$t^=Ct,wt^=Ct<<1,Ct=($t>>>8^wt)&16711935,wt^=Ct,$t^=Ct<<8,Ct=(wt>>>1^$t)&1431655765,$t^=Ct,wt^=Ct<<1,Ct=wt<<8|$t>>>20&240,wt=$t<<24|$t<<8&16711680|$t>>>8&65280|$t>>>24&240,$t=Ct;for(var Lt=0;Lt<_t.length;++Lt){_t[Lt]?(wt=wt<<2|wt>>>26,$t=$t<<2|$t>>>26):(wt=wt<<1|wt>>>27,$t=$t<<1|$t>>>27),wt&=-15,$t&=-15;var Ot=at[wt>>>28]|ut[wt>>>24&15]|dt[wt>>>20&15]|ct[wt>>>16&15]|pt[wt>>>12&15]|ft[wt>>>8&15]|ht[wt>>>4&15],zt=mt[$t>>>28]|yt[$t>>>24&15]|bt[$t>>>20&15]|Tt[$t>>>16&15]|St[$t>>>12&15]|At[$t>>>8&15]|vt[$t>>>4&15];Ct=(zt>>>16^Ot)&65535,Et[xt++]=Ot^Ct,Et[xt++]=zt^Ct<<16}}return Et}function _updateBlock(st,at,ut,dt){var ct=st.length===32?3:9,pt;ct===3?pt=dt?[30,-2,-2]:[0,32,2]:pt=dt?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var ft,ht=at[0],mt=at[1];ft=(ht>>>4^mt)&252645135,mt^=ft,ht^=ft<<4,ft=(ht>>>16^mt)&65535,mt^=ft,ht^=ft<<16,ft=(mt>>>2^ht)&858993459,ht^=ft,mt^=ft<<2,ft=(mt>>>8^ht)&16711935,ht^=ft,mt^=ft<<8,ft=(ht>>>1^mt)&1431655765,mt^=ft,ht^=ft<<1,ht=ht<<1|ht>>>31,mt=mt<<1|mt>>>31;for(var yt=0;yt>>4|mt<<28)^st[St+1];ft=ht,ht=mt,mt=ft^(spfunction2[At>>>24&63]|spfunction4[At>>>16&63]|spfunction6[At>>>8&63]|spfunction8[At&63]|spfunction1[vt>>>24&63]|spfunction3[vt>>>16&63]|spfunction5[vt>>>8&63]|spfunction7[vt&63])}ft=ht,ht=mt,mt=ft}ht=ht>>>1|ht<<31,mt=mt>>>1|mt<<31,ft=(ht>>>1^mt)&1431655765,mt^=ft,ht^=ft<<1,ft=(mt>>>8^ht)&16711935,ht^=ft,mt^=ft<<8,ft=(mt>>>2^ht)&858993459,ht^=ft,mt^=ft<<2,ft=(ht>>>16^mt)&65535,mt^=ft,ht^=ft<<16,ft=(ht>>>4^mt)&252645135,mt^=ft,ht^=ft<<4,ut[0]=ht,ut[1]=mt}function _createCipher(st){st=st||{};var at=(st.mode||"CBC").toUpperCase(),ut="DES-"+at,dt;st.decrypt?dt=forge$s.cipher.createDecipher(ut,st.key):dt=forge$s.cipher.createCipher(ut,st.key);var ct=dt.start;return dt.start=function(pt,ft){var ht=null;ft instanceof forge$s.util.ByteBuffer&&(ht=ft,ft={}),ft=ft||{},ft.output=ht,ft.iv=pt,ct.call(dt,ft)},dt}var forge$r=forge$D,pkcs5=forge$r.pkcs5=forge$r.pkcs5||{},crypto$1;forge$r.util.isNodejs&&!forge$r.options.usePureJavaScript&&(crypto$1=require$$8);forge$r.pbkdf2=pkcs5.pbkdf2=function(st,at,ut,dt,ct,pt){if(typeof ct=="function"&&(pt=ct,ct=null),forge$r.util.isNodejs&&!forge$r.options.usePureJavaScript&&crypto$1.pbkdf2&&(ct===null||typeof ct!="object")&&(crypto$1.pbkdf2Sync.length>4||!ct||ct==="sha1"))return typeof ct!="string"&&(ct="sha1"),st=Buffer.from(st,"binary"),at=Buffer.from(at,"binary"),pt?crypto$1.pbkdf2Sync.length===4?crypto$1.pbkdf2(st,at,ut,dt,function(Ct,kt){if(Ct)return pt(Ct);pt(null,kt.toString("binary"))}):crypto$1.pbkdf2(st,at,ut,dt,ct,function(Ct,kt){if(Ct)return pt(Ct);pt(null,kt.toString("binary"))}):crypto$1.pbkdf2Sync.length===4?crypto$1.pbkdf2Sync(st,at,ut,dt).toString("binary"):crypto$1.pbkdf2Sync(st,at,ut,dt,ct).toString("binary");if((typeof ct>"u"||ct===null)&&(ct="sha1"),typeof ct=="string"){if(!(ct in forge$r.md.algorithms))throw new Error("Unknown hash algorithm: "+ct);ct=forge$r.md[ct].create()}var ft=ct.digestLength;if(dt>4294967295*ft){var ht=new Error("Derived key is too long.");if(pt)return pt(ht);throw ht}var mt=Math.ceil(dt/ft),yt=dt-(mt-1)*ft,bt=forge$r.hmac.create();bt.start(ct,st);var Tt="",St,At,vt;if(!pt){for(var Dt=1;Dt<=mt;++Dt){bt.start(null,null),bt.update(at),bt.update(forge$r.util.int32ToBytes(Dt)),St=vt=bt.digest().getBytes();for(var Et=2;Et<=ut;++Et)bt.start(null,null),bt.update(vt),At=bt.digest().getBytes(),St=forge$r.util.xorBytes(St,At,ft),vt=At;Tt+=Dtmt)return pt(null,Tt);bt.start(null,null),bt.update(at),bt.update(forge$r.util.int32ToBytes(Dt)),St=vt=bt.digest().getBytes(),Et=2,xt()}function xt(){if(Et<=ut)return bt.start(null,null),bt.update(vt),At=bt.digest().getBytes(),St=forge$r.util.xorBytes(St,At,ft),vt=At,++Et,forge$r.util.setImmediate(xt);Tt+=Dt>>0,ft>>>0];for(var ht=dt.fullMessageLength.length-1;ht>=0;--ht)dt.fullMessageLength[ht]+=ft[1],ft[1]=ft[0]+(dt.fullMessageLength[ht]/4294967296>>>0),dt.fullMessageLength[ht]=dt.fullMessageLength[ht]>>>0,ft[0]=ft[1]/4294967296>>>0;return at.putBytes(ct),_update$2(st,ut,at),(at.read>2048||at.length()===0)&&at.compact(),dt},dt.digest=function(){var ct=forge$q.util.createBuffer();ct.putBytes(at.bytes());var pt=dt.fullMessageLength[dt.fullMessageLength.length-1]+dt.messageLengthSize,ft=pt&dt.blockLength-1;ct.putBytes(_padding$2.substr(0,dt.blockLength-ft));for(var ht,mt,yt=dt.fullMessageLength[0]*8,bt=0;bt>>0,yt+=mt,ct.putInt32(yt>>>0),yt=ht>>>0;ct.putInt32(yt);var Tt={h0:st.h0,h1:st.h1,h2:st.h2,h3:st.h3,h4:st.h4,h5:st.h5,h6:st.h6,h7:st.h7};_update$2(Tt,ut,ct);var St=forge$q.util.createBuffer();return St.putInt32(Tt.h0),St.putInt32(Tt.h1),St.putInt32(Tt.h2),St.putInt32(Tt.h3),St.putInt32(Tt.h4),St.putInt32(Tt.h5),St.putInt32(Tt.h6),St.putInt32(Tt.h7),St},dt};var _padding$2=null,_initialized$2=!1,_k$1=null;function _init$2(){_padding$2="€",_padding$2+=forge$q.util.fillString("\0",64),_k$1=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],_initialized$2=!0}function _update$2(st,at,ut){for(var dt,ct,pt,ft,ht,mt,yt,bt,Tt,St,At,vt,Dt,Et,_t,xt=ut.length();xt>=64;){for(yt=0;yt<16;++yt)at[yt]=ut.getInt32();for(;yt<64;++yt)dt=at[yt-2],dt=(dt>>>17|dt<<15)^(dt>>>19|dt<<13)^dt>>>10,ct=at[yt-15],ct=(ct>>>7|ct<<25)^(ct>>>18|ct<<14)^ct>>>3,at[yt]=dt+at[yt-7]+ct+at[yt-16]|0;for(bt=st.h0,Tt=st.h1,St=st.h2,At=st.h3,vt=st.h4,Dt=st.h5,Et=st.h6,_t=st.h7,yt=0;yt<64;++yt)ft=(vt>>>6|vt<<26)^(vt>>>11|vt<<21)^(vt>>>25|vt<<7),ht=Et^vt&(Dt^Et),pt=(bt>>>2|bt<<30)^(bt>>>13|bt<<19)^(bt>>>22|bt<<10),mt=bt&Tt|St&(bt^Tt),dt=_t+ft+ht+_k$1[yt]+at[yt],ct=pt+mt,_t=Et,Et=Dt,Dt=vt,vt=At+dt>>>0,At=St,St=Tt,Tt=bt,bt=dt+ct>>>0;st.h0=st.h0+bt|0,st.h1=st.h1+Tt|0,st.h2=st.h2+St|0,st.h3=st.h3+At|0,st.h4=st.h4+vt|0,st.h5=st.h5+Dt|0,st.h6=st.h6+Et|0,st.h7=st.h7+_t|0,xt-=64}}var forge$p=forge$D,_crypto$1=null;forge$p.util.isNodejs&&!forge$p.options.usePureJavaScript&&!process.versions["node-webkit"]&&(_crypto$1=require$$8);var prng=forge$p.prng=forge$p.prng||{};prng.create=function(st){for(var at={plugin:st,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},ut=st.md,dt=new Array(32),ct=0;ct<32;++ct)dt[ct]=ut.create();at.pools=dt,at.pool=0,at.generate=function(yt,bt){if(!bt)return at.generateSync(yt);var Tt=at.plugin.cipher,St=at.plugin.increment,At=at.plugin.formatKey,vt=at.plugin.formatSeed,Dt=forge$p.util.createBuffer();at.key=null,Et();function Et(_t){if(_t)return bt(_t);if(Dt.length()>=yt)return bt(null,Dt.getBytes(yt));if(at.generated>1048575&&(at.key=null),at.key===null)return forge$p.util.nextTick(function(){pt(Et)});var xt=Tt(at.key,at.seed);at.generated+=xt.length,Dt.putBytes(xt),at.key=At(Tt(at.key,St(at.seed))),at.seed=vt(Tt(at.key,at.seed)),forge$p.util.setImmediate(Et)}},at.generateSync=function(yt){var bt=at.plugin.cipher,Tt=at.plugin.increment,St=at.plugin.formatKey,At=at.plugin.formatSeed;at.key=null;for(var vt=forge$p.util.createBuffer();vt.length()1048575&&(at.key=null),at.key===null&&ft();var Dt=bt(at.key,at.seed);at.generated+=Dt.length,vt.putBytes(Dt),at.key=St(bt(at.key,Tt(at.seed))),at.seed=At(bt(at.key,at.seed))}return vt.getBytes(yt)};function pt(yt){if(at.pools[0].messageLength>=32)return ht(),yt();var bt=32-at.pools[0].messageLength<<5;at.seedFile(bt,function(Tt,St){if(Tt)return yt(Tt);at.collect(St),ht(),yt()})}function ft(){if(at.pools[0].messageLength>=32)return ht();var yt=32-at.pools[0].messageLength<<5;at.collect(at.seedFileSync(yt)),ht()}function ht(){at.reseeds=at.reseeds===4294967295?0:at.reseeds+1;var yt=at.plugin.md.create();yt.update(at.keyBytes);for(var bt=1,Tt=0;Tt<32;++Tt)at.reseeds%bt===0&&(yt.update(at.pools[Tt].digest().getBytes()),at.pools[Tt].start()),bt=bt<<1;at.keyBytes=yt.digest().getBytes(),yt.start(),yt.update(at.keyBytes);var St=yt.digest().getBytes();at.key=at.plugin.formatKey(at.keyBytes),at.seed=at.plugin.formatSeed(St),at.generated=0}function mt(yt){var bt=null,Tt=forge$p.util.globalScope,St=Tt.crypto||Tt.msCrypto;St&&St.getRandomValues&&(bt=function(wt){return St.getRandomValues(wt)});var At=forge$p.util.createBuffer();if(bt)for(;At.length()>16),xt+=(_t&32767)<<16,xt+=_t>>15,xt=(xt&2147483647)+(xt>>31),kt=xt&4294967295;for(var Et=0;Et<3;++Et)Ct=kt>>>(Et<<3),Ct^=Math.floor(Math.random()*256),At.putByte(Ct&255)}return At.getBytes(yt)}return _crypto$1?(at.seedFile=function(yt,bt){_crypto$1.randomBytes(yt,function(Tt,St){if(Tt)return bt(Tt);bt(null,St.toString())})},at.seedFileSync=function(yt){return _crypto$1.randomBytes(yt).toString()}):(at.seedFile=function(yt,bt){try{bt(null,mt(yt))}catch(Tt){bt(Tt)}},at.seedFileSync=mt),at.collect=function(yt){for(var bt=yt.length,Tt=0;Tt>St&255);at.collect(Tt)},at.registerWorker=function(yt){if(yt===self)at.seedFile=function(Tt,St){function At(vt){var Dt=vt.data;Dt.forge&&Dt.forge.prng&&(self.removeEventListener("message",At),St(Dt.forge.prng.err,Dt.forge.prng.bytes))}self.addEventListener("message",At),self.postMessage({forge:{prng:{needed:Tt}}})};else{var bt=function(Tt){var St=Tt.data;St.forge&&St.forge.prng&&at.seedFile(St.forge.prng.needed,function(At,vt){yt.postMessage({forge:{prng:{err:At,bytes:vt}}})})};yt.addEventListener("message",bt)}},at};var forge$o=forge$D;(function(){if(forge$o.random&&forge$o.random.getBytes){forge$o.random;return}(function(st){var at={},ut=new Array(4),dt=forge$o.util.createBuffer();at.formatKey=function(Tt){var St=forge$o.util.createBuffer(Tt);return Tt=new Array(4),Tt[0]=St.getInt32(),Tt[1]=St.getInt32(),Tt[2]=St.getInt32(),Tt[3]=St.getInt32(),forge$o.aes._expandKey(Tt,!1)},at.formatSeed=function(Tt){var St=forge$o.util.createBuffer(Tt);return Tt=new Array(4),Tt[0]=St.getInt32(),Tt[1]=St.getInt32(),Tt[2]=St.getInt32(),Tt[3]=St.getInt32(),Tt},at.cipher=function(Tt,St){return forge$o.aes._updateBlock(Tt,St,ut,!1),dt.putInt32(ut[0]),dt.putInt32(ut[1]),dt.putInt32(ut[2]),dt.putInt32(ut[3]),dt.getBytes()},at.increment=function(Tt){return++Tt[3],Tt},at.md=forge$o.md.sha256;function ct(){var Tt=forge$o.prng.create(at);return Tt.getBytes=function(St,At){return Tt.generate(St,At)},Tt.getBytesSync=function(St){return Tt.generate(St)},Tt}var pt=ct(),ft=null,ht=forge$o.util.globalScope,mt=ht.crypto||ht.msCrypto;if(mt&&mt.getRandomValues&&(ft=function(Tt){return mt.getRandomValues(Tt)}),forge$o.options.usePureJavaScript||!forge$o.util.isNodejs&&!ft){if(pt.collectInt(+new Date,32),typeof navigator<"u"){var yt="";for(var bt in navigator)try{typeof navigator[bt]=="string"&&(yt+=navigator[bt])}catch{}pt.collect(yt),yt=null}st&&(st().mousemove(function(Tt){pt.collectInt(Tt.clientX,16),pt.collectInt(Tt.clientY,16)}),st().keypress(function(Tt){pt.collectInt(Tt.charCode,8)}))}if(!forge$o.random)forge$o.random=pt;else for(var bt in pt)forge$o.random[bt]=pt[bt];forge$o.random.createInstance=ct,forge$o.random})(typeof jQuery<"u"?jQuery:null)})();var forge$n=forge$D,piTable=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],s$8=[1,2,3,5],rol=function(st,at){return st<>16-at},ror=function(st,at){return(st&65535)>>at|st<<16-at&65535};forge$n.rc2=forge$n.rc2||{};forge$n.rc2.expandKey=function(st,at){typeof st=="string"&&(st=forge$n.util.createBuffer(st)),at=at||128;var ut=st,dt=st.length(),ct=at,pt=Math.ceil(ct/8),ft=255>>(ct&7),ht;for(ht=dt;ht<128;ht++)ut.putByte(piTable[ut.at(ht-1)+ut.at(ht-dt)&255]);for(ut.setAt(128-pt,piTable[ut.at(128-pt)&ft]),ht=127-pt;ht>=0;ht--)ut.setAt(ht,piTable[ut.at(ht+1)^ut.at(ht+pt)]);return ut};var createCipher=function(st,at,ut){var dt=!1,ct=null,pt=null,ft=null,ht,mt,yt,bt,Tt=[];for(st=forge$n.rc2.expandKey(st,at),yt=0;yt<64;yt++)Tt.push(st.getInt16Le());ut?(ht=function(vt){for(yt=0;yt<4;yt++)vt[yt]+=Tt[bt]+(vt[(yt+3)%4]&vt[(yt+2)%4])+(~vt[(yt+3)%4]&vt[(yt+1)%4]),vt[yt]=rol(vt[yt],s$8[yt]),bt++},mt=function(vt){for(yt=0;yt<4;yt++)vt[yt]+=Tt[vt[(yt+3)%4]&63]}):(ht=function(vt){for(yt=3;yt>=0;yt--)vt[yt]=ror(vt[yt],s$8[yt]),vt[yt]-=Tt[bt]+(vt[(yt+3)%4]&vt[(yt+2)%4])+(~vt[(yt+3)%4]&vt[(yt+1)%4]),bt--},mt=function(vt){for(yt=3;yt>=0;yt--)vt[yt]-=Tt[vt[(yt+3)%4]&63]});var St=function(vt){var Dt=[];for(yt=0;yt<4;yt++){var Et=ct.getInt16Le();ft!==null&&(ut?Et^=ft.getInt16Le():ft.putInt16Le(Et)),Dt.push(Et&65535)}bt=ut?0:63;for(var _t=0;_t=8;)St([[5,ht],[1,mt],[6,ht],[1,mt],[5,ht]])},finish:function(vt){var Dt=!0;if(ut)if(vt)Dt=vt(8,ct,!ut);else{var Et=ct.length()===8?8:8-ct.length();ct.fillWithByte(Et,Et)}if(Dt&&(dt=!0,At.update()),!ut&&(Dt=ct.length()===0,Dt))if(vt)Dt=vt(8,pt,!ut);else{var _t=pt.length(),xt=pt.at(_t-1);xt>_t?Dt=!1:pt.truncate(xt)}return Dt}},At};forge$n.rc2.startEncrypting=function(st,at,ut){var dt=forge$n.rc2.createEncryptionCipher(st,128);return dt.start(at,ut),dt};forge$n.rc2.createEncryptionCipher=function(st,at){return createCipher(st,at,!0)};forge$n.rc2.startDecrypting=function(st,at,ut){var dt=forge$n.rc2.createDecryptionCipher(st,128);return dt.start(at,ut),dt};forge$n.rc2.createDecryptionCipher=function(st,at){return createCipher(st,at,!1)};var forge$m=forge$D;forge$m.jsbn=forge$m.jsbn||{};var dbits;function BigInteger$4(st,at,ut){this.data=[],st!=null&&(typeof st=="number"?this.fromNumber(st,at,ut):at==null&&typeof st!="string"?this.fromString(st,256):this.fromString(st,at))}forge$m.jsbn.BigInteger=BigInteger$4;function nbi(){return new BigInteger$4(null)}function am1(st,at,ut,dt,ct,pt){for(;--pt>=0;){var ft=at*this.data[st++]+ut.data[dt]+ct;ct=Math.floor(ft/67108864),ut.data[dt++]=ft&67108863}return ct}function am2(st,at,ut,dt,ct,pt){for(var ft=at&32767,ht=at>>15;--pt>=0;){var mt=this.data[st]&32767,yt=this.data[st++]>>15,bt=ht*mt+yt*ft;mt=ft*mt+((bt&32767)<<15)+ut.data[dt]+(ct&1073741823),ct=(mt>>>30)+(bt>>>15)+ht*yt+(ct>>>30),ut.data[dt++]=mt&1073741823}return ct}function am3(st,at,ut,dt,ct,pt){for(var ft=at&16383,ht=at>>14;--pt>=0;){var mt=this.data[st]&16383,yt=this.data[st++]>>14,bt=ht*mt+yt*ft;mt=ft*mt+((bt&16383)<<14)+ut.data[dt]+ct,ct=(mt>>28)+(bt>>14)+ht*yt,ut.data[dt++]=mt&268435455}return ct}typeof navigator>"u"?(BigInteger$4.prototype.am=am3,dbits=28):navigator.appName=="Microsoft Internet Explorer"?(BigInteger$4.prototype.am=am2,dbits=30):navigator.appName!="Netscape"?(BigInteger$4.prototype.am=am1,dbits=26):(BigInteger$4.prototype.am=am3,dbits=28);BigInteger$4.prototype.DB=dbits;BigInteger$4.prototype.DM=(1<=0;--at)st.data[at]=this.data[at];st.t=this.t,st.s=this.s}function bnpFromInt(st){this.t=1,this.s=st<0?-1:0,st>0?this.data[0]=st:st<-1?this.data[0]=st+this.DV:this.t=0}function nbv(st){var at=nbi();return at.fromInt(st),at}function bnpFromString(st,at){var ut;if(at==16)ut=4;else if(at==8)ut=3;else if(at==256)ut=8;else if(at==2)ut=1;else if(at==32)ut=5;else if(at==4)ut=2;else{this.fromRadix(st,at);return}this.t=0,this.s=0;for(var dt=st.length,ct=!1,pt=0;--dt>=0;){var ft=ut==8?st[dt]&255:intAt(st,dt);if(ft<0){st.charAt(dt)=="-"&&(ct=!0);continue}ct=!1,pt==0?this.data[this.t++]=ft:pt+ut>this.DB?(this.data[this.t-1]|=(ft&(1<>this.DB-pt):this.data[this.t-1]|=ft<=this.DB&&(pt-=this.DB)}ut==8&&st[0]&128&&(this.s=-1,pt>0&&(this.data[this.t-1]|=(1<0&&this.data[this.t-1]==st;)--this.t}function bnToString(st){if(this.s<0)return"-"+this.negate().toString(st);var at;if(st==16)at=4;else if(st==8)at=3;else if(st==2)at=1;else if(st==32)at=5;else if(st==4)at=2;else return this.toRadix(st);var ut=(1<0)for(ht>ht)>0&&(ct=!0,pt=int2char(dt));ft>=0;)ht>(ht+=this.DB-at)):(dt=this.data[ft]>>(ht-=at)&ut,ht<=0&&(ht+=this.DB,--ft)),dt>0&&(ct=!0),ct&&(pt+=int2char(dt));return ct?pt:"0"}function bnNegate(){var st=nbi();return BigInteger$4.ZERO.subTo(this,st),st}function bnAbs(){return this.s<0?this.negate():this}function bnCompareTo(st){var at=this.s-st.s;if(at!=0)return at;var ut=this.t;if(at=ut-st.t,at!=0)return this.s<0?-at:at;for(;--ut>=0;)if((at=this.data[ut]-st.data[ut])!=0)return at;return 0}function nbits(st){var at=1,ut;return(ut=st>>>16)!=0&&(st=ut,at+=16),(ut=st>>8)!=0&&(st=ut,at+=8),(ut=st>>4)!=0&&(st=ut,at+=4),(ut=st>>2)!=0&&(st=ut,at+=2),(ut=st>>1)!=0&&(st=ut,at+=1),at}function bnBitLength(){return this.t<=0?0:this.DB*(this.t-1)+nbits(this.data[this.t-1]^this.s&this.DM)}function bnpDLShiftTo(st,at){var ut;for(ut=this.t-1;ut>=0;--ut)at.data[ut+st]=this.data[ut];for(ut=st-1;ut>=0;--ut)at.data[ut]=0;at.t=this.t+st,at.s=this.s}function bnpDRShiftTo(st,at){for(var ut=st;ut=0;--ht)at.data[ht+pt+1]=this.data[ht]>>dt|ft,ft=(this.data[ht]&ct)<=0;--ht)at.data[ht]=0;at.data[pt]=ft,at.t=this.t+pt+1,at.s=this.s,at.clamp()}function bnpRShiftTo(st,at){at.s=this.s;var ut=Math.floor(st/this.DB);if(ut>=this.t){at.t=0;return}var dt=st%this.DB,ct=this.DB-dt,pt=(1<>dt;for(var ft=ut+1;ft>dt;dt>0&&(at.data[this.t-ut-1]|=(this.s&pt)<>=this.DB;if(st.t>=this.DB;dt+=this.s}else{for(dt+=this.s;ut>=this.DB;dt-=st.s}at.s=dt<0?-1:0,dt<-1?at.data[ut++]=this.DV+dt:dt>0&&(at.data[ut++]=dt),at.t=ut,at.clamp()}function bnpMultiplyTo(st,at){var ut=this.abs(),dt=st.abs(),ct=ut.t;for(at.t=ct+dt.t;--ct>=0;)at.data[ct]=0;for(ct=0;ct=0;)st.data[ut]=0;for(ut=0;ut=at.DV&&(st.data[ut+at.t]-=at.DV,st.data[ut+at.t+1]=1)}st.t>0&&(st.data[st.t-1]+=at.am(ut,at.data[ut],st,2*ut,0,1)),st.s=0,st.clamp()}function bnpDivRemTo(st,at,ut){var dt=st.abs();if(!(dt.t<=0)){var ct=this.abs();if(ct.t0?(dt.lShiftTo(mt,pt),ct.lShiftTo(mt,ut)):(dt.copyTo(pt),ct.copyTo(ut));var yt=pt.t,bt=pt.data[yt-1];if(bt!=0){var Tt=bt*(1<1?pt.data[yt-2]>>this.F2:0),St=this.FV/Tt,At=(1<=0&&(ut.data[ut.t++]=1,ut.subTo(_t,ut)),BigInteger$4.ONE.dlShiftTo(yt,_t),_t.subTo(pt,pt);pt.t=0;){var xt=ut.data[--Dt]==bt?this.DM:Math.floor(ut.data[Dt]*St+(ut.data[Dt-1]+vt)*At);if((ut.data[Dt]+=pt.am(0,xt,ut,Et,0,yt))0&&ut.rShiftTo(mt,ut),ft<0&&BigInteger$4.ZERO.subTo(ut,ut)}}}function bnMod(st){var at=nbi();return this.abs().divRemTo(st,null,at),this.s<0&&at.compareTo(BigInteger$4.ZERO)>0&&st.subTo(at,at),at}function Classic(st){this.m=st}function cConvert(st){return st.s<0||st.compareTo(this.m)>=0?st.mod(this.m):st}function cRevert(st){return st}function cReduce(st){st.divRemTo(this.m,null,st)}function cMulTo(st,at,ut){st.multiplyTo(at,ut),this.reduce(ut)}function cSqrTo(st,at){st.squareTo(at),this.reduce(at)}Classic.prototype.convert=cConvert;Classic.prototype.revert=cRevert;Classic.prototype.reduce=cReduce;Classic.prototype.mulTo=cMulTo;Classic.prototype.sqrTo=cSqrTo;function bnpInvDigit(){if(this.t<1)return 0;var st=this.data[0];if(!(st&1))return 0;var at=st&3;return at=at*(2-(st&15)*at)&15,at=at*(2-(st&255)*at)&255,at=at*(2-((st&65535)*at&65535))&65535,at=at*(2-st*at%this.DV)%this.DV,at>0?this.DV-at:-at}function Montgomery(st){this.m=st,this.mp=st.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(at,at),at}function montRevert(st){var at=nbi();return st.copyTo(at),this.reduce(at),at}function montReduce(st){for(;st.t<=this.mt2;)st.data[st.t++]=0;for(var at=0;at>15)*this.mpl&this.um)<<15)&st.DM;for(ut=at+this.m.t,st.data[ut]+=this.m.am(0,dt,st,at,0,this.m.t);st.data[ut]>=st.DV;)st.data[ut]-=st.DV,st.data[++ut]++}st.clamp(),st.drShiftTo(this.m.t,st),st.compareTo(this.m)>=0&&st.subTo(this.m,st)}function montSqrTo(st,at){st.squareTo(at),this.reduce(at)}function montMulTo(st,at,ut){st.multiplyTo(at,ut),this.reduce(ut)}Montgomery.prototype.convert=montConvert;Montgomery.prototype.revert=montRevert;Montgomery.prototype.reduce=montReduce;Montgomery.prototype.mulTo=montMulTo;Montgomery.prototype.sqrTo=montSqrTo;function bnpIsEven(){return(this.t>0?this.data[0]&1:this.s)==0}function bnpExp(st,at){if(st>4294967295||st<1)return BigInteger$4.ONE;var ut=nbi(),dt=nbi(),ct=at.convert(this),pt=nbits(st)-1;for(ct.copyTo(ut);--pt>=0;)if(at.sqrTo(ut,dt),(st&1<0)at.mulTo(dt,ct,ut);else{var ft=ut;ut=dt,dt=ft}return at.revert(ut)}function bnModPowInt(st,at){var ut;return st<256||at.isEven()?ut=new Classic(at):ut=new Montgomery(at),this.exp(st,ut)}BigInteger$4.prototype.copyTo=bnpCopyTo;BigInteger$4.prototype.fromInt=bnpFromInt;BigInteger$4.prototype.fromString=bnpFromString;BigInteger$4.prototype.clamp=bnpClamp;BigInteger$4.prototype.dlShiftTo=bnpDLShiftTo;BigInteger$4.prototype.drShiftTo=bnpDRShiftTo;BigInteger$4.prototype.lShiftTo=bnpLShiftTo;BigInteger$4.prototype.rShiftTo=bnpRShiftTo;BigInteger$4.prototype.subTo=bnpSubTo;BigInteger$4.prototype.multiplyTo=bnpMultiplyTo;BigInteger$4.prototype.squareTo=bnpSquareTo;BigInteger$4.prototype.divRemTo=bnpDivRemTo;BigInteger$4.prototype.invDigit=bnpInvDigit;BigInteger$4.prototype.isEven=bnpIsEven;BigInteger$4.prototype.exp=bnpExp;BigInteger$4.prototype.toString=bnToString;BigInteger$4.prototype.negate=bnNegate;BigInteger$4.prototype.abs=bnAbs;BigInteger$4.prototype.compareTo=bnCompareTo;BigInteger$4.prototype.bitLength=bnBitLength;BigInteger$4.prototype.mod=bnMod;BigInteger$4.prototype.modPowInt=bnModPowInt;BigInteger$4.ZERO=nbv(0);BigInteger$4.ONE=nbv(1);function bnClone(){var st=nbi();return this.copyTo(st),st}function bnIntValue(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<>24}function bnShortValue(){return this.t==0?this.s:this.data[0]<<16>>16}function bnpChunkSize(st){return Math.floor(Math.LN2*this.DB/Math.log(st))}function bnSigNum(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function bnpToRadix(st){if(st==null&&(st=10),this.signum()==0||st<2||st>36)return"0";var at=this.chunkSize(st),ut=Math.pow(st,at),dt=nbv(ut),ct=nbi(),pt=nbi(),ft="";for(this.divRemTo(dt,ct,pt);ct.signum()>0;)ft=(ut+pt.intValue()).toString(st).substr(1)+ft,ct.divRemTo(dt,ct,pt);return pt.intValue().toString(st)+ft}function bnpFromRadix(st,at){this.fromInt(0),at==null&&(at=10);for(var ut=this.chunkSize(at),dt=Math.pow(at,ut),ct=!1,pt=0,ft=0,ht=0;ht=ut&&(this.dMultiply(dt),this.dAddOffset(ft,0),pt=0,ft=0)}pt>0&&(this.dMultiply(Math.pow(at,pt)),this.dAddOffset(ft,0)),ct&&BigInteger$4.ZERO.subTo(this,this)}function bnpFromNumber(st,at,ut){if(typeof at=="number")if(st<2)this.fromInt(1);else for(this.fromNumber(st,ut),this.testBit(st-1)||this.bitwiseTo(BigInteger$4.ONE.shiftLeft(st-1),op_or,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(at);)this.dAddOffset(2,0),this.bitLength()>st&&this.subTo(BigInteger$4.ONE.shiftLeft(st-1),this);else{var dt=new Array,ct=st&7;dt.length=(st>>3)+1,at.nextBytes(dt),ct>0?dt[0]&=(1<0)for(ut>ut)!=(this.s&this.DM)>>ut&&(at[ct++]=dt|this.s<=0;)ut<8?(dt=(this.data[st]&(1<>(ut+=this.DB-8)):(dt=this.data[st]>>(ut-=8)&255,ut<=0&&(ut+=this.DB,--st)),dt&128&&(dt|=-256),ct==0&&(this.s&128)!=(dt&128)&&++ct,(ct>0||dt!=this.s)&&(at[ct++]=dt);return at}function bnEquals(st){return this.compareTo(st)==0}function bnMin(st){return this.compareTo(st)<0?this:st}function bnMax(st){return this.compareTo(st)>0?this:st}function bnpBitwiseTo(st,at,ut){var dt,ct,pt=Math.min(st.t,this.t);for(dt=0;dt>=16,at+=16),st&255||(st>>=8,at+=8),st&15||(st>>=4,at+=4),st&3||(st>>=2,at+=2),st&1||++at,at}function bnGetLowestSetBit(){for(var st=0;st=this.t?this.s!=0:(this.data[at]&1<>=this.DB;if(st.t>=this.DB;dt+=this.s}else{for(dt+=this.s;ut>=this.DB;dt+=st.s}at.s=dt<0?-1:0,dt>0?at.data[ut++]=dt:dt<-1&&(at.data[ut++]=this.DV+dt),at.t=ut,at.clamp()}function bnAdd(st){var at=nbi();return this.addTo(st,at),at}function bnSubtract(st){var at=nbi();return this.subTo(st,at),at}function bnMultiply(st){var at=nbi();return this.multiplyTo(st,at),at}function bnDivide(st){var at=nbi();return this.divRemTo(st,at,null),at}function bnRemainder(st){var at=nbi();return this.divRemTo(st,null,at),at}function bnDivideAndRemainder(st){var at=nbi(),ut=nbi();return this.divRemTo(st,at,ut),new Array(at,ut)}function bnpDMultiply(st){this.data[this.t]=this.am(0,st-1,this,0,0,this.t),++this.t,this.clamp()}function bnpDAddOffset(st,at){if(st!=0){for(;this.t<=at;)this.data[this.t++]=0;for(this.data[at]+=st;this.data[at]>=this.DV;)this.data[at]-=this.DV,++at>=this.t&&(this.data[this.t++]=0),++this.data[at]}}function NullExp(){}function nNop(st){return st}function nMulTo(st,at,ut){st.multiplyTo(at,ut)}function nSqrTo(st,at){st.squareTo(at)}NullExp.prototype.convert=nNop;NullExp.prototype.revert=nNop;NullExp.prototype.mulTo=nMulTo;NullExp.prototype.sqrTo=nSqrTo;function bnPow(st){return this.exp(st,new NullExp)}function bnpMultiplyLowerTo(st,at,ut){var dt=Math.min(this.t+st.t,at);for(ut.s=0,ut.t=dt;dt>0;)ut.data[--dt]=0;var ct;for(ct=ut.t-this.t;dt=0;)ut.data[dt]=0;for(dt=Math.max(at-this.t,0);dt2*this.m.t)return st.mod(this.m);if(st.compareTo(this.m)<0)return st;var at=nbi();return st.copyTo(at),this.reduce(at),at}function barrettRevert(st){return st}function barrettReduce(st){for(st.drShiftTo(this.m.t-1,this.r2),st.t>this.m.t+1&&(st.t=this.m.t+1,st.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);st.compareTo(this.r2)<0;)st.dAddOffset(1,this.m.t+1);for(st.subTo(this.r2,st);st.compareTo(this.m)>=0;)st.subTo(this.m,st)}function barrettSqrTo(st,at){st.squareTo(at),this.reduce(at)}function barrettMulTo(st,at,ut){st.multiplyTo(at,ut),this.reduce(ut)}Barrett.prototype.convert=barrettConvert;Barrett.prototype.revert=barrettRevert;Barrett.prototype.reduce=barrettReduce;Barrett.prototype.mulTo=barrettMulTo;Barrett.prototype.sqrTo=barrettSqrTo;function bnModPow(st,at){var ut=st.bitLength(),dt,ct=nbv(1),pt;if(ut<=0)return ct;ut<18?dt=1:ut<48?dt=3:ut<144?dt=4:ut<768?dt=5:dt=6,ut<8?pt=new Classic(at):at.isEven()?pt=new Barrett(at):pt=new Montgomery(at);var ft=new Array,ht=3,mt=dt-1,yt=(1<1){var bt=nbi();for(pt.sqrTo(ft[1],bt);ht<=yt;)ft[ht]=nbi(),pt.mulTo(bt,ft[ht-2],ft[ht]),ht+=2}var Tt=st.t-1,St,At=!0,vt=nbi(),Dt;for(ut=nbits(st.data[Tt])-1;Tt>=0;){for(ut>=mt?St=st.data[Tt]>>ut-mt&yt:(St=(st.data[Tt]&(1<0&&(St|=st.data[Tt-1]>>this.DB+ut-mt)),ht=dt;!(St&1);)St>>=1,--ht;if((ut-=ht)<0&&(ut+=this.DB,--Tt),At)ft[St].copyTo(ct),At=!1;else{for(;ht>1;)pt.sqrTo(ct,vt),pt.sqrTo(vt,ct),ht-=2;ht>0?pt.sqrTo(ct,vt):(Dt=ct,ct=vt,vt=Dt),pt.mulTo(vt,ft[St],ct)}for(;Tt>=0&&!(st.data[Tt]&1<0&&(at.rShiftTo(pt,at),ut.rShiftTo(pt,ut));at.signum()>0;)(ct=at.getLowestSetBit())>0&&at.rShiftTo(ct,at),(ct=ut.getLowestSetBit())>0&&ut.rShiftTo(ct,ut),at.compareTo(ut)>=0?(at.subTo(ut,at),at.rShiftTo(1,at)):(ut.subTo(at,ut),ut.rShiftTo(1,ut));return pt>0&&ut.lShiftTo(pt,ut),ut}function bnpModInt(st){if(st<=0)return 0;var at=this.DV%st,ut=this.s<0?st-1:0;if(this.t>0)if(at==0)ut=this.data[0]%st;else for(var dt=this.t-1;dt>=0;--dt)ut=(at*ut+this.data[dt])%st;return ut}function bnModInverse(st){var at=st.isEven();if(this.isEven()&&at||st.signum()==0)return BigInteger$4.ZERO;for(var ut=st.clone(),dt=this.clone(),ct=nbv(1),pt=nbv(0),ft=nbv(0),ht=nbv(1);ut.signum()!=0;){for(;ut.isEven();)ut.rShiftTo(1,ut),at?((!ct.isEven()||!pt.isEven())&&(ct.addTo(this,ct),pt.subTo(st,pt)),ct.rShiftTo(1,ct)):pt.isEven()||pt.subTo(st,pt),pt.rShiftTo(1,pt);for(;dt.isEven();)dt.rShiftTo(1,dt),at?((!ft.isEven()||!ht.isEven())&&(ft.addTo(this,ft),ht.subTo(st,ht)),ft.rShiftTo(1,ft)):ht.isEven()||ht.subTo(st,ht),ht.rShiftTo(1,ht);ut.compareTo(dt)>=0?(ut.subTo(dt,ut),at&&ct.subTo(ft,ct),pt.subTo(ht,pt)):(dt.subTo(ut,dt),at&&ft.subTo(ct,ft),ht.subTo(pt,ht))}if(dt.compareTo(BigInteger$4.ONE)!=0)return BigInteger$4.ZERO;if(ht.compareTo(st)>=0)return ht.subtract(st);if(ht.signum()<0)ht.addTo(st,ht);else return ht;return ht.signum()<0?ht.add(st):ht}var lowprimes=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509],lplim=(1<<26)/lowprimes[lowprimes.length-1];function bnIsProbablePrime(st){var at,ut=this.abs();if(ut.t==1&&ut.data[0]<=lowprimes[lowprimes.length-1]){for(at=0;at=0);var ht=pt.modPow(dt,this);if(ht.compareTo(BigInteger$4.ONE)!=0&&ht.compareTo(at)!=0){for(var mt=1;mt++>>0,ft>>>0];for(var ht=dt.fullMessageLength.length-1;ht>=0;--ht)dt.fullMessageLength[ht]+=ft[1],ft[1]=ft[0]+(dt.fullMessageLength[ht]/4294967296>>>0),dt.fullMessageLength[ht]=dt.fullMessageLength[ht]>>>0,ft[0]=ft[1]/4294967296>>>0;return at.putBytes(ct),_update$1(st,ut,at),(at.read>2048||at.length()===0)&&at.compact(),dt},dt.digest=function(){var ct=forge$l.util.createBuffer();ct.putBytes(at.bytes());var pt=dt.fullMessageLength[dt.fullMessageLength.length-1]+dt.messageLengthSize,ft=pt&dt.blockLength-1;ct.putBytes(_padding$1.substr(0,dt.blockLength-ft));for(var ht,mt,yt=dt.fullMessageLength[0]*8,bt=0;bt>>0,yt+=mt,ct.putInt32(yt>>>0),yt=ht>>>0;ct.putInt32(yt);var Tt={h0:st.h0,h1:st.h1,h2:st.h2,h3:st.h3,h4:st.h4};_update$1(Tt,ut,ct);var St=forge$l.util.createBuffer();return St.putInt32(Tt.h0),St.putInt32(Tt.h1),St.putInt32(Tt.h2),St.putInt32(Tt.h3),St.putInt32(Tt.h4),St},dt};var _padding$1=null,_initialized$1=!1;function _init$1(){_padding$1="€",_padding$1+=forge$l.util.fillString("\0",64),_initialized$1=!0}function _update$1(st,at,ut){for(var dt,ct,pt,ft,ht,mt,yt,bt,Tt=ut.length();Tt>=64;){for(ct=st.h0,pt=st.h1,ft=st.h2,ht=st.h3,mt=st.h4,bt=0;bt<16;++bt)dt=ut.getInt32(),at[bt]=dt,yt=ht^pt&(ft^ht),dt=(ct<<5|ct>>>27)+yt+mt+1518500249+dt,mt=ht,ht=ft,ft=(pt<<30|pt>>>2)>>>0,pt=ct,ct=dt;for(;bt<20;++bt)dt=at[bt-3]^at[bt-8]^at[bt-14]^at[bt-16],dt=dt<<1|dt>>>31,at[bt]=dt,yt=ht^pt&(ft^ht),dt=(ct<<5|ct>>>27)+yt+mt+1518500249+dt,mt=ht,ht=ft,ft=(pt<<30|pt>>>2)>>>0,pt=ct,ct=dt;for(;bt<32;++bt)dt=at[bt-3]^at[bt-8]^at[bt-14]^at[bt-16],dt=dt<<1|dt>>>31,at[bt]=dt,yt=pt^ft^ht,dt=(ct<<5|ct>>>27)+yt+mt+1859775393+dt,mt=ht,ht=ft,ft=(pt<<30|pt>>>2)>>>0,pt=ct,ct=dt;for(;bt<40;++bt)dt=at[bt-6]^at[bt-16]^at[bt-28]^at[bt-32],dt=dt<<2|dt>>>30,at[bt]=dt,yt=pt^ft^ht,dt=(ct<<5|ct>>>27)+yt+mt+1859775393+dt,mt=ht,ht=ft,ft=(pt<<30|pt>>>2)>>>0,pt=ct,ct=dt;for(;bt<60;++bt)dt=at[bt-6]^at[bt-16]^at[bt-28]^at[bt-32],dt=dt<<2|dt>>>30,at[bt]=dt,yt=pt&ft|ht&(pt^ft),dt=(ct<<5|ct>>>27)+yt+mt+2400959708+dt,mt=ht,ht=ft,ft=(pt<<30|pt>>>2)>>>0,pt=ct,ct=dt;for(;bt<80;++bt)dt=at[bt-6]^at[bt-16]^at[bt-28]^at[bt-32],dt=dt<<2|dt>>>30,at[bt]=dt,yt=pt^ft^ht,dt=(ct<<5|ct>>>27)+yt+mt+3395469782+dt,mt=ht,ht=ft,ft=(pt<<30|pt>>>2)>>>0,pt=ct,ct=dt;st.h0=st.h0+ct|0,st.h1=st.h1+pt|0,st.h2=st.h2+ft|0,st.h3=st.h3+ht|0,st.h4=st.h4+mt|0,Tt-=64}}var forge$k=forge$D,pkcs1=forge$k.pkcs1=forge$k.pkcs1||{};pkcs1.encode_rsa_oaep=function(st,at,ut){var dt,ct,pt,ft;typeof ut=="string"?(dt=ut,ct=arguments[3]||void 0,pt=arguments[4]||void 0):ut&&(dt=ut.label||void 0,ct=ut.seed||void 0,pt=ut.md||void 0,ut.mgf1&&ut.mgf1.md&&(ft=ut.mgf1.md)),pt?pt.start():pt=forge$k.md.sha1.create(),ft||(ft=pt);var ht=Math.ceil(st.n.bitLength()/8),mt=ht-2*pt.digestLength-2;if(at.length>mt){var yt=new Error("RSAES-OAEP input message length is too long.");throw yt.length=at.length,yt.maxLength=mt,yt}dt||(dt=""),pt.update(dt,"raw");for(var bt=pt.digest(),Tt="",St=mt-at.length,At=0;At>24&255,pt>>16&255,pt>>8&255,pt&255);ut.start(),ut.update(st+ft),dt+=ut.digest().getBytes()}return dt.substring(0,at)}var forge$j=forge$D;(function(){if(forge$j.prime){forge$j.prime;return}var st=forge$j.prime=forge$j.prime||{},at=forge$j.jsbn.BigInteger,ut=[6,4,2,4,2,4,6,2],dt=new at(null);dt.fromInt(30);var ct=function(Tt,St){return Tt|St};st.generateProbablePrime=function(Tt,St,At){typeof St=="function"&&(At=St,St={}),St=St||{};var vt=St.algorithm||"PRIMEINC";typeof vt=="string"&&(vt={name:vt}),vt.options=vt.options||{};var Dt=St.prng||forge$j.random,Et={nextBytes:function(_t){for(var xt=Dt.getBytesSync(_t.length),Ct=0;Ct<_t.length;++Ct)_t[Ct]=xt.charCodeAt(Ct)}};if(vt.name==="PRIMEINC")return pt(Tt,Et,vt.options,At);throw new Error("Invalid prime generation algorithm: "+vt.name)};function pt(Tt,St,At,vt){return"workers"in At?mt(Tt,St,At,vt):ft(Tt,St,At,vt)}function ft(Tt,St,At,vt){var Dt=yt(Tt,St),Et=0,_t=bt(Dt.bitLength());"millerRabinTests"in At&&(_t=At.millerRabinTests);var xt=10;"maxBlockTime"in At&&(xt=At.maxBlockTime),ht(Dt,Tt,St,Et,_t,xt,vt)}function ht(Tt,St,At,vt,Dt,Et,_t){var xt=+new Date;do{if(Tt.bitLength()>St&&(Tt=yt(St,At)),Tt.isProbablePrime(Dt))return _t(null,Tt);Tt.dAddOffset(ut[vt++%8],0)}while(Et<0||+new Date-xt"u")return ft(Tt,St,At,vt);var Dt=yt(Tt,St),Et=At.workers,_t=At.workLoad||100,xt=_t*30/8,Ct=At.workerScript||"forge/prime.worker.js";if(Et===-1)return forge$j.util.estimateCores(function(wt,$t){wt&&($t=2),Et=$t-1,kt()});kt();function kt(){Et=Math.max(1,Et);for(var wt=[],$t=0;$tTt&&(Dt=yt(Tt,St));var Qt=Dt.toString(16);zt.target.postMessage({hex:Qt,workLoad:_t}),Dt.dAddOffset(xt,0)}}}}function yt(Tt,St){var At=new at(Tt,St),vt=Tt-1;return At.testBit(vt)||At.bitwiseTo(at.ONE.shiftLeft(vt),ct,At),At.dAddOffset(31-At.mod(dt).byteValue(),0),At}function bt(Tt){return Tt<=100?27:Tt<=150?18:Tt<=200?15:Tt<=250?12:Tt<=300?9:Tt<=350?8:Tt<=400?7:Tt<=500?6:Tt<=600?5:Tt<=800?4:Tt<=1250?3:2}})();var forge$i=forge$D;if(typeof BigInteger$3>"u")var BigInteger$3=forge$i.jsbn.BigInteger;var _crypto=forge$i.util.isNodejs?require$$8:null,asn1$7=forge$i.asn1,util=forge$i.util;forge$i.pki=forge$i.pki||{};forge$i.pki.rsa=forge$i.rsa=forge$i.rsa||{};var pki$4=forge$i.pki,GCD_30_DELTA=[6,4,2,4,2,4,6,2],privateKeyValidator$1={name:"PrivateKeyInfo",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},rsaPrivateKeyValidator={name:"RSAPrivateKey",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},rsaPublicKeyValidator={name:"RSAPublicKey",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},publicKeyValidator$2=forge$i.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},digestInfoValidator={name:"DigestInfo",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:asn1$7.Class.UNIVERSAL,type:asn1$7.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},emsaPkcs1v15encode=function(st){var at;if(st.algorithm in pki$4.oids)at=pki$4.oids[st.algorithm];else{var ut=new Error("Unknown message digest algorithm.");throw ut.algorithm=st.algorithm,ut}var dt=asn1$7.oidToDer(at).getBytes(),ct=asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[]),pt=asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[]);pt.value.push(asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.OID,!1,dt)),pt.value.push(asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.NULL,!1,""));var ft=asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.OCTETSTRING,!1,st.digest().getBytes());return ct.value.push(pt),ct.value.push(ft),asn1$7.toDer(ct).getBytes()},_modPow=function(st,at,ut){if(ut)return st.modPow(at.e,at.n);if(!at.p||!at.q)return st.modPow(at.d,at.n);at.dP||(at.dP=at.d.mod(at.p.subtract(BigInteger$3.ONE))),at.dQ||(at.dQ=at.d.mod(at.q.subtract(BigInteger$3.ONE))),at.qInv||(at.qInv=at.q.modInverse(at.p));var dt;do dt=new BigInteger$3(forge$i.util.bytesToHex(forge$i.random.getBytes(at.n.bitLength()/8)),16);while(dt.compareTo(at.n)>=0||!dt.gcd(at.n).equals(BigInteger$3.ONE));st=st.multiply(dt.modPow(at.e,at.n)).mod(at.n);for(var ct=st.mod(at.p).modPow(at.dP,at.p),pt=st.mod(at.q).modPow(at.dQ,at.q);ct.compareTo(pt)<0;)ct=ct.add(at.p);var ft=ct.subtract(pt).multiply(at.qInv).mod(at.p).multiply(at.q).add(pt);return ft=ft.multiply(dt.modInverse(at.n)).mod(at.n),ft};pki$4.rsa.encrypt=function(st,at,ut){var dt=ut,ct,pt=Math.ceil(at.n.bitLength()/8);ut!==!1&&ut!==!0?(dt=ut===2,ct=_encodePkcs1_v1_5(st,at,ut)):(ct=forge$i.util.createBuffer(),ct.putBytes(st));for(var ft=new BigInteger$3(ct.toHex(),16),ht=_modPow(ft,at,dt),mt=ht.toString(16),yt=forge$i.util.createBuffer(),bt=pt-Math.ceil(mt.length/2);bt>0;)yt.putByte(0),--bt;return yt.putBytes(forge$i.util.hexToBytes(mt)),yt.getBytes()};pki$4.rsa.decrypt=function(st,at,ut,dt){var ct=Math.ceil(at.n.bitLength()/8);if(st.length!==ct){var pt=new Error("Encrypted message length is invalid.");throw pt.length=st.length,pt.expected=ct,pt}var ft=new BigInteger$3(forge$i.util.createBuffer(st).toHex(),16);if(ft.compareTo(at.n)>=0)throw new Error("Encrypted message is invalid.");for(var ht=_modPow(ft,at,ut),mt=ht.toString(16),yt=forge$i.util.createBuffer(),bt=ct-Math.ceil(mt.length/2);bt>0;)yt.putByte(0),--bt;return yt.putBytes(forge$i.util.hexToBytes(mt)),dt!==!1?_decodePkcs1_v1_5(yt.getBytes(),at,ut):yt.getBytes()};pki$4.rsa.createKeyPairGenerationState=function(st,at,ut){typeof st=="string"&&(st=parseInt(st,10)),st=st||2048,ut=ut||{};var dt=ut.prng||forge$i.random,ct={nextBytes:function(ht){for(var mt=dt.getBytesSync(ht.length),yt=0;yt>1,pBits:st-(st>>1),pqState:0,num:null,keys:null},ft.e.fromInt(ft.eInt);else throw new Error("Invalid key generation algorithm: "+pt);return ft};pki$4.rsa.stepKeyPairGenerationState=function(st,at){"algorithm"in st||(st.algorithm="PRIMEINC");var ut=new BigInteger$3(null);ut.fromInt(30);for(var dt=0,ct=function(Tt,St){return Tt|St},pt=+new Date,ft,ht=0;st.keys===null&&(at<=0||htmt?st.pqState=0:st.num.isProbablePrime(_getMillerRabinTests(st.num.bitLength()))?++st.pqState:st.num.dAddOffset(GCD_30_DELTA[dt++%8],0):st.pqState===2?st.pqState=st.num.subtract(BigInteger$3.ONE).gcd(st.e).compareTo(BigInteger$3.ONE)===0?3:0:st.pqState===3&&(st.pqState=0,st.p===null?st.p=st.num:st.q=st.num,st.p!==null&&st.q!==null&&++st.state,st.num=null)}else if(st.state===1)st.p.compareTo(st.q)<0&&(st.num=st.p,st.p=st.q,st.q=st.num),++st.state;else if(st.state===2)st.p1=st.p.subtract(BigInteger$3.ONE),st.q1=st.q.subtract(BigInteger$3.ONE),st.phi=st.p1.multiply(st.q1),++st.state;else if(st.state===3)st.phi.gcd(st.e).compareTo(BigInteger$3.ONE)===0?++st.state:(st.p=null,st.q=null,st.state=0);else if(st.state===4)st.n=st.p.multiply(st.q),st.n.bitLength()===st.bits?++st.state:(st.q=null,st.state=0);else if(st.state===5){var bt=st.e.modInverse(st.phi);st.keys={privateKey:pki$4.rsa.setPrivateKey(st.n,st.e,bt,st.p,st.q,bt.mod(st.p1),bt.mod(st.q1),st.q.modInverse(st.p)),publicKey:pki$4.rsa.setPublicKey(st.n,st.e)}}ft=+new Date,ht+=ft-pt,pt=ft}return st.keys!==null};pki$4.rsa.generateKeyPair=function(st,at,ut,dt){if(arguments.length===1?typeof st=="object"?(ut=st,st=void 0):typeof st=="function"&&(dt=st,st=void 0):arguments.length===2?typeof st=="number"?typeof at=="function"?(dt=at,at=void 0):typeof at!="number"&&(ut=at,at=void 0):(ut=st,dt=at,st=void 0,at=void 0):arguments.length===3&&(typeof at=="number"?typeof ut=="function"&&(dt=ut,ut=void 0):(dt=ut,ut=at,at=void 0)),ut=ut||{},st===void 0&&(st=ut.bits||2048),at===void 0&&(at=ut.e||65537),!forge$i.options.usePureJavaScript&&!ut.prng&&st>=256&&st<=16384&&(at===65537||at===3)){if(dt){if(_detectNodeCrypto("generateKeyPair"))return _crypto.generateKeyPair("rsa",{modulusLength:st,publicExponent:at,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(ht,mt,yt){if(ht)return dt(ht);dt(null,{privateKey:pki$4.privateKeyFromPem(yt),publicKey:pki$4.publicKeyFromPem(mt)})});if(_detectSubtleCrypto("generateKey")&&_detectSubtleCrypto("exportKey"))return util.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:st,publicExponent:_intToUint8Array(at),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(ht){return util.globalScope.crypto.subtle.exportKey("pkcs8",ht.privateKey)}).then(void 0,function(ht){dt(ht)}).then(function(ht){if(ht){var mt=pki$4.privateKeyFromAsn1(asn1$7.fromDer(forge$i.util.createBuffer(ht)));dt(null,{privateKey:mt,publicKey:pki$4.setRsaPublicKey(mt.n,mt.e)})}});if(_detectSubtleMsCrypto("generateKey")&&_detectSubtleMsCrypto("exportKey")){var ct=util.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:st,publicExponent:_intToUint8Array(at),hash:{name:"SHA-256"}},!0,["sign","verify"]);ct.oncomplete=function(ht){var mt=ht.target.result,yt=util.globalScope.msCrypto.subtle.exportKey("pkcs8",mt.privateKey);yt.oncomplete=function(bt){var Tt=bt.target.result,St=pki$4.privateKeyFromAsn1(asn1$7.fromDer(forge$i.util.createBuffer(Tt)));dt(null,{privateKey:St,publicKey:pki$4.setRsaPublicKey(St.n,St.e)})},yt.onerror=function(bt){dt(bt)}},ct.onerror=function(ht){dt(ht)};return}}else if(_detectNodeCrypto("generateKeyPairSync")){var pt=_crypto.generateKeyPairSync("rsa",{modulusLength:st,publicExponent:at,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:pki$4.privateKeyFromPem(pt.privateKey),publicKey:pki$4.publicKeyFromPem(pt.publicKey)}}}var ft=pki$4.rsa.createKeyPairGenerationState(st,at,ut);if(!dt)return pki$4.rsa.stepKeyPairGenerationState(ft,0),ft.keys;_generateKeyPair(ft,ut,dt)};pki$4.setRsaPublicKey=pki$4.rsa.setPublicKey=function(st,at){var ut={n:st,e:at};return ut.encrypt=function(dt,ct,pt){if(typeof ct=="string"?ct=ct.toUpperCase():ct===void 0&&(ct="RSAES-PKCS1-V1_5"),ct==="RSAES-PKCS1-V1_5")ct={encode:function(ht,mt,yt){return _encodePkcs1_v1_5(ht,mt,2).getBytes()}};else if(ct==="RSA-OAEP"||ct==="RSAES-OAEP")ct={encode:function(ht,mt){return forge$i.pkcs1.encode_rsa_oaep(mt,ht,pt)}};else if(["RAW","NONE","NULL",null].indexOf(ct)!==-1)ct={encode:function(ht){return ht}};else if(typeof ct=="string")throw new Error('Unsupported encryption scheme: "'+ct+'".');var ft=ct.encode(dt,ut,!0);return pki$4.rsa.encrypt(ft,ut,!0)},ut.verify=function(dt,ct,pt,ft){typeof pt=="string"?pt=pt.toUpperCase():pt===void 0&&(pt="RSASSA-PKCS1-V1_5"),ft===void 0&&(ft={_parseAllDigestBytes:!0}),"_parseAllDigestBytes"in ft||(ft._parseAllDigestBytes=!0),pt==="RSASSA-PKCS1-V1_5"?pt={verify:function(mt,yt){yt=_decodePkcs1_v1_5(yt,ut,!0);var bt=asn1$7.fromDer(yt,{parseAllBytes:ft._parseAllDigestBytes}),Tt={},St=[];if(!asn1$7.validate(bt,digestInfoValidator,Tt,St)){var At=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw At.errors=St,At}var vt=asn1$7.derToOid(Tt.algorithmIdentifier);if(!(vt===forge$i.oids.md2||vt===forge$i.oids.md5||vt===forge$i.oids.sha1||vt===forge$i.oids.sha224||vt===forge$i.oids.sha256||vt===forge$i.oids.sha384||vt===forge$i.oids.sha512||vt===forge$i.oids["sha512-224"]||vt===forge$i.oids["sha512-256"])){var At=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw At.oid=vt,At}if((vt===forge$i.oids.md2||vt===forge$i.oids.md5)&&!("parameters"in Tt))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifer NULL parameters.");return mt===Tt.digest}}:(pt==="NONE"||pt==="NULL"||pt===null)&&(pt={verify:function(mt,yt){return yt=_decodePkcs1_v1_5(yt,ut,!0),mt===yt}});var ht=pki$4.rsa.decrypt(ct,ut,!0,!1);return pt.verify(dt,ht,ut.n.bitLength())},ut};pki$4.setRsaPrivateKey=pki$4.rsa.setPrivateKey=function(st,at,ut,dt,ct,pt,ft,ht){var mt={n:st,e:at,d:ut,p:dt,q:ct,dP:pt,dQ:ft,qInv:ht};return mt.decrypt=function(yt,bt,Tt){typeof bt=="string"?bt=bt.toUpperCase():bt===void 0&&(bt="RSAES-PKCS1-V1_5");var St=pki$4.rsa.decrypt(yt,mt,!1,!1);if(bt==="RSAES-PKCS1-V1_5")bt={decode:_decodePkcs1_v1_5};else if(bt==="RSA-OAEP"||bt==="RSAES-OAEP")bt={decode:function(At,vt){return forge$i.pkcs1.decode_rsa_oaep(vt,At,Tt)}};else if(["RAW","NONE","NULL",null].indexOf(bt)!==-1)bt={decode:function(At){return At}};else throw new Error('Unsupported encryption scheme: "'+bt+'".');return bt.decode(St,mt,!1)},mt.sign=function(yt,bt){var Tt=!1;typeof bt=="string"&&(bt=bt.toUpperCase()),bt===void 0||bt==="RSASSA-PKCS1-V1_5"?(bt={encode:emsaPkcs1v15encode},Tt=1):(bt==="NONE"||bt==="NULL"||bt===null)&&(bt={encode:function(){return yt}},Tt=1);var St=bt.encode(yt,mt.n.bitLength());return pki$4.rsa.encrypt(St,mt,Tt)},mt};pki$4.wrapRsaPrivateKey=function(st){return asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,asn1$7.integerToDer(0).getBytes()),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.OID,!1,asn1$7.oidToDer(pki$4.oids.rsaEncryption).getBytes()),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.NULL,!1,"")]),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.OCTETSTRING,!1,asn1$7.toDer(st).getBytes())])};pki$4.privateKeyFromAsn1=function(st){var at={},ut=[];if(asn1$7.validate(st,privateKeyValidator$1,at,ut)&&(st=asn1$7.fromDer(forge$i.util.createBuffer(at.privateKey))),at={},ut=[],!asn1$7.validate(st,rsaPrivateKeyValidator,at,ut)){var dt=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw dt.errors=ut,dt}var ct,pt,ft,ht,mt,yt,bt,Tt;return ct=forge$i.util.createBuffer(at.privateKeyModulus).toHex(),pt=forge$i.util.createBuffer(at.privateKeyPublicExponent).toHex(),ft=forge$i.util.createBuffer(at.privateKeyPrivateExponent).toHex(),ht=forge$i.util.createBuffer(at.privateKeyPrime1).toHex(),mt=forge$i.util.createBuffer(at.privateKeyPrime2).toHex(),yt=forge$i.util.createBuffer(at.privateKeyExponent1).toHex(),bt=forge$i.util.createBuffer(at.privateKeyExponent2).toHex(),Tt=forge$i.util.createBuffer(at.privateKeyCoefficient).toHex(),pki$4.setRsaPrivateKey(new BigInteger$3(ct,16),new BigInteger$3(pt,16),new BigInteger$3(ft,16),new BigInteger$3(ht,16),new BigInteger$3(mt,16),new BigInteger$3(yt,16),new BigInteger$3(bt,16),new BigInteger$3(Tt,16))};pki$4.privateKeyToAsn1=pki$4.privateKeyToRSAPrivateKey=function(st){return asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,asn1$7.integerToDer(0).getBytes()),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(st.n)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(st.e)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(st.d)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(st.p)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(st.q)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(st.dP)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(st.dQ)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(st.qInv))])};pki$4.publicKeyFromAsn1=function(st){var at={},ut=[];if(asn1$7.validate(st,publicKeyValidator$2,at,ut)){var dt=asn1$7.derToOid(at.publicKeyOid);if(dt!==pki$4.oids.rsaEncryption){var ct=new Error("Cannot read public key. Unknown OID.");throw ct.oid=dt,ct}st=at.rsaPublicKey}if(ut=[],!asn1$7.validate(st,rsaPublicKeyValidator,at,ut)){var ct=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw ct.errors=ut,ct}var pt=forge$i.util.createBuffer(at.publicKeyModulus).toHex(),ft=forge$i.util.createBuffer(at.publicKeyExponent).toHex();return pki$4.setRsaPublicKey(new BigInteger$3(pt,16),new BigInteger$3(ft,16))};pki$4.publicKeyToAsn1=pki$4.publicKeyToSubjectPublicKeyInfo=function(st){return asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.OID,!1,asn1$7.oidToDer(pki$4.oids.rsaEncryption).getBytes()),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.NULL,!1,"")]),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.BITSTRING,!1,[pki$4.publicKeyToRSAPublicKey(st)])])};pki$4.publicKeyToRSAPublicKey=function(st){return asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.SEQUENCE,!0,[asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(st.n)),asn1$7.create(asn1$7.Class.UNIVERSAL,asn1$7.Type.INTEGER,!1,_bnToBytes(st.e))])};function _encodePkcs1_v1_5(st,at,ut){var dt=forge$i.util.createBuffer(),ct=Math.ceil(at.n.bitLength()/8);if(st.length>ct-11){var pt=new Error("Message is too long for PKCS#1 v1.5 padding.");throw pt.length=st.length,pt.max=ct-11,pt}dt.putByte(0),dt.putByte(ut);var ft=ct-3-st.length,ht;if(ut===0||ut===1){ht=ut===0?0:255;for(var mt=0;mt0;){for(var yt=0,bt=forge$i.random.getBytes(ft),mt=0;mt"u")throw new Error("Encryption block is invalid.");var mt=0;if(ht===0){mt=ct-3-dt;for(var yt=0;yt1;){if(pt.getByte()!==255){--pt.read;break}++mt}else if(ht===2)for(mt=0;pt.length()>1;){if(pt.getByte()===0){--pt.read;break}++mt}var bt=pt.getByte();if(bt!==0||mt!==ct-3-pt.length())throw new Error("Encryption block is invalid.");return pt.getBytes()}function _generateKeyPair(st,at,ut){typeof at=="function"&&(ut=at,at={}),at=at||{};var dt={algorithm:{name:at.algorithm||"PRIMEINC",options:{workers:at.workers||2,workLoad:at.workLoad||100,workerScript:at.workerScript}}};"prng"in at&&(dt.prng=at.prng),ct();function ct(){pt(st.pBits,function(ht,mt){if(ht)return ut(ht);if(st.p=mt,st.q!==null)return ft(ht,st.q);pt(st.qBits,ft)})}function pt(ht,mt){forge$i.prime.generateProbablePrime(ht,dt,mt)}function ft(ht,mt){if(ht)return ut(ht);if(st.q=mt,st.p.compareTo(st.q)<0){var yt=st.p;st.p=st.q,st.q=yt}if(st.p.subtract(BigInteger$3.ONE).gcd(st.e).compareTo(BigInteger$3.ONE)!==0){st.p=null,ct();return}if(st.q.subtract(BigInteger$3.ONE).gcd(st.e).compareTo(BigInteger$3.ONE)!==0){st.q=null,pt(st.qBits,ft);return}if(st.p1=st.p.subtract(BigInteger$3.ONE),st.q1=st.q.subtract(BigInteger$3.ONE),st.phi=st.p1.multiply(st.q1),st.phi.gcd(st.e).compareTo(BigInteger$3.ONE)!==0){st.p=st.q=null,ct();return}if(st.n=st.p.multiply(st.q),st.n.bitLength()!==st.bits){st.q=null,pt(st.qBits,ft);return}var bt=st.e.modInverse(st.phi);st.keys={privateKey:pki$4.rsa.setPrivateKey(st.n,st.e,bt,st.p,st.q,bt.mod(st.p1),bt.mod(st.q1),st.q.modInverse(st.p)),publicKey:pki$4.rsa.setPublicKey(st.n,st.e)},ut(null,st.keys)}}function _bnToBytes(st){var at=st.toString(16);at[0]>="8"&&(at="00"+at);var ut=forge$i.util.hexToBytes(at);return ut.length>1&&(ut.charCodeAt(0)===0&&!(ut.charCodeAt(1)&128)||ut.charCodeAt(0)===255&&(ut.charCodeAt(1)&128)===128)?ut.substr(1):ut}function _getMillerRabinTests(st){return st<=100?27:st<=150?18:st<=200?15:st<=250?12:st<=300?9:st<=350?8:st<=400?7:st<=500?6:st<=600?5:st<=800?4:st<=1250?3:2}function _detectNodeCrypto(st){return forge$i.util.isNodejs&&typeof _crypto[st]=="function"}function _detectSubtleCrypto(st){return typeof util.globalScope<"u"&&typeof util.globalScope.crypto=="object"&&typeof util.globalScope.crypto.subtle=="object"&&typeof util.globalScope.crypto.subtle[st]=="function"}function _detectSubtleMsCrypto(st){return typeof util.globalScope<"u"&&typeof util.globalScope.msCrypto=="object"&&typeof util.globalScope.msCrypto.subtle=="object"&&typeof util.globalScope.msCrypto.subtle[st]=="function"}function _intToUint8Array(st){for(var at=forge$i.util.hexToBytes(st.toString(16)),ut=new Uint8Array(at.length),dt=0;dt"u")var BigInteger$2=forge$h.jsbn.BigInteger;var asn1$6=forge$h.asn1,pki$3=forge$h.pki=forge$h.pki||{};pki$3.pbe=forge$h.pbe=forge$h.pbe||{};var oids$1=pki$3.oids,encryptedPrivateKeyValidator={name:"EncryptedPrivateKeyInfo",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},PBES2AlgorithmsValidator={name:"PBES2Algorithms",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},pkcs12PbeParamsValidator={name:"pkcs-12PbeParams",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:asn1$6.Class.UNIVERSAL,type:asn1$6.Type.INTEGER,constructed:!1,capture:"iterations"}]};pki$3.encryptPrivateKeyInfo=function(st,at,ut){ut=ut||{},ut.saltSize=ut.saltSize||8,ut.count=ut.count||2048,ut.algorithm=ut.algorithm||"aes128",ut.prfAlgorithm=ut.prfAlgorithm||"sha1";var dt=forge$h.random.getBytesSync(ut.saltSize),ct=ut.count,pt=asn1$6.integerToDer(ct),ft,ht,mt;if(ut.algorithm.indexOf("aes")===0||ut.algorithm==="des"){var yt,bt,Tt;switch(ut.algorithm){case"aes128":ft=16,yt=16,bt=oids$1["aes128-CBC"],Tt=forge$h.aes.createEncryptionCipher;break;case"aes192":ft=24,yt=16,bt=oids$1["aes192-CBC"],Tt=forge$h.aes.createEncryptionCipher;break;case"aes256":ft=32,yt=16,bt=oids$1["aes256-CBC"],Tt=forge$h.aes.createEncryptionCipher;break;case"des":ft=8,yt=8,bt=oids$1.desCBC,Tt=forge$h.des.createEncryptionCipher;break;default:var St=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw St.algorithm=ut.algorithm,St}var At="hmacWith"+ut.prfAlgorithm.toUpperCase(),vt=prfAlgorithmToMessageDigest(At),Dt=forge$h.pkcs5.pbkdf2(at,dt,ct,ft,vt),Et=forge$h.random.getBytesSync(yt),_t=Tt(Dt);_t.start(Et),_t.update(asn1$6.toDer(st)),_t.finish(),mt=_t.output.getBytes();var xt=createPbkdf2Params(dt,pt,ft,At);ht=asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OID,!1,asn1$6.oidToDer(oids$1.pkcs5PBES2).getBytes()),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OID,!1,asn1$6.oidToDer(oids$1.pkcs5PBKDF2).getBytes()),xt]),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OID,!1,asn1$6.oidToDer(bt).getBytes()),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OCTETSTRING,!1,Et)])])])}else if(ut.algorithm==="3des"){ft=24;var Ct=new forge$h.util.ByteBuffer(dt),Dt=pki$3.pbe.generatePkcs12Key(at,Ct,1,ct,ft),Et=pki$3.pbe.generatePkcs12Key(at,Ct,2,ct,ft),_t=forge$h.des.createEncryptionCipher(Dt);_t.start(Et),_t.update(asn1$6.toDer(st)),_t.finish(),mt=_t.output.getBytes(),ht=asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OID,!1,asn1$6.oidToDer(oids$1["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OCTETSTRING,!1,dt),asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.INTEGER,!1,pt.getBytes())])])}else{var St=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw St.algorithm=ut.algorithm,St}var kt=asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.SEQUENCE,!0,[ht,asn1$6.create(asn1$6.Class.UNIVERSAL,asn1$6.Type.OCTETSTRING,!1,mt)]);return kt};pki$3.decryptPrivateKeyInfo=function(st,at){var ut=null,dt={},ct=[];if(!asn1$6.validate(st,encryptedPrivateKeyValidator,dt,ct)){var pt=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw pt.errors=ct,pt}var ft=asn1$6.derToOid(dt.encryptionOid),ht=pki$3.pbe.getCipher(ft,dt.encryptionParams,at),mt=forge$h.util.createBuffer(dt.encryptedData);return ht.update(mt),ht.finish()&&(ut=asn1$6.fromDer(ht.output)),ut};pki$3.encryptedPrivateKeyToPem=function(st,at){var ut={type:"ENCRYPTED PRIVATE KEY",body:asn1$6.toDer(st).getBytes()};return forge$h.pem.encode(ut,{maxline:at})};pki$3.encryptedPrivateKeyFromPem=function(st){var at=forge$h.pem.decode(st)[0];if(at.type!=="ENCRYPTED PRIVATE KEY"){var ut=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw ut.headerType=at.type,ut}if(at.procType&&at.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return asn1$6.fromDer(at.body)};pki$3.encryptRsaPrivateKey=function(st,at,ut){if(ut=ut||{},!ut.legacy){var dt=pki$3.wrapRsaPrivateKey(pki$3.privateKeyToAsn1(st));return dt=pki$3.encryptPrivateKeyInfo(dt,at,ut),pki$3.encryptedPrivateKeyToPem(dt)}var ct,pt,ft,ht;switch(ut.algorithm){case"aes128":ct="AES-128-CBC",ft=16,pt=forge$h.random.getBytesSync(16),ht=forge$h.aes.createEncryptionCipher;break;case"aes192":ct="AES-192-CBC",ft=24,pt=forge$h.random.getBytesSync(16),ht=forge$h.aes.createEncryptionCipher;break;case"aes256":ct="AES-256-CBC",ft=32,pt=forge$h.random.getBytesSync(16),ht=forge$h.aes.createEncryptionCipher;break;case"3des":ct="DES-EDE3-CBC",ft=24,pt=forge$h.random.getBytesSync(8),ht=forge$h.des.createEncryptionCipher;break;case"des":ct="DES-CBC",ft=8,pt=forge$h.random.getBytesSync(8),ht=forge$h.des.createEncryptionCipher;break;default:var mt=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+ut.algorithm+'".');throw mt.algorithm=ut.algorithm,mt}var yt=forge$h.pbe.opensslDeriveBytes(at,pt.substr(0,8),ft),bt=ht(yt);bt.start(pt),bt.update(asn1$6.toDer(pki$3.privateKeyToAsn1(st))),bt.finish();var Tt={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:ct,parameters:forge$h.util.bytesToHex(pt).toUpperCase()},body:bt.output.getBytes()};return forge$h.pem.encode(Tt)};pki$3.decryptRsaPrivateKey=function(st,at){var ut=null,dt=forge$h.pem.decode(st)[0];if(dt.type!=="ENCRYPTED PRIVATE KEY"&&dt.type!=="PRIVATE KEY"&&dt.type!=="RSA PRIVATE KEY"){var ct=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw ct.headerType=ct,ct}if(dt.procType&&dt.procType.type==="ENCRYPTED"){var pt,ft;switch(dt.dekInfo.algorithm){case"DES-CBC":pt=8,ft=forge$h.des.createDecryptionCipher;break;case"DES-EDE3-CBC":pt=24,ft=forge$h.des.createDecryptionCipher;break;case"AES-128-CBC":pt=16,ft=forge$h.aes.createDecryptionCipher;break;case"AES-192-CBC":pt=24,ft=forge$h.aes.createDecryptionCipher;break;case"AES-256-CBC":pt=32,ft=forge$h.aes.createDecryptionCipher;break;case"RC2-40-CBC":pt=5,ft=function(Tt){return forge$h.rc2.createDecryptionCipher(Tt,40)};break;case"RC2-64-CBC":pt=8,ft=function(Tt){return forge$h.rc2.createDecryptionCipher(Tt,64)};break;case"RC2-128-CBC":pt=16,ft=function(Tt){return forge$h.rc2.createDecryptionCipher(Tt,128)};break;default:var ct=new Error('Could not decrypt private key; unsupported encryption algorithm "'+dt.dekInfo.algorithm+'".');throw ct.algorithm=dt.dekInfo.algorithm,ct}var ht=forge$h.util.hexToBytes(dt.dekInfo.parameters),mt=forge$h.pbe.opensslDeriveBytes(at,ht.substr(0,8),pt),yt=ft(mt);if(yt.start(ht),yt.update(forge$h.util.createBuffer(dt.body)),yt.finish())ut=yt.output.getBytes();else return ut}else ut=dt.body;return dt.type==="ENCRYPTED PRIVATE KEY"?ut=pki$3.decryptPrivateKeyInfo(asn1$6.fromDer(ut),at):ut=asn1$6.fromDer(ut),ut!==null&&(ut=pki$3.privateKeyFromAsn1(ut)),ut};pki$3.pbe.generatePkcs12Key=function(st,at,ut,dt,ct,pt){var ft,ht;if(typeof pt>"u"||pt===null){if(!("sha1"in forge$h.md))throw new Error('"sha1" hash algorithm unavailable.');pt=forge$h.md.sha1.create()}var mt=pt.digestLength,yt=pt.blockLength,bt=new forge$h.util.ByteBuffer,Tt=new forge$h.util.ByteBuffer;if(st!=null){for(ht=0;ht=0;ht--)Qt=Qt>>8,Qt+=Ot.at(ht)+qt.at(ht),qt.setAt(ht,Qt&255);Mt.putBuffer(qt)}Ct=Mt,bt.putBuffer($t)}return bt.truncate(bt.length()-ct),bt};pki$3.pbe.getCipher=function(st,at,ut){switch(st){case pki$3.oids.pkcs5PBES2:return pki$3.pbe.getCipherForPBES2(st,at,ut);case pki$3.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case pki$3.oids["pbewithSHAAnd40BitRC2-CBC"]:return pki$3.pbe.getCipherForPKCS12PBE(st,at,ut);default:var dt=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw dt.oid=st,dt.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],dt}};pki$3.pbe.getCipherForPBES2=function(st,at,ut){var dt={},ct=[];if(!asn1$6.validate(at,PBES2AlgorithmsValidator,dt,ct)){var pt=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw pt.errors=ct,pt}if(st=asn1$6.derToOid(dt.kdfOid),st!==pki$3.oids.pkcs5PBKDF2){var pt=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw pt.oid=st,pt.supportedOids=["pkcs5PBKDF2"],pt}if(st=asn1$6.derToOid(dt.encOid),st!==pki$3.oids["aes128-CBC"]&&st!==pki$3.oids["aes192-CBC"]&&st!==pki$3.oids["aes256-CBC"]&&st!==pki$3.oids["des-EDE3-CBC"]&&st!==pki$3.oids.desCBC){var pt=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw pt.oid=st,pt.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],pt}var ft=dt.kdfSalt,ht=forge$h.util.createBuffer(dt.kdfIterationCount);ht=ht.getInt(ht.length()<<3);var mt,yt;switch(pki$3.oids[st]){case"aes128-CBC":mt=16,yt=forge$h.aes.createDecryptionCipher;break;case"aes192-CBC":mt=24,yt=forge$h.aes.createDecryptionCipher;break;case"aes256-CBC":mt=32,yt=forge$h.aes.createDecryptionCipher;break;case"des-EDE3-CBC":mt=24,yt=forge$h.des.createDecryptionCipher;break;case"desCBC":mt=8,yt=forge$h.des.createDecryptionCipher;break}var bt=prfOidToMessageDigest(dt.prfOid),Tt=forge$h.pkcs5.pbkdf2(ut,ft,ht,mt,bt),St=dt.encIv,At=yt(Tt);return At.start(St),At};pki$3.pbe.getCipherForPKCS12PBE=function(st,at,ut){var dt={},ct=[];if(!asn1$6.validate(at,pkcs12PbeParamsValidator,dt,ct)){var pt=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw pt.errors=ct,pt}var ft=forge$h.util.createBuffer(dt.salt),ht=forge$h.util.createBuffer(dt.iterations);ht=ht.getInt(ht.length()<<3);var mt,yt,bt;switch(st){case pki$3.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:mt=24,yt=8,bt=forge$h.des.startDecrypting;break;case pki$3.oids["pbewithSHAAnd40BitRC2-CBC"]:mt=5,yt=8,bt=function(Dt,Et){var _t=forge$h.rc2.createDecryptionCipher(Dt,40);return _t.start(Et,null),_t};break;default:var pt=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw pt.oid=st,pt}var Tt=prfOidToMessageDigest(dt.prfOid),St=pki$3.pbe.generatePkcs12Key(ut,ft,1,ht,mt,Tt);Tt.start();var At=pki$3.pbe.generatePkcs12Key(ut,ft,2,ht,yt,Tt);return bt(St,At)};pki$3.pbe.opensslDeriveBytes=function(st,at,ut,dt){if(typeof dt>"u"||dt===null){if(!("md5"in forge$h.md))throw new Error('"md5" hash algorithm unavailable.');dt=forge$h.md.md5.create()}at===null&&(at="");for(var ct=[hash$1(dt,st+at)],pt=16,ft=1;pt>8*St-Tt&255;return wt=String.fromCharCode(wt.charCodeAt(0)&~$t)+wt.substr(1),wt+Et+"¼"},ht.verify=function(mt,yt,bt){var Tt,St=bt-1,At=Math.ceil(St/8);if(yt=yt.substr(-At),At>8*At-St&255;if(Dt.charCodeAt(0)&_t)throw new Error("Bits beyond keysize not zero as expected.");var xt=ut.generate(Et,vt),Ct="";for(Tt=0;Tt2)throw new Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate.");if(mt.length<2)throw new Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime.");if(ft.validity.notBefore=mt[0],ft.validity.notAfter=mt[1],ft.tbsCertificate=ut.tbsCertificate,at){ft.md=_createSignatureDigest({signatureOid:ft.signatureOid,type:"certificate"});var yt=asn1$4.toDer(ft.tbsCertificate);ft.md.update(yt.getBytes())}var bt=forge$c.md.sha1.create(),Tt=asn1$4.toDer(ut.certIssuer);bt.update(Tt.getBytes()),ft.issuer.getField=function(vt){return _getAttribute(ft.issuer,vt)},ft.issuer.addField=function(vt){_fillMissingFields([vt]),ft.issuer.attributes.push(vt)},ft.issuer.attributes=pki$2.RDNAttributesAsArray(ut.certIssuer),ut.certIssuerUniqueId&&(ft.issuer.uniqueId=ut.certIssuerUniqueId),ft.issuer.hash=bt.digest().toHex();var St=forge$c.md.sha1.create(),At=asn1$4.toDer(ut.certSubject);return St.update(At.getBytes()),ft.subject.getField=function(vt){return _getAttribute(ft.subject,vt)},ft.subject.addField=function(vt){_fillMissingFields([vt]),ft.subject.attributes.push(vt)},ft.subject.attributes=pki$2.RDNAttributesAsArray(ut.certSubject),ut.certSubjectUniqueId&&(ft.subject.uniqueId=ut.certSubjectUniqueId),ft.subject.hash=St.digest().toHex(),ut.certExtensions?ft.extensions=pki$2.certificateExtensionsFromAsn1(ut.certExtensions):ft.extensions=[],ft.publicKey=pki$2.publicKeyFromAsn1(ut.subjectPublicKeyInfo),ft};pki$2.certificateExtensionsFromAsn1=function(st){for(var at=[],ut=0;ut1&&(dt=ut.value.charCodeAt(1),ct=ut.value.length>2?ut.value.charCodeAt(2):0),at.digitalSignature=(dt&128)===128,at.nonRepudiation=(dt&64)===64,at.keyEncipherment=(dt&32)===32,at.dataEncipherment=(dt&16)===16,at.keyAgreement=(dt&8)===8,at.keyCertSign=(dt&4)===4,at.cRLSign=(dt&2)===2,at.encipherOnly=(dt&1)===1,at.decipherOnly=(ct&128)===128}else if(at.name==="basicConstraints"){var ut=asn1$4.fromDer(at.value);ut.value.length>0&&ut.value[0].type===asn1$4.Type.BOOLEAN?at.cA=ut.value[0].value.charCodeAt(0)!==0:at.cA=!1;var pt=null;ut.value.length>0&&ut.value[0].type===asn1$4.Type.INTEGER?pt=ut.value[0].value:ut.value.length>1&&(pt=ut.value[1].value),pt!==null&&(at.pathLenConstraint=asn1$4.derToInteger(pt))}else if(at.name==="extKeyUsage")for(var ut=asn1$4.fromDer(at.value),ft=0;ft1&&(dt=ut.value.charCodeAt(1)),at.client=(dt&128)===128,at.server=(dt&64)===64,at.email=(dt&32)===32,at.objsign=(dt&16)===16,at.reserved=(dt&8)===8,at.sslCA=(dt&4)===4,at.emailCA=(dt&2)===2,at.objCA=(dt&1)===1}else if(at.name==="subjectAltName"||at.name==="issuerAltName"){at.altNames=[];for(var mt,ut=asn1$4.fromDer(at.value),yt=0;yt"u"&&(at.type&&at.type in pki$2.oids?at.name=pki$2.oids[at.type]:at.shortName&&at.shortName in _shortNames&&(at.name=pki$2.oids[_shortNames[at.shortName]])),typeof at.type>"u")if(at.name&&at.name in pki$2.oids)at.type=pki$2.oids[at.name];else{var dt=new Error("Attribute type not specified.");throw dt.attribute=at,dt}if(typeof at.shortName>"u"&&at.name&&at.name in _shortNames&&(at.shortName=_shortNames[at.name]),at.type===oids.extensionRequest&&(at.valueConstructed=!0,at.valueTagClass=asn1$4.Type.SEQUENCE,!at.value&&at.extensions)){at.value=[];for(var ct=0;ct"u"){var dt=new Error("Attribute value not specified.");throw dt.attribute=at,dt}}}function _fillMissingExtensionFields(st,at){if(at=at||{},typeof st.name>"u"&&st.id&&st.id in pki$2.oids&&(st.name=pki$2.oids[st.id]),typeof st.id>"u")if(st.name&&st.name in pki$2.oids)st.id=pki$2.oids[st.name];else{var ut=new Error("Extension ID not specified.");throw ut.extension=st,ut}if(typeof st.value<"u")return st;if(st.name==="keyUsage"){var dt=0,ct=0,pt=0;st.digitalSignature&&(ct|=128,dt=7),st.nonRepudiation&&(ct|=64,dt=6),st.keyEncipherment&&(ct|=32,dt=5),st.dataEncipherment&&(ct|=16,dt=4),st.keyAgreement&&(ct|=8,dt=3),st.keyCertSign&&(ct|=4,dt=2),st.cRLSign&&(ct|=2,dt=1),st.encipherOnly&&(ct|=1,dt=0),st.decipherOnly&&(pt|=128,dt=7);var ft=String.fromCharCode(dt);pt!==0?ft+=String.fromCharCode(ct)+String.fromCharCode(pt):ct!==0&&(ft+=String.fromCharCode(ct)),st.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.BITSTRING,!1,ft)}else if(st.name==="basicConstraints")st.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]),st.cA&&st.value.value.push(asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.BOOLEAN,!1,"ÿ")),"pathLenConstraint"in st&&st.value.value.push(asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.INTEGER,!1,asn1$4.integerToDer(st.pathLenConstraint).getBytes()));else if(st.name==="extKeyUsage"){st.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]);var ht=st.value.value;for(var mt in st)st[mt]===!0&&(mt in oids?ht.push(asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.OID,!1,asn1$4.oidToDer(oids[mt]).getBytes())):mt.indexOf(".")!==-1&&ht.push(asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.OID,!1,asn1$4.oidToDer(mt).getBytes())))}else if(st.name==="nsCertType"){var dt=0,ct=0;st.client&&(ct|=128,dt=7),st.server&&(ct|=64,dt=6),st.email&&(ct|=32,dt=5),st.objsign&&(ct|=16,dt=4),st.reserved&&(ct|=8,dt=3),st.sslCA&&(ct|=4,dt=2),st.emailCA&&(ct|=2,dt=1),st.objCA&&(ct|=1,dt=0);var ft=String.fromCharCode(dt);ct!==0&&(ft+=String.fromCharCode(ct)),st.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.BITSTRING,!1,ft)}else if(st.name==="subjectAltName"||st.name==="issuerAltName"){st.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]);for(var yt,bt=0;bt128)throw new Error('Invalid "nsComment" content.');st.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.IA5STRING,!1,st.comment)}else if(st.name==="subjectKeyIdentifier"&&at.cert){var Tt=at.cert.generateSubjectKeyIdentifier();st.subjectKeyIdentifier=Tt.toHex(),st.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.OCTETSTRING,!1,Tt.getBytes())}else if(st.name==="authorityKeyIdentifier"&&at.cert){st.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]);var ht=st.value.value;if(st.keyIdentifier){var St=st.keyIdentifier===!0?at.cert.generateSubjectKeyIdentifier().getBytes():st.keyIdentifier;ht.push(asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,0,!1,St))}if(st.authorityCertIssuer){var At=[asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,4,!0,[_dnToAsn1(st.authorityCertIssuer===!0?at.cert.issuer:st.authorityCertIssuer)])];ht.push(asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,1,!0,At))}if(st.serialNumber){var vt=forge$c.util.hexToBytes(st.serialNumber===!0?at.cert.serialNumber:st.serialNumber);ht.push(asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,2,!1,vt))}}else if(st.name==="cRLDistributionPoints"){st.value=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]);for(var ht=st.value.value,Dt=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]),Et=asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,0,!0,[]),yt,bt=0;bt"u"){var ut=new Error("Extension value not specified.");throw ut.extension=st,ut}return st}function _signatureParametersToAsn1(st,at){switch(st){case oids["RSASSA-PSS"]:var ut=[];return at.hash.algorithmOid!==void 0&&ut.push(asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,0,!0,[asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.OID,!1,asn1$4.oidToDer(at.hash.algorithmOid).getBytes()),asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.NULL,!1,"")])])),at.mgf.algorithmOid!==void 0&&ut.push(asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,1,!0,[asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.OID,!1,asn1$4.oidToDer(at.mgf.algorithmOid).getBytes()),asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.OID,!1,asn1$4.oidToDer(at.mgf.hash.algorithmOid).getBytes()),asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.NULL,!1,"")])])])),at.saltLength!==void 0&&ut.push(asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,2,!0,[asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.INTEGER,!1,asn1$4.integerToDer(at.saltLength).getBytes())])),asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,ut);default:return asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.NULL,!1,"")}}function _CRIAttributesToAsn1(st){var at=asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,0,!0,[]);if(st.attributes.length===0)return at;for(var ut=st.attributes,dt=0;dt=jan_1_1950&&st0&&dt.value.push(pki$2.certificateExtensionsToAsn1(st.extensions)),dt};pki$2.getCertificationRequestInfo=function(st){var at=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.INTEGER,!1,asn1$4.integerToDer(st.version).getBytes()),_dnToAsn1(st.subject),pki$2.publicKeyToAsn1(st.publicKey),_CRIAttributesToAsn1(st)]);return at};pki$2.distinguishedNameToAsn1=function(st){return _dnToAsn1(st)};pki$2.certificateToAsn1=function(st){var at=st.tbsCertificate||pki$2.getTBSCertificate(st);return asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[at,asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.OID,!1,asn1$4.oidToDer(st.signatureOid).getBytes()),_signatureParametersToAsn1(st.signatureOid,st.signatureParameters)]),asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.BITSTRING,!1,"\0"+st.signature)])};pki$2.certificateExtensionsToAsn1=function(st){var at=asn1$4.create(asn1$4.Class.CONTEXT_SPECIFIC,3,!0,[]),ut=asn1$4.create(asn1$4.Class.UNIVERSAL,asn1$4.Type.SEQUENCE,!0,[]);at.value.push(ut);for(var dt=0;dt"u"&&(ct=new Date);var pt=!0,ft=null,ht=0;do{var mt=at.shift(),yt=null,bt=!1;if(ct&&(ctmt.validity.notAfter)&&(ft={message:"Certificate is not valid yet or has expired.",error:pki$2.certificateError.certificate_expired,notBefore:mt.validity.notBefore,notAfter:mt.validity.notAfter,now:ct}),ft===null){if(yt=at[0]||st.getIssuer(mt),yt===null&&mt.isIssuer(mt)&&(bt=!0,yt=mt),yt){var Tt=yt;forge$c.util.isArray(Tt)||(Tt=[Tt]);for(var St=!1;!St&&Tt.length>0;){yt=Tt.shift();try{St=yt.verify(mt)}catch{}}St||(ft={message:"Certificate signature is invalid.",error:pki$2.certificateError.bad_certificate})}ft===null&&(!yt||bt)&&!st.hasCertificate(mt)&&(ft={message:"Certificate is not trusted.",error:pki$2.certificateError.unknown_ca})}if(ft===null&&yt&&!mt.isIssuer(yt)&&(ft={message:"Certificate issuer is invalid.",error:pki$2.certificateError.bad_certificate}),ft===null)for(var At={keyUsage:!0,basicConstraints:!0},vt=0;ft===null&&vtEt.pathLenConstraint&&(ft={message:"Certificate basicConstraints pathLenConstraint violated.",error:pki$2.certificateError.bad_certificate})}}var Ct=ft===null?!0:ft.error,kt=ut.verify?ut.verify(Ct,ht,dt):Ct;if(kt===!0)ft=null;else throw Ct===!0&&(ft={message:"The application rejected the certificate.",error:pki$2.certificateError.bad_certificate}),(kt||kt===0)&&(typeof kt=="object"&&!forge$c.util.isArray(kt)?(kt.message&&(ft.message=kt.message),kt.error&&(ft.error=kt.error)):typeof kt=="string"&&(ft.error=kt)),ft;pt=!1,++ht}while(at.length>0);return!0};var forge$b=forge$D,asn1$3=forge$b.asn1,pki$1=forge$b.pki,p12=forge$b.pkcs12=forge$b.pkcs12||{},contentInfoValidator={name:"ContentInfo",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.contentType",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:asn1$3.Class.CONTEXT_SPECIFIC,constructed:!0,captureAsn1:"content"}]},pfxValidator={name:"PFX",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.version",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.INTEGER,constructed:!1,capture:"version"},contentInfoValidator,{name:"PFX.macData",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"mac",value:[{name:"PFX.macData.mac",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.macData.mac.digestAlgorithm",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.macData.mac.digestAlgorithm.algorithm",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OID,constructed:!1,capture:"macAlgorithm"},{name:"PFX.macData.mac.digestAlgorithm.parameters",tagClass:asn1$3.Class.UNIVERSAL,captureAsn1:"macAlgorithmParameters"}]},{name:"PFX.macData.mac.digest",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OCTETSTRING,constructed:!1,capture:"macDigest"}]},{name:"PFX.macData.macSalt",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OCTETSTRING,constructed:!1,capture:"macSalt"},{name:"PFX.macData.iterations",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.INTEGER,constructed:!1,optional:!0,capture:"macIterations"}]}]},safeBagValidator={name:"SafeBag",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"SafeBag.bagId",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OID,constructed:!1,capture:"bagId"},{name:"SafeBag.bagValue",tagClass:asn1$3.Class.CONTEXT_SPECIFIC,constructed:!0,captureAsn1:"bagValue"},{name:"SafeBag.bagAttributes",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SET,constructed:!0,optional:!0,capture:"bagAttributes"}]},attributeValidator={name:"Attribute",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"Attribute.attrId",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OID,constructed:!1,capture:"oid"},{name:"Attribute.attrValues",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SET,constructed:!0,capture:"values"}]},certBagValidator={name:"CertBag",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.SEQUENCE,constructed:!0,value:[{name:"CertBag.certId",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Type.OID,constructed:!1,capture:"certId"},{name:"CertBag.certValue",tagClass:asn1$3.Class.CONTEXT_SPECIFIC,constructed:!0,value:[{name:"CertBag.certValue[0]",tagClass:asn1$3.Class.UNIVERSAL,type:asn1$3.Class.OCTETSTRING,constructed:!1,capture:"cert"}]}]};function _getBagsByAttribute(st,at,ut,dt){for(var ct=[],pt=0;pt=0&&ct.push(ht)}}return ct}p12.pkcs12FromAsn1=function(st,at,ut){typeof at=="string"?(ut=at,at=!0):at===void 0&&(at=!0);var dt={},ct=[];if(!asn1$3.validate(st,pfxValidator,dt,ct)){var pt=new Error("Cannot read PKCS#12 PFX. ASN.1 object is not an PKCS#12 PFX.");throw pt.errors=pt,pt}var ft={version:dt.version.charCodeAt(0),safeContents:[],getBags:function(Et){var _t={},xt;return"localKeyId"in Et?xt=Et.localKeyId:"localKeyIdHex"in Et&&(xt=forge$b.util.hexToBytes(Et.localKeyIdHex)),xt===void 0&&!("friendlyName"in Et)&&"bagType"in Et&&(_t[Et.bagType]=_getBagsByAttribute(ft.safeContents,null,null,Et.bagType)),xt!==void 0&&(_t.localKeyId=_getBagsByAttribute(ft.safeContents,"localKeyId",xt,Et.bagType)),"friendlyName"in Et&&(_t.friendlyName=_getBagsByAttribute(ft.safeContents,"friendlyName",Et.friendlyName,Et.bagType)),_t},getBagsByFriendlyName:function(Et,_t){return _getBagsByAttribute(ft.safeContents,"friendlyName",Et,_t)},getBagsByLocalKeyId:function(Et,_t){return _getBagsByAttribute(ft.safeContents,"localKeyId",Et,_t)}};if(dt.version.charCodeAt(0)!==3){var pt=new Error("PKCS#12 PFX of version other than 3 not supported.");throw pt.version=dt.version.charCodeAt(0),pt}if(asn1$3.derToOid(dt.contentType)!==pki$1.oids.data){var pt=new Error("Only PKCS#12 PFX in password integrity mode supported.");throw pt.oid=asn1$3.derToOid(dt.contentType),pt}var ht=dt.content.value[0];if(ht.tagClass!==asn1$3.Class.UNIVERSAL||ht.type!==asn1$3.Type.OCTETSTRING)throw new Error("PKCS#12 authSafe content data is not an OCTET STRING.");if(ht=_decodePkcs7Data(ht),dt.mac){var mt=null,yt=0,bt=asn1$3.derToOid(dt.macAlgorithm);switch(bt){case pki$1.oids.sha1:mt=forge$b.md.sha1.create(),yt=20;break;case pki$1.oids.sha256:mt=forge$b.md.sha256.create(),yt=32;break;case pki$1.oids.sha384:mt=forge$b.md.sha384.create(),yt=48;break;case pki$1.oids.sha512:mt=forge$b.md.sha512.create(),yt=64;break;case pki$1.oids.md5:mt=forge$b.md.md5.create(),yt=16;break}if(mt===null)throw new Error("PKCS#12 uses unsupported MAC algorithm: "+bt);var Tt=new forge$b.util.ByteBuffer(dt.macSalt),St="macIterations"in dt?parseInt(forge$b.util.bytesToHex(dt.macIterations),16):1,At=p12.generateKey(ut,Tt,3,St,yt,mt),vt=forge$b.hmac.create();vt.start(mt,At),vt.update(ht.value);var Dt=vt.getMac();if(Dt.getBytes()!==dt.macDigest)throw new Error("PKCS#12 MAC could not be verified. Invalid password?")}return _decodeAuthenticatedSafe(ft,ht.value,at,ut),ft};function _decodePkcs7Data(st){if(st.composed||st.constructed){for(var at=forge$b.util.createBuffer(),ut=0;ut0&&(pt=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SET,!0,mt));var yt=[],bt=[];at!==null&&(forge$b.util.isArray(at)?bt=at:bt=[at]);for(var Tt=[],St=0;St0){var Et=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,Tt),_t=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.data).getBytes()),asn1$3.create(asn1$3.Class.CONTEXT_SPECIFIC,0,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OCTETSTRING,!1,asn1$3.toDer(Et).getBytes())])]);yt.push(_t)}var xt=null;if(st!==null){var Ct=pki$1.wrapRsaPrivateKey(pki$1.privateKeyToAsn1(st));ut===null?xt=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.keyBag).getBytes()),asn1$3.create(asn1$3.Class.CONTEXT_SPECIFIC,0,!0,[Ct]),pt]):xt=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.pkcs8ShroudedKeyBag).getBytes()),asn1$3.create(asn1$3.Class.CONTEXT_SPECIFIC,0,!0,[pki$1.encryptPrivateKeyInfo(Ct,ut,dt)]),pt]);var kt=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[xt]),wt=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.data).getBytes()),asn1$3.create(asn1$3.Class.CONTEXT_SPECIFIC,0,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OCTETSTRING,!1,asn1$3.toDer(kt).getBytes())])]);yt.push(wt)}var $t=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,yt),Lt;if(dt.useMac){var ht=forge$b.md.sha1.create(),Ot=new forge$b.util.ByteBuffer(forge$b.random.getBytes(dt.saltSize)),zt=dt.count,st=p12.generateKey(ut,Ot,3,zt,20),Mt=forge$b.hmac.create();Mt.start(ht,st),Mt.update(asn1$3.toDer($t).getBytes());var qt=Mt.getMac();Lt=asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.sha1).getBytes()),asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.NULL,!1,"")]),asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OCTETSTRING,!1,qt.getBytes())]),asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OCTETSTRING,!1,Ot.getBytes()),asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.INTEGER,!1,asn1$3.integerToDer(zt).getBytes())])}return asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.INTEGER,!1,asn1$3.integerToDer(3).getBytes()),asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.SEQUENCE,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OID,!1,asn1$3.oidToDer(pki$1.oids.data).getBytes()),asn1$3.create(asn1$3.Class.CONTEXT_SPECIFIC,0,!0,[asn1$3.create(asn1$3.Class.UNIVERSAL,asn1$3.Type.OCTETSTRING,!1,asn1$3.toDer($t).getBytes())])]),Lt])};p12.generateKey=forge$b.pbe.generatePkcs12Key;var forge$a=forge$D,asn1$2=forge$a.asn1,pki=forge$a.pki=forge$a.pki||{};pki.pemToDer=function(st){var at=forge$a.pem.decode(st)[0];if(at.procType&&at.procType.type==="ENCRYPTED")throw new Error("Could not convert PEM to DER; PEM is encrypted.");return forge$a.util.createBuffer(at.body)};pki.privateKeyFromPem=function(st){var at=forge$a.pem.decode(st)[0];if(at.type!=="PRIVATE KEY"&&at.type!=="RSA PRIVATE KEY"){var ut=new Error('Could not convert private key from PEM; PEM header type is not "PRIVATE KEY" or "RSA PRIVATE KEY".');throw ut.headerType=at.type,ut}if(at.procType&&at.procType.type==="ENCRYPTED")throw new Error("Could not convert private key from PEM; PEM is encrypted.");var dt=asn1$2.fromDer(at.body);return pki.privateKeyFromAsn1(dt)};pki.privateKeyToPem=function(st,at){var ut={type:"RSA PRIVATE KEY",body:asn1$2.toDer(pki.privateKeyToAsn1(st)).getBytes()};return forge$a.pem.encode(ut,{maxline:at})};pki.privateKeyInfoToPem=function(st,at){var ut={type:"PRIVATE KEY",body:asn1$2.toDer(st).getBytes()};return forge$a.pem.encode(ut,{maxline:at})};var forge$9=forge$D,prf_TLS1=function(st,at,ut,dt){var ct=forge$9.util.createBuffer(),pt=st.length>>1,ft=pt+(st.length&1),ht=st.substr(0,ft),mt=st.substr(pt,ft),yt=forge$9.util.createBuffer(),bt=forge$9.hmac.create();ut=at+ut;var Tt=Math.ceil(dt/16),St=Math.ceil(dt/20);bt.start("MD5",ht);var At=forge$9.util.createBuffer();yt.putBytes(ut);for(var vt=0;vt0&&(tls$1.queue(st,tls$1.createAlert(st,{level:tls$1.Alert.Level.warning,description:tls$1.Alert.Description.no_renegotiation})),tls$1.flush(st)),st.process()};tls$1.parseHelloMessage=function(st,at,ut){var dt=null,ct=st.entity===tls$1.ConnectionEnd.client;if(ut<38)st.error(st,{message:ct?"Invalid ServerHello message. Message too short.":"Invalid ClientHello message. Message too short.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.illegal_parameter}});else{var pt=at.fragment,ft=pt.length();if(dt={version:{major:pt.getByte(),minor:pt.getByte()},random:forge$9.util.createBuffer(pt.getBytes(32)),session_id:readVector(pt,1),extensions:[]},ct?(dt.cipher_suite=pt.getBytes(2),dt.compression_method=pt.getByte()):(dt.cipher_suites=readVector(pt,2),dt.compression_methods=readVector(pt,1)),ft=ut-(ft-pt.length()),ft>0){for(var ht=readVector(pt,2);ht.length()>0;)dt.extensions.push({type:[ht.getByte(),ht.getByte()],data:readVector(ht,2)});if(!ct)for(var mt=0;mt0;){var Tt=bt.getByte();if(Tt!==0)break;st.session.extensions.server_name.serverNameList.push(readVector(bt,2).getBytes())}}}if(st.session.version&&(dt.version.major!==st.session.version.major||dt.version.minor!==st.session.version.minor))return st.error(st,{message:"TLS version change is disallowed during renegotiation.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.protocol_version}});if(ct)st.session.cipherSuite=tls$1.getCipherSuite(dt.cipher_suite);else for(var St=forge$9.util.createBuffer(dt.cipher_suites.bytes());St.length()>0&&(st.session.cipherSuite=tls$1.getCipherSuite(St.getBytes(2)),st.session.cipherSuite===null););if(st.session.cipherSuite===null)return st.error(st,{message:"No cipher suites in common.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.handshake_failure},cipherSuite:forge$9.util.bytesToHex(dt.cipher_suite)});ct?st.session.compressionMethod=dt.compression_method:st.session.compressionMethod=tls$1.CompressionMethod.none}return dt};tls$1.createSecurityParameters=function(st,at){var ut=st.entity===tls$1.ConnectionEnd.client,dt=at.random.bytes(),ct=ut?st.session.sp.client_random:dt,pt=ut?dt:tls$1.createRandom().getBytes();st.session.sp={entity:st.entity,prf_algorithm:tls$1.PRFAlgorithm.tls_prf_sha256,bulk_cipher_algorithm:null,cipher_type:null,enc_key_length:null,block_length:null,fixed_iv_length:null,record_iv_length:null,mac_algorithm:null,mac_length:null,mac_key_length:null,compression_algorithm:st.session.compressionMethod,pre_master_secret:null,master_secret:null,client_random:ct,server_random:pt}};tls$1.handleServerHello=function(st,at,ut){var dt=tls$1.parseHelloMessage(st,at,ut);if(!st.fail){if(dt.version.minor<=st.version.minor)st.version.minor=dt.version.minor;else return st.error(st,{message:"Incompatible TLS version.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.protocol_version}});st.session.version=st.version;var ct=dt.session_id.bytes();ct.length>0&&ct===st.session.id?(st.expect=SCC,st.session.resuming=!0,st.session.sp.server_random=dt.random.bytes()):(st.expect=SCE,st.session.resuming=!1,tls$1.createSecurityParameters(st,dt)),st.session.id=ct,st.process()}};tls$1.handleClientHello=function(st,at,ut){var dt=tls$1.parseHelloMessage(st,at,ut);if(!st.fail){var ct=dt.session_id.bytes(),pt=null;if(st.sessionCache&&(pt=st.sessionCache.getSession(ct),pt===null?ct="":(pt.version.major!==dt.version.major||pt.version.minor>dt.version.minor)&&(pt=null,ct="")),ct.length===0&&(ct=forge$9.random.getBytes(32)),st.session.id=ct,st.session.clientHelloVersion=dt.version,st.session.sp={},pt)st.version=st.session.version=pt.version,st.session.sp=pt.sp;else{for(var ft,ht=1;ht0;)pt=readVector(ct.certificate_list,3),ft=forge$9.asn1.fromDer(pt),pt=forge$9.pki.certificateFromAsn1(ft,!0),ht.push(pt)}catch(yt){return st.error(st,{message:"Could not parse certificate list.",cause:yt,send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.bad_certificate}})}var mt=st.entity===tls$1.ConnectionEnd.client;(mt||st.verifyClient===!0)&&ht.length===0?st.error(st,{message:mt?"No server certificate provided.":"No client certificate provided.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.illegal_parameter}}):ht.length===0?st.expect=mt?SKE:CKE:(mt?st.session.serverCertificate=ht[0]:st.session.clientCertificate=ht[0],tls$1.verifyCertificateChain(st,ht)&&(st.expect=mt?SKE:CKE)),st.process()};tls$1.handleServerKeyExchange=function(st,at,ut){if(ut>0)return st.error(st,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.unsupported_certificate}});st.expect=SCR,st.process()};tls$1.handleClientKeyExchange=function(st,at,ut){if(ut<48)return st.error(st,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.unsupported_certificate}});var dt=at.fragment,ct={enc_pre_master_secret:readVector(dt,2).getBytes()},pt=null;if(st.getPrivateKey)try{pt=st.getPrivateKey(st,st.session.serverCertificate),pt=forge$9.pki.privateKeyFromPem(pt)}catch(mt){st.error(st,{message:"Could not get private key.",cause:mt,send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.internal_error}})}if(pt===null)return st.error(st,{message:"No private key set.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.internal_error}});try{var ft=st.session.sp;ft.pre_master_secret=pt.decrypt(ct.enc_pre_master_secret);var ht=st.session.clientHelloVersion;if(ht.major!==ft.pre_master_secret.charCodeAt(0)||ht.minor!==ft.pre_master_secret.charCodeAt(1))throw new Error("TLS version rollback attack detected.")}catch{ft.pre_master_secret=forge$9.random.getBytes(48)}st.expect=CCC,st.session.clientCertificate!==null&&(st.expect=CCV),st.process()};tls$1.handleCertificateRequest=function(st,at,ut){if(ut<3)return st.error(st,{message:"Invalid CertificateRequest. Message too short.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.illegal_parameter}});var dt=at.fragment,ct={certificate_types:readVector(dt,1),certificate_authorities:readVector(dt,2)};st.session.certificateRequest=ct,st.expect=SHD,st.process()};tls$1.handleCertificateVerify=function(st,at,ut){if(ut<2)return st.error(st,{message:"Invalid CertificateVerify. Message too short.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.illegal_parameter}});var dt=at.fragment;dt.read-=4;var ct=dt.bytes();dt.read+=4;var pt={signature:readVector(dt,2).getBytes()},ft=forge$9.util.createBuffer();ft.putBuffer(st.session.md5.digest()),ft.putBuffer(st.session.sha1.digest()),ft=ft.getBytes();try{var ht=st.session.clientCertificate;if(!ht.publicKey.verify(ft,pt.signature,"NONE"))throw new Error("CertificateVerify signature does not match.");st.session.md5.update(ct),st.session.sha1.update(ct)}catch{return st.error(st,{message:"Bad signature in CertificateVerify.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.handshake_failure}})}st.expect=CCC,st.process()};tls$1.handleServerHelloDone=function(st,at,ut){if(ut>0)return st.error(st,{message:"Invalid ServerHelloDone message. Invalid length.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.record_overflow}});if(st.serverCertificate===null){var dt={message:"No server certificate provided. Not enough security.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.insufficient_security}},ct=0,pt=st.verify(st,dt.alert.description,ct,[]);if(pt!==!0)return(pt||pt===0)&&(typeof pt=="object"&&!forge$9.util.isArray(pt)?(pt.message&&(dt.message=pt.message),pt.alert&&(dt.alert.description=pt.alert)):typeof pt=="number"&&(dt.alert.description=pt)),st.error(st,dt)}st.session.certificateRequest!==null&&(at=tls$1.createRecord(st,{type:tls$1.ContentType.handshake,data:tls$1.createCertificate(st)}),tls$1.queue(st,at)),at=tls$1.createRecord(st,{type:tls$1.ContentType.handshake,data:tls$1.createClientKeyExchange(st)}),tls$1.queue(st,at),st.expect=SER;var ft=function(ht,mt){ht.session.certificateRequest!==null&&ht.session.clientCertificate!==null&&tls$1.queue(ht,tls$1.createRecord(ht,{type:tls$1.ContentType.handshake,data:tls$1.createCertificateVerify(ht,mt)})),tls$1.queue(ht,tls$1.createRecord(ht,{type:tls$1.ContentType.change_cipher_spec,data:tls$1.createChangeCipherSpec()})),ht.state.pending=tls$1.createConnectionState(ht),ht.state.current.write=ht.state.pending.write,tls$1.queue(ht,tls$1.createRecord(ht,{type:tls$1.ContentType.handshake,data:tls$1.createFinished(ht)})),ht.expect=SCC,tls$1.flush(ht),ht.process()};if(st.session.certificateRequest===null||st.session.clientCertificate===null)return ft(st,null);tls$1.getClientSignature(st,ft)};tls$1.handleChangeCipherSpec=function(st,at){if(at.fragment.getByte()!==1)return st.error(st,{message:"Invalid ChangeCipherSpec message received.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.illegal_parameter}});var ut=st.entity===tls$1.ConnectionEnd.client;(st.session.resuming&&ut||!st.session.resuming&&!ut)&&(st.state.pending=tls$1.createConnectionState(st)),st.state.current.read=st.state.pending.read,(!st.session.resuming&&ut||st.session.resuming&&!ut)&&(st.state.pending=null),st.expect=ut?SFI:CFI,st.process()};tls$1.handleFinished=function(st,at,ut){var dt=at.fragment;dt.read-=4;var ct=dt.bytes();dt.read+=4;var pt=at.fragment.getBytes();dt=forge$9.util.createBuffer(),dt.putBuffer(st.session.md5.digest()),dt.putBuffer(st.session.sha1.digest());var ft=st.entity===tls$1.ConnectionEnd.client,ht=ft?"server finished":"client finished",mt=st.session.sp,yt=12,bt=prf_TLS1;if(dt=bt(mt.master_secret,ht,dt.getBytes(),yt),dt.getBytes()!==pt)return st.error(st,{message:"Invalid verify_data in Finished message.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.decrypt_error}});st.session.md5.update(ct),st.session.sha1.update(ct),(st.session.resuming&&ft||!st.session.resuming&&!ft)&&(tls$1.queue(st,tls$1.createRecord(st,{type:tls$1.ContentType.change_cipher_spec,data:tls$1.createChangeCipherSpec()})),st.state.current.write=st.state.pending.write,st.state.pending=null,tls$1.queue(st,tls$1.createRecord(st,{type:tls$1.ContentType.handshake,data:tls$1.createFinished(st)}))),st.expect=ft?SAD:CAD,st.handshaking=!1,++st.handshakes,st.peerCertificate=ft?st.session.serverCertificate:st.session.clientCertificate,tls$1.flush(st),st.isConnected=!0,st.connected(st),st.process()};tls$1.handleAlert=function(st,at){var ut=at.fragment,dt={level:ut.getByte(),description:ut.getByte()},ct;switch(dt.description){case tls$1.Alert.Description.close_notify:ct="Connection closed.";break;case tls$1.Alert.Description.unexpected_message:ct="Unexpected message.";break;case tls$1.Alert.Description.bad_record_mac:ct="Bad record MAC.";break;case tls$1.Alert.Description.decryption_failed:ct="Decryption failed.";break;case tls$1.Alert.Description.record_overflow:ct="Record overflow.";break;case tls$1.Alert.Description.decompression_failure:ct="Decompression failed.";break;case tls$1.Alert.Description.handshake_failure:ct="Handshake failure.";break;case tls$1.Alert.Description.bad_certificate:ct="Bad certificate.";break;case tls$1.Alert.Description.unsupported_certificate:ct="Unsupported certificate.";break;case tls$1.Alert.Description.certificate_revoked:ct="Certificate revoked.";break;case tls$1.Alert.Description.certificate_expired:ct="Certificate expired.";break;case tls$1.Alert.Description.certificate_unknown:ct="Certificate unknown.";break;case tls$1.Alert.Description.illegal_parameter:ct="Illegal parameter.";break;case tls$1.Alert.Description.unknown_ca:ct="Unknown certificate authority.";break;case tls$1.Alert.Description.access_denied:ct="Access denied.";break;case tls$1.Alert.Description.decode_error:ct="Decode error.";break;case tls$1.Alert.Description.decrypt_error:ct="Decrypt error.";break;case tls$1.Alert.Description.export_restriction:ct="Export restriction.";break;case tls$1.Alert.Description.protocol_version:ct="Unsupported protocol version.";break;case tls$1.Alert.Description.insufficient_security:ct="Insufficient security.";break;case tls$1.Alert.Description.internal_error:ct="Internal error.";break;case tls$1.Alert.Description.user_canceled:ct="User canceled.";break;case tls$1.Alert.Description.no_renegotiation:ct="Renegotiation not supported.";break;default:ct="Unknown error.";break}if(dt.description===tls$1.Alert.Description.close_notify)return st.close();st.error(st,{message:ct,send:!1,origin:st.entity===tls$1.ConnectionEnd.client?"server":"client",alert:dt}),st.process()};tls$1.handleHandshake=function(st,at){var ut=at.fragment,dt=ut.getByte(),ct=ut.getInt24();if(ct>ut.length())return st.fragmented=at,at.fragment=forge$9.util.createBuffer(),ut.read-=4,st.process();st.fragmented=null,ut.read-=4;var pt=ut.bytes(ct+4);ut.read+=4,dt in hsTable[st.entity][st.expect]?(st.entity===tls$1.ConnectionEnd.server&&!st.open&&!st.fail&&(st.handshaking=!0,st.session={version:null,extensions:{server_name:{serverNameList:[]}},cipherSuite:null,compressionMethod:null,serverCertificate:null,clientCertificate:null,md5:forge$9.md.md5.create(),sha1:forge$9.md.sha1.create()}),dt!==tls$1.HandshakeType.hello_request&&dt!==tls$1.HandshakeType.certificate_verify&&dt!==tls$1.HandshakeType.finished&&(st.session.md5.update(pt),st.session.sha1.update(pt)),hsTable[st.entity][st.expect][dt](st,at,ct)):tls$1.handleUnexpected(st,at)};tls$1.handleApplicationData=function(st,at){st.data.putBuffer(at.fragment),st.dataReady(st),st.process()};tls$1.handleHeartbeat=function(st,at){var ut=at.fragment,dt=ut.getByte(),ct=ut.getInt16(),pt=ut.getBytes(ct);if(dt===tls$1.HeartbeatMessageType.heartbeat_request){if(st.handshaking||ct>pt.length)return st.process();tls$1.queue(st,tls$1.createRecord(st,{type:tls$1.ContentType.heartbeat,data:tls$1.createHeartbeat(tls$1.HeartbeatMessageType.heartbeat_response,pt)})),tls$1.flush(st)}else if(dt===tls$1.HeartbeatMessageType.heartbeat_response){if(pt!==st.expectedHeartbeatPayload)return st.process();st.heartbeatReceived&&st.heartbeatReceived(st,forge$9.util.createBuffer(pt))}st.process()};var SHE=0,SCE=1,SKE=2,SCR=3,SHD=4,SCC=5,SFI=6,SAD=7,SER=8,CHE=0,CCE=1,CKE=2,CCV=3,CCC=4,CFI=5,CAD=6,__=tls$1.handleUnexpected,R0=tls$1.handleChangeCipherSpec,R1=tls$1.handleAlert,R2=tls$1.handleHandshake,R3=tls$1.handleApplicationData,R4=tls$1.handleHeartbeat,ctTable=[];ctTable[tls$1.ConnectionEnd.client]=[[__,R1,R2,__,R4],[__,R1,R2,__,R4],[__,R1,R2,__,R4],[__,R1,R2,__,R4],[__,R1,R2,__,R4],[R0,R1,__,__,R4],[__,R1,R2,__,R4],[__,R1,R2,R3,R4],[__,R1,R2,__,R4]];ctTable[tls$1.ConnectionEnd.server]=[[__,R1,R2,__,R4],[__,R1,R2,__,R4],[__,R1,R2,__,R4],[__,R1,R2,__,R4],[R0,R1,__,__,R4],[__,R1,R2,__,R4],[__,R1,R2,R3,R4],[__,R1,R2,__,R4]];var H0=tls$1.handleHelloRequest,H1=tls$1.handleServerHello,H2=tls$1.handleCertificate,H3=tls$1.handleServerKeyExchange,H4=tls$1.handleCertificateRequest,H5=tls$1.handleServerHelloDone,H6=tls$1.handleFinished,hsTable=[];hsTable[tls$1.ConnectionEnd.client]=[[__,__,H1,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,H2,H3,H4,H5,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,H3,H4,H5,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,__,H4,H5,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,H5,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6],[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[H0,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__]];var H7=tls$1.handleClientHello,H8=tls$1.handleClientKeyExchange,H9=tls$1.handleCertificateVerify;hsTable[tls$1.ConnectionEnd.server]=[[__,H7,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,H2,__,__,__,__,__,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H8,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H9,__,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,H6],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__],[__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__,__]];tls$1.generateKeys=function(st,at){var ut=prf_TLS1,dt=at.client_random+at.server_random;st.session.resuming||(at.master_secret=ut(at.pre_master_secret,"master secret",dt,48).bytes(),at.pre_master_secret=null),dt=at.server_random+at.client_random;var ct=2*at.mac_key_length+2*at.enc_key_length,pt=st.version.major===tls$1.Versions.TLS_1_0.major&&st.version.minor===tls$1.Versions.TLS_1_0.minor;pt&&(ct+=2*at.fixed_iv_length);var ft=ut(at.master_secret,"key expansion",dt,ct),ht={client_write_MAC_key:ft.getBytes(at.mac_key_length),server_write_MAC_key:ft.getBytes(at.mac_key_length),client_write_key:ft.getBytes(at.enc_key_length),server_write_key:ft.getBytes(at.enc_key_length)};return pt&&(ht.client_write_IV=ft.getBytes(at.fixed_iv_length),ht.server_write_IV=ft.getBytes(at.fixed_iv_length)),ht};tls$1.createConnectionState=function(st){var at=st.entity===tls$1.ConnectionEnd.client,ut=function(){var pt={sequenceNumber:[0,0],macKey:null,macLength:0,macFunction:null,cipherState:null,cipherFunction:function(ft){return!0},compressionState:null,compressFunction:function(ft){return!0},updateSequenceNumber:function(){pt.sequenceNumber[1]===4294967295?(pt.sequenceNumber[1]=0,++pt.sequenceNumber[0]):++pt.sequenceNumber[1]}};return pt},dt={read:ut(),write:ut()};if(dt.read.update=function(pt,ft){return dt.read.cipherFunction(ft,dt.read)?dt.read.compressFunction(pt,ft,dt.read)||pt.error(pt,{message:"Could not decompress record.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.decompression_failure}}):pt.error(pt,{message:"Could not decrypt record or bad MAC.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.bad_record_mac}}),!pt.fail},dt.write.update=function(pt,ft){return dt.write.compressFunction(pt,ft,dt.write)?dt.write.cipherFunction(ft,dt.write)||pt.error(pt,{message:"Could not encrypt record.",send:!1,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.internal_error}}):pt.error(pt,{message:"Could not compress record.",send:!1,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.internal_error}}),!pt.fail},st.session){var ct=st.session.sp;switch(st.session.cipherSuite.initSecurityParameters(ct),ct.keys=tls$1.generateKeys(st,ct),dt.read.macKey=at?ct.keys.server_write_MAC_key:ct.keys.client_write_MAC_key,dt.write.macKey=at?ct.keys.client_write_MAC_key:ct.keys.server_write_MAC_key,st.session.cipherSuite.initConnectionState(dt,st,ct),ct.compression_algorithm){case tls$1.CompressionMethod.none:break;case tls$1.CompressionMethod.deflate:dt.read.compressFunction=inflate,dt.write.compressFunction=deflate;break;default:throw new Error("Unsupported compression algorithm.")}}return dt};tls$1.createRandom=function(){var st=new Date,at=+st+st.getTimezoneOffset()*6e4,ut=forge$9.util.createBuffer();return ut.putInt32(at),ut.putBytes(forge$9.random.getBytes(28)),ut};tls$1.createRecord=function(st,at){if(!at.data)return null;var ut={type:at.type,version:{major:st.version.major,minor:st.version.minor},length:at.data.length(),fragment:at.data};return ut};tls$1.createAlert=function(st,at){var ut=forge$9.util.createBuffer();return ut.putByte(at.level),ut.putByte(at.description),tls$1.createRecord(st,{type:tls$1.ContentType.alert,data:ut})};tls$1.createClientHello=function(st){st.session.clientHelloVersion={major:st.version.major,minor:st.version.minor};for(var at=forge$9.util.createBuffer(),ut=0;ut0&&(Tt+=2);var St=st.session.id,At=St.length+1+2+4+28+2+ct+1+ft+Tt,vt=forge$9.util.createBuffer();return vt.putByte(tls$1.HandshakeType.client_hello),vt.putInt24(At),vt.putByte(st.version.major),vt.putByte(st.version.minor),vt.putBytes(st.session.sp.client_random),writeVector(vt,1,forge$9.util.createBuffer(St)),writeVector(vt,2,at),writeVector(vt,1,pt),Tt>0&&writeVector(vt,2,ht),vt};tls$1.createServerHello=function(st){var at=st.session.id,ut=at.length+1+2+4+28+2+1,dt=forge$9.util.createBuffer();return dt.putByte(tls$1.HandshakeType.server_hello),dt.putInt24(ut),dt.putByte(st.version.major),dt.putByte(st.version.minor),dt.putBytes(st.session.sp.server_random),writeVector(dt,1,forge$9.util.createBuffer(at)),dt.putByte(st.session.cipherSuite.id[0]),dt.putByte(st.session.cipherSuite.id[1]),dt.putByte(st.session.compressionMethod),dt};tls$1.createCertificate=function(st){var at=st.entity===tls$1.ConnectionEnd.client,ut=null;if(st.getCertificate){var dt;at?dt=st.session.certificateRequest:dt=st.session.extensions.server_name.serverNameList,ut=st.getCertificate(st,dt)}var ct=forge$9.util.createBuffer();if(ut!==null)try{forge$9.util.isArray(ut)||(ut=[ut]);for(var pt=null,ft=0;ft"u"&&(ut=at.length);var dt=forge$9.util.createBuffer();dt.putByte(st),dt.putInt16(ut),dt.putBytes(at);var ct=dt.length(),pt=Math.max(16,ct-ut-3);return dt.putBytes(forge$9.random.getBytes(pt)),dt};tls$1.queue=function(st,at){if(at&&!(at.fragment.length()===0&&(at.type===tls$1.ContentType.handshake||at.type===tls$1.ContentType.alert||at.type===tls$1.ContentType.change_cipher_spec))){if(at.type===tls$1.ContentType.handshake){var ut=at.fragment.bytes();st.session.md5.update(ut),st.session.sha1.update(ut),ut=null}var dt;if(at.fragment.length()<=tls$1.MaxFragment)dt=[at];else{dt=[];for(var ct=at.fragment.bytes();ct.length>tls$1.MaxFragment;)dt.push(tls$1.createRecord(st,{type:at.type,data:forge$9.util.createBuffer(ct.slice(0,tls$1.MaxFragment))})),ct=ct.slice(tls$1.MaxFragment);ct.length>0&&dt.push(tls$1.createRecord(st,{type:at.type,data:forge$9.util.createBuffer(ct)}))}for(var pt=0;pt0&&(ft=ut.order[0]),ft!==null&&ft in ut.cache){pt=ut.cache[ft],delete ut.cache[ft];for(var ht in ut.order)if(ut.order[ht]===ft){ut.order.splice(ht,1);break}}return pt},ut.setSession=function(ct,pt){if(ut.order.length===ut.capacity){var ft=ut.order.shift();delete ut.cache[ft]}var ft=forge$9.util.bytesToHex(ct);ut.order.push(ft),ut.cache[ft]=pt}}return ut};tls$1.createConnection=function(st){var at=null;st.caStore?forge$9.util.isArray(st.caStore)?at=forge$9.pki.createCaStore(st.caStore):at=st.caStore:at=forge$9.pki.createCaStore();var ut=st.cipherSuites||null;if(ut===null){ut=[];for(var dt in tls$1.CipherSuites)ut.push(tls$1.CipherSuites[dt])}var ct=st.server?tls$1.ConnectionEnd.server:tls$1.ConnectionEnd.client,pt=st.sessionCache?tls$1.createSessionCache(st.sessionCache):null,ft={version:{major:tls$1.Version.major,minor:tls$1.Version.minor},entity:ct,sessionId:st.sessionId,caStore:at,sessionCache:pt,cipherSuites:ut,connected:st.connected,virtualHost:st.virtualHost||null,verifyClient:st.verifyClient||!1,verify:st.verify||function(bt,Tt,St,At){return Tt},verifyOptions:st.verifyOptions||{},getCertificate:st.getCertificate||null,getPrivateKey:st.getPrivateKey||null,getSignature:st.getSignature||null,input:forge$9.util.createBuffer(),tlsData:forge$9.util.createBuffer(),data:forge$9.util.createBuffer(),tlsDataReady:st.tlsDataReady,dataReady:st.dataReady,heartbeatReceived:st.heartbeatReceived,closed:st.closed,error:function(bt,Tt){Tt.origin=Tt.origin||(bt.entity===tls$1.ConnectionEnd.client?"client":"server"),Tt.send&&(tls$1.queue(bt,tls$1.createAlert(bt,Tt.alert)),tls$1.flush(bt));var St=Tt.fatal!==!1;St&&(bt.fail=!0),st.error(bt,Tt),St&&bt.close(!1)},deflate:st.deflate||null,inflate:st.inflate||null};ft.reset=function(bt){ft.version={major:tls$1.Version.major,minor:tls$1.Version.minor},ft.record=null,ft.session=null,ft.peerCertificate=null,ft.state={pending:null,current:null},ft.expect=ft.entity===tls$1.ConnectionEnd.client?SHE:CHE,ft.fragmented=null,ft.records=[],ft.open=!1,ft.handshakes=0,ft.handshaking=!1,ft.isConnected=!1,ft.fail=!(bt||typeof bt>"u"),ft.input.clear(),ft.tlsData.clear(),ft.data.clear(),ft.state.current=tls$1.createConnectionState(ft)},ft.reset();var ht=function(bt,Tt){var St=Tt.type-tls$1.ContentType.change_cipher_spec,At=ctTable[bt.entity][bt.expect];St in At?At[St](bt,Tt):tls$1.handleUnexpected(bt,Tt)},mt=function(bt){var Tt=0,St=bt.input,At=St.length();if(At<5)Tt=5-At;else{bt.record={type:St.getByte(),version:{major:St.getByte(),minor:St.getByte()},length:St.getInt16(),fragment:forge$9.util.createBuffer(),ready:!1};var vt=bt.record.version.major===bt.version.major;vt&&bt.session&&bt.session.version&&(vt=bt.record.version.minor===bt.version.minor),vt||bt.error(bt,{message:"Incompatible TLS version.",send:!0,alert:{level:tls$1.Alert.Level.fatal,description:tls$1.Alert.Description.protocol_version}})}return Tt},yt=function(bt){var Tt=0,St=bt.input,At=St.length();if(At0&&(ft.sessionCache&&(Tt=ft.sessionCache.getSession(bt)),Tt===null&&(bt="")),bt.length===0&&ft.sessionCache&&(Tt=ft.sessionCache.getSession(),Tt!==null&&(bt=Tt.id)),ft.session={id:bt,version:null,cipherSuite:null,compressionMethod:null,serverCertificate:null,certificateRequest:null,clientCertificate:null,sp:{},md5:forge$9.md.md5.create(),sha1:forge$9.md.sha1.create()},Tt&&(ft.version=Tt.version,ft.session.sp=Tt.sp),ft.session.sp.client_random=tls$1.createRandom().getBytes(),ft.open=!0,tls$1.queue(ft,tls$1.createRecord(ft,{type:tls$1.ContentType.handshake,data:tls$1.createClientHello(ft)})),tls$1.flush(ft)}},ft.process=function(bt){var Tt=0;return bt&&ft.input.putBytes(bt),ft.fail||(ft.record!==null&&ft.record.ready&&ft.record.fragment.isEmpty()&&(ft.record=null),ft.record===null&&(Tt=mt(ft)),!ft.fail&&ft.record!==null&&!ft.record.ready&&(Tt=yt(ft)),!ft.fail&&ft.record!==null&&ft.record.ready&&ht(ft,ft.record)),Tt},ft.prepare=function(bt){return tls$1.queue(ft,tls$1.createRecord(ft,{type:tls$1.ContentType.application_data,data:forge$9.util.createBuffer(bt)})),tls$1.flush(ft)},ft.prepareHeartbeatRequest=function(bt,Tt){return bt instanceof forge$9.util.ByteBuffer&&(bt=bt.bytes()),typeof Tt>"u"&&(Tt=bt.length),ft.expectedHeartbeatPayload=bt,tls$1.queue(ft,tls$1.createRecord(ft,{type:tls$1.ContentType.heartbeat,data:tls$1.createHeartbeat(tls$1.HeartbeatMessageType.heartbeat_request,bt,Tt)})),tls$1.flush(ft)},ft.close=function(bt){if(!ft.fail&&ft.sessionCache&&ft.session){var Tt={id:ft.session.id,version:ft.session.version,sp:ft.session.sp};Tt.sp.keys=null,ft.sessionCache.setSession(Tt.id,Tt)}ft.open&&(ft.open=!1,ft.input.clear(),(ft.isConnected||ft.handshaking)&&(ft.isConnected=ft.handshaking=!1,tls$1.queue(ft,tls$1.createAlert(ft,{level:tls$1.Alert.Level.warning,description:tls$1.Alert.Description.close_notify})),tls$1.flush(ft)),ft.closed(ft)),ft.reset(bt)},ft};forge$9.tls=forge$9.tls||{};for(var key$1 in tls$1)typeof tls$1[key$1]!="function"&&(forge$9.tls[key$1]=tls$1[key$1]);forge$9.tls.prf_tls1=prf_TLS1;forge$9.tls.hmac_sha1=hmac_sha1;forge$9.tls.createSessionCache=tls$1.createSessionCache;forge$9.tls.createConnection=tls$1.createConnection;var forge$8=forge$D,tls=forge$8.tls;tls.CipherSuites.TLS_RSA_WITH_AES_128_CBC_SHA={id:[0,47],name:"TLS_RSA_WITH_AES_128_CBC_SHA",initSecurityParameters:function(st){st.bulk_cipher_algorithm=tls.BulkCipherAlgorithm.aes,st.cipher_type=tls.CipherType.block,st.enc_key_length=16,st.block_length=16,st.fixed_iv_length=16,st.record_iv_length=16,st.mac_algorithm=tls.MACAlgorithm.hmac_sha1,st.mac_length=20,st.mac_key_length=20},initConnectionState};tls.CipherSuites.TLS_RSA_WITH_AES_256_CBC_SHA={id:[0,53],name:"TLS_RSA_WITH_AES_256_CBC_SHA",initSecurityParameters:function(st){st.bulk_cipher_algorithm=tls.BulkCipherAlgorithm.aes,st.cipher_type=tls.CipherType.block,st.enc_key_length=32,st.block_length=16,st.fixed_iv_length=16,st.record_iv_length=16,st.mac_algorithm=tls.MACAlgorithm.hmac_sha1,st.mac_length=20,st.mac_key_length=20},initConnectionState};function initConnectionState(st,at,ut){var dt=at.entity===forge$8.tls.ConnectionEnd.client;st.read.cipherState={init:!1,cipher:forge$8.cipher.createDecipher("AES-CBC",dt?ut.keys.server_write_key:ut.keys.client_write_key),iv:dt?ut.keys.server_write_IV:ut.keys.client_write_IV},st.write.cipherState={init:!1,cipher:forge$8.cipher.createCipher("AES-CBC",dt?ut.keys.client_write_key:ut.keys.server_write_key),iv:dt?ut.keys.client_write_IV:ut.keys.server_write_IV},st.read.cipherFunction=decrypt_aes_cbc_sha1,st.write.cipherFunction=encrypt_aes_cbc_sha1,st.read.macLength=st.write.macLength=ut.mac_length,st.read.macFunction=st.write.macFunction=tls.hmac_sha1}function encrypt_aes_cbc_sha1(st,at){var ut=!1,dt=at.macFunction(at.macKey,at.sequenceNumber,st);st.fragment.putBytes(dt),at.updateSequenceNumber();var ct;st.version.minor===tls.Versions.TLS_1_0.minor?ct=at.cipherState.init?null:at.cipherState.iv:ct=forge$8.random.getBytesSync(16),at.cipherState.init=!0;var pt=at.cipherState.cipher;return pt.start({iv:ct}),st.version.minor>=tls.Versions.TLS_1_1.minor&&pt.output.putBytes(ct),pt.update(st.fragment),pt.finish(encrypt_aes_cbc_sha1_padding)&&(st.fragment=pt.output,st.length=st.fragment.length(),ut=!0),ut}function encrypt_aes_cbc_sha1_padding(st,at,ut){if(!ut){var dt=st-at.length()%st;at.fillWithByte(dt-1,dt)}return!0}function decrypt_aes_cbc_sha1_padding(st,at,ut){var dt=!0;if(ut){for(var ct=at.length(),pt=at.last(),ft=ct-1-pt;ft=pt?(st.fragment=ct.output.getBytes(ht-pt),ft=ct.output.getBytes(pt)):st.fragment=ct.output.getBytes(),st.fragment=forge$8.util.createBuffer(st.fragment),st.length=st.fragment.length();var mt=at.macFunction(at.macKey,at.sequenceNumber,st);return at.updateSequenceNumber(),ut=compareMacs(at.macKey,ft,mt)&&ut,ut}function compareMacs(st,at,ut){var dt=forge$8.hmac.create();return dt.start("SHA1",st),dt.update(at),at=dt.digest().getBytes(),dt.start(null,null),dt.update(ut),ut=dt.digest().getBytes(),at===ut}var forge$7=forge$D,sha512$1=forge$7.sha512=forge$7.sha512||{};forge$7.md.sha512=forge$7.md.algorithms.sha512=sha512$1;var sha384=forge$7.sha384=forge$7.sha512.sha384=forge$7.sha512.sha384||{};sha384.create=function(){return sha512$1.create("SHA-384")};forge$7.md.sha384=forge$7.md.algorithms.sha384=sha384;forge$7.sha512.sha256=forge$7.sha512.sha256||{create:function(){return sha512$1.create("SHA-512/256")}};forge$7.md["sha512/256"]=forge$7.md.algorithms["sha512/256"]=forge$7.sha512.sha256;forge$7.sha512.sha224=forge$7.sha512.sha224||{create:function(){return sha512$1.create("SHA-512/224")}};forge$7.md["sha512/224"]=forge$7.md.algorithms["sha512/224"]=forge$7.sha512.sha224;sha512$1.create=function(st){if(_initialized||_init(),typeof st>"u"&&(st="SHA-512"),!(st in _states))throw new Error("Invalid SHA-512 algorithm: "+st);for(var at=_states[st],ut=null,dt=forge$7.util.createBuffer(),ct=new Array(80),pt=0;pt<80;++pt)ct[pt]=new Array(2);var ft=64;switch(st){case"SHA-384":ft=48;break;case"SHA-512/256":ft=32;break;case"SHA-512/224":ft=28;break}var ht={algorithm:st.replace("-","").toLowerCase(),blockLength:128,digestLength:ft,messageLength:0,fullMessageLength:null,messageLengthSize:16};return ht.start=function(){ht.messageLength=0,ht.fullMessageLength=ht.messageLength128=[];for(var mt=ht.messageLengthSize/4,yt=0;yt>>0,bt>>>0];for(var Tt=ht.fullMessageLength.length-1;Tt>=0;--Tt)ht.fullMessageLength[Tt]+=bt[1],bt[1]=bt[0]+(ht.fullMessageLength[Tt]/4294967296>>>0),ht.fullMessageLength[Tt]=ht.fullMessageLength[Tt]>>>0,bt[0]=bt[1]/4294967296>>>0;return dt.putBytes(mt),_update(ut,ct,dt),(dt.read>2048||dt.length()===0)&&dt.compact(),ht},ht.digest=function(){var mt=forge$7.util.createBuffer();mt.putBytes(dt.bytes());var yt=ht.fullMessageLength[ht.fullMessageLength.length-1]+ht.messageLengthSize,bt=yt&ht.blockLength-1;mt.putBytes(_padding.substr(0,ht.blockLength-bt));for(var Tt,St,At=ht.fullMessageLength[0]*8,vt=0;vt>>0,At+=St,mt.putInt32(At>>>0),At=Tt>>>0;mt.putInt32(At);for(var Dt=new Array(ut.length),vt=0;vt=128;){for(Ft=0;Ft<16;++Ft)at[Ft][0]=ut.getInt32()>>>0,at[Ft][1]=ut.getInt32()>>>0;for(;Ft<80;++Ft)Kt=at[Ft-2],Vt=Kt[0],Ht=Kt[1],dt=((Vt>>>19|Ht<<13)^(Ht>>>29|Vt<<3)^Vt>>>6)>>>0,ct=((Vt<<13|Ht>>>19)^(Ht<<3|Vt>>>29)^(Vt<<26|Ht>>>6))>>>0,Wt=at[Ft-15],Vt=Wt[0],Ht=Wt[1],pt=((Vt>>>1|Ht<<31)^(Vt>>>8|Ht<<24)^Vt>>>7)>>>0,ft=((Vt<<31|Ht>>>1)^(Vt<<24|Ht>>>8)^(Vt<<25|Ht>>>7))>>>0,Zt=at[Ft-7],Nt=at[Ft-16],Ht=ct+Zt[1]+ft+Nt[1],at[Ft][0]=dt+Zt[0]+pt+Nt[0]+(Ht/4294967296>>>0)>>>0,at[Ft][1]=Ht>>>0;for(Dt=st[0][0],Et=st[0][1],_t=st[1][0],xt=st[1][1],Ct=st[2][0],kt=st[2][1],wt=st[3][0],$t=st[3][1],Lt=st[4][0],Ot=st[4][1],zt=st[5][0],Mt=st[5][1],qt=st[6][0],Qt=st[6][1],Yt=st[7][0],jt=st[7][1],Ft=0;Ft<80;++Ft)yt=((Lt>>>14|Ot<<18)^(Lt>>>18|Ot<<14)^(Ot>>>9|Lt<<23))>>>0,bt=((Lt<<18|Ot>>>14)^(Lt<<14|Ot>>>18)^(Ot<<23|Lt>>>9))>>>0,Tt=(qt^Lt&(zt^qt))>>>0,St=(Qt^Ot&(Mt^Qt))>>>0,ht=((Dt>>>28|Et<<4)^(Et>>>2|Dt<<30)^(Et>>>7|Dt<<25))>>>0,mt=((Dt<<4|Et>>>28)^(Et<<30|Dt>>>2)^(Et<<25|Dt>>>7))>>>0,At=(Dt&_t|Ct&(Dt^_t))>>>0,vt=(Et&xt|kt&(Et^xt))>>>0,Ht=jt+bt+St+_k[Ft][1]+at[Ft][1],dt=Yt+yt+Tt+_k[Ft][0]+at[Ft][0]+(Ht/4294967296>>>0)>>>0,ct=Ht>>>0,Ht=mt+vt,pt=ht+At+(Ht/4294967296>>>0)>>>0,ft=Ht>>>0,Yt=qt,jt=Qt,qt=zt,Qt=Mt,zt=Lt,Mt=Ot,Ht=$t+ct,Lt=wt+dt+(Ht/4294967296>>>0)>>>0,Ot=Ht>>>0,wt=Ct,$t=kt,Ct=_t,kt=xt,_t=Dt,xt=Et,Ht=ct+ft,Dt=dt+pt+(Ht/4294967296>>>0)>>>0,Et=Ht>>>0;Ht=st[0][1]+Et,st[0][0]=st[0][0]+Dt+(Ht/4294967296>>>0)>>>0,st[0][1]=Ht>>>0,Ht=st[1][1]+xt,st[1][0]=st[1][0]+_t+(Ht/4294967296>>>0)>>>0,st[1][1]=Ht>>>0,Ht=st[2][1]+kt,st[2][0]=st[2][0]+Ct+(Ht/4294967296>>>0)>>>0,st[2][1]=Ht>>>0,Ht=st[3][1]+$t,st[3][0]=st[3][0]+wt+(Ht/4294967296>>>0)>>>0,st[3][1]=Ht>>>0,Ht=st[4][1]+Ot,st[4][0]=st[4][0]+Lt+(Ht/4294967296>>>0)>>>0,st[4][1]=Ht>>>0,Ht=st[5][1]+Mt,st[5][0]=st[5][0]+zt+(Ht/4294967296>>>0)>>>0,st[5][1]=Ht>>>0,Ht=st[6][1]+Qt,st[6][0]=st[6][0]+qt+(Ht/4294967296>>>0)>>>0,st[6][1]=Ht>>>0,Ht=st[7][1]+jt,st[7][0]=st[7][0]+Yt+(Ht/4294967296>>>0)>>>0,st[7][1]=Ht>>>0,Rt-=128}}var asn1Validator$1={},forge$6=forge$D,asn1$1=forge$6.asn1;asn1Validator$1.privateKeyValidator={name:"PrivateKeyInfo",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]};asn1Validator$1.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{tagClass:asn1$1.Class.UNIVERSAL,type:asn1$1.Type.BITSTRING,constructed:!1,composed:!0,captureBitStringValue:"ed25519PublicKey"}]};var forge$5=forge$D,asn1Validator=asn1Validator$1,publicKeyValidator=asn1Validator.publicKeyValidator,privateKeyValidator=asn1Validator.privateKeyValidator;if(typeof BigInteger$1>"u")var BigInteger$1=forge$5.jsbn.BigInteger;var ByteBuffer=forge$5.util.ByteBuffer,NativeBuffer=typeof Buffer>"u"?Uint8Array:Buffer;forge$5.pki=forge$5.pki||{};forge$5.pki.ed25519=forge$5.ed25519=forge$5.ed25519||{};var ed25519=forge$5.ed25519;ed25519.constants={};ed25519.constants.PUBLIC_KEY_BYTE_LENGTH=32;ed25519.constants.PRIVATE_KEY_BYTE_LENGTH=64;ed25519.constants.SEED_BYTE_LENGTH=32;ed25519.constants.SIGN_BYTE_LENGTH=64;ed25519.constants.HASH_BYTE_LENGTH=64;ed25519.generateKeyPair=function(st){st=st||{};var at=st.seed;if(at===void 0)at=forge$5.random.getBytesSync(ed25519.constants.SEED_BYTE_LENGTH);else if(typeof at=="string"){if(at.length!==ed25519.constants.SEED_BYTE_LENGTH)throw new TypeError('"seed" must be '+ed25519.constants.SEED_BYTE_LENGTH+" bytes in length.")}else if(!(at instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, Uint8Array, or a binary string.');at=messageToNativeBuffer({message:at,encoding:"binary"});for(var ut=new NativeBuffer(ed25519.constants.PUBLIC_KEY_BYTE_LENGTH),dt=new NativeBuffer(ed25519.constants.PRIVATE_KEY_BYTE_LENGTH),ct=0;ct<32;++ct)dt[ct]=at[ct];return crypto_sign_keypair(ut,dt),{publicKey:ut,privateKey:dt}};ed25519.privateKeyFromAsn1=function(st){var at={},ut=[],dt=forge$5.asn1.validate(st,privateKeyValidator,at,ut);if(!dt){var ct=new Error("Invalid Key.");throw ct.errors=ut,ct}var pt=forge$5.asn1.derToOid(at.privateKeyOid),ft=forge$5.oids.EdDSA25519;if(pt!==ft)throw new Error('Invalid OID "'+pt+'"; OID must be "'+ft+'".');var ht=at.privateKey,mt=messageToNativeBuffer({message:forge$5.asn1.fromDer(ht).value,encoding:"binary"});return{privateKeyBytes:mt}};ed25519.publicKeyFromAsn1=function(st){var at={},ut=[],dt=forge$5.asn1.validate(st,publicKeyValidator,at,ut);if(!dt){var ct=new Error("Invalid Key.");throw ct.errors=ut,ct}var pt=forge$5.asn1.derToOid(at.publicKeyOid),ft=forge$5.oids.EdDSA25519;if(pt!==ft)throw new Error('Invalid OID "'+pt+'"; OID must be "'+ft+'".');var ht=at.ed25519PublicKey;if(ht.length!==ed25519.constants.PUBLIC_KEY_BYTE_LENGTH)throw new Error("Key length is invalid.");return messageToNativeBuffer({message:ht,encoding:"binary"})};ed25519.publicKeyFromPrivateKey=function(st){st=st||{};var at=messageToNativeBuffer({message:st.privateKey,encoding:"binary"});if(at.length!==ed25519.constants.PRIVATE_KEY_BYTE_LENGTH)throw new TypeError('"options.privateKey" must have a byte length of '+ed25519.constants.PRIVATE_KEY_BYTE_LENGTH);for(var ut=new NativeBuffer(ed25519.constants.PUBLIC_KEY_BYTE_LENGTH),dt=0;dt=0};function messageToNativeBuffer(st){var at=st.message;if(at instanceof Uint8Array||at instanceof NativeBuffer)return at;var ut=st.encoding;if(at===void 0)if(st.md)at=st.md.digest().getBytes(),ut="binary";else throw new TypeError('"options.message" or "options.md" not specified.');if(typeof at=="string"&&!ut)throw new TypeError('"options.encoding" must be "binary" or "utf8".');if(typeof at=="string"){if(typeof Buffer<"u")return Buffer.from(at,ut);at=new ByteBuffer(at,ut)}else if(!(at instanceof ByteBuffer))throw new TypeError('"options.message" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a string with "options.encoding" specifying its encoding.');for(var dt=new NativeBuffer(at.length()),ct=0;ct=32;--dt){for(ut=0,ct=dt-32,pt=dt-12;ct>8,at[ct]-=ut*256;at[ct]+=ut,at[dt]=0}for(ut=0,ct=0;ct<32;++ct)at[ct]+=ut-(at[31]>>4)*L$1[ct],ut=at[ct]>>8,at[ct]&=255;for(ct=0;ct<32;++ct)at[ct]-=ut*L$1[ct];for(dt=0;dt<32;++dt)at[dt+1]+=at[dt]>>8,st[dt]=at[dt]&255}function reduce(st){for(var at=new Float64Array(64),ut=0;ut<64;++ut)at[ut]=st[ut],st[ut]=0;modL(st,at)}function add$1(st,at){var ut=gf(),dt=gf(),ct=gf(),pt=gf(),ft=gf(),ht=gf(),mt=gf(),yt=gf(),bt=gf();Z(ut,st[1],st[0]),Z(bt,at[1],at[0]),M$4(ut,ut,bt),A$1(dt,st[0],st[1]),A$1(bt,at[0],at[1]),M$4(dt,dt,bt),M$4(ct,st[3],at[3]),M$4(ct,ct,D2),M$4(pt,st[2],at[2]),A$1(pt,pt,pt),Z(ft,dt,ut),Z(ht,pt,ct),A$1(mt,pt,ct),A$1(yt,dt,ut),M$4(st[0],ft,ht),M$4(st[1],yt,mt),M$4(st[2],mt,ht),M$4(st[3],ft,yt)}function cswap(st,at,ut){for(var dt=0;dt<4;++dt)sel25519(st[dt],at[dt],ut)}function pack(st,at){var ut=gf(),dt=gf(),ct=gf();inv25519(ct,at[2]),M$4(ut,at[0],ct),M$4(dt,at[1],ct),pack25519(st,dt),st[31]^=par25519(ut)<<7}function pack25519(st,at){var ut,dt,ct,pt=gf(),ft=gf();for(ut=0;ut<16;++ut)ft[ut]=at[ut];for(car25519(ft),car25519(ft),car25519(ft),dt=0;dt<2;++dt){for(pt[0]=ft[0]-65517,ut=1;ut<15;++ut)pt[ut]=ft[ut]-65535-(pt[ut-1]>>16&1),pt[ut-1]&=65535;pt[15]=ft[15]-32767-(pt[14]>>16&1),ct=pt[15]>>16&1,pt[14]&=65535,sel25519(ft,pt,1-ct)}for(ut=0;ut<16;ut++)st[2*ut]=ft[ut]&255,st[2*ut+1]=ft[ut]>>8}function unpackneg(st,at){var ut=gf(),dt=gf(),ct=gf(),pt=gf(),ft=gf(),ht=gf(),mt=gf();return set25519(st[2],gf1),unpack25519(st[1],at),S$1(ct,st[1]),M$4(pt,ct,D$2),Z(ct,ct,st[2]),A$1(pt,st[2],pt),S$1(ft,pt),S$1(ht,ft),M$4(mt,ht,ft),M$4(ut,mt,ct),M$4(ut,ut,pt),pow2523(ut,ut),M$4(ut,ut,ct),M$4(ut,ut,pt),M$4(ut,ut,pt),M$4(st[0],ut,pt),S$1(dt,st[0]),M$4(dt,dt,pt),neq25519(dt,ct)&&M$4(st[0],st[0],I$4),S$1(dt,st[0]),M$4(dt,dt,pt),neq25519(dt,ct)?-1:(par25519(st[0])===at[31]>>7&&Z(st[0],gf0,st[0]),M$4(st[3],st[0],st[1]),0)}function unpack25519(st,at){var ut;for(ut=0;ut<16;++ut)st[ut]=at[2*ut]+(at[2*ut+1]<<8);st[15]&=32767}function pow2523(st,at){var ut=gf(),dt;for(dt=0;dt<16;++dt)ut[dt]=at[dt];for(dt=250;dt>=0;--dt)S$1(ut,ut),dt!==1&&M$4(ut,ut,at);for(dt=0;dt<16;++dt)st[dt]=ut[dt]}function neq25519(st,at){var ut=new NativeBuffer(32),dt=new NativeBuffer(32);return pack25519(ut,st),pack25519(dt,at),crypto_verify_32(ut,0,dt,0)}function crypto_verify_32(st,at,ut,dt){return vn(st,at,ut,dt,32)}function vn(st,at,ut,dt,ct){var pt,ft=0;for(pt=0;pt>>8)-1}function par25519(st){var at=new NativeBuffer(32);return pack25519(at,st),at[0]&1}function scalarmult(st,at,ut){var dt,ct;for(set25519(st[0],gf0),set25519(st[1],gf1),set25519(st[2],gf1),set25519(st[3],gf0),ct=255;ct>=0;--ct)dt=ut[ct/8|0]>>(ct&7)&1,cswap(st,at,dt),add$1(at,st),add$1(st,st),cswap(st,at,dt)}function scalarbase(st,at){var ut=[gf(),gf(),gf(),gf()];set25519(ut[0],X),set25519(ut[1],Y),set25519(ut[2],gf1),M$4(ut[3],X,Y),scalarmult(st,ut,at)}function set25519(st,at){var ut;for(ut=0;ut<16;ut++)st[ut]=at[ut]|0}function inv25519(st,at){var ut=gf(),dt;for(dt=0;dt<16;++dt)ut[dt]=at[dt];for(dt=253;dt>=0;--dt)S$1(ut,ut),dt!==2&&dt!==4&&M$4(ut,ut,at);for(dt=0;dt<16;++dt)st[dt]=ut[dt]}function car25519(st){var at,ut,dt=1;for(at=0;at<16;++at)ut=st[at]+dt+65535,dt=Math.floor(ut/65536),st[at]=ut-dt*65536;st[0]+=dt-1+37*(dt-1)}function sel25519(st,at,ut){for(var dt,ct=~(ut-1),pt=0;pt<16;++pt)dt=ct&(st[pt]^at[pt]),st[pt]^=dt,at[pt]^=dt}function gf(st){var at,ut=new Float64Array(16);if(st)for(at=0;at0&&(ht=forge$4.util.fillString("\0",mt)+ht);var yt=ct.encrypt(ht,"NONE"),bt=st.generate(ht,pt);return{encapsulation:yt,key:bt}},dt.decrypt=function(ct,pt,ft){var ht=ct.decrypt(pt,"NONE");return st.generate(ht,ft)},dt};forge$4.kem.kdf1=function(st,at){_createKDF(this,st,0,at||st.digestLength)};forge$4.kem.kdf2=function(st,at){_createKDF(this,st,1,at||st.digestLength)};function _createKDF(st,at,ut,dt){st.generate=function(ct,pt){for(var ft=new forge$4.util.ByteBuffer,ht=Math.ceil(pt/dt)+ut,mt=new forge$4.util.ByteBuffer,yt=ut;yt"u"||at?st.flags|=forge$3.log.LEVEL_LOCKED:st.flags&=~forge$3.log.LEVEL_LOCKED};forge$3.log.addLogger=function(st){sLoggers.push(st)};if(typeof console<"u"&&"log"in console){var logger$1;if(console.error&&console.warn&&console.info&&console.debug){var levelHandlers={error:console.error,warning:console.warn,info:console.info,debug:console.debug,verbose:console.debug},f$4=function(st,at){forge$3.log.prepareStandard(at);var ut=levelHandlers[at.level],dt=[at.standard];dt=dt.concat(at.arguments.slice()),ut.apply(console,dt)};logger$1=forge$3.log.makeLogger(f$4)}else{var f$4=function(at,ut){forge$3.log.prepareStandardFull(ut),console.log(ut.standardFull)};logger$1=forge$3.log.makeLogger(f$4)}forge$3.log.setLevel(logger$1,"debug"),forge$3.log.addLogger(logger$1),sConsoleLogger=logger$1}else console={log:function(){}};if(sConsoleLogger!==null&&typeof window<"u"&&window.location){var query=new URL(window.location.href).searchParams;if(query.has("console.level")&&forge$3.log.setLevel(sConsoleLogger,query.get("console.level").slice(-1)[0]),query.has("console.lock")){var lock=query.get("console.lock").slice(-1)[0];lock=="true"&&forge$3.log.lock(sConsoleLogger)}}forge$3.log.consoleLogger=sConsoleLogger;var forge$2=forge$D,asn1=forge$2.asn1,p7=forge$2.pkcs7=forge$2.pkcs7||{};p7.messageFromPem=function(st){var at=forge$2.pem.decode(st)[0];if(at.type!=="PKCS7"){var ut=new Error('Could not convert PKCS#7 message from PEM; PEM header type is not "PKCS#7".');throw ut.headerType=at.type,ut}if(at.procType&&at.procType.type==="ENCRYPTED")throw new Error("Could not convert PKCS#7 message from PEM; PEM is encrypted.");var dt=asn1.fromDer(at.body);return p7.messageFromAsn1(dt)};p7.messageToPem=function(st,at){var ut={type:"PKCS7",body:asn1.toDer(st.toAsn1()).getBytes()};return forge$2.pem.encode(ut,{maxline:at})};p7.messageFromAsn1=function(st){var at={},ut=[];if(!asn1.validate(st,p7.asn1.contentInfoValidator,at,ut)){var dt=new Error("Cannot read PKCS#7 message. ASN.1 object is not an PKCS#7 ContentInfo.");throw dt.errors=ut,dt}var ct=asn1.derToOid(at.contentType),pt;switch(ct){case forge$2.pki.oids.envelopedData:pt=p7.createEnvelopedData();break;case forge$2.pki.oids.encryptedData:pt=p7.createEncryptedData();break;case forge$2.pki.oids.signedData:pt=p7.createSignedData();break;default:throw new Error("Cannot read PKCS#7 message. ContentType with OID "+ct+" is not (yet) supported.")}return pt.fromAsn1(at.content.value[0]),pt};p7.createSignedData=function(){var st=null;return st={type:forge$2.pki.oids.signedData,version:1,certificates:[],crls:[],signers:[],digestAlgorithmIdentifiers:[],contentInfo:null,signerInfos:[],fromAsn1:function(dt){if(_fromAsn1(st,dt,p7.asn1.signedDataValidator),st.certificates=[],st.crls=[],st.digestAlgorithmIdentifiers=[],st.contentInfo=null,st.signerInfos=[],st.rawCapture.certificates)for(var ct=st.rawCapture.certificates.value,pt=0;pt0&&ft.value[0].value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC,0,!0,dt)),pt.length>0&&ft.value[0].value.push(asn1.create(asn1.Class.CONTEXT_SPECIFIC,1,!0,pt)),ft.value[0].value.push(asn1.create(asn1.Class.UNIVERSAL,asn1.Type.SET,!0,st.signerInfos)),asn1.create(asn1.Class.UNIVERSAL,asn1.Type.SEQUENCE,!0,[asn1.create(asn1.Class.UNIVERSAL,asn1.Type.OID,!1,asn1.oidToDer(st.type).getBytes()),ft])},addSigner:function(dt){var ct=dt.issuer,pt=dt.serialNumber;if(dt.certificate){var ft=dt.certificate;typeof ft=="string"&&(ft=forge$2.pki.certificateFromPem(ft)),ct=ft.issuer.attributes,pt=ft.serialNumber}var ht=dt.key;if(!ht)throw new Error("Could not add PKCS#7 signer; no private key specified.");typeof ht=="string"&&(ht=forge$2.pki.privateKeyFromPem(ht));var mt=dt.digestAlgorithm||forge$2.pki.oids.sha1;switch(mt){case forge$2.pki.oids.sha1:case forge$2.pki.oids.sha256:case forge$2.pki.oids.sha384:case forge$2.pki.oids.sha512:case forge$2.pki.oids.md5:break;default:throw new Error("Could not add PKCS#7 signer; unknown message digest algorithm: "+mt)}var yt=dt.authenticatedAttributes||[];if(yt.length>0){for(var bt=!1,Tt=!1,St=0;St0){for(var ut=asn1.create(asn1.Class.CONTEXT_SPECIFIC,1,!0,[]),dt=0;dt=ut&&ct="8"&&(ut="00"+ut);var dt=forge$1.util.hexToBytes(ut);st.putInt32(dt.length),st.putBytes(dt)}function _addStringToBuffer(st,at){st.putInt32(at.length),st.putString(at)}function _sha1(){for(var st=forge$1.md.sha1.create(),at=arguments.length,ut=0;utsummary:first-of-type:not([inert])","details:not([inert])"],candidateSelector=candidateSelectors.join(","),NoElement=typeof Element>"u",matches=NoElement?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,getRootNode=!NoElement&&Element.prototype.getRootNode?function(st){var at;return st==null||(at=st.getRootNode)===null||at===void 0?void 0:at.call(st)}:function(st){return st==null?void 0:st.ownerDocument},isInert=function st(at,ut){var dt;ut===void 0&&(ut=!0);var ct=at==null||(dt=at.getAttribute)===null||dt===void 0?void 0:dt.call(at,"inert"),pt=ct===""||ct==="true",ft=pt||ut&&at&&st(at.parentNode);return ft},isContentEditable=function st(at){var ut,dt=at==null||(ut=at.getAttribute)===null||ut===void 0?void 0:ut.call(at,"contenteditable");return dt===""||dt==="true"},getCandidates=function st(at,ut,dt){if(isInert(at))return[];var ct=Array.prototype.slice.apply(at.querySelectorAll(candidateSelector));return ut&&matches.call(at,candidateSelector)&&ct.unshift(at),ct=ct.filter(dt),ct},getCandidatesIteratively=function st(at,ut,dt){for(var ct=[],pt=Array.from(at);pt.length;){var ft=pt.shift();if(!isInert(ft,!1))if(ft.tagName==="SLOT"){var ht=ft.assignedElements(),mt=ht.length?ht:ft.children,yt=st(mt,!0,dt);dt.flatten?ct.push.apply(ct,yt):ct.push({scopeParent:ft,candidates:yt})}else{var bt=matches.call(ft,candidateSelector);bt&&dt.filter(ft)&&(ut||!at.includes(ft))&&ct.push(ft);var Tt=ft.shadowRoot||typeof dt.getShadowRoot=="function"&&dt.getShadowRoot(ft),St=!isInert(Tt,!1)&&(!dt.shadowRootFilter||dt.shadowRootFilter(ft));if(Tt&&St){var At=st(Tt===!0?ft.children:Tt.children,!0,dt);dt.flatten?ct.push.apply(ct,At):ct.push({scopeParent:ft,candidates:At})}else pt.unshift.apply(pt,ft.children)}}return ct},hasTabIndex=function st(at){return!isNaN(parseInt(at.getAttribute("tabindex"),10))},getTabIndex=function st(at){if(!at)throw new Error("No node provided");return at.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(at.tagName)||isContentEditable(at))&&!hasTabIndex(at)?0:at.tabIndex},getSortOrderTabIndex=function st(at,ut){var dt=getTabIndex(at);return dt<0&&ut&&!hasTabIndex(at)?0:dt},sortOrderedTabbables=function st(at,ut){return at.tabIndex===ut.tabIndex?at.documentOrder-ut.documentOrder:at.tabIndex-ut.tabIndex},isInput=function st(at){return at.tagName==="INPUT"},isHiddenInput=function st(at){return isInput(at)&&at.type==="hidden"},isDetailsWithSummary=function st(at){var ut=at.tagName==="DETAILS"&&Array.prototype.slice.apply(at.children).some(function(dt){return dt.tagName==="SUMMARY"});return ut},getCheckedRadio=function st(at,ut){for(var dt=0;dtsummary:first-of-type"),ft=pt?at.parentElement:at;if(matches.call(ft,"details:not([open]) *"))return!0;if(!dt||dt==="full"||dt==="legacy-full"){if(typeof ct=="function"){for(var ht=at;at;){var mt=at.parentElement,yt=getRootNode(at);if(mt&&!mt.shadowRoot&&ct(mt)===!0)return isZeroArea(at);at.assignedSlot?at=at.assignedSlot:!mt&&yt!==at.ownerDocument?at=yt.host:at=mt}at=ht}if(isNodeAttached(at))return!at.getClientRects().length;if(dt!=="legacy-full")return!0}else if(dt==="non-zero-area")return isZeroArea(at);return!1},isDisabledFromFieldset=function st(at){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(at.tagName))for(var ut=at.parentElement;ut;){if(ut.tagName==="FIELDSET"&&ut.disabled){for(var dt=0;dt=0)},sortByOrder=function st(at){var ut=[],dt=[];return at.forEach(function(ct,pt){var ft=!!ct.scopeParent,ht=ft?ct.scopeParent:ct,mt=getSortOrderTabIndex(ht,ft),yt=ft?st(ct.candidates):ht;mt===0?ft?ut.push.apply(ut,yt):ut.push(ht):dt.push({documentOrder:pt,tabIndex:mt,item:ct,isScope:ft,content:yt})}),dt.sort(sortOrderedTabbables).reduce(function(ct,pt){return pt.isScope?ct.push.apply(ct,pt.content):ct.push(pt.content),ct},[]).concat(ut)},tabbable=function st(at,ut){ut=ut||{};var dt;return ut.getShadowRoot?dt=getCandidatesIteratively([at],ut.includeContainer,{filter:isNodeMatchingSelectorTabbable.bind(null,ut),flatten:!1,getShadowRoot:ut.getShadowRoot,shadowRootFilter:isValidShadowRootTabbable}):dt=getCandidates(at,ut.includeContainer,isNodeMatchingSelectorTabbable.bind(null,ut)),sortByOrder(dt)},focusable=function st(at,ut){ut=ut||{};var dt;return ut.getShadowRoot?dt=getCandidatesIteratively([at],ut.includeContainer,{filter:isNodeMatchingSelectorFocusable.bind(null,ut),flatten:!0,getShadowRoot:ut.getShadowRoot}):dt=getCandidates(at,ut.includeContainer,isNodeMatchingSelectorFocusable.bind(null,ut)),dt},isTabbable=function st(at,ut){if(ut=ut||{},!at)throw new Error("No node provided");return matches.call(at,candidateSelector)===!1?!1:isNodeMatchingSelectorTabbable(ut,at)},focusableCandidateSelector=candidateSelectors.concat("iframe").join(","),isFocusable$1=function st(at,ut){if(ut=ut||{},!at)throw new Error("No node provided");return matches.call(at,focusableCandidateSelector)===!1?!1:isNodeMatchingSelectorFocusable(ut,at)};const index_esm=Object.freeze(Object.defineProperty({__proto__:null,focusable,getTabIndex,isFocusable:isFocusable$1,isTabbable,tabbable},Symbol.toStringTag,{value:"Module"}));/*! * focus-trap 7.6.5 * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE */function _arrayLikeToArray(st,at){(at==null||at>st.length)&&(at=st.length);for(var ut=0,dt=Array(at);ut0){var dt=at[at.length-1];dt!==ut&&dt._setPausedState(!0)}var ct=at.indexOf(ut);ct===-1||at.splice(ct,1),at.push(ut)},deactivateTrap:function st(at,ut){var dt=at.indexOf(ut);dt!==-1&&at.splice(dt,1),at.length>0&&!at[at.length-1]._isManuallyPaused()&&at[at.length-1]._setPausedState(!1)}},isSelectableInput=function st(at){return at.tagName&&at.tagName.toLowerCase()==="input"&&typeof at.select=="function"},isEscapeEvent=function st(at){return(at==null?void 0:at.key)==="Escape"||(at==null?void 0:at.key)==="Esc"||(at==null?void 0:at.keyCode)===27},isTabEvent=function st(at){return(at==null?void 0:at.key)==="Tab"||(at==null?void 0:at.keyCode)===9},isKeyForward=function st(at){return isTabEvent(at)&&!at.shiftKey},isKeyBackward=function st(at){return isTabEvent(at)&&at.shiftKey},delay=function st(at){return setTimeout(at,0)},valueOrHandler=function st(at){for(var ut=arguments.length,dt=new Array(ut>1?ut-1:0),ct=1;ct1&&arguments[1]!==void 0?arguments[1]:{},Ft=jt.hasFallback,Vt=Ft===void 0?!1:Ft,Ht=jt.params,Kt=Ht===void 0?[]:Ht,Zt=pt[Yt];if(typeof Zt=="function"&&(Zt=Zt.apply(void 0,_toConsumableArray(Kt))),Zt===!0&&(Zt=void 0),!Zt){if(Zt===void 0||Zt===!1)return Zt;throw new Error("`".concat(Yt,"` was specified but was not a node, or did not return a node"))}var Wt=Zt;if(typeof Zt=="string"){try{Wt=dt.querySelector(Zt)}catch(Nt){throw new Error("`".concat(Yt,'` appears to be an invalid selector; error="').concat(Nt.message,'"'))}if(!Wt&&!Vt)throw new Error("`".concat(Yt,"` as selector refers to no known node"))}return Wt},Tt=function(){var Yt=bt("initialFocus",{hasFallback:!0});if(Yt===!1)return!1;if(Yt===void 0||Yt&&!isFocusable$1(Yt,pt.tabbableOptions))if(yt(dt.activeElement)>=0)Yt=dt.activeElement;else{var jt=ft.tabbableGroups[0],Ft=jt&&jt.firstTabbableNode;Yt=Ft||bt("fallbackFocus")}else Yt===null&&(Yt=bt("fallbackFocus"));if(!Yt)throw new Error("Your focus-trap needs to have at least one focusable element");return Yt},St=function(){if(ft.containerGroups=ft.containers.map(function(Yt){var jt=tabbable(Yt,pt.tabbableOptions),Ft=focusable(Yt,pt.tabbableOptions),Vt=jt.length>0?jt[0]:void 0,Ht=jt.length>0?jt[jt.length-1]:void 0,Kt=Ft.find(function(Nt){return isTabbable(Nt)}),Zt=Ft.slice().reverse().find(function(Nt){return isTabbable(Nt)}),Wt=!!jt.find(function(Nt){return getTabIndex(Nt)>0});return{container:Yt,tabbableNodes:jt,focusableNodes:Ft,posTabIndexesFound:Wt,firstTabbableNode:Vt,lastTabbableNode:Ht,firstDomTabbableNode:Kt,lastDomTabbableNode:Zt,nextTabbableNode:function(Rt){var Bt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,Pt=jt.indexOf(Rt);return Pt<0?Bt?Ft.slice(Ft.indexOf(Rt)+1).find(function(Ut){return isTabbable(Ut)}):Ft.slice(0,Ft.indexOf(Rt)).reverse().find(function(Ut){return isTabbable(Ut)}):jt[Pt+(Bt?1:-1)]}}}),ft.tabbableGroups=ft.containerGroups.filter(function(Yt){return Yt.tabbableNodes.length>0}),ft.tabbableGroups.length<=0&&!bt("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(ft.containerGroups.find(function(Yt){return Yt.posTabIndexesFound})&&ft.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},At=function(Yt){var jt=Yt.activeElement;if(jt)return jt.shadowRoot&&jt.shadowRoot.activeElement!==null?At(jt.shadowRoot):jt},vt=function(Yt){if(Yt!==!1&&Yt!==At(document)){if(!Yt||!Yt.focus){vt(Tt());return}Yt.focus({preventScroll:!!pt.preventScroll}),ft.mostRecentlyFocusedNode=Yt,isSelectableInput(Yt)&&Yt.select()}},Dt=function(Yt){var jt=bt("setReturnFocus",{params:[Yt]});return jt||(jt===!1?!1:Yt)},Et=function(Yt){var jt=Yt.target,Ft=Yt.event,Vt=Yt.isBackward,Ht=Vt===void 0?!1:Vt;jt=jt||getActualTarget(Ft),St();var Kt=null;if(ft.tabbableGroups.length>0){var Zt=yt(jt,Ft),Wt=Zt>=0?ft.containerGroups[Zt]:void 0;if(Zt<0)Ht?Kt=ft.tabbableGroups[ft.tabbableGroups.length-1].lastTabbableNode:Kt=ft.tabbableGroups[0].firstTabbableNode;else if(Ht){var Nt=ft.tabbableGroups.findIndex(function(Xt){var na=Xt.firstTabbableNode;return jt===na});if(Nt<0&&(Wt.container===jt||isFocusable$1(jt,pt.tabbableOptions)&&!isTabbable(jt,pt.tabbableOptions)&&!Wt.nextTabbableNode(jt,!1))&&(Nt=Zt),Nt>=0){var Rt=Nt===0?ft.tabbableGroups.length-1:Nt-1,Bt=ft.tabbableGroups[Rt];Kt=getTabIndex(jt)>=0?Bt.lastTabbableNode:Bt.lastDomTabbableNode}else isTabEvent(Ft)||(Kt=Wt.nextTabbableNode(jt,!1))}else{var Pt=ft.tabbableGroups.findIndex(function(Xt){var na=Xt.lastTabbableNode;return jt===na});if(Pt<0&&(Wt.container===jt||isFocusable$1(jt,pt.tabbableOptions)&&!isTabbable(jt,pt.tabbableOptions)&&!Wt.nextTabbableNode(jt))&&(Pt=Zt),Pt>=0){var Ut=Pt===ft.tabbableGroups.length-1?0:Pt+1,Gt=ft.tabbableGroups[Ut];Kt=getTabIndex(jt)>=0?Gt.firstTabbableNode:Gt.firstDomTabbableNode}else isTabEvent(Ft)||(Kt=Wt.nextTabbableNode(jt))}}else Kt=bt("fallbackFocus");return Kt},_t=function(Yt){var jt=getActualTarget(Yt);if(!(yt(jt,Yt)>=0)){if(valueOrHandler(pt.clickOutsideDeactivates,Yt)){ht.deactivate({returnFocus:pt.returnFocusOnDeactivate});return}valueOrHandler(pt.allowOutsideClick,Yt)||Yt.preventDefault()}},xt=function(Yt){var jt=getActualTarget(Yt),Ft=yt(jt,Yt)>=0;if(Ft||jt instanceof Document)Ft&&(ft.mostRecentlyFocusedNode=jt);else{Yt.stopImmediatePropagation();var Vt,Ht=!0;if(ft.mostRecentlyFocusedNode)if(getTabIndex(ft.mostRecentlyFocusedNode)>0){var Kt=yt(ft.mostRecentlyFocusedNode),Zt=ft.containerGroups[Kt].tabbableNodes;if(Zt.length>0){var Wt=Zt.findIndex(function(Nt){return Nt===ft.mostRecentlyFocusedNode});Wt>=0&&(pt.isKeyForward(ft.recentNavEvent)?Wt+1=0&&(Vt=Zt[Wt-1],Ht=!1))}}else ft.containerGroups.some(function(Nt){return Nt.tabbableNodes.some(function(Rt){return getTabIndex(Rt)>0})})||(Ht=!1);else Ht=!1;Ht&&(Vt=Et({target:ft.mostRecentlyFocusedNode,isBackward:pt.isKeyBackward(ft.recentNavEvent)})),vt(Vt||ft.mostRecentlyFocusedNode||Tt())}ft.recentNavEvent=void 0},Ct=function(Yt){var jt=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;ft.recentNavEvent=Yt;var Ft=Et({event:Yt,isBackward:jt});Ft&&(isTabEvent(Yt)&&Yt.preventDefault(),vt(Ft))},kt=function(Yt){(pt.isKeyForward(Yt)||pt.isKeyBackward(Yt))&&Ct(Yt,pt.isKeyBackward(Yt))},wt=function(Yt){isEscapeEvent(Yt)&&valueOrHandler(pt.escapeDeactivates,Yt)!==!1&&(Yt.preventDefault(),ht.deactivate())},$t=function(Yt){var jt=getActualTarget(Yt);yt(jt,Yt)>=0||valueOrHandler(pt.clickOutsideDeactivates,Yt)||valueOrHandler(pt.allowOutsideClick,Yt)||(Yt.preventDefault(),Yt.stopImmediatePropagation())},Lt=function(){if(ft.active)return activeFocusTraps.activateTrap(ct,ht),ft.delayInitialFocusTimer=pt.delayInitialFocus?delay(function(){vt(Tt())}):vt(Tt()),dt.addEventListener("focusin",xt,!0),dt.addEventListener("mousedown",_t,{capture:!0,passive:!1}),dt.addEventListener("touchstart",_t,{capture:!0,passive:!1}),dt.addEventListener("click",$t,{capture:!0,passive:!1}),dt.addEventListener("keydown",kt,{capture:!0,passive:!1}),dt.addEventListener("keydown",wt),ht},Ot=function(){if(ft.active)return dt.removeEventListener("focusin",xt,!0),dt.removeEventListener("mousedown",_t,!0),dt.removeEventListener("touchstart",_t,!0),dt.removeEventListener("click",$t,!0),dt.removeEventListener("keydown",kt,!0),dt.removeEventListener("keydown",wt),ht},zt=function(Yt){var jt=Yt.some(function(Ft){var Vt=Array.from(Ft.removedNodes);return Vt.some(function(Ht){return Ht===ft.mostRecentlyFocusedNode})});jt&&vt(Tt())},Mt=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(zt):void 0,qt=function(){Mt&&(Mt.disconnect(),ft.active&&!ft.paused&&ft.containers.map(function(Yt){Mt.observe(Yt,{subtree:!0,childList:!0})}))};return ht={get active(){return ft.active},get paused(){return ft.paused},activate:function(Yt){if(ft.active)return this;var jt=mt(Yt,"onActivate"),Ft=mt(Yt,"onPostActivate"),Vt=mt(Yt,"checkCanFocusTrap");Vt||St(),ft.active=!0,ft.paused=!1,ft.nodeFocusedBeforeActivation=At(dt),jt==null||jt();var Ht=function(){Vt&&St(),Lt(),qt(),Ft==null||Ft()};return Vt?(Vt(ft.containers.concat()).then(Ht,Ht),this):(Ht(),this)},deactivate:function(Yt){if(!ft.active)return this;var jt=_objectSpread2$1({onDeactivate:pt.onDeactivate,onPostDeactivate:pt.onPostDeactivate,checkCanReturnFocus:pt.checkCanReturnFocus},Yt);clearTimeout(ft.delayInitialFocusTimer),ft.delayInitialFocusTimer=void 0,Ot(),ft.active=!1,ft.paused=!1,qt(),activeFocusTraps.deactivateTrap(ct,ht);var Ft=mt(jt,"onDeactivate"),Vt=mt(jt,"onPostDeactivate"),Ht=mt(jt,"checkCanReturnFocus"),Kt=mt(jt,"returnFocus","returnFocusOnDeactivate");Ft==null||Ft();var Zt=function(){delay(function(){Kt&&vt(Dt(ft.nodeFocusedBeforeActivation)),Vt==null||Vt()})};return Kt&&Ht?(Ht(Dt(ft.nodeFocusedBeforeActivation)).then(Zt,Zt),this):(Zt(),this)},pause:function(Yt){return ft.active?(ft.manuallyPaused=!0,this._setPausedState(!0,Yt)):this},unpause:function(Yt){return ft.active?(ft.manuallyPaused=!1,ct[ct.length-1]!==this?this:this._setPausedState(!1,Yt)):this},updateContainerElements:function(Yt){var jt=[].concat(Yt).filter(Boolean);return ft.containers=jt.map(function(Ft){return typeof Ft=="string"?dt.querySelector(Ft):Ft}),ft.active&&St(),qt(),this}},Object.defineProperties(ht,{_isManuallyPaused:{value:function(){return ft.manuallyPaused}},_setPausedState:{value:function(Yt,jt){if(ft.paused===Yt)return this;if(ft.paused=Yt,Yt){var Ft=mt(jt,"onPause"),Vt=mt(jt,"onPostPause");Ft==null||Ft(),Ot(),qt(),Vt==null||Vt()}else{var Ht=mt(jt,"onUnpause"),Kt=mt(jt,"onPostUnpause");Ht==null||Ht(),St(),Lt(),qt(),Kt==null||Kt()}return this}}}),ht.updateContainerElements(at),ht};const focusTrap_esm=Object.freeze(Object.defineProperty({__proto__:null,createFocusTrap:createFocusTrap$1},Symbol.toStringTag,{value:"Module"})),require$$2=getAugmentedNamespace(focusTrap_esm),require$$3=getAugmentedNamespace(index_esm);function _typeof(st){"@babel/helpers - typeof";return _typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(at){return typeof at}:function(at){return at&&typeof Symbol=="function"&&at.constructor===Symbol&&at!==Symbol.prototype?"symbol":typeof at},_typeof(st)}function _classCallCheck(st,at){if(!(st instanceof at))throw new TypeError("Cannot call a class as a function")}function _defineProperties(st,at){for(var ut=0;ut1?yt-1:0),Tt=1;Tt element.");var pt=function(mt){var yt=dt.props.containerElements;ct&&(typeof ct.ref=="function"?ct.ref(mt):ct.ref&&(ct.ref.current=mt)),dt.focusTrapElements=yt||[mt]},ft=React.cloneElement(ct,{ref:pt});return ft}return null}}])}(React.Component),ElementType=typeof Element>"u"?Function:Element;FocusTrap.propTypes={active:PropTypes.bool,paused:PropTypes.bool,focusTrapOptions:PropTypes.shape({document:PropTypes.object,onActivate:PropTypes.func,onPostActivate:PropTypes.func,checkCanFocusTrap:PropTypes.func,onPause:PropTypes.func,onPostPause:PropTypes.func,onUnpause:PropTypes.func,onPostUnpause:PropTypes.func,onDeactivate:PropTypes.func,onPostDeactivate:PropTypes.func,checkCanReturnFocus:PropTypes.func,initialFocus:PropTypes.oneOfType([PropTypes.instanceOf(ElementType),PropTypes.string,PropTypes.bool,PropTypes.func]),fallbackFocus:PropTypes.oneOfType([PropTypes.instanceOf(ElementType),PropTypes.string,PropTypes.func]),escapeDeactivates:PropTypes.oneOfType([PropTypes.bool,PropTypes.func]),clickOutsideDeactivates:PropTypes.oneOfType([PropTypes.bool,PropTypes.func]),returnFocusOnDeactivate:PropTypes.bool,setReturnFocus:PropTypes.oneOfType([PropTypes.instanceOf(ElementType),PropTypes.string,PropTypes.bool,PropTypes.func]),allowOutsideClick:PropTypes.oneOfType([PropTypes.bool,PropTypes.func]),preventScroll:PropTypes.bool,tabbableOptions:PropTypes.shape({displayCheck:PropTypes.oneOf(["full","legacy-full","non-zero-area","none"]),getShadowRoot:PropTypes.oneOfType([PropTypes.bool,PropTypes.func])}),trapStack:PropTypes.array,isKeyForward:PropTypes.func,isKeyBackward:PropTypes.func}),containerElements:PropTypes.arrayOf(PropTypes.instanceOf(ElementType)),children:PropTypes.oneOfType([PropTypes.element,PropTypes.instanceOf(ElementType)])};FocusTrap.defaultProps={active:!0,paused:!1,focusTrapOptions:{},_createFocusTrap:createFocusTrap};var focusTrapReact=FocusTrap;const FocusTrap$1=getDefaultExportFromCjs$1(focusTrapReact);var i$4=Object.defineProperty,d$3=(st,at,ut)=>at in st?i$4(st,at,{enumerable:!0,configurable:!0,writable:!0,value:ut}):st[at]=ut,r$1=(st,at,ut)=>(d$3(st,typeof at!="symbol"?at+"":at,ut),ut);let o$7=class{constructor(){r$1(this,"current",this.detect()),r$1(this,"handoffState","pending"),r$1(this,"currentId",0)}set(at){this.current!==at&&(this.handoffState="pending",this.currentId=0,this.current=at)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current==="server"}get isClient(){return this.current==="client"}detect(){return typeof window>"u"||typeof document>"u"?"server":"client"}handoff(){this.handoffState==="pending"&&(this.handoffState="complete")}get isHandoffComplete(){return this.handoffState==="complete"}},s$7=new o$7,l$3=(st,at)=>{s$7.isServer?reactExports.useEffect(st,at):reactExports.useLayoutEffect(st,at)};function s$6(st){let at=reactExports.useRef(st);return l$3(()=>{at.current=st},[st]),at}function i$3(st,at){let[ut,dt]=reactExports.useState(st),ct=s$6(st);return l$3(()=>dt(ct.current),[ct,dt,...at]),ut}let o$6=function(st){let at=s$6(st);return React$3.useCallback((...ut)=>at.current(...ut),[at])};function T$3(st,at,ut){let[dt,ct]=reactExports.useState(ut),pt=st!==void 0,ft=reactExports.useRef(pt),ht=reactExports.useRef(!1),mt=reactExports.useRef(!1);return pt&&!ft.current&&!ht.current?(ht.current=!0,ft.current=pt,console.error("A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.")):!pt&&ft.current&&!mt.current&&(mt.current=!0,ft.current=pt,console.error("A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.")),[pt?st:dt,o$6(yt=>(pt||ct(yt),at==null?void 0:at(yt)))]}function t$3(st){typeof queueMicrotask=="function"?queueMicrotask(st):Promise.resolve().then(st).catch(at=>setTimeout(()=>{throw at}))}function o$5(){let st=[],at={addEventListener(ut,dt,ct,pt){return ut.addEventListener(dt,ct,pt),at.add(()=>ut.removeEventListener(dt,ct,pt))},requestAnimationFrame(...ut){let dt=requestAnimationFrame(...ut);return at.add(()=>cancelAnimationFrame(dt))},nextFrame(...ut){return at.requestAnimationFrame(()=>at.requestAnimationFrame(...ut))},setTimeout(...ut){let dt=setTimeout(...ut);return at.add(()=>clearTimeout(dt))},microTask(...ut){let dt={current:!0};return t$3(()=>{dt.current&&ut[0]()}),at.add(()=>{dt.current=!1})},style(ut,dt,ct){let pt=ut.style.getPropertyValue(dt);return Object.assign(ut.style,{[dt]:ct}),this.add(()=>{Object.assign(ut.style,{[dt]:pt})})},group(ut){let dt=o$5();return ut(dt),this.add(()=>dt.dispose())},add(ut){return st.push(ut),()=>{let dt=st.indexOf(ut);if(dt>=0)for(let ct of st.splice(dt,1))ct()}},dispose(){for(let ut of st.splice(0))ut()}};return at}function p$2(){let[st]=reactExports.useState(o$5);return reactExports.useEffect(()=>()=>st.dispose(),[st]),st}function s$5(){let st=typeof document>"u";return"useSyncExternalStore"in e$2?(at=>at.useSyncExternalStore)(e$2)(()=>()=>{},()=>!1,()=>!st):!1}function l$2(){let st=s$5(),[at,ut]=reactExports.useState(s$7.isHandoffComplete);return at&&s$7.isHandoffComplete===!1&&ut(!1),reactExports.useEffect(()=>{at!==!0&&ut(!0)},[at]),reactExports.useEffect(()=>s$7.handoff(),[]),st?!1:at}var o$4;let I$3=(o$4=React$3.useId)!=null?o$4:function(){let st=l$2(),[at,ut]=React$3.useState(st?()=>s$7.nextId():null);return l$3(()=>{at===null&&ut(s$7.nextId())},[at]),at!=null?""+at:void 0};function u$5(st,at,...ut){if(st in at){let ct=at[st];return typeof ct=="function"?ct(...ut):ct}let dt=new Error(`Tried to handle "${st}" but there is no handler defined. Only defined handlers are: ${Object.keys(at).map(ct=>`"${ct}"`).join(", ")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(dt,u$5),dt}function o$3(st){return s$7.isServer?null:st instanceof Node?st.ownerDocument:st!=null&&st.hasOwnProperty("current")&&st.current instanceof Node?st.current.ownerDocument:document}let c$2=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(st=>`${st}:not([tabindex='-1'])`).join(",");var M$3=(st=>(st[st.First=1]="First",st[st.Previous=2]="Previous",st[st.Next=4]="Next",st[st.Last=8]="Last",st[st.WrapAround=16]="WrapAround",st[st.NoScroll=32]="NoScroll",st))(M$3||{}),N$1=(st=>(st[st.Error=0]="Error",st[st.Overflow=1]="Overflow",st[st.Success=2]="Success",st[st.Underflow=3]="Underflow",st))(N$1||{}),F$2=(st=>(st[st.Previous=-1]="Previous",st[st.Next=1]="Next",st))(F$2||{}),T$2=(st=>(st[st.Strict=0]="Strict",st[st.Loose=1]="Loose",st))(T$2||{});function h$1(st,at=0){var ut;return st===((ut=o$3(st))==null?void 0:ut.body)?!1:u$5(at,{0(){return st.matches(c$2)},1(){let dt=st;for(;dt!==null;){if(dt.matches(c$2))return!0;dt=dt.parentElement}return!1}})}var w$2=(st=>(st[st.Keyboard=0]="Keyboard",st[st.Mouse=1]="Mouse",st))(w$2||{});typeof window<"u"&&typeof document<"u"&&(document.addEventListener("keydown",st=>{st.metaKey||st.altKey||st.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",st=>{st.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:st.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));function I$2(st,at=ut=>ut){return st.slice().sort((ut,dt)=>{let ct=at(ut),pt=at(dt);if(ct===null||pt===null)return 0;let ft=ct.compareDocumentPosition(pt);return ft&Node.DOCUMENT_POSITION_FOLLOWING?-1:ft&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function t$2(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function i$2(){return/Android/gi.test(window.navigator.userAgent)}function n$1(){return t$2()||i$2()}function d$2(st,at,ut){let dt=s$6(at);reactExports.useEffect(()=>{function ct(pt){dt.current(pt)}return document.addEventListener(st,ct,ut),()=>document.removeEventListener(st,ct,ut)},[st,ut])}function s$4(st,at,ut){let dt=s$6(at);reactExports.useEffect(()=>{function ct(pt){dt.current(pt)}return window.addEventListener(st,ct,ut),()=>window.removeEventListener(st,ct,ut)},[st,ut])}function y$2(st,at,ut=!0){let dt=reactExports.useRef(!1);reactExports.useEffect(()=>{requestAnimationFrame(()=>{dt.current=ut})},[ut]);function ct(ft,ht){if(!dt.current||ft.defaultPrevented)return;let mt=ht(ft);if(mt===null||!mt.getRootNode().contains(mt)||!mt.isConnected)return;let yt=function bt(Tt){return typeof Tt=="function"?bt(Tt()):Array.isArray(Tt)||Tt instanceof Set?Tt:[Tt]}(st);for(let bt of yt){if(bt===null)continue;let Tt=bt instanceof HTMLElement?bt:bt.current;if(Tt!=null&&Tt.contains(mt)||ft.composed&&ft.composedPath().includes(Tt))return}return!h$1(mt,T$2.Loose)&&mt.tabIndex!==-1&&ft.preventDefault(),at(ft,mt)}let pt=reactExports.useRef(null);d$2("pointerdown",ft=>{var ht,mt;dt.current&&(pt.current=((mt=(ht=ft.composedPath)==null?void 0:ht.call(ft))==null?void 0:mt[0])||ft.target)},!0),d$2("mousedown",ft=>{var ht,mt;dt.current&&(pt.current=((mt=(ht=ft.composedPath)==null?void 0:ht.call(ft))==null?void 0:mt[0])||ft.target)},!0),d$2("click",ft=>{n$1()||pt.current&&(ct(ft,()=>pt.current),pt.current=null)},!0),d$2("touchend",ft=>ct(ft,()=>ft.target instanceof HTMLElement?ft.target:null),!0),s$4("blur",ft=>ct(ft,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}function i$1(st){var at;if(st.type)return st.type;let ut=(at=st.as)!=null?at:"button";if(typeof ut=="string"&&ut.toLowerCase()==="button")return"button"}function T$1(st,at){let[ut,dt]=reactExports.useState(()=>i$1(st));return l$3(()=>{dt(i$1(st))},[st.type,st.as]),l$3(()=>{ut||at.current&&at.current instanceof HTMLButtonElement&&!at.current.hasAttribute("type")&&dt("button")},[ut,at]),ut}let u$4=Symbol();function y$1(...st){let at=reactExports.useRef(st);reactExports.useEffect(()=>{at.current=st},[st]);let ut=o$6(dt=>{for(let ct of at.current)ct!=null&&(typeof ct=="function"?ct(dt):ct.current=dt)});return st.every(dt=>dt==null||(dt==null?void 0:dt[u$4]))?void 0:ut}function t$1(st){return[st.screenX,st.screenY]}function u$3(){let st=reactExports.useRef([-1,-1]);return{wasMoved(at){let ut=t$1(at);return st.current[0]===ut[0]&&st.current[1]===ut[1]?!1:(st.current=ut,!0)},update(at){st.current=t$1(at)}}}function t(...st){return Array.from(new Set(st.flatMap(at=>typeof at=="string"?at.split(" "):[]))).filter(Boolean).join(" ")}var O$1=(st=>(st[st.None=0]="None",st[st.RenderStrategy=1]="RenderStrategy",st[st.Static=2]="Static",st))(O$1||{}),v$2=(st=>(st[st.Unmount=0]="Unmount",st[st.Hidden=1]="Hidden",st))(v$2||{});function C$1({ourProps:st,theirProps:at,slot:ut,defaultTag:dt,features:ct,visible:pt=!0,name:ft,mergeRefs:ht}){ht=ht??k$2;let mt=R$1(at,st);if(pt)return m$1(mt,ut,dt,ft,ht);let yt=ct??0;if(yt&2){let{static:bt=!1,...Tt}=mt;if(bt)return m$1(Tt,ut,dt,ft,ht)}if(yt&1){let{unmount:bt=!0,...Tt}=mt;return u$5(bt?0:1,{0(){return null},1(){return m$1({...Tt,hidden:!0,style:{display:"none"}},ut,dt,ft,ht)}})}return m$1(mt,ut,dt,ft,ht)}function m$1(st,at={},ut,dt,ct){let{as:pt=ut,children:ft,refName:ht="ref",...mt}=F$1(st,["unmount","static"]),yt=st.ref!==void 0?{[ht]:st.ref}:{},bt=typeof ft=="function"?ft(at):ft;"className"in mt&&mt.className&&typeof mt.className=="function"&&(mt.className=mt.className(at));let Tt={};if(at){let St=!1,At=[];for(let[vt,Dt]of Object.entries(at))typeof Dt=="boolean"&&(St=!0),Dt===!0&&At.push(vt);St&&(Tt["data-headlessui-state"]=At.join(" "))}if(pt===reactExports.Fragment&&Object.keys(x$1(mt)).length>0){if(!reactExports.isValidElement(bt)||Array.isArray(bt)&&bt.length>1)throw new Error(['Passing props on "Fragment"!',"",`The current component <${dt} /> is rendering a "Fragment".`,"However we need to passthrough the following props:",Object.keys(mt).map(Dt=>` - ${Dt}`).join(` `),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(Dt=>` - ${Dt}`).join(` `)].join(` `));let St=bt.props,At=typeof(St==null?void 0:St.className)=="function"?(...Dt)=>t(St==null?void 0:St.className(...Dt),mt.className):t(St==null?void 0:St.className,mt.className),vt=At?{className:At}:{};return reactExports.cloneElement(bt,Object.assign({},R$1(bt.props,x$1(F$1(mt,["ref"]))),Tt,yt,{ref:ct(bt.ref,yt.ref)},vt))}return reactExports.createElement(pt,Object.assign({},F$1(mt,["ref"]),pt!==reactExports.Fragment&&yt,pt!==reactExports.Fragment&&Tt),bt)}function k$2(...st){return st.every(at=>at==null)?void 0:at=>{for(let ut of st)ut!=null&&(typeof ut=="function"?ut(at):ut.current=at)}}function R$1(...st){if(st.length===0)return{};if(st.length===1)return st[0];let at={},ut={};for(let dt of st)for(let ct in dt)ct.startsWith("on")&&typeof dt[ct]=="function"?(ut[ct]!=null||(ut[ct]=[]),ut[ct].push(dt[ct])):at[ct]=dt[ct];if(at.disabled||at["aria-disabled"])return Object.assign(at,Object.fromEntries(Object.keys(ut).map(dt=>[dt,void 0])));for(let dt in ut)Object.assign(at,{[dt](ct,...pt){let ft=ut[dt];for(let ht of ft){if((ct instanceof Event||(ct==null?void 0:ct.nativeEvent)instanceof Event)&&ct.defaultPrevented)return;ht(ct,...pt)}}});return at}function U$1(st){var at;return Object.assign(reactExports.forwardRef(st),{displayName:(at=st.displayName)!=null?at:st.name})}function x$1(st){let at=Object.assign({},st);for(let ut in at)at[ut]===void 0&&delete at[ut];return at}function F$1(st,at=[]){let ut=Object.assign({},st);for(let dt of at)dt in ut&&delete ut[dt];return ut}let p$1="div";var s$3=(st=>(st[st.None=1]="None",st[st.Focusable=2]="Focusable",st[st.Hidden=4]="Hidden",st))(s$3||{});function l$1(st,at){var ut;let{features:dt=1,...ct}=st,pt={ref:at,"aria-hidden":(dt&2)===2?!0:(ut=ct["aria-hidden"])!=null?ut:void 0,hidden:(dt&4)===4?!0:void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(dt&4)===4&&(dt&2)!==2&&{display:"none"}}};return C$1({ourProps:pt,theirProps:ct,slot:{},defaultTag:p$1,name:"Hidden"})}let u$2=U$1(l$1),n=reactExports.createContext(null);n.displayName="OpenClosedContext";var d$1=(st=>(st[st.Open=1]="Open",st[st.Closed=2]="Closed",st[st.Closing=4]="Closing",st[st.Opening=8]="Opening",st))(d$1||{});function u$1(){return reactExports.useContext(n)}function s$2({value:st,children:at}){return React$3.createElement(n.Provider,{value:st},at)}function r(st){let at=st.parentElement,ut=null;for(;at&&!(at instanceof HTMLFieldSetElement);)at instanceof HTMLLegendElement&&(ut=at),at=at.parentElement;let dt=(at==null?void 0:at.getAttribute("disabled"))==="";return dt&&i(ut)?!1:dt}function i(st){if(!st)return!1;let at=st.previousElementSibling;for(;at!==null;){if(at instanceof HTMLLegendElement)return!1;at=at.previousElementSibling}return!0}function u(st){throw new Error("Unexpected object: "+st)}var c$1=(st=>(st[st.First=0]="First",st[st.Previous=1]="Previous",st[st.Next=2]="Next",st[st.Last=3]="Last",st[st.Specific=4]="Specific",st[st.Nothing=5]="Nothing",st))(c$1||{});function f$3(st,at){let ut=at.resolveItems();if(ut.length<=0)return null;let dt=at.resolveActiveIndex(),ct=dt??-1;switch(st.focus){case 0:{for(let pt=0;pt=0;--pt)if(!at.resolveDisabled(ut[pt],pt,ut))return pt;return dt}case 2:{for(let pt=ct+1;pt=0;--pt)if(!at.resolveDisabled(ut[pt],pt,ut))return pt;return dt}case 4:{for(let pt=0;pt(st.Space=" ",st.Enter="Enter",st.Escape="Escape",st.Backspace="Backspace",st.Delete="Delete",st.ArrowLeft="ArrowLeft",st.ArrowUp="ArrowUp",st.ArrowRight="ArrowRight",st.ArrowDown="ArrowDown",st.Home="Home",st.End="End",st.PageUp="PageUp",st.PageDown="PageDown",st.Tab="Tab",st))(o$1||{});function f$1(){let st=reactExports.useRef(!1);return l$3(()=>(st.current=!0,()=>{st.current=!1}),[]),st}let a=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function o(st){var at,ut;let dt=(at=st.innerText)!=null?at:"",ct=st.cloneNode(!0);if(!(ct instanceof HTMLElement))return dt;let pt=!1;for(let ht of ct.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))ht.remove(),pt=!0;let ft=pt?(ut=ct.innerText)!=null?ut:"":dt;return a.test(ft)&&(ft=ft.replace(a,"")),ft}function g$2(st){let at=st.getAttribute("aria-label");if(typeof at=="string")return at.trim();let ut=st.getAttribute("aria-labelledby");if(ut){let dt=ut.split(" ").map(ct=>{let pt=document.getElementById(ct);if(pt){let ft=pt.getAttribute("aria-label");return typeof ft=="string"?ft.trim():o(pt).trim()}return null}).filter(Boolean);if(dt.length>0)return dt.join(", ")}return o(st).trim()}function s$1(st){let at=reactExports.useRef(""),ut=reactExports.useRef("");return o$6(()=>{let dt=st.current;if(!dt)return"";let ct=dt.innerText;if(at.current===ct)return ut.current;let pt=g$2(dt).trim().toLowerCase();return at.current=ct,ut.current=pt,pt})}var Be=(st=>(st[st.Open=0]="Open",st[st.Closed=1]="Closed",st))(Be||{}),He$1=(st=>(st[st.Single=0]="Single",st[st.Multi=1]="Multi",st))(He$1||{}),Ge=(st=>(st[st.Pointer=0]="Pointer",st[st.Other=1]="Other",st))(Ge||{}),Ne$1=(st=>(st[st.OpenListbox=0]="OpenListbox",st[st.CloseListbox=1]="CloseListbox",st[st.GoToOption=2]="GoToOption",st[st.Search=3]="Search",st[st.ClearSearch=4]="ClearSearch",st[st.RegisterOption=5]="RegisterOption",st[st.UnregisterOption=6]="UnregisterOption",st[st.RegisterLabel=7]="RegisterLabel",st))(Ne$1||{});function z$1(st,at=ut=>ut){let ut=st.activeOptionIndex!==null?st.options[st.activeOptionIndex]:null,dt=I$2(at(st.options.slice()),pt=>pt.dataRef.current.domRef.current),ct=ut?dt.indexOf(ut):null;return ct===-1&&(ct=null),{options:dt,activeOptionIndex:ct}}let je={1(st){return st.dataRef.current.disabled||st.listboxState===1?st:{...st,activeOptionIndex:null,listboxState:1}},0(st){if(st.dataRef.current.disabled||st.listboxState===0)return st;let at=st.activeOptionIndex,{isSelected:ut}=st.dataRef.current,dt=st.options.findIndex(ct=>ut(ct.dataRef.current.value));return dt!==-1&&(at=dt),{...st,listboxState:0,activeOptionIndex:at}},2(st,at){var ut;if(st.dataRef.current.disabled||st.listboxState===1)return st;let dt=z$1(st),ct=f$3(at,{resolveItems:()=>dt.options,resolveActiveIndex:()=>dt.activeOptionIndex,resolveId:pt=>pt.id,resolveDisabled:pt=>pt.dataRef.current.disabled});return{...st,...dt,searchQuery:"",activeOptionIndex:ct,activationTrigger:(ut=at.trigger)!=null?ut:1}},3:(st,at)=>{if(st.dataRef.current.disabled||st.listboxState===1)return st;let ut=st.searchQuery!==""?0:1,dt=st.searchQuery+at.value.toLowerCase(),ct=(st.activeOptionIndex!==null?st.options.slice(st.activeOptionIndex+ut).concat(st.options.slice(0,st.activeOptionIndex+ut)):st.options).find(ft=>{var ht;return!ft.dataRef.current.disabled&&((ht=ft.dataRef.current.textValue)==null?void 0:ht.startsWith(dt))}),pt=ct?st.options.indexOf(ct):-1;return pt===-1||pt===st.activeOptionIndex?{...st,searchQuery:dt}:{...st,searchQuery:dt,activeOptionIndex:pt,activationTrigger:1}},4(st){return st.dataRef.current.disabled||st.listboxState===1||st.searchQuery===""?st:{...st,searchQuery:""}},5:(st,at)=>{let ut={id:at.id,dataRef:at.dataRef},dt=z$1(st,ct=>[...ct,ut]);return st.activeOptionIndex===null&&st.dataRef.current.isSelected(at.dataRef.current.value)&&(dt.activeOptionIndex=dt.options.indexOf(ut)),{...st,...dt}},6:(st,at)=>{let ut=z$1(st,dt=>{let ct=dt.findIndex(pt=>pt.id===at.id);return ct!==-1&&dt.splice(ct,1),dt});return{...st,...ut,activationTrigger:1}},7:(st,at)=>({...st,labelId:at.id})},J$1=reactExports.createContext(null);J$1.displayName="ListboxActionsContext";function k$1(st){let at=reactExports.useContext(J$1);if(at===null){let ut=new Error(`<${st} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(ut,k$1),ut}return at}let q$2=reactExports.createContext(null);q$2.displayName="ListboxDataContext";function w$1(st){let at=reactExports.useContext(q$2);if(at===null){let ut=new Error(`<${st} /> is missing a parent component.`);throw Error.captureStackTrace&&Error.captureStackTrace(ut,w$1),ut}return at}function Ve(st,at){return u$5(at.type,je,st,at)}let Ke=reactExports.Fragment;function Qe(st,at){let{value:ut,defaultValue:dt,form:ct,name:pt,onChange:ft,by:ht=(Pt,Ut)=>Pt===Ut,disabled:mt=!1,horizontal:yt=!1,multiple:bt=!1,...Tt}=st;const St=yt?"horizontal":"vertical";let At=y$1(at),[vt=bt?[]:void 0,Dt]=T$3(ut,ft,dt),[Et,_t]=reactExports.useReducer(Ve,{dataRef:reactExports.createRef(),listboxState:1,options:[],searchQuery:"",labelId:null,activeOptionIndex:null,activationTrigger:1}),xt=reactExports.useRef({static:!1,hold:!1}),Ct=reactExports.useRef(null),kt=reactExports.useRef(null),wt=reactExports.useRef(null),$t=o$6(typeof ht=="string"?(Pt,Ut)=>{let Gt=ht;return(Pt==null?void 0:Pt[Gt])===(Ut==null?void 0:Ut[Gt])}:ht),Lt=reactExports.useCallback(Pt=>u$5(Ot.mode,{1:()=>vt.some(Ut=>$t(Ut,Pt)),0:()=>$t(vt,Pt)}),[vt]),Ot=reactExports.useMemo(()=>({...Et,value:vt,disabled:mt,mode:bt?1:0,orientation:St,compare:$t,isSelected:Lt,optionsPropsRef:xt,labelRef:Ct,buttonRef:kt,optionsRef:wt}),[vt,mt,bt,Et]);l$3(()=>{Et.dataRef.current=Ot},[Ot]),y$2([Ot.buttonRef,Ot.optionsRef],(Pt,Ut)=>{var Gt;_t({type:1}),h$1(Ut,T$2.Loose)||(Pt.preventDefault(),(Gt=Ot.buttonRef.current)==null||Gt.focus())},Ot.listboxState===0);let zt=reactExports.useMemo(()=>({open:Ot.listboxState===0,disabled:mt,value:vt}),[Ot,mt,vt]),Mt=o$6(Pt=>{let Ut=Ot.options.find(Gt=>Gt.id===Pt);Ut&&Ht(Ut.dataRef.current.value)}),qt=o$6(()=>{if(Ot.activeOptionIndex!==null){let{dataRef:Pt,id:Ut}=Ot.options[Ot.activeOptionIndex];Ht(Pt.current.value),_t({type:2,focus:c$1.Specific,id:Ut})}}),Qt=o$6(()=>_t({type:0})),Yt=o$6(()=>_t({type:1})),jt=o$6((Pt,Ut,Gt)=>Pt===c$1.Specific?_t({type:2,focus:c$1.Specific,id:Ut,trigger:Gt}):_t({type:2,focus:Pt,trigger:Gt})),Ft=o$6((Pt,Ut)=>(_t({type:5,id:Pt,dataRef:Ut}),()=>_t({type:6,id:Pt}))),Vt=o$6(Pt=>(_t({type:7,id:Pt}),()=>_t({type:7,id:null}))),Ht=o$6(Pt=>u$5(Ot.mode,{0(){return Dt==null?void 0:Dt(Pt)},1(){let Ut=Ot.value.slice(),Gt=Ut.findIndex(Xt=>$t(Xt,Pt));return Gt===-1?Ut.push(Pt):Ut.splice(Gt,1),Dt==null?void 0:Dt(Ut)}})),Kt=o$6(Pt=>_t({type:3,value:Pt})),Zt=o$6(()=>_t({type:4})),Wt=reactExports.useMemo(()=>({onChange:Ht,registerOption:Ft,registerLabel:Vt,goToOption:jt,closeListbox:Yt,openListbox:Qt,selectActiveOption:qt,selectOption:Mt,search:Kt,clearSearch:Zt}),[]),Nt={ref:At},Rt=reactExports.useRef(null),Bt=p$2();return reactExports.useEffect(()=>{Rt.current&&dt!==void 0&&Bt.addEventListener(Rt.current,"reset",()=>{Dt==null||Dt(dt)})},[Rt,Dt]),React$3.createElement(J$1.Provider,{value:Wt},React$3.createElement(q$2.Provider,{value:Ot},React$3.createElement(s$2,{value:u$5(Ot.listboxState,{0:d$1.Open,1:d$1.Closed})},pt!=null&&vt!=null&&e({[pt]:vt}).map(([Pt,Ut],Gt)=>React$3.createElement(u$2,{features:s$3.Hidden,ref:Gt===0?Xt=>{var na;Rt.current=(na=Xt==null?void 0:Xt.closest("form"))!=null?na:null}:void 0,...x$1({key:Pt,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:ct,disabled:mt,name:Pt,value:Ut})})),C$1({ourProps:Nt,theirProps:Tt,slot:zt,defaultTag:Ke,name:"Listbox"}))))}let We="button";function Xe(st,at){var ut;let dt=I$3(),{id:ct=`headlessui-listbox-button-${dt}`,...pt}=st,ft=w$1("Listbox.Button"),ht=k$1("Listbox.Button"),mt=y$1(ft.buttonRef,at),yt=p$2(),bt=o$6(Et=>{switch(Et.key){case o$1.Space:case o$1.Enter:case o$1.ArrowDown:Et.preventDefault(),ht.openListbox(),yt.nextFrame(()=>{ft.value||ht.goToOption(c$1.First)});break;case o$1.ArrowUp:Et.preventDefault(),ht.openListbox(),yt.nextFrame(()=>{ft.value||ht.goToOption(c$1.Last)});break}}),Tt=o$6(Et=>{switch(Et.key){case o$1.Space:Et.preventDefault();break}}),St=o$6(Et=>{if(r(Et.currentTarget))return Et.preventDefault();ft.listboxState===0?(ht.closeListbox(),yt.nextFrame(()=>{var _t;return(_t=ft.buttonRef.current)==null?void 0:_t.focus({preventScroll:!0})})):(Et.preventDefault(),ht.openListbox())}),At=i$3(()=>{if(ft.labelId)return[ft.labelId,ct].join(" ")},[ft.labelId,ct]),vt=reactExports.useMemo(()=>({open:ft.listboxState===0,disabled:ft.disabled,value:ft.value}),[ft]),Dt={ref:mt,id:ct,type:T$1(st,ft.buttonRef),"aria-haspopup":"listbox","aria-controls":(ut=ft.optionsRef.current)==null?void 0:ut.id,"aria-expanded":ft.listboxState===0,"aria-labelledby":At,disabled:ft.disabled,onKeyDown:bt,onKeyUp:Tt,onClick:St};return C$1({ourProps:Dt,theirProps:pt,slot:vt,defaultTag:We,name:"Listbox.Button"})}let $e="label";function ze(st,at){let ut=I$3(),{id:dt=`headlessui-listbox-label-${ut}`,...ct}=st,pt=w$1("Listbox.Label"),ft=k$1("Listbox.Label"),ht=y$1(pt.labelRef,at);l$3(()=>ft.registerLabel(dt),[dt]);let mt=o$6(()=>{var bt;return(bt=pt.buttonRef.current)==null?void 0:bt.focus({preventScroll:!0})}),yt=reactExports.useMemo(()=>({open:pt.listboxState===0,disabled:pt.disabled}),[pt]);return C$1({ourProps:{ref:ht,id:dt,onClick:mt},theirProps:ct,slot:yt,defaultTag:$e,name:"Listbox.Label"})}let Je="ul",qe$1=O$1.RenderStrategy|O$1.Static;function Ye(st,at){var ut;let dt=I$3(),{id:ct=`headlessui-listbox-options-${dt}`,...pt}=st,ft=w$1("Listbox.Options"),ht=k$1("Listbox.Options"),mt=y$1(ft.optionsRef,at),yt=p$2(),bt=p$2(),Tt=u$1(),St=Tt!==null?(Tt&d$1.Open)===d$1.Open:ft.listboxState===0;reactExports.useEffect(()=>{var _t;let xt=ft.optionsRef.current;xt&&ft.listboxState===0&&xt!==((_t=o$3(xt))==null?void 0:_t.activeElement)&&xt.focus({preventScroll:!0})},[ft.listboxState,ft.optionsRef]);let At=o$6(_t=>{switch(bt.dispose(),_t.key){case o$1.Space:if(ft.searchQuery!=="")return _t.preventDefault(),_t.stopPropagation(),ht.search(_t.key);case o$1.Enter:if(_t.preventDefault(),_t.stopPropagation(),ft.activeOptionIndex!==null){let{dataRef:xt}=ft.options[ft.activeOptionIndex];ht.onChange(xt.current.value)}ft.mode===0&&(ht.closeListbox(),o$5().nextFrame(()=>{var xt;return(xt=ft.buttonRef.current)==null?void 0:xt.focus({preventScroll:!0})}));break;case u$5(ft.orientation,{vertical:o$1.ArrowDown,horizontal:o$1.ArrowRight}):return _t.preventDefault(),_t.stopPropagation(),ht.goToOption(c$1.Next);case u$5(ft.orientation,{vertical:o$1.ArrowUp,horizontal:o$1.ArrowLeft}):return _t.preventDefault(),_t.stopPropagation(),ht.goToOption(c$1.Previous);case o$1.Home:case o$1.PageUp:return _t.preventDefault(),_t.stopPropagation(),ht.goToOption(c$1.First);case o$1.End:case o$1.PageDown:return _t.preventDefault(),_t.stopPropagation(),ht.goToOption(c$1.Last);case o$1.Escape:return _t.preventDefault(),_t.stopPropagation(),ht.closeListbox(),yt.nextFrame(()=>{var xt;return(xt=ft.buttonRef.current)==null?void 0:xt.focus({preventScroll:!0})});case o$1.Tab:_t.preventDefault(),_t.stopPropagation();break;default:_t.key.length===1&&(ht.search(_t.key),bt.setTimeout(()=>ht.clearSearch(),350));break}}),vt=i$3(()=>{var _t;return(_t=ft.buttonRef.current)==null?void 0:_t.id},[ft.buttonRef.current]),Dt=reactExports.useMemo(()=>({open:ft.listboxState===0}),[ft]),Et={"aria-activedescendant":ft.activeOptionIndex===null||(ut=ft.options[ft.activeOptionIndex])==null?void 0:ut.id,"aria-multiselectable":ft.mode===1?!0:void 0,"aria-labelledby":vt,"aria-orientation":ft.orientation,id:ct,onKeyDown:At,role:"listbox",tabIndex:0,ref:mt};return C$1({ourProps:Et,theirProps:pt,slot:Dt,defaultTag:Je,features:qe$1,visible:St,name:"Listbox.Options"})}let Ze="li";function et(st,at){let ut=I$3(),{id:dt=`headlessui-listbox-option-${ut}`,disabled:ct=!1,value:pt,...ft}=st,ht=w$1("Listbox.Option"),mt=k$1("Listbox.Option"),yt=ht.activeOptionIndex!==null?ht.options[ht.activeOptionIndex].id===dt:!1,bt=ht.isSelected(pt),Tt=reactExports.useRef(null),St=s$1(Tt),At=s$6({disabled:ct,value:pt,domRef:Tt,get textValue(){return St()}}),vt=y$1(at,Tt);l$3(()=>{if(ht.listboxState!==0||!yt||ht.activationTrigger===0)return;let $t=o$5();return $t.requestAnimationFrame(()=>{var Lt,Ot;(Ot=(Lt=Tt.current)==null?void 0:Lt.scrollIntoView)==null||Ot.call(Lt,{block:"nearest"})}),$t.dispose},[Tt,yt,ht.listboxState,ht.activationTrigger,ht.activeOptionIndex]),l$3(()=>mt.registerOption(dt,At),[At,dt]);let Dt=o$6($t=>{if(ct)return $t.preventDefault();mt.onChange(pt),ht.mode===0&&(mt.closeListbox(),o$5().nextFrame(()=>{var Lt;return(Lt=ht.buttonRef.current)==null?void 0:Lt.focus({preventScroll:!0})}))}),Et=o$6(()=>{if(ct)return mt.goToOption(c$1.Nothing);mt.goToOption(c$1.Specific,dt)}),_t=u$3(),xt=o$6($t=>_t.update($t)),Ct=o$6($t=>{_t.wasMoved($t)&&(ct||yt||mt.goToOption(c$1.Specific,dt,0))}),kt=o$6($t=>{_t.wasMoved($t)&&(ct||yt&&mt.goToOption(c$1.Nothing))}),wt=reactExports.useMemo(()=>({active:yt,selected:bt,disabled:ct}),[yt,bt,ct]);return C$1({ourProps:{id:dt,ref:vt,role:"option",tabIndex:ct===!0?void 0:-1,"aria-disabled":ct===!0?!0:void 0,"aria-selected":bt,disabled:void 0,onClick:Dt,onFocus:Et,onPointerEnter:xt,onMouseEnter:xt,onPointerMove:Ct,onMouseMove:Ct,onPointerLeave:kt,onMouseLeave:kt},theirProps:ft,slot:wt,defaultTag:Ze,name:"Listbox.Option"})}let tt=U$1(Qe),ot=U$1(Xe),nt=U$1(ze),it=U$1(Ye),rt=U$1(et),It=Object.assign(tt,{Button:ot,Label:nt,Options:it,Option:rt});function c(st=0){let[at,ut]=reactExports.useState(st),dt=f$1(),ct=reactExports.useCallback(mt=>{dt.current&&ut(yt=>yt|mt)},[at,dt]),pt=reactExports.useCallback(mt=>!!(at&mt),[at]),ft=reactExports.useCallback(mt=>{dt.current&&ut(yt=>yt&~mt)},[ut,dt]),ht=reactExports.useCallback(mt=>{dt.current&&ut(yt=>yt^mt)},[ut]);return{flags:at,addFlag:ct,hasFlag:pt,removeFlag:ft,toggleFlag:ht}}function l(st){let at={called:!1};return(...ut)=>{if(!at.called)return at.called=!0,st(...ut)}}function g$1(st,...at){st&&at.length>0&&st.classList.add(...at)}function v$1(st,...at){st&&at.length>0&&st.classList.remove(...at)}function b(st,at){let ut=o$5();if(!st)return ut.dispose;let{transitionDuration:dt,transitionDelay:ct}=getComputedStyle(st),[pt,ft]=[dt,ct].map(mt=>{let[yt=0]=mt.split(",").filter(Boolean).map(bt=>bt.includes("ms")?parseFloat(bt):parseFloat(bt)*1e3).sort((bt,Tt)=>Tt-bt);return yt}),ht=pt+ft;if(ht!==0){ut.group(yt=>{yt.setTimeout(()=>{at(),yt.dispose()},ht),yt.addEventListener(st,"transitionrun",bt=>{bt.target===bt.currentTarget&&yt.dispose()})});let mt=ut.addEventListener(st,"transitionend",yt=>{yt.target===yt.currentTarget&&(at(),mt())})}else at();return ut.add(()=>at()),ut.dispose}function M$2(st,at,ut,dt){let ct=ut?"enter":"leave",pt=o$5(),ft=dt!==void 0?l(dt):()=>{};ct==="enter"&&(st.removeAttribute("hidden"),st.style.display="");let ht=u$5(ct,{enter:()=>at.enter,leave:()=>at.leave}),mt=u$5(ct,{enter:()=>at.enterTo,leave:()=>at.leaveTo}),yt=u$5(ct,{enter:()=>at.enterFrom,leave:()=>at.leaveFrom});return v$1(st,...at.base,...at.enter,...at.enterTo,...at.enterFrom,...at.leave,...at.leaveFrom,...at.leaveTo,...at.entered),g$1(st,...at.base,...ht,...yt),pt.nextFrame(()=>{v$1(st,...at.base,...ht,...yt),g$1(st,...at.base,...ht,...mt),b(st,()=>(v$1(st,...at.base,...ht),g$1(st,...at.base,...at.entered),ft()))}),pt.dispose}function D$1({immediate:st,container:at,direction:ut,classes:dt,onStart:ct,onStop:pt}){let ft=f$1(),ht=p$2(),mt=s$6(ut);l$3(()=>{st&&(mt.current="enter")},[st]),l$3(()=>{let yt=o$5();ht.add(yt.dispose);let bt=at.current;if(bt&&mt.current!=="idle"&&ft.current)return yt.dispose(),ct.current(mt.current),yt.add(M$2(bt,dt.current,mt.current==="enter",()=>{yt.dispose(),pt.current(mt.current)})),yt.dispose},[ut])}function S(st=""){return st.split(/\s+/).filter(at=>at.length>1)}let I$1=reactExports.createContext(null);I$1.displayName="TransitionContext";var Se=(st=>(st.Visible="visible",st.Hidden="hidden",st))(Se||{});function ye(){let st=reactExports.useContext(I$1);if(st===null)throw new Error("A is used but it is missing a parent or .");return st}function xe(){let st=reactExports.useContext(M$1);if(st===null)throw new Error("A is used but it is missing a parent or .");return st}let M$1=reactExports.createContext(null);M$1.displayName="NestingContext";function U(st){return"children"in st?U(st.children):st.current.filter(({el:at})=>at.current!==null).filter(({state:at})=>at==="visible").length>0}function se(st,at){let ut=s$6(st),dt=reactExports.useRef([]),ct=f$1(),pt=p$2(),ft=o$6((At,vt=v$2.Hidden)=>{let Dt=dt.current.findIndex(({el:Et})=>Et===At);Dt!==-1&&(u$5(vt,{[v$2.Unmount](){dt.current.splice(Dt,1)},[v$2.Hidden](){dt.current[Dt].state="hidden"}}),pt.microTask(()=>{var Et;!U(dt)&&ct.current&&((Et=ut.current)==null||Et.call(ut))}))}),ht=o$6(At=>{let vt=dt.current.find(({el:Dt})=>Dt===At);return vt?vt.state!=="visible"&&(vt.state="visible"):dt.current.push({el:At,state:"visible"}),()=>ft(At,v$2.Unmount)}),mt=reactExports.useRef([]),yt=reactExports.useRef(Promise.resolve()),bt=reactExports.useRef({enter:[],leave:[],idle:[]}),Tt=o$6((At,vt,Dt)=>{mt.current.splice(0),at&&(at.chains.current[vt]=at.chains.current[vt].filter(([Et])=>Et!==At)),at==null||at.chains.current[vt].push([At,new Promise(Et=>{mt.current.push(Et)})]),at==null||at.chains.current[vt].push([At,new Promise(Et=>{Promise.all(bt.current[vt].map(([_t,xt])=>xt)).then(()=>Et())})]),vt==="enter"?yt.current=yt.current.then(()=>at==null?void 0:at.wait.current).then(()=>Dt(vt)):Dt(vt)}),St=o$6((At,vt,Dt)=>{Promise.all(bt.current[vt].splice(0).map(([Et,_t])=>_t)).then(()=>{var Et;(Et=mt.current.shift())==null||Et()}).then(()=>Dt(vt))});return reactExports.useMemo(()=>({children:dt,register:ht,unregister:ft,onStart:Tt,onStop:St,wait:yt,chains:bt}),[ht,ft,dt,Tt,St,bt,yt])}function Ne(){}let Pe=["beforeEnter","afterEnter","beforeLeave","afterLeave"];function ae(st){var at;let ut={};for(let dt of Pe)ut[dt]=(at=st[dt])!=null?at:Ne;return ut}function Re(st){let at=reactExports.useRef(ae(st));return reactExports.useEffect(()=>{at.current=ae(st)},[st]),at}let De="div",le=O$1.RenderStrategy;function He(st,at){var ut,dt;let{beforeEnter:ct,afterEnter:pt,beforeLeave:ft,afterLeave:ht,enter:mt,enterFrom:yt,enterTo:bt,entered:Tt,leave:St,leaveFrom:At,leaveTo:vt,...Dt}=st,Et=reactExports.useRef(null),_t=y$1(Et,at),xt=(ut=Dt.unmount)==null||ut?v$2.Unmount:v$2.Hidden,{show:Ct,appear:kt,initial:wt}=ye(),[$t,Lt]=reactExports.useState(Ct?"visible":"hidden"),Ot=xe(),{register:zt,unregister:Mt}=Ot;reactExports.useEffect(()=>zt(Et),[zt,Et]),reactExports.useEffect(()=>{if(xt===v$2.Hidden&&Et.current){if(Ct&&$t!=="visible"){Lt("visible");return}return u$5($t,{hidden:()=>Mt(Et),visible:()=>zt(Et)})}},[$t,Et,zt,Mt,Ct,xt]);let qt=s$6({base:S(Dt.className),enter:S(mt),enterFrom:S(yt),enterTo:S(bt),entered:S(Tt),leave:S(St),leaveFrom:S(At),leaveTo:S(vt)}),Qt=Re({beforeEnter:ct,afterEnter:pt,beforeLeave:ft,afterLeave:ht}),Yt=l$2();reactExports.useEffect(()=>{if(Yt&&$t==="visible"&&Et.current===null)throw new Error("Did you forget to passthrough the `ref` to the actual DOM node?")},[Et,$t,Yt]);let jt=wt&&!kt,Ft=kt&&Ct&&wt,Vt=!Yt||jt?"idle":Ct?"enter":"leave",Ht=c(0),Kt=o$6(Pt=>u$5(Pt,{enter:()=>{Ht.addFlag(d$1.Opening),Qt.current.beforeEnter()},leave:()=>{Ht.addFlag(d$1.Closing),Qt.current.beforeLeave()},idle:()=>{}})),Zt=o$6(Pt=>u$5(Pt,{enter:()=>{Ht.removeFlag(d$1.Opening),Qt.current.afterEnter()},leave:()=>{Ht.removeFlag(d$1.Closing),Qt.current.afterLeave()},idle:()=>{}})),Wt=se(()=>{Lt("hidden"),Mt(Et)},Ot),Nt=reactExports.useRef(!1);D$1({immediate:Ft,container:Et,classes:qt,direction:Vt,onStart:s$6(Pt=>{Nt.current=!0,Wt.onStart(Et,Pt,Kt)}),onStop:s$6(Pt=>{Nt.current=!1,Wt.onStop(Et,Pt,Zt),Pt==="leave"&&!U(Wt)&&(Lt("hidden"),Mt(Et))})});let Rt=Dt,Bt={ref:_t};return Ft?Rt={...Rt,className:t(Dt.className,...qt.current.enter,...qt.current.enterFrom)}:Nt.current&&(Rt.className=t(Dt.className,(dt=Et.current)==null?void 0:dt.className),Rt.className===""&&delete Rt.className),React$3.createElement(M$1.Provider,{value:Wt},React$3.createElement(s$2,{value:u$5($t,{visible:d$1.Open,hidden:d$1.Closed})|Ht.flags},C$1({ourProps:Bt,theirProps:Rt,defaultTag:De,features:le,visible:$t==="visible",name:"Transition.Child"})))}function Fe(st,at){let{show:ut,appear:dt=!1,unmount:ct=!0,...pt}=st,ft=reactExports.useRef(null),ht=y$1(ft,at);l$2();let mt=u$1();if(ut===void 0&&mt!==null&&(ut=(mt&d$1.Open)===d$1.Open),![!0,!1].includes(ut))throw new Error("A is used but it is missing a `show={true | false}` prop.");let[yt,bt]=reactExports.useState(ut?"visible":"hidden"),Tt=se(()=>{bt("hidden")}),[St,At]=reactExports.useState(!0),vt=reactExports.useRef([ut]);l$3(()=>{St!==!1&&vt.current[vt.current.length-1]!==ut&&(vt.current.push(ut),At(!1))},[vt,ut]);let Dt=reactExports.useMemo(()=>({show:ut,appear:dt,initial:St}),[ut,dt,St]);reactExports.useEffect(()=>{if(ut)bt("visible");else if(!U(Tt))bt("hidden");else{let Ct=ft.current;if(!Ct)return;let kt=Ct.getBoundingClientRect();kt.x===0&&kt.y===0&&kt.width===0&&kt.height===0&&bt("hidden")}},[ut,Tt]);let Et={unmount:ct},_t=o$6(()=>{var Ct;St&&At(!1),(Ct=st.beforeEnter)==null||Ct.call(st)}),xt=o$6(()=>{var Ct;St&&At(!1),(Ct=st.beforeLeave)==null||Ct.call(st)});return React$3.createElement(M$1.Provider,{value:Tt},React$3.createElement(I$1.Provider,{value:Dt},C$1({ourProps:{...Et,as:reactExports.Fragment,children:React$3.createElement(ue,{ref:ht,...Et,...pt,beforeEnter:_t,beforeLeave:xt})},theirProps:{},defaultTag:reactExports.Fragment,features:le,visible:yt==="visible",name:"Transition"})))}function _e(st,at){let ut=reactExports.useContext(I$1)!==null,dt=u$1()!==null;return React$3.createElement(React$3.Fragment,null,!ut&&dt?React$3.createElement(q$1,{ref:at,...st}):React$3.createElement(ue,{ref:at,...st}))}let q$1=U$1(Fe),ue=U$1(He),Le=U$1(_e),qe=Object.assign(q$1,{Child:Le,Root:q$1});var lib$1={};Object.defineProperty(lib$1,"__esModule",{value:!0});var lazyWithPreload_1=lib$1.lazyWithPreload=void 0,react_1$1=reactExports;function lazyWithPreload(st){var at=(0,react_1$1.lazy)(st),ut,dt,ct=(0,react_1$1.forwardRef)(function(ht,mt){var yt=(0,react_1$1.useRef)(ut??at);return(0,react_1$1.createElement)(yt.current,Object.assign(mt?{ref:mt}:{},ht))}),pt=ct;return pt.preload=function(){return dt||(dt=st().then(function(ft){return ut=ft.default,ut})),dt},pt}lazyWithPreload_1=lib$1.lazyWithPreload=lazyWithPreload;lib$1.default=lazyWithPreload;class Handler{constructor({name:at,build:ut,detect:dt,helper:ct,parse:pt}){this.name=at,this.helper=ct,this.build=ut,this.detect=ft=>{if(typeof ft!="string")throw new TypeError(`Expected string, got ${typeof ft}!`);return dt(ft)},this.parse=(ft,ht)=>{if(typeof ft!="string")throw new TypeError(`Expected string, got ${typeof ft}!`);return pt(ft,ht)}}}const buildHandler=st=>new Handler(st),FORMAT_NAME$8="ssa",helper$5={toMilliseconds:st=>{const at=/^\s*(\d+:)?(\d{1,2}):(\d{1,2})(?:[.,](\d{1,3}))?\s*$/.exec(st);if(!at)throw new TypeError(`Invalid time format: ${st}`);const ut=at[1]?parseInt(at[1].replace(":","")):0,dt=parseInt(at[2],10),ct=parseInt(at[3],10),pt=at[4]?parseInt(at[4],10):0;return ut*3600*1e3+dt*60*1e3+ct*1e3+pt*10},toTimeString:st=>{const at=Math.floor(st/1e3/3600),ut=Math.floor(st/1e3/60%60),dt=Math.floor(st/1e3%60),ct=Math.floor(st%1e3/10);return`${at}:${ut<10?"0":""}${ut}:${dt<10?"0":""}${dt}.${ct<10?"0":""}${ct}`}},_buildCaptionData=(st,at)=>{const ut={};for(let dt=0;dt{var ut;let dt,ct=null;const pt=[],ft=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `,ht=st.split(/\r?\n\s*\n/);for(const mt of ht){const bt=/^\s*\[([^\]]+)\]\r?\n([\s\S]*)$/.exec(mt);if(bt){const Tt=bt[1],St=bt[2].split(/\r?\n/);for(const At of St){if(/^\s*;/.test(At))continue;const vt=/^\s*([^\s:]+):\s*(.*)$/.exec(At);if(vt){if(Tt==="Script Info")if(dt||(dt={},dt.type="meta",dt.data={},pt.push(dt)),typeof dt.data=="object"){const Dt=vt[1].trim(),Et=vt[2].trim();dt.data[Dt]=Et}else throw new TypeError(`Invalid meta data: ${At}`);else if(Tt==="V4 Styles"||Tt==="V4+ Styles"){const Dt=vt[1].trim(),Et=vt[2].trim();if(Dt==="Format")ct=Et.split(/\s*,\s*/);else if(Dt==="Style"&&ct){const _t=Et.split(/\s*,\s*/),xt={};xt.type="style",xt.data=_buildCaptionData(ct,_t),pt.push(xt)}}else if(Tt==="Events"){const Dt=vt[1].trim(),Et=vt[2].trim();if(Dt==="Format")ct=Et.split(/\s*,\s*/);else if(Dt==="Dialogue"&&ct){const _t=Et.split(/\s*,\s*/),xt={};xt.type="caption",xt.data=_buildCaptionData(ct,_t),xt.start=helper$5.toMilliseconds(xt.data.Start),xt.end=helper$5.toMilliseconds(xt.data.End),xt.duration=xt.end-xt.start,xt.content=xt.data.Text;const Ct=Et.split(",",ct.length-1).join(",").length+1+1;xt.content=Et.substring(Ct),xt.data.Text=xt.content,xt.text=xt.content.replace(/\\N/g,ft).replace(/\{[^}]+\}/g,""),pt.push(xt)}}}}}at.verbose&&console.warn("Unknown part",mt)}return pt},build$8=(st,at)=>{var ut;const dt=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `,ct=at.format==="ass";let pt="";pt+=`[Script Info]${dt}`,pt+=`; Script generated by subsrt ${dt}`,pt+=`ScriptType: v4.00${ct?"+":""}${dt}`,pt+=`Collisions: Normal${dt}`,pt+=dt,ct?(pt+=`[V4+ Styles]${dt}`,pt+=`Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding${dt}`,pt+=`Style: DefaultVCD, Arial,28,&H00B4FCFC,&H00B4FCFC,&H00000008,&H80000008,-1,0,0,0,100,100,0.00,0.00,1,1.00,2.00,2,30,30,30,0${dt}`):(pt+=`[V4 Styles]${dt}`,pt+=`Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding${dt}`,pt+=`Style: DefaultVCD, Arial,28,11861244,11861244,11861244,-2147483640,-1,0,1,1,2,2,30,30,30,0,0${dt}`),pt+=dt,pt+=`[Events]${dt}`,pt+=`Format: ${ct?"Layer":"Marked"}, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text${dt}`;for(const ft of st)if(ft.type!=="meta"){if(!ft.type||ft.type==="caption"){pt+=`Dialogue: ${ct?"0":"Marked=0"},${helper$5.toTimeString(ft.start)},${helper$5.toTimeString(ft.end)},DefaultVCD, NTP,0000,0000,0000,,${ft.text.replace(/\r?\n/g,"\\N")}${dt}`;continue}at.verbose&&console.log("SKIP:",ft)}return pt},detect$9=st=>/^\s*\[Script Info\]\r?\n/.test(st)&&/\s*\[Events\]\r?\n/.test(st)?st.indexOf("[V4+ Styles]")>0?"ass":"ssa":!1,ssa=buildHandler({name:FORMAT_NAME$8,build:build$8,detect:detect$9,helper:helper$5,parse:parse$9}),FORMAT_NAME$7="ass",ass=buildHandler({name:FORMAT_NAME$7,build:build$8,detect:detect$9,helper:helper$5,parse:parse$9}),FORMAT_NAME$6="json",parse$8=(st,at)=>JSON.parse(st),build$7=(st,at)=>JSON.stringify(st,void 0,2),detect$8=st=>{try{const at=JSON.parse(st);return Array.isArray(at)&&at.length>0&&typeof at[0]=="object"}catch{return!1}},json=buildHandler({name:FORMAT_NAME$6,build:build$7,detect:detect$8,parse:parse$8}),FORMAT_NAME$5="lrc",helper$4={toMilliseconds:st=>{const at=/^\s*(\d+):(\d{1,2})(?:[.,](\d{1,3}))?\s*$/.exec(st);if(!at)throw new TypeError(`Invalid time format: ${st}`);const ut=parseInt(at[1],10),dt=parseInt(at[2],10),ct=at[3]?parseInt(at[3],10):0;return ut*60*1e3+dt*1e3+ct*10},toTimeString:st=>{const at=Math.floor(st/1e3/60),ut=Math.floor(st/1e3%60),dt=Math.floor(st%1e3);return`${(at<10?"0":"")+at}:${ut<10?"0":""}${ut}.${dt<100?"0":""}${dt<10?"0":Math.floor(dt/10)}`}},parse$7=(st,at)=>{let ut=null;const dt=[],ct=st.split(/\r?\n/);for(const pt of ct){if(!pt||pt.trim().length===0)continue;const ht=/^\[(\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?)\](.*)(?:\r?\n)*$/.exec(pt);if(ht){const yt={};yt.type="caption",yt.start=helper$4.toMilliseconds(ht[1]),yt.end=yt.start+2e3,yt.duration=yt.end-yt.start,yt.content=ht[2],yt.text=yt.content,dt.push(yt),ut&&(ut.end=yt.start,ut.duration=ut.end-ut.start),ut=yt;continue}const mt=/^\[(\w+):([^\]]*)\](?:\r?\n)*$/.exec(pt);if(mt){const yt={};yt.type="meta",yt.tag=mt[1],mt[2]&&(yt.data=mt[2]),dt.push(yt);continue}at.verbose&&console.warn("Unknown part",pt)}return dt},build$6=(st,at)=>{var ut;let dt="",ct=!1;const pt=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `;for(const ft of st){if(ft.type==="meta"){ft.tag&&ft.data&&typeof ft.data=="string"&&(dt+=`[${ft.tag}:${ft.data.replace(/[\r\n]+/g," ")}]${pt}`);continue}if(!ft.type||ft.type==="caption"){ct||(dt+=pt,ct=!0),dt+=`[${helper$4.toTimeString(ft.start)}]${ft.text}${pt}`;continue}at.verbose&&console.log("SKIP:",ft)}return dt},detect$7=st=>/\r?\n\[\d+:\d{1,2}(?:[.,]\d{1,3})?\].*\r?\n/.test(st),lrc=buildHandler({name:FORMAT_NAME$5,build:build$6,detect:detect$7,helper:helper$4,parse:parse$7}),FORMAT_NAME$4="sbv",helper$3={toMilliseconds:st=>{const at=/^\s*(\d{1,2}):(\d{1,2}):(\d{1,2})(?:[.,](\d{1,3}))?\s*$/.exec(st);if(!at)throw new TypeError(`Invalid time format: ${st}`);const ut=parseInt(at[1],10),dt=parseInt(at[2],10),ct=parseInt(at[3],10),pt=at[4]?parseInt(at[4],10):0;return ut*3600*1e3+dt*60*1e3+ct*1e3+pt},toTimeString:st=>{const at=Math.floor(st/1e3/3600),ut=Math.floor(st/1e3/60%60),dt=Math.floor(st/1e3%60),ct=Math.floor(st%1e3);return`${(at<10?"0":"")+at}:${ut<10?"0":""}${ut}:${dt<10?"0":""}${dt}.${ct<100?"0":""}${ct<10?"0":""}${ct}`}},parse$6=(st,at)=>{var ut;const dt=[],ct=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `,pt=st.split(/\r?\n\s*\n/);for(const ft of pt){const mt=/^(\d{1,2}:\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?)\s*[,;]\s*(\d{1,2}:\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?)\r?\n([\s\S]*)$/.exec(ft);if(mt){const yt={};yt.type="caption",yt.start=helper$3.toMilliseconds(mt[1]),yt.end=helper$3.toMilliseconds(mt[2]),yt.duration=yt.end-yt.start;const bt=mt[3].split(/\[br\]|\r?\n/i);yt.content=bt.join(ct),yt.text=yt.content.replace(/>>[^:]+:\s*/g,""),dt.push(yt);continue}at.verbose&&console.warn("Unknown part",ft)}return dt},build$5=(st,at)=>{var ut;let dt="";const ct=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `;for(const pt of st){if(!pt.type||pt.type==="caption"){dt+=`${helper$3.toTimeString(pt.start)},${helper$3.toTimeString(pt.end)}${ct}`,dt+=pt.text+ct,dt+=ct;continue}at.verbose&&console.log("SKIP:",pt)}return dt},detect$6=st=>/\d{1,2}:\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?\s*[,;]\s*\d{1,2}:\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?/.test(st),sbv=buildHandler({name:FORMAT_NAME$4,build:build$5,detect:detect$6,helper:helper$3,parse:parse$6}),FORMAT_NAME$3="smi",helper$2={htmlEncode:st=>st.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\r?\n/g,"
"),htmlDecode:(st,at)=>st.replace(//gi,at||`\r `).replace(/ /g," ").replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(/&/g,"&")},parse$5=(st,at)=>{var ut,dt;if(at.format&&at.format!==FORMAT_NAME$3)throw new TypeError(`Invalid format: ${at.format}`);const ct=[],pt=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `,ft=/]*>([\s\S]*)<\/TITLE>/i.exec(st);if(ft){const Tt={};Tt.type="meta",Tt.name="title",Tt.data=ft[1].replace(/^\s*/g,"").replace(/\s*$/g,""),ct.push(Tt)}const ht=/]*>([\s\S]*)<\/STYLE>/i.exec(st);if(ht){const Tt={};Tt.type="meta",Tt.name="style",Tt.data=ht[1],ct.push(Tt)}const mt=st.replace(/^[\s\S]*]*>/gi,"").replace(/<\/BODY[^>]*>[\s\S]*$/gi,"");let yt=null;const bt=mt.split(/]+Start\s*=\s*["']?(\d+)[^\d>]*>([\s\S]*)/i.exec(St);if(At){const vt={};vt.type="caption",vt.start=parseInt(At[1],10),vt.end=vt.start+2e3,vt.duration=vt.end-vt.start,vt.content=At[2].replace(/^<\/SYNC[^>]*>/gi,"");let Dt=!0;const Et=(dt=/^([\s\S]*)/i.exec(vt.content))!==null&&dt!==void 0?dt:/^]*)>([\s\S]*)/i.exec(vt.content);if(Et){let _t=Et[2].replace(/\s+/gi,pt).replace(//gi,pt).replace(/<[^>]+>/g,""),_t=_t.replace(/^\s+/g,"").replace(/\s+$/g,""),Dt=_t.replace(/ /gi," ").replace(/\s+/g,"").length===0,vt.text=helper$2.htmlDecode(_t,pt)}!at.preserveSpaces&&Dt?at.verbose&&console.log(`INFO: Skipping white space caption at ${vt.start}`):ct.push(vt),yt&&(yt.end=vt.start,yt.duration=yt.end-yt.start),yt=vt;continue}at.verbose&&console.warn("Unknown part",Tt)}return ct},build$4=(st,at)=>{var ut,dt,ct,pt;const ft=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `;let ht="";ht+=`${ft}`,ht+=`${ft}`,ht+=`${(dt=at.title)!==null&&dt!==void 0?dt:""}${ft}`,ht+=`${ft}`,ht+=`${ft}`,ht+=`${ft}`;for(const mt of st)if(mt.type!=="meta"){if(!mt.type||mt.type==="caption"){ht+=`${ft}`,ht+=`

${helper$2.htmlEncode(mt.text||"")}${at.closeTags?"

":""}${ft}`,at.closeTags&&(ht+=`
${ft}`),ht+=`${ft}`,ht+=`

 ${at.closeTags?"

":""}${ft}`,at.closeTags&&(ht+=`
${ft}`);continue}at.verbose&&console.log("SKIP:",mt)}return ht+=`${ft}`,ht+=`
${ft}`,ht},detect$5=st=>/]*>[\s\S]*]*>/.test(st),smi=buildHandler({name:FORMAT_NAME$3,build:build$4,detect:detect$5,helper:helper$2,parse:parse$5}),FORMAT_NAME$2="srt",helper$1={toMilliseconds:st=>{const at=/^\s*(\d{1,2}):(\d{1,2}):(\d{1,2})(?:[.,](\d{1,3}))?\s*$/.exec(st);if(!at)throw new TypeError(`Invalid time format: ${st}`);const ut=parseInt(at[1],10),dt=parseInt(at[2],10),ct=parseInt(at[3],10),pt=at[4]?parseInt(at[4],10):0;return ut*3600*1e3+dt*60*1e3+ct*1e3+pt},toTimeString:st=>{const at=Math.floor(st/1e3/3600),ut=Math.floor(st/1e3/60%60),dt=Math.floor(st/1e3%60),ct=Math.floor(st%1e3);return`${(at<10?"0":"")+at}:${ut<10?"0":""}${ut}:${dt<10?"0":""}${dt},${ct<100?"0":""}${ct<10?"0":""}${ct}`}},parse$4=(st,at)=>{var ut;const dt=[],ct=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `,pt=st.split(/\r?\n\s*\n/);for(const ft of pt){const mt=/^(\d+)\r?\n(\d{1,2}:\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?)\s*-->\s*(\d{1,2}:\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?)\r?\n([\s\S]*)$/.exec(ft);if(mt){const yt={};yt.type="caption",yt.index=parseInt(mt[1],10),yt.start=helper$1.toMilliseconds(mt[2]),yt.end=helper$1.toMilliseconds(mt[3]),yt.duration=yt.end-yt.start;const bt=mt[4].split(/\r?\n/);yt.content=bt.join(ct),yt.text=yt.content.replace(/<[^>]+>/g,"").replace(/\{[^}]+\}/g,"").replace(/>>[^:]*:\s*/g,""),dt.push(yt);continue}at.verbose&&console.warn("Unknown part",ft)}return dt},build$3=(st,at)=>{var ut;let dt="";const ct=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `;for(let pt=0;pt ${helper$1.toTimeString(ft.end)}${ct}`,dt+=ft.text+ct,dt+=ct;continue}at.verbose&&console.log("SKIP:",ft)}return dt},detect$4=st=>/\d+\r?\n\d{1,2}:\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?\s*-->\s*\d{1,2}:\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?/.test(st),srt=buildHandler({name:FORMAT_NAME$2,build:build$3,detect:detect$4,helper:helper$1,parse:parse$4}),FORMAT_NAME$1="sub",DEFAULT_FPS=25,parse$3=(st,at)=>{var ut;at.fps||(at.fps=DEFAULT_FPS);const dt=at.fps>0?at.fps:DEFAULT_FPS,ct=[],pt=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `,ft=st.split(/\r?\n/);for(let ht=0;ht{var ut,dt;const ct=((ut=at.fps)!==null&&ut!==void 0?ut:0)>0?at.fps:DEFAULT_FPS;let pt="";const ft=(dt=at.eol)!==null&&dt!==void 0?dt:`\r `;for(const ht of st){if(!ht.type||ht.type==="caption"){const mt=typeof ht.frame=="object"&&ht.frame.start>=0?ht.frame.start:ht.start*ct,yt=typeof ht.frame=="object"&&ht.frame.end>=0?ht.frame.end:ht.end*ct,bt=ht.text.replace(/\r?\n/,"|");pt+=`{${mt}}{${yt}}${bt}${ft}`;continue}at.verbose&&console.log("SKIP:",ht)}return pt},detect$3=st=>/^\{\d+\}\{\d+\}.*/.test(st),sub=buildHandler({name:FORMAT_NAME$1,build:build$2,detect:detect$3,parse:parse$3}),FORMAT_NAME="vtt",helper={toMilliseconds:st=>{const at=/^\s*(\d{1,2}:)?(\d{1,2}):(\d{1,2})(?:[.,](\d{1,3}))?\s*$/.exec(st);if(!at)throw new TypeError(`Invalid time format: ${st}`);const ut=at[1]?parseInt(at[1].replace(":","")):0,dt=parseInt(at[2],10),ct=parseInt(at[3],10),pt=at[4]?parseInt(at[4],10):0;return ut*3600*1e3+dt*60*1e3+ct*1e3+pt},toTimeString:st=>{const at=Math.floor(st/1e3/3600),ut=Math.floor(st/1e3/60%60),dt=Math.floor(st/1e3%60),ct=Math.floor(st%1e3);return`${(at<10?"0":"")+at}:${ut<10?"0":""}${ut}:${dt<10?"0":""}${dt}.${ct<100?"0":""}${ct<10?"0":""}${ct}`}},parse$2=(st,at)=>{var ut;let dt=1;const ct=[],pt=st.split(/\r?\n\s*\n/);for(const ft of pt){const mt=/^([^\r\n]+\r?\n)?((?:\d{1,2}:)?\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?)\s*-->\s*((?:\d{1,2}:)?\d{1,2}:\d{1,2}(?:[.,]\d{1,3})?)[^\S\r\n]?.*\r?\n([\s\S]*)$/.exec(ft);if(mt){const bt={};bt.type="caption",bt.index=dt++,mt[1]&&(bt.cue=mt[1].replace(/[\r\n]*/g,"")),bt.start=helper.toMilliseconds(mt[2]),bt.end=helper.toMilliseconds(mt[3]),bt.duration=bt.end-bt.start,bt.content=mt[4],bt.text=bt.content.replace(/<[^>]+>/g,"").replace(/\{[^}]+\}/g,""),ct.push(bt);continue}const yt=(ut=/^([A-Z]+)(\r?\n([\s\S]*))?$/.exec(ft))!==null&&ut!==void 0?ut:/^([A-Z]+)\s+([^\r\n]*)$/.exec(ft);if(yt){const bt={};bt.type="meta",bt.name=yt[1],yt[3]&&(bt.data=yt[3]),ct.push(bt);continue}at.verbose&&console.warn("Unknown part",ft)}return ct},build$1=(st,at)=>{var ut;const dt=(ut=at.eol)!==null&&ut!==void 0?ut:`\r `;let ct=`WEBVTT${dt}${dt}`;for(let pt=0;pt ${helper.toTimeString(ft.end)}${dt}`,ct+=ft.text+dt,ct+=dt;continue}at.verbose&&console.log("SKIP:",ft)}return ct},detect$2=st=>/^\s*WEBVTT\r?\n/.test(st),vtt=buildHandler({name:FORMAT_NAME,build:build$1,detect:detect$2,helper,parse:parse$2}),formats={vtt,lrc,smi,ssa,ass,sub,srt,sbv,json},clone$1=st=>JSON.parse(JSON.stringify(st));class Subsrt{constructor(){this.format=formats,this.list=()=>Object.keys(this.format),this.detect=at=>{const ut=this.list();for(const dt of ut){const ct=this.format[dt];if(typeof ct>"u"||typeof ct.detect!="function")continue;const pt=ct.detect(at);if(pt===!0||pt===dt)return dt}return""},this.parse=(at,ut={})=>{var dt;const ct=(dt=ut.format)!==null&&dt!==void 0?dt:this.detect(at);if(!ct||ct.trim().length===0)throw new TypeError("Cannot determine subtitle format");const pt=this.format[ct];if(typeof pt>"u")throw new TypeError(`Unsupported subtitle format: ${ct}`);const ft=pt.parse;if(typeof ft!="function")throw new TypeError(`Subtitle format does not support 'parse' op: ${ct}`);return ft(at,ut)},this.build=(at,ut={})=>{const dt=ut.format||"srt";if(dt.trim().length===0)throw new TypeError("Cannot determine subtitle format");const ct=this.format[dt];if(typeof ct>"u")throw new TypeError(`Unsupported subtitle format: ${dt}`);const pt=ct.build;if(typeof pt!="function")throw new TypeError(`Subtitle format does not support 'build' op: ${dt}`);return pt(at,ut)},this.convert=(at,ut={})=>{var dt;let ct={};typeof ut=="string"?ct.to=ut:ct=ut;const pt={format:(dt=ct.from)!==null&&dt!==void 0?dt:void 0,verbose:ct.verbose,eol:ct.eol};let ft=this.parse(at,pt);ct.resync&&(ft=this.resync(ft,ct.resync));const ht={format:ct.to||ct.format,verbose:ct.verbose,eol:ct.eol};return this.build(ft,ht)},this.resync=(at,ut={})=>{var dt,ct,pt,ft;let ht,mt,yt=!1,bt;if(typeof ut=="function")ht=ut;else if(typeof ut=="number")bt=ut,ht=St=>[St[0]+bt,St[1]+bt];else if(typeof ut=="object")bt=((dt=ut.offset)!==null&&dt!==void 0?dt:0)*(ut.frame?(ct=ut.fps)!==null&&ct!==void 0?ct:25:1),mt=(pt=ut.ratio)!==null&&pt!==void 0?pt:1,yt=(ft=ut.frame)!==null&&ft!==void 0?ft:!1,ht=St=>[Math.round(St[0]*mt+bt),Math.round(St[1]*mt+bt)];else throw new TypeError("Argument 'options' not defined");const Tt=[];for(const St of at){const At=clone$1(St);if(!At.type||At.type==="caption")if(yt&&At.frame){const vt=ht([At.frame.start,At.frame.end]);vt&&vt.length===2&&(At.frame.start=vt[0],At.frame.end=vt[1],At.frame.count=At.frame.end-At.frame.start)}else{const vt=ht([At.start,At.end]);vt&&vt.length===2&&(At.start=vt[0],At.end=vt[1],At.duration=At.end-At.start)}Tt.push(At)}return Tt}}}const subsrt=new Subsrt,{format:format$2,list,detect:detect$1,parse:parse$1,build,convert,resync}=subsrt;/*! @license DOMPurify 3.2.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.2.6/LICENSE */const{entries,setPrototypeOf,isFrozen,getPrototypeOf,getOwnPropertyDescriptor}=Object;let{freeze,seal,create}=Object,{apply,construct}=typeof Reflect<"u"&&Reflect;freeze||(freeze=function(at){return at});seal||(seal=function(at){return at});apply||(apply=function(at,ut,dt){return at.apply(ut,dt)});construct||(construct=function(at,ut){return new at(...ut)});const arrayForEach=unapply(Array.prototype.forEach),arrayLastIndexOf=unapply(Array.prototype.lastIndexOf),arrayPop=unapply(Array.prototype.pop),arrayPush=unapply(Array.prototype.push),arraySplice=unapply(Array.prototype.splice),stringToLowerCase=unapply(String.prototype.toLowerCase),stringToString=unapply(String.prototype.toString),stringMatch=unapply(String.prototype.match),stringReplace=unapply(String.prototype.replace),stringIndexOf=unapply(String.prototype.indexOf),stringTrim=unapply(String.prototype.trim),objectHasOwnProperty=unapply(Object.prototype.hasOwnProperty),regExpTest=unapply(RegExp.prototype.test),typeErrorCreate=unconstruct(TypeError);function unapply(st){return function(at){at instanceof RegExp&&(at.lastIndex=0);for(var ut=arguments.length,dt=new Array(ut>1?ut-1:0),ct=1;ct2&&arguments[2]!==void 0?arguments[2]:stringToLowerCase;setPrototypeOf&&setPrototypeOf(st,null);let dt=at.length;for(;dt--;){let ct=at[dt];if(typeof ct=="string"){const pt=ut(ct);pt!==ct&&(isFrozen(at)||(at[dt]=pt),ct=pt)}st[ct]=!0}return st}function cleanArray(st){for(let at=0;at/gm),TMPLIT_EXPR=seal(/\$\{[\w\W]*/gm),DATA_ATTR=seal(/^data-[\-\w.\u00B7-\uFFFF]+$/),ARIA_ATTR=seal(/^aria-[\-\w]+$/),IS_ALLOWED_URI=seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),IS_SCRIPT_OR_DATA=seal(/^(?:\w+script|data):/i),ATTR_WHITESPACE=seal(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),DOCTYPE_NAME=seal(/^html$/i),CUSTOM_ELEMENT=seal(/^[a-z][.\w]*(-[.\w]+)+$/i);var EXPRESSIONS=Object.freeze({__proto__:null,ARIA_ATTR,ATTR_WHITESPACE,CUSTOM_ELEMENT,DATA_ATTR,DOCTYPE_NAME,ERB_EXPR,IS_ALLOWED_URI,IS_SCRIPT_OR_DATA,MUSTACHE_EXPR,TMPLIT_EXPR});const NODE_TYPE={element:1,text:3,progressingInstruction:7,comment:8,document:9},getGlobal=function st(){return typeof window>"u"?null:window},_createTrustedTypesPolicy=function st(at,ut){if(typeof at!="object"||typeof at.createPolicy!="function")return null;let dt=null;const ct="data-tt-policy-suffix";ut&&ut.hasAttribute(ct)&&(dt=ut.getAttribute(ct));const pt="dompurify"+(dt?"#"+dt:"");try{return at.createPolicy(pt,{createHTML(ft){return ft},createScriptURL(ft){return ft}})}catch{return console.warn("TrustedTypes policy "+pt+" could not be created."),null}},_createHooksMap=function st(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function createDOMPurify(){let st=arguments.length>0&&arguments[0]!==void 0?arguments[0]:getGlobal();const at=yn=>createDOMPurify(yn);if(at.version="3.2.6",at.removed=[],!st||!st.document||st.document.nodeType!==NODE_TYPE.document||!st.Element)return at.isSupported=!1,at;let{document:ut}=st;const dt=ut,ct=dt.currentScript,{DocumentFragment:pt,HTMLTemplateElement:ft,Node:ht,Element:mt,NodeFilter:yt,NamedNodeMap:bt=st.NamedNodeMap||st.MozNamedAttrMap,HTMLFormElement:Tt,DOMParser:St,trustedTypes:At}=st,vt=mt.prototype,Dt=lookupGetter(vt,"cloneNode"),Et=lookupGetter(vt,"remove"),_t=lookupGetter(vt,"nextSibling"),xt=lookupGetter(vt,"childNodes"),Ct=lookupGetter(vt,"parentNode");if(typeof ft=="function"){const yn=ut.createElement("template");yn.content&&yn.content.ownerDocument&&(ut=yn.content.ownerDocument)}let kt,wt="";const{implementation:$t,createNodeIterator:Lt,createDocumentFragment:Ot,getElementsByTagName:zt}=ut,{importNode:Mt}=dt;let qt=_createHooksMap();at.isSupported=typeof entries=="function"&&typeof Ct=="function"&&$t&&$t.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:Qt,ERB_EXPR:Yt,TMPLIT_EXPR:jt,DATA_ATTR:Ft,ARIA_ATTR:Vt,IS_SCRIPT_OR_DATA:Ht,ATTR_WHITESPACE:Kt,CUSTOM_ELEMENT:Zt}=EXPRESSIONS;let{IS_ALLOWED_URI:Wt}=EXPRESSIONS,Nt=null;const Rt=addToSet({},[...html$1,...svg$1,...svgFilters,...mathMl$1,...text]);let Bt=null;const Pt=addToSet({},[...html,...svg,...mathMl,...xml]);let Ut=Object.seal(create(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Gt=null,Xt=null,na=!0,xa=!0,$a=!1,an=!0,nn=!1,rn=!0,en=!1,dn=!1,gn=!1,ln=!1,cn=!1,sn=!1,pn=!0,bn=!1;const Sn="user-content-";let mn=!0,An=!1,En={},Tn=null;const xn=addToSet({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let kn=null;const Ln=addToSet({},["audio","video","img","source","image","track"]);let Pn=null;const Cn=addToSet({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Gn="http://www.w3.org/1998/Math/MathML",ir="http://www.w3.org/2000/svg",Dn="http://www.w3.org/1999/xhtml";let wn=Dn,Xn=!1,Wn=null;const Qn=addToSet({},[Gn,ir,Dn],stringToString);let tr=addToSet({},["mi","mo","mn","ms","mtext"]),zn=addToSet({},["annotation-xml"]);const qn=addToSet({},["title","style","font","a","script"]);let Kn=null;const Zn=["application/xhtml+xml","text/html"],yr="text/html";let Nn=null,Jn=null;const gr=ut.createElement("form"),fr=function(ga){return ga instanceof RegExp||ga instanceof Function},Fn=function(){let ga=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Jn&&Jn===ga)){if((!ga||typeof ga!="object")&&(ga={}),ga=clone(ga),Kn=Zn.indexOf(ga.PARSER_MEDIA_TYPE)===-1?yr:ga.PARSER_MEDIA_TYPE,Nn=Kn==="application/xhtml+xml"?stringToString:stringToLowerCase,Nt=objectHasOwnProperty(ga,"ALLOWED_TAGS")?addToSet({},ga.ALLOWED_TAGS,Nn):Rt,Bt=objectHasOwnProperty(ga,"ALLOWED_ATTR")?addToSet({},ga.ALLOWED_ATTR,Nn):Pt,Wn=objectHasOwnProperty(ga,"ALLOWED_NAMESPACES")?addToSet({},ga.ALLOWED_NAMESPACES,stringToString):Qn,Pn=objectHasOwnProperty(ga,"ADD_URI_SAFE_ATTR")?addToSet(clone(Cn),ga.ADD_URI_SAFE_ATTR,Nn):Cn,kn=objectHasOwnProperty(ga,"ADD_DATA_URI_TAGS")?addToSet(clone(Ln),ga.ADD_DATA_URI_TAGS,Nn):Ln,Tn=objectHasOwnProperty(ga,"FORBID_CONTENTS")?addToSet({},ga.FORBID_CONTENTS,Nn):xn,Gt=objectHasOwnProperty(ga,"FORBID_TAGS")?addToSet({},ga.FORBID_TAGS,Nn):clone({}),Xt=objectHasOwnProperty(ga,"FORBID_ATTR")?addToSet({},ga.FORBID_ATTR,Nn):clone({}),En=objectHasOwnProperty(ga,"USE_PROFILES")?ga.USE_PROFILES:!1,na=ga.ALLOW_ARIA_ATTR!==!1,xa=ga.ALLOW_DATA_ATTR!==!1,$a=ga.ALLOW_UNKNOWN_PROTOCOLS||!1,an=ga.ALLOW_SELF_CLOSE_IN_ATTR!==!1,nn=ga.SAFE_FOR_TEMPLATES||!1,rn=ga.SAFE_FOR_XML!==!1,en=ga.WHOLE_DOCUMENT||!1,ln=ga.RETURN_DOM||!1,cn=ga.RETURN_DOM_FRAGMENT||!1,sn=ga.RETURN_TRUSTED_TYPE||!1,gn=ga.FORCE_BODY||!1,pn=ga.SANITIZE_DOM!==!1,bn=ga.SANITIZE_NAMED_PROPS||!1,mn=ga.KEEP_CONTENT!==!1,An=ga.IN_PLACE||!1,Wt=ga.ALLOWED_URI_REGEXP||IS_ALLOWED_URI,wn=ga.NAMESPACE||Dn,tr=ga.MATHML_TEXT_INTEGRATION_POINTS||tr,zn=ga.HTML_INTEGRATION_POINTS||zn,Ut=ga.CUSTOM_ELEMENT_HANDLING||{},ga.CUSTOM_ELEMENT_HANDLING&&fr(ga.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Ut.tagNameCheck=ga.CUSTOM_ELEMENT_HANDLING.tagNameCheck),ga.CUSTOM_ELEMENT_HANDLING&&fr(ga.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Ut.attributeNameCheck=ga.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),ga.CUSTOM_ELEMENT_HANDLING&&typeof ga.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(Ut.allowCustomizedBuiltInElements=ga.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),nn&&(xa=!1),cn&&(ln=!0),En&&(Nt=addToSet({},text),Bt=[],En.html===!0&&(addToSet(Nt,html$1),addToSet(Bt,html)),En.svg===!0&&(addToSet(Nt,svg$1),addToSet(Bt,svg),addToSet(Bt,xml)),En.svgFilters===!0&&(addToSet(Nt,svgFilters),addToSet(Bt,svg),addToSet(Bt,xml)),En.mathMl===!0&&(addToSet(Nt,mathMl$1),addToSet(Bt,mathMl),addToSet(Bt,xml))),ga.ADD_TAGS&&(Nt===Rt&&(Nt=clone(Nt)),addToSet(Nt,ga.ADD_TAGS,Nn)),ga.ADD_ATTR&&(Bt===Pt&&(Bt=clone(Bt)),addToSet(Bt,ga.ADD_ATTR,Nn)),ga.ADD_URI_SAFE_ATTR&&addToSet(Pn,ga.ADD_URI_SAFE_ATTR,Nn),ga.FORBID_CONTENTS&&(Tn===xn&&(Tn=clone(Tn)),addToSet(Tn,ga.FORBID_CONTENTS,Nn)),mn&&(Nt["#text"]=!0),en&&addToSet(Nt,["html","head","body"]),Nt.table&&(addToSet(Nt,["tbody"]),delete Gt.tbody),ga.TRUSTED_TYPES_POLICY){if(typeof ga.TRUSTED_TYPES_POLICY.createHTML!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof ga.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');kt=ga.TRUSTED_TYPES_POLICY,wt=kt.createHTML("")}else kt===void 0&&(kt=_createTrustedTypesPolicy(At,ct)),kt!==null&&typeof wt=="string"&&(wt=kt.createHTML(""));freeze&&freeze(ga),Jn=ga}},dr=addToSet({},[...svg$1,...svgFilters,...svgDisallowed]),ar=addToSet({},[...mathMl$1,...mathMlDisallowed]),Vn=function(ga){let un=Ct(ga);(!un||!un.tagName)&&(un={namespaceURI:wn,tagName:"template"});const fn=stringToLowerCase(ga.tagName),Rn=stringToLowerCase(un.tagName);return Wn[ga.namespaceURI]?ga.namespaceURI===ir?un.namespaceURI===Dn?fn==="svg":un.namespaceURI===Gn?fn==="svg"&&(Rn==="annotation-xml"||tr[Rn]):!!dr[fn]:ga.namespaceURI===Gn?un.namespaceURI===Dn?fn==="math":un.namespaceURI===ir?fn==="math"&&zn[Rn]:!!ar[fn]:ga.namespaceURI===Dn?un.namespaceURI===ir&&!zn[Rn]||un.namespaceURI===Gn&&!tr[Rn]?!1:!ar[fn]&&(qn[fn]||!dr[fn]):!!(Kn==="application/xhtml+xml"&&Wn[ga.namespaceURI]):!1},Un=function(ga){arrayPush(at.removed,{element:ga});try{Ct(ga).removeChild(ga)}catch{Et(ga)}},sr=function(ga,un){try{arrayPush(at.removed,{attribute:un.getAttributeNode(ga),from:un})}catch{arrayPush(at.removed,{attribute:null,from:un})}if(un.removeAttribute(ga),ga==="is")if(ln||cn)try{Un(un)}catch{}else try{un.setAttribute(ga,"")}catch{}},ur=function(ga){let un=null,fn=null;if(gn)ga=""+ga;else{const Bn=stringMatch(ga,/^[\r\n\t ]+/);fn=Bn&&Bn[0]}Kn==="application/xhtml+xml"&&wn===Dn&&(ga=''+ga+"");const Rn=kt?kt.createHTML(ga):ga;if(wn===Dn)try{un=new St().parseFromString(Rn,Kn)}catch{}if(!un||!un.documentElement){un=$t.createDocument(wn,"template",null);try{un.documentElement.innerHTML=Xn?wt:Rn}catch{}}const jn=un.body||un.documentElement;return ga&&fn&&jn.insertBefore(ut.createTextNode(fn),jn.childNodes[0]||null),wn===Dn?zt.call(un,en?"html":"body")[0]:en?un.documentElement:jn},xr=function(ga){return Lt.call(ga.ownerDocument||ga,ga,yt.SHOW_ELEMENT|yt.SHOW_COMMENT|yt.SHOW_TEXT|yt.SHOW_PROCESSING_INSTRUCTION|yt.SHOW_CDATA_SECTION,null)},Sr=function(ga){return ga instanceof Tt&&(typeof ga.nodeName!="string"||typeof ga.textContent!="string"||typeof ga.removeChild!="function"||!(ga.attributes instanceof bt)||typeof ga.removeAttribute!="function"||typeof ga.setAttribute!="function"||typeof ga.namespaceURI!="string"||typeof ga.insertBefore!="function"||typeof ga.hasChildNodes!="function")},Cr=function(ga){return typeof ht=="function"&&ga instanceof ht};function or(yn,ga,un){arrayForEach(yn,fn=>{fn.call(at,ga,un,Jn)})}const kr=function(ga){let un=null;if(or(qt.beforeSanitizeElements,ga,null),Sr(ga))return Un(ga),!0;const fn=Nn(ga.nodeName);if(or(qt.uponSanitizeElement,ga,{tagName:fn,allowedTags:Nt}),rn&&ga.hasChildNodes()&&!Cr(ga.firstElementChild)&®ExpTest(/<[/\w!]/g,ga.innerHTML)&®ExpTest(/<[/\w!]/g,ga.textContent)||ga.nodeType===NODE_TYPE.progressingInstruction||rn&&ga.nodeType===NODE_TYPE.comment&®ExpTest(/<[/\w]/g,ga.data))return Un(ga),!0;if(!Nt[fn]||Gt[fn]){if(!Gt[fn]&&Ir(fn)&&(Ut.tagNameCheck instanceof RegExp&®ExpTest(Ut.tagNameCheck,fn)||Ut.tagNameCheck instanceof Function&&Ut.tagNameCheck(fn)))return!1;if(mn&&!Tn[fn]){const Rn=Ct(ga)||ga.parentNode,jn=xt(ga)||ga.childNodes;if(jn&&Rn){const Bn=jn.length;for(let Yn=Bn-1;Yn>=0;--Yn){const er=Dt(jn[Yn],!0);er.__removalCount=(ga.__removalCount||0)+1,Rn.insertBefore(er,_t(ga))}}}return Un(ga),!0}return ga instanceof mt&&!Vn(ga)||(fn==="noscript"||fn==="noembed"||fn==="noframes")&®ExpTest(/<\/no(script|embed|frames)/i,ga.innerHTML)?(Un(ga),!0):(nn&&ga.nodeType===NODE_TYPE.text&&(un=ga.textContent,arrayForEach([Qt,Yt,jt],Rn=>{un=stringReplace(un,Rn," ")}),ga.textContent!==un&&(arrayPush(at.removed,{element:ga.cloneNode()}),ga.textContent=un)),or(qt.afterSanitizeElements,ga,null),!1)},hr=function(ga,un,fn){if(pn&&(un==="id"||un==="name")&&(fn in ut||fn in gr))return!1;if(!(xa&&!Xt[un]&®ExpTest(Ft,un))){if(!(na&®ExpTest(Vt,un))){if(!Bt[un]||Xt[un]){if(!(Ir(ga)&&(Ut.tagNameCheck instanceof RegExp&®ExpTest(Ut.tagNameCheck,ga)||Ut.tagNameCheck instanceof Function&&Ut.tagNameCheck(ga))&&(Ut.attributeNameCheck instanceof RegExp&®ExpTest(Ut.attributeNameCheck,un)||Ut.attributeNameCheck instanceof Function&&Ut.attributeNameCheck(un))||un==="is"&&Ut.allowCustomizedBuiltInElements&&(Ut.tagNameCheck instanceof RegExp&®ExpTest(Ut.tagNameCheck,fn)||Ut.tagNameCheck instanceof Function&&Ut.tagNameCheck(fn))))return!1}else if(!Pn[un]){if(!regExpTest(Wt,stringReplace(fn,Kt,""))){if(!((un==="src"||un==="xlink:href"||un==="href")&&ga!=="script"&&stringIndexOf(fn,"data:")===0&&kn[ga])){if(!($a&&!regExpTest(Ht,stringReplace(fn,Kt,"")))){if(fn)return!1}}}}}}return!0},Ir=function(ga){return ga!=="annotation-xml"&&stringMatch(ga,Zt)},wr=function(ga){or(qt.beforeSanitizeAttributes,ga,null);const{attributes:un}=ga;if(!un||Sr(ga))return;const fn={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Bt,forceKeepAttr:void 0};let Rn=un.length;for(;Rn--;){const jn=un[Rn],{name:Bn,namespaceURI:Yn,value:er}=jn,mr=Nn(Bn),Ar=er;let Hn=Bn==="value"?Ar:stringTrim(Ar);if(fn.attrName=mr,fn.attrValue=Hn,fn.keepAttr=!0,fn.forceKeepAttr=void 0,or(qt.uponSanitizeAttribute,ga,fn),Hn=fn.attrValue,bn&&(mr==="id"||mr==="name")&&(sr(Bn,ga),Hn=Sn+Hn),rn&®ExpTest(/((--!?|])>)|<\/(style|title)/i,Hn)){sr(Bn,ga);continue}if(fn.forceKeepAttr)continue;if(!fn.keepAttr){sr(Bn,ga);continue}if(!an&®ExpTest(/\/>/i,Hn)){sr(Bn,ga);continue}nn&&arrayForEach([Qt,Yt,jt],vr=>{Hn=stringReplace(Hn,vr," ")});const $r=Nn(ga.nodeName);if(!hr($r,mr,Hn)){sr(Bn,ga);continue}if(kt&&typeof At=="object"&&typeof At.getAttributeType=="function"&&!Yn)switch(At.getAttributeType($r,mr)){case"TrustedHTML":{Hn=kt.createHTML(Hn);break}case"TrustedScriptURL":{Hn=kt.createScriptURL(Hn);break}}if(Hn!==Ar)try{Yn?ga.setAttributeNS(Yn,Bn,Hn):ga.setAttribute(Bn,Hn),Sr(ga)?Un(ga):arrayPop(at.removed)}catch{sr(Bn,ga)}}or(qt.afterSanitizeAttributes,ga,null)},Pr=function yn(ga){let un=null;const fn=xr(ga);for(or(qt.beforeSanitizeShadowDOM,ga,null);un=fn.nextNode();)or(qt.uponSanitizeShadowNode,un,null),kr(un),wr(un),un.content instanceof pt&&yn(un.content);or(qt.afterSanitizeShadowDOM,ga,null)};return at.sanitize=function(yn){let ga=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},un=null,fn=null,Rn=null,jn=null;if(Xn=!yn,Xn&&(yn=""),typeof yn!="string"&&!Cr(yn))if(typeof yn.toString=="function"){if(yn=yn.toString(),typeof yn!="string")throw typeErrorCreate("dirty is not a string, aborting")}else throw typeErrorCreate("toString is not a function");if(!at.isSupported)return yn;if(dn||Fn(ga),at.removed=[],typeof yn=="string"&&(An=!1),An){if(yn.nodeName){const er=Nn(yn.nodeName);if(!Nt[er]||Gt[er])throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place")}}else if(yn instanceof ht)un=ur(""),fn=un.ownerDocument.importNode(yn,!0),fn.nodeType===NODE_TYPE.element&&fn.nodeName==="BODY"||fn.nodeName==="HTML"?un=fn:un.appendChild(fn);else{if(!ln&&!nn&&!en&&yn.indexOf("<")===-1)return kt&&sn?kt.createHTML(yn):yn;if(un=ur(yn),!un)return ln?null:sn?wt:""}un&&gn&&Un(un.firstChild);const Bn=xr(An?yn:un);for(;Rn=Bn.nextNode();)kr(Rn),wr(Rn),Rn.content instanceof pt&&Pr(Rn.content);if(An)return yn;if(ln){if(cn)for(jn=Ot.call(un.ownerDocument);un.firstChild;)jn.appendChild(un.firstChild);else jn=un;return(Bt.shadowroot||Bt.shadowrootmode)&&(jn=Mt.call(dt,jn,!0)),jn}let Yn=en?un.outerHTML:un.innerHTML;return en&&Nt["!doctype"]&&un.ownerDocument&&un.ownerDocument.doctype&&un.ownerDocument.doctype.name&®ExpTest(DOCTYPE_NAME,un.ownerDocument.doctype.name)&&(Yn=" `+Yn),nn&&arrayForEach([Qt,Yt,jt],er=>{Yn=stringReplace(Yn,er," ")}),kt&&sn?kt.createHTML(Yn):Yn},at.setConfig=function(){let yn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Fn(yn),dn=!0},at.clearConfig=function(){Jn=null,dn=!1},at.isValidAttribute=function(yn,ga,un){Jn||Fn({});const fn=Nn(yn),Rn=Nn(ga);return hr(fn,Rn,un)},at.addHook=function(yn,ga){typeof ga=="function"&&arrayPush(qt[yn],ga)},at.removeHook=function(yn,ga){if(ga!==void 0){const un=arrayLastIndexOf(qt[yn],ga);return un===-1?void 0:arraySplice(qt[yn],un,1)[0]}return arrayPop(qt[yn])},at.removeHooks=function(yn){qt[yn]=[]},at.removeAllHooks=function(){qt=_createHooksMap()},at}var purify=createDOMPurify(),__spreadArray=function(st,at,ut){if(ut||arguments.length===2)for(var dt=0,ct=at.length,pt;dt"u"&&typeof navigator<"u"&&navigator.product==="ReactNative"?new ReactNativeInfo:typeof navigator<"u"?parseUserAgent(navigator.userAgent):getNodeVersion()}function matchUserAgent(st){return st!==""&&userAgentRules.reduce(function(at,ut){var dt=ut[0],ct=ut[1];if(at)return at;var pt=ct.exec(st);return!!pt&&[dt,pt]},!1)}function parseUserAgent(st){var at=matchUserAgent(st);if(!at)return null;var ut=at[0],dt=at[1];if(ut==="searchbot")return new BotInfo;var ct=dt[1]&&dt[1].split(".").join("_").split("_").slice(0,3);ct?ct.length=this.minWeight_}getEstimate(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}getEstimateTTFB(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}get defaultEstimate(){return this.defaultEstimate_}destroy(){}}function _defineProperty(st,at,ut){return(at=_toPropertyKey(at))in st?Object.defineProperty(st,at,{value:ut,enumerable:!0,configurable:!0,writable:!0}):st[at]=ut,st}function _extends(){return _extends=Object.assign?Object.assign.bind():function(st){for(var at=1;at`):noop$1}function getLoggerFn(st,at,ut){return at[st]?at[st].bind(at):consolePrintFn(st,ut)}const exportedLogger=createLogger();function enableLogs(st,at,ut){const dt=createLogger();if(typeof console=="object"&&st===!0||typeof st=="object"){const ct=["debug","log","info","warn","error"];ct.forEach(pt=>{dt[pt]=getLoggerFn(pt,st,ut)});try{dt.log(`Debug logs enabled for "${at}" in hls.js version 1.6.7`)}catch{return createLogger()}ct.forEach(pt=>{exportedLogger[pt]=getLoggerFn(pt,st)})}else _extends(exportedLogger,dt);return dt}const logger=exportedLogger;function getMediaSource(st=!0){return typeof self>"u"?void 0:(st||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function isManagedMediaSource(st){return typeof self<"u"&&st===self.ManagedMediaSource}function isCompatibleTrackChange(st,at){const ut=Object.keys(st),dt=Object.keys(at),ct=ut.length,pt=dt.length;return!ct||!pt||ct===pt&&!ut.some(ft=>dt.indexOf(ft)===-1)}function utf8ArrayToStr(st,at=!1){if(typeof TextDecoder<"u"){const yt=new TextDecoder("utf-8").decode(st);if(at){const bt=yt.indexOf("\0");return bt!==-1?yt.substring(0,bt):yt}return yt.replace(/\0/g,"")}const ut=st.length;let dt,ct,pt,ft="",ht=0;for(;ht>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:ft+=String.fromCharCode(dt);break;case 12:case 13:ct=st[ht++],ft+=String.fromCharCode((dt&31)<<6|ct&63);break;case 14:ct=st[ht++],pt=st[ht++],ft+=String.fromCharCode((dt&15)<<12|(ct&63)<<6|(pt&63)<<0);break}}return ft}const Hex={hexDump:function(st){let at="";for(let ut=0;ut1||dt===1&&this.levelkeys[ut[0]].encrypted)return!0}return!1}get programDateTime(){return this._programDateTime===null&&this.rawProgramDateTime&&(this.programDateTime=Date.parse(this.rawProgramDateTime)),this._programDateTime}set programDateTime(at){if(!isFiniteNumber(at)){this._programDateTime=this.rawProgramDateTime=null;return}this._programDateTime=at}get ref(){return isMediaFragment(this)?(this._ref||(this._ref={base:this.base,start:this.start,duration:this.duration,sn:this.sn,programDateTime:this.programDateTime}),this._ref):null}addStart(at){this.setStart(this.start+at)}setStart(at){this.start=at,this._ref&&(this._ref.start=at)}setDuration(at){this.duration=at,this._ref&&(this._ref.duration=at)}setKeyFormat(at){if(this.levelkeys){const ut=this.levelkeys[at];ut&&!this._decryptdata&&(this._decryptdata=ut.getDecryptData(this.sn))}}abortRequests(){var at,ut;(at=this.loader)==null||at.abort(),(ut=this.keyLoader)==null||ut.abort()}setElementaryStreamInfo(at,ut,dt,ct,pt,ft=!1){const{elementaryStreams:ht}=this,mt=ht[at];if(!mt){ht[at]={startPTS:ut,endPTS:dt,startDTS:ct,endDTS:pt,partial:ft};return}mt.startPTS=Math.min(mt.startPTS,ut),mt.endPTS=Math.max(mt.endPTS,dt),mt.startDTS=Math.min(mt.startDTS,ct),mt.endDTS=Math.max(mt.endDTS,pt)}}class Part extends BaseSegment{constructor(at,ut,dt,ct,pt){super(dt),this.fragOffset=0,this.duration=0,this.gap=!1,this.independent=!1,this.relurl=void 0,this.fragment=void 0,this.index=void 0,this.duration=at.decimalFloatingPoint("DURATION"),this.gap=at.bool("GAP"),this.independent=at.bool("INDEPENDENT"),this.relurl=at.enumeratedString("URI"),this.fragment=ut,this.index=ct;const ft=at.enumeratedString("BYTERANGE");ft&&this.setByteRange(ft,pt),pt&&(this.fragOffset=pt.fragOffset+pt.duration)}get start(){return this.fragment.start+this.fragOffset}get end(){return this.start+this.duration}get loaded(){const{elementaryStreams:at}=this;return!!(at.audio||at.video||at.audiovideo)}}function getOwnPropertyDescriptorFromPrototypeChain(st,at){const ut=Object.getPrototypeOf(st);if(ut){const dt=Object.getOwnPropertyDescriptor(ut,at);return dt||getOwnPropertyDescriptorFromPrototypeChain(ut,at)}}function makeEnumerable(st,at){const ut=getOwnPropertyDescriptorFromPrototypeChain(st,at);ut&&(ut.enumerable=!0,Object.defineProperty(st,at,ut))}const UINT32_MAX$1=Math.pow(2,32)-1,push=[].push,RemuxerTrackIdConfig={video:1,audio:2,id3:3,text:4};function bin2str(st){return String.fromCharCode.apply(null,st)}function readUint16(st,at){const ut=st[at]<<8|st[at+1];return ut<0?65536+ut:ut}function readUint32(st,at){const ut=readSint32(st,at);return ut<0?4294967296+ut:ut}function readUint64(st,at){let ut=readUint32(st,at);return ut*=Math.pow(2,32),ut+=readUint32(st,at+4),ut}function readSint32(st,at){return st[at]<<24|st[at+1]<<16|st[at+2]<<8|st[at+3]}function hasMoofData(st){const at=st.byteLength;for(let ut=0;ut8&&st[ut+4]===109&&st[ut+5]===111&&st[ut+6]===111&&st[ut+7]===102)return!0;ut=dt>1?ut+dt:at}return!1}function findBox(st,at){const ut=[];if(!at.length)return ut;const dt=st.byteLength;for(let ct=0;ct1?ct+pt:dt;if(ft===at[0])if(at.length===1)ut.push(st.subarray(ct+8,ht));else{const mt=findBox(st.subarray(ct+8,ht),at.slice(1));mt.length&&push.apply(ut,mt)}ct=ht}return ut}function parseSegmentIndex(st){const at=[],ut=st[0];let dt=8;const ct=readUint32(st,dt);dt+=4;let pt=0,ft=0;ut===0?(pt=readUint32(st,dt),ft=readUint32(st,dt+4),dt+=8):(pt=readUint64(st,dt),ft=readUint64(st,dt+8),dt+=16),dt+=2;let ht=st.length+ft;const mt=readUint16(st,dt);dt+=2;for(let yt=0;yt>>31===1)return logger.warn("SIDX has hierarchical references (not supported)"),null;const vt=readUint32(st,bt);bt+=4,at.push({referenceSize:St,subsegmentDuration:vt,info:{duration:vt/ct,start:ht,end:ht+St-1}}),ht+=St,bt+=4,dt=bt}return{earliestPresentationTime:pt,timescale:ct,version:ut,referencesCount:mt,references:at}}function parseInitSegment(st){const at=[],ut=findBox(st,["moov","trak"]);for(let ct=0;ct{const pt=readUint32(ct,4),ft=at[pt];ft&&(ft.default={duration:readUint32(ct,12),flags:readUint32(ct,20)})}),at}function parseStsd(st){const at=st.subarray(8),ut=at.subarray(86),dt=bin2str(at.subarray(4,8));let ct=dt,pt;const ft=dt==="enca"||dt==="encv";if(ft){const yt=findBox(at,[dt])[0].subarray(dt==="enca"?28:78);findBox(yt,["sinf"]).forEach(Tt=>{const St=findBox(Tt,["schm"])[0];if(St){const At=bin2str(St.subarray(4,8));if(At==="cbcs"||At==="cenc"){const vt=findBox(Tt,["frma"])[0];vt&&(ct=bin2str(vt))}}})}const ht=ct;switch(ct){case"avc1":case"avc2":case"avc3":case"avc4":{const mt=findBox(ut,["avcC"])[0];mt&&mt.length>3&&(ct+="."+toHex(mt[1])+toHex(mt[2])+toHex(mt[3]),pt=parseSupplementalDoViCodec(ht==="avc1"?"dva1":"dvav",ut));break}case"mp4a":{const mt=findBox(at,[dt])[0],yt=findBox(mt.subarray(28),["esds"])[0];if(yt&&yt.length>7){let bt=4;if(yt[bt++]!==3)break;bt=skipBERInteger(yt,bt),bt+=2;const Tt=yt[bt++];if(Tt&128&&(bt+=2),Tt&64&&(bt+=yt[bt++]),yt[bt++]!==4)break;bt=skipBERInteger(yt,bt);const St=yt[bt++];if(St===64)ct+="."+toHex(St);else break;if(bt+=12,yt[bt++]!==5)break;bt=skipBERInteger(yt,bt);const At=yt[bt++];let vt=(At&248)>>3;vt===31&&(vt+=1+((At&7)<<3)+((yt[bt]&224)>>5)),ct+="."+vt}break}case"hvc1":case"hev1":{const mt=findBox(ut,["hvcC"])[0];if(mt&&mt.length>12){const yt=mt[1],bt=["","A","B","C"][yt>>6],Tt=yt&31,St=readUint32(mt,2),At=(yt&32)>>5?"H":"L",vt=mt[12],Dt=mt.subarray(6,12);ct+="."+bt+Tt,ct+="."+reverse32BitInt(St).toString(16).toUpperCase(),ct+="."+At+vt;let Et="";for(let _t=Dt.length;_t--;){const xt=Dt[_t];(xt||Et)&&(Et="."+xt.toString(16).toUpperCase()+Et)}ct+=Et}pt=parseSupplementalDoViCodec(ht=="hev1"?"dvhe":"dvh1",ut);break}case"dvh1":case"dvhe":case"dvav":case"dva1":case"dav1":{ct=parseSupplementalDoViCodec(ct,ut)||ct;break}case"vp09":{const mt=findBox(ut,["vpcC"])[0];if(mt&&mt.length>6){const yt=mt[4],bt=mt[5],Tt=mt[6]>>4&15;ct+="."+addLeadingZero(yt)+"."+addLeadingZero(bt)+"."+addLeadingZero(Tt)}break}case"av01":{const mt=findBox(ut,["av1C"])[0];if(mt&&mt.length>2){const yt=mt[1]>>>5,bt=mt[1]&31,Tt=mt[2]>>>7?"H":"M",St=(mt[2]&64)>>6,At=(mt[2]&32)>>5,vt=yt===2&&St?At?12:10:St?10:8,Dt=(mt[2]&16)>>4,Et=(mt[2]&8)>>3,_t=(mt[2]&4)>>2,xt=mt[2]&3;ct+="."+yt+"."+addLeadingZero(bt)+Tt+"."+addLeadingZero(vt)+"."+Dt+"."+Et+_t+xt+"."+addLeadingZero(1)+"."+addLeadingZero(1)+"."+addLeadingZero(1)+"."+0,pt=parseSupplementalDoViCodec("dav1",ut)}break}}return{codec:ct,encrypted:ft,supplemental:pt}}function parseSupplementalDoViCodec(st,at){const ut=findBox(at,["dvvC"]),dt=ut.length?ut[0]:findBox(at,["dvcC"])[0];if(dt){const ct=dt[2]>>1&127,pt=dt[2]<<5&32|dt[3]>>3&31;return st+"."+addLeadingZero(ct)+"."+addLeadingZero(pt)}}function reverse32BitInt(st){let at=0;for(let ut=0;ut<32;ut++)at|=(st>>ut&1)<<31-ut;return at>>>0}function skipBERInteger(st,at){const ut=at+5;for(;st[at++]&128&&at{const ft=findBox(ct,["mdia","minf","stbl","stsd"])[0].subarray(8);let ht=findBox(ft,["enca"]);const mt=ht.length>0;mt||(ht=findBox(ft,["encv"])),ht.forEach(yt=>{const bt=mt?yt.subarray(28):yt.subarray(78);findBox(bt,["sinf"]).forEach(St=>{const At=parseSinf(St);if(At){const vt=At.subarray(8,24);vt.some(Dt=>Dt!==0)||(logger.log(`[eme] Patching keyId in 'enc${mt?"a":"v"}>sinf>>tenc' box: ${Hex.hexDump(vt)} -> ${Hex.hexDump(ut)}`),At.set(ut,8))}})})}),st}function parseSinf(st){const at=findBox(st,["schm"])[0];if(at){const ut=bin2str(at.subarray(4,8));if(ut==="cbcs"||ut==="cenc")return findBox(st,["schi","tenc"])[0]}return null}function getSampleData(st,at,ut){const dt={},ct=findBox(st,["moof","traf"]);for(let pt=0;ptdt[pt].duration)){let pt=1/0,ft=0;const ht=findBox(st,["sidx"]);for(let mt=0;mtTt+St.info.duration||0,0);ft=Math.max(ft,bt+yt.earliestPresentationTime/yt.timescale)}}ft&&isFiniteNumber(ft)&&Object.keys(dt).forEach(mt=>{dt[mt].duration||(dt[mt].duration=ft*dt[mt].timescale-dt[mt].start)})}return dt}function segmentValidRange(st){const at={valid:null,remainder:null},ut=findBox(st,["moof"]);if(ut.length<2)return at.remainder=st,at;const dt=ut[ut.length-1];return at.valid=st.slice(0,dt.byteOffset-8),at.remainder=st.slice(dt.byteOffset-8),at}function appendUint8Array(st,at){const ut=new Uint8Array(st.length+at.length);return ut.set(st),ut.set(at,st.length),ut}function parseSamples(st,at){const ut=[],dt=at.samples,ct=at.timescale,pt=at.id;let ft=!1;return findBox(dt,["moof"]).map(mt=>{const yt=mt.byteOffset-8;findBox(mt,["traf"]).map(Tt=>{const St=findBox(Tt,["tfdt"]).map(At=>{const vt=At[0];let Dt=readUint32(At,4);return vt===1&&(Dt*=Math.pow(2,32),Dt+=readUint32(At,8)),Dt/ct})[0];return St!==void 0&&(st=St),findBox(Tt,["tfhd"]).map(At=>{const vt=readUint32(At,4),Dt=readUint32(At,0)&16777215,Et=(Dt&1)!==0,_t=(Dt&2)!==0,xt=(Dt&8)!==0;let Ct=0;const kt=(Dt&16)!==0;let wt=0;const $t=(Dt&32)!==0;let Lt=8;vt===pt&&(Et&&(Lt+=8),_t&&(Lt+=4),xt&&(Ct=readUint32(At,Lt),Lt+=4),kt&&(wt=readUint32(At,Lt),Lt+=4),$t&&(Lt+=4),at.type==="video"&&(ft=isHEVC(at.codec)),findBox(Tt,["trun"]).map(Ot=>{const zt=Ot[0],Mt=readUint32(Ot,0)&16777215,qt=(Mt&1)!==0;let Qt=0;const Yt=(Mt&4)!==0,jt=(Mt&256)!==0;let Ft=0;const Vt=(Mt&512)!==0;let Ht=0;const Kt=(Mt&1024)!==0,Zt=(Mt&2048)!==0;let Wt=0;const Nt=readUint32(Ot,4);let Rt=8;qt&&(Qt=readUint32(Ot,Rt),Rt+=4),Yt&&(Rt+=4);let Bt=Qt+yt;for(let Pt=0;Pt>1&63;return ut===39||ut===40}else return(at&31)===6}function parseSEIMessageFromNALu(st,at,ut,dt){const ct=discardEPB(st);let pt=0;pt+=at;let ft=0,ht=0,mt=0;for(;pt=ct.length)break;mt=ct[pt++],ft+=mt}while(mt===255);ht=0;do{if(pt>=ct.length)break;mt=ct[pt++],ht+=mt}while(mt===255);const yt=ct.length-pt;let bt=pt;if(htyt){logger.error(`Malformed SEI payload. ${ht} is too small, only ${yt} bytes left to parse.`);break}if(ft===4){if(ct[bt++]===181){const St=readUint16(ct,bt);if(bt+=2,St===49){const At=readUint32(ct,bt);if(bt+=4,At===1195456820){const vt=ct[bt++];if(vt===3){const Dt=ct[bt++],Et=31&Dt,_t=64&Dt,xt=_t?2+Et*3:0,Ct=new Uint8Array(xt);if(_t){Ct[0]=Dt;for(let kt=1;kt16){const Tt=[];for(let vt=0;vt<16;vt++){const Dt=ct[bt++].toString(16);Tt.push(Dt.length==1?"0"+Dt:Dt),(vt===3||vt===5||vt===7||vt===9)&&Tt.push("-")}const St=ht-16,At=new Uint8Array(St);for(let vt=0;vt>24&255,pt[1]=dt>>16&255,pt[2]=dt>>8&255,pt[3]=dt&255,pt.set(st,4),ct=0,dt=8;ct0?(pt=new Uint8Array(4),at.length>0&&new DataView(pt.buffer).setUint32(0,at.length,!1)):pt=new Uint8Array;const ft=new Uint8Array(4);return ut&&ut.byteLength>0&&new DataView(ft.buffer).setUint32(0,ut.byteLength,!1),mp4Box([112,115,115,104],new Uint8Array([dt,0,0,0]),st,pt,ct,ft,ut||new Uint8Array)}const userAgentHevcSupportIsInaccurate=()=>/\(Windows.+Firefox\//i.test(navigator.userAgent),sampleEntryCodesISO={audio:{a3ds:1,"ac-3":.95,"ac-4":1,alac:.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":.9,enca:1,fLaC:.9,flac:.9,FLAC:.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:.8,dav1:.8,drac:1,dva1:1,dvav:1,dvh1:.7,dvhe:.7,encv:1,hev1:.75,hvc1:.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:.9},text:{stpp:1,wvtt:1}};function isCodecType(st,at){const ut=sampleEntryCodesISO[at];return!!ut&&!!ut[st.slice(0,4)]}function areCodecsMediaSourceSupported(st,at,ut=!0){return!st.split(",").some(dt=>!isCodecMediaSourceSupported(dt,at,ut))}function isCodecMediaSourceSupported(st,at,ut=!0){var dt;const ct=getMediaSource(ut);return(dt=ct==null?void 0:ct.isTypeSupported(mimeTypeForCodec(st,at)))!=null?dt:!1}function mimeTypeForCodec(st,at){return`${at}/mp4;codecs=${st}`}function videoCodecPreferenceValue(st){if(st){const at=st.substring(0,4);return sampleEntryCodesISO.video[at]}return 2}function codecsSetSelectionPreferenceValue(st){const at=userAgentHevcSupportIsInaccurate();return st.split(",").reduce((ut,dt)=>{const pt=at&&isHEVC(dt)?9:sampleEntryCodesISO.video[dt];return pt?(pt*2+ut)/(ut?3:2):(sampleEntryCodesISO.audio[dt]+ut)/(ut?2:1)},0)}const CODEC_COMPATIBLE_NAMES={};function getCodecCompatibleNameLower(st,at=!0){if(CODEC_COMPATIBLE_NAMES[st])return CODEC_COMPATIBLE_NAMES[st];const ut={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[st];for(let ct=0;ctgetCodecCompatibleNameLower(ut.toLowerCase(),at))}function replaceVideoCodec(st,at){const ut=[];if(st){const dt=st.split(",");for(let ct=0;ct4||["ac-3","ec-3","alac","fLaC","Opus"].indexOf(st)!==-1)&&(isCodecSupportedAsType(st,"audio")||isCodecSupportedAsType(st,"video")))return st;if(at){const ut=at.split(",");if(ut.length>1){if(st){for(let dt=ut.length;dt--;)if(ut[dt].substring(0,4)===st.substring(0,4))return ut[dt]}return ut[0]}}return at||st}function isCodecSupportedAsType(st,at){return isCodecType(st,at)&&isCodecMediaSourceSupported(st,at)}function convertAVC1ToAVCOTI(st){const at=st.split(",");for(let ut=0;ut2&&dt[0]==="avc1"&&(at[ut]=`avc1.${parseInt(dt[1]).toString(16)}${("000"+parseInt(dt[2]).toString(16)).slice(-4)}`)}return at.join(",")}function fillInMissingAV01Params(st){if(st.startsWith("av01.")){const at=st.split("."),ut=["0","111","01","01","01","0"];for(let dt=at.length;dt>4&&dt<10;dt++)at[dt]=ut[dt-4];return at.join(".")}return st}function getM2TSSupportedAudioTypes(st){const at=getMediaSource(st)||{isTypeSupported:()=>!1};return{mpeg:at.isTypeSupported("audio/mpeg"),mp3:at.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:at.isTypeSupported('audio/mp4; codecs="ac-3"')}}function getCodecsForMimeType(st){return st.replace(/^.+codecs=["']?([^"']+).*$/,"$1")}const SUPPORTED_INFO_DEFAULT={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]};function getUnsupportedResult(st,at){return{supported:!1,configurations:at,decodingInfoResults:[{supported:!1,smooth:!1,powerEfficient:!1}],error:st}}function requiresMediaCapabilitiesDecodingInfo(st,at,ut,dt,ct,pt){const ft=st.videoCodec,ht=st.audioCodec?st.audioGroups:null,mt=pt==null?void 0:pt.audioCodec,yt=pt==null?void 0:pt.channels,bt=yt?parseInt(yt):mt?1/0:2;let Tt=null;if(ht!=null&&ht.length)try{ht.length===1&&ht[0]?Tt=at.groups[ht[0]].channels:Tt=ht.reduce((St,At)=>{if(At){const vt=at.groups[At];if(!vt)throw new Error(`Audio track group ${At} not found`);Object.keys(vt.channels).forEach(Dt=>{St[Dt]=(St[Dt]||0)+vt.channels[Dt]})}return St},{2:0})}catch{return!0}return ft!==void 0&&(ft.split(",").some(St=>isHEVC(St))||st.width>1920&&st.height>1088||st.height>1920&&st.width>1088||st.frameRate>Math.max(dt,30)||st.videoRange!=="SDR"&&st.videoRange!==ut||st.bitrate>Math.max(ct,8e6))||!!Tt&&isFiniteNumber(bt)&&Object.keys(Tt).some(St=>parseInt(St)>bt)}function getMediaDecodingInfoPromise(st,at,ut,dt={}){const ct=st.videoCodec;if(!ct&&!st.audioCodec||!ut)return Promise.resolve(SUPPORTED_INFO_DEFAULT);const pt=[],ft=makeVideoConfigurations(st),ht=ft.length,mt=makeAudioConfigurations(st,at,ht>0),yt=mt.length;for(let bt=ht||1*yt||1;bt--;){const Tt={type:"media-source"};if(ht&&(Tt.video=ft[bt%ht]),yt){Tt.audio=mt[bt%yt];const St=Tt.audio.bitrate;Tt.video&&St&&(Tt.video.bitrate-=St)}pt.push(Tt)}if(ct){const bt=navigator.userAgent;if(ct.split(",").some(Tt=>isHEVC(Tt))&&userAgentHevcSupportIsInaccurate())return Promise.resolve(getUnsupportedResult(new Error(`Overriding Windows Firefox HEVC MediaCapabilities result based on user-agent string: (${bt})`),pt))}return Promise.all(pt.map(bt=>{const Tt=getMediaDecodingInfoKey(bt);return dt[Tt]||(dt[Tt]=ut.decodingInfo(bt))})).then(bt=>({supported:!bt.some(Tt=>!Tt.supported),configurations:pt,decodingInfoResults:bt})).catch(bt=>({supported:!1,configurations:pt,decodingInfoResults:[],error:bt}))}function makeVideoConfigurations(st){var at;const ut=(at=st.videoCodec)==null?void 0:at.split(","),dt=getVariantDecodingBitrate(st),ct=st.width||640,pt=st.height||480,ft=st.frameRate||30,ht=st.videoRange.toLowerCase();return ut?ut.map(mt=>{const yt={contentType:mimeTypeForCodec(fillInMissingAV01Params(mt),"video"),width:ct,height:pt,bitrate:dt,framerate:ft};return ht!=="sdr"&&(yt.transferFunction=ht),yt}):[]}function makeAudioConfigurations(st,at,ut){var dt;const ct=(dt=st.audioCodec)==null?void 0:dt.split(","),pt=getVariantDecodingBitrate(st);return ct&&st.audioGroups?st.audioGroups.reduce((ft,ht)=>{var mt;const yt=ht?(mt=at.groups[ht])==null?void 0:mt.tracks:null;return yt?yt.reduce((bt,Tt)=>{if(Tt.groupId===ht){const St=parseFloat(Tt.channels||"");ct.forEach(At=>{const vt={contentType:mimeTypeForCodec(At,"audio"),bitrate:ut?estimatedAudioBitrate(At,pt):pt};St&&(vt.channels=""+St),bt.push(vt)})}return bt},ft):ft},[]):[]}function estimatedAudioBitrate(st,at){if(at<=1)return 1;let ut=128e3;return st==="ec-3"?ut=768e3:st==="ac-3"&&(ut=64e4),Math.min(at/2,ut)}function getVariantDecodingBitrate(st){return Math.ceil(Math.max(st.bitrate*.9,st.averageBitrate)/1e3)*1e3||1}function getMediaDecodingInfoKey(st){let at="";const{audio:ut,video:dt}=st;if(dt){const ct=getCodecsForMimeType(dt.contentType);at+=`${ct}_r${dt.height}x${dt.width}f${Math.ceil(dt.framerate)}${dt.transferFunction||"sd"}_${Math.ceil(dt.bitrate/1e5)}`}if(ut){const ct=getCodecsForMimeType(ut.contentType);at+=`${dt?"_":""}${ct}_c${ut.channels}`}return at}const HdcpLevels=["NONE","TYPE-0","TYPE-1",null];function isHdcpLevel(st){return HdcpLevels.indexOf(st)>-1}const VideoRangeValues=["SDR","PQ","HLG"];function isVideoRange(st){return!!st&&VideoRangeValues.indexOf(st)>-1}var HlsSkip={No:"",Yes:"YES",v2:"v2"};function getSkipValue(st){const{canSkipUntil:at,canSkipDateRanges:ut,age:dt}=st,ct=dt!!dt).map(dt=>dt.substring(0,4)).join(","),"supplemental"in at){var ut;this.supplemental=at.supplemental;const dt=(ut=at.supplemental)==null?void 0:ut.videoCodec;dt&&dt!==at.videoCodec&&(this.codecSet+=`,${dt.substring(0,4)}`)}this.addGroupId("audio",at.attrs.AUDIO),this.addGroupId("text",at.attrs.SUBTITLES)}get maxBitrate(){return Math.max(this.realBitrate,this.bitrate)}get averageBitrate(){return this._avgBitrate||this.realBitrate||this.bitrate}get attrs(){return this._attrs[0]}get codecs(){return this.attrs.CODECS||""}get pathwayId(){return this.attrs["PATHWAY-ID"]||"."}get videoRange(){return this.attrs["VIDEO-RANGE"]||"SDR"}get score(){return this.attrs.optionalFloat("SCORE",0)}get uri(){return this.url[0]||""}hasAudioGroup(at){return hasGroup(this._audioGroups,at)}hasSubtitleGroup(at){return hasGroup(this._subtitleGroups,at)}get audioGroups(){return this._audioGroups}get subtitleGroups(){return this._subtitleGroups}addGroupId(at,ut){if(ut){if(at==="audio"){let dt=this._audioGroups;dt||(dt=this._audioGroups=[]),dt.indexOf(ut)===-1&&dt.push(ut)}else if(at==="text"){let dt=this._subtitleGroups;dt||(dt=this._subtitleGroups=[]),dt.indexOf(ut)===-1&&dt.push(ut)}}}get urlId(){return 0}set urlId(at){}get audioGroupIds(){return this.audioGroups?[this.audioGroupId]:void 0}get textGroupIds(){return this.subtitleGroups?[this.textGroupId]:void 0}get audioGroupId(){var at;return(at=this.audioGroups)==null?void 0:at[0]}get textGroupId(){var at;return(at=this.subtitleGroups)==null?void 0:at[0]}addFallback(){}}function hasGroup(st,at){return!at||!st?!1:st.indexOf(at)!==-1}function isHdrSupported(){if(typeof matchMedia=="function"){const st=matchMedia("(dynamic-range: high)"),at=matchMedia("bad query");if(st.media!==at.media)return st.matches===!0}return!1}function getVideoSelectionOptions(st,at){let ut=!1,dt=[];if(st&&(ut=st!=="SDR",dt=[st]),at){dt=at.allowedVideoRanges||VideoRangeValues.slice(0);const ct=dt.join("")!=="SDR"&&!at.videoCodec;ut=at.preferHDR!==void 0?at.preferHDR:ct&&isHdrSupported(),ut||(dt=["SDR"])}return{preferHDR:ut,allowedVideoRanges:dt}}const omitCircularRefsReplacer=st=>{const at=new WeakSet;return(ut,dt)=>{if(st&&(dt=st(ut,dt)),typeof dt=="object"&&dt!==null){if(at.has(dt))return;at.add(dt)}return dt}},stringify=(st,at)=>JSON.stringify(st,omitCircularRefsReplacer(at));function getStartCodecTier(st,at,ut,dt,ct){const pt=Object.keys(st),ft=dt==null?void 0:dt.channels,ht=dt==null?void 0:dt.audioCodec,mt=ct==null?void 0:ct.videoCodec,yt=ft&&parseInt(ft)===2;let bt=!1,Tt=!1,St=1/0,At=1/0,vt=1/0,Dt=1/0,Et=0,_t=[];const{preferHDR:xt,allowedVideoRanges:Ct}=getVideoSelectionOptions(at,ct);for(let Ot=pt.length;Ot--;){const zt=st[pt[Ot]];bt||(bt=zt.channels[2]>0),St=Math.min(St,zt.minHeight),At=Math.min(At,zt.minFramerate),vt=Math.min(vt,zt.minBitrate),Ct.filter(qt=>zt.videoRanges[qt]>0).length>0&&(Tt=!0)}St=isFiniteNumber(St)?St:0,At=isFiniteNumber(At)?At:0;const kt=Math.max(1080,St),wt=Math.max(30,At);vt=isFiniteNumber(vt)?vt:ut,ut=Math.max(vt,ut),Tt||(at=void 0);const $t=pt.length>1;return{codecSet:pt.reduce((Ot,zt)=>{const Mt=st[zt];if(zt===Ot)return Ot;if(_t=Tt?Ct.filter(qt=>Mt.videoRanges[qt]>0):[],$t){if(Mt.minBitrate>ut)return logStartCodecCandidateIgnored(zt,`min bitrate of ${Mt.minBitrate} > current estimate of ${ut}`),Ot;if(!Mt.hasDefaultAudio)return logStartCodecCandidateIgnored(zt,"no renditions with default or auto-select sound found"),Ot;if(ht&&zt.indexOf(ht.substring(0,4))%5!==0)return logStartCodecCandidateIgnored(zt,`audio codec preference "${ht}" not found`),Ot;if(ft&&!yt){if(!Mt.channels[ft])return logStartCodecCandidateIgnored(zt,`no renditions with ${ft} channel sound found (channels options: ${Object.keys(Mt.channels)})`),Ot}else if((!ht||yt)&&bt&&Mt.channels[2]===0)return logStartCodecCandidateIgnored(zt,"no renditions with stereo sound found"),Ot;if(Mt.minHeight>kt)return logStartCodecCandidateIgnored(zt,`min resolution of ${Mt.minHeight} > maximum of ${kt}`),Ot;if(Mt.minFramerate>wt)return logStartCodecCandidateIgnored(zt,`min framerate of ${Mt.minFramerate} > maximum of ${wt}`),Ot;if(!_t.some(qt=>Mt.videoRanges[qt]>0))return logStartCodecCandidateIgnored(zt,`no variants with VIDEO-RANGE of ${stringify(_t)} found`),Ot;if(mt&&zt.indexOf(mt.substring(0,4))%5!==0)return logStartCodecCandidateIgnored(zt,`video codec preference "${mt}" not found`),Ot;if(Mt.maxScore=codecsSetSelectionPreferenceValue(Ot)||Mt.fragmentError>st[Ot].fragmentError)?Ot:(Dt=Mt.minIndex,Et=Mt.maxScore,zt)},void 0),videoRanges:_t,preferHDR:xt,minFramerate:At,minBitrate:vt,minIndex:Dt}}function logStartCodecCandidateIgnored(st,at){logger.log(`[abr] start candidates with "${st}" ignored because ${at}`)}function getAudioTracksByGroup(st){return st.reduce((at,ut)=>{let dt=at.groups[ut.groupId];dt||(dt=at.groups[ut.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),dt.tracks.push(ut);const ct=ut.channels||"2";return dt.channels[ct]=(dt.channels[ct]||0)+1,dt.hasDefault=dt.hasDefault||ut.default,dt.hasAutoSelect=dt.hasAutoSelect||ut.autoselect,dt.hasDefault&&(at.hasDefaultAudio=!0),dt.hasAutoSelect&&(at.hasAutoSelectAudio=!0),at},{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}function getCodecTiers(st,at,ut,dt){return st.slice(ut,dt+1).reduce((ct,pt,ft)=>{if(!pt.codecSet)return ct;const ht=pt.audioGroups;let mt=ct[pt.codecSet];mt||(ct[pt.codecSet]=mt={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,minIndex:ft,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!ht,fragmentError:0}),mt.minBitrate=Math.min(mt.minBitrate,pt.bitrate);const yt=Math.min(pt.height,pt.width);return mt.minHeight=Math.min(mt.minHeight,yt),mt.minFramerate=Math.min(mt.minFramerate,pt.frameRate),mt.minIndex=Math.min(mt.minIndex,ft),mt.maxScore=Math.max(mt.maxScore,pt.score),mt.fragmentError+=pt.fragmentError,mt.videoRanges[pt.videoRange]=(mt.videoRanges[pt.videoRange]||0)+1,ht&&ht.forEach(bt=>{if(!bt)return;const Tt=at.groups[bt];Tt&&(mt.hasDefaultAudio=mt.hasDefaultAudio||at.hasDefaultAudio?Tt.hasDefault:Tt.hasAutoSelect||!at.hasDefaultAudio&&!at.hasAutoSelectAudio,Object.keys(Tt.channels).forEach(St=>{mt.channels[St]=(mt.channels[St]||0)+Tt.channels[St]}))}),ct},{})}function getBasicSelectionOption(st){if(!st)return st;const{lang:at,assocLang:ut,characteristics:dt,channels:ct,audioCodec:pt}=st;return{lang:at,assocLang:ut,characteristics:dt,channels:ct,audioCodec:pt}}function findMatchingOption(st,at,ut){if("attrs"in st){const dt=at.indexOf(st);if(dt!==-1)return dt}for(let dt=0;dtdt.indexOf(ct)===-1)}function audioMatchPredicate(st,at){const{audioCodec:ut,channels:dt}=st;return(ut===void 0||(at.audioCodec||"").substring(0,4)===ut.substring(0,4))&&(dt===void 0||dt===(at.channels||"2"))}function findClosestLevelWithAudioGroup(st,at,ut,dt,ct){const pt=at[dt],ht=at.reduce((St,At,vt)=>{const Dt=At.uri;return(St[Dt]||(St[Dt]=[])).push(vt),St},{})[pt.uri];ht.length>1&&(dt=Math.max.apply(Math,ht));const mt=pt.videoRange,yt=pt.frameRate,bt=pt.codecSet.substring(0,4),Tt=searchDownAndUpList(at,dt,St=>{if(St.videoRange!==mt||St.frameRate!==yt||St.codecSet.substring(0,4)!==bt)return!1;const At=St.audioGroups,vt=ut.filter(Dt=>!At||At.indexOf(Dt.groupId)!==-1);return findMatchingOption(st,vt,ct)>-1});return Tt>-1?Tt:searchDownAndUpList(at,dt,St=>{const At=St.audioGroups,vt=ut.filter(Dt=>!At||At.indexOf(Dt.groupId)!==-1);return findMatchingOption(st,vt,ct)>-1})}function searchDownAndUpList(st,at,ut){for(let dt=at;dt>-1;dt--)if(ut(st[dt]))return dt;for(let dt=at+1;dt{var dt;const{fragCurrent:ct,partCurrent:pt,hls:ft}=this,{autoLevelEnabled:ht,media:mt}=ft;if(!ct||!mt)return;const yt=performance.now(),bt=pt?pt.stats:ct.stats,Tt=pt?pt.duration:ct.duration,St=yt-bt.loading.start,At=ft.minAutoLevel,vt=ct.level,Dt=this._nextAutoLevel;if(bt.aborted||bt.loaded&&bt.loaded===bt.total||vt<=At){this.clearTimer(),this._nextAutoLevel=-1;return}if(!ht)return;const Et=Dt>-1&&Dt!==vt,_t=!!ut||Et;if(!_t&&(mt.paused||!mt.playbackRate||!mt.readyState))return;const xt=ft.mainForwardBufferInfo;if(!_t&&xt===null)return;const Ct=this.bwEstimator.getEstimateTTFB(),kt=Math.abs(mt.playbackRate);if(St<=Math.max(Ct,1e3*(Tt/(kt*2))))return;const wt=xt?xt.len/kt:0,$t=bt.loading.first?bt.loading.first-bt.loading.start:-1,Lt=bt.loaded&&$t>-1,Ot=this.getBwEstimate(),zt=ft.levels,Mt=zt[vt],qt=Math.max(bt.loaded,Math.round(Tt*(ct.bitrate||Mt.averageBitrate)/8));let Qt=Lt?St-$t:St;Qt<1&&Lt&&(Qt=Math.min(St,bt.loaded*8/Ot));const Yt=Lt?bt.loaded*1e3/Qt:0,jt=Ct/1e3,Ft=Yt?(qt-bt.loaded)/Yt:qt*8/Ot+jt;if(Ft<=wt)return;const Vt=Yt?Yt*8:Ot,Ht=((dt=(ut==null?void 0:ut.details)||this.hls.latestLevelDetails)==null?void 0:dt.live)===!0,Kt=this.hls.config.abrBandWidthUpFactor;let Zt=Number.POSITIVE_INFINITY,Wt;for(Wt=vt-1;Wt>At;Wt--){const Pt=zt[Wt].maxBitrate,Ut=!zt[Wt].details||Ht;if(Zt=this.getTimeToLoadFrag(jt,Vt,Tt*Pt,Ut),Zt=Ft||Zt>Tt*10)return;Lt?this.bwEstimator.sample(St-Math.min(Ct,$t),bt.loaded):this.bwEstimator.sampleTTFB(St);const Nt=zt[Wt].maxBitrate;this.getBwEstimate()*Kt>Nt&&this.resetEstimator(Nt);const Rt=this.findBestLevel(Nt,At,Wt,0,wt,1,1);Rt>-1&&(Wt=Rt),this.warn(`Fragment ${ct.sn}${pt?" part "+pt.index:""} of level ${vt} is loading too slowly; Fragment duration: ${ct.duration.toFixed(3)} Time to underbuffer: ${wt.toFixed(3)} s Estimated load time for current fragment: ${Ft.toFixed(3)} s Estimated load time for down switch fragment: ${Zt.toFixed(3)} s TTFB estimate: ${$t|0} ms Current BW estimate: ${isFiniteNumber(Ot)?Ot|0:"Unknown"} bps New BW estimate: ${this.getBwEstimate()|0} bps Switching to level ${Wt} @ ${Nt|0} bps`),ft.nextLoadLevel=ft.nextAutoLevel=Wt,this.clearTimer();const Bt=()=>{if(this.clearTimer(),this.fragCurrent===ct&&this.hls.loadLevel===Wt&&Wt>0){const Pt=this.getStarvationDelay();if(this.warn(`Aborting inflight request ${Wt>0?"and switching down":""} Fragment duration: ${ct.duration.toFixed(3)} s Time to underbuffer: ${Pt.toFixed(3)} s`),ct.abortRequests(),this.fragCurrent=this.partCurrent=null,Wt>At){let Ut=this.findBestLevel(this.hls.levels[At].bitrate,At,Wt,0,Pt,1,1);Ut===-1&&(Ut=At),this.hls.nextLoadLevel=this.hls.nextAutoLevel=Ut,this.resetEstimator(this.hls.levels[Ut].bitrate)}}};Et||Ft>Zt*2?Bt():this.timer=self.setInterval(Bt,Zt*1e3),ft.trigger(Events.FRAG_LOAD_EMERGENCY_ABORTED,{frag:ct,part:pt,stats:bt})},this.hls=at,this.bwEstimator=this.initEstimator(),this.registerListeners()}resetEstimator(at){at&&(this.log(`setting initial bwe to ${at}`),this.hls.config.abrEwmaDefaultEstimate=at),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}initEstimator(){const at=this.hls.config;return new EwmaBandWidthEstimator(at.abrEwmaSlowVoD,at.abrEwmaFastVoD,at.abrEwmaDefaultEstimate)}registerListeners(){const{hls:at}=this;at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.FRAG_LOADING,this.onFragLoading,this),at.on(Events.FRAG_LOADED,this.onFragLoaded,this),at.on(Events.FRAG_BUFFERED,this.onFragBuffered,this),at.on(Events.LEVEL_SWITCHING,this.onLevelSwitching,this),at.on(Events.LEVEL_LOADED,this.onLevelLoaded,this),at.on(Events.LEVELS_UPDATED,this.onLevelsUpdated,this),at.on(Events.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),at.on(Events.ERROR,this.onError,this)}unregisterListeners(){const{hls:at}=this;at&&(at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.FRAG_LOADING,this.onFragLoading,this),at.off(Events.FRAG_LOADED,this.onFragLoaded,this),at.off(Events.FRAG_BUFFERED,this.onFragBuffered,this),at.off(Events.LEVEL_SWITCHING,this.onLevelSwitching,this),at.off(Events.LEVEL_LOADED,this.onLevelLoaded,this),at.off(Events.LEVELS_UPDATED,this.onLevelsUpdated,this),at.off(Events.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),at.off(Events.ERROR,this.onError,this))}destroy(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=this.supportedCache=null,this.fragCurrent=this.partCurrent=null}onManifestLoading(at,ut){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.supportedCache={},this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}onLevelsUpdated(){this.lastLoadedFragLevel>-1&&this.fragCurrent&&(this.lastLoadedFragLevel=this.fragCurrent.level),this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null}onMaxAutoLevelUpdated(){this.firstSelection=-1,this.nextAutoLevelKey=""}onFragLoading(at,ut){const dt=ut.frag;if(!this.ignoreFragment(dt)){if(!dt.bitrateTest){var ct;this.fragCurrent=dt,this.partCurrent=(ct=ut.part)!=null?ct:null}this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}onLevelSwitching(at,ut){this.clearTimer()}onError(at,ut){if(!ut.fatal)switch(ut.details){case ErrorDetails.BUFFER_ADD_CODEC_ERROR:case ErrorDetails.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case ErrorDetails.FRAG_LOAD_TIMEOUT:{const dt=ut.frag,{fragCurrent:ct,partCurrent:pt}=this;if(dt&&ct&&dt.sn===ct.sn&&dt.level===ct.level){const ft=performance.now(),ht=pt?pt.stats:dt.stats,mt=ft-ht.loading.start,yt=ht.loading.first?ht.loading.first-ht.loading.start:-1;if(ht.loaded&&yt>-1){const Tt=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(mt-Math.min(Tt,yt),ht.loaded)}else this.bwEstimator.sampleTTFB(mt)}break}}}getTimeToLoadFrag(at,ut,dt,ct){const pt=at+dt/ut,ft=ct?at+this.lastLevelLoadSec:0;return pt+ft}onLevelLoaded(at,ut){const dt=this.hls.config,{loading:ct}=ut.stats,pt=ct.end-ct.first;isFiniteNumber(pt)&&(this.lastLevelLoadSec=pt/1e3),ut.details.live?this.bwEstimator.update(dt.abrEwmaSlowLive,dt.abrEwmaFastLive):this.bwEstimator.update(dt.abrEwmaSlowVoD,dt.abrEwmaFastVoD),this.timer>-1&&this._abandonRulesCheck(ut.levelInfo)}onFragLoaded(at,{frag:ut,part:dt}){const ct=dt?dt.stats:ut.stats;if(ut.type===PlaylistLevelType.MAIN&&this.bwEstimator.sampleTTFB(ct.loading.first-ct.loading.start),!this.ignoreFragment(ut)){if(this.clearTimer(),ut.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){const pt=dt?dt.duration:ut.duration,ft=this.hls.levels[ut.level],ht=(ft.loaded?ft.loaded.bytes:0)+ct.loaded,mt=(ft.loaded?ft.loaded.duration:0)+pt;ft.loaded={bytes:ht,duration:mt},ft.realBitrate=Math.round(8*ht/mt)}if(ut.bitrateTest){const pt={stats:ct,frag:ut,part:dt,id:ut.type};this.onFragBuffered(Events.FRAG_BUFFERED,pt),ut.bitrateTest=!1}else this.lastLoadedFragLevel=ut.level}}onFragBuffered(at,ut){const{frag:dt,part:ct}=ut,pt=ct!=null&&ct.stats.loaded?ct.stats:dt.stats;if(pt.aborted||this.ignoreFragment(dt))return;const ft=pt.parsing.end-pt.loading.start-Math.min(pt.loading.first-pt.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(ft,pt.loaded),pt.bwEstimate=this.getBwEstimate(),dt.bitrateTest?this.bitrateTestDelay=ft/1e3:this.bitrateTestDelay=0}ignoreFragment(at){return at.type!==PlaylistLevelType.MAIN||at.sn==="initSegment"}clearTimer(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}get firstAutoLevel(){const{maxAutoLevel:at,minAutoLevel:ut}=this.hls,dt=this.getBwEstimate(),ct=this.hls.config.maxStarvationDelay,pt=this.findBestLevel(dt,ut,at,0,ct,1,1);if(pt>-1)return pt;const ft=this.hls.firstLevel,ht=Math.min(Math.max(ft,ut),at);return this.warn(`Could not find best starting auto level. Defaulting to first in playlist ${ft} clamped to ${ht}`),ht}get forcedAutoLevel(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}get nextAutoLevel(){const at=this.forcedAutoLevel,dt=this.bwEstimator.canEstimate(),ct=this.lastLoadedFragLevel>-1;if(at!==-1&&(!dt||!ct||this.nextAutoLevelKey===this.getAutoLevelKey()))return at;const pt=dt&&ct?this.getNextABRAutoLevel():this.firstAutoLevel;if(at!==-1){const ft=this.hls.levels;if(ft.length>Math.max(at,pt)&&ft[at].loadError<=ft[pt].loadError)return at}return this._nextAutoLevel=pt,this.nextAutoLevelKey=this.getAutoLevelKey(),pt}getAutoLevelKey(){return`${this.getBwEstimate()}_${this.getStarvationDelay().toFixed(2)}`}getNextABRAutoLevel(){const{fragCurrent:at,partCurrent:ut,hls:dt}=this;if(dt.levels.length<=1)return dt.loadLevel;const{maxAutoLevel:ct,config:pt,minAutoLevel:ft}=dt,ht=ut?ut.duration:at?at.duration:0,mt=this.getBwEstimate(),yt=this.getStarvationDelay();let bt=pt.abrBandWidthFactor,Tt=pt.abrBandWidthUpFactor;if(yt){const Et=this.findBestLevel(mt,ft,ct,yt,0,bt,Tt);if(Et>=0)return this.rebufferNotice=-1,Et}let St=ht?Math.min(ht,pt.maxStarvationDelay):pt.maxStarvationDelay;if(!yt){const Et=this.bitrateTestDelay;Et&&(St=(ht?Math.min(ht,pt.maxLoadingDelay):pt.maxLoadingDelay)-Et,this.info(`bitrate test took ${Math.round(1e3*Et)}ms, set first fragment max fetchDuration to ${Math.round(1e3*St)} ms`),bt=Tt=1)}const At=this.findBestLevel(mt,ft,ct,yt,St,bt,Tt);if(this.rebufferNotice!==At&&(this.rebufferNotice=At,this.info(`${yt?"rebuffering expected":"buffer is empty"}, optimal quality level ${At}`)),At>-1)return At;const vt=dt.levels[ft],Dt=dt.loadLevelObj;return Dt&&(vt==null?void 0:vt.bitrate)=ut;Ht--){var Ft,Vt;const Kt=vt[Ht],Zt=Ht>Tt;if(!Kt)continue;if(_t.useMediaCapabilities&&!Kt.supportedResult&&!Kt.supportedPromise){const Gt=navigator.mediaCapabilities;typeof(Gt==null?void 0:Gt.decodingInfo)=="function"&&requiresMediaCapabilitiesDecodingInfo(Kt,Mt,$t,Lt,at,Ot)?(Kt.supportedPromise=getMediaDecodingInfoPromise(Kt,Mt,Gt,this.supportedCache),Kt.supportedPromise.then(Xt=>{if(!this.hls)return;Kt.supportedResult=Xt;const na=this.hls.levels,xa=na.indexOf(Kt);Xt.error?this.warn(`MediaCapabilities decodingInfo error: "${Xt.error}" for level ${xa} ${stringify(Xt)}`):Xt.supported?Xt.decodingInfoResults.some($a=>$a.smooth===!1||$a.powerEfficient===!1)&&this.log(`MediaCapabilities decodingInfo for level ${xa} not smooth or powerEfficient: ${stringify(Xt)}`):(this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${xa} ${stringify(Xt)}`),xa>-1&&na.length>1&&(this.log(`Removing unsupported level ${xa}`),this.hls.removeLevel(xa),this.hls.loadLevel===-1&&(this.hls.nextLoadLevel=0)))})):Kt.supportedResult=SUPPORTED_INFO_DEFAULT}if((wt&&Kt.codecSet!==wt||$t&&Kt.videoRange!==$t||Zt&&Lt>Kt.frameRate||!Zt&&Lt>0&&LtGt.smooth===!1))&&(!kt||Ht!==qt)){jt.push(Ht);continue}const Wt=Kt.details,Nt=(At?Wt==null?void 0:Wt.partTarget:Wt==null?void 0:Wt.averagetargetduration)||Qt;let Rt;Zt?Rt=ht*at:Rt=ft*at;const Bt=Qt&&ct>=Qt*2&&pt===0?Kt.averageBitrate:Kt.maxBitrate,Pt=this.getTimeToLoadFrag(Yt,Rt,Bt*Nt,Wt===void 0);if(Rt>=Bt&&(Ht===bt||Kt.loadError===0&&Kt.fragmentError===0)&&(Pt<=Yt||!isFiniteNumber(Pt)||Ct&&!this.bitrateTestDelay||Pt${Ht} adjustedbw(${Math.round(Rt)})-bitrate=${Math.round(Rt-Bt)} ttfb:${Yt.toFixed(1)} avgDuration:${Nt.toFixed(1)} maxFetchDuration:${yt.toFixed(1)} fetchDuration:${Pt.toFixed(1)} firstSelection:${kt} codecSet:${Kt.codecSet} videoRange:${Kt.videoRange} hls.loadLevel:${Et}`)),kt&&(this.firstSelection=Ht),Ht}}return-1}set nextAutoLevel(at){const ut=this.deriveNextAutoLevel(at);this._nextAutoLevel!==ut&&(this.nextAutoLevelKey="",this._nextAutoLevel=ut)}deriveNextAutoLevel(at){const{maxAutoLevel:ut,minAutoLevel:dt}=this.hls;return Math.min(Math.max(at,dt),ut)}}const BinarySearch={search:function(st,at){let ut=0,dt=st.length-1,ct=null,pt=null;for(;ut<=dt;){ct=(ut+dt)/2|0,pt=st[ct];const ft=at(pt);if(ft>0)ut=ct+1;else if(ft<0)dt=ct-1;else return pt}return null}};function findFragmentByPDT(st,at,ut){if(at===null||!Array.isArray(st)||!st.length||!isFiniteNumber(at))return null;const dt=st[0].programDateTime;if(at<(dt||0))return null;const ct=st[st.length-1].endProgramDateTime;if(at>=(ct||0))return null;for(let pt=0;pt0&&ht<15e-7&&(ut+=15e-7),pt&&st.level!==pt.level&&pt.end<=st.end&&(pt=at[2+st.sn-at[0].sn]||null)}else ut===0&&at[0].start===0&&(pt=at[0]);if(pt&&((!st||st.level===pt.level)&&fragmentWithinToleranceTest(ut,dt,pt)===0||fragmentWithinFastStartSwitch(pt,st,Math.min(ct,dt))))return pt;const ft=BinarySearch.search(at,fragmentWithinToleranceTest.bind(null,ut,dt));return ft&&(ft!==st||!pt)?ft:pt}function fragmentWithinFastStartSwitch(st,at,ut){if(at&&at.start===0&&at.level0){const dt=at.tagList.reduce((ct,pt)=>(pt[0]==="INF"&&(ct+=parseFloat(pt[1])),ct),ut);return st.start<=dt}return!1}function fragmentWithinToleranceTest(st=0,at=0,ut){if(ut.start<=st&&ut.start+ut.duration>st)return 0;const dt=Math.min(at,ut.duration+(ut.deltaPTS?ut.deltaPTS:0));return ut.start+ut.duration-dt<=st?1:ut.start-dt>st&&ut.start?-1:0}function pdtWithinToleranceTest(st,at,ut){const dt=Math.min(at,ut.duration+(ut.deltaPTS?ut.deltaPTS:0))*1e3;return(ut.endProgramDateTime||0)-dt>st}function findNearestWithCC(st,at,ut){if(st&&st.startCC<=at&&st.endCC>=at){let dt=st.fragments;const{fragmentHint:ct}=st;ct&&(dt=dt.concat(ct));let pt;return BinarySearch.search(dt,ft=>ft.ccat?-1:(pt=ft,ft.end<=ut?1:ft.start>ut?-1:0)),pt||null}return null}function isTimeoutError(st){switch(st.details){case ErrorDetails.FRAG_LOAD_TIMEOUT:case ErrorDetails.KEY_LOAD_TIMEOUT:case ErrorDetails.LEVEL_LOAD_TIMEOUT:case ErrorDetails.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function getRetryConfig(st,at){const ut=isTimeoutError(at);return st.default[`${ut?"timeout":"error"}Retry`]}function getRetryDelay(st,at){const ut=st.backoff==="linear"?1:Math.pow(2,at);return Math.min(ut*st.retryDelayMs,st.maxRetryDelayMs)}function getLoaderConfigWithoutReties(st){return _objectSpread2(_objectSpread2({},st),{errorRetry:null,timeoutRetry:null})}function shouldRetry(st,at,ut,dt){if(!st)return!1;const ct=dt==null?void 0:dt.code,pt=at499)}var NetworkErrorAction={DoNothing:0,SendAlternateToPenaltyBox:2,RemoveAlternatePermanently:3,RetryRequest:5},ErrorActionFlags={None:0,MoveAllAlternatesMatchingHost:1,MoveAllAlternatesMatchingHDCP:2};class ErrorController extends Logger{constructor(at){super("error-controller",at.logger),this.hls=void 0,this.playlistError=0,this.penalizedRenditions={},this.hls=at,this.registerListeners()}registerListeners(){const at=this.hls;at.on(Events.ERROR,this.onError,this),at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.LEVEL_UPDATED,this.onLevelUpdated,this)}unregisterListeners(){const at=this.hls;at&&(at.off(Events.ERROR,this.onError,this),at.off(Events.ERROR,this.onErrorOut,this),at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.LEVEL_UPDATED,this.onLevelUpdated,this))}destroy(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}}startLoad(at){}stopLoad(){this.playlistError=0}getVariantLevelIndex(at){return(at==null?void 0:at.type)===PlaylistLevelType.MAIN?at.level:this.hls.loadLevel}onManifestLoading(){this.playlistError=0,this.penalizedRenditions={}}onLevelUpdated(){this.playlistError=0}onError(at,ut){var dt;if(ut.fatal)return;const ct=this.hls,pt=ut.context;switch(ut.details){case ErrorDetails.FRAG_LOAD_ERROR:case ErrorDetails.FRAG_LOAD_TIMEOUT:case ErrorDetails.KEY_LOAD_ERROR:case ErrorDetails.KEY_LOAD_TIMEOUT:ut.errorAction=this.getFragRetryOrSwitchAction(ut);return;case ErrorDetails.FRAG_PARSING_ERROR:if((dt=ut.frag)!=null&&dt.gap){ut.errorAction=createDoNothingErrorAction();return}case ErrorDetails.FRAG_GAP:case ErrorDetails.FRAG_DECRYPT_ERROR:{ut.errorAction=this.getFragRetryOrSwitchAction(ut),ut.errorAction.action=NetworkErrorAction.SendAlternateToPenaltyBox;return}case ErrorDetails.LEVEL_EMPTY_ERROR:case ErrorDetails.LEVEL_PARSING_ERROR:{var ft,ht;const yt=ut.parent===PlaylistLevelType.MAIN?ut.level:ct.loadLevel;ut.details===ErrorDetails.LEVEL_EMPTY_ERROR&&((ft=ut.context)!=null&&(ht=ft.levelDetails)!=null&&ht.live)?ut.errorAction=this.getPlaylistRetryOrSwitchAction(ut,yt):(ut.levelRetry=!1,ut.errorAction=this.getLevelSwitchAction(ut,yt))}return;case ErrorDetails.LEVEL_LOAD_ERROR:case ErrorDetails.LEVEL_LOAD_TIMEOUT:typeof(pt==null?void 0:pt.level)=="number"&&(ut.errorAction=this.getPlaylistRetryOrSwitchAction(ut,pt.level));return;case ErrorDetails.AUDIO_TRACK_LOAD_ERROR:case ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:case ErrorDetails.SUBTITLE_LOAD_ERROR:case ErrorDetails.SUBTITLE_TRACK_LOAD_TIMEOUT:if(pt){const yt=ct.loadLevelObj;if(yt&&(pt.type===PlaylistContextType.AUDIO_TRACK&&yt.hasAudioGroup(pt.groupId)||pt.type===PlaylistContextType.SUBTITLE_TRACK&&yt.hasSubtitleGroup(pt.groupId))){ut.errorAction=this.getPlaylistRetryOrSwitchAction(ut,ct.loadLevel),ut.errorAction.action=NetworkErrorAction.SendAlternateToPenaltyBox,ut.errorAction.flags=ErrorActionFlags.MoveAllAlternatesMatchingHost;return}}return;case ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:{const yt=ct.loadLevelObj,bt=yt==null?void 0:yt.attrs["HDCP-LEVEL"];bt?ut.errorAction={action:NetworkErrorAction.SendAlternateToPenaltyBox,flags:ErrorActionFlags.MoveAllAlternatesMatchingHDCP,hdcpLevel:bt}:this.keySystemError(ut)}return;case ErrorDetails.BUFFER_ADD_CODEC_ERROR:case ErrorDetails.REMUX_ALLOC_ERROR:case ErrorDetails.BUFFER_APPEND_ERROR:if(!ut.errorAction){var mt;ut.errorAction=this.getLevelSwitchAction(ut,(mt=ut.level)!=null?mt:ct.loadLevel)}return;case ErrorDetails.INTERNAL_EXCEPTION:case ErrorDetails.BUFFER_APPENDING_ERROR:case ErrorDetails.BUFFER_FULL_ERROR:case ErrorDetails.LEVEL_SWITCH_ERROR:case ErrorDetails.BUFFER_STALLED_ERROR:case ErrorDetails.BUFFER_SEEK_OVER_HOLE:case ErrorDetails.BUFFER_NUDGE_ON_STALL:ut.errorAction=createDoNothingErrorAction();return}ut.type===ErrorTypes.KEY_SYSTEM_ERROR&&this.keySystemError(ut)}keySystemError(at){const ut=this.getVariantLevelIndex(at.frag);at.levelRetry=!1,at.errorAction=this.getLevelSwitchAction(at,ut)}getPlaylistRetryOrSwitchAction(at,ut){const dt=this.hls,ct=getRetryConfig(dt.config.playlistLoadPolicy,at),pt=this.playlistError++;if(shouldRetry(ct,pt,isTimeoutError(at),at.response))return{action:NetworkErrorAction.RetryRequest,flags:ErrorActionFlags.None,retryConfig:ct,retryCount:pt};const ht=this.getLevelSwitchAction(at,ut);return ct&&(ht.retryConfig=ct,ht.retryCount=pt),ht}getFragRetryOrSwitchAction(at){const ut=this.hls,dt=this.getVariantLevelIndex(at.frag),ct=ut.levels[dt],{fragLoadPolicy:pt,keyLoadPolicy:ft}=ut.config,ht=getRetryConfig(at.details.startsWith("key")?ft:pt,at),mt=ut.levels.reduce((bt,Tt)=>bt+Tt.fragmentError,0);if(ct&&(at.details!==ErrorDetails.FRAG_GAP&&ct.fragmentError++,shouldRetry(ht,mt,isTimeoutError(at),at.response)))return{action:NetworkErrorAction.RetryRequest,flags:ErrorActionFlags.None,retryConfig:ht,retryCount:mt};const yt=this.getLevelSwitchAction(at,dt);return ht&&(yt.retryConfig=ht,yt.retryCount=mt),yt}getLevelSwitchAction(at,ut){const dt=this.hls;ut==null&&(ut=dt.loadLevel);const ct=this.hls.levels[ut];if(ct){var pt,ft;const yt=at.details;ct.loadError++,yt===ErrorDetails.BUFFER_APPEND_ERROR&&ct.fragmentError++;let bt=-1;const{levels:Tt,loadLevel:St,minAutoLevel:At,maxAutoLevel:vt}=dt;!dt.autoLevelEnabled&&!dt.config.preserveManualLevelOnError&&(dt.loadLevel=-1);const Dt=(pt=at.frag)==null?void 0:pt.type,_t=(Dt===PlaylistLevelType.AUDIO&&yt===ErrorDetails.FRAG_PARSING_ERROR||at.sourceBufferName==="audio"&&(yt===ErrorDetails.BUFFER_ADD_CODEC_ERROR||yt===ErrorDetails.BUFFER_APPEND_ERROR))&&Tt.some(({audioCodec:$t})=>ct.audioCodec!==$t),Ct=at.sourceBufferName==="video"&&(yt===ErrorDetails.BUFFER_ADD_CODEC_ERROR||yt===ErrorDetails.BUFFER_APPEND_ERROR)&&Tt.some(({codecSet:$t,audioCodec:Lt})=>ct.codecSet!==$t&&ct.audioCodec===Lt),{type:kt,groupId:wt}=(ft=at.context)!=null?ft:{};for(let $t=Tt.length;$t--;){const Lt=($t+St)%Tt.length;if(Lt!==St&&Lt>=At&&Lt<=vt&&Tt[Lt].loadError===0){var ht,mt;const Ot=Tt[Lt];if(yt===ErrorDetails.FRAG_GAP&&Dt===PlaylistLevelType.MAIN&&at.frag){const zt=Tt[Lt].details;if(zt){const Mt=findFragmentByPTS(at.frag,zt.fragments,at.frag.start);if(Mt!=null&&Mt.gap)continue}}else{if(kt===PlaylistContextType.AUDIO_TRACK&&Ot.hasAudioGroup(wt)||kt===PlaylistContextType.SUBTITLE_TRACK&&Ot.hasSubtitleGroup(wt))continue;if(Dt===PlaylistLevelType.AUDIO&&(ht=ct.audioGroups)!=null&&ht.some(zt=>Ot.hasAudioGroup(zt))||Dt===PlaylistLevelType.SUBTITLE&&(mt=ct.subtitleGroups)!=null&&mt.some(zt=>Ot.hasSubtitleGroup(zt))||_t&&ct.audioCodec===Ot.audioCodec||!_t&&ct.audioCodec!==Ot.audioCodec||Ct&&ct.codecSet===Ot.codecSet)continue}bt=Lt;break}}if(bt>-1&&dt.loadLevel!==bt)return at.levelRetry=!0,this.playlistError=0,{action:NetworkErrorAction.SendAlternateToPenaltyBox,flags:ErrorActionFlags.None,nextAutoLevel:bt}}return{action:NetworkErrorAction.SendAlternateToPenaltyBox,flags:ErrorActionFlags.MoveAllAlternatesMatchingHost}}onErrorOut(at,ut){var dt;switch((dt=ut.errorAction)==null?void 0:dt.action){case NetworkErrorAction.DoNothing:break;case NetworkErrorAction.SendAlternateToPenaltyBox:this.sendAlternateToPenaltyBox(ut),!ut.errorAction.resolved&&ut.details!==ErrorDetails.FRAG_GAP?ut.fatal=!0:/MediaSource readyState: ended/.test(ut.error.message)&&(this.warn(`MediaSource ended after "${ut.sourceBufferName}" sourceBuffer append error. Attempting to recover from media error.`),this.hls.recoverMediaError());break}if(ut.fatal){this.hls.stopLoad();return}}sendAlternateToPenaltyBox(at){const ut=this.hls,dt=at.errorAction;if(!dt)return;const{flags:ct,hdcpLevel:pt,nextAutoLevel:ft}=dt;switch(ct){case ErrorActionFlags.None:this.switchLevel(at,ft);break;case ErrorActionFlags.MoveAllAlternatesMatchingHDCP:pt&&(ut.maxHdcpLevel=HdcpLevels[HdcpLevels.indexOf(pt)-1],dt.resolved=!0),this.warn(`Restricting playback to HDCP-LEVEL of "${ut.maxHdcpLevel}" or lower`);break}dt.resolved||this.switchLevel(at,ft)}switchLevel(at,ut){if(ut!==void 0&&at.errorAction&&(this.warn(`switching to level ${ut} after ${at.details}`),this.hls.nextAutoLevel=ut,at.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel,at.details===ErrorDetails.BUFFER_ADD_CODEC_ERROR&&at.mimeType&&at.sourceBufferName!=="audiovideo")){const dt=getCodecsForMimeType(at.mimeType),ct=this.hls.levels;for(let pt=ct.length;pt--;)ct[pt][`${at.sourceBufferName}Codec`]===dt&&this.hls.removeLevel(pt)}}}function createDoNothingErrorAction(st){const at={action:NetworkErrorAction.DoNothing,flags:ErrorActionFlags.None};return st&&(at.resolved=!0),at}var FragmentState={NOT_LOADED:"NOT_LOADED",APPENDING:"APPENDING",PARTIAL:"PARTIAL",OK:"OK"};class FragmentTracker{constructor(at){this.activePartLists=Object.create(null),this.endListFragments=Object.create(null),this.fragments=Object.create(null),this.timeRanges=Object.create(null),this.bufferPadding=.2,this.hls=void 0,this.hasGaps=!1,this.hls=at,this._registerListeners()}_registerListeners(){const{hls:at}=this;at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.BUFFER_APPENDED,this.onBufferAppended,this),at.on(Events.FRAG_BUFFERED,this.onFragBuffered,this),at.on(Events.FRAG_LOADED,this.onFragLoaded,this)}_unregisterListeners(){const{hls:at}=this;at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.BUFFER_APPENDED,this.onBufferAppended,this),at.off(Events.FRAG_BUFFERED,this.onFragBuffered,this),at.off(Events.FRAG_LOADED,this.onFragLoaded,this)}destroy(){this._unregisterListeners(),this.fragments=this.activePartLists=this.endListFragments=this.timeRanges=null}getAppendedFrag(at,ut){const dt=this.activePartLists[ut];if(dt)for(let ct=dt.length;ct--;){const pt=dt[ct];if(!pt)break;const ft=pt.end;if(pt.start<=at&&ft!==null&&at<=ft)return pt}return this.getBufferedFrag(at,ut)}getBufferedFrag(at,ut){return this.getFragAtPos(at,ut,!0)}getFragAtPos(at,ut,dt){const{fragments:ct}=this,pt=Object.keys(ct);for(let ft=pt.length;ft--;){const ht=ct[pt[ft]];if((ht==null?void 0:ht.body.type)===ut&&(!dt||ht.buffered)){const mt=ht.body;if(mt.start<=at&&at<=mt.end)return mt}}return null}detectEvictedFragments(at,ut,dt,ct,pt){this.timeRanges&&(this.timeRanges[at]=ut);const ft=(ct==null?void 0:ct.fragment.sn)||-1;Object.keys(this.fragments).forEach(ht=>{const mt=this.fragments[ht];if(!mt||ft>=mt.body.sn)return;if(!mt.buffered&&(!mt.loaded||pt)){mt.body.type===dt&&this.removeFragment(mt.body);return}const yt=mt.range[at];if(yt){if(yt.time.length===0){this.removeFragment(mt.body);return}yt.time.some(bt=>{const Tt=!this.isTimeBuffered(bt.startPTS,bt.endPTS,ut);return Tt&&this.removeFragment(mt.body),Tt})}})}detectPartialFragments(at){const ut=this.timeRanges;if(!ut||at.frag.sn==="initSegment")return;const dt=at.frag,ct=getFragmentKey(dt),pt=this.fragments[ct];if(!pt||pt.buffered&&dt.gap)return;const ft=!dt.relurl;Object.keys(ut).forEach(ht=>{const mt=dt.elementaryStreams[ht];if(!mt)return;const yt=ut[ht],bt=ft||mt.partial===!0;pt.range[ht]=this.getBufferedTimes(dt,at.part,bt,yt)}),pt.loaded=null,Object.keys(pt.range).length?(pt.buffered=!0,(pt.body.endList=dt.endList||pt.body.endList)&&(this.endListFragments[pt.body.type]=pt),isPartial(pt)||this.removeParts(dt.sn-1,dt.type)):this.removeFragment(pt.body)}removeParts(at,ut){const dt=this.activePartLists[ut];dt&&(this.activePartLists[ut]=filterParts(dt,ct=>ct.fragment.sn>=at))}fragBuffered(at,ut){const dt=getFragmentKey(at);let ct=this.fragments[dt];!ct&&ut&&(ct=this.fragments[dt]={body:at,appendedPTS:null,loaded:null,buffered:!1,range:Object.create(null)},at.gap&&(this.hasGaps=!0)),ct&&(ct.loaded=null,ct.buffered=!0)}getBufferedTimes(at,ut,dt,ct){const pt={time:[],partial:dt},ft=at.start,ht=at.end,mt=at.minEndPTS||ht,yt=at.maxStartPTS||ft;for(let bt=0;bt=Tt&&mt<=St){pt.time.push({startPTS:Math.max(ft,ct.start(bt)),endPTS:Math.min(ht,ct.end(bt))});break}else if(ftTt){const At=Math.max(ft,ct.start(bt)),vt=Math.min(ht,ct.end(bt));vt>At&&(pt.partial=!0,pt.time.push({startPTS:At,endPTS:vt}))}else if(ht<=Tt)break}return pt}getPartialFragment(at){let ut=null,dt,ct,pt,ft=0;const{bufferPadding:ht,fragments:mt}=this;return Object.keys(mt).forEach(yt=>{const bt=mt[yt];bt&&isPartial(bt)&&(ct=bt.body.start-ht,pt=bt.body.end+ht,at>=ct&&at<=pt&&(dt=Math.min(at-ct,pt-at),ft<=dt&&(ut=bt.body,ft=dt)))}),ut}isEndListAppended(at){const ut=this.endListFragments[at];return ut!==void 0&&(ut.buffered||isPartial(ut))}getState(at){const ut=getFragmentKey(at),dt=this.fragments[ut];return dt?dt.buffered?isPartial(dt)?FragmentState.PARTIAL:FragmentState.OK:FragmentState.APPENDING:FragmentState.NOT_LOADED}isTimeBuffered(at,ut,dt){let ct,pt;for(let ft=0;ft=ct&&ut<=pt)return!0;if(ut<=ct)return!1}return!1}onManifestLoading(){this.removeAllFragments()}onFragLoaded(at,ut){if(ut.frag.sn==="initSegment"||ut.frag.bitrateTest)return;const dt=ut.frag,ct=ut.part?null:ut,pt=getFragmentKey(dt);this.fragments[pt]={body:dt,appendedPTS:null,loaded:ct,buffered:!1,range:Object.create(null)}}onBufferAppended(at,ut){const{frag:dt,part:ct,timeRanges:pt,type:ft}=ut;if(dt.sn==="initSegment")return;const ht=dt.type;if(ct){let yt=this.activePartLists[ht];yt||(this.activePartLists[ht]=yt=[]),yt.push(ct)}this.timeRanges=pt;const mt=pt[ft];this.detectEvictedFragments(ft,mt,ht,ct)}onFragBuffered(at,ut){this.detectPartialFragments(ut)}hasFragment(at){const ut=getFragmentKey(at);return!!this.fragments[ut]}hasFragments(at){const{fragments:ut}=this,dt=Object.keys(ut);if(!at)return dt.length>0;for(let ct=dt.length;ct--;){const pt=ut[dt[ct]];if((pt==null?void 0:pt.body.type)===at)return!0}return!1}hasParts(at){var ut;return!!((ut=this.activePartLists[at])!=null&&ut.length)}removeFragmentsInRange(at,ut,dt,ct,pt){ct&&!this.hasGaps||Object.keys(this.fragments).forEach(ft=>{const ht=this.fragments[ft];if(!ht)return;const mt=ht.body;mt.type!==dt||ct&&!mt.gap||mt.startat&&(ht.buffered||pt)&&this.removeFragment(mt)})}removeFragment(at){const ut=getFragmentKey(at);at.clearElementaryStreamInfo();const dt=this.activePartLists[at.type];if(dt){const ct=at.sn;this.activePartLists[at.type]=filterParts(dt,pt=>pt.fragment.sn!==ct)}delete this.fragments[ut],at.endList&&delete this.endListFragments[at.type]}removeAllFragments(){var at,ut;this.fragments=Object.create(null),this.endListFragments=Object.create(null),this.activePartLists=Object.create(null),this.hasGaps=!1;const dt=(at=this.hls)==null||(ut=at.latestLevelDetails)==null?void 0:ut.partList;dt&&dt.forEach(ct=>ct.clearElementaryStreamInfo())}}function isPartial(st){var at,ut,dt;return st.buffered&&(st.body.gap||((at=st.range.video)==null?void 0:at.partial)||((ut=st.range.audio)==null?void 0:ut.partial)||((dt=st.range.audiovideo)==null?void 0:dt.partial))}function getFragmentKey(st){return`${st.type}_${st.level}_${st.sn}`}function filterParts(st,at){return st.filter(ut=>{const dt=at(ut);return dt||ut.clearElementaryStreamInfo(),dt})}var DecrypterAesMode={cbc:0,ctr:1};class AESCrypto{constructor(at,ut,dt){this.subtle=void 0,this.aesIV=void 0,this.aesMode=void 0,this.subtle=at,this.aesIV=ut,this.aesMode=dt}decrypt(at,ut){switch(this.aesMode){case DecrypterAesMode.cbc:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},ut,at);case DecrypterAesMode.ctr:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},ut,at);default:throw new Error(`[AESCrypto] invalid aes mode ${this.aesMode}`)}}}function removePadding(st){const at=st.byteLength,ut=at&&new DataView(st.buffer).getUint8(at-1);return ut?st.slice(0,at-ut):st}class AESDecryptor{constructor(){this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}uint8ArrayToUint32Array_(at){const ut=new DataView(at),dt=new Uint32Array(4);for(let ct=0;ct<4;ct++)dt[ct]=ut.getUint32(ct*4);return dt}initTable(){const at=this.sBox,ut=this.invSBox,dt=this.subMix,ct=dt[0],pt=dt[1],ft=dt[2],ht=dt[3],mt=this.invSubMix,yt=mt[0],bt=mt[1],Tt=mt[2],St=mt[3],At=new Uint32Array(256);let vt=0,Dt=0,Et=0;for(Et=0;Et<256;Et++)Et<128?At[Et]=Et<<1:At[Et]=Et<<1^283;for(Et=0;Et<256;Et++){let _t=Dt^Dt<<1^Dt<<2^Dt<<3^Dt<<4;_t=_t>>>8^_t&255^99,at[vt]=_t,ut[_t]=vt;const xt=At[vt],Ct=At[xt],kt=At[Ct];let wt=At[_t]*257^_t*16843008;ct[vt]=wt<<24|wt>>>8,pt[vt]=wt<<16|wt>>>16,ft[vt]=wt<<8|wt>>>24,ht[vt]=wt,wt=kt*16843009^Ct*65537^xt*257^vt*16843008,yt[_t]=wt<<24|wt>>>8,bt[_t]=wt<<16|wt>>>16,Tt[_t]=wt<<8|wt>>>24,St[_t]=wt,vt?(vt=xt^At[At[At[kt^xt]]],Dt^=At[At[Dt]]):vt=Dt=1}}expandKey(at){const ut=this.uint8ArrayToUint32Array_(at);let dt=!0,ct=0;for(;ct{const ht=ArrayBuffer.isView(at)?at:new Uint8Array(at);this.softwareDecrypt(ht,ut,dt,ct);const mt=this.flush();mt?pt(mt.buffer):ft(new Error("[softwareDecrypt] Failed to decrypt data"))}):this.webCryptoDecrypt(new Uint8Array(at),ut,dt,ct)}softwareDecrypt(at,ut,dt,ct){const{currentIV:pt,currentResult:ft,remainderData:ht}=this;if(ct!==DecrypterAesMode.cbc||ut.byteLength!==16)return logger.warn("SoftwareDecrypt: can only handle AES-128-CBC"),null;this.logOnce("JS AES decrypt"),ht&&(at=appendUint8Array(ht,at),this.remainderData=null);const mt=this.getValidChunk(at);if(!mt.length)return null;pt&&(dt=pt);let yt=this.softwareDecrypter;yt||(yt=this.softwareDecrypter=new AESDecryptor),yt.expandKey(ut);const bt=ft;return this.currentResult=yt.decrypt(mt.buffer,0,dt),this.currentIV=mt.slice(-16).buffer,bt||null}webCryptoDecrypt(at,ut,dt,ct){if(this.key!==ut||!this.fastAesKey){if(!this.subtle)return Promise.resolve(this.onWebCryptoError(at,ut,dt,ct));this.key=ut,this.fastAesKey=new FastAESKey(this.subtle,ut,ct)}return this.fastAesKey.expandKey().then(pt=>this.subtle?(this.logOnce("WebCrypto AES decrypt"),new AESCrypto(this.subtle,new Uint8Array(dt),ct).decrypt(at.buffer,pt)):Promise.reject(new Error("web crypto not initialized"))).catch(pt=>(logger.warn(`[decrypter]: WebCrypto Error, disable WebCrypto API, ${pt.name}: ${pt.message}`),this.onWebCryptoError(at,ut,dt,ct)))}onWebCryptoError(at,ut,dt,ct){const pt=this.enableSoftwareAES;if(pt){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(at,ut,dt,ct);const ft=this.flush();if(ft)return ft.buffer}throw new Error("WebCrypto"+(pt?" and softwareDecrypt":"")+": failed to decrypt data")}getValidChunk(at){let ut=at;const dt=at.length-at.length%CHUNK_SIZE;return dt!==at.length&&(ut=at.slice(0,dt),this.remainderData=at.slice(dt)),ut}logOnce(at){this.logEnabled&&(logger.log(`[decrypter]: ${at}`),this.logEnabled=!1)}}const MIN_CHUNK_SIZE=Math.pow(2,17);class FragmentLoader{constructor(at){this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=at}destroy(){this.loader&&(this.loader.destroy(),this.loader=null)}abort(){this.loader&&this.loader.abort()}load(at,ut){const dt=at.url;if(!dt)return Promise.reject(new LoadError({type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:at,error:new Error(`Fragment does not have a ${dt?"part list":"url"}`),networkDetails:null}));this.abort();const ct=this.config,pt=ct.fLoader,ft=ct.loader;return new Promise((ht,mt)=>{if(this.loader&&this.loader.destroy(),at.gap)if(at.tagList.some(vt=>vt[0]==="GAP")){mt(createGapLoadError(at));return}else at.gap=!1;const yt=this.loader=pt?new pt(ct):new ft(ct),bt=createLoaderContext(at);at.loader=yt;const Tt=getLoaderConfigWithoutReties(ct.fragLoadPolicy.default),St={loadPolicy:Tt,timeout:Tt.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:at.sn==="initSegment"?1/0:MIN_CHUNK_SIZE};at.stats=yt.stats;const At={onSuccess:(vt,Dt,Et,_t)=>{this.resetLoader(at,yt);let xt=vt.data;Et.resetIV&&at.decryptdata&&(at.decryptdata.iv=new Uint8Array(xt.slice(0,16)),xt=xt.slice(16)),ht({frag:at,part:null,payload:xt,networkDetails:_t})},onError:(vt,Dt,Et,_t)=>{this.resetLoader(at,yt),mt(new LoadError({type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:at,response:_objectSpread2({url:dt,data:void 0},vt),error:new Error(`HTTP Error ${vt.code} ${vt.text}`),networkDetails:Et,stats:_t}))},onAbort:(vt,Dt,Et)=>{this.resetLoader(at,yt),mt(new LoadError({type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:at,error:new Error("Aborted"),networkDetails:Et,stats:vt}))},onTimeout:(vt,Dt,Et)=>{this.resetLoader(at,yt),mt(new LoadError({type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:at,error:new Error(`Timeout after ${St.timeout}ms`),networkDetails:Et,stats:vt}))}};ut&&(At.onProgress=(vt,Dt,Et,_t)=>ut({frag:at,part:null,payload:Et,networkDetails:_t})),yt.load(bt,St,At)})}loadPart(at,ut,dt){this.abort();const ct=this.config,pt=ct.fLoader,ft=ct.loader;return new Promise((ht,mt)=>{if(this.loader&&this.loader.destroy(),at.gap||ut.gap){mt(createGapLoadError(at,ut));return}const yt=this.loader=pt?new pt(ct):new ft(ct),bt=createLoaderContext(at,ut);at.loader=yt;const Tt=getLoaderConfigWithoutReties(ct.fragLoadPolicy.default),St={loadPolicy:Tt,timeout:Tt.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:MIN_CHUNK_SIZE};ut.stats=yt.stats,yt.load(bt,St,{onSuccess:(At,vt,Dt,Et)=>{this.resetLoader(at,yt),this.updateStatsFromPart(at,ut);const _t={frag:at,part:ut,payload:At.data,networkDetails:Et};dt(_t),ht(_t)},onError:(At,vt,Dt,Et)=>{this.resetLoader(at,yt),mt(new LoadError({type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.FRAG_LOAD_ERROR,fatal:!1,frag:at,part:ut,response:_objectSpread2({url:bt.url,data:void 0},At),error:new Error(`HTTP Error ${At.code} ${At.text}`),networkDetails:Dt,stats:Et}))},onAbort:(At,vt,Dt)=>{at.stats.aborted=ut.stats.aborted,this.resetLoader(at,yt),mt(new LoadError({type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.INTERNAL_ABORTED,fatal:!1,frag:at,part:ut,error:new Error("Aborted"),networkDetails:Dt,stats:At}))},onTimeout:(At,vt,Dt)=>{this.resetLoader(at,yt),mt(new LoadError({type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.FRAG_LOAD_TIMEOUT,fatal:!1,frag:at,part:ut,error:new Error(`Timeout after ${St.timeout}ms`),networkDetails:Dt,stats:At}))}})})}updateStatsFromPart(at,ut){const dt=at.stats,ct=ut.stats,pt=ct.total;if(dt.loaded+=ct.loaded,pt){const mt=Math.round(at.duration/ut.duration),yt=Math.min(Math.round(dt.loaded/pt),mt),Tt=(mt-yt)*Math.round(dt.loaded/yt);dt.total=dt.loaded+Tt}else dt.total=Math.max(dt.loaded,dt.total);const ft=dt.loading,ht=ct.loading;ft.start?ft.first+=ht.first-ht.start:(ft.start=ht.start,ft.first=ht.first),ft.end=ht.end}resetLoader(at,ut){at.loader=null,this.loader===ut&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),ut.destroy()}}function createLoaderContext(st,at=null){const ut=at||st,dt={frag:st,part:at,responseType:"arraybuffer",url:ut.url,headers:{},rangeStart:0,rangeEnd:0},ct=ut.byteRangeStartOffset,pt=ut.byteRangeEndOffset;if(isFiniteNumber(ct)&&isFiniteNumber(pt)){var ft;let ht=ct,mt=pt;if(st.sn==="initSegment"&&isMethodFullSegmentAesCbc((ft=st.decryptdata)==null?void 0:ft.method)){const yt=pt-ct;yt%16&&(mt=pt+(16-yt%16)),ct!==0&&(dt.resetIV=!0,ht=ct-16)}dt.rangeStart=ht,dt.rangeEnd=mt}return dt}function createGapLoadError(st,at){const ut=new Error(`GAP ${st.gap?"tag":"attribute"} found`),dt={type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_GAP,fatal:!1,frag:st,error:ut,networkDetails:null};return at&&(dt.part=at),(at||st).stats.aborted=!0,new LoadError(dt)}function isMethodFullSegmentAesCbc(st){return st==="AES-128"||st==="AES-256"}class LoadError extends Error{constructor(at){super(at.error.message),this.data=void 0,this.data=at}}class TaskLoop extends Logger{constructor(at,ut){super(at,ut),this._boundTick=void 0,this._tickTimer=null,this._tickInterval=null,this._tickCallCount=0,this._boundTick=this.tick.bind(this)}destroy(){this.onHandlerDestroying(),this.onHandlerDestroyed()}onHandlerDestroying(){this.clearNextTick(),this.clearInterval()}onHandlerDestroyed(){}hasInterval(){return!!this._tickInterval}hasNextTick(){return!!this._tickTimer}setInterval(at){return this._tickInterval?!1:(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,at),!0)}clearInterval(){return this._tickInterval?(self.clearInterval(this._tickInterval),this._tickInterval=null,!0):!1}clearNextTick(){return this._tickTimer?(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0):!1}tick(){this._tickCallCount++,this._tickCallCount===1&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}tickImmediate(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}doTick(){}}class ChunkMetadata{constructor(at,ut,dt,ct=0,pt=-1,ft=!1){this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing=getNewPerformanceTiming(),this.buffering={audio:getNewPerformanceTiming(),video:getNewPerformanceTiming(),audiovideo:getNewPerformanceTiming()},this.level=at,this.sn=ut,this.id=dt,this.size=ct,this.part=pt,this.partial=ft}}function getNewPerformanceTiming(){return{start:0,executeStart:0,executeEnd:0,end:0}}const noopBuffered={length:0,start:()=>0,end:()=>0};class BufferHelper{static isBuffered(at,ut){if(at){const dt=BufferHelper.getBuffered(at);for(let ct=dt.length;ct--;)if(ut>=dt.start(ct)&&ut<=dt.end(ct))return!0}return!1}static bufferedRanges(at){if(at){const ut=BufferHelper.getBuffered(at);return BufferHelper.timeRangesToArray(ut)}return[]}static timeRangesToArray(at){const ut=[];for(let dt=0;dt1&&at.sort((bt,Tt)=>bt.start-Tt.start||Tt.end-bt.end);let ct=-1,pt=[];if(dt)for(let bt=0;bt=at[bt].start&&ut<=at[bt].end&&(ct=bt);const Tt=pt.length;if(Tt){const St=pt[Tt-1].end;at[bt].start-StSt&&(pt[Tt-1].end=at[bt].end):pt.push(at[bt])}else pt.push(at[bt])}else pt=at;let ft=0,ht,mt=ut,yt=ut;for(let bt=0;bt=Tt&&ut<=St&&(ct=bt),ut+dt>=Tt&&ut{const ct=dt.substring(2,dt.length-1),pt=ut==null?void 0:ut[ct];return pt===void 0?(st.playlistParsingError||(st.playlistParsingError=new Error(`Missing preceding EXT-X-DEFINE tag for Variable Reference: "${ct}"`)),dt):pt})}return at}function addVariableDefinition(st,at,ut){let dt=st.variableList;dt||(st.variableList=dt={});let ct,pt;if("QUERYPARAM"in at){ct=at.QUERYPARAM;try{const ft=new self.URL(ut).searchParams;if(ft.has(ct))pt=ft.get(ct);else throw new Error(`"${ct}" does not match any query parameter in URI: "${ut}"`)}catch(ft){st.playlistParsingError||(st.playlistParsingError=new Error(`EXT-X-DEFINE QUERYPARAM: ${ft.message}`))}}else ct=at.NAME,pt=at.VALUE;ct in dt?st.playlistParsingError||(st.playlistParsingError=new Error(`EXT-X-DEFINE duplicate Variable Name declarations: "${ct}"`)):dt[ct]=pt||""}function importVariableDefinition(st,at,ut){const dt=at.IMPORT;if(ut&&dt in ut){let ct=st.variableList;ct||(st.variableList=ct={}),ct[dt]=ut[dt]}else st.playlistParsingError||(st.playlistParsingError=new Error(`EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "${dt}"`))}const DECIMAL_RESOLUTION_REGEX=/^(\d+)x(\d+)$/,ATTR_LIST_REGEX=/(.+?)=(".*?"|.*?)(?:,|$)/g;class AttrList{constructor(at,ut){typeof at=="string"&&(at=AttrList.parseAttrList(at,ut)),_extends(this,at)}get clientAttrs(){return Object.keys(this).filter(at=>at.substring(0,2)==="X-")}decimalInteger(at){const ut=parseInt(this[at],10);return ut>Number.MAX_SAFE_INTEGER?1/0:ut}hexadecimalInteger(at){if(this[at]){let ut=(this[at]||"0x").slice(2);ut=(ut.length&1?"0":"")+ut;const dt=new Uint8Array(ut.length/2);for(let ct=0;ctNumber.MAX_SAFE_INTEGER?1/0:ut}decimalFloatingPoint(at){return parseFloat(this[at])}optionalFloat(at,ut){const dt=this[at];return dt?parseFloat(dt):ut}enumeratedString(at){return this[at]}enumeratedStringList(at,ut){const dt=this[at];return(dt?dt.split(/[ ,]+/):[]).reduce((ct,pt)=>(ct[pt.toLowerCase()]=!0,ct),ut)}bool(at){return this[at]==="YES"}decimalResolution(at){const ut=DECIMAL_RESOLUTION_REGEX.exec(this[at]);if(ut!==null)return{width:parseInt(ut[1],10),height:parseInt(ut[2],10)}}static parseAttrList(at,ut){let dt;const ct={},pt='"';for(ATTR_LIST_REGEX.lastIndex=0;(dt=ATTR_LIST_REGEX.exec(at))!==null;){const ft=dt[1].trim();let ht=dt[2];const mt=ht.indexOf(pt)===0&&ht.lastIndexOf(pt)===ht.length-1;let yt=!1;if(mt)ht=ht.slice(1,-1);else switch(ft){case"IV":case"SCTE35-CMD":case"SCTE35-IN":case"SCTE35-OUT":yt=!0}if(ut&&(mt||yt))ht=substituteVariables(ut,ht);else if(!yt&&!mt)switch(ft){case"CLOSED-CAPTIONS":if(ht==="NONE")break;case"ALLOWED-CPC":case"CLASS":case"ASSOC-LANGUAGE":case"AUDIO":case"BYTERANGE":case"CHANNELS":case"CHARACTERISTICS":case"CODECS":case"DATA-ID":case"END-DATE":case"GROUP-ID":case"ID":case"IMPORT":case"INSTREAM-ID":case"KEYFORMAT":case"KEYFORMATVERSIONS":case"LANGUAGE":case"NAME":case"PATHWAY-ID":case"QUERYPARAM":case"RECENTLY-REMOVED-DATERANGES":case"SERVER-URI":case"STABLE-RENDITION-ID":case"STABLE-VARIANT-ID":case"START-DATE":case"SUBTITLES":case"SUPPLEMENTAL-CODECS":case"URI":case"VALUE":case"VIDEO":case"X-ASSET-LIST":case"X-ASSET-URI":logger.warn(`${at}: attribute ${ft} is missing quotes`)}ct[ft]=ht}return ct}}const CLASS_INTERSTITIAL="com.apple.hls.interstitial";function isDateRangeCueAttribute(st){return st!=="ID"&&st!=="CLASS"&&st!=="CUE"&&st!=="START-DATE"&&st!=="DURATION"&&st!=="END-DATE"&&st!=="END-ON-NEXT"}function isSCTE35Attribute(st){return st==="SCTE35-OUT"||st==="SCTE35-IN"||st==="SCTE35-CMD"}class DateRange{constructor(at,ut,dt=0){var ct;if(this.attr=void 0,this.tagAnchor=void 0,this.tagOrder=void 0,this._startDate=void 0,this._endDate=void 0,this._dateAtEnd=void 0,this._cue=void 0,this._badValueForSameId=void 0,this.tagAnchor=(ut==null?void 0:ut.tagAnchor)||null,this.tagOrder=(ct=ut==null?void 0:ut.tagOrder)!=null?ct:dt,ut){const pt=ut.attr;for(const ft in pt)if(Object.prototype.hasOwnProperty.call(at,ft)&&at[ft]!==pt[ft]){logger.warn(`DATERANGE tag attribute: "${ft}" does not match for tags with ID: "${at.ID}"`),this._badValueForSameId=ft;break}at=_extends(new AttrList({}),pt,at)}if(this.attr=at,ut?(this._startDate=ut._startDate,this._cue=ut._cue,this._endDate=ut._endDate,this._dateAtEnd=ut._dateAtEnd):this._startDate=new Date(at["START-DATE"]),"END-DATE"in this.attr){const pt=(ut==null?void 0:ut.endDate)||new Date(this.attr["END-DATE"]);isFiniteNumber(pt.getTime())&&(this._endDate=pt)}}get id(){return this.attr.ID}get class(){return this.attr.CLASS}get cue(){const at=this._cue;return at===void 0?this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:!1,post:!1,once:!1}):at}get startTime(){const{tagAnchor:at}=this;return at===null||at.programDateTime===null?(logger.warn(`Expected tagAnchor Fragment with PDT set for DateRange "${this.id}": ${at}`),NaN):at.start+(this.startDate.getTime()-at.programDateTime)/1e3}get startDate(){return this._startDate}get endDate(){const at=this._endDate||this._dateAtEnd;if(at)return at;const ut=this.duration;return ut!==null?this._dateAtEnd=new Date(this._startDate.getTime()+ut*1e3):null}get duration(){if("DURATION"in this.attr){const at=this.attr.decimalFloatingPoint("DURATION");if(isFiniteNumber(at))return at}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}get plannedDuration(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}get endOnNext(){return this.attr.bool("END-ON-NEXT")}get isInterstitial(){return this.class===CLASS_INTERSTITIAL}get isValid(){return!!this.id&&!this._badValueForSameId&&isFiniteNumber(this.startDate.getTime())&&(this.duration===null||this.duration>=0)&&(!this.endOnNext||!!this.class)&&(!this.attr.CUE||!this.cue.pre&&!this.cue.post||this.cue.pre!==this.cue.post)&&(!this.isInterstitial||"X-ASSET-URI"in this.attr||"X-ASSET-LIST"in this.attr)}}const DEFAULT_TARGET_DURATION=10;class LevelDetails{constructor(at){this.PTSKnown=!1,this.alignedSliding=!1,this.averagetargetduration=void 0,this.endCC=0,this.endSN=0,this.fragments=void 0,this.fragmentHint=void 0,this.partList=null,this.dateRanges=void 0,this.dateRangeTagCount=0,this.live=!0,this.requestScheduled=-1,this.ageHeader=0,this.advancedDateTime=void 0,this.updated=!0,this.advanced=!0,this.misses=0,this.startCC=0,this.startSN=0,this.startTimeOffset=null,this.targetduration=0,this.totalduration=0,this.type=null,this.url=void 0,this.m3u8="",this.version=null,this.canBlockReload=!1,this.canSkipUntil=0,this.canSkipDateRanges=!1,this.skippedSegments=0,this.recentlyRemovedDateranges=void 0,this.partHoldBack=0,this.holdBack=0,this.partTarget=0,this.preloadHint=void 0,this.renditionReports=void 0,this.tuneInGoal=0,this.deltaUpdateFailed=void 0,this.driftStartTime=0,this.driftEndTime=0,this.driftStart=0,this.driftEnd=0,this.encryptedFragments=void 0,this.playlistParsingError=null,this.variableList=null,this.hasVariableRefs=!1,this.appliedTimelineOffset=void 0,this.fragments=[],this.encryptedFragments=[],this.dateRanges={},this.url=at}reloaded(at){if(!at){this.advanced=!0,this.updated=!0;return}const ut=this.lastPartSn-at.lastPartSn,dt=this.lastPartIndex-at.lastPartIndex;this.updated=this.endSN!==at.endSN||!!dt||!!ut||!this.live,this.advanced=this.endSN>at.endSN||ut>0||ut===0&&dt>0,this.updated||this.advanced?this.misses=Math.floor(at.misses*.6):this.misses=at.misses+1}get hasProgramDateTime(){return this.fragments.length?isFiniteNumber(this.fragments[this.fragments.length-1].programDateTime):!1}get levelTargetDuration(){return this.averagetargetduration||this.targetduration||DEFAULT_TARGET_DURATION}get drift(){const at=this.driftEndTime-this.driftStartTime;return at>0?(this.driftEnd-this.driftStart)*1e3/at:1}get edge(){return this.partEnd||this.fragmentEnd}get partEnd(){var at;return(at=this.partList)!=null&&at.length?this.partList[this.partList.length-1].end:this.fragmentEnd}get fragmentEnd(){var at;return(at=this.fragments)!=null&&at.length?this.fragments[this.fragments.length-1].end:0}get fragmentStart(){var at;return(at=this.fragments)!=null&&at.length?this.fragments[0].start:0}get age(){return this.advancedDateTime?Math.max(Date.now()-this.advancedDateTime,0)/1e3:0}get lastPartIndex(){var at;return(at=this.partList)!=null&&at.length?this.partList[this.partList.length-1].index:-1}get maxPartIndex(){const at=this.partList;if(at){const ut=this.lastPartIndex;if(ut!==-1){for(let dt=at.length;dt--;)if(at[dt].index>ut)return at[dt].index;return ut}}return 0}get lastPartSn(){var at;return(at=this.partList)!=null&&at.length?this.partList[this.partList.length-1].fragment.sn:this.endSN}get expired(){if(this.live&&this.age&&this.misses<3){const at=this.partEnd-this.fragmentStart;return this.age>Math.max(at,this.totalduration)+this.levelTargetDuration}return!1}}function isFullSegmentEncryption(st){return st==="AES-128"||st==="AES-256"||st==="AES-256-CTR"}function getAesModeFromFullSegmentMethod(st){switch(st){case"AES-128":case"AES-256":return DecrypterAesMode.cbc;case"AES-256-CTR":return DecrypterAesMode.ctr;default:throw new Error(`invalid full segment method ${st}`)}}function base64Decode(st){return Uint8Array.from(atob(st),at=>at.charCodeAt(0))}function strToUtf8array(st){return Uint8Array.from(unescape(encodeURIComponent(st)),at=>at.charCodeAt(0))}function getKeyIdBytes(st){const at=strToUtf8array(st).subarray(0,16),ut=new Uint8Array(16);return ut.set(at,16-at.length),ut}function changeEndianness(st){const at=function(dt,ct,pt){const ft=dt[ct];dt[ct]=dt[pt],dt[pt]=ft};at(st,0,3),at(st,1,2),at(st,4,5),at(st,6,7)}function convertDataUriToArrayBytes(st){const at=st.split(":");let ut=null;if(at[0]==="data"&&at.length===2){const dt=at[1].split(";"),ct=dt[dt.length-1].split(",");if(ct.length===2){const pt=ct[0]==="base64",ft=ct[1];pt?(dt.splice(-1,1),ut=base64Decode(ft)):ut=getKeyIdBytes(ft)}}return ut}const optionalSelf=typeof self<"u"?self:void 0;var KeySystems={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.fps",PLAYREADY:"com.microsoft.playready",WIDEVINE:"com.widevine.alpha"},KeySystemFormats={CLEARKEY:"org.w3.clearkey",FAIRPLAY:"com.apple.streamingkeydelivery",PLAYREADY:"com.microsoft.playready",WIDEVINE:"urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"};function keySystemFormatToKeySystemDomain(st){switch(st){case KeySystemFormats.FAIRPLAY:return KeySystems.FAIRPLAY;case KeySystemFormats.PLAYREADY:return KeySystems.PLAYREADY;case KeySystemFormats.WIDEVINE:return KeySystems.WIDEVINE;case KeySystemFormats.CLEARKEY:return KeySystems.CLEARKEY}}function keySystemDomainToKeySystemFormat(st){switch(st){case KeySystems.FAIRPLAY:return KeySystemFormats.FAIRPLAY;case KeySystems.PLAYREADY:return KeySystemFormats.PLAYREADY;case KeySystems.WIDEVINE:return KeySystemFormats.WIDEVINE;case KeySystems.CLEARKEY:return KeySystemFormats.CLEARKEY}}function getKeySystemsForConfig(st){const{drmSystems:at,widevineLicenseUrl:ut}=st,dt=at?[KeySystems.FAIRPLAY,KeySystems.WIDEVINE,KeySystems.PLAYREADY,KeySystems.CLEARKEY].filter(ct=>!!at[ct]):[];return!dt[KeySystems.WIDEVINE]&&ut&&dt.push(KeySystems.WIDEVINE),dt}const requestMediaKeySystemAccess=function(st){return optionalSelf!=null&&(st=optionalSelf.navigator)!=null&&st.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null}();function getSupportedMediaKeySystemConfigurations(st,at,ut,dt){let ct;switch(st){case KeySystems.FAIRPLAY:ct=["cenc","sinf"];break;case KeySystems.WIDEVINE:case KeySystems.PLAYREADY:ct=["cenc"];break;case KeySystems.CLEARKEY:ct=["cenc","keyids"];break;default:throw new Error(`Unknown key-system: ${st}`)}return createMediaKeySystemConfigurations(ct,at,ut,dt)}function createMediaKeySystemConfigurations(st,at,ut,dt){return[{initDataTypes:st,persistentState:dt.persistentState||"optional",distinctiveIdentifier:dt.distinctiveIdentifier||"optional",sessionTypes:dt.sessionTypes||[dt.sessionType||"temporary"],audioCapabilities:at.map(pt=>({contentType:`audio/mp4; codecs=${pt}`,robustness:dt.audioRobustness||"",encryptionScheme:dt.audioEncryptionScheme||null})),videoCapabilities:ut.map(pt=>({contentType:`video/mp4; codecs=${pt}`,robustness:dt.videoRobustness||"",encryptionScheme:dt.videoEncryptionScheme||null}))}]}function isPersistentSessionType(st){var at;return st.sessionType==="persistent-license"||!!((at=st.sessionTypes)!=null&&at.some(ut=>ut==="persistent-license"))}function parsePlayReadyWRM(st){const at=new Uint16Array(st.buffer,st.byteOffset,st.byteLength/2),ut=String.fromCharCode.apply(null,Array.from(at)),dt=ut.substring(ut.indexOf("<"),ut.length),ft=new DOMParser().parseFromString(dt,"text/xml").getElementsByTagName("KID")[0];if(ft){const ht=ft.childNodes[0]?ft.childNodes[0].nodeValue:ft.getAttribute("VALUE");if(ht){const mt=base64Decode(ht).subarray(0,16);return changeEndianness(mt),mt}}return null}let keyUriToKeyIdMap={};class LevelKey{static clearKeyUriToKeyIdMap(){keyUriToKeyIdMap={}}constructor(at,ut,dt,ct=[1],pt=null,ft){this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=at,this.uri=ut,this.keyFormat=dt,this.keyFormatVersions=ct,this.iv=pt,this.encrypted=at?at!=="NONE":!1,this.isCommonEncryption=this.encrypted&&!isFullSegmentEncryption(at),ft!=null&&ft.startsWith("0x")&&(this.keyId=new Uint8Array(hexToArrayBuffer(ft)))}matches(at){var ut,dt;return at.uri===this.uri&&at.method===this.method&&at.encrypted===this.encrypted&&at.keyFormat===this.keyFormat&&at.keyFormatVersions.join(",")===this.keyFormatVersions.join(",")&&((ut=at.iv)==null?void 0:ut.join(","))===((dt=this.iv)==null?void 0:dt.join(","))}isSupported(){if(this.method){if(isFullSegmentEncryption(this.method)||this.method==="NONE")return!0;if(this.keyFormat==="identity")return this.method==="SAMPLE-AES";switch(this.keyFormat){case KeySystemFormats.FAIRPLAY:case KeySystemFormats.WIDEVINE:case KeySystemFormats.PLAYREADY:case KeySystemFormats.CLEARKEY:return["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"].indexOf(this.method)!==-1}}return!1}getDecryptData(at){if(!this.encrypted||!this.uri)return null;if(isFullSegmentEncryption(this.method)&&this.uri&&!this.iv){typeof at!="number"&&(logger.warn(`missing IV for initialization segment with method="${this.method}" - compliance issue`),at=0);const dt=createInitializationVector(at);return new LevelKey(this.method,this.uri,"identity",this.keyFormatVersions,dt)}if(this.pssh&&this.keyId)return this;const ut=convertDataUriToArrayBytes(this.uri);if(ut)switch(this.keyFormat){case KeySystemFormats.WIDEVINE:if(this.pssh=ut,!this.keyId&&ut.length>=22){const dt=ut.length-22;this.keyId=ut.subarray(dt,dt+16)}break;case KeySystemFormats.PLAYREADY:{const dt=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=mp4pssh(dt,null,ut),this.keyId=parsePlayReadyWRM(ut);break}default:{let dt=ut.subarray(0,16);if(dt.length!==16){const ct=new Uint8Array(16);ct.set(dt,16-dt.length),dt=ct}this.keyId=dt;break}}if(!this.keyId||this.keyId.byteLength!==16){let dt=keyUriToKeyIdMap[this.uri];if(!dt){const ct=Object.keys(keyUriToKeyIdMap).length%Number.MAX_SAFE_INTEGER;dt=new Uint8Array(16),new DataView(dt.buffer,12,4).setUint32(0,ct),keyUriToKeyIdMap[this.uri]=dt}this.keyId=dt}return this}}function createInitializationVector(st){const at=new Uint8Array(16);for(let ut=12;ut<16;ut++)at[ut]=st>>8*(15-ut)&255;return at}const MASTER_PLAYLIST_REGEX=/#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g,MASTER_PLAYLIST_MEDIA_REGEX=/#EXT-X-MEDIA:(.*)/g,IS_MEDIA_PLAYLIST=/^#EXT(?:INF|-X-TARGETDURATION):/m,LEVEL_PLAYLIST_REGEX_FAST=new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source,/(?!#) *(\S[^\r\n]*)/.source,/#.*/.source].join("|"),"g"),LEVEL_PLAYLIST_REGEX_SLOW=new RegExp([/#EXT-X-(PROGRAM-DATE-TIME|BYTERANGE|DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source,/#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source,/#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source,/(#)([^:]*):(.*)/.source,/(#)(.*)(?:.*)\r?\n?/.source].join("|"));class M3U8Parser{static findGroup(at,ut){for(let dt=0;dt0&&pt.length({id:yt.attrs.AUDIO,audioCodec:yt.audioCodec})),SUBTITLES:ft.map(yt=>({id:yt.attrs.SUBTITLES,textCodec:yt.textCodec})),"CLOSED-CAPTIONS":[]};let mt=0;for(MASTER_PLAYLIST_MEDIA_REGEX.lastIndex=0;(ct=MASTER_PLAYLIST_MEDIA_REGEX.exec(at))!==null;){const yt=new AttrList(ct[1],dt),bt=yt.TYPE;if(bt){const Tt=ht[bt],St=pt[bt]||[];pt[bt]=St;const At=yt.LANGUAGE,vt=yt["ASSOC-LANGUAGE"],Dt=yt.CHANNELS,Et=yt.CHARACTERISTICS,_t=yt["INSTREAM-ID"],xt={attrs:yt,bitrate:0,id:mt++,groupId:yt["GROUP-ID"]||"",name:yt.NAME||At||"",type:bt,default:yt.bool("DEFAULT"),autoselect:yt.bool("AUTOSELECT"),forced:yt.bool("FORCED"),lang:At,url:yt.URI?M3U8Parser.resolve(yt.URI,ut):""};if(vt&&(xt.assocLang=vt),Dt&&(xt.channels=Dt),Et&&(xt.characteristics=Et),_t&&(xt.instreamId=_t),Tt!=null&&Tt.length){const Ct=M3U8Parser.findGroup(Tt,xt.groupId)||Tt[0];assignCodec(xt,Ct,"audioCodec"),assignCodec(xt,Ct,"textCodec")}St.push(xt)}}return pt}static parseLevelPlaylist(at,ut,dt,ct,pt,ft){var ht;const mt={url:ut},yt=new LevelDetails(ut),bt=yt.fragments,Tt=[];let St=null,At=0,vt=0,Dt=0,Et=0,_t=0,xt=null,Ct=new Fragment(ct,mt),kt,wt,$t,Lt=-1,Ot=!1,zt=null,Mt;if(LEVEL_PLAYLIST_REGEX_FAST.lastIndex=0,yt.m3u8=at,yt.hasVariableRefs=hasVariableReferences(at),((ht=LEVEL_PLAYLIST_REGEX_FAST.exec(at))==null?void 0:ht[0])!=="#EXTM3U")return yt.playlistParsingError=new Error("Missing format identifier #EXTM3U"),yt;for(;(kt=LEVEL_PLAYLIST_REGEX_FAST.exec(at))!==null;){Ot&&(Ot=!1,Ct=new Fragment(ct,mt),Ct.playlistOffset=Dt,Ct.start=Dt,Ct.sn=At,Ct.cc=Et,_t&&(Ct.bitrate=_t),Ct.level=dt,St&&(Ct.initSegment=St,St.rawProgramDateTime&&(Ct.rawProgramDateTime=St.rawProgramDateTime,St.rawProgramDateTime=null),zt&&(Ct.setByteRange(zt),zt=null)));const jt=kt[1];if(jt){Ct.duration=parseFloat(jt);const Ft=(" "+kt[2]).slice(1);Ct.title=Ft||null,Ct.tagList.push(Ft?["INF",jt,Ft]:["INF",jt])}else if(kt[3]){if(isFiniteNumber(Ct.duration)){Ct.playlistOffset=Dt,Ct.start=Dt,$t&&setFragLevelKeys(Ct,$t,yt),Ct.sn=At,Ct.level=dt,Ct.cc=Et,bt.push(Ct);const Ft=(" "+kt[3]).slice(1);Ct.relurl=substituteVariables(yt,Ft),assignProgramDateTime(Ct,xt,Tt),xt=Ct,Dt+=Ct.duration,At++,vt=0,Ot=!0}}else{if(kt=kt[0].match(LEVEL_PLAYLIST_REGEX_SLOW),!kt){logger.warn("No matches on slow regex match for level playlist!");continue}for(wt=1;wt0&&assignMustAppearBeforeSegmentsError(yt,Ft,kt),At=yt.startSN=parseInt(Vt);break;case"SKIP":{yt.skippedSegments&&assignMultipleMediaPlaylistTagOccuranceError(yt,Ft,kt);const Kt=new AttrList(Vt,yt),Zt=Kt.decimalInteger("SKIPPED-SEGMENTS");if(isFiniteNumber(Zt)){yt.skippedSegments+=Zt;for(let Nt=Zt;Nt--;)bt.push(null);At+=Zt}const Wt=Kt.enumeratedString("RECENTLY-REMOVED-DATERANGES");Wt&&(yt.recentlyRemovedDateranges=(yt.recentlyRemovedDateranges||[]).concat(Wt.split(" ")));break}case"TARGETDURATION":yt.targetduration!==0&&assignMultipleMediaPlaylistTagOccuranceError(yt,Ft,kt),yt.targetduration=Math.max(parseInt(Vt),1);break;case"VERSION":yt.version!==null&&assignMultipleMediaPlaylistTagOccuranceError(yt,Ft,kt),yt.version=parseInt(Vt);break;case"INDEPENDENT-SEGMENTS":break;case"ENDLIST":yt.live||assignMultipleMediaPlaylistTagOccuranceError(yt,Ft,kt),yt.live=!1;break;case"#":(Vt||Ht)&&Ct.tagList.push(Ht?[Vt,Ht]:[Vt]);break;case"DISCONTINUITY":Et++,Ct.tagList.push(["DIS"]);break;case"GAP":Ct.gap=!0,Ct.tagList.push([Ft]);break;case"BITRATE":Ct.tagList.push([Ft,Vt]),_t=parseInt(Vt)*1e3,isFiniteNumber(_t)?Ct.bitrate=_t:_t=0;break;case"DATERANGE":{const Kt=new AttrList(Vt,yt),Zt=new DateRange(Kt,yt.dateRanges[Kt.ID],yt.dateRangeTagCount);yt.dateRangeTagCount++,Zt.isValid||yt.skippedSegments?yt.dateRanges[Zt.id]=Zt:logger.warn(`Ignoring invalid DATERANGE tag: "${Vt}"`),Ct.tagList.push(["EXT-X-DATERANGE",Vt]);break}case"DEFINE":{{const Kt=new AttrList(Vt,yt);"IMPORT"in Kt?importVariableDefinition(yt,Kt,ft):addVariableDefinition(yt,Kt,ut)}break}case"DISCONTINUITY-SEQUENCE":yt.startCC!==0?assignMultipleMediaPlaylistTagOccuranceError(yt,Ft,kt):bt.length>0&&assignMustAppearBeforeSegmentsError(yt,Ft,kt),yt.startCC=Et=parseInt(Vt);break;case"KEY":{const Kt=parseKey(Vt,ut,yt);if(Kt.isSupported()){if(Kt.method==="NONE"){$t=void 0;break}$t||($t={});const Zt=$t[Kt.keyFormat];Zt!=null&&Zt.matches(Kt)||(Zt&&($t=_extends({},$t)),$t[Kt.keyFormat]=Kt)}else logger.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${Vt}"`);break}case"START":yt.startTimeOffset=parseStartTimeOffset(Vt);break;case"MAP":{const Kt=new AttrList(Vt,yt);if(Ct.duration){const Zt=new Fragment(ct,mt);setInitSegment(Zt,Kt,dt,$t),St=Zt,Ct.initSegment=St,St.rawProgramDateTime&&!Ct.rawProgramDateTime&&(Ct.rawProgramDateTime=St.rawProgramDateTime)}else{const Zt=Ct.byteRangeEndOffset;if(Zt){const Wt=Ct.byteRangeStartOffset;zt=`${Zt-Wt}@${Wt}`}else zt=null;setInitSegment(Ct,Kt,dt,$t),St=Ct,Ot=!0}St.cc=Et;break}case"SERVER-CONTROL":{Mt&&assignMultipleMediaPlaylistTagOccuranceError(yt,Ft,kt),Mt=new AttrList(Vt),yt.canBlockReload=Mt.bool("CAN-BLOCK-RELOAD"),yt.canSkipUntil=Mt.optionalFloat("CAN-SKIP-UNTIL",0),yt.canSkipDateRanges=yt.canSkipUntil>0&&Mt.bool("CAN-SKIP-DATERANGES"),yt.partHoldBack=Mt.optionalFloat("PART-HOLD-BACK",0),yt.holdBack=Mt.optionalFloat("HOLD-BACK",0);break}case"PART-INF":{yt.partTarget&&assignMultipleMediaPlaylistTagOccuranceError(yt,Ft,kt);const Kt=new AttrList(Vt);yt.partTarget=Kt.decimalFloatingPoint("PART-TARGET");break}case"PART":{let Kt=yt.partList;Kt||(Kt=yt.partList=[]);const Zt=vt>0?Kt[Kt.length-1]:void 0,Wt=vt++,Nt=new AttrList(Vt,yt),Rt=new Part(Nt,Ct,mt,Wt,Zt);Kt.push(Rt),Ct.duration+=Rt.duration;break}case"PRELOAD-HINT":{const Kt=new AttrList(Vt,yt);yt.preloadHint=Kt;break}case"RENDITION-REPORT":{const Kt=new AttrList(Vt,yt);yt.renditionReports=yt.renditionReports||[],yt.renditionReports.push(Kt);break}default:logger.warn(`line parsed but not handled: ${kt}`);break}}}xt&&!xt.relurl?(bt.pop(),Dt-=xt.duration,yt.partList&&(yt.fragmentHint=xt)):yt.partList&&(assignProgramDateTime(Ct,xt,Tt),Ct.cc=Et,yt.fragmentHint=Ct,$t&&setFragLevelKeys(Ct,$t,yt)),yt.targetduration||(yt.playlistParsingError=new Error("#EXT-X-TARGETDURATION is required"));const qt=bt.length,Qt=bt[0],Yt=bt[qt-1];if(Dt+=yt.skippedSegments*yt.targetduration,Dt>0&&qt&&Yt){yt.averagetargetduration=Dt/qt;const jt=Yt.sn;yt.endSN=jt!=="initSegment"?jt:0,yt.live||(Yt.endList=!0),Qt&&yt.startCC===void 0&&(yt.startCC=Qt.cc),Lt>0&&(backfillProgramDateTimes(bt,Lt),Qt&&Tt.unshift(Qt))}else yt.endSN=0,yt.startCC=0;return yt.fragmentHint&&(Dt+=yt.fragmentHint.duration),yt.totalduration=Dt,Tt.length&&yt.dateRangeTagCount&&Qt&&mapDateRanges(Tt,yt),yt.endCC=Et,yt}}function mapDateRanges(st,at){const ut=st.length;if(!ut)return;const dt=st[ut-1],ct=at.live?1/0:at.totalduration,pt=Object.keys(at.dateRanges);for(let ft=pt.length;ft--;){const ht=at.dateRanges[pt[ft]],mt=ht.startDate.getTime();ht.tagAnchor=dt.ref;for(let yt=ut;yt--;){const bt=findFragmentWithStartDate(at,mt,st,yt,ct);if(bt!==-1){ht.tagAnchor=at.fragments[bt].ref;break}}}}function findFragmentWithStartDate(st,at,ut,dt,ct){const pt=ut[dt];if(pt){const ht=pt.programDateTime;if(at>=ht||dt===0){var ft;const mt=(((ft=ut[dt+1])==null?void 0:ft.start)||ct)-pt.start;if(at<=ht+mt*1e3){const yt=ut[dt].sn-st.startSN,bt=st.fragments;if(bt.length>ut.length){const St=(ut[dt+1]||bt[bt.length-1]).sn-st.startSN;for(let At=St;At>yt;At--){const vt=bt[At].programDateTime;if(at>=vt&&atdt);["video","audio","text"].forEach(dt=>{const ct=ut.filter(pt=>isCodecType(pt,dt));ct.length&&(at[`${dt}Codec`]=ct.map(pt=>pt.split("/")[0]).join(","),ut=ut.filter(pt=>ct.indexOf(pt)===-1))}),at.unknownCodecs=ut}function assignCodec(st,at,ut){const dt=at[ut];dt&&(st[ut]=dt)}function backfillProgramDateTimes(st,at){let ut=st[at];for(let dt=at;dt--;){const ct=st[dt];if(!ct)return;ct.programDateTime=ut.programDateTime-ct.duration*1e3,ut=ct}}function assignProgramDateTime(st,at,ut){st.rawProgramDateTime?ut.push(st):at!=null&&at.programDateTime&&(st.programDateTime=at.endProgramDateTime)}function setInitSegment(st,at,ut,dt){st.relurl=at.URI,at.BYTERANGE&&st.setByteRange(at.BYTERANGE),st.level=ut,st.sn="initSegment",dt&&(st.levelkeys=dt),st.initSegment=null}function setFragLevelKeys(st,at,ut){st.levelkeys=at;const{encryptedFragments:dt}=ut;(!dt.length||dt[dt.length-1].levelkeys!==at)&&Object.keys(at).some(ct=>at[ct].isCommonEncryption)&&dt.push(st)}function assignMultipleMediaPlaylistTagOccuranceError(st,at,ut){st.playlistParsingError=new Error(`#EXT-X-${at} must not appear more than once (${ut[0]})`)}function assignMustAppearBeforeSegmentsError(st,at,ut){st.playlistParsingError=new Error(`#EXT-X-${at} must appear before the first Media Segment (${ut[0]})`)}function updateFromToPTS(st,at){const ut=at.startPTS;if(isFiniteNumber(ut)){let dt=0,ct;at.sn>st.sn?(dt=ut-st.start,ct=st):(dt=st.start-ut,ct=at),ct.duration!==dt&&ct.setDuration(dt)}else at.sn>st.sn?st.cc===at.cc&&st.minEndPTS?at.setStart(st.start+(st.minEndPTS-st.start)):at.setStart(st.start+st.duration):at.setStart(Math.max(st.start-at.duration,0))}function updateFragPTSDTS(st,at,ut,dt,ct,pt){dt-ut<=0&&(logger.warn("Fragment should have a positive duration",at),dt=ut+at.duration,pt=ct+at.duration);let ht=ut,mt=dt;const yt=at.startPTS,bt=at.endPTS;if(isFiniteNumber(yt)){const Et=Math.abs(yt-ut);isFiniteNumber(at.deltaPTS)?at.deltaPTS=Math.max(Et,at.deltaPTS):at.deltaPTS=Et,ht=Math.max(ut,yt),ut=Math.min(ut,yt),ct=Math.min(ct,at.startDTS),mt=Math.min(dt,bt),dt=Math.max(dt,bt),pt=Math.max(pt,at.endDTS)}const Tt=ut-at.start;at.start!==0&&at.setStart(ut),at.setDuration(dt-at.start),at.startPTS=ut,at.maxStartPTS=ht,at.startDTS=ct,at.endPTS=dt,at.minEndPTS=mt,at.endDTS=pt;const St=at.sn;if(!st||Stst.endSN)return 0;let At;const vt=St-st.startSN,Dt=st.fragments;for(Dt[vt]=at,At=vt;At>0;At--)updateFromToPTS(Dt[At],Dt[At-1]);for(At=vt;At=0;yt--){const bt=dt[yt].initSegment;if(bt){ut=bt;break}}st.fragmentHint&&delete st.fragmentHint.endPTS;let ct;mapFragmentIntersection(st,at,(yt,bt,Tt,St)=>{if((!at.startCC||at.skippedSegments)&&bt.cc!==yt.cc){const At=yt.cc-bt.cc;for(let vt=Tt;vt{var bt;yt&&(!yt.initSegment||yt.initSegment.relurl===((bt=ut)==null?void 0:bt.relurl))&&(yt.initSegment=ut)}),at.skippedSegments){if(at.deltaUpdateFailed=pt.some(yt=>!yt),at.deltaUpdateFailed){logger.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(let yt=at.skippedSegments;yt--;)pt.shift();at.startSN=pt[0].sn}else{at.canSkipDateRanges&&(at.dateRanges=mergeDateRanges(st.dateRanges,at));const yt=st.fragments.filter(bt=>bt.rawProgramDateTime);if(st.hasProgramDateTime&&!at.hasProgramDateTime)for(let bt=1;bt{bt.elementaryStreams=yt.elementaryStreams,bt.stats=yt.stats}),ct?updateFragPTSDTS(at,ct,ct.startPTS,ct.endPTS,ct.startDTS,ct.endDTS):adjustSliding(st,at),pt.length&&(at.totalduration=at.edge-pt[0].start),at.driftStartTime=st.driftStartTime,at.driftStart=st.driftStart;const mt=at.advancedDateTime;if(at.advanced&&mt){const yt=at.edge;at.driftStart||(at.driftStartTime=mt,at.driftStart=yt),at.driftEndTime=mt,at.driftEnd=yt}else at.driftEndTime=st.driftEndTime,at.driftEnd=st.driftEnd,at.advancedDateTime=st.advancedDateTime;at.requestScheduled===-1&&(at.requestScheduled=st.requestScheduled)}function mergeDateRanges(st,at){const{dateRanges:ut,recentlyRemovedDateranges:dt}=at,ct=_extends({},st);dt&&dt.forEach(ht=>{delete ct[ht]});const ft=Object.keys(ct).length;return ft&&Object.keys(ut).forEach(ht=>{const mt=ct[ht],yt=new DateRange(ut[ht].attr,mt);yt.isValid?(ct[ht]=yt,mt||(yt.tagOrder+=ft)):logger.warn(`Ignoring invalid Playlist Delta Update DATERANGE tag: "${stringify(ut[ht].attr)}"`)}),ct}function mapPartIntersection(st,at,ut){if(st&&at){let dt=0;for(let ct=0,pt=st.length;ct<=pt;ct++){const ft=st[ct],ht=at[ct+dt];ft&&ht&&ft.index===ht.index&&ft.fragment.sn===ht.fragment.sn?ut(ft,ht):dt--}}}function mapFragmentIntersection(st,at,ut){const dt=at.skippedSegments,ct=Math.max(st.startSN,at.startSN)-at.startSN,pt=(st.fragmentHint?1:0)+(dt?at.endSN:Math.min(st.endSN,at.endSN))-at.startSN,ft=at.startSN-st.startSN,ht=at.fragmentHint?at.fragments.concat(at.fragmentHint):at.fragments,mt=st.fragmentHint?st.fragments.concat(st.fragmentHint):st.fragments;for(let yt=ct;yt<=pt;yt++){const bt=mt[ft+yt];let Tt=ht[yt];if(dt&&!Tt&&bt&&(Tt=at.fragments[yt]=bt),bt&&Tt){if(ut(bt,Tt,yt,ht),bt.url&&bt.url!==Tt.url){at.playlistParsingError=getSequenceError(`media sequence mismatch ${Tt.sn}:`,st,at,bt,Tt);return}else if(bt.cc!==Tt.cc){at.playlistParsingError=getSequenceError(`discontinuity sequence mismatch (${bt.cc}!=${Tt.cc})`,st,at,bt,Tt);return}}}}function getSequenceError(st,at,ut,dt,ct){return new Error(`${st} ${ct.url} Playlist starting @${at.startSN} ${at.m3u8} Playlist starting @${ut.startSN} ${ut.m3u8}`)}function adjustSliding(st,at,ut=!0){const dt=at.startSN+at.skippedSegments-st.startSN,ct=st.fragments,pt=dt>=0;let ft=0;if(pt&&dtat){const pt=dt[dt.length-1].duration*1e3;pt{var dt;(dt=at.details)==null||dt.fragments.forEach(ct=>{ct.level=ut,ct.initSegment&&(ct.initSegment.level=ut)})})}function findFirstFragWithCC(st,at){for(let dt=0,ct=st.length;dtst.startCC)}function adjustFragmentStart(st,at){if(st){const ut=st.start+at;st.start=st.startPTS=ut,st.endPTS=ut+st.duration}}function adjustSlidingStart(st,at){const ut=at.fragments;for(let dt=0,ct=ut.length;dt{const{config:ft,fragCurrent:ht,media:mt,mediaBuffer:yt,state:bt}=this,Tt=mt?mt.currentTime:0,St=BufferHelper.bufferInfo(yt||mt,Tt,ft.maxBufferHole),At=!St.len;if(this.log(`Media seeking to ${isFiniteNumber(Tt)?Tt.toFixed(3):Tt}, state: ${bt}, ${At?"out of":"in"} buffer`),this.state===State.ENDED)this.resetLoadingState();else if(ht){const vt=ft.maxFragLookUpTolerance,Dt=ht.start-vt,Et=ht.start+ht.duration+vt;if(At||EtSt.end){const _t=Tt>Et;(Ttvt&&(this.lastCurrentTime=Tt),!this.loadingParts){const Dt=Math.max(St.end,Tt),Et=this.shouldLoadParts(this.getLevelDetails(),Dt);Et&&(this.log(`LL-Part loading ON after seeking to ${Tt.toFixed(2)} with buffer @${Dt.toFixed(2)}`),this.loadingParts=Et)}}this.hls.hasEnoughToStart||(this.log(`Setting ${At?"startPosition":"nextLoadPosition"} to ${Tt} for seek without enough to start`),this.nextLoadPosition=Tt,At&&(this.startPosition=Tt)),this.tickImmediate()},this.onMediaEnded=()=>{this.log("setting startPosition to 0 because media ended"),this.startPosition=this.lastCurrentTime=0},this.playlistType=pt,this.hls=at,this.fragmentLoader=new FragmentLoader(at.config),this.keyLoader=dt,this.fragmentTracker=ut,this.config=at.config,this.decrypter=new Decrypter(at.config)}registerListeners(){const{hls:at}=this;at.on(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.MANIFEST_LOADED,this.onManifestLoaded,this),at.on(Events.ERROR,this.onError,this)}unregisterListeners(){const{hls:at}=this;at.off(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.MANIFEST_LOADED,this.onManifestLoaded,this),at.off(Events.ERROR,this.onError,this)}doTick(){this.onTickEnd()}onTickEnd(){}startLoad(at){}stopLoad(){if(this.state===State.STOPPED)return;this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);const at=this.fragCurrent;at!=null&&at.loader&&(at.abortRequests(),this.fragmentTracker.removeFragment(at)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=State.STOPPED}get startPositionValue(){const{nextLoadPosition:at,startPosition:ut}=this;return ut===-1&&at?at:ut}get bufferingEnabled(){return this.buffering}pauseBuffering(){this.buffering=!1}resumeBuffering(){this.buffering=!0}get inFlightFrag(){return{frag:this.fragCurrent,state:this.state}}_streamEnded(at,ut){if(ut.live||!this.media)return!1;const dt=at.end||0,ct=this.config.timelineOffset||0;if(dt<=ct)return!1;const pt=at.buffered;this.config.maxBufferHole&&pt&&pt.length>1&&(at=BufferHelper.bufferedInfo(pt,at.start,0));const ft=at.nextStart;if(ft&&ft>ct&&ft{const ft=pt.frag;if(this.fragContextChanged(ft)){this.warn(`${ft.type} sn: ${ft.sn}${pt.part?" part: "+pt.part.index:""} of ${this.fragInfo(ft,!1,pt.part)}) was dropped during download.`),this.fragmentTracker.removeFragment(ft);return}ft.stats.chunkCount++,this._handleFragmentLoadProgress(pt)};this._doFragLoad(at,ut,dt,ct).then(pt=>{if(!pt)return;const ft=this.state,ht=pt.frag;if(this.fragContextChanged(ht)){(ft===State.FRAG_LOADING||!this.fragCurrent&&ft===State.PARSING)&&(this.fragmentTracker.removeFragment(ht),this.state=State.IDLE);return}"payload"in pt&&(this.log(`Loaded ${ht.type} sn: ${ht.sn} of ${this.playlistLabel()} ${ht.level}`),this.hls.trigger(Events.FRAG_LOADED,pt)),this._handleFragmentLoadComplete(pt)}).catch(pt=>{this.state===State.STOPPED||this.state===State.ERROR||(this.warn(`Frag error: ${(pt==null?void 0:pt.message)||pt}`),this.resetFragmentLoading(at))})}clearTrackerIfNeeded(at){var ut;const{fragmentTracker:dt}=this;if(dt.getState(at)===FragmentState.APPENDING){const pt=at.type,ft=this.getFwdBufferInfo(this.mediaBuffer,pt),ht=Math.max(at.duration,ft?ft.len:this.config.maxBufferLength),mt=this.backtrackFragment;((mt?at.sn-mt.sn:0)===1||this.reduceMaxBufferLength(ht,at.duration))&&dt.removeFragment(at)}else((ut=this.mediaBuffer)==null?void 0:ut.buffered.length)===0?dt.removeAllFragments():dt.hasParts(at.type)&&(dt.detectPartialFragments({frag:at,part:null,stats:at.stats,id:at.type}),dt.getState(at)===FragmentState.PARTIAL&&dt.removeFragment(at))}checkLiveUpdate(at){if(at.updated&&!at.live){const ut=at.fragments[at.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:ut,part:null,stats:ut.stats,id:ut.type})}at.fragments[0]||(at.deltaUpdateFailed=!0)}waitForLive(at){const ut=at.details;return(ut==null?void 0:ut.live)&&ut.type!=="EVENT"&&(this.levelLastLoaded!==at||ut.expired)}flushMainBuffer(at,ut,dt=null){if(!(at-ut))return;const ct={startOffset:at,endOffset:ut,type:dt};this.hls.trigger(Events.BUFFER_FLUSHING,ct)}_loadInitSegment(at,ut){this._doFragLoad(at,ut).then(dt=>{const ct=dt==null?void 0:dt.frag;if(!ct||this.fragContextChanged(ct)||!this.levels)throw new Error("init load aborted");return dt}).then(dt=>{const{hls:ct}=this,{frag:pt,payload:ft}=dt,ht=pt.decryptdata;if(ft&&ft.byteLength>0&&ht!=null&&ht.key&&ht.iv&&isFullSegmentEncryption(ht.method)){const mt=self.performance.now();return this.decrypter.decrypt(new Uint8Array(ft),ht.key.buffer,ht.iv.buffer,getAesModeFromFullSegmentMethod(ht.method)).catch(yt=>{throw ct.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_DECRYPT_ERROR,fatal:!1,error:yt,reason:yt.message,frag:pt}),yt}).then(yt=>{const bt=self.performance.now();return ct.trigger(Events.FRAG_DECRYPTED,{frag:pt,payload:yt,stats:{tstart:mt,tdecrypt:bt}}),dt.payload=yt,this.completeInitSegmentLoad(dt)})}return this.completeInitSegmentLoad(dt)}).catch(dt=>{this.state===State.STOPPED||this.state===State.ERROR||(this.warn(dt),this.resetFragmentLoading(at))})}completeInitSegmentLoad(at){const{levels:ut}=this;if(!ut)throw new Error("init load aborted, missing levels");const dt=at.frag.stats;this.state!==State.STOPPED&&(this.state=State.IDLE),at.frag.data=new Uint8Array(at.payload),dt.parsing.start=dt.buffering.start=self.performance.now(),dt.parsing.end=dt.buffering.end=self.performance.now(),this.tick()}fragContextChanged(at){const{fragCurrent:ut}=this;return!at||!ut||at.sn!==ut.sn||at.level!==ut.level}fragBufferedComplete(at,ut){const dt=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(`Buffered ${at.type} sn: ${at.sn}${ut?" part: "+ut.index:""} of ${this.fragInfo(at,!1,ut)} > buffer:${dt?TimeRanges.toString(BufferHelper.getBuffered(dt)):"(detached)"})`),isMediaFragment(at)){var ct;if(at.type!==PlaylistLevelType.SUBTITLE){const ft=at.elementaryStreams;if(!Object.keys(ft).some(ht=>!!ft[ht])){this.state=State.IDLE;return}}const pt=(ct=this.levels)==null?void 0:ct[at.level];pt!=null&&pt.fragmentError&&(this.log(`Resetting level fragment error count of ${pt.fragmentError} on frag buffered`),pt.fragmentError=0)}this.state=State.IDLE}_handleFragmentLoadComplete(at){const{transmuxer:ut}=this;if(!ut)return;const{frag:dt,part:ct,partsLoaded:pt}=at,ft=!pt||pt.length===0||pt.some(mt=>!mt),ht=new ChunkMetadata(dt.level,dt.sn,dt.stats.chunkCount+1,0,ct?ct.index:-1,!ft);ut.flush(ht)}_handleFragmentLoadProgress(at){}_doFragLoad(at,ut,dt=null,ct){var pt;this.fragCurrent=at;const ft=ut==null?void 0:ut.details;if(!this.levels||!ft)throw new Error(`frag load aborted, missing level${ft?"":" detail"}s`);let ht=null;at.encrypted&&!((pt=at.decryptdata)!=null&&pt.key)?(this.log(`Loading key for ${at.sn} of [${ft.startSN}-${ft.endSN}], ${this.playlistLabel()} ${at.level}`),this.state=State.KEY_LOADING,this.fragCurrent=at,ht=this.keyLoader.load(at).then(Tt=>{if(!this.fragContextChanged(Tt.frag))return this.hls.trigger(Events.KEY_LOADED,Tt),this.state===State.KEY_LOADING&&(this.state=State.IDLE),Tt}),this.hls.trigger(Events.KEY_LOADING,{frag:at}),this.fragCurrent===null&&(ht=Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING")))):at.encrypted||(ht=this.keyLoader.loadClear(at,ft.encryptedFragments,this.startFragRequested),ht&&this.log("[eme] blocking frag load until media-keys acquired"));const mt=this.fragPrevious;if(isMediaFragment(at)&&(!mt||at.sn!==mt.sn)){const Tt=this.shouldLoadParts(ut.details,at.end);Tt!==this.loadingParts&&(this.log(`LL-Part loading ${Tt?"ON":"OFF"} loading sn ${mt==null?void 0:mt.sn}->${at.sn}`),this.loadingParts=Tt)}if(dt=Math.max(at.start,dt||0),this.loadingParts&&isMediaFragment(at)){const Tt=ft.partList;if(Tt&&ct){dt>at.end&&ft.fragmentHint&&(at=ft.fragmentHint);const St=this.getNextPart(Tt,at,dt);if(St>-1){const At=Tt[St];at=this.fragCurrent=At.fragment,this.log(`Loading ${at.type} sn: ${at.sn} part: ${At.index} (${St}/${Tt.length-1}) of ${this.fragInfo(at,!1,At)}) cc: ${at.cc} [${ft.startSN}-${ft.endSN}], target: ${parseFloat(dt.toFixed(3))}`),this.nextLoadPosition=At.start+At.duration,this.state=State.FRAG_LOADING;let vt;return ht?vt=ht.then(Dt=>!Dt||this.fragContextChanged(Dt.frag)?null:this.doFragPartsLoad(at,At,ut,ct)).catch(Dt=>this.handleFragLoadError(Dt)):vt=this.doFragPartsLoad(at,At,ut,ct).catch(Dt=>this.handleFragLoadError(Dt)),this.hls.trigger(Events.FRAG_LOADING,{frag:at,part:At,targetBufferTime:dt}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):vt}else if(!at.url||this.loadedEndOfParts(Tt,dt))return Promise.resolve(null)}}if(isMediaFragment(at)&&this.loadingParts)this.log(`LL-Part loading OFF after next part miss @${dt.toFixed(2)}`),this.loadingParts=!1;else if(!at.url)return Promise.resolve(null);this.log(`Loading ${at.type} sn: ${at.sn} of ${this.fragInfo(at,!1)}) cc: ${at.cc} ${ft?"["+ft.startSN+"-"+ft.endSN+"]":""}, target: ${parseFloat(dt.toFixed(3))}`),isFiniteNumber(at.sn)&&!this.bitrateTest&&(this.nextLoadPosition=at.start+at.duration),this.state=State.FRAG_LOADING;const yt=this.config.progressive;let bt;return yt&&ht?bt=ht.then(Tt=>!Tt||this.fragContextChanged(Tt==null?void 0:Tt.frag)?null:this.fragmentLoader.load(at,ct)).catch(Tt=>this.handleFragLoadError(Tt)):bt=Promise.all([this.fragmentLoader.load(at,yt?ct:void 0),ht]).then(([Tt])=>(!yt&&Tt&&ct&&ct(Tt),Tt)).catch(Tt=>this.handleFragLoadError(Tt)),this.hls.trigger(Events.FRAG_LOADING,{frag:at,targetBufferTime:dt}),this.fragCurrent===null?Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):bt}doFragPartsLoad(at,ut,dt,ct){return new Promise((pt,ft)=>{var ht;const mt=[],yt=(ht=dt.details)==null?void 0:ht.partList,bt=Tt=>{this.fragmentLoader.loadPart(at,Tt,ct).then(St=>{mt[Tt.index]=St;const At=St.part;this.hls.trigger(Events.FRAG_LOADED,St);const vt=getPartWith(dt.details,at.sn,Tt.index+1)||findPart(yt,at.sn,Tt.index+1);if(vt)bt(vt);else return pt({frag:at,part:At,partsLoaded:mt})}).catch(ft)};bt(ut)})}handleFragLoadError(at){if("data"in at){const ut=at.data;at.data&&ut.details===ErrorDetails.INTERNAL_ABORTED?this.handleFragLoadAborted(ut.frag,ut.part):this.hls.trigger(Events.ERROR,ut)}else this.hls.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.INTERNAL_EXCEPTION,err:at,error:at,fatal:!0});return null}_handleTransmuxerFlush(at){const ut=this.getCurrentContext(at);if(!ut||this.state!==State.PARSING){!this.fragCurrent&&this.state!==State.STOPPED&&this.state!==State.ERROR&&(this.state=State.IDLE);return}const{frag:dt,part:ct,level:pt}=ut,ft=self.performance.now();dt.stats.parsing.end=ft,ct&&(ct.stats.parsing.end=ft);const ht=this.getLevelDetails(),yt=ht&&dt.sn>ht.endSN||this.shouldLoadParts(ht,dt.end);yt!==this.loadingParts&&(this.log(`LL-Part loading ${yt?"ON":"OFF"} after parsing segment ending @${dt.end.toFixed(2)}`),this.loadingParts=yt),this.updateLevelTiming(dt,ct,pt,at.partial)}shouldLoadParts(at,ut){if(this.config.lowLatencyMode){if(!at)return this.loadingParts;if(at!=null&&at.partList){var dt;const pt=at.partList[0],ft=pt.end+(((dt=at.fragmentHint)==null?void 0:dt.duration)||0);if(ut>=ft){var ct;if((this.hls.hasEnoughToStart?((ct=this.media)==null?void 0:ct.currentTime)||this.lastCurrentTime:this.getLoadPosition())>pt.start-pt.fragment.duration)return!0}}}return!1}getCurrentContext(at){const{levels:ut,fragCurrent:dt}=this,{level:ct,sn:pt,part:ft}=at;if(!(ut!=null&&ut[ct]))return this.warn(`Levels object was unset while buffering fragment ${pt} of ${this.playlistLabel()} ${ct}. The current chunk will not be buffered.`),null;const ht=ut[ct],mt=ht.details,yt=ft>-1?getPartWith(mt,pt,ft):null,bt=yt?yt.fragment:getFragmentWithSN(mt,pt,dt);return bt?(dt&&dt!==bt&&(bt.stats=dt.stats),{frag:bt,part:yt,level:ht}):null}bufferFragmentData(at,ut,dt,ct,pt){var ft;if(!at||this.state!==State.PARSING)return;const{data1:ht,data2:mt}=at;let yt=ht;if(ht&&mt&&(yt=appendUint8Array(ht,mt)),!((ft=yt)!=null&&ft.length))return;const bt=this.initPTS[ut.cc],Tt=bt?-bt.baseTime/bt.timescale:void 0,St={type:at.type,frag:ut,part:dt,chunkMeta:ct,offset:Tt,parent:ut.type,data:yt};if(this.hls.trigger(Events.BUFFER_APPENDING,St),at.dropped&&at.independent&&!dt){if(pt)return;this.flushBufferGap(ut)}}flushBufferGap(at){const ut=this.media;if(!ut)return;if(!BufferHelper.isBuffered(ut,ut.currentTime)){this.flushMainBuffer(0,at.start);return}const dt=ut.currentTime,ct=BufferHelper.bufferInfo(ut,dt,0),pt=at.duration,ft=Math.min(this.config.maxFragLookUpTolerance*2,pt*.25),ht=Math.max(Math.min(at.start-ft,ct.end-ft),dt+ft);at.start-ht>ft&&this.flushMainBuffer(ht,at.start)}getFwdBufferInfo(at,ut){var dt;const ct=this.getLoadPosition();if(!isFiniteNumber(ct))return null;const ft=this.lastCurrentTime>ct||(dt=this.media)!=null&&dt.paused?0:this.config.maxBufferHole;return this.getFwdBufferInfoAtPos(at,ct,ut,ft)}getFwdBufferInfoAtPos(at,ut,dt,ct){const pt=BufferHelper.bufferInfo(at,ut,ct);if(pt.len===0&&pt.nextStart!==void 0){const ft=this.fragmentTracker.getBufferedFrag(ut,dt);if(ft&&(pt.nextStart<=ft.end||ft.gap)){const ht=Math.max(Math.min(pt.nextStart,ft.end)-ut,ct);return BufferHelper.bufferInfo(at,ut,ht)}}return pt}getMaxBufferLength(at){const{config:ut}=this;let dt;return at?dt=Math.max(8*ut.maxBufferSize/at,ut.maxBufferLength):dt=ut.maxBufferLength,Math.min(dt,ut.maxMaxBufferLength)}reduceMaxBufferLength(at,ut){const dt=this.config,ct=Math.max(Math.min(at-ut,dt.maxBufferLength),ut),pt=Math.max(at-ut*3,dt.maxMaxBufferLength/2,ct);return pt>=ct?(dt.maxMaxBufferLength=pt,this.warn(`Reduce max buffer length to ${pt}s`),!0):!1}getAppendedFrag(at,ut=PlaylistLevelType.MAIN){var dt;const ct=(dt=this.fragmentTracker)==null?void 0:dt.getAppendedFrag(at,ut);return ct&&"fragment"in ct?ct.fragment:ct}getNextFragment(at,ut){const dt=ut.fragments,ct=dt.length;if(!ct)return null;const{config:pt}=this,ft=dt[0].start,ht=pt.lowLatencyMode&&!!ut.partList;let mt=null;if(ut.live){const Tt=pt.initialLiveManifestSize;if(ct=ft?St:At)||mt.start:at;this.log(`Setting startPosition to ${vt} to match start frag at live edge. mainStart: ${St} liveSyncPosition: ${At} frag.start: ${(yt=mt)==null?void 0:yt.start}`),this.startPosition=this.nextLoadPosition=vt}}else at<=ft&&(mt=dt[0]);if(!mt){const Tt=this.loadingParts?ut.partEnd:ut.fragmentEnd;mt=this.getFragmentAtPosition(at,Tt,ut)}let bt=this.filterReplacedPrimary(mt,ut);if(!bt&&mt){const Tt=mt.sn-ut.startSN;bt=this.filterReplacedPrimary(dt[Tt+1]||null,ut)}return this.mapToInitFragWhenRequired(bt)}isLoopLoading(at,ut){const dt=this.fragmentTracker.getState(at);return(dt===FragmentState.OK||dt===FragmentState.PARTIAL&&!!at.gap)&&this.nextLoadPosition>ut}getNextFragmentLoopLoading(at,ut,dt,ct,pt){let ft=null;if(at.gap&&(ft=this.getNextFragment(this.nextLoadPosition,ut),ft&&!ft.gap&&dt.nextStart)){const ht=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,dt.nextStart,ct,0);if(ht!==null&&dt.len+ht.len>=pt){const mt=ft.sn;return this.loopSn!==mt&&(this.log(`buffer full after gaps in "${ct}" playlist starting at sn: ${mt}`),this.loopSn=mt),null}}return this.loopSn=void 0,ft}get primaryPrefetch(){if(interstitialsEnabled(this.hls.config)){var at,ut;if((at=this.hls.interstitialsManager)==null||(ut=at.playingItem)==null?void 0:ut.event)return!0}return!1}filterReplacedPrimary(at,ut){if(!at)return at;if(interstitialsEnabled(this.hls.config)&&at.type!==PlaylistLevelType.SUBTITLE){const dt=this.hls.interstitialsManager,ct=dt==null?void 0:dt.bufferingItem;if(ct){const ft=ct.event;if(ft){if(ft.appendInPlace||Math.abs(at.start-ct.start)>1||ct.start===0)return null}else if(at.end<=ct.start&&(ut==null?void 0:ut.live)===!1||at.start>ct.end&&ct.nextEvent&&(ct.nextEvent.appendInPlace||at.start-ct.end>1))return null}const pt=dt==null?void 0:dt.playerQueue;if(pt)for(let ft=pt.length;ft--;){const ht=pt[ft].interstitial;if(ht.appendInPlace&&at.start>=ht.startTime&&at.end<=ht.resumeTime)return null}}return at}mapToInitFragWhenRequired(at){return at!=null&&at.initSegment&&!(at!=null&&at.initSegment.data)&&!this.bitrateTest?at.initSegment:at}getNextPart(at,ut,dt){let ct=-1,pt=!1,ft=!0;for(let ht=0,mt=at.length;ht-1&&dtdt.start&&dt.loaded}getInitialLiveFragment(at){const ut=at.fragments,dt=this.fragPrevious;let ct=null;if(dt){if(at.hasProgramDateTime&&(this.log(`Live playlist, switching playlist, load frag with same PDT: ${dt.programDateTime}`),ct=findFragmentByPDT(ut,dt.endProgramDateTime,this.config.maxFragLookUpTolerance)),!ct){const pt=dt.sn+1;if(pt>=at.startSN&&pt<=at.endSN){const ft=ut[pt-at.startSN];dt.cc===ft.cc&&(ct=ft,this.log(`Live playlist, switching playlist, load frag with next SN: ${ct.sn}`))}ct||(ct=findNearestWithCC(at,dt.cc,dt.end),ct&&this.log(`Live playlist, switching playlist, load frag with same CC: ${ct.sn}`))}}else{const pt=this.hls.liveSyncPosition;pt!==null&&(ct=this.getFragmentAtPosition(pt,this.bitrateTest?at.fragmentEnd:at.edge,at))}return ct}getFragmentAtPosition(at,ut,dt){const{config:ct}=this;let{fragPrevious:pt}=this,{fragments:ft,endSN:ht}=dt;const{fragmentHint:mt}=dt,{maxFragLookUpTolerance:yt}=ct,bt=dt.partList,Tt=!!(this.loadingParts&&bt!=null&&bt.length&&mt);Tt&&mt&&!this.bitrateTest&&bt[bt.length-1].fragment.sn===mt.sn&&(ft=ft.concat(mt),ht=mt.sn);let St;if(atut-yt||(At=this.media)!=null&&At.paused||!this.startFragRequested?0:yt;St=findFragmentByPTS(pt,ft,at,Dt)}else St=ft[ft.length-1];if(St){const vt=St.sn-dt.startSN,Dt=this.fragmentTracker.getState(St);if((Dt===FragmentState.OK||Dt===FragmentState.PARTIAL&&St.gap)&&(pt=St),pt&&St.sn===pt.sn&&(!Tt||bt[0].fragment.sn>St.sn||!dt.live&&!Tt)&&pt&&St.level===pt.level){const _t=ft[vt+1];St.sn${at.startSN} fragments: ${ct}`),mt}return pt}waitForCdnTuneIn(at){return at.live&&at.canBlockReload&&at.partTarget&&at.tuneInGoal>Math.max(at.partHoldBack,at.partTarget*3)}setStartPosition(at,ut){let dt=this.startPosition;dt=0&&(dt=this.nextLoadPosition),dt}handleFragLoadAborted(at,ut){this.transmuxer&&at.type===this.playlistType&&isMediaFragment(at)&&at.stats.aborted&&(this.log(`Fragment ${at.sn}${ut?" part "+ut.index:""} of ${this.playlistLabel()} ${at.level} was aborted`),this.resetFragmentLoading(at))}resetFragmentLoading(at){(!this.fragCurrent||!this.fragContextChanged(at)&&this.state!==State.FRAG_LOADING_WAITING_RETRY)&&(this.state=State.IDLE)}onFragmentOrKeyLoadError(at,ut){if(ut.chunkMeta&&!ut.frag){const vt=this.getCurrentContext(ut.chunkMeta);vt&&(ut.frag=vt.frag)}const dt=ut.frag;if(!dt||dt.type!==at||!this.levels)return;if(this.fragContextChanged(dt)){var ct;this.warn(`Frag load error must match current frag to retry ${dt.url} > ${(ct=this.fragCurrent)==null?void 0:ct.url}`);return}const pt=ut.details===ErrorDetails.FRAG_GAP;pt&&this.fragmentTracker.fragBuffered(dt,!0);const ft=ut.errorAction,{action:ht,flags:mt,retryCount:yt=0,retryConfig:bt}=ft||{},Tt=!!ft&&!!bt,St=Tt&&ht===NetworkErrorAction.RetryRequest,At=Tt&&!ft.resolved&&mt===ErrorActionFlags.MoveAllAlternatesMatchingHost;if(!St&&At&&isMediaFragment(dt)&&!dt.endList)this.resetFragmentErrors(at),this.treatAsGap(dt),ft.resolved=!0;else if((St||At)&&yt.5;pt&&this.reduceMaxBufferLength(ct.len,(ut==null?void 0:ut.duration)||10);const ft=!pt;return ft&&this.warn(`Buffer full error while media.currentTime is not buffered, flush ${dt} buffer`),ut&&(this.fragmentTracker.removeFragment(ut),this.nextLoadPosition=ut.start),this.resetLoadingState(),ft}return!1}resetFragmentErrors(at){at===PlaylistLevelType.AUDIO&&(this.fragCurrent=null),this.hls.hasEnoughToStart||(this.startFragRequested=!1),this.state!==State.STOPPED&&(this.state=State.IDLE)}afterBufferFlushed(at,ut,dt){if(!at)return;const ct=BufferHelper.getBuffered(at);this.fragmentTracker.detectEvictedFragments(ut,ct,dt),this.state===State.ENDED&&this.resetLoadingState()}resetLoadingState(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state!==State.STOPPED&&(this.state=State.IDLE)}resetStartWhenNotLoaded(at){if(!this.hls.hasEnoughToStart){this.startFragRequested=!1;const ut=at?at.details:null;ut!=null&&ut.live?(this.log("resetting startPosition for live start"),this.startPosition=-1,this.setStartPosition(ut,ut.fragmentStart),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}resetWhenMissingContext(at){this.warn(`The loading context changed while buffering fragment ${at.sn} of ${this.playlistLabel()} ${at.level}. This chunk will not be buffered.`),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState()}removeUnbufferedFrags(at=0){this.fragmentTracker.removeFragmentsInRange(at,1/0,this.playlistType,!1,!0)}updateLevelTiming(at,ut,dt,ct){const pt=dt.details;if(!pt){this.warn("level.details undefined");return}if(!Object.keys(at.elementaryStreams).reduce((mt,yt)=>{const bt=at.elementaryStreams[yt];if(bt){const Tt=bt.endPTS-bt.startPTS;if(Tt<=0)return this.warn(`Could not parse fragment ${at.sn} ${yt} duration reliably (${Tt})`),mt||!1;const St=ct?0:updateFragPTSDTS(pt,at,bt.startPTS,bt.endPTS,bt.startDTS,bt.endDTS);return this.hls.trigger(Events.LEVEL_PTS_UPDATED,{details:pt,level:dt,drift:St,type:yt,frag:at,start:bt.startPTS,end:bt.endPTS}),!0}return mt},!1)){var ht;if(dt.fragmentError===0&&this.treatAsGap(at,dt),((ht=this.transmuxer)==null?void 0:ht.error)===null){const mt=new Error(`Found no media in fragment ${at.sn} of ${this.playlistLabel()} ${at.level} resetting transmuxer to fallback to playlist timing`);if(this.warn(mt.message),this.hls.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_PARSING_ERROR,fatal:!1,error:mt,frag:at,reason:`Found no media in msn ${at.sn} of ${this.playlistLabel()} "${dt.url}"`}),!this.hls)return;this.resetTransmuxer()}}this.state=State.PARSED,this.log(`Parsed ${at.type} sn: ${at.sn}${ut?" part: "+ut.index:""} of ${this.fragInfo(at,!1,ut)})`),this.hls.trigger(Events.FRAG_PARSED,{frag:at,part:ut})}playlistLabel(){return this.playlistType===PlaylistLevelType.MAIN?"level":"track"}fragInfo(at,ut=!0,dt){var ct,pt;return`${this.playlistLabel()} ${at.level} (${dt?"part":"frag"}:[${((ct=ut&&!dt?at.startPTS:(dt||at).start)!=null?ct:NaN).toFixed(3)}-${((pt=ut&&!dt?at.endPTS:(dt||at).end)!=null?pt:NaN).toFixed(3)}]${dt&&at.type==="main"?"INDEPENDENT="+(dt.independent?"YES":"NO"):""}`}treatAsGap(at,ut){ut&&ut.fragmentError++,at.gap=!0,this.fragmentTracker.removeFragment(at),this.fragmentTracker.fragBuffered(at,!0)}resetTransmuxer(){var at;(at=this.transmuxer)==null||at.reset()}recoverWorkerError(at){at.event==="demuxerWorker"&&(this.fragmentTracker.removeAllFragments(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState())}set state(at){const ut=this._state;ut!==at&&(this._state=at,this.log(`${ut}->${at}`))}get state(){return this._state}}function interstitialsEnabled(st){return!!st.interstitialsController&&st.enableInterstitialPlayback!==!1}class ChunkCache{constructor(){this.chunks=[],this.dataLength=0}push(at){this.chunks.push(at),this.dataLength+=at.length}flush(){const{chunks:at,dataLength:ut}=this;let dt;if(at.length)at.length===1?dt=at[0]:dt=concatUint8Arrays(at,ut);else return new Uint8Array(0);return this.reset(),dt}reset(){this.chunks.length=0,this.dataLength=0}}function concatUint8Arrays(st,at){const ut=new Uint8Array(at);let dt=0;for(let ct=0;ct0)return st.subarray(ut,ut+dt)}function getAudioConfig(st,at,ut,dt){const ct=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],pt=at[ut+2],ft=pt>>2&15;if(ft>12){const At=new Error(`invalid ADTS sampling index:${ft}`);st.emit(Events.ERROR,Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_PARSING_ERROR,fatal:!0,error:At,reason:At.message});return}const ht=(pt>>6&3)+1,mt=at[ut+3]>>6&3|(pt&1)<<2,yt="mp4a.40."+ht,bt=ct[ft];let Tt=ft;(ht===5||ht===29)&&(Tt-=3);const St=[ht<<3|(Tt&14)>>1,(Tt&1)<<7|mt<<3];return logger.log(`manifest codec:${dt}, parsed codec:${yt}, channels:${mt}, rate:${bt} (ADTS object type:${ht} sampling index:${ft})`),{config:St,samplerate:bt,channelCount:mt,codec:yt,parsedCodec:yt,manifestCodec:dt}}function isHeaderPattern$1(st,at){return st[at]===255&&(st[at+1]&246)===240}function getHeaderLength(st,at){return st[at+1]&1?7:9}function getFullFrameLength(st,at){return(st[at+3]&3)<<11|st[at+4]<<3|(st[at+5]&224)>>>5}function canGetFrameLength(st,at){return at+5=st.length)return!1;const dt=getFullFrameLength(st,at);if(dt<=ut)return!1;const ct=at+dt;return ct===st.length||isHeader$1(st,ct)}return!1}function initTrackConfig(st,at,ut,dt,ct){if(!st.samplerate){const pt=getAudioConfig(at,ut,dt,ct);if(!pt)return;_extends(st,pt)}}function getFrameDuration(st){return 1024*9e4/st}function parseFrameHeader(st,at){const ut=getHeaderLength(st,at);if(at+ut<=st.length){const dt=getFullFrameLength(st,at)-ut;if(dt>0)return{headerLength:ut,frameLength:dt}}}function appendFrame$2(st,at,ut,dt,ct){const pt=getFrameDuration(st.samplerate),ft=dt+ct*pt,ht=parseFrameHeader(at,ut);let mt;if(ht){const{frameLength:Tt,headerLength:St}=ht,At=St+Tt,vt=Math.max(0,ut+At-at.length);vt?(mt=new Uint8Array(At-St),mt.set(at.subarray(ut+St,at.length),0)):mt=at.subarray(ut+St,ut+At);const Dt={unit:mt,pts:ft};return vt||st.samples.push(Dt),{sample:Dt,length:At,missing:vt}}const yt=at.length-ut;return mt=new Uint8Array(yt),mt.set(at.subarray(ut,at.length),0),{sample:{unit:mt,pts:ft},length:yt,missing:-1}}function canParseId3(st,at){return isId3Header(st,at)&&readId3Size(st,at+6)+10<=st.length-at}function toArrayBuffer(st){return st instanceof ArrayBuffer?st:st.byteOffset==0&&st.byteLength==st.buffer.byteLength?st.buffer:new Uint8Array(st).buffer}function toUint8(st,at=0,ut=1/0){return view(st,at,ut,Uint8Array)}function view(st,at,ut,dt){const ct=unsafeGetArrayBuffer(st);let pt=1;"BYTES_PER_ELEMENT"in dt&&(pt=dt.BYTES_PER_ELEMENT);const ft=isArrayBufferView(st)?st.byteOffset:0,ht=(ft+st.byteLength)/pt,mt=(ft+at)/pt,yt=Math.floor(Math.max(0,Math.min(mt,ht))),bt=Math.floor(Math.min(yt+Math.max(ut,0),ht));return new dt(ct,yt,bt-yt)}function unsafeGetArrayBuffer(st){return st instanceof ArrayBuffer?st:st.buffer}function isArrayBufferView(st){return st&&st.buffer instanceof ArrayBuffer&&st.byteLength!==void 0&&st.byteOffset!==void 0}function decodeId3ImageFrame(st){const at={key:st.type,description:"",data:"",mimeType:null,pictureType:null},ut=3;if(st.size<2)return;if(st.data[0]!==ut){console.log("Ignore frame with unrecognized character encoding");return}const dt=st.data.subarray(1).indexOf(0);if(dt===-1)return;const ct=utf8ArrayToStr(toUint8(st.data,1,dt)),pt=st.data[2+dt],ft=st.data.subarray(3+dt).indexOf(0);if(ft===-1)return;const ht=utf8ArrayToStr(toUint8(st.data,3+dt,ft));let mt;return ct==="-->"?mt=utf8ArrayToStr(toUint8(st.data,4+dt+ft)):mt=toArrayBuffer(st.data.subarray(4+dt+ft)),at.mimeType=ct,at.pictureType=pt,at.description=ht,at.data=mt,at}function decodeId3PrivFrame(st){if(st.size<2)return;const at=utf8ArrayToStr(st.data,!0),ut=new Uint8Array(st.data.subarray(at.length+1));return{key:st.type,info:at,data:ut.buffer}}function decodeId3TextFrame(st){if(st.size<2)return;if(st.type==="TXXX"){let ut=1;const dt=utf8ArrayToStr(st.data.subarray(ut),!0);ut+=dt.length+1;const ct=utf8ArrayToStr(st.data.subarray(ut));return{key:st.type,info:dt,data:ct}}const at=utf8ArrayToStr(st.data.subarray(1));return{key:st.type,info:"",data:at}}function decodeId3UrlFrame(st){if(st.type==="WXXX"){if(st.size<2)return;let ut=1;const dt=utf8ArrayToStr(st.data.subarray(ut),!0);ut+=dt.length+1;const ct=utf8ArrayToStr(st.data.subarray(ut));return{key:st.type,info:dt,data:ct}}const at=utf8ArrayToStr(st.data);return{key:st.type,info:"",data:at}}function decodeId3Frame(st){return st.type==="PRIV"?decodeId3PrivFrame(st):st.type[0]==="W"?decodeId3UrlFrame(st):st.type==="APIC"?decodeId3ImageFrame(st):decodeId3TextFrame(st)}function getId3FrameData(st){const at=String.fromCharCode(st[0],st[1],st[2],st[3]),ut=readId3Size(st,4),dt=10;return{type:at,size:ut,data:st.subarray(dt,dt+ut)}}const HEADER_FOOTER_SIZE=10,FRAME_SIZE=10;function getId3Frames(st){let at=0;const ut=[];for(;isId3Header(st,at);){const dt=readId3Size(st,at+6);st[at+5]>>6&1&&(at+=HEADER_FOOTER_SIZE),at+=HEADER_FOOTER_SIZE;const ct=at+dt;for(;at+FRAME_SIZE0&&ht.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:dt,type:MetadataSchema.audioId3,duration:Number.POSITIVE_INFINITY});ct{if(isFiniteNumber(st))return st*90;const dt=ut?ut.baseTime*9e4/ut.timescale:0;return at*9e4+dt};let chromeVersion$1=null;const BitratesMap=[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],SamplingRateMap=[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],SamplesCoefficients=[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],BytesInSlot=[0,1,1,4];function appendFrame$1(st,at,ut,dt,ct){if(ut+24>at.length)return;const pt=parseHeader(at,ut);if(pt&&ut+pt.frameLength<=at.length){const ft=pt.samplesPerFrame*9e4/pt.sampleRate,ht=dt+ct*ft,mt={unit:at.subarray(ut,ut+pt.frameLength),pts:ht,dts:ht};return st.config=[],st.channelCount=pt.channelCount,st.samplerate=pt.sampleRate,st.samples.push(mt),{sample:mt,length:pt.frameLength,missing:0}}}function parseHeader(st,at){const ut=st[at+1]>>3&3,dt=st[at+1]>>1&3,ct=st[at+2]>>4&15,pt=st[at+2]>>2&3;if(ut!==1&&ct!==0&&ct!==15&&pt!==3){const ft=st[at+2]>>1&1,ht=st[at+3]>>6,mt=ut===3?3-dt:dt===3?3:4,yt=BitratesMap[mt*14+ct-1]*1e3,Tt=SamplingRateMap[(ut===3?0:ut===2?1:2)*3+pt],St=ht===3?1:2,At=SamplesCoefficients[ut][dt],vt=BytesInSlot[dt],Dt=At*8*vt,Et=Math.floor(At*yt/Tt+ft)*vt;if(chromeVersion$1===null){const Ct=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);chromeVersion$1=Ct?parseInt(Ct[1]):0}return!!chromeVersion$1&&chromeVersion$1<=87&&dt===2&&yt>=224e3&&ht===0&&(st[at+3]=st[at+3]|128),{sampleRate:Tt,channelCount:St,frameLength:Et,samplesPerFrame:Dt}}}function isHeaderPattern(st,at){return st[at]===255&&(st[at+1]&224)===224&&(st[at+1]&6)!==0}function isHeader(st,at){return at+1{let ut=0,dt=5;at+=dt;const ct=new Uint32Array(1),pt=new Uint32Array(1),ft=new Uint8Array(1);for(;dt>0;){ft[0]=st[at];const ht=Math.min(dt,8),mt=8-ht;pt[0]=4278190080>>>24+mt<>mt,ut=ut?ut<at.length||at[ut]!==11||at[ut+1]!==119)return-1;const pt=at[ut+4]>>6;if(pt>=3)return-1;const ht=[48e3,44100,32e3][pt],mt=at[ut+4]&63,bt=[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][mt*3+pt]*2;if(ut+bt>at.length)return-1;const Tt=at[ut+6]>>5;let St=0;Tt===2?St+=2:(Tt&1&&Tt!==1&&(St+=2),Tt&4&&(St+=2));const At=(at[ut+6]<<8|at[ut+7])>>12-St&1,Dt=[2,1,2,3,3,4,4,5][Tt]+At,Et=at[ut+5]>>3,_t=at[ut+5]&7,xt=new Uint8Array([pt<<6|Et<<1|_t>>2,(_t&3)<<6|Tt<<3|At<<2|mt>>4,mt<<4&224]),Ct=1536/ht*9e4,kt=dt+ct*Ct,wt=at.subarray(ut,ut+bt);return st.config=xt,st.channelCount=Dt,st.samplerate=ht,st.samples.push({unit:wt,pts:kt}),bt}class MP3Demuxer extends BaseAudioDemuxer{resetInitSegment(at,ut,dt,ct){super.resetInitSegment(at,ut,dt,ct),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:ut,duration:ct,inputTimeScale:9e4,dropped:0}}static probe(at){if(!at)return!1;const ut=getId3Data(at,0);let dt=(ut==null?void 0:ut.length)||0;if(ut&&at[dt]===11&&at[dt+1]===119&&getId3Timestamp(ut)!==void 0&&getAudioBSID(at,dt)<=16)return!1;for(let ct=at.length;dt{const ft=parseEmsg(pt);if(emsgSchemePattern.test(ft.schemeIdUri)){const ht=getEmsgStartTime(ft,ut);let mt=ft.eventDuration===4294967295?Number.POSITIVE_INFINITY:ft.eventDuration/ft.timeScale;mt<=.001&&(mt=Number.POSITIVE_INFINITY);const yt=ft.payload;dt.samples.push({data:yt,len:yt.byteLength,dts:ht,pts:ht,type:MetadataSchema.emsg,duration:mt})}else if(this.config.enableEmsgKLVMetadata&&ft.schemeIdUri.startsWith("urn:misb:KLV:bin:1910.1")){const ht=getEmsgStartTime(ft,ut);dt.samples.push({data:ft.payload,len:ft.payload.byteLength,dts:ht,pts:ht,type:MetadataSchema.misbklv,duration:Number.POSITIVE_INFINITY})}})}return dt}demuxSampleAes(at,ut,dt){return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption"))}destroy(){this.config=null,this.remainderData=null,this.videoTrack=this.audioTrack=this.id3Track=this.txtTrack=void 0}}function getEmsgStartTime(st,at){return isFiniteNumber(st.presentationTime)?st.presentationTime/st.timeScale:at+st.presentationTimeDelta/st.timeScale}class SampleAesDecrypter{constructor(at,ut,dt){this.keyData=void 0,this.decrypter=void 0,this.keyData=dt,this.decrypter=new Decrypter(ut,{removePKCS7Padding:!1})}decryptBuffer(at){return this.decrypter.decrypt(at,this.keyData.key.buffer,this.keyData.iv.buffer,DecrypterAesMode.cbc)}decryptAacSample(at,ut,dt){const ct=at[ut].unit;if(ct.length<=16)return;const pt=ct.subarray(16,ct.length-ct.length%16),ft=pt.buffer.slice(pt.byteOffset,pt.byteOffset+pt.length);this.decryptBuffer(ft).then(ht=>{const mt=new Uint8Array(ht);ct.set(mt,16),this.decrypter.isSync()||this.decryptAacSamples(at,ut+1,dt)})}decryptAacSamples(at,ut,dt){for(;;ut++){if(ut>=at.length){dt();return}if(!(at[ut].unit.length<32)&&(this.decryptAacSample(at,ut,dt),!this.decrypter.isSync()))return}}getAvcEncryptedData(at){const ut=Math.floor((at.length-48)/160)*16+16,dt=new Int8Array(ut);let ct=0;for(let pt=32;pt{pt.data=this.getAvcDecryptedUnit(ft,mt),this.decrypter.isSync()||this.decryptAvcSamples(at,ut,dt+1,ct)})}decryptAvcSamples(at,ut,dt,ct){if(at instanceof Uint8Array)throw new Error("Cannot decrypt samples of type Uint8Array");for(;;ut++,dt=0){if(ut>=at.length){ct();return}const pt=at[ut].units;for(;!(dt>=pt.length);dt++){const ft=pt[dt];if(!(ft.data.length<=48||ft.type!==1&&ft.type!==5)&&(this.decryptAvcSample(at,ut,dt,ct,ft),!this.decrypter.isSync()))return}}}}class BaseVideoParser{constructor(){this.VideoSample=null}createVideoSample(at,ut,dt){return{key:at,frame:!1,pts:ut,dts:dt,units:[],length:0}}getLastNalUnit(at){var ut;let dt=this.VideoSample,ct;if((!dt||dt.units.length===0)&&(dt=at[at.length-1]),(ut=dt)!=null&&ut.units){const pt=dt.units;ct=pt[pt.length-1]}return ct}pushAccessUnit(at,ut){if(at.units.length&&at.frame){if(at.pts===void 0){const dt=ut.samples,ct=dt.length;if(ct){const pt=dt[ct-1];at.pts=pt.pts,at.dts=pt.dts}else{ut.dropped++;return}}ut.samples.push(at)}}parseNALu(at,ut,dt){const ct=ut.byteLength;let pt=at.naluState||0;const ft=pt,ht=[];let mt=0,yt,bt,Tt,St=-1,At=0;for(pt===-1&&(St=0,At=this.getNALuType(ut,0),pt=0,mt=1);mt=0){const vt={data:ut.subarray(St,bt),type:At};ht.push(vt)}else{const vt=this.getLastNalUnit(at.samples);vt&&(ft&&mt<=4-ft&&vt.state&&(vt.data=vt.data.subarray(0,vt.data.byteLength-ft)),bt>0&&(vt.data=appendUint8Array(vt.data,ut.subarray(0,bt)),vt.state=0))}mt=0&&pt>=0){const vt={data:ut.subarray(St,ct),type:At,state:pt};ht.push(vt)}if(ht.length===0){const vt=this.getLastNalUnit(at.samples);vt&&(vt.data=appendUint8Array(vt.data,ut))}return at.naluState=pt,ht}}class ExpGolomb{constructor(at){this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=at,this.bytesAvailable=at.byteLength,this.word=0,this.bitsAvailable=0}loadWord(){const at=this.data,ut=this.bytesAvailable,dt=at.byteLength-ut,ct=new Uint8Array(4),pt=Math.min(4,ut);if(pt===0)throw new Error("no bytes available");ct.set(at.subarray(dt,dt+pt)),this.word=new DataView(ct.buffer).getUint32(0),this.bitsAvailable=pt*8,this.bytesAvailable-=pt}skipBits(at){let ut;at=Math.min(at,this.bytesAvailable*8+this.bitsAvailable),this.bitsAvailable>at?(this.word<<=at,this.bitsAvailable-=at):(at-=this.bitsAvailable,ut=at>>3,at-=ut<<3,this.bytesAvailable-=ut,this.loadWord(),this.word<<=at,this.bitsAvailable-=at)}readBits(at){let ut=Math.min(this.bitsAvailable,at);const dt=this.word>>>32-ut;if(at>32&&logger.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=ut,this.bitsAvailable>0)this.word<<=ut;else if(this.bytesAvailable>0)this.loadWord();else throw new Error("no bits available");return ut=at-ut,ut>0&&this.bitsAvailable?dt<>>at)return this.word<<=at,this.bitsAvailable-=at,at;return this.loadWord(),at+this.skipLZ()}skipUEG(){this.skipBits(1+this.skipLZ())}skipEG(){this.skipBits(1+this.skipLZ())}readUEG(){const at=this.skipLZ();return this.readBits(at+1)-1}readEG(){const at=this.readUEG();return 1&at?1+at>>>1:-1*(at>>>1)}readBoolean(){return this.readBits(1)===1}readUByte(){return this.readBits(8)}readUShort(){return this.readBits(16)}readUInt(){return this.readBits(32)}}class AvcVideoParser extends BaseVideoParser{parsePES(at,ut,dt,ct){const pt=this.parseNALu(at,dt.data,ct);let ft=this.VideoSample,ht,mt=!1;dt.data=null,ft&&pt.length&&!at.audFound&&(this.pushAccessUnit(ft,at),ft=this.VideoSample=this.createVideoSample(!1,dt.pts,dt.dts)),pt.forEach(yt=>{var bt,Tt;switch(yt.type){case 1:{let Dt=!1;ht=!0;const Et=yt.data;if(mt&&Et.length>4){const _t=this.readSliceType(Et);(_t===2||_t===4||_t===7||_t===9)&&(Dt=!0)}if(Dt){var St;(St=ft)!=null&&St.frame&&!ft.key&&(this.pushAccessUnit(ft,at),ft=this.VideoSample=null)}ft||(ft=this.VideoSample=this.createVideoSample(!0,dt.pts,dt.dts)),ft.frame=!0,ft.key=Dt;break}case 5:ht=!0,(bt=ft)!=null&&bt.frame&&!ft.key&&(this.pushAccessUnit(ft,at),ft=this.VideoSample=null),ft||(ft=this.VideoSample=this.createVideoSample(!0,dt.pts,dt.dts)),ft.key=!0,ft.frame=!0;break;case 6:{ht=!0,parseSEIMessageFromNALu(yt.data,1,dt.pts,ut.samples);break}case 7:{var At,vt;ht=!0,mt=!0;const Dt=yt.data,Et=this.readSPS(Dt);if(!at.sps||at.width!==Et.width||at.height!==Et.height||((At=at.pixelRatio)==null?void 0:At[0])!==Et.pixelRatio[0]||((vt=at.pixelRatio)==null?void 0:vt[1])!==Et.pixelRatio[1]){at.width=Et.width,at.height=Et.height,at.pixelRatio=Et.pixelRatio,at.sps=[Dt];const _t=Dt.subarray(1,4);let xt="avc1.";for(let Ct=0;Ct<3;Ct++){let kt=_t[Ct].toString(16);kt.length<2&&(kt="0"+kt),xt+=kt}at.codec=xt}break}case 8:ht=!0,at.pps=[yt.data];break;case 9:ht=!0,at.audFound=!0,(Tt=ft)!=null&&Tt.frame&&(this.pushAccessUnit(ft,at),ft=null),ft||(ft=this.VideoSample=this.createVideoSample(!1,dt.pts,dt.dts));break;case 12:ht=!0;break;default:ht=!1;break}ft&&ht&&ft.units.push(yt)}),ct&&ft&&(this.pushAccessUnit(ft,at),this.VideoSample=null)}getNALuType(at,ut){return at[ut]&31}readSliceType(at){const ut=new ExpGolomb(at);return ut.readUByte(),ut.readUEG(),ut.readUEG()}skipScalingList(at,ut){let dt=8,ct=8,pt;for(let ft=0;ft{var bt,Tt;switch(yt.type){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:ft||(ft=this.VideoSample=this.createVideoSample(!1,dt.pts,dt.dts)),ft.frame=!0,ht=!0;break;case 16:case 17:case 18:case 21:if(ht=!0,mt){var St;(St=ft)!=null&&St.frame&&!ft.key&&(this.pushAccessUnit(ft,at),ft=this.VideoSample=null)}ft||(ft=this.VideoSample=this.createVideoSample(!0,dt.pts,dt.dts)),ft.key=!0,ft.frame=!0;break;case 19:case 20:ht=!0,(bt=ft)!=null&&bt.frame&&!ft.key&&(this.pushAccessUnit(ft,at),ft=this.VideoSample=null),ft||(ft=this.VideoSample=this.createVideoSample(!0,dt.pts,dt.dts)),ft.key=!0,ft.frame=!0;break;case 39:ht=!0,parseSEIMessageFromNALu(yt.data,2,dt.pts,ut.samples);break;case 32:ht=!0,at.vps||(typeof at.params!="object"&&(at.params={}),at.params=_extends(at.params,this.readVPS(yt.data)),this.initVPS=yt.data),at.vps=[yt.data];break;case 33:if(ht=!0,mt=!0,at.vps!==void 0&&at.vps[0]!==this.initVPS&&at.sps!==void 0&&!this.matchSPS(at.sps[0],yt.data)&&(this.initVPS=at.vps[0],at.sps=at.pps=void 0),!at.sps){const At=this.readSPS(yt.data);at.width=At.width,at.height=At.height,at.pixelRatio=At.pixelRatio,at.codec=At.codecString,at.sps=[],typeof at.params!="object"&&(at.params={});for(const vt in At.params)at.params[vt]=At.params[vt]}this.pushParameterSet(at.sps,yt.data,at.vps),ft||(ft=this.VideoSample=this.createVideoSample(!0,dt.pts,dt.dts)),ft.key=!0;break;case 34:if(ht=!0,typeof at.params=="object"){if(!at.pps){at.pps=[];const At=this.readPPS(yt.data);for(const vt in At)at.params[vt]=At[vt]}this.pushParameterSet(at.pps,yt.data,at.vps)}break;case 35:ht=!0,at.audFound=!0,(Tt=ft)!=null&&Tt.frame&&(this.pushAccessUnit(ft,at),ft=null),ft||(ft=this.VideoSample=this.createVideoSample(!1,dt.pts,dt.dts));break;default:ht=!1;break}ft&&ht&&ft.units.push(yt)}),ct&&ft&&(this.pushAccessUnit(ft,at),this.VideoSample=null)}pushParameterSet(at,ut,dt){(dt&&dt[0]===this.initVPS||!dt&&!at.length)&&at.push(ut)}getNALuType(at,ut){return(at[ut]&126)>>>1}ebsp2rbsp(at){const ut=new Uint8Array(at.byteLength);let dt=0;for(let ct=0;ct=2&&at[ct]===3&&at[ct-1]===0&&at[ct-2]===0||(ut[dt]=at[ct],dt++);return new Uint8Array(ut.buffer,0,dt)}pushAccessUnit(at,ut){super.pushAccessUnit(at,ut),this.initVPS&&(this.initVPS=null)}readVPS(at){const ut=new ExpGolomb(at);ut.readUByte(),ut.readUByte(),ut.readBits(4),ut.skipBits(2),ut.readBits(6);const dt=ut.readBits(3),ct=ut.readBoolean();return{numTemporalLayers:dt+1,temporalIdNested:ct}}readSPS(at){const ut=new ExpGolomb(this.ebsp2rbsp(at));ut.readUByte(),ut.readUByte(),ut.readBits(4);const dt=ut.readBits(3);ut.readBoolean();const ct=ut.readBits(2),pt=ut.readBoolean(),ft=ut.readBits(5),ht=ut.readUByte(),mt=ut.readUByte(),yt=ut.readUByte(),bt=ut.readUByte(),Tt=ut.readUByte(),St=ut.readUByte(),At=ut.readUByte(),vt=ut.readUByte(),Dt=ut.readUByte(),Et=ut.readUByte(),_t=ut.readUByte(),xt=[],Ct=[];for(let gn=0;gn0)for(let gn=dt;gn<8;gn++)ut.readBits(2);for(let gn=0;gn1&&ut.readEG();for(let bn=0;bn0&&Sn<16?(Rt=mn[Sn-1],Bt=An[Sn-1]):Sn===255&&(Rt=ut.readBits(16),Bt=ut.readBits(16))}if(ut.readBoolean()&&ut.readBoolean(),ut.readBoolean()&&(ut.readBits(3),ut.readBoolean(),ut.readBoolean()&&(ut.readUByte(),ut.readUByte(),ut.readUByte())),ut.readBoolean()&&(ut.readUEG(),ut.readUEG()),ut.readBoolean(),ut.readBoolean(),ut.readBoolean(),Xt=ut.readBoolean(),Xt&&(Ot+=ut.readUEG(),zt+=ut.readUEG(),Mt+=ut.readUEG(),qt+=ut.readUEG()),ut.readBoolean()&&(Ut=ut.readBits(32),Gt=ut.readBits(32),ut.readBoolean()&&ut.readUEG(),ut.readBoolean())){const An=ut.readBoolean(),En=ut.readBoolean();let Tn=!1;(An||En)&&(Tn=ut.readBoolean(),Tn&&(ut.readUByte(),ut.readBits(5),ut.readBoolean(),ut.readBits(5)),ut.readBits(4),ut.readBits(4),Tn&&ut.readBits(4),ut.readBits(5),ut.readBits(5),ut.readBits(5));for(let xn=0;xn<=dt;xn++){Pt=ut.readBoolean();const kn=Pt||ut.readBoolean();let Ln=!1;kn?ut.readEG():Ln=ut.readBoolean();const Pn=Ln?1:ut.readUEG()+1;if(An)for(let Cn=0;Cn>gn&1)<<31-gn)>>>0;let en=rn.toString(16);return ft===1&&en==="2"&&(en="6"),{codecString:`hvc1.${an}${ft}.${en}.${pt?"H":"L"}${_t}.B0`,params:{general_tier_flag:pt,general_profile_idc:ft,general_profile_space:ct,general_profile_compatibility_flags:[ht,mt,yt,bt],general_constraint_indicator_flags:[Tt,St,At,vt,Dt,Et],general_level_idc:_t,bit_depth:Qt+8,bit_depth_luma_minus8:Qt,bit_depth_chroma_minus8:Yt,min_spatial_segmentation_idc:Nt,chroma_format_idc:kt,frame_rate:{fixed:Pt,fps:Gt/Ut}},width:xa,height:$a,pixelRatio:[Rt,Bt]}}readPPS(at){const ut=new ExpGolomb(this.ebsp2rbsp(at));ut.readUByte(),ut.readUByte(),ut.skipUEG(),ut.skipUEG(),ut.skipBits(2),ut.skipBits(3),ut.skipBits(2),ut.skipUEG(),ut.skipUEG(),ut.skipEG(),ut.skipBits(2),ut.readBoolean()&&ut.skipUEG(),ut.skipEG(),ut.skipEG(),ut.skipBits(4);const ct=ut.readBoolean(),pt=ut.readBoolean();let ft=1;return pt&&ct?ft=0:pt?ft=3:ct&&(ft=2),{parallelismType:ft}}matchSPS(at,ut){return String.fromCharCode.apply(null,at).substr(3)===String.fromCharCode.apply(null,ut).substr(3)}}const PACKET_LENGTH=188;class TSDemuxer{constructor(at,ut,dt,ct){this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=at,this.config=ut,this.typeSupported=dt,this.logger=ct,this.videoParser=null}static probe(at,ut){const dt=TSDemuxer.syncOffset(at);return dt>0&&ut.warn(`MPEG2-TS detected but first sync word found @ offset ${dt}`),dt!==-1}static syncOffset(at){const ut=at.length;let dt=Math.min(PACKET_LENGTH*5,ut-PACKET_LENGTH)+1,ct=0;for(;ct1&&(ft===0&&ht>2||mt+PACKET_LENGTH>dt))return ft}else{if(ht)return-1;break}ct++}return-1}static createTrack(at,ut){return{container:at==="video"||at==="audio"?"video/mp2t":void 0,type:at,id:RemuxerTrackIdConfig[at],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:at==="audio"?ut:void 0}}resetInitSegment(at,ut,dt,ct){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=TSDemuxer.createTrack("video"),this._videoTrack.duration=ct,this._audioTrack=TSDemuxer.createTrack("audio",ct),this._id3Track=TSDemuxer.createTrack("id3"),this._txtTrack=TSDemuxer.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.remainderData=null,this.audioCodec=ut,this.videoCodec=dt}resetTimeStamp(){}resetContiguity(){const{_audioTrack:at,_videoTrack:ut,_id3Track:dt}=this;at&&(at.pesData=null),ut&&(ut.pesData=null),dt&&(dt.pesData=null),this.aacOverFlow=null,this.remainderData=null}demux(at,ut,dt=!1,ct=!1){dt||(this.sampleAes=null);let pt;const ft=this._videoTrack,ht=this._audioTrack,mt=this._id3Track,yt=this._txtTrack;let bt=ft.pid,Tt=ft.pesData,St=ht.pid,At=mt.pid,vt=ht.pesData,Dt=mt.pesData,Et=null,_t=this.pmtParsed,xt=this._pmtId,Ct=at.length;if(this.remainderData&&(at=appendUint8Array(this.remainderData,at),Ct=at.length,this.remainderData=null),Ct>4;let qt;if(Mt>1){if(qt=Lt+5+at[Lt+4],qt===Lt+PACKET_LENGTH)continue}else qt=Lt+4;switch(zt){case bt:if(Ot){if(Tt&&(pt=parsePES(Tt,this.logger))){if(this.videoParser===null)switch(ft.segmentCodec){case"avc":this.videoParser=new AvcVideoParser;break;case"hevc":this.videoParser=new HevcVideoParser;break}this.videoParser!==null&&this.videoParser.parsePES(ft,yt,pt,!1)}Tt={data:[],size:0}}Tt&&(Tt.data.push(at.subarray(qt,Lt+PACKET_LENGTH)),Tt.size+=Lt+PACKET_LENGTH-qt);break;case St:if(Ot){if(vt&&(pt=parsePES(vt,this.logger)))switch(ht.segmentCodec){case"aac":this.parseAACPES(ht,pt);break;case"mp3":this.parseMPEGPES(ht,pt);break;case"ac3":this.parseAC3PES(ht,pt);break}vt={data:[],size:0}}vt&&(vt.data.push(at.subarray(qt,Lt+PACKET_LENGTH)),vt.size+=Lt+PACKET_LENGTH-qt);break;case At:Ot&&(Dt&&(pt=parsePES(Dt,this.logger))&&this.parseID3PES(mt,pt),Dt={data:[],size:0}),Dt&&(Dt.data.push(at.subarray(qt,Lt+PACKET_LENGTH)),Dt.size+=Lt+PACKET_LENGTH-qt);break;case 0:Ot&&(qt+=at[qt]+1),xt=this._pmtId=parsePAT(at,qt);break;case xt:{Ot&&(qt+=at[qt]+1);const Qt=parsePMT(at,qt,this.typeSupported,dt,this.observer,this.logger);bt=Qt.videoPid,bt>0&&(ft.pid=bt,ft.segmentCodec=Qt.segmentVideoCodec),St=Qt.audioPid,St>0&&(ht.pid=St,ht.segmentCodec=Qt.segmentAudioCodec),At=Qt.id3Pid,At>0&&(mt.pid=At),Et!==null&&!_t&&(this.logger.warn(`MPEG-TS PMT found at ${Lt} after unknown PID '${Et}'. Backtracking to sync byte @${kt} to parse all TS packets.`),Et=null,Lt=kt-188),_t=this.pmtParsed=!0;break}case 17:case 8191:break;default:Et=zt;break}}else wt++;wt>0&&emitParsingError(this.observer,new Error(`Found ${wt} TS packet/s that do not start with 0x47`),void 0,this.logger),ft.pesData=Tt,ht.pesData=vt,mt.pesData=Dt;const $t={audioTrack:ht,videoTrack:ft,id3Track:mt,textTrack:yt};return ct&&this.extractRemainingSamples($t),$t}flush(){const{remainderData:at}=this;this.remainderData=null;let ut;return at?ut=this.demux(at,-1,!1,!0):ut={videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(ut),this.sampleAes?this.decrypt(ut,this.sampleAes):ut}extractRemainingSamples(at){const{audioTrack:ut,videoTrack:dt,id3Track:ct,textTrack:pt}=at,ft=dt.pesData,ht=ut.pesData,mt=ct.pesData;let yt;if(ft&&(yt=parsePES(ft,this.logger))){if(this.videoParser===null)switch(dt.segmentCodec){case"avc":this.videoParser=new AvcVideoParser;break;case"hevc":this.videoParser=new HevcVideoParser;break}this.videoParser!==null&&(this.videoParser.parsePES(dt,pt,yt,!0),dt.pesData=null)}else dt.pesData=ft;if(ht&&(yt=parsePES(ht,this.logger))){switch(ut.segmentCodec){case"aac":this.parseAACPES(ut,yt);break;case"mp3":this.parseMPEGPES(ut,yt);break;case"ac3":this.parseAC3PES(ut,yt);break}ut.pesData=null}else ht!=null&&ht.size&&this.logger.log("last AAC PES packet truncated,might overlap between fragments"),ut.pesData=ht;mt&&(yt=parsePES(mt,this.logger))?(this.parseID3PES(ct,yt),ct.pesData=null):ct.pesData=mt}demuxSampleAes(at,ut,dt){const ct=this.demux(at,dt,!0,!this.config.progressive),pt=this.sampleAes=new SampleAesDecrypter(this.observer,this.config,ut);return this.decrypt(ct,pt)}decrypt(at,ut){return new Promise(dt=>{const{audioTrack:ct,videoTrack:pt}=at;ct.samples&&ct.segmentCodec==="aac"?ut.decryptAacSamples(ct.samples,0,()=>{pt.samples?ut.decryptAvcSamples(pt.samples,0,0,()=>{dt(at)}):dt(at)}):pt.samples&&ut.decryptAvcSamples(pt.samples,0,0,()=>{dt(at)})})}destroy(){this.observer&&this.observer.removeAllListeners(),this.config=this.logger=this.observer=null,this.aacOverFlow=this.videoParser=this.remainderData=this.sampleAes=null,this._videoTrack=this._audioTrack=this._id3Track=this._txtTrack=void 0}parseAACPES(at,ut){let dt=0;const ct=this.aacOverFlow;let pt=ut.data;if(ct){this.aacOverFlow=null;const Tt=ct.missing,St=ct.sample.unit.byteLength;if(Tt===-1)pt=appendUint8Array(ct.sample.unit,pt);else{const At=St-Tt;ct.sample.unit.set(pt.subarray(0,Tt),At),at.samples.push(ct.sample),dt=ct.missing}}let ft,ht;for(ft=dt,ht=pt.length;ft0;)ht+=mt}}parseID3PES(at,ut){if(ut.pts===void 0){this.logger.warn("[tsdemuxer]: ID3 PES unknown PTS");return}const dt=_extends({},ut,{type:this._videoTrack?MetadataSchema.emsg:MetadataSchema.audioId3,duration:Number.POSITIVE_INFINITY});at.samples.push(dt)}}function parsePID(st,at){return((st[at+1]&31)<<8)+st[at+2]}function parsePAT(st,at){return(st[at+10]&31)<<8|st[at+11]}function parsePMT(st,at,ut,dt,ct,pt){const ft={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},ht=(st[at+1]&15)<<8|st[at+2],mt=at+3+ht-4,yt=(st[at+10]&15)<<8|st[at+11];for(at+=12+yt;at0){let St=at+5,At=Tt;for(;At>2;){switch(st[St]){case 106:ut.ac3!==!0?pt.log("AC-3 audio found, not supported in this browser for now"):(ft.audioPid=bt,ft.segmentAudioCodec="ac3");break}const Dt=st[St+1]+2;St+=Dt,At-=Dt}}break;case 194:case 135:return emitParsingError(ct,new Error("Unsupported EC-3 in M2TS found"),void 0,pt),ft;case 36:ft.videoPid===-1&&(ft.videoPid=bt,ft.segmentVideoCodec="hevc",pt.log("HEVC in M2TS found"));break}at+=Tt+5}return ft}function emitParsingError(st,at,ut,dt){dt.warn(`parsing error: ${at.message}`),st.emit(Events.ERROR,Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_PARSING_ERROR,fatal:!1,levelRetry:ut,error:at,reason:at.message})}function logEncryptedSamplesFoundInUnencryptedStream(st,at){at.log(`${st} with AES-128-CBC encryption found in unencrypted stream`)}function parsePES(st,at){let ut=0,dt,ct,pt,ft,ht;const mt=st.data;if(!st||st.size===0)return null;for(;mt[0].length<19&&mt.length>1;)mt[0]=appendUint8Array(mt[0],mt[1]),mt.splice(1,1);if(dt=mt[0],(dt[0]<<16)+(dt[1]<<8)+dt[2]===1){if(ct=(dt[4]<<8)+dt[5],ct&&ct>st.size-6)return null;const bt=dt[7];bt&192&&(ft=(dt[9]&14)*536870912+(dt[10]&255)*4194304+(dt[11]&254)*16384+(dt[12]&255)*128+(dt[13]&254)/2,bt&64?(ht=(dt[14]&14)*536870912+(dt[15]&255)*4194304+(dt[16]&254)*16384+(dt[17]&255)*128+(dt[18]&254)/2,ft-ht>60*9e4&&(at.warn(`${Math.round((ft-ht)/9e4)}s delta between PTS and DTS, align them`),ft=ht)):ht=ft),pt=dt[8];let Tt=pt+9;if(st.size<=Tt)return null;st.size-=Tt;const St=new Uint8Array(st.size);for(let At=0,vt=mt.length;AtDt){Tt-=Dt;continue}else dt=dt.subarray(Tt),Dt-=Tt,Tt=0;St.set(dt,ut),ut+=Dt}return ct&&(ct-=pt+3),{data:St,pts:ft,dts:ht,len:ct}}return null}class AAC{static getSilentFrame(at,ut){switch(at){case"mp4a.40.2":if(ut===1)return new Uint8Array([0,200,0,128,35,128]);if(ut===2)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(ut===3)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(ut===4)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(ut===5)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(ut===6)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224]);break;default:if(ut===1)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(ut===2)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(ut===3)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);break}}}const UINT32_MAX=Math.pow(2,32)-1;class MP4{static init(){MP4.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]};let at;for(at in MP4.types)MP4.types.hasOwnProperty(at)&&(MP4.types[at]=[at.charCodeAt(0),at.charCodeAt(1),at.charCodeAt(2),at.charCodeAt(3)]);const ut=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),dt=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);MP4.HDLR_TYPES={video:ut,audio:dt};const ct=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),pt=new Uint8Array([0,0,0,0,0,0,0,0]);MP4.STTS=MP4.STSC=MP4.STCO=pt,MP4.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),MP4.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),MP4.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),MP4.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);const ft=new Uint8Array([105,115,111,109]),ht=new Uint8Array([97,118,99,49]),mt=new Uint8Array([0,0,0,1]);MP4.FTYP=MP4.box(MP4.types.ftyp,ft,mt,ft,ht),MP4.DINF=MP4.box(MP4.types.dinf,MP4.box(MP4.types.dref,ct))}static box(at,...ut){let dt=8,ct=ut.length;const pt=ct;for(;ct--;)dt+=ut[ct].byteLength;const ft=new Uint8Array(dt);for(ft[0]=dt>>24&255,ft[1]=dt>>16&255,ft[2]=dt>>8&255,ft[3]=dt&255,ft.set(at,4),ct=0,dt=8;ct>24&255,at>>16&255,at>>8&255,at&255,dt>>24,dt>>16&255,dt>>8&255,dt&255,ct>>24,ct>>16&255,ct>>8&255,ct&255,85,196,0,0]))}static mdia(at){return MP4.box(MP4.types.mdia,MP4.mdhd(at.timescale||0,at.duration||0),MP4.hdlr(at.type),MP4.minf(at))}static mfhd(at){return MP4.box(MP4.types.mfhd,new Uint8Array([0,0,0,0,at>>24,at>>16&255,at>>8&255,at&255]))}static minf(at){return at.type==="audio"?MP4.box(MP4.types.minf,MP4.box(MP4.types.smhd,MP4.SMHD),MP4.DINF,MP4.stbl(at)):MP4.box(MP4.types.minf,MP4.box(MP4.types.vmhd,MP4.VMHD),MP4.DINF,MP4.stbl(at))}static moof(at,ut,dt){return MP4.box(MP4.types.moof,MP4.mfhd(at),MP4.traf(dt,ut))}static moov(at){let ut=at.length;const dt=[];for(;ut--;)dt[ut]=MP4.trak(at[ut]);return MP4.box.apply(null,[MP4.types.moov,MP4.mvhd(at[0].timescale||0,at[0].duration||0)].concat(dt).concat(MP4.mvex(at)))}static mvex(at){let ut=at.length;const dt=[];for(;ut--;)dt[ut]=MP4.trex(at[ut]);return MP4.box.apply(null,[MP4.types.mvex,...dt])}static mvhd(at,ut){ut*=at;const dt=Math.floor(ut/(UINT32_MAX+1)),ct=Math.floor(ut%(UINT32_MAX+1)),pt=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,at>>24&255,at>>16&255,at>>8&255,at&255,dt>>24,dt>>16&255,dt>>8&255,dt&255,ct>>24,ct>>16&255,ct>>8&255,ct&255,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return MP4.box(MP4.types.mvhd,pt)}static sdtp(at){const ut=at.samples||[],dt=new Uint8Array(4+ut.length);let ct,pt;for(ct=0;ct>>8&255),ut.push(ft&255),ut=ut.concat(Array.prototype.slice.call(pt));for(ct=0;ct>>8&255),dt.push(ft&255),dt=dt.concat(Array.prototype.slice.call(pt));const ht=MP4.box(MP4.types.avcC,new Uint8Array([1,ut[3],ut[4],ut[5],255,224|at.sps.length].concat(ut).concat([at.pps.length]).concat(dt))),mt=at.width,yt=at.height,bt=at.pixelRatio[0],Tt=at.pixelRatio[1];return MP4.box(MP4.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,mt>>8&255,mt&255,yt>>8&255,yt&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),ht,MP4.box(MP4.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),MP4.box(MP4.types.pasp,new Uint8Array([bt>>24,bt>>16&255,bt>>8&255,bt&255,Tt>>24,Tt>>16&255,Tt>>8&255,Tt&255])))}static esds(at){const ut=at.config;return new Uint8Array([0,0,0,0,3,25,0,1,0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2,...ut,6,1,2])}static audioStsd(at){const ut=at.samplerate||0;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,at.channelCount||0,0,16,0,0,0,0,ut>>8&255,ut&255,0,0])}static mp4a(at){return MP4.box(MP4.types.mp4a,MP4.audioStsd(at),MP4.box(MP4.types.esds,MP4.esds(at)))}static mp3(at){return MP4.box(MP4.types[".mp3"],MP4.audioStsd(at))}static ac3(at){return MP4.box(MP4.types["ac-3"],MP4.audioStsd(at),MP4.box(MP4.types.dac3,at.config))}static stsd(at){const{segmentCodec:ut}=at;if(at.type==="audio"){if(ut==="aac")return MP4.box(MP4.types.stsd,MP4.STSD,MP4.mp4a(at));if(ut==="ac3"&&at.config)return MP4.box(MP4.types.stsd,MP4.STSD,MP4.ac3(at));if(ut==="mp3"&&at.codec==="mp3")return MP4.box(MP4.types.stsd,MP4.STSD,MP4.mp3(at))}else if(at.pps&&at.sps){if(ut==="avc")return MP4.box(MP4.types.stsd,MP4.STSD,MP4.avc1(at));if(ut==="hevc"&&at.vps)return MP4.box(MP4.types.stsd,MP4.STSD,MP4.hvc1(at))}else throw new Error("video track missing pps or sps");throw new Error(`unsupported ${at.type} segment codec (${ut}/${at.codec})`)}static tkhd(at){const ut=at.id,dt=(at.duration||0)*(at.timescale||0),ct=at.width||0,pt=at.height||0,ft=Math.floor(dt/(UINT32_MAX+1)),ht=Math.floor(dt%(UINT32_MAX+1));return MP4.box(MP4.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,ut>>24&255,ut>>16&255,ut>>8&255,ut&255,0,0,0,0,ft>>24,ft>>16&255,ft>>8&255,ft&255,ht>>24,ht>>16&255,ht>>8&255,ht&255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,ct>>8&255,ct&255,0,0,pt>>8&255,pt&255,0,0]))}static traf(at,ut){const dt=MP4.sdtp(at),ct=at.id,pt=Math.floor(ut/(UINT32_MAX+1)),ft=Math.floor(ut%(UINT32_MAX+1));return MP4.box(MP4.types.traf,MP4.box(MP4.types.tfhd,new Uint8Array([0,0,0,0,ct>>24,ct>>16&255,ct>>8&255,ct&255])),MP4.box(MP4.types.tfdt,new Uint8Array([1,0,0,0,pt>>24,pt>>16&255,pt>>8&255,pt&255,ft>>24,ft>>16&255,ft>>8&255,ft&255])),MP4.trun(at,dt.length+16+20+8+16+8+8),dt)}static trak(at){return at.duration=at.duration||4294967295,MP4.box(MP4.types.trak,MP4.tkhd(at),MP4.mdia(at))}static trex(at){const ut=at.id;return MP4.box(MP4.types.trex,new Uint8Array([0,0,0,0,ut>>24,ut>>16&255,ut>>8&255,ut&255,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}static trun(at,ut){const dt=at.samples||[],ct=dt.length,pt=12+16*ct,ft=new Uint8Array(pt);let ht,mt,yt,bt,Tt,St;for(ut+=8+pt,ft.set([at.type==="video"?1:0,0,15,1,ct>>>24&255,ct>>>16&255,ct>>>8&255,ct&255,ut>>>24&255,ut>>>16&255,ut>>>8&255,ut&255],0),ht=0;ht>>24&255,yt>>>16&255,yt>>>8&255,yt&255,bt>>>24&255,bt>>>16&255,bt>>>8&255,bt&255,Tt.isLeading<<2|Tt.dependsOn,Tt.isDependedOn<<6|Tt.hasRedundancy<<4|Tt.paddingValue<<1|Tt.isNonSync,Tt.degradPrio&61440,Tt.degradPrio&15,St>>>24&255,St>>>16&255,St>>>8&255,St&255],12+16*ht);return MP4.box(MP4.types.trun,ft)}static initSegment(at){MP4.types||MP4.init();const ut=MP4.moov(at);return appendUint8Array(MP4.FTYP,ut)}static hvc1(at){const ut=at.params,dt=[at.vps,at.sps,at.pps],ct=4,pt=new Uint8Array([1,ut.general_profile_space<<6|(ut.general_tier_flag?32:0)|ut.general_profile_idc,ut.general_profile_compatibility_flags[0],ut.general_profile_compatibility_flags[1],ut.general_profile_compatibility_flags[2],ut.general_profile_compatibility_flags[3],ut.general_constraint_indicator_flags[0],ut.general_constraint_indicator_flags[1],ut.general_constraint_indicator_flags[2],ut.general_constraint_indicator_flags[3],ut.general_constraint_indicator_flags[4],ut.general_constraint_indicator_flags[5],ut.general_level_idc,240|ut.min_spatial_segmentation_idc>>8,255&ut.min_spatial_segmentation_idc,252|ut.parallelismType,252|ut.chroma_format_idc,248|ut.bit_depth_luma_minus8,248|ut.bit_depth_chroma_minus8,0,parseInt(ut.frame_rate.fps),ct-1|ut.temporal_id_nested<<2|ut.num_temporal_layers<<3|(ut.frame_rate.fixed?64:0),dt.length]);let ft=pt.length;for(let vt=0;vt>8,dt[vt][Dt].length&255]),ft),ft+=2,ht.set(dt[vt][Dt],ft),ft+=dt[vt][Dt].length}const yt=MP4.box(MP4.types.hvcC,ht),bt=at.width,Tt=at.height,St=at.pixelRatio[0],At=at.pixelRatio[1];return MP4.box(MP4.types.hvc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,bt>>8&255,bt&255,Tt>>8&255,Tt&255,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),yt,MP4.box(MP4.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),MP4.box(MP4.types.pasp,new Uint8Array([St>>24,St>>16&255,St>>8&255,St&255,At>>24,At>>16&255,At>>8&255,At&255])))}}MP4.types=void 0;MP4.HDLR_TYPES=void 0;MP4.STTS=void 0;MP4.STSC=void 0;MP4.STCO=void 0;MP4.STSZ=void 0;MP4.VMHD=void 0;MP4.SMHD=void 0;MP4.STSD=void 0;MP4.FTYP=void 0;MP4.DINF=void 0;const MPEG_TS_CLOCK_FREQ_HZ=9e4;function toTimescaleFromBase(st,at,ut=1,dt=!1){const ct=st*at*ut;return dt?Math.round(ct):ct}function toTimescaleFromScale(st,at,ut=1,dt=!1){return toTimescaleFromBase(st,at,1/ut,dt)}function toMsFromMpegTsClock(st,at=!1){return toTimescaleFromBase(st,1e3,1/MPEG_TS_CLOCK_FREQ_HZ,at)}function toMpegTsClockFromTimescale(st,at=1){return toTimescaleFromBase(st,MPEG_TS_CLOCK_FREQ_HZ,1/at)}const MAX_SILENT_FRAME_DURATION=10*1e3,AAC_SAMPLES_PER_FRAME=1024,MPEG_AUDIO_SAMPLE_PER_FRAME=1152,AC3_SAMPLES_PER_FRAME=1536;let chromeVersion=null,safariWebkitVersion=null;function createMp4Sample(st,at,ut,dt){return{duration:at,size:ut,cts:dt,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:st?2:1,isNonSync:st?0:1}}}class MP4Remuxer extends Logger{constructor(at,ut,dt,ct){if(super("mp4-remuxer",ct),this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextVideoTs=null,this.nextAudioTs=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=at,this.config=ut,this.typeSupported=dt,this.ISGenerated=!1,chromeVersion===null){const ft=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);chromeVersion=ft?parseInt(ft[1]):0}if(safariWebkitVersion===null){const pt=navigator.userAgent.match(/Safari\/(\d+)/i);safariWebkitVersion=pt?parseInt(pt[1]):0}}destroy(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}resetTimeStamp(at){this.log("initPTS & initDTS reset"),this._initPTS=this._initDTS=at}resetNextTimestamp(){this.log("reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}resetInitSegment(){this.log("ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}getVideoStartPts(at){let ut=!1;const dt=at[0].pts,ct=at.reduce((pt,ft)=>{let ht=ft.pts,mt=ht-pt;return mt<-4294967296&&(ut=!0,ht=normalizePts(ht,dt),mt=ht-pt),mt>0?pt:ht},dt);return ut&&this.debug("PTS rollover detected"),ct}remux(at,ut,dt,ct,pt,ft,ht,mt){let yt,bt,Tt,St,At,vt,Dt=pt,Et=pt;const _t=at.pid>-1,xt=ut.pid>-1,Ct=ut.samples.length,kt=at.samples.length>0,wt=ht&&Ct>0||Ct>1;if((!_t||kt)&&(!xt||wt)||this.ISGenerated||ht){if(this.ISGenerated){var Lt,Ot,zt,Mt;const jt=this.videoTrackConfig;(jt&&(ut.width!==jt.width||ut.height!==jt.height||((Lt=ut.pixelRatio)==null?void 0:Lt[0])!==((Ot=jt.pixelRatio)==null?void 0:Ot[0])||((zt=ut.pixelRatio)==null?void 0:zt[1])!==((Mt=jt.pixelRatio)==null?void 0:Mt[1]))||!jt&&wt||this.nextAudioTs===null&&kt)&&this.resetInitSegment()}this.ISGenerated||(Tt=this.generateIS(at,ut,pt,ft));const qt=this.isVideoContiguous;let Qt=-1,Yt;if(wt&&(Qt=findKeyframeIndex(ut.samples),!qt&&this.config.forceKeyFrameOnDiscontinuity))if(vt=!0,Qt>0){this.warn(`Dropped ${Qt} out of ${Ct} video samples due to a missing keyframe`);const jt=this.getVideoStartPts(ut.samples);ut.samples=ut.samples.slice(Qt),ut.dropped+=Qt,Et+=(ut.samples[0].pts-jt)/ut.inputTimeScale,Yt=Et}else Qt===-1&&(this.warn(`No keyframe found out of ${Ct} video samples`),vt=!1);if(this.ISGenerated){if(kt&&wt){const jt=this.getVideoStartPts(ut.samples),Vt=(normalizePts(at.samples[0].pts,jt)-jt)/ut.inputTimeScale;Dt+=Math.max(0,Vt),Et+=Math.max(0,-Vt)}if(kt){if(at.samplerate||(this.warn("regenerate InitSegment as audio detected"),Tt=this.generateIS(at,ut,pt,ft)),bt=this.remuxAudio(at,Dt,this.isAudioContiguous,ft,xt||wt||mt===PlaylistLevelType.AUDIO?Et:void 0),wt){const jt=bt?bt.endPTS-bt.startPTS:0;ut.inputTimeScale||(this.warn("regenerate InitSegment as video detected"),Tt=this.generateIS(at,ut,pt,ft)),yt=this.remuxVideo(ut,Et,qt,jt)}}else wt&&(yt=this.remuxVideo(ut,Et,qt,0));yt&&(yt.firstKeyFrame=Qt,yt.independent=Qt!==-1,yt.firstKeyFramePTS=Yt)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(dt.samples.length&&(At=flushTextTrackMetadataCueSamples(dt,pt,this._initPTS,this._initDTS)),ct.samples.length&&(St=flushTextTrackUserdataCueSamples(ct,pt,this._initPTS))),{audio:bt,video:yt,initSegment:Tt,independent:vt,text:St,id3:At}}generateIS(at,ut,dt,ct){const pt=at.samples,ft=ut.samples,ht=this.typeSupported,mt={},yt=this._initPTS;let bt=!yt||ct,Tt="audio/mp4",St,At,vt,Dt;if(bt&&(St=At=1/0),at.config&&pt.length){switch(at.timescale=at.samplerate,at.segmentCodec){case"mp3":ht.mpeg?(Tt="audio/mpeg",at.codec=""):ht.mp3&&(at.codec="mp3");break;case"ac3":at.codec="ac-3";break}mt.audio={id:"audio",container:Tt,codec:at.codec,initSegment:at.segmentCodec==="mp3"&&ht.mpeg?new Uint8Array(0):MP4.initSegment([at]),metadata:{channelCount:at.channelCount}},bt&&(Dt=at.id,vt=at.inputTimeScale,!yt||vt!==yt.timescale?St=At=pt[0].pts-Math.round(vt*dt):bt=!1)}if(ut.sps&&ut.pps&&ft.length){if(ut.timescale=ut.inputTimeScale,mt.video={id:"main",container:"video/mp4",codec:ut.codec,initSegment:MP4.initSegment([ut]),metadata:{width:ut.width,height:ut.height}},bt)if(Dt=ut.id,vt=ut.inputTimeScale,!yt||vt!==yt.timescale){const Et=this.getVideoStartPts(ft),_t=Math.round(vt*dt);At=Math.min(At,normalizePts(ft[0].dts,Et)-_t),St=Math.min(St,Et-_t)}else bt=!1;this.videoTrackConfig={width:ut.width,height:ut.height,pixelRatio:ut.pixelRatio}}if(Object.keys(mt).length)return this.ISGenerated=!0,bt?(this._initPTS={baseTime:St,timescale:vt},this._initDTS={baseTime:At,timescale:vt}):St=vt=void 0,{tracks:mt,initPTS:St,timescale:vt,trackId:Dt}}remuxVideo(at,ut,dt,ct){const pt=at.inputTimeScale,ft=at.samples,ht=[],mt=ft.length,yt=this._initPTS,bt=yt.baseTime*pt/yt.timescale;let Tt=this.nextVideoTs,St=8,At=this.videoSampleDuration,vt,Dt,Et=Number.POSITIVE_INFINITY,_t=Number.NEGATIVE_INFINITY,xt=!1;if(!dt||Tt===null){const Nt=bt+ut*pt,Rt=ft[0].pts-normalizePts(ft[0].dts,ft[0].pts);chromeVersion&&Tt!==null&&Math.abs(Nt-Rt-(Tt+bt))<15e3?dt=!0:Tt=Nt-Rt-bt}const Ct=Tt+bt;for(let Nt=0;Nt0?Nt-1:Nt].dts&&(xt=!0)}xt&&ft.sort(function(Nt,Rt){const Bt=Nt.dts-Rt.dts,Pt=Nt.pts-Rt.pts;return Bt||Pt}),vt=ft[0].dts,Dt=ft[ft.length-1].dts;const kt=Dt-vt,wt=kt?Math.round(kt/(mt-1)):At||at.inputTimeScale/30;if(dt){const Nt=vt-Ct,Rt=Nt>wt,Bt=Nt<-1;if((Rt||Bt)&&(Rt?this.warn(`${(at.segmentCodec||"").toUpperCase()}: ${toMsFromMpegTsClock(Nt,!0)} ms (${Nt}dts) hole between fragments detected at ${ut.toFixed(3)}`):this.warn(`${(at.segmentCodec||"").toUpperCase()}: ${toMsFromMpegTsClock(-Nt,!0)} ms (${Nt}dts) overlapping between fragments detected at ${ut.toFixed(3)}`),!Bt||Ct>=ft[0].pts||chromeVersion)){vt=Ct;const Pt=ft[0].pts-Nt;if(Rt)ft[0].dts=vt,ft[0].pts=Pt;else{let Ut=!0;for(let Gt=0;GtPt&&Ut);Gt++){const Xt=ft[Gt].pts;if(ft[Gt].dts-=Nt,ft[Gt].pts-=Nt,Gt0?Rt.dts-ft[Nt-1].dts:wt;if(Ut=Nt>0?Rt.pts-ft[Nt-1].pts:wt,Xt.stretchShortVideoTrack&&this.nextAudioTs!==null){const xa=Math.floor(Xt.maxBufferHole*pt),$a=(ct?Et+ct*pt:this.nextAudioTs+bt)-Rt.pts;$a>xa?(At=$a-na,At<0?At=na:Qt=!0,this.log(`It is approximately ${$a/90} ms to the next segment; using duration ${At/90} ms for the last video frame.`)):At=na}else At=na}const Gt=Math.round(Rt.pts-Rt.dts);Yt=Math.min(Yt,At),Ft=Math.max(Ft,At),jt=Math.min(jt,Ut),Vt=Math.max(Vt,Ut),ht.push(createMp4Sample(Rt.key,At,Pt,Gt))}if(ht.length){if(chromeVersion){if(chromeVersion<70){const Nt=ht[0].flags;Nt.dependsOn=2,Nt.isNonSync=0}}else if(safariWebkitVersion&&Vt-jt0&&(ct&&Math.abs(Ct-(_t+xt))<9e3||Math.abs(normalizePts(Dt[0].pts,Ct)-(_t+xt))<20*bt),Dt.forEach(function(Vt){Vt.pts=normalizePts(Vt.pts,Ct)}),!dt||_t<0){if(Dt=Dt.filter(Vt=>Vt.pts>=0),!Dt.length)return;pt===0?_t=0:ct&&!vt?_t=Math.max(0,Ct-xt):_t=Dt[0].pts-xt}if(at.segmentCodec==="aac"){const Vt=this.config.maxAudioFramesDrift;for(let Ht=0,Kt=_t+xt;Ht=Vt*bt&&Rt0){Lt+=Et;try{$t=new Uint8Array(Lt)}catch(Rt){this.observer.emit(Events.ERROR,Events.ERROR,{type:ErrorTypes.MUX_ERROR,details:ErrorDetails.REMUX_ALLOC_ERROR,fatal:!1,error:Rt,bytes:Lt,reason:`fail allocating audio mdat ${Lt}`});return}St||(new DataView($t.buffer).setUint32(0,Lt),$t.set(MP4.types.mdat,4))}else return;$t.set(Zt,Et);const Nt=Zt.byteLength;Et+=Nt,At.push(createMp4Sample(!0,yt,Nt,0)),wt=Wt}const zt=At.length;if(!zt)return;const Mt=At[At.length-1];_t=wt-xt,this.nextAudioTs=_t+mt*Mt.duration;const qt=St?new Uint8Array(0):MP4.moof(at.sequenceNumber++,kt/mt,_extends({},at,{samples:At}));at.samples=[];const Qt=(kt-xt)/ft,Yt=_t/ft,Ft={data1:qt,data2:$t,startPTS:Qt,endPTS:Yt,startDTS:Qt,endDTS:Yt,type:"audio",hasAudio:!0,hasVideo:!1,nb:zt};return this.isAudioContiguous=!0,Ft}}function normalizePts(st,at){let ut;if(at===null)return st;for(at4294967296;)st+=ut;return st}function findKeyframeIndex(st){for(let at=0;atft.pts-ht.pts);const pt=st.samples;return st.samples=[],{samples:pt}}class PassThroughRemuxer extends Logger{constructor(at,ut,dt,ct){super("passthrough-remuxer",ct),this.emitInitSegment=!1,this.audioCodec=void 0,this.videoCodec=void 0,this.initData=void 0,this.initPTS=null,this.initTracks=void 0,this.lastEndTime=null,this.isVideoContiguous=!1}destroy(){}resetTimeStamp(at){this.lastEndTime=null;const ut=this.initPTS;ut&&at&&ut.baseTime===at.baseTime&&ut.timescale===at.timescale||(this.initPTS=at)}resetNextTimestamp(){this.isVideoContiguous=!1,this.lastEndTime=null}resetInitSegment(at,ut,dt,ct){this.audioCodec=ut,this.videoCodec=dt,this.generateInitSegment(patchEncyptionData(at,ct)),this.emitInitSegment=!0}generateInitSegment(at){let{audioCodec:ut,videoCodec:dt}=this;if(!(at!=null&&at.byteLength)){this.initTracks=void 0,this.initData=void 0;return}const ct=this.initData=parseInitSegment(at);ct.audio&&(ut=getParsedTrackCodec(ct.audio,ElementaryStreamTypes.AUDIO,this)),ct.video&&(dt=getParsedTrackCodec(ct.video,ElementaryStreamTypes.VIDEO,this));const pt={};ct.audio&&ct.video?pt.audiovideo={container:"video/mp4",codec:ut+","+dt,supplemental:ct.video.supplemental,initSegment:at,id:"main"}:ct.audio?pt.audio={container:"audio/mp4",codec:ut,initSegment:at,id:"audio"}:ct.video?pt.video={container:"video/mp4",codec:dt,supplemental:ct.video.supplemental,initSegment:at,id:"main"}:this.warn("initSegment does not contain moov or trak boxes."),this.initTracks=pt}remux(at,ut,dt,ct,pt,ft){var ht,mt;let{initPTS:yt,lastEndTime:bt}=this;const Tt={audio:void 0,video:void 0,text:ct,id3:dt,initSegment:void 0};isFiniteNumber(bt)||(bt=this.lastEndTime=pt||0);const St=ut.samples;if(!(St!=null&&St.length))return Tt;const At={initPTS:void 0,timescale:void 0,trackId:void 0};let vt=this.initData;if((ht=vt)!=null&&ht.length||(this.generateInitSegment(St),vt=this.initData),!((mt=vt)!=null&&mt.length))return this.warn("Failed to generate initSegment."),Tt;this.emitInitSegment&&(At.tracks=this.initTracks,this.emitInitSegment=!1);const Dt=getSampleData(St,vt,this),Et=vt.audio?Dt[vt.audio.id]:null,_t=vt.video?Dt[vt.video.id]:null,xt=toStartEndOrDefault(_t,1/0),Ct=toStartEndOrDefault(Et,1/0),kt=toStartEndOrDefault(_t,0,!0),wt=toStartEndOrDefault(Et,0,!0);let $t,Lt=pt,Ot=0;if(Et&&(!_t||!yt&&Ct0?this.lastEndTime=Mt:(this.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());const qt=!!vt.audio,Qt=!!vt.video;let Yt="";qt&&(Yt+="audio"),Qt&&(Yt+="video");const jt={data1:St,startPTS:zt,startDTS:zt,endPTS:Mt,endDTS:Mt,type:Yt,hasAudio:qt,hasVideo:Qt,nb:1,dropped:0};Tt.audio=qt&&!Qt?jt:void 0,Tt.video=Qt?jt:void 0;const Ft=_t==null?void 0:_t.sampleCount;if(Ft){const Vt=_t.keyFrameIndex,Ht=Vt!==-1;jt.nb=Ft,jt.dropped=Vt===0||this.isVideoContiguous?0:Ht?Vt:Ft,jt.independent=Ht,jt.firstKeyFrame=Vt,Ht&&_t.keyFrameStart&&(jt.firstKeyFramePTS=(_t.keyFrameStart-yt.baseTime)/yt.timescale),this.isVideoContiguous||(Tt.independent=Ht),this.isVideoContiguous||(this.isVideoContiguous=Ht),jt.dropped&&this.warn(`fmp4 does not start with IDR: firstIDR ${Vt}/${Ft} dropped: ${jt.dropped} start: ${jt.firstKeyFramePTS||"NA"}`)}return Tt.initSegment=At,Tt.id3=flushTextTrackMetadataCueSamples(dt,pt,yt,yt),ct.samples.length&&(Tt.text=flushTextTrackUserdataCueSamples(ct,pt,yt)),Tt}}function toStartEndOrDefault(st,at,ut=!1){return(st==null?void 0:st.start)!==void 0?(st.start+(ut?st.duration:0))/st.timescale:at}function isInvalidInitPts(st,at,ut,dt){if(st===null)return!0;const ct=Math.max(dt,1),pt=at-st.baseTime/st.timescale;return Math.abs(pt-ut)>ct}function getParsedTrackCodec(st,at,ut){const dt=st==null?void 0:st.codec;return dt&&dt.length>4?dt:at===ElementaryStreamTypes.AUDIO?dt==="ec-3"||dt==="ac-3"||dt==="alac"?dt:dt==="fLaC"||dt==="Opus"?getCodecCompatibleName(dt,!1):(ut.warn(`Unhandled audio codec "${dt}" in mp4 MAP`),dt||"mp4a"):(ut.warn(`Unhandled video codec "${dt}" in mp4 MAP`),dt||"avc1")}let now;try{now=self.performance.now.bind(self.performance)}catch(st){now=Date.now}const muxConfig=[{demux:MP4Demuxer,remux:PassThroughRemuxer},{demux:TSDemuxer,remux:MP4Remuxer},{demux:AACDemuxer,remux:MP4Remuxer},{demux:MP3Demuxer,remux:MP4Remuxer}];muxConfig.splice(2,0,{demux:AC3Demuxer,remux:MP4Remuxer});class Transmuxer{constructor(at,ut,dt,ct,pt,ft){this.asyncResult=!1,this.logger=void 0,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=at,this.typeSupported=ut,this.config=dt,this.id=pt,this.logger=ft}configure(at){this.transmuxConfig=at,this.decrypter&&this.decrypter.reset()}push(at,ut,dt,ct){const pt=dt.transmuxing;pt.executeStart=now();let ft=new Uint8Array(at);const{currentTransmuxState:ht,transmuxConfig:mt}=this;ct&&(this.currentTransmuxState=ct);const{contiguous:yt,discontinuity:bt,trackSwitch:Tt,accurateTimeOffset:St,timeOffset:At,initSegmentChange:vt}=ct||ht,{audioCodec:Dt,videoCodec:Et,defaultInitPts:_t,duration:xt,initSegmentData:Ct}=mt,kt=getEncryptionType(ft,ut);if(kt&&isFullSegmentEncryption(kt.method)){const Ot=this.getDecrypter(),zt=getAesModeFromFullSegmentMethod(kt.method);if(Ot.isSync()){let Mt=Ot.softwareDecrypt(ft,kt.key.buffer,kt.iv.buffer,zt);if(dt.part>-1){const Qt=Ot.flush();Mt=Qt&&Qt.buffer}if(!Mt)return pt.executeEnd=now(),emptyResult(dt);ft=new Uint8Array(Mt)}else return this.asyncResult=!0,this.decryptionPromise=Ot.webCryptoDecrypt(ft,kt.key.buffer,kt.iv.buffer,zt).then(Mt=>{const qt=this.push(Mt,null,dt);return this.decryptionPromise=null,qt}),this.decryptionPromise}const wt=this.needsProbing(bt,Tt);if(wt){const Ot=this.configureTransmuxer(ft);if(Ot)return this.logger.warn(`[transmuxer] ${Ot.message}`),this.observer.emit(Events.ERROR,Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_PARSING_ERROR,fatal:!1,error:Ot,reason:Ot.message}),pt.executeEnd=now(),emptyResult(dt)}(bt||Tt||vt||wt)&&this.resetInitSegment(Ct,Dt,Et,xt,ut),(bt||vt||wt)&&this.resetInitialTimestamp(_t),yt||this.resetContiguity();const $t=this.transmux(ft,kt,At,St,dt);this.asyncResult=isPromise($t);const Lt=this.currentTransmuxState;return Lt.contiguous=!0,Lt.discontinuity=!1,Lt.trackSwitch=!1,pt.executeEnd=now(),$t}flush(at){const ut=at.transmuxing;ut.executeStart=now();const{decrypter:dt,currentTransmuxState:ct,decryptionPromise:pt}=this;if(pt)return this.asyncResult=!0,pt.then(()=>this.flush(at));const ft=[],{timeOffset:ht}=ct;if(dt){const Tt=dt.flush();Tt&&ft.push(this.push(Tt.buffer,null,at))}const{demuxer:mt,remuxer:yt}=this;if(!mt||!yt){ut.executeEnd=now();const Tt=[emptyResult(at)];return this.asyncResult?Promise.resolve(Tt):Tt}const bt=mt.flush(ht);return isPromise(bt)?(this.asyncResult=!0,bt.then(Tt=>(this.flushRemux(ft,Tt,at),ft))):(this.flushRemux(ft,bt,at),this.asyncResult?Promise.resolve(ft):ft)}flushRemux(at,ut,dt){const{audioTrack:ct,videoTrack:pt,id3Track:ft,textTrack:ht}=ut,{accurateTimeOffset:mt,timeOffset:yt}=this.currentTransmuxState;this.logger.log(`[transmuxer.ts]: Flushed ${this.id} sn: ${dt.sn}${dt.part>-1?" part: "+dt.part:""} of ${this.id===PlaylistLevelType.MAIN?"level":"track"} ${dt.level}`);const bt=this.remuxer.remux(ct,pt,ft,ht,yt,mt,!0,this.id);at.push({remuxResult:bt,chunkMeta:dt}),dt.transmuxing.executeEnd=now()}resetInitialTimestamp(at){const{demuxer:ut,remuxer:dt}=this;!ut||!dt||(ut.resetTimeStamp(at),dt.resetTimeStamp(at))}resetContiguity(){const{demuxer:at,remuxer:ut}=this;!at||!ut||(at.resetContiguity(),ut.resetNextTimestamp())}resetInitSegment(at,ut,dt,ct,pt){const{demuxer:ft,remuxer:ht}=this;!ft||!ht||(ft.resetInitSegment(at,ut,dt,ct),ht.resetInitSegment(at,ut,dt,pt))}destroy(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}transmux(at,ut,dt,ct,pt){let ft;return ut&&ut.method==="SAMPLE-AES"?ft=this.transmuxSampleAes(at,ut,dt,ct,pt):ft=this.transmuxUnencrypted(at,dt,ct,pt),ft}transmuxUnencrypted(at,ut,dt,ct){const{audioTrack:pt,videoTrack:ft,id3Track:ht,textTrack:mt}=this.demuxer.demux(at,ut,!1,!this.config.progressive);return{remuxResult:this.remuxer.remux(pt,ft,ht,mt,ut,dt,!1,this.id),chunkMeta:ct}}transmuxSampleAes(at,ut,dt,ct,pt){return this.demuxer.demuxSampleAes(at,ut,dt).then(ft=>({remuxResult:this.remuxer.remux(ft.audioTrack,ft.videoTrack,ft.id3Track,ft.textTrack,dt,ct,!1,this.id),chunkMeta:pt}))}configureTransmuxer(at){const{config:ut,observer:dt,typeSupported:ct}=this;let pt;for(let Tt=0,St=muxConfig.length;Tt0&&(at==null?void 0:at.key)!=null&&at.iv!==null&&at.method!=null&&(ut=at),ut}const emptyResult=st=>({remuxResult:{},chunkMeta:st});function isPromise(st){return"then"in st&&st.then instanceof Function}class TransmuxConfig{constructor(at,ut,dt,ct,pt){this.audioCodec=void 0,this.videoCodec=void 0,this.initSegmentData=void 0,this.duration=void 0,this.defaultInitPts=void 0,this.audioCodec=at,this.videoCodec=ut,this.initSegmentData=dt,this.duration=ct,this.defaultInitPts=pt||null}}class TransmuxState{constructor(at,ut,dt,ct,pt,ft){this.discontinuity=void 0,this.contiguous=void 0,this.accurateTimeOffset=void 0,this.trackSwitch=void 0,this.timeOffset=void 0,this.initSegmentChange=void 0,this.discontinuity=at,this.contiguous=ut,this.accurateTimeOffset=dt,this.trackSwitch=ct,this.timeOffset=pt,this.initSegmentChange=ft}}let transmuxerInstanceCount=0;class TransmuxerInterface{constructor(at,ut,dt,ct){this.error=null,this.hls=void 0,this.id=void 0,this.instanceNo=transmuxerInstanceCount++,this.observer=void 0,this.frag=null,this.part=null,this.useWorker=void 0,this.workerContext=null,this.transmuxer=null,this.onTransmuxComplete=void 0,this.onFlush=void 0,this.onWorkerMessage=mt=>{const yt=mt.data,bt=this.hls;if(!(!bt||!(yt!=null&&yt.event)||yt.instanceNo!==this.instanceNo))switch(yt.event){case"init":{var Tt;const St=(Tt=this.workerContext)==null?void 0:Tt.objectURL;St&&self.URL.revokeObjectURL(St);break}case"transmuxComplete":{this.handleTransmuxComplete(yt.data);break}case"flush":{this.onFlush(yt.data);break}case"workerLog":{bt.logger[yt.data.logType]&&bt.logger[yt.data.logType](yt.data.message);break}default:{yt.data=yt.data||{},yt.data.frag=this.frag,yt.data.part=this.part,yt.data.id=this.id,bt.trigger(yt.event,yt.data);break}}},this.onWorkerError=mt=>{if(!this.hls)return;const yt=new Error(`${mt.message} (${mt.filename}:${mt.lineno})`);this.hls.config.enableWorker=!1,this.hls.logger.warn(`Error in "${this.id}" Web Worker, fallback to inline`),this.hls.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.INTERNAL_EXCEPTION,fatal:!1,event:"demuxerWorker",error:yt})};const pt=at.config;this.hls=at,this.id=ut,this.useWorker=!!pt.enableWorker,this.onTransmuxComplete=dt,this.onFlush=ct;const ft=(mt,yt)=>{yt=yt||{},yt.frag=this.frag||void 0,mt===Events.ERROR&&(yt=yt,yt.parent=this.id,yt.part=this.part,this.error=yt.error),this.hls.trigger(mt,yt)};this.observer=new EventEmitter,this.observer.on(Events.FRAG_DECRYPTED,ft),this.observer.on(Events.ERROR,ft);const ht=getM2TSSupportedAudioTypes(pt.preferManagedMediaSource);if(this.useWorker&&typeof Worker<"u"){const mt=this.hls.logger;if(pt.workerPath||hasUMDWorker()){try{pt.workerPath?(mt.log(`loading Web Worker ${pt.workerPath} for "${ut}"`),this.workerContext=loadWorker(pt.workerPath)):(mt.log(`injecting Web Worker for "${ut}"`),this.workerContext=injectWorker());const{worker:bt}=this.workerContext;bt.addEventListener("message",this.onWorkerMessage),bt.addEventListener("error",this.onWorkerError),bt.postMessage({instanceNo:this.instanceNo,cmd:"init",typeSupported:ht,id:ut,config:stringify(pt)})}catch(bt){mt.warn(`Error setting up "${ut}" Web Worker, fallback to inline`,bt),this.terminateWorker(),this.error=null,this.transmuxer=new Transmuxer(this.observer,ht,pt,"",ut,at.logger)}return}}this.transmuxer=new Transmuxer(this.observer,ht,pt,"",ut,at.logger)}reset(){if(this.frag=null,this.part=null,this.workerContext){const at=this.instanceNo;this.instanceNo=transmuxerInstanceCount++;const ut=this.hls.config,dt=getM2TSSupportedAudioTypes(ut.preferManagedMediaSource);this.workerContext.worker.postMessage({instanceNo:this.instanceNo,cmd:"reset",resetNo:at,typeSupported:dt,id:this.id,config:stringify(ut)})}}terminateWorker(){if(this.workerContext){const{worker:at}=this.workerContext;this.workerContext=null,at.removeEventListener("message",this.onWorkerMessage),at.removeEventListener("error",this.onWorkerError),removeWorkerFromStore(this.hls.config.workerPath)}}destroy(){if(this.workerContext)this.terminateWorker(),this.onWorkerMessage=this.onWorkerError=null;else{const ut=this.transmuxer;ut&&(ut.destroy(),this.transmuxer=null)}const at=this.observer;at&&at.removeAllListeners(),this.frag=null,this.part=null,this.observer=null,this.hls=null}push(at,ut,dt,ct,pt,ft,ht,mt,yt,bt){var Tt,St;yt.transmuxing.start=self.performance.now();const{instanceNo:At,transmuxer:vt}=this,Dt=ft?ft.start:pt.start,Et=pt.decryptdata,_t=this.frag,xt=!(_t&&pt.cc===_t.cc),Ct=!(_t&&yt.level===_t.level),kt=_t?yt.sn-_t.sn:-1,wt=this.part?yt.part-this.part.index:-1,$t=kt===0&&yt.id>1&&yt.id===(_t==null?void 0:_t.stats.chunkCount),Lt=!Ct&&(kt===1||kt===0&&(wt===1||$t&&wt<=0)),Ot=self.performance.now();(Ct||kt||pt.stats.parsing.start===0)&&(pt.stats.parsing.start=Ot),ft&&(wt||!Lt)&&(ft.stats.parsing.start=Ot);const zt=!(_t&&((Tt=pt.initSegment)==null?void 0:Tt.url)===((St=_t.initSegment)==null?void 0:St.url)),Mt=new TransmuxState(xt,Lt,mt,Ct,Dt,zt);if(!Lt||xt||zt){this.hls.logger.log(`[transmuxer-interface]: Starting new transmux session for ${pt.type} sn: ${yt.sn}${yt.part>-1?" part: "+yt.part:""} ${this.id===PlaylistLevelType.MAIN?"level":"track"}: ${yt.level} id: ${yt.id} discontinuity: ${xt} trackSwitch: ${Ct} contiguous: ${Lt} accurateTimeOffset: ${mt} timeOffset: ${Dt} initSegmentChange: ${zt}`);const qt=new TransmuxConfig(dt,ct,ut,ht,bt);this.configureTransmuxer(qt)}if(this.frag=pt,this.part=ft,this.workerContext)this.workerContext.worker.postMessage({instanceNo:At,cmd:"demux",data:at,decryptdata:Et,chunkMeta:yt,state:Mt},at instanceof ArrayBuffer?[at]:[]);else if(vt){const qt=vt.push(at,Et,yt,Mt);isPromise(qt)?qt.then(Qt=>{this.handleTransmuxComplete(Qt)}).catch(Qt=>{this.transmuxerError(Qt,yt,"transmuxer-interface push error")}):this.handleTransmuxComplete(qt)}}flush(at){at.transmuxing.start=self.performance.now();const{instanceNo:ut,transmuxer:dt}=this;if(this.workerContext)this.workerContext.worker.postMessage({instanceNo:ut,cmd:"flush",chunkMeta:at});else if(dt){const ct=dt.flush(at);isPromise(ct)?ct.then(pt=>{this.handleFlushResult(pt,at)}).catch(pt=>{this.transmuxerError(pt,at,"transmuxer-interface flush error")}):this.handleFlushResult(ct,at)}}transmuxerError(at,ut,dt){this.hls&&(this.error=at,this.hls.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_PARSING_ERROR,chunkMeta:ut,frag:this.frag||void 0,part:this.part||void 0,fatal:!1,error:at,err:at,reason:dt}))}handleFlushResult(at,ut){at.forEach(dt=>{this.handleTransmuxComplete(dt)}),this.onFlush(ut)}configureTransmuxer(at){const{instanceNo:ut,transmuxer:dt}=this;this.workerContext?this.workerContext.worker.postMessage({instanceNo:ut,cmd:"configure",config:at}):dt&&dt.configure(at)}handleTransmuxComplete(at){at.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(at)}}const TICK_INTERVAL$3=100;class AudioStreamController extends BaseStreamController{constructor(at,ut,dt){super(at,ut,dt,"audio-stream-controller",PlaylistLevelType.AUDIO),this.mainAnchor=null,this.mainFragLoading=null,this.audioOnly=!1,this.bufferedTrack=null,this.switchingTrack=null,this.trackId=-1,this.waitingData=null,this.mainDetails=null,this.flushing=!1,this.bufferFlushed=!1,this.cachedTrackLoadedData=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.resetItem()}resetItem(){this.mainDetails=this.mainAnchor=this.mainFragLoading=this.bufferedTrack=this.switchingTrack=this.waitingData=this.cachedTrackLoadedData=null}registerListeners(){super.registerListeners();const{hls:at}=this;at.on(Events.LEVEL_LOADED,this.onLevelLoaded,this),at.on(Events.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),at.on(Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),at.on(Events.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),at.on(Events.BUFFER_RESET,this.onBufferReset,this),at.on(Events.BUFFER_CREATED,this.onBufferCreated,this),at.on(Events.BUFFER_FLUSHING,this.onBufferFlushing,this),at.on(Events.BUFFER_FLUSHED,this.onBufferFlushed,this),at.on(Events.INIT_PTS_FOUND,this.onInitPtsFound,this),at.on(Events.FRAG_LOADING,this.onFragLoading,this),at.on(Events.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){const{hls:at}=this;at&&(super.unregisterListeners(),at.off(Events.LEVEL_LOADED,this.onLevelLoaded,this),at.off(Events.AUDIO_TRACKS_UPDATED,this.onAudioTracksUpdated,this),at.off(Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),at.off(Events.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),at.off(Events.BUFFER_RESET,this.onBufferReset,this),at.off(Events.BUFFER_CREATED,this.onBufferCreated,this),at.off(Events.BUFFER_FLUSHING,this.onBufferFlushing,this),at.off(Events.BUFFER_FLUSHED,this.onBufferFlushed,this),at.off(Events.INIT_PTS_FOUND,this.onInitPtsFound,this),at.off(Events.FRAG_LOADING,this.onFragLoading,this),at.off(Events.FRAG_BUFFERED,this.onFragBuffered,this))}onInitPtsFound(at,{frag:ut,id:dt,initPTS:ct,timescale:pt}){if(dt===PlaylistLevelType.MAIN){const ft=ut.cc,ht=this.fragCurrent;if(this.initPTS[ft]={baseTime:ct,timescale:pt},this.log(`InitPTS for cc: ${ft} found from main: ${ct}/${pt}`),this.mainAnchor=ut,this.state===State.WAITING_INIT_PTS){const mt=this.waitingData;(!mt&&!this.loadingParts||mt&&mt.frag.cc!==ft)&&this.syncWithAnchor(ut,mt==null?void 0:mt.frag)}else!this.hls.hasEnoughToStart&&ht&&ht.cc!==ft?(ht.abortRequests(),this.syncWithAnchor(ut,ht)):this.state===State.IDLE&&this.tick()}}getLoadPosition(){return!this.startFragRequested&&this.nextLoadPosition>=0?this.nextLoadPosition:super.getLoadPosition()}syncWithAnchor(at,ut){var dt;const ct=((dt=this.mainFragLoading)==null?void 0:dt.frag)||null;if(ut&&(ct==null?void 0:ct.cc)===ut.cc)return;const pt=(ct||at).cc,ft=this.getLevelDetails(),ht=this.getLoadPosition(),mt=findNearestWithCC(ft,pt,ht);mt&&(this.log(`Syncing with main frag at ${mt.start} cc ${mt.cc}`),this.startFragRequested=!1,this.nextLoadPosition=mt.start,this.resetLoadingState(),this.state===State.IDLE&&this.doTickIdle())}startLoad(at,ut){if(!this.levels){this.startPosition=at,this.state=State.STOPPED;return}const dt=this.lastCurrentTime;this.stopLoad(),this.setInterval(TICK_INTERVAL$3),dt>0&&at===-1?(this.log(`Override startPosition with lastCurrentTime @${dt.toFixed(3)}`),at=dt,this.state=State.IDLE):this.state=State.WAITING_TRACK,this.nextLoadPosition=this.lastCurrentTime=at+this.timelineOffset,this.startPosition=ut?-1:at,this.tick()}doTick(){switch(this.state){case State.IDLE:this.doTickIdle();break;case State.WAITING_TRACK:{const{levels:ut,trackId:dt}=this,ct=ut==null?void 0:ut[dt],pt=ct==null?void 0:ct.details;if(pt&&!this.waitForLive(ct)){if(this.waitForCdnTuneIn(pt))break;this.state=State.WAITING_INIT_PTS}break}case State.FRAG_LOADING_WAITING_RETRY:{var at;const ut=performance.now(),dt=this.retryDate;if(!dt||ut>=dt||(at=this.media)!=null&&at.seeking){const{levels:ct,trackId:pt}=this;this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded((ct==null?void 0:ct[pt])||null),this.state=State.IDLE}break}case State.WAITING_INIT_PTS:{const ut=this.waitingData;if(ut){const{frag:dt,part:ct,cache:pt,complete:ft}=ut,ht=this.mainAnchor;if(this.initPTS[dt.cc]!==void 0){this.waitingData=null,this.state=State.FRAG_LOADING;const mt=pt.flush().buffer,yt={frag:dt,part:ct,payload:mt,networkDetails:null};this._handleFragmentLoadProgress(yt),ft&&super._handleFragmentLoadComplete(yt)}else ht&&ht.cc!==ut.frag.cc&&this.syncWithAnchor(ht,ut.frag)}else this.state=State.IDLE}}this.onTickEnd()}resetLoadingState(){const at=this.waitingData;at&&(this.fragmentTracker.removeFragment(at.frag),this.waitingData=null),super.resetLoadingState()}onTickEnd(){const{media:at}=this;at!=null&&at.readyState&&(this.lastCurrentTime=at.currentTime)}doTickIdle(){var at;const{hls:ut,levels:dt,media:ct,trackId:pt}=this,ft=ut.config;if(!this.buffering||!ct&&!this.primaryPrefetch&&(this.startFragRequested||!ft.startFragPrefetch)||!(dt!=null&&dt[pt]))return;const ht=dt[pt],mt=ht.details;if(!mt||this.waitForLive(ht)||this.waitForCdnTuneIn(mt)){this.state=State.WAITING_TRACK,this.startFragRequested=!1;return}const yt=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&yt&&(this.bufferFlushed=!1,this.afterBufferFlushed(yt,ElementaryStreamTypes.AUDIO,PlaylistLevelType.AUDIO));const bt=this.getFwdBufferInfo(yt,PlaylistLevelType.AUDIO);if(bt===null)return;if(!this.switchingTrack&&this._streamEnded(bt,mt)){ut.trigger(Events.BUFFER_EOS,{type:"audio"}),this.state=State.ENDED;return}const Tt=bt.len,St=ut.maxBufferLength,At=mt.fragments,vt=At[0].start,Dt=this.getLoadPosition(),Et=this.flushing?Dt:bt.end;if(this.switchingTrack&&ct){const Ct=Dt;mt.PTSKnown&&Ctvt||bt.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),ct.currentTime=vt+.05)}if(Tt>=St&&!this.switchingTrack&&Etxt.end){const kt=this.fragmentTracker.getFragAtPos(Et,PlaylistLevelType.MAIN);kt&&kt.end>xt.end&&(xt=kt,this.mainFragLoading={frag:kt,targetBufferTime:null})}if(_t.start>xt.end)return}this.loadFragment(_t,ht,Et)}onMediaDetaching(at,ut){this.bufferFlushed=this.flushing=!1,super.onMediaDetaching(at,ut)}onAudioTracksUpdated(at,{audioTracks:ut}){this.resetTransmuxer(),this.levels=ut.map(dt=>new Level(dt))}onAudioTrackSwitching(at,ut){const dt=!!ut.url;this.trackId=ut.id;const{fragCurrent:ct}=this;ct&&(ct.abortRequests(),this.removeUnbufferedFrags(ct.start)),this.resetLoadingState(),dt?(this.switchingTrack=ut,this.flushAudioIfNeeded(ut),this.state!==State.STOPPED&&(this.setInterval(TICK_INTERVAL$3),this.state=State.IDLE,this.tick())):(this.resetTransmuxer(),this.switchingTrack=null,this.bufferedTrack=ut,this.clearInterval())}onManifestLoading(){super.onManifestLoading(),this.bufferFlushed=this.flushing=this.audioOnly=!1,this.resetItem(),this.trackId=-1}onLevelLoaded(at,ut){this.mainDetails=ut.details;const dt=this.cachedTrackLoadedData;dt&&(this.cachedTrackLoadedData=null,this.onAudioTrackLoaded(Events.AUDIO_TRACK_LOADED,dt))}onAudioTrackLoaded(at,ut){var dt;const{levels:ct}=this,{details:pt,id:ft,groupId:ht,track:mt}=ut;if(!ct){this.warn(`Audio tracks reset while loading track ${ft} "${mt.name}" of "${ht}"`);return}const yt=this.mainDetails;if(!yt||pt.endCC>yt.endCC||yt.expired){this.cachedTrackLoadedData=ut,this.state!==State.STOPPED&&(this.state=State.WAITING_TRACK);return}this.cachedTrackLoadedData=null,this.log(`Audio track ${ft} "${mt.name}" of "${ht}" loaded [${pt.startSN},${pt.endSN}]${pt.lastPartSn?`[part-${pt.lastPartSn}-${pt.lastPartIndex}]`:""},duration:${pt.totalduration}`);const bt=ct[ft];let Tt=0;if(pt.live||(dt=bt.details)!=null&&dt.live){if(this.checkLiveUpdate(pt),pt.deltaUpdateFailed)return;if(bt.details){var St;Tt=this.alignPlaylists(pt,bt.details,(St=this.levelLastLoaded)==null?void 0:St.details)}pt.alignedSliding||(alignDiscontinuities(pt,yt),pt.alignedSliding||alignMediaPlaylistByPDT(pt,yt),Tt=pt.fragmentStart)}bt.details=pt,this.levelLastLoaded=bt,this.startFragRequested||this.setStartPosition(yt,Tt),this.hls.trigger(Events.AUDIO_TRACK_UPDATED,{details:pt,id:ft,groupId:ut.groupId}),this.state===State.WAITING_TRACK&&!this.waitForCdnTuneIn(pt)&&(this.state=State.IDLE),this.tick()}_handleFragmentLoadProgress(at){var ut;const dt=at.frag,{part:ct,payload:pt}=at,{config:ft,trackId:ht,levels:mt}=this;if(!mt){this.warn(`Audio tracks were reset while fragment load was in progress. Fragment ${dt.sn} of level ${dt.level} will not be buffered`);return}const yt=mt[ht];if(!yt){this.warn("Audio track is undefined on fragment load progress");return}const bt=yt.details;if(!bt){this.warn("Audio track details undefined on fragment load progress"),this.removeUnbufferedFrags(dt.start);return}const Tt=ft.defaultAudioCodec||yt.audioCodec||"mp4a.40.2";let St=this.transmuxer;St||(St=this.transmuxer=new TransmuxerInterface(this.hls,PlaylistLevelType.AUDIO,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));const At=this.initPTS[dt.cc],vt=(ut=dt.initSegment)==null?void 0:ut.data;if(At!==void 0){const Et=ct?ct.index:-1,_t=Et!==-1,xt=new ChunkMetadata(dt.level,dt.sn,dt.stats.chunkCount,pt.byteLength,Et,_t);St.push(pt,vt,Tt,"",dt,ct,bt.totalduration,!1,xt,At)}else{this.log(`Unknown video PTS for cc ${dt.cc}, waiting for video PTS before demuxing audio frag ${dt.sn} of [${bt.startSN} ,${bt.endSN}],track ${ht}`);const{cache:Dt}=this.waitingData=this.waitingData||{frag:dt,part:ct,cache:new ChunkCache,complete:!1};Dt.push(new Uint8Array(pt)),this.state!==State.STOPPED&&(this.state=State.WAITING_INIT_PTS)}}_handleFragmentLoadComplete(at){if(this.waitingData){this.waitingData.complete=!0;return}super._handleFragmentLoadComplete(at)}onBufferReset(){this.mediaBuffer=null}onBufferCreated(at,ut){this.bufferFlushed=this.flushing=!1;const dt=ut.tracks.audio;dt&&(this.mediaBuffer=dt.buffer||null)}onFragLoading(at,ut){!this.audioOnly&&ut.frag.type===PlaylistLevelType.MAIN&&isMediaFragment(ut.frag)&&(this.mainFragLoading=ut,this.state===State.IDLE&&this.tick())}onFragBuffered(at,ut){const{frag:dt,part:ct}=ut;if(dt.type!==PlaylistLevelType.AUDIO){!this.audioOnly&&dt.type===PlaylistLevelType.MAIN&&!dt.elementaryStreams.video&&!dt.elementaryStreams.audiovideo&&(this.audioOnly=!0,this.mainFragLoading=null);return}if(this.fragContextChanged(dt)){this.warn(`Fragment ${dt.sn}${ct?" p: "+ct.index:""} of level ${dt.level} finished buffering, but was aborted. state: ${this.state}, audioSwitch: ${this.switchingTrack?this.switchingTrack.name:"false"}`);return}if(isMediaFragment(dt)){this.fragPrevious=dt;const pt=this.switchingTrack;pt&&(this.bufferedTrack=pt,this.switchingTrack=null,this.hls.trigger(Events.AUDIO_TRACK_SWITCHED,_objectSpread2({},pt)))}this.fragBufferedComplete(dt,ct),this.media&&this.tick()}onError(at,ut){var dt;if(ut.fatal){this.state=State.ERROR;return}switch(ut.details){case ErrorDetails.FRAG_GAP:case ErrorDetails.FRAG_PARSING_ERROR:case ErrorDetails.FRAG_DECRYPT_ERROR:case ErrorDetails.FRAG_LOAD_ERROR:case ErrorDetails.FRAG_LOAD_TIMEOUT:case ErrorDetails.KEY_LOAD_ERROR:case ErrorDetails.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(PlaylistLevelType.AUDIO,ut);break;case ErrorDetails.AUDIO_TRACK_LOAD_ERROR:case ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:case ErrorDetails.LEVEL_PARSING_ERROR:!ut.levelRetry&&this.state===State.WAITING_TRACK&&((dt=ut.context)==null?void 0:dt.type)===PlaylistContextType.AUDIO_TRACK&&(this.state=State.IDLE);break;case ErrorDetails.BUFFER_ADD_CODEC_ERROR:case ErrorDetails.BUFFER_APPEND_ERROR:if(ut.parent!=="audio")return;this.reduceLengthAndFlushBuffer(ut)||this.resetLoadingState();break;case ErrorDetails.BUFFER_FULL_ERROR:if(ut.parent!=="audio")return;this.reduceLengthAndFlushBuffer(ut)&&(this.bufferedTrack=null,super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"));break;case ErrorDetails.INTERNAL_EXCEPTION:this.recoverWorkerError(ut);break}}onBufferFlushing(at,{type:ut}){ut!==ElementaryStreamTypes.VIDEO&&(this.flushing=!0)}onBufferFlushed(at,{type:ut}){if(ut!==ElementaryStreamTypes.VIDEO){this.flushing=!1,this.bufferFlushed=!0,this.state===State.ENDED&&(this.state=State.IDLE);const dt=this.mediaBuffer||this.media;dt&&(this.afterBufferFlushed(dt,ut,PlaylistLevelType.AUDIO),this.tick())}}_handleTransmuxComplete(at){var ut;const dt="audio",{hls:ct}=this,{remuxResult:pt,chunkMeta:ft}=at,ht=this.getCurrentContext(ft);if(!ht){this.resetWhenMissingContext(ft);return}const{frag:mt,part:yt,level:bt}=ht,{details:Tt}=bt,{audio:St,text:At,id3:vt,initSegment:Dt}=pt;if(this.fragContextChanged(mt)||!Tt){this.fragmentTracker.removeFragment(mt);return}if(this.state=State.PARSING,this.switchingTrack&&St&&this.completeAudioSwitch(this.switchingTrack),Dt!=null&&Dt.tracks){const Et=mt.initSegment||mt;this._bufferInitSegment(bt,Dt.tracks,Et,ft),ct.trigger(Events.FRAG_PARSING_INIT_SEGMENT,{frag:Et,id:dt,tracks:Dt.tracks})}if(St){const{startPTS:Et,endPTS:_t,startDTS:xt,endDTS:Ct}=St;yt&&(yt.elementaryStreams[ElementaryStreamTypes.AUDIO]={startPTS:Et,endPTS:_t,startDTS:xt,endDTS:Ct}),mt.setElementaryStreamInfo(ElementaryStreamTypes.AUDIO,Et,_t,xt,Ct),this.bufferFragmentData(St,mt,yt,ft)}if(vt!=null&&(ut=vt.samples)!=null&&ut.length){const Et=_extends({id:dt,frag:mt,details:Tt},vt);ct.trigger(Events.FRAG_PARSING_METADATA,Et)}if(At){const Et=_extends({id:dt,frag:mt,details:Tt},At);ct.trigger(Events.FRAG_PARSING_USERDATA,Et)}}_bufferInitSegment(at,ut,dt,ct){if(this.state!==State.PARSING||(ut.video&&delete ut.video,ut.audiovideo&&delete ut.audiovideo,!ut.audio))return;const pt=ut.audio;pt.id=PlaylistLevelType.AUDIO;const ft=at.audioCodec;this.log(`Init audio buffer, container:${pt.container}, codecs[level/parsed]=[${ft}/${pt.codec}]`),ft&&ft.split(",").length===1&&(pt.levelCodec=ft),this.hls.trigger(Events.BUFFER_CODECS,ut);const ht=pt.initSegment;if(ht!=null&&ht.byteLength){const mt={type:"audio",frag:dt,part:null,chunkMeta:ct,parent:dt.type,data:ht};this.hls.trigger(Events.BUFFER_APPENDING,mt)}this.tickImmediate()}loadFragment(at,ut,dt){const ct=this.fragmentTracker.getState(at);if(this.switchingTrack||ct===FragmentState.NOT_LOADED||ct===FragmentState.PARTIAL){var pt;if(!isMediaFragment(at))this._loadInitSegment(at,ut);else if((pt=ut.details)!=null&&pt.live&&!this.initPTS[at.cc]){this.log(`Waiting for video PTS in continuity counter ${at.cc} of live stream before loading audio fragment ${at.sn} of level ${this.trackId}`),this.state=State.WAITING_INIT_PTS;const ft=this.mainDetails;ft&&ft.fragmentStart!==ut.details.fragmentStart&&alignMediaPlaylistByPDT(ut.details,ft)}else super.loadFragment(at,ut,dt)}else this.clearTrackerIfNeeded(at)}flushAudioIfNeeded(at){if(this.media&&this.bufferedTrack){const{name:ut,lang:dt,assocLang:ct,characteristics:pt,audioCodec:ft,channels:ht}=this.bufferedTrack;matchesOption({name:ut,lang:dt,assocLang:ct,characteristics:pt,audioCodec:ft,channels:ht},at,audioMatchPredicate)||(useAlternateAudio(at.url,this.hls)?(this.log("Switching audio track : flushing all audio"),super.flushMainBuffer(0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null):this.bufferedTrack=at)}}completeAudioSwitch(at){const{hls:ut}=this;this.flushAudioIfNeeded(at),this.bufferedTrack=at,this.switchingTrack=null,ut.trigger(Events.AUDIO_TRACK_SWITCHED,_objectSpread2({},at))}}class BasePlaylistController extends Logger{constructor(at,ut){super(ut,at.logger),this.hls=void 0,this.canLoad=!1,this.timer=-1,this.hls=at}destroy(){this.clearTimer(),this.hls=this.log=this.warn=null}clearTimer(){this.timer!==-1&&(self.clearTimeout(this.timer),this.timer=-1)}startLoad(){this.canLoad=!0,this.loadPlaylist()}stopLoad(){this.canLoad=!1,this.clearTimer()}switchParams(at,ut,dt){const ct=ut==null?void 0:ut.renditionReports;if(ct){let pt=-1;for(let ft=0;ft=0&&bt>ut.partTarget&&(mt+=1)}const yt=dt&&getSkipValue(dt);return new HlsUrlParameters(ht,mt>=0?mt:void 0,yt)}}}loadPlaylist(at){this.clearTimer()}loadingPlaylist(at,ut){this.clearTimer()}shouldLoadPlaylist(at){return this.canLoad&&!!at&&!!at.url&&(!at.details||at.details.live)}getUrlWithDirectives(at,ut){if(ut)try{return ut.addDirectives(at)}catch(dt){this.warn(`Could not construct new URL with HLS Delivery Directives: ${dt}`)}return at}playlistLoaded(at,ut,dt){const{details:ct,stats:pt}=ut,ft=self.performance.now(),ht=pt.loading.first?Math.max(0,ft-pt.loading.first):0;ct.advancedDateTime=Date.now()-ht;const mt=this.hls.config.timelineOffset;if(mt!==ct.appliedTimelineOffset){const bt=Math.max(mt||0,0);ct.appliedTimelineOffset=bt,ct.fragments.forEach(Tt=>{Tt.start=Tt.playlistOffset+bt})}if(ct.live||dt!=null&&dt.live){const bt="levelInfo"in ut?ut.levelInfo:ut.track;if(ct.reloaded(dt),dt&&ct.fragments.length>0){mergeDetails(dt,ct);const xt=ct.playlistParsingError;if(xt){this.warn(xt);const Ct=this.hls;if(!Ct.config.ignorePlaylistParsingErrors){var yt;const{networkDetails:kt}=ut;Ct.trigger(Events.ERROR,{type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.LEVEL_PARSING_ERROR,fatal:!1,url:ct.url,error:xt,reason:xt.message,level:ut.level||void 0,parent:(yt=ct.fragments[0])==null?void 0:yt.type,networkDetails:kt,stats:pt});return}ct.playlistParsingError=null}}ct.requestScheduled===-1&&(ct.requestScheduled=pt.loading.start);const Tt=this.hls.mainForwardBufferInfo,St=Tt?Tt.end-Tt.len:0,At=(ct.edge-St)*1e3,vt=computeReloadInterval(ct,At);if(ct.requestScheduled+vt0){if(zt>ct.targetduration*3)this.log(`Playlist last advanced ${Ot.toFixed(2)}s ago. Omitting segment and part directives.`),Et=void 0,_t=void 0;else if(dt!=null&&dt.tuneInGoal&&zt-ct.partTarget>dt.tuneInGoal)this.warn(`CDN Tune-in goal increased from: ${dt.tuneInGoal} to: ${Mt} with playlist age: ${ct.age}`),Mt=0;else{const qt=Math.floor(Mt/ct.targetduration);if(Et+=qt,_t!==void 0){const Qt=Math.round(Mt%ct.targetduration/ct.partTarget);_t+=Qt}this.log(`CDN Tune-in age: ${ct.ageHeader}s last advanced ${Ot.toFixed(2)}s goal: ${Mt} skip sn ${qt} to part ${_t}`)}ct.tuneInGoal=Mt}if(Dt=this.getDeliveryDirectives(ct,ut.deliveryDirectives,Et,_t),xt||!Lt){ct.requestScheduled=ft,this.loadingPlaylist(bt,Dt);return}}else(ct.canBlockReload||ct.canSkipUntil)&&(Dt=this.getDeliveryDirectives(ct,ut.deliveryDirectives,Et,_t));Dt&&Et!==void 0&&ct.canBlockReload&&(ct.requestScheduled=pt.loading.first+Math.max(vt-ht*2,vt/2)),this.scheduleLoading(bt,Dt,ct)}else this.clearTimer()}scheduleLoading(at,ut,dt){const ct=dt||at.details;if(!ct){this.loadingPlaylist(at,ut);return}const pt=self.performance.now(),ft=ct.requestScheduled;if(pt>=ft){this.loadingPlaylist(at,ut);return}const ht=ft-pt;this.log(`reload live playlist ${at.name||at.bitrate+"bps"} in ${Math.round(ht)} ms`),this.clearTimer(),this.timer=self.setTimeout(()=>this.loadingPlaylist(at,ut),ht)}getDeliveryDirectives(at,ut,dt,ct){let pt=getSkipValue(at);return ut!=null&&ut.skip&&at.deltaUpdateFailed&&(dt=ut.msn,ct=ut.part,pt=HlsSkip.No),new HlsUrlParameters(dt,ct,pt)}checkRetry(at){const ut=at.details,dt=isTimeoutError(at),ct=at.errorAction,{action:pt,retryCount:ft=0,retryConfig:ht}=ct||{},mt=!!ct&&!!ht&&(pt===NetworkErrorAction.RetryRequest||!ct.resolved&&pt===NetworkErrorAction.SendAlternateToPenaltyBox);if(mt){var yt;if(ft>=ht.maxNumRetry)return!1;if(dt&&(yt=at.context)!=null&&yt.deliveryDirectives)this.warn(`Retrying playlist loading ${ft+1}/${ht.maxNumRetry} after "${ut}" without delivery-directives`),this.loadPlaylist();else{const bt=getRetryDelay(ht,ft);this.clearTimer(),this.timer=self.setTimeout(()=>this.loadPlaylist(),bt),this.warn(`Retrying playlist loading ${ft+1}/${ht.maxNumRetry} after "${ut}" in ${bt}ms`)}at.levelRetry=!0,ct.resolved=!0}return mt}}function subtitleOptionsIdentical(st,at){if(st.length!==at.length)return!1;for(let ut=0;utst[ct]!==at[ct])}function subtitleTrackMatchesTextTrack(st,at){return at.label.toLowerCase()===st.name.toLowerCase()&&(!at.language||at.language.toLowerCase()===(st.lang||"").toLowerCase())}class AudioTrackController extends BasePlaylistController{constructor(at){super(at,"audio-track-controller"),this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0,this.registerListeners()}registerListeners(){const{hls:at}=this;at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.on(Events.LEVEL_LOADING,this.onLevelLoading,this),at.on(Events.LEVEL_SWITCHING,this.onLevelSwitching,this),at.on(Events.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),at.on(Events.ERROR,this.onError,this)}unregisterListeners(){const{hls:at}=this;at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.off(Events.LEVEL_LOADING,this.onLevelLoading,this),at.off(Events.LEVEL_SWITCHING,this.onLevelSwitching,this),at.off(Events.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),at.off(Events.ERROR,this.onError,this)}destroy(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,super.destroy()}onManifestLoading(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0}onManifestParsed(at,ut){this.tracks=ut.audioTracks||[]}onAudioTrackLoaded(at,ut){const{id:dt,groupId:ct,details:pt}=ut,ft=this.tracksInGroup[dt];if(!ft||ft.groupId!==ct){this.warn(`Audio track with id:${dt} and group:${ct} not found in active group ${ft==null?void 0:ft.groupId}`);return}const ht=ft.details;ft.details=ut.details,this.log(`Audio track ${dt} "${ft.name}" lang:${ft.lang} group:${ct} loaded [${pt.startSN}-${pt.endSN}]`),dt===this.trackId&&this.playlistLoaded(dt,ut,ht)}onLevelLoading(at,ut){this.switchLevel(ut.level)}onLevelSwitching(at,ut){this.switchLevel(ut.level)}switchLevel(at){const ut=this.hls.levels[at];if(!ut)return;const dt=ut.audioGroups||null,ct=this.groupIds;let pt=this.currentTrack;if(!dt||(ct==null?void 0:ct.length)!==(dt==null?void 0:dt.length)||dt!=null&&dt.some(ht=>(ct==null?void 0:ct.indexOf(ht))===-1)){this.groupIds=dt,this.trackId=-1,this.currentTrack=null;const ht=this.tracks.filter(St=>!dt||dt.indexOf(St.groupId)!==-1);if(ht.length)this.selectDefaultTrack&&!ht.some(St=>St.default)&&(this.selectDefaultTrack=!1),ht.forEach((St,At)=>{St.id=At});else if(!pt&&!this.tracksInGroup.length)return;this.tracksInGroup=ht;const mt=this.hls.config.audioPreference;if(!pt&&mt){const St=findMatchingOption(mt,ht,audioMatchPredicate);if(St>-1)pt=ht[St];else{const At=findMatchingOption(mt,this.tracks);pt=this.tracks[At]}}let yt=this.findTrackId(pt);yt===-1&&pt&&(yt=this.findTrackId(null));const bt={audioTracks:ht};this.log(`Updating audio tracks, ${ht.length} track(s) found in group(s): ${dt==null?void 0:dt.join(",")}`),this.hls.trigger(Events.AUDIO_TRACKS_UPDATED,bt);const Tt=this.trackId;if(yt!==-1&&Tt===-1)this.setAudioTrack(yt);else if(ht.length&&Tt===-1){var ft;const St=new Error(`No audio track selected for current audio group-ID(s): ${(ft=this.groupIds)==null?void 0:ft.join(",")} track count: ${ht.length}`);this.warn(St.message),this.hls.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:St})}}}onError(at,ut){ut.fatal||!ut.context||ut.context.type===PlaylistContextType.AUDIO_TRACK&&ut.context.id===this.trackId&&(!this.groupIds||this.groupIds.indexOf(ut.context.groupId)!==-1)&&this.checkRetry(ut)}get allAudioTracks(){return this.tracks}get audioTracks(){return this.tracksInGroup}get audioTrack(){return this.trackId}set audioTrack(at){this.selectDefaultTrack=!1,this.setAudioTrack(at)}setAudioOption(at){const ut=this.hls;if(ut.config.audioPreference=at,at){const dt=this.allAudioTracks;if(this.selectDefaultTrack=!1,dt.length){const ct=this.currentTrack;if(ct&&matchesOption(at,ct,audioMatchPredicate))return ct;const pt=findMatchingOption(at,this.tracksInGroup,audioMatchPredicate);if(pt>-1){const ft=this.tracksInGroup[pt];return this.setAudioTrack(pt),ft}else if(ct){let ft=ut.loadLevel;ft===-1&&(ft=ut.firstAutoLevel);const ht=findClosestLevelWithAudioGroup(at,ut.levels,dt,ft,audioMatchPredicate);if(ht===-1)return null;ut.nextLoadLevel=ht}if(at.channels||at.audioCodec){const ft=findMatchingOption(at,dt);if(ft>-1)return dt[ft]}}}return null}setAudioTrack(at){const ut=this.tracksInGroup;if(at<0||at>=ut.length){this.warn(`Invalid audio track id: ${at}`);return}this.selectDefaultTrack=!1;const dt=this.currentTrack,ct=ut[at],pt=ct.details&&!ct.details.live;if(at===this.trackId&&ct===dt&&pt||(this.log(`Switching to audio-track ${at} "${ct.name}" lang:${ct.lang} group:${ct.groupId} channels:${ct.channels}`),this.trackId=at,this.currentTrack=ct,this.hls.trigger(Events.AUDIO_TRACK_SWITCHING,_objectSpread2({},ct)),pt))return;const ft=this.switchParams(ct.url,dt==null?void 0:dt.details,ct.details);this.loadPlaylist(ft)}findTrackId(at){const ut=this.tracksInGroup;for(let dt=0;dt{const dt={label:"async-blocker",execute:ut,onStart:()=>{},onComplete:()=>{},onError:()=>{}};this.append(dt,at)})}prependBlocker(at){return new Promise(ut=>{if(this.queues){const dt={label:"async-blocker-prepend",execute:ut,onStart:()=>{},onComplete:()=>{},onError:()=>{}};this.queues[at].unshift(dt)}})}removeBlockers(){this.queues!==null&&[this.queues.video,this.queues.audio,this.queues.audiovideo].forEach(at=>{var ut;const dt=(ut=at[0])==null?void 0:ut.label;(dt==="async-blocker"||dt==="async-blocker-prepend")&&(at[0].execute(),at.splice(0,1))})}unblockAudio(at){if(this.queues===null)return;this.queues.audio[0]===at&&this.shiftAndExecuteNext("audio")}executeNext(at){if(this.queues===null||this.tracks===null)return;const ut=this.queues[at];if(ut.length){const ct=ut[0];try{ct.execute()}catch(pt){var dt;if(ct.onError(pt),this.queues===null||this.tracks===null)return;const ft=(dt=this.tracks[at])==null?void 0:dt.buffer;ft!=null&&ft.updating||this.shiftAndExecuteNext(at)}}}shiftAndExecuteNext(at){this.queues!==null&&(this.queues[at].shift(),this.executeNext(at))}current(at){var ut;return((ut=this.queues)==null?void 0:ut[at][0])||null}toString(){const{queues:at,tracks:ut}=this;return at===null||ut===null?"":` ${this.list("video")} ${this.list("audio")} ${this.list("audiovideo")}}`}list(at){var ut,dt;return(ut=this.queues)!=null&&ut[at]||(dt=this.tracks)!=null&&dt[at]?`${at}: (${this.listSbInfo(at)}) ${this.listOps(at)}`:""}listSbInfo(at){var ut;const dt=(ut=this.tracks)==null?void 0:ut[at],ct=dt==null?void 0:dt.buffer;return ct?`SourceBuffer${ct.updating?" updating":""}${dt.ended?" ended":""}${dt.ending?" ending":""}`:"none"}listOps(at){var ut;return((ut=this.queues)==null?void 0:ut[at].map(dt=>dt.label).join(", "))||""}}const VIDEO_CODEC_PROFILE_REPLACE=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/,TRACK_REMOVED_ERROR_NAME="HlsJsTrackRemovedError";class HlsJsTrackRemovedError extends Error{constructor(at){super(at),this.name=TRACK_REMOVED_ERROR_NAME}}class BufferController extends Logger{constructor(at,ut){super("buffer-controller",at.logger),this.hls=void 0,this.fragmentTracker=void 0,this.details=null,this._objectUrl=null,this.operationQueue=null,this.bufferCodecEventsTotal=0,this.media=null,this.mediaSource=null,this.lastMpegAudioChunk=null,this.blockedAudioAppend=null,this.lastVideoAppendEnd=0,this.appendSource=void 0,this.transferData=void 0,this.overrides=void 0,this.appendErrors={audio:0,video:0,audiovideo:0},this.tracks={},this.sourceBuffers=[[null,null],[null,null]],this._onEndStreaming=dt=>{var ct;this.hls&&((ct=this.mediaSource)==null?void 0:ct.readyState)==="open"&&this.hls.pauseBuffering()},this._onStartStreaming=dt=>{this.hls&&this.hls.resumeBuffering()},this._onMediaSourceOpen=dt=>{const{media:ct,mediaSource:pt}=this;dt&&this.log("Media source opened"),!(!ct||!pt)&&(pt.removeEventListener("sourceopen",this._onMediaSourceOpen),ct.removeEventListener("emptied",this._onMediaEmptied),this.updateDuration(),this.hls.trigger(Events.MEDIA_ATTACHED,{media:ct,mediaSource:pt}),this.mediaSource!==null&&this.checkPendingTracks())},this._onMediaSourceClose=()=>{this.log("Media source closed")},this._onMediaSourceEnded=()=>{this.log("Media source ended")},this._onMediaEmptied=()=>{const{mediaSrc:dt,_objectUrl:ct}=this;dt!==ct&&this.error(`Media element src was set while attaching MediaSource (${ct} > ${dt})`)},this.hls=at,this.fragmentTracker=ut,this.appendSource=isManagedMediaSource(getMediaSource(at.config.preferManagedMediaSource)),this.initTracks(),this.registerListeners()}hasSourceTypes(){return Object.keys(this.tracks).length>0}destroy(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.transferData=this.overrides=void 0,this.operationQueue&&(this.operationQueue.destroy(),this.operationQueue=null),this.hls=this.fragmentTracker=null,this._onMediaSourceOpen=this._onMediaSourceClose=null,this._onMediaSourceEnded=null,this._onStartStreaming=this._onEndStreaming=null}registerListeners(){const{hls:at}=this;at.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),at.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.on(Events.BUFFER_RESET,this.onBufferReset,this),at.on(Events.BUFFER_APPENDING,this.onBufferAppending,this),at.on(Events.BUFFER_CODECS,this.onBufferCodecs,this),at.on(Events.BUFFER_EOS,this.onBufferEos,this),at.on(Events.BUFFER_FLUSHING,this.onBufferFlushing,this),at.on(Events.LEVEL_UPDATED,this.onLevelUpdated,this),at.on(Events.FRAG_PARSED,this.onFragParsed,this),at.on(Events.FRAG_CHANGED,this.onFragChanged,this),at.on(Events.ERROR,this.onError,this)}unregisterListeners(){const{hls:at}=this;at.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),at.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.off(Events.BUFFER_RESET,this.onBufferReset,this),at.off(Events.BUFFER_APPENDING,this.onBufferAppending,this),at.off(Events.BUFFER_CODECS,this.onBufferCodecs,this),at.off(Events.BUFFER_EOS,this.onBufferEos,this),at.off(Events.BUFFER_FLUSHING,this.onBufferFlushing,this),at.off(Events.LEVEL_UPDATED,this.onLevelUpdated,this),at.off(Events.FRAG_PARSED,this.onFragParsed,this),at.off(Events.FRAG_CHANGED,this.onFragChanged,this),at.off(Events.ERROR,this.onError,this)}transferMedia(){const{media:at,mediaSource:ut}=this;if(!at)return null;const dt={};if(this.operationQueue){const pt=this.isUpdating();pt||this.operationQueue.removeBlockers();const ft=this.isQueued();(pt||ft)&&this.warn(`Transfering MediaSource with${ft?" operations in queue":""}${pt?" updating SourceBuffer(s)":""} ${this.operationQueue}`),this.operationQueue.destroy()}const ct=this.transferData;return!this.sourceBufferCount&&ct&&ct.mediaSource===ut?_extends(dt,ct.tracks):this.sourceBuffers.forEach(pt=>{const[ft]=pt;ft&&(dt[ft]=_extends({},this.tracks[ft]),this.removeBuffer(ft)),pt[0]=pt[1]=null}),{media:at,mediaSource:ut,tracks:dt}}initTracks(){const at={};this.sourceBuffers=[[null,null],[null,null]],this.tracks=at,this.resetQueue(),this.resetAppendErrors(),this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.lastVideoAppendEnd=0}onManifestLoading(){this.bufferCodecEventsTotal=0,this.details=null}onManifestParsed(at,ut){var dt;let ct=2;(ut.audio&&!ut.video||!ut.altAudio)&&(ct=1),this.bufferCodecEventsTotal=ct,this.log(`${ct} bufferCodec event(s) expected.`),(dt=this.transferData)!=null&&dt.mediaSource&&this.sourceBufferCount&&ct&&this.bufferCreated()}onMediaAttaching(at,ut){const dt=this.media=ut.media,ct=getMediaSource(this.appendSource);if(this.transferData=this.overrides=void 0,dt&&ct){const pt=!!ut.mediaSource;(pt||ut.overrides)&&(this.transferData=ut,this.overrides=ut.overrides);const ft=this.mediaSource=ut.mediaSource||new ct;if(this.assignMediaSource(ft),pt)this._objectUrl=dt.src,this.attachTransferred();else{const ht=this._objectUrl=self.URL.createObjectURL(ft);if(this.appendSource)try{dt.removeAttribute("src");const mt=self.ManagedMediaSource;dt.disableRemotePlayback=dt.disableRemotePlayback||mt&&ft instanceof mt,removeSourceChildren(dt),addSource(dt,ht),dt.load()}catch{dt.src=ht}else dt.src=ht}dt.addEventListener("emptied",this._onMediaEmptied)}}assignMediaSource(at){var ut,dt;this.log(`${((ut=this.transferData)==null?void 0:ut.mediaSource)===at?"transferred":"created"} media source: ${(dt=at.constructor)==null?void 0:dt.name}`),at.addEventListener("sourceopen",this._onMediaSourceOpen),at.addEventListener("sourceended",this._onMediaSourceEnded),at.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(at.addEventListener("startstreaming",this._onStartStreaming),at.addEventListener("endstreaming",this._onEndStreaming))}attachTransferred(){const at=this.media,ut=this.transferData;if(!ut||!at)return;const dt=this.tracks,ct=ut.tracks,pt=ct?Object.keys(ct):null,ft=pt?pt.length:0,ht=()=>{this.media&&this.mediaSourceOpenOrEnded&&this._onMediaSourceOpen()};if(ct&&pt&&ft){if(!this.tracksReady){this.hls.config.startFragPrefetch=!0,this.log("attachTransferred: waiting for SourceBuffer track info");return}if(this.log(`attachTransferred: (bufferCodecEventsTotal ${this.bufferCodecEventsTotal}) required tracks: ${stringify(dt,(mt,yt)=>mt==="initSegment"?void 0:yt)}; transfer tracks: ${stringify(ct,(mt,yt)=>mt==="initSegment"?void 0:yt)}}`),!isCompatibleTrackChange(ct,dt)){ut.mediaSource=null,ut.tracks=void 0;const mt=at.currentTime,yt=this.details,bt=Math.max(mt,(yt==null?void 0:yt.fragments[0].start)||0);if(bt-mt>1){this.log(`attachTransferred: waiting for playback to reach new tracks start time ${mt} -> ${bt}`);return}this.warn(`attachTransferred: resetting MediaSource for incompatible tracks ("${Object.keys(ct)}"->"${Object.keys(dt)}") start time: ${bt} currentTime: ${mt}`),this.onMediaDetaching(Events.MEDIA_DETACHING,{}),this.onMediaAttaching(Events.MEDIA_ATTACHING,ut),at.currentTime=bt;return}this.transferData=void 0,pt.forEach(mt=>{const yt=mt,bt=ct[yt];if(bt){const Tt=bt.buffer;if(Tt){const St=this.fragmentTracker,At=bt.id;if(St.hasFragments(At)||St.hasParts(At)){const Et=BufferHelper.getBuffered(Tt);St.detectEvictedFragments(yt,Et,At,null,!0)}const vt=sourceBufferNameToIndex(yt),Dt=[yt,Tt];this.sourceBuffers[vt]=Dt,Tt.updating&&this.operationQueue&&this.operationQueue.prependBlocker(yt),this.trackSourceBuffer(yt,bt)}}}),ht(),this.bufferCreated()}else this.log("attachTransferred: MediaSource w/o SourceBuffers"),ht()}get mediaSourceOpenOrEnded(){var at;const ut=(at=this.mediaSource)==null?void 0:at.readyState;return ut==="open"||ut==="ended"}onMediaDetaching(at,ut){const dt=!!ut.transferMedia;this.transferData=this.overrides=void 0;const{media:ct,mediaSource:pt,_objectUrl:ft}=this;if(pt){if(this.log(`media source ${dt?"transferring":"detaching"}`),dt)this.sourceBuffers.forEach(([ht])=>{ht&&this.removeBuffer(ht)}),this.resetQueue();else{if(this.mediaSourceOpenOrEnded){const ht=pt.readyState==="open";try{const mt=pt.sourceBuffers;for(let yt=mt.length;yt--;)ht&&mt[yt].abort(),pt.removeSourceBuffer(mt[yt]);ht&&pt.endOfStream()}catch(mt){this.warn(`onMediaDetaching: ${mt.message} while calling endOfStream`)}}this.sourceBufferCount&&this.onBufferReset()}pt.removeEventListener("sourceopen",this._onMediaSourceOpen),pt.removeEventListener("sourceended",this._onMediaSourceEnded),pt.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(pt.removeEventListener("startstreaming",this._onStartStreaming),pt.removeEventListener("endstreaming",this._onEndStreaming)),this.mediaSource=null,this._objectUrl=null}ct&&(ct.removeEventListener("emptied",this._onMediaEmptied),dt||(ft&&self.URL.revokeObjectURL(ft),this.mediaSrc===ft?(ct.removeAttribute("src"),this.appendSource&&removeSourceChildren(ct),ct.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.media=null),this.hls.trigger(Events.MEDIA_DETACHED,ut)}onBufferReset(){this.sourceBuffers.forEach(([at])=>{at&&this.resetBuffer(at)}),this.initTracks()}resetBuffer(at){var ut;const dt=(ut=this.tracks[at])==null?void 0:ut.buffer;if(this.removeBuffer(at),dt)try{var ct;(ct=this.mediaSource)!=null&&ct.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(dt)}catch(pt){this.warn(`onBufferReset ${at}`,pt)}delete this.tracks[at]}removeBuffer(at){this.removeBufferListeners(at),this.sourceBuffers[sourceBufferNameToIndex(at)]=[null,null];const ut=this.tracks[at];ut&&(ut.buffer=void 0)}resetQueue(){this.operationQueue&&this.operationQueue.destroy(),this.operationQueue=new BufferOperationQueue(this.tracks)}onBufferCodecs(at,ut){const dt=this.tracks,ct=Object.keys(ut);this.log(`BUFFER_CODECS: "${ct}" (current SB count ${this.sourceBufferCount})`);const pt="audiovideo"in ut&&(dt.audio||dt.video)||dt.audiovideo&&("audio"in ut||"video"in ut),ft=!pt&&this.sourceBufferCount&&this.media&&ct.some(ht=>!dt[ht]);if(pt||ft){this.warn(`Unsupported transition between "${Object.keys(dt)}" and "${ct}" SourceBuffers`);return}ct.forEach(ht=>{var mt,yt,bt;const Tt=ut[ht],{id:St,codec:At,levelCodec:vt,container:Dt,metadata:Et,supplemental:_t}=Tt;let xt=dt[ht];const Ct=(mt=this.transferData)==null||(yt=mt.tracks)==null?void 0:yt[ht],kt=Ct!=null&&Ct.buffer?Ct:xt,wt=(kt==null?void 0:kt.pendingCodec)||(kt==null?void 0:kt.codec),$t=kt==null?void 0:kt.levelCodec;xt||(xt=dt[ht]={buffer:void 0,listeners:[],codec:At,supplemental:_t,container:Dt,levelCodec:vt,metadata:Et,id:St});const Lt=pickMostCompleteCodecName(wt,$t),Ot=Lt==null?void 0:Lt.replace(VIDEO_CODEC_PROFILE_REPLACE,"$1");let zt=pickMostCompleteCodecName(At,vt);const Mt=(bt=zt)==null?void 0:bt.replace(VIDEO_CODEC_PROFILE_REPLACE,"$1");zt&&Lt&&Ot!==Mt&&(ht.slice(0,5)==="audio"&&(zt=getCodecCompatibleName(zt,this.appendSource)),this.log(`switching codec ${wt} to ${zt}`),zt!==(xt.pendingCodec||xt.codec)&&(xt.pendingCodec=zt),xt.container=Dt,this.appendChangeType(ht,Dt,zt))}),(this.tracksReady||this.sourceBufferCount)&&(ut.tracks=this.sourceBufferTracks),!this.sourceBufferCount&&this.mediaSourceOpenOrEnded&&this.checkPendingTracks()}get sourceBufferTracks(){return Object.keys(this.tracks).reduce((at,ut)=>{const dt=this.tracks[ut];return at[ut]={id:dt.id,container:dt.container,codec:dt.codec,levelCodec:dt.levelCodec},at},{})}appendChangeType(at,ut,dt){const ct=`${ut};codecs=${dt}`,pt={label:`change-type=${ct}`,execute:()=>{const ft=this.tracks[at];if(ft){const ht=ft.buffer;ht!=null&&ht.changeType&&(this.log(`changing ${at} sourceBuffer type to ${ct}`),ht.changeType(ct),ft.codec=dt,ft.container=ut)}this.shiftAndExecuteNext(at)},onStart:()=>{},onComplete:()=>{},onError:ft=>{this.warn(`Failed to change ${at} SourceBuffer type`,ft)}};this.append(pt,at,this.isPending(this.tracks[at]))}blockAudio(at){var ut;const dt=at.start,ct=dt+at.duration*.05;if(((ut=this.fragmentTracker.getAppendedFrag(dt,PlaylistLevelType.MAIN))==null?void 0:ut.gap)===!0)return;const ft={label:"block-audio",execute:()=>{var ht;const mt=this.tracks.video;(this.lastVideoAppendEnd>ct||mt!=null&&mt.buffer&&BufferHelper.isBuffered(mt.buffer,ct)||((ht=this.fragmentTracker.getAppendedFrag(ct,PlaylistLevelType.MAIN))==null?void 0:ht.gap)===!0)&&(this.blockedAudioAppend=null,this.shiftAndExecuteNext("audio"))},onStart:()=>{},onComplete:()=>{},onError:ht=>{this.warn("Error executing block-audio operation",ht)}};this.blockedAudioAppend={op:ft,frag:at},this.append(ft,"audio",!0)}unblockAudio(){const{blockedAudioAppend:at,operationQueue:ut}=this;at&&ut&&(this.blockedAudioAppend=null,ut.unblockAudio(at.op))}onBufferAppending(at,ut){const{tracks:dt}=this,{data:ct,type:pt,parent:ft,frag:ht,part:mt,chunkMeta:yt,offset:bt}=ut,Tt=yt.buffering[pt],{sn:St,cc:At}=ht,vt=self.performance.now();Tt.start=vt;const Dt=ht.stats.buffering,Et=mt?mt.stats.buffering:null;Dt.start===0&&(Dt.start=vt),Et&&Et.start===0&&(Et.start=vt);const _t=dt.audio;let xt=!1;pt==="audio"&&(_t==null?void 0:_t.container)==="audio/mpeg"&&(xt=!this.lastMpegAudioChunk||yt.id===1||this.lastMpegAudioChunk.sn!==yt.sn,this.lastMpegAudioChunk=yt);const Ct=dt.video,kt=Ct==null?void 0:Ct.buffer;if(kt&&St!=="initSegment"){const Lt=mt||ht,Ot=this.blockedAudioAppend;if(pt==="audio"&&ft!=="main"&&!this.blockedAudioAppend){const Mt=Lt.start+Lt.duration*.05,qt=kt.buffered,Qt=this.currentOp("video");!qt.length&&!Qt?this.blockAudio(Lt):!Qt&&!BufferHelper.isBuffered(kt,Mt)&&this.lastVideoAppendEndMt||zt{var Lt;Tt.executeStart=self.performance.now();const Ot=(Lt=this.tracks[pt])==null?void 0:Lt.buffer;Ot&&(xt?this.updateTimestampOffset(Ot,wt,.1,pt,St,At):bt!==void 0&&isFiniteNumber(bt)&&this.updateTimestampOffset(Ot,bt,1e-6,pt,St,At)),this.appendExecutor(ct,pt)},onStart:()=>{},onComplete:()=>{const Lt=self.performance.now();Tt.executeEnd=Tt.end=Lt,Dt.first===0&&(Dt.first=Lt),Et&&Et.first===0&&(Et.first=Lt);const Ot={};this.sourceBuffers.forEach(([zt,Mt])=>{zt&&(Ot[zt]=BufferHelper.getBuffered(Mt))}),this.appendErrors[pt]=0,pt==="audio"||pt==="video"?this.appendErrors.audiovideo=0:(this.appendErrors.audio=0,this.appendErrors.video=0),this.hls.trigger(Events.BUFFER_APPENDED,{type:pt,frag:ht,part:mt,chunkMeta:yt,parent:ht.type,timeRanges:Ot})},onError:Lt=>{var Ot;const zt={type:ErrorTypes.MEDIA_ERROR,parent:ht.type,details:ErrorDetails.BUFFER_APPEND_ERROR,sourceBufferName:pt,frag:ht,part:mt,chunkMeta:yt,error:Lt,err:Lt,fatal:!1},Mt=(Ot=this.media)==null?void 0:Ot.error;if(Lt.code===DOMException.QUOTA_EXCEEDED_ERR||Lt.name=="QuotaExceededError"||"quota"in Lt)zt.details=ErrorDetails.BUFFER_FULL_ERROR;else if(Lt.code===DOMException.INVALID_STATE_ERR&&this.mediaSourceOpenOrEnded&&!Mt)zt.errorAction=createDoNothingErrorAction(!0);else if(Lt.name===TRACK_REMOVED_ERROR_NAME&&this.sourceBufferCount===0)zt.errorAction=createDoNothingErrorAction(!0);else{const qt=++this.appendErrors[pt];this.warn(`Failed ${qt}/${this.hls.config.appendErrorMaxRetry} times to append segment in "${pt}" sourceBuffer (${Mt||"no media error"})`),(qt>=this.hls.config.appendErrorMaxRetry||Mt)&&(zt.fatal=!0)}this.hls.trigger(Events.ERROR,zt)}};this.append($t,pt,this.isPending(this.tracks[pt]))}getFlushOp(at,ut,dt){return this.log(`queuing "${at}" remove ${ut}-${dt}`),{label:"remove",execute:()=>{this.removeExecutor(at,ut,dt)},onStart:()=>{},onComplete:()=>{this.hls.trigger(Events.BUFFER_FLUSHED,{type:at})},onError:ct=>{this.warn(`Failed to remove ${ut}-${dt} from "${at}" SourceBuffer`,ct)}}}onBufferFlushing(at,ut){const{type:dt,startOffset:ct,endOffset:pt}=ut;dt?this.append(this.getFlushOp(dt,ct,pt),dt):this.sourceBuffers.forEach(([ft])=>{ft&&this.append(this.getFlushOp(ft,ct,pt),ft)})}onFragParsed(at,ut){const{frag:dt,part:ct}=ut,pt=[],ft=ct?ct.elementaryStreams:dt.elementaryStreams;ft[ElementaryStreamTypes.AUDIOVIDEO]?pt.push("audiovideo"):(ft[ElementaryStreamTypes.AUDIO]&&pt.push("audio"),ft[ElementaryStreamTypes.VIDEO]&&pt.push("video"));const ht=()=>{const mt=self.performance.now();dt.stats.buffering.end=mt,ct&&(ct.stats.buffering.end=mt);const yt=ct?ct.stats:dt.stats;this.hls.trigger(Events.FRAG_BUFFERED,{frag:dt,part:ct,stats:yt,id:dt.type})};pt.length===0&&this.warn(`Fragments must have at least one ElementaryStreamType set. type: ${dt.type} level: ${dt.level} sn: ${dt.sn}`),this.blockBuffers(ht,pt).catch(mt=>{this.warn(`Fragment buffered callback ${mt}`),this.stepOperationQueue(this.sourceBufferTypes)})}onFragChanged(at,ut){this.trimBuffers()}get bufferedToEnd(){return this.sourceBufferCount>0&&!this.sourceBuffers.some(([at])=>{var ut,dt;return at&&(!((ut=this.tracks[at])!=null&&ut.ended)||((dt=this.tracks[at])==null?void 0:dt.ending))})}onBufferEos(at,ut){var dt;this.sourceBuffers.forEach(([ft])=>{if(ft){const ht=this.tracks[ft];(!ut.type||ut.type===ft)&&(ht.ending=!0,ht.ended||(ht.ended=!0,this.log(`${ft} buffer reached EOS`)))}});const ct=((dt=this.overrides)==null?void 0:dt.endOfStream)!==!1;this.sourceBufferCount>0&&!this.sourceBuffers.some(([ft])=>{var ht;return ft&&!((ht=this.tracks[ft])!=null&&ht.ended)})&&(ct?(this.log("Queueing EOS"),this.blockUntilOpen(()=>{this.tracksEnded();const{mediaSource:ft}=this;if(!ft||ft.readyState!=="open"){ft&&this.log(`Could not call mediaSource.endOfStream(). mediaSource.readyState: ${ft.readyState}`);return}this.log("Calling mediaSource.endOfStream()"),ft.endOfStream(),this.hls.trigger(Events.BUFFERED_TO_END,void 0)})):(this.tracksEnded(),this.hls.trigger(Events.BUFFERED_TO_END,void 0)))}tracksEnded(){this.sourceBuffers.forEach(([at])=>{if(at!==null){const ut=this.tracks[at];ut&&(ut.ending=!1)}})}onLevelUpdated(at,{details:ut}){ut.fragments.length&&(this.details=ut,this.updateDuration())}updateDuration(){this.blockUntilOpen(()=>{const at=this.getDurationAndRange();at&&this.updateMediaSource(at)})}onError(at,ut){if(ut.details===ErrorDetails.BUFFER_APPEND_ERROR&&ut.frag){var dt;const ct=(dt=ut.errorAction)==null?void 0:dt.nextAutoLevel;isFiniteNumber(ct)&&ct!==ut.frag.level&&this.resetAppendErrors()}}resetAppendErrors(){this.appendErrors={audio:0,video:0,audiovideo:0}}trimBuffers(){const{hls:at,details:ut,media:dt}=this;if(!dt||ut===null||!this.sourceBufferCount)return;const ct=at.config,pt=dt.currentTime,ft=ut.levelTargetDuration,ht=ut.live&&ct.liveBackBufferLength!==null?ct.liveBackBufferLength:ct.backBufferLength;if(isFiniteNumber(ht)&&ht>=0){const mt=Math.max(ht,ft),yt=Math.floor(pt/ft)*ft-mt;this.flushBackBuffer(pt,ft,yt)}if(isFiniteNumber(ct.frontBufferFlushThreshold)&&ct.frontBufferFlushThreshold>0){const mt=Math.max(ct.maxBufferLength,ct.frontBufferFlushThreshold),yt=Math.max(mt,ft),bt=Math.floor(pt/ft)*ft+yt;this.flushFrontBuffer(pt,ft,bt)}}flushBackBuffer(at,ut,dt){this.sourceBuffers.forEach(([ct,pt])=>{if(pt){const ht=BufferHelper.getBuffered(pt);if(ht.length>0&&dt>ht.start(0)){var ft;this.hls.trigger(Events.BACK_BUFFER_REACHED,{bufferEnd:dt});const mt=this.tracks[ct];if((ft=this.details)!=null&&ft.live)this.hls.trigger(Events.LIVE_BACK_BUFFER_REACHED,{bufferEnd:dt});else if(mt!=null&&mt.ended){this.log(`Cannot flush ${ct} back buffer while SourceBuffer is in ended state`);return}this.hls.trigger(Events.BUFFER_FLUSHING,{startOffset:0,endOffset:dt,type:ct})}}})}flushFrontBuffer(at,ut,dt){this.sourceBuffers.forEach(([ct,pt])=>{if(pt){const ft=BufferHelper.getBuffered(pt),ht=ft.length;if(ht<2)return;const mt=ft.start(ht-1),yt=ft.end(ht-1);if(dt>mt||at>=mt&&at<=yt)return;this.hls.trigger(Events.BUFFER_FLUSHING,{startOffset:mt,endOffset:1/0,type:ct})}})}getDurationAndRange(){var at;const{details:ut,mediaSource:dt}=this;if(!ut||!this.media||(dt==null?void 0:dt.readyState)!=="open")return null;const ct=ut.edge;if(ut.live&&this.hls.config.liveDurationInfinity){if(ut.fragments.length&&ut.live&&dt.setLiveSeekableRange){const yt=Math.max(0,ut.fragmentStart),bt=Math.max(yt,ct);return{duration:1/0,start:yt,end:bt}}return{duration:1/0}}const pt=(at=this.overrides)==null?void 0:at.duration;if(pt)return isFiniteNumber(pt)?{duration:pt}:null;const ft=this.media.duration,ht=isFiniteNumber(dt.duration)?dt.duration:0;return ct>ht&&ct>ft||!isFiniteNumber(ft)?{duration:ct}:null}updateMediaSource({duration:at,start:ut,end:dt}){const ct=this.mediaSource;!this.media||!ct||ct.readyState!=="open"||(ct.duration!==at&&(isFiniteNumber(at)&&this.log(`Updating MediaSource duration to ${at.toFixed(3)}`),ct.duration=at),ut!==void 0&&dt!==void 0&&(this.log(`MediaSource duration is set to ${ct.duration}. Setting seekable range to ${ut}-${dt}.`),ct.setLiveSeekableRange(ut,dt)))}get tracksReady(){const at=this.pendingTrackCount;return at>0&&(at>=this.bufferCodecEventsTotal||this.isPending(this.tracks.audiovideo))}checkPendingTracks(){const{bufferCodecEventsTotal:at,pendingTrackCount:ut,tracks:dt}=this;if(this.log(`checkPendingTracks (pending: ${ut} codec events expected: ${at}) ${stringify(dt)}`),this.tracksReady){var ct;const pt=(ct=this.transferData)==null?void 0:ct.tracks;pt&&Object.keys(pt).length?this.attachTransferred():this.createSourceBuffers()}}bufferCreated(){if(this.sourceBufferCount){const at={};this.sourceBuffers.forEach(([ut,dt])=>{if(ut){const ct=this.tracks[ut];at[ut]={buffer:dt,container:ct.container,codec:ct.codec,supplemental:ct.supplemental,levelCodec:ct.levelCodec,id:ct.id,metadata:ct.metadata}}}),this.hls.trigger(Events.BUFFER_CREATED,{tracks:at}),this.log(`SourceBuffers created. Running queue: ${this.operationQueue}`),this.sourceBuffers.forEach(([ut])=>{this.executeNext(ut)})}else{const at=new Error("could not create source buffer for media codec(s)");this.hls.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:at,reason:at.message})}}createSourceBuffers(){const{tracks:at,sourceBuffers:ut,mediaSource:dt}=this;if(!dt)throw new Error("createSourceBuffers called when mediaSource was null");for(const pt in at){const ft=pt,ht=at[ft];if(this.isPending(ht)){const mt=this.getTrackCodec(ht,ft),yt=`${ht.container};codecs=${mt}`;ht.codec=mt,this.log(`creating sourceBuffer(${yt})${this.currentOp(ft)?" Queued":""} ${stringify(ht)}`);try{const bt=dt.addSourceBuffer(yt),Tt=sourceBufferNameToIndex(ft),St=[ft,bt];ut[Tt]=St,ht.buffer=bt}catch(bt){var ct;this.error(`error while trying to add sourceBuffer: ${bt.message}`),this.shiftAndExecuteNext(ft),(ct=this.operationQueue)==null||ct.removeBlockers(),delete this.tracks[ft],this.hls.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:bt,sourceBufferName:ft,mimeType:yt,parent:ht.id});return}this.trackSourceBuffer(ft,ht)}}this.bufferCreated()}getTrackCodec(at,ut){const dt=at.supplemental;let ct=at.codec;dt&&(ut==="video"||ut==="audiovideo")&&areCodecsMediaSourceSupported(dt,"video")&&(ct=replaceVideoCodec(ct,dt));const pt=pickMostCompleteCodecName(ct,at.levelCodec);return pt?ut.slice(0,5)==="audio"?getCodecCompatibleName(pt,this.appendSource):pt:""}trackSourceBuffer(at,ut){const dt=ut.buffer;if(!dt)return;const ct=this.getTrackCodec(ut,at);this.tracks[at]={buffer:dt,codec:ct,container:ut.container,levelCodec:ut.levelCodec,supplemental:ut.supplemental,metadata:ut.metadata,id:ut.id,listeners:[]},this.removeBufferListeners(at),this.addBufferListener(at,"updatestart",this.onSBUpdateStart),this.addBufferListener(at,"updateend",this.onSBUpdateEnd),this.addBufferListener(at,"error",this.onSBUpdateError),this.appendSource&&this.addBufferListener(at,"bufferedchange",(pt,ft)=>{const ht=ft.removedRanges;ht!=null&&ht.length&&this.hls.trigger(Events.BUFFER_FLUSHED,{type:pt})})}get mediaSrc(){var at,ut;const dt=((at=this.media)==null||(ut=at.querySelector)==null?void 0:ut.call(at,"source"))||this.media;return dt==null?void 0:dt.src}onSBUpdateStart(at){const ut=this.currentOp(at);ut&&ut.onStart()}onSBUpdateEnd(at){var ut;if(((ut=this.mediaSource)==null?void 0:ut.readyState)==="closed"){this.resetBuffer(at);return}const dt=this.currentOp(at);dt&&(dt.onComplete(),this.shiftAndExecuteNext(at))}onSBUpdateError(at,ut){var dt;const ct=new Error(`${at} SourceBuffer error. MediaSource readyState: ${(dt=this.mediaSource)==null?void 0:dt.readyState}`);this.error(`${ct}`,ut),this.hls.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.BUFFER_APPENDING_ERROR,sourceBufferName:at,error:ct,fatal:!1});const pt=this.currentOp(at);pt&&pt.onError(ct)}updateTimestampOffset(at,ut,dt,ct,pt,ft){const ht=ut-at.timestampOffset;Math.abs(ht)>=dt&&(this.log(`Updating ${ct} SourceBuffer timestampOffset to ${ut} (sn: ${pt} cc: ${ft})`),at.timestampOffset=ut)}removeExecutor(at,ut,dt){const{media:ct,mediaSource:pt}=this,ft=this.tracks[at],ht=ft==null?void 0:ft.buffer;if(!ct||!pt||!ht){this.warn(`Attempting to remove from the ${at} SourceBuffer, but it does not exist`),this.shiftAndExecuteNext(at);return}const mt=isFiniteNumber(ct.duration)?ct.duration:1/0,yt=isFiniteNumber(pt.duration)?pt.duration:1/0,bt=Math.max(0,ut),Tt=Math.min(dt,mt,yt);Tt>bt&&(!ft.ending||ft.ended)?(ft.ended=!1,this.log(`Removing [${bt},${Tt}] from the ${at} SourceBuffer`),ht.remove(bt,Tt)):this.shiftAndExecuteNext(at)}appendExecutor(at,ut){const dt=this.tracks[ut],ct=dt==null?void 0:dt.buffer;if(!ct)throw new HlsJsTrackRemovedError(`Attempting to append to the ${ut} SourceBuffer, but it does not exist`);dt.ending=!1,dt.ended=!1,ct.appendBuffer(at)}blockUntilOpen(at){if(this.isUpdating()||this.isQueued())this.blockBuffers(at).catch(ut=>{this.warn(`SourceBuffer blocked callback ${ut}`),this.stepOperationQueue(this.sourceBufferTypes)});else try{at()}catch(ut){this.warn(`Callback run without blocking ${this.operationQueue} ${ut}`)}}isUpdating(){return this.sourceBuffers.some(([at,ut])=>at&&ut.updating)}isQueued(){return this.sourceBuffers.some(([at])=>at&&!!this.currentOp(at))}isPending(at){return!!at&&!at.buffer}blockBuffers(at,ut=this.sourceBufferTypes){if(!ut.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),Promise.resolve().then(at);const{operationQueue:dt}=this,ct=ut.map(ft=>this.appendBlocker(ft));return ut.length>1&&!!this.blockedAudioAppend&&this.unblockAudio(),Promise.all(ct).then(ft=>{dt===this.operationQueue&&(at(),this.stepOperationQueue(this.sourceBufferTypes))})}stepOperationQueue(at){at.forEach(ut=>{var dt;const ct=(dt=this.tracks[ut])==null?void 0:dt.buffer;!ct||ct.updating||this.shiftAndExecuteNext(ut)})}append(at,ut,dt){this.operationQueue&&this.operationQueue.append(at,ut,dt)}appendBlocker(at){if(this.operationQueue)return this.operationQueue.appendBlocker(at)}currentOp(at){return this.operationQueue?this.operationQueue.current(at):null}executeNext(at){at&&this.operationQueue&&this.operationQueue.executeNext(at)}shiftAndExecuteNext(at){this.operationQueue&&this.operationQueue.shiftAndExecuteNext(at)}get pendingTrackCount(){return Object.keys(this.tracks).reduce((at,ut)=>at+(this.isPending(this.tracks[ut])?1:0),0)}get sourceBufferCount(){return this.sourceBuffers.reduce((at,[ut])=>at+(ut?1:0),0)}get sourceBufferTypes(){return this.sourceBuffers.map(([at])=>at).filter(at=>!!at)}addBufferListener(at,ut,dt){const ct=this.tracks[at];if(!ct)return;const pt=ct.buffer;if(!pt)return;const ft=dt.bind(this,at);ct.listeners.push({event:ut,listener:ft}),pt.addEventListener(ut,ft)}removeBufferListeners(at){const ut=this.tracks[at];if(!ut)return;const dt=ut.buffer;dt&&(ut.listeners.forEach(ct=>{dt.removeEventListener(ct.event,ct.listener)}),ut.listeners.length=0)}}function removeSourceChildren(st){const at=st.querySelectorAll("source");[].slice.call(at).forEach(ut=>{st.removeChild(ut)})}function addSource(st,at){const ut=self.document.createElement("source");ut.type="video/mp4",ut.src=at,st.appendChild(ut)}function sourceBufferNameToIndex(st){return st==="audio"?1:0}class CapLevelController{constructor(at){this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=at,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}setStreamController(at){this.streamController=at}destroy(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}registerListeners(){const{hls:at}=this;at.on(Events.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),at.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),at.on(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.on(Events.LEVELS_UPDATED,this.onLevelsUpdated,this),at.on(Events.BUFFER_CODECS,this.onBufferCodecs,this),at.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListener(){const{hls:at}=this;at.off(Events.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),at.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),at.off(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.off(Events.LEVELS_UPDATED,this.onLevelsUpdated,this),at.off(Events.BUFFER_CODECS,this.onBufferCodecs,this),at.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this)}onFpsDropLevelCapping(at,ut){const dt=this.hls.levels[ut.droppedLevel];this.isLevelAllowed(dt)&&this.restrictedLevels.push({bitrate:dt.bitrate,height:dt.height,width:dt.width})}onMediaAttaching(at,ut){this.media=ut.media instanceof HTMLVideoElement?ut.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}onManifestParsed(at,ut){const dt=this.hls;this.restrictedLevels=[],this.firstLevel=ut.firstLevel,dt.config.capLevelToPlayerSize&&ut.video&&this.startCapping()}onLevelsUpdated(at,ut){this.timer&&isFiniteNumber(this.autoLevelCapping)&&this.detectPlayerSize()}onBufferCodecs(at,ut){this.hls.config.capLevelToPlayerSize&&ut.video&&this.startCapping()}onMediaDetaching(){this.stopCapping(),this.media=null}detectPlayerSize(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0){this.clientRect=null;return}const at=this.hls.levels;if(at.length){const ut=this.hls,dt=this.getMaxLevel(at.length-1);dt!==this.autoLevelCapping&&ut.logger.log(`Setting autoLevelCapping to ${dt}: ${at[dt].height}p@${at[dt].bitrate} for media ${this.mediaWidth}x${this.mediaHeight}`),ut.autoLevelCapping=dt,ut.autoLevelEnabled&&ut.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=ut.autoLevelCapping}}}getMaxLevel(at){const ut=this.hls.levels;if(!ut.length)return-1;const dt=ut.filter((ct,pt)=>this.isLevelAllowed(ct)&&pt<=at);return this.clientRect=null,CapLevelController.getMaxLevelByMediaSize(dt,this.mediaWidth,this.mediaHeight)}startCapping(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())}stopCapping(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}getDimensions(){if(this.clientRect)return this.clientRect;const at=this.media,ut={width:0,height:0};if(at){const dt=at.getBoundingClientRect();ut.width=dt.width,ut.height=dt.height,!ut.width&&!ut.height&&(ut.width=dt.right-dt.left||at.width||0,ut.height=dt.bottom-dt.top||at.height||0)}return this.clientRect=ut,ut}get mediaWidth(){return this.getDimensions().width*this.contentScaleFactor}get mediaHeight(){return this.getDimensions().height*this.contentScaleFactor}get contentScaleFactor(){let at=1;if(!this.hls.config.ignoreDevicePixelRatio)try{at=self.devicePixelRatio}catch{}return Math.min(at,this.hls.config.maxDevicePixelRatio)}isLevelAllowed(at){return!this.restrictedLevels.some(dt=>at.bitrate===dt.bitrate&&at.width===dt.width&&at.height===dt.height)}static getMaxLevelByMediaSize(at,ut,dt){if(!(at!=null&&at.length))return-1;const ct=(ht,mt)=>mt?ht.width!==mt.width||ht.height!==mt.height:!0;let pt=at.length-1;const ft=Math.max(ut,dt);for(let ht=0;ht=ft||mt.height>=ft)&&ct(mt,at[ht+1])){pt=ht;break}}return pt}}const CmObjectType={MANIFEST:"m",AUDIO:"a",VIDEO:"v",MUXED:"av",INIT:"i",CAPTION:"c",TIMED_TEXT:"tt",KEY:"k",OTHER:"o"},CmcdObjectType=CmObjectType,CmStreamingFormat={HLS:"h"},CmcdStreamingFormat=CmStreamingFormat,CMCD_OBJECT="CMCD-Object",CMCD_REQUEST="CMCD-Request",CMCD_SESSION="CMCD-Session",CMCD_STATUS="CMCD-Status",CmcdHeaderField={OBJECT:CMCD_OBJECT,REQUEST:CMCD_REQUEST,SESSION:CMCD_SESSION,STATUS:CMCD_STATUS},CmcdHeaderMap={[CmcdHeaderField.OBJECT]:["br","ab","d","ot","tb","tpb","lb","tab","lab","url"],[CmcdHeaderField.REQUEST]:["pb","bl","tbl","dl","ltc","mtp","nor","nrr","rc","sn","sta","su","ttfb","ttfbb","ttlb","cmsdd","cmsds","smrt","df","cs"],[CmcdHeaderField.SESSION]:["cid","pr","sf","sid","st","v","msd"],[CmcdHeaderField.STATUS]:["bs","bsd","cdn","rtp","bg","pt","ec","e"]};class SfItem{constructor(at,ut){Array.isArray(at)&&(at=at.map(dt=>dt instanceof SfItem?dt:new SfItem(dt))),this.value=at,this.params=ut}}const DICT="Dict";function format$1(st){return Array.isArray(st)?JSON.stringify(st):st instanceof Map?"Map{}":st instanceof Set?"Set{}":typeof st=="object"?JSON.stringify(st):String(st)}function throwError(st,at,ut,dt){return new Error(`failed to ${st} "${format$1(at)}" as ${ut}`,{cause:dt})}function serializeError(st,at,ut){return throwError("serialize",st,at,ut)}class SfToken{constructor(at){this.description=at}}const BARE_ITEM="Bare Item",BOOLEAN="Boolean";function serializeBoolean(st){if(typeof st!="boolean")throw serializeError(st,BOOLEAN);return st?"?1":"?0"}function encodeBase64(st){return btoa(String.fromCharCode(...st))}const BYTES="Byte Sequence";function serializeByteSequence(st){if(ArrayBuffer.isView(st)===!1)throw serializeError(st,BYTES);return`:${encodeBase64(st)}:`}const INTEGER="Integer";function isInvalidInt(st){return st<-999999999999999||99999999999999912)throw serializeError(st,DECIMAL);const ut=at.toString();return ut.includes(".")?ut:`${ut}.0`}const STRING="String",STRING_REGEX=/[\x00-\x1f\x7f]+/;function serializeString(st){if(STRING_REGEX.test(st))throw serializeError(st,STRING);return`"${st.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function symbolToStr(st){return st.description||st.toString().slice(7,-1)}const TOKEN="Token";function serializeToken(st){const at=symbolToStr(st);if(/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(at)===!1)throw serializeError(at,TOKEN);return at}function serializeBareItem(st){switch(typeof st){case"number":if(!isFiniteNumber(st))throw serializeError(st,BARE_ITEM);return Number.isInteger(st)?serializeInteger(st):serializeDecimal(st);case"string":return serializeString(st);case"symbol":return serializeToken(st);case"boolean":return serializeBoolean(st);case"object":if(st instanceof Date)return serializeDate(st);if(st instanceof Uint8Array)return serializeByteSequence(st);if(st instanceof SfToken)return serializeToken(st);default:throw serializeError(st,BARE_ITEM)}}const KEY="Key";function serializeKey(st){if(/^[a-z*][a-z0-9\-_.*]*$/.test(st)===!1)throw serializeError(st,KEY);return st}function serializeParams(st){return st==null?"":Object.entries(st).map(([at,ut])=>ut===!0?`;${serializeKey(at)}`:`;${serializeKey(at)}=${serializeBareItem(ut)}`).join("")}function serializeItem(st){return st instanceof SfItem?`${serializeBareItem(st.value)}${serializeParams(st.params)}`:serializeBareItem(st)}function serializeInnerList(st){return`(${st.value.map(serializeItem).join(" ")})${serializeParams(st.params)}`}function serializeDict(st,at={whitespace:!0}){if(typeof st!="object")throw serializeError(st,DICT);const ut=st instanceof Map?st.entries():Object.entries(st),dt=at!=null&&at.whitespace?" ":"";return Array.from(ut).map(([ct,pt])=>{pt instanceof SfItem||(pt=new SfItem(pt));let ft=serializeKey(ct);return pt.value===!0?ft+=serializeParams(pt.params):(ft+="=",Array.isArray(pt.value)?ft+=serializeInnerList(pt):ft+=serializeItem(pt)),ft}).join(`,${dt}`)}function encodeSfDict(st,at){return serializeDict(st,at)}function isTokenField(st){return["ot","sf","st","e","sta"].includes(st)}function isValid(st){return typeof st=="number"?isFiniteNumber(st):st!=null&&st!==""&&st!==!1}function urlToRelativePath(st,at){const ut=new URL(st),dt=new URL(at);if(ut.origin!==dt.origin)return st;const ct=ut.pathname.split("/").slice(1),pt=dt.pathname.split("/").slice(1,-1);for(;ct[0]===pt[0];)ct.shift(),pt.shift();for(;pt.length;)pt.shift(),ct.unshift("..");return ct.join("/")}const toRounded=st=>Math.round(st),toUrlSafe=(st,at)=>(at!=null&&at.baseUrl&&(st=urlToRelativePath(st,at.baseUrl)),encodeURIComponent(st)),toHundred=st=>toRounded(st/100)*100,CmcdFormatters={br:toRounded,d:toRounded,bl:toHundred,dl:toHundred,mtp:toHundred,nor:toUrlSafe,rtp:toHundred,tb:toRounded};function processCmcd(st,at){const ut={};if(st==null||typeof st!="object")return ut;const dt=Object.keys(st).sort(),ct=_extends({},CmcdFormatters,at==null?void 0:at.formatters),pt=at==null?void 0:at.filter;return dt.forEach(ft=>{if((pt==null?void 0:pt(ft))===!1)return;let ht=st[ft];const mt=ct[ft];mt&&(ht=mt(ht,at)),!(ft==="v"&&ht===1)&&(ft=="pr"&&ht===1||isValid(ht)&&(isTokenField(ft)&&typeof ht=="string"&&(ht=new SfToken(ht)),ut[ft]=ht))}),ut}function encodeCmcd(st,at={}){return st?encodeSfDict(processCmcd(st,at),_extends({whitespace:!1},at)):""}function toCmcdHeaders(st,at={}){const ut={};if(!st)return ut;const dt=Object.entries(st),ct=Object.entries(CmcdHeaderMap).concat(Object.entries((at==null?void 0:at.customHeaderMap)||{})),pt=dt.reduce((ft,ht)=>{var mt,yt;const[bt,Tt]=ht,St=((mt=ct.find(At=>At[1].includes(bt)))===null||mt===void 0?void 0:mt[0])||CmcdHeaderField.REQUEST;return(yt=ft[St])!==null&&yt!==void 0||(ft[St]={}),ft[St][bt]=Tt,ft},{});return Object.entries(pt).reduce((ft,[ht,mt])=>(ft[ht]=encodeCmcd(mt,at),ft),ut)}function appendCmcdHeaders(st,at,ut){return _extends(st,toCmcdHeaders(at,ut))}const CMCD_PARAM="CMCD";function toCmcdQuery(st,at={}){if(!st)return"";const ut=encodeCmcd(st,at);return`${CMCD_PARAM}=${encodeURIComponent(ut)}`}const REGEX=/CMCD=[^&#]+/;function appendCmcdQuery(st,at,ut){const dt=toCmcdQuery(at,ut);if(!dt)return st;if(REGEX.test(st))return st.replace(REGEX,dt);const ct=st.includes("?")?"&":"?";return`${st}${ct}${dt}`}class CMCDController{constructor(at){this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.includeKeys=void 0,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=()=>{this.initialized&&(this.starved=!0),this.buffering=!0},this.onPlaying=()=>{this.initialized||(this.initialized=!0),this.buffering=!1},this.applyPlaylistData=ct=>{try{this.apply(ct,{ot:CmcdObjectType.MANIFEST,su:!this.initialized})}catch(pt){this.hls.logger.warn("Could not generate manifest CMCD data.",pt)}},this.applyFragmentData=ct=>{try{const{frag:pt,part:ft}=ct,ht=this.hls.levels[pt.level],mt=this.getObjectType(pt),yt={d:(ft||pt).duration*1e3,ot:mt};(mt===CmcdObjectType.VIDEO||mt===CmcdObjectType.AUDIO||mt==CmcdObjectType.MUXED)&&(yt.br=ht.bitrate/1e3,yt.tb=this.getTopBandwidth(mt)/1e3,yt.bl=this.getBufferLength(mt));const bt=ft?this.getNextPart(ft):this.getNextFrag(pt);bt!=null&&bt.url&&bt.url!==pt.url&&(yt.nor=bt.url),this.apply(ct,yt)}catch(pt){this.hls.logger.warn("Could not generate segment CMCD data.",pt)}},this.hls=at;const ut=this.config=at.config,{cmcd:dt}=ut;dt!=null&&(ut.pLoader=this.createPlaylistLoader(),ut.fLoader=this.createFragmentLoader(),this.sid=dt.sessionId||at.sessionId,this.cid=dt.contentId,this.useHeaders=dt.useHeaders===!0,this.includeKeys=dt.includeKeys,this.registerListeners())}registerListeners(){const at=this.hls;at.on(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.on(Events.MEDIA_DETACHED,this.onMediaDetached,this),at.on(Events.BUFFER_CREATED,this.onBufferCreated,this)}unregisterListeners(){const at=this.hls;at.off(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.off(Events.MEDIA_DETACHED,this.onMediaDetached,this),at.off(Events.BUFFER_CREATED,this.onBufferCreated,this)}destroy(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=this.media=null}onMediaAttached(at,ut){this.media=ut.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}onMediaDetached(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}onBufferCreated(at,ut){var dt,ct;this.audioBuffer=(dt=ut.tracks.audio)==null?void 0:dt.buffer,this.videoBuffer=(ct=ut.tracks.video)==null?void 0:ct.buffer}createData(){var at;return{v:1,sf:CmcdStreamingFormat.HLS,sid:this.sid,cid:this.cid,pr:(at=this.media)==null?void 0:at.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}}apply(at,ut={}){_extends(ut,this.createData());const dt=ut.ot===CmcdObjectType.INIT||ut.ot===CmcdObjectType.VIDEO||ut.ot===CmcdObjectType.MUXED;this.starved&&dt&&(ut.bs=!0,ut.su=!0,this.starved=!1),ut.su==null&&(ut.su=this.buffering);const{includeKeys:ct}=this;ct&&(ut=Object.keys(ut).reduce((ft,ht)=>(ct.includes(ht)&&(ft[ht]=ut[ht]),ft),{}));const pt={baseUrl:at.url};this.useHeaders?(at.headers||(at.headers={}),appendCmcdHeaders(at.headers,ut,pt)):at.url=appendCmcdQuery(at.url,ut,pt)}getNextFrag(at){var ut;const dt=(ut=this.hls.levels[at.level])==null?void 0:ut.details;if(dt){const ct=at.sn-dt.startSN;return dt.fragments[ct+1]}}getNextPart(at){var ut,dt;const{index:ct,fragment:pt}=at,ft=(ut=this.hls.levels[pt.level])==null||(dt=ut.details)==null?void 0:dt.partList;if(ft){const{sn:ht}=pt;for(let mt=ft.length-1;mt>=0;mt--){const yt=ft[mt];if(yt.index===ct&&yt.fragment.sn===ht)return ft[mt+1]}}}getObjectType(at){const{type:ut}=at;if(ut==="subtitle")return CmcdObjectType.TIMED_TEXT;if(at.sn==="initSegment")return CmcdObjectType.INIT;if(ut==="audio")return CmcdObjectType.AUDIO;if(ut==="main")return this.hls.audioTracks.length?CmcdObjectType.VIDEO:CmcdObjectType.MUXED}getTopBandwidth(at){let ut=0,dt;const ct=this.hls;if(at===CmcdObjectType.AUDIO)dt=ct.audioTracks;else{const pt=ct.maxAutoLevel,ft=pt>-1?pt+1:ct.levels.length;dt=ct.levels.slice(0,ft)}return dt.forEach(pt=>{pt.bitrate>ut&&(ut=pt.bitrate)}),ut>0?ut:NaN}getBufferLength(at){const ut=this.media,dt=at===CmcdObjectType.AUDIO?this.audioBuffer:this.videoBuffer;return!dt||!ut?NaN:BufferHelper.bufferInfo(dt,ut.currentTime,this.config.maxBufferHole).len*1e3}createPlaylistLoader(){const{pLoader:at}=this.config,ut=this.applyPlaylistData,dt=at||this.config.loader;return class{constructor(pt){this.loader=void 0,this.loader=new dt(pt)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(pt,ft,ht){ut(pt),this.loader.load(pt,ft,ht)}}}createFragmentLoader(){const{fLoader:at}=this.config,ut=this.applyFragmentData,dt=at||this.config.loader;return class{constructor(pt){this.loader=void 0,this.loader=new dt(pt)}get stats(){return this.loader.stats}get context(){return this.loader.context}destroy(){this.loader.destroy()}abort(){this.loader.abort()}load(pt,ft,ht){ut(pt),this.loader.load(pt,ft,ht)}}}}const PATHWAY_PENALTY_DURATION_MS=3e5;class ContentSteeringController extends Logger{constructor(at){super("content-steering",at.logger),this.hls=void 0,this.loader=null,this.uri=null,this.pathwayId=".",this._pathwayPriority=null,this.timeToLoad=300,this.reloadTimer=-1,this.updated=0,this.started=!1,this.enabled=!0,this.levels=null,this.audioTracks=null,this.subtitleTracks=null,this.penalizedPathways={},this.hls=at,this.registerListeners()}registerListeners(){const at=this.hls;at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.MANIFEST_LOADED,this.onManifestLoaded,this),at.on(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.on(Events.ERROR,this.onError,this)}unregisterListeners(){const at=this.hls;at&&(at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.MANIFEST_LOADED,this.onManifestLoaded,this),at.off(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.off(Events.ERROR,this.onError,this))}pathways(){return(this.levels||[]).reduce((at,ut)=>(at.indexOf(ut.pathwayId)===-1&&at.push(ut.pathwayId),at),[])}get pathwayPriority(){return this._pathwayPriority}set pathwayPriority(at){this.updatePathwayPriority(at)}startLoad(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){const at=this.timeToLoad*1e3-(performance.now()-this.updated);if(at>0){this.scheduleRefresh(this.uri,at);return}}this.loadSteeringManifest(this.uri)}}stopLoad(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}clearTimeout(){this.reloadTimer!==-1&&(self.clearTimeout(this.reloadTimer),this.reloadTimer=-1)}destroy(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}removeLevel(at){const ut=this.levels;ut&&(this.levels=ut.filter(dt=>dt!==at))}onManifestLoading(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}onManifestLoaded(at,ut){const{contentSteering:dt}=ut;dt!==null&&(this.pathwayId=dt.pathwayId,this.uri=dt.uri,this.started&&this.startLoad())}onManifestParsed(at,ut){this.audioTracks=ut.audioTracks,this.subtitleTracks=ut.subtitleTracks}onError(at,ut){const{errorAction:dt}=ut;if((dt==null?void 0:dt.action)===NetworkErrorAction.SendAlternateToPenaltyBox&&dt.flags===ErrorActionFlags.MoveAllAlternatesMatchingHost){const ct=this.levels;let pt=this._pathwayPriority,ft=this.pathwayId;if(ut.context){const{groupId:ht,pathwayId:mt,type:yt}=ut.context;ht&&ct?ft=this.getPathwayForGroupId(ht,yt,ft):mt&&(ft=mt)}ft in this.penalizedPathways||(this.penalizedPathways[ft]=performance.now()),!pt&&ct&&(pt=this.pathways()),pt&&pt.length>1&&(this.updatePathwayPriority(pt),dt.resolved=this.pathwayId!==ft),ut.details===ErrorDetails.BUFFER_APPEND_ERROR&&!ut.fatal?dt.resolved=!0:dt.resolved||this.warn(`Could not resolve ${ut.details} ("${ut.error.message}") with content-steering for Pathway: ${ft} levels: ${ct&&ct.length} priorities: ${stringify(pt)} penalized: ${stringify(this.penalizedPathways)}`)}}filterParsedLevels(at){this.levels=at;let ut=this.getLevelsForPathway(this.pathwayId);if(ut.length===0){const dt=at[0].pathwayId;this.log(`No levels found in Pathway ${this.pathwayId}. Setting initial Pathway to "${dt}"`),ut=this.getLevelsForPathway(dt),this.pathwayId=dt}return ut.length!==at.length&&this.log(`Found ${ut.length}/${at.length} levels in Pathway "${this.pathwayId}"`),ut}getLevelsForPathway(at){return this.levels===null?[]:this.levels.filter(ut=>at===ut.pathwayId)}updatePathwayPriority(at){this._pathwayPriority=at;let ut;const dt=this.penalizedPathways,ct=performance.now();Object.keys(dt).forEach(pt=>{ct-dt[pt]>PATHWAY_PENALTY_DURATION_MS&&delete dt[pt]});for(let pt=0;pt0){this.log(`Setting Pathway to "${ft}"`),this.pathwayId=ft,reassignFragmentLevelIndexes(ut),this.hls.trigger(Events.LEVELS_UPDATED,{levels:ut});const yt=this.hls.levels[ht];mt&&yt&&this.levels&&(yt.attrs["STABLE-VARIANT-ID"]!==mt.attrs["STABLE-VARIANT-ID"]&&yt.bitrate!==mt.bitrate&&this.log(`Unstable Pathways change from bitrate ${mt.bitrate} to ${yt.bitrate}`),this.hls.nextLoadLevel=ht);break}}}getPathwayForGroupId(at,ut,dt){const ct=this.getLevelsForPathway(dt).concat(this.levels||[]);for(let pt=0;pt{const{ID:ft,"BASE-ID":ht,"URI-REPLACEMENT":mt}=pt;if(ut.some(bt=>bt.pathwayId===ft))return;const yt=this.getLevelsForPathway(ht).map(bt=>{const Tt=new AttrList(bt.attrs);Tt["PATHWAY-ID"]=ft;const St=Tt.AUDIO&&`${Tt.AUDIO}_clone_${ft}`,At=Tt.SUBTITLES&&`${Tt.SUBTITLES}_clone_${ft}`;St&&(dt[Tt.AUDIO]=St,Tt.AUDIO=St),At&&(ct[Tt.SUBTITLES]=At,Tt.SUBTITLES=At);const vt=performUriReplacement(bt.uri,Tt["STABLE-VARIANT-ID"],"PER-VARIANT-URIS",mt),Dt=new Level({attrs:Tt,audioCodec:bt.audioCodec,bitrate:bt.bitrate,height:bt.height,name:bt.name,url:vt,videoCodec:bt.videoCodec,width:bt.width});if(bt.audioGroups)for(let Et=1;Et{this.log(`Loaded steering manifest: "${ct}"`);const vt=bt.data;if((vt==null?void 0:vt.VERSION)!==1){this.log(`Steering VERSION ${vt.VERSION} not supported!`);return}this.updated=performance.now(),this.timeToLoad=vt.TTL;const{"RELOAD-URI":Dt,"PATHWAY-CLONES":Et,"PATHWAY-PRIORITY":_t}=vt;if(Dt)try{this.uri=new self.URL(Dt,ct).href}catch{this.enabled=!1,this.log(`Failed to parse Steering Manifest RELOAD-URI: ${Dt}`);return}this.scheduleRefresh(this.uri||St.url),Et&&this.clonePathways(Et);const xt={steeringManifest:vt,url:ct.toString()};this.hls.trigger(Events.STEERING_MANIFEST_LOADED,xt),_t&&this.updatePathwayPriority(_t)},onError:(bt,Tt,St,At)=>{if(this.log(`Error loading steering manifest: ${bt.code} ${bt.text} (${Tt.url})`),this.stopLoad(),bt.code===410){this.enabled=!1,this.log(`Steering manifest ${Tt.url} no longer available`);return}let vt=this.timeToLoad*1e3;if(bt.code===429){const Dt=this.loader;if(typeof(Dt==null?void 0:Dt.getResponseHeader)=="function"){const Et=Dt.getResponseHeader("Retry-After");Et&&(vt=parseFloat(Et)*1e3)}this.log(`Steering manifest ${Tt.url} rate limited`);return}this.scheduleRefresh(this.uri||Tt.url,vt)},onTimeout:(bt,Tt,St)=>{this.log(`Timeout loading steering manifest (${Tt.url})`),this.scheduleRefresh(this.uri||Tt.url)}};this.log(`Requesting steering manifest: ${ct}`),this.loader.load(pt,mt,yt)}scheduleRefresh(at,ut=this.timeToLoad*1e3){this.clearTimeout(),this.reloadTimer=self.setTimeout(()=>{var dt;const ct=(dt=this.hls)==null?void 0:dt.media;if(ct&&!ct.ended){this.loadSteeringManifest(at);return}this.scheduleRefresh(at,this.timeToLoad*1e3)},ut)}}function cloneRenditionGroups(st,at,ut,dt){st&&Object.keys(at).forEach(ct=>{const pt=st.filter(ft=>ft.groupId===ct).map(ft=>{const ht=_extends({},ft);return ht.details=void 0,ht.attrs=new AttrList(ht.attrs),ht.url=ht.attrs.URI=performUriReplacement(ft.url,ft.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",ut),ht.groupId=ht.attrs["GROUP-ID"]=at[ct],ht.attrs["PATHWAY-ID"]=dt,ht});st.push(...pt)})}function performUriReplacement(st,at,ut,dt){const{HOST:ct,PARAMS:pt,[ut]:ft}=dt;let ht;at&&(ht=ft==null?void 0:ft[at],ht&&(st=ht));const mt=new self.URL(st);return ct&&!ht&&(mt.host=ct),pt&&Object.keys(pt).sort().forEach(yt=>{yt&&mt.searchParams.set(yt,pt[yt])}),mt.href}function addEventListener(st,at,ut){removeEventListener(st,at,ut),st.addEventListener(at,ut)}function removeEventListener(st,at,ut){st.removeEventListener(at,ut)}class EMEController extends Logger{constructor(at){super("eme",at.logger),this.hls=void 0,this.config=void 0,this.media=null,this.keyFormatPromise=null,this.keySystemAccessPromises={},this._requestLicenseFailureCount=0,this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},this.mediaKeys=null,this.setMediaKeysQueue=EMEController.CDMCleanupPromise?[EMEController.CDMCleanupPromise]:[],this.onWaitingForKey=ut=>{this.log(`"${ut.type}" event`)},this.hls=at,this.config=at.config,this.registerListeners()}destroy(){this.onDestroying(),this.onMediaDetached();const at=this.config;at.requestMediaKeySystemAccessFunc=null,at.licenseXhrSetup=at.licenseResponseCallback=void 0,at.drmSystems=at.drmSystemOptions={},this.hls=this.config=this.keyIdToKeySessionPromise=null,this.onWaitingForKey=null}registerListeners(){this.hls.on(Events.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.on(Events.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.on(Events.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.on(Events.DESTROYING,this.onDestroying,this)}unregisterListeners(){this.hls.off(Events.MEDIA_ATTACHED,this.onMediaAttached,this),this.hls.off(Events.MEDIA_DETACHED,this.onMediaDetached,this),this.hls.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),this.hls.off(Events.MANIFEST_LOADED,this.onManifestLoaded,this),this.hls.off(Events.DESTROYING,this.onDestroying,this)}getLicenseServerUrl(at){const{drmSystems:ut,widevineLicenseUrl:dt}=this.config,ct=ut[at];if(ct)return ct.licenseUrl;if(at===KeySystems.WIDEVINE&&dt)return dt}getLicenseServerUrlOrThrow(at){const ut=this.getLicenseServerUrl(at);if(ut===void 0)throw new Error(`no license server URL configured for key-system "${at}"`);return ut}getServerCertificateUrl(at){const{drmSystems:ut}=this.config,dt=ut[at];if(dt)return dt.serverCertificateUrl;this.log(`No Server Certificate in config.drmSystems["${at}"]`)}attemptKeySystemAccess(at){const ut=this.hls.levels,dt=(ft,ht,mt)=>!!ft&&mt.indexOf(ft)===ht,ct=ut.map(ft=>ft.audioCodec).filter(dt),pt=ut.map(ft=>ft.videoCodec).filter(dt);return ct.length+pt.length===0&&pt.push("avc1.42e01e"),new Promise((ft,ht)=>{const mt=yt=>{const bt=yt.shift();this.getMediaKeysPromise(bt,ct,pt).then(Tt=>ft({keySystem:bt,mediaKeys:Tt})).catch(Tt=>{yt.length?mt(yt):Tt instanceof EMEKeyError?ht(Tt):ht(new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_NO_ACCESS,error:Tt,fatal:!0},Tt.message))})};mt(at)})}requestMediaKeySystemAccess(at,ut){const{requestMediaKeySystemAccessFunc:dt}=this.config;if(typeof dt!="function"){let ct=`Configured requestMediaKeySystemAccess is not a function ${dt}`;return requestMediaKeySystemAccess===null&&self.location.protocol==="http:"&&(ct=`navigator.requestMediaKeySystemAccess is not available over insecure protocol ${location.protocol}`),Promise.reject(new Error(ct))}return dt(at,ut)}getMediaKeysPromise(at,ut,dt){const ct=getSupportedMediaKeySystemConfigurations(at,ut,dt,this.config.drmSystemOptions),pt=this.keySystemAccessPromises[at];let ft=pt==null?void 0:pt.keySystemAccess;if(!ft){this.log(`Requesting encrypted media "${at}" key-system access with config: ${stringify(ct)}`),ft=this.requestMediaKeySystemAccess(at,ct);const ht=this.keySystemAccessPromises[at]={keySystemAccess:ft};return ft.catch(mt=>{this.log(`Failed to obtain access to key-system "${at}": ${mt}`)}),ft.then(mt=>{this.log(`Access for key-system "${mt.keySystem}" obtained`);const yt=this.fetchServerCertificate(at);return this.log(`Create media-keys for "${at}"`),ht.mediaKeys=mt.createMediaKeys().then(bt=>(this.log(`Media-keys created for "${at}"`),ht.hasMediaKeys=!0,yt.then(Tt=>Tt?this.setMediaKeysServerCertificate(bt,at,Tt):bt))),ht.mediaKeys.catch(bt=>{this.error(`Failed to create media-keys for "${at}"}: ${bt}`)}),ht.mediaKeys})}return ft.then(()=>pt.mediaKeys)}createMediaKeySessionContext({decryptdata:at,keySystem:ut,mediaKeys:dt}){this.log(`Creating key-system session "${ut}" keyId: ${Hex.hexDump(at.keyId||[])}`);const ct=dt.createSession(),pt={decryptdata:at,keySystem:ut,mediaKeys:dt,mediaKeysSession:ct,keyStatus:"status-pending"};return this.mediaKeySessions.push(pt),pt}renewKeySession(at){const ut=at.decryptdata;if(ut.pssh){const dt=this.createMediaKeySessionContext(at),ct=this.getKeyIdString(ut),pt="cenc";this.keyIdToKeySessionPromise[ct]=this.generateRequestWithPreferredKeySession(dt,pt,ut.pssh.buffer,"expired")}else this.warn("Could not renew expired session. Missing pssh initData.");this.removeSession(at)}getKeyIdString(at){if(!at)throw new Error("Could not read keyId of undefined decryptdata");if(at.keyId===null)throw new Error("keyId is null");return Hex.hexDump(at.keyId)}updateKeySession(at,ut){var dt;const ct=at.mediaKeysSession;return this.log(`Updating key-session "${ct.sessionId}" for keyID ${Hex.hexDump(((dt=at.decryptdata)==null?void 0:dt.keyId)||[])} } (data length: ${ut&&ut.byteLength})`),ct.update(ut)}getSelectedKeySystemFormats(){return Object.keys(this.keySystemAccessPromises).map(at=>({keySystem:at,hasMediaKeys:this.keySystemAccessPromises[at].hasMediaKeys})).filter(({hasMediaKeys:at})=>!!at).map(({keySystem:at})=>keySystemDomainToKeySystemFormat(at)).filter(at=>!!at)}getKeySystemAccess(at){return this.getKeySystemSelectionPromise(at).then(({keySystem:ut,mediaKeys:dt})=>this.attemptSetMediaKeys(ut,dt))}selectKeySystem(at){return new Promise((ut,dt)=>this.getKeySystemSelectionPromise(at).then(({keySystem:ct})=>{const pt=keySystemDomainToKeySystemFormat(ct);pt?ut(pt):dt(new Error(`Unable to find format for key-system "${ct}"`))}).catch(dt))}selectKeySystemFormat(at){const ut=Object.keys(at.levelkeys||{});return this.keyFormatPromise||(this.log(`Selecting key-system from fragment (sn: ${at.sn} ${at.type}: ${at.level}) key formats ${ut.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(ut)),this.keyFormatPromise}getKeyFormatPromise(at){const ut=getKeySystemsForConfig(this.config),dt=at.map(keySystemFormatToKeySystemDomain).filter(ct=>!!ct&&ut.indexOf(ct)!==-1);return this.selectKeySystem(dt)}loadKey(at){const ut=at.keyInfo.decryptdata,dt=this.getKeyIdString(ut),ct=`(keyId: ${dt} format: "${ut.keyFormat}" method: ${ut.method} uri: ${ut.uri})`;this.log(`Starting session for key ${ct}`);let pt=this.keyIdToKeySessionPromise[dt];return pt||(pt=this.getKeySystemForKeyPromise(ut).then(({keySystem:ht,mediaKeys:mt})=>(this.throwIfDestroyed(),this.log(`Handle encrypted media sn: ${at.frag.sn} ${at.frag.type}: ${at.frag.level} using key ${ct}`),this.attemptSetMediaKeys(ht,mt).then(()=>(this.throwIfDestroyed(),this.createMediaKeySessionContext({keySystem:ht,mediaKeys:mt,decryptdata:ut}))))),(this.keyIdToKeySessionPromise[dt]=pt.then(ht=>{const mt="cenc",yt=ut.pssh?ut.pssh.buffer:null;return this.generateRequestWithPreferredKeySession(ht,mt,yt,"playlist-key")})).catch(ht=>this.handleError(ht))),pt}throwIfDestroyed(at="Invalid state"){if(!this.hls)throw new Error("invalid state")}handleError(at){this.hls&&(this.error(at.message),at instanceof EMEKeyError?this.hls.trigger(Events.ERROR,at.data):this.hls.trigger(Events.ERROR,{type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_NO_KEYS,error:at,fatal:!0}))}getKeySystemForKeyPromise(at){const ut=this.getKeyIdString(at),dt=this.keyIdToKeySessionPromise[ut];if(!dt){const ct=keySystemFormatToKeySystemDomain(at.keyFormat),pt=ct?[ct]:getKeySystemsForConfig(this.config);return this.attemptKeySystemAccess(pt)}return dt}getKeySystemSelectionPromise(at){if(at.length||(at=getKeySystemsForConfig(this.config)),at.length===0)throw new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_NO_CONFIGURED_LICENSE,fatal:!0},`Missing key-system license configuration options ${stringify({drmSystems:this.config.drmSystems})}`);return this.attemptKeySystemAccess(at)}attemptSetMediaKeys(at,ut){if(this.mediaKeys===ut)return Promise.resolve();const dt=this.setMediaKeysQueue.slice();this.log(`Setting media-keys for "${at}"`);const ct=Promise.all(dt).then(()=>{if(!this.media)throw this.mediaKeys=null,new Error("Attempted to set mediaKeys without media element attached");return this.media.setMediaKeys(ut)});return this.mediaKeys=ut,this.setMediaKeysQueue.push(ct),ct.then(()=>{this.log(`Media-keys set for "${at}"`),dt.push(ct),this.setMediaKeysQueue=this.setMediaKeysQueue.filter(pt=>dt.indexOf(pt)===-1)})}generateRequestWithPreferredKeySession(at,ut,dt,ct){var pt,ft;const ht=(pt=this.config.drmSystems)==null||(ft=pt[at.keySystem])==null?void 0:ft.generateRequest;if(ht)try{const vt=ht.call(this.hls,ut,dt,at);if(!vt)throw new Error("Invalid response from configured generateRequest filter");ut=vt.initDataType,dt=vt.initData?vt.initData:null,at.decryptdata.pssh=dt?new Uint8Array(dt):null}catch(vt){var mt;if(this.warn(vt.message),(mt=this.hls)!=null&&mt.config.debug)throw vt}if(dt===null)return this.log(`Skipping key-session request for "${ct}" (no initData)`),Promise.resolve(at);const yt=this.getKeyIdString(at.decryptdata);this.log(`Generating key-session request for "${ct}": ${yt} (init data type: ${ut} length: ${dt?dt.byteLength:null})`);const bt=new EventEmitter,Tt=at._onmessage=vt=>{const Dt=at.mediaKeysSession;if(!Dt){bt.emit("error",new Error("invalid state"));return}const{messageType:Et,message:_t}=vt;this.log(`"${Et}" message event for session "${Dt.sessionId}" message size: ${_t.byteLength}`),Et==="license-request"||Et==="license-renewal"?this.renewLicense(at,_t).catch(xt=>{bt.eventNames().length?bt.emit("error",xt):this.handleError(xt)}):Et==="license-release"?at.keySystem===KeySystems.FAIRPLAY&&(this.updateKeySession(at,strToUtf8array("acknowledged")),this.removeSession(at)):this.warn(`unhandled media key message type "${Et}"`)},St=at._onkeystatuseschange=vt=>{if(!at.mediaKeysSession){bt.emit("error",new Error("invalid state"));return}this.onKeyStatusChange(at);const Et=at.keyStatus;bt.emit("keyStatus",Et),Et==="expired"&&(this.warn(`${at.keySystem} expired for key ${yt}`),this.renewKeySession(at))};addEventListener(at.mediaKeysSession,"message",Tt),addEventListener(at.mediaKeysSession,"keystatuseschange",St);const At=new Promise((vt,Dt)=>{bt.on("error",Dt),bt.on("keyStatus",Et=>{Et.startsWith("usable")?vt():Et==="output-restricted"?Dt(new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,fatal:!1},"HDCP level output restricted")):Et==="internal-error"?Dt(new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_STATUS_INTERNAL_ERROR,fatal:!0},`key status changed to "${Et}"`)):Et==="expired"?Dt(new Error("key expired while generating request")):this.warn(`unhandled key status change "${Et}"`)})});return at.mediaKeysSession.generateRequest(ut,dt).then(()=>{var vt;this.log(`Request generated for key-session "${(vt=at.mediaKeysSession)==null?void 0:vt.sessionId}" keyId: ${yt}`)}).catch(vt=>{throw new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_NO_SESSION,error:vt,fatal:!1},`Error generating key-session request: ${vt}`)}).then(()=>At).catch(vt=>{throw bt.removeAllListeners(),this.removeSession(at),vt}).then(()=>(bt.removeAllListeners(),at))}onKeyStatusChange(at){at.mediaKeysSession.keyStatuses.forEach((ut,dt)=>{if(typeof dt=="string"&&typeof ut=="object"){const ct=dt;dt=ut,ut=ct}this.log(`key status change "${ut}" for keyStatuses keyId: ${Hex.hexDump("buffer"in dt?new Uint8Array(dt.buffer,dt.byteOffset,dt.byteLength):new Uint8Array(dt))} session keyId: ${Hex.hexDump(new Uint8Array(at.decryptdata.keyId||[]))} uri: ${at.decryptdata.uri}`),at.keyStatus=ut})}fetchServerCertificate(at){const ut=this.config,dt=ut.loader,ct=new dt(ut),pt=this.getServerCertificateUrl(at);return pt?(this.log(`Fetching server certificate for "${at}"`),new Promise((ft,ht)=>{const mt={responseType:"arraybuffer",url:pt},yt=ut.certLoadPolicy.default,bt={loadPolicy:yt,timeout:yt.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},Tt={onSuccess:(St,At,vt,Dt)=>{ft(St.data)},onError:(St,At,vt,Dt)=>{ht(new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:vt,response:_objectSpread2({url:mt.url,data:void 0},St)},`"${at}" certificate request failed (${pt}). Status: ${St.code} (${St.text})`))},onTimeout:(St,At,vt)=>{ht(new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,fatal:!0,networkDetails:vt,response:{url:mt.url,data:void 0}},`"${at}" certificate request timed out (${pt})`))},onAbort:(St,At,vt)=>{ht(new Error("aborted"))}};ct.load(mt,bt,Tt)})):Promise.resolve()}setMediaKeysServerCertificate(at,ut,dt){return new Promise((ct,pt)=>{at.setServerCertificate(dt).then(ft=>{this.log(`setServerCertificate ${ft?"success":"not supported by CDM"} (${dt==null?void 0:dt.byteLength}) on "${ut}"`),ct(at)}).catch(ft=>{pt(new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,error:ft,fatal:!0},ft.message))})})}renewLicense(at,ut){return this.requestLicense(at,new Uint8Array(ut)).then(dt=>this.updateKeySession(at,new Uint8Array(dt)).catch(ct=>{throw new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_SESSION_UPDATE_FAILED,error:ct,fatal:!0},ct.message)}))}unpackPlayReadyKeyMessage(at,ut){const dt=String.fromCharCode.apply(null,new Uint16Array(ut.buffer));if(!dt.includes("PlayReadyKeyMessage"))return at.setRequestHeader("Content-Type","text/xml; charset=utf-8"),ut;const ct=new DOMParser().parseFromString(dt,"application/xml"),pt=ct.querySelectorAll("HttpHeader");if(pt.length>0){let bt;for(let Tt=0,St=pt.length;Tt in key message");return strToUtf8array(atob(yt))}setupLicenseXHR(at,ut,dt,ct){const pt=this.config.licenseXhrSetup;return pt?Promise.resolve().then(()=>{if(!dt.decryptdata)throw new Error("Key removed");return pt.call(this.hls,at,ut,dt,ct)}).catch(ft=>{if(!dt.decryptdata)throw ft;return at.open("POST",ut,!0),pt.call(this.hls,at,ut,dt,ct)}).then(ft=>(at.readyState||at.open("POST",ut,!0),{xhr:at,licenseChallenge:ft||ct})):(at.open("POST",ut,!0),Promise.resolve({xhr:at,licenseChallenge:ct}))}requestLicense(at,ut){const dt=this.config.keyLoadPolicy.default;return new Promise((ct,pt)=>{const ft=this.getLicenseServerUrlOrThrow(at.keySystem);this.log(`Sending license request to URL: ${ft}`);const ht=new XMLHttpRequest;ht.responseType="arraybuffer",ht.onreadystatechange=()=>{if(!this.hls||!at.mediaKeysSession)return pt(new Error("invalid state"));if(ht.readyState===4)if(ht.status===200){this._requestLicenseFailureCount=0;let mt=ht.response;this.log(`License received ${mt instanceof ArrayBuffer?mt.byteLength:mt}`);const yt=this.config.licenseResponseCallback;if(yt)try{mt=yt.call(this.hls,ht,ft,at)}catch(bt){this.error(bt)}ct(mt)}else{const mt=dt.errorRetry,yt=mt?mt.maxNumRetry:0;if(this._requestLicenseFailureCount++,this._requestLicenseFailureCount>yt||ht.status>=400&&ht.status<500)pt(new EMEKeyError({type:ErrorTypes.KEY_SYSTEM_ERROR,details:ErrorDetails.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:ht,response:{url:ft,data:void 0,code:ht.status,text:ht.statusText}},`License Request XHR failed (${ft}). Status: ${ht.status} (${ht.statusText})`));else{const bt=yt-this._requestLicenseFailureCount+1;this.warn(`Retrying license request, ${bt} attempts left`),this.requestLicense(at,ut).then(ct,pt)}}},at.licenseXhr&&at.licenseXhr.readyState!==XMLHttpRequest.DONE&&at.licenseXhr.abort(),at.licenseXhr=ht,this.setupLicenseXHR(ht,ft,at,ut).then(({xhr:mt,licenseChallenge:yt})=>{at.keySystem==KeySystems.PLAYREADY&&(yt=this.unpackPlayReadyKeyMessage(mt,yt)),mt.send(yt)})})}onDestroying(){this.unregisterListeners(),this._clear()}onMediaAttached(at,ut){if(!this.config.emeEnabled)return;const dt=ut.media;this.media=dt,addEventListener(dt,"waitingforkey",this.onWaitingForKey)}onMediaDetached(){const at=this.media;at&&(removeEventListener(at,"waitingforkey",this.onWaitingForKey),this.media=null,this.mediaKeys=null)}_clear(){var at;if(this._requestLicenseFailureCount=0,this.keyIdToKeySessionPromise={},!this.mediaKeys&&!this.mediaKeySessions.length)return;const ut=this.media,dt=this.mediaKeySessions.slice();this.mediaKeySessions=[],this.mediaKeys=null,LevelKey.clearKeyUriToKeyIdMap();const ct=dt.length;EMEController.CDMCleanupPromise=Promise.all(dt.map(pt=>this.removeSession(pt)).concat(ut==null||(at=ut.setMediaKeys(null))==null?void 0:at.catch(pt=>{var ft;this.log(`Could not clear media keys: ${pt}`),(ft=this.hls)==null||ft.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,fatal:!1,error:new Error(`Could not clear media keys: ${pt}`)})}))).catch(pt=>{var ft;this.log(`Could not close sessions and clear media keys: ${pt}`),(ft=this.hls)==null||ft.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error(`Could not close sessions and clear media keys: ${pt}`)})}).then(()=>{ct&&this.log("finished closing key sessions and clearing media keys")})}onManifestLoading(){this.keyFormatPromise=null}onManifestLoaded(at,{sessionKeys:ut}){if(!(!ut||!this.config.emeEnabled)&&!this.keyFormatPromise){const dt=ut.reduce((ct,pt)=>(ct.indexOf(pt.keyFormat)===-1&&ct.push(pt.keyFormat),ct),[]);this.log(`Selecting key-system from session-keys ${dt.join(", ")}`),this.keyFormatPromise=this.getKeyFormatPromise(dt)}}removeSession(at){const{mediaKeysSession:ut,licenseXhr:dt}=at;if(ut){this.log(`Remove licenses and keys and close session ${ut.sessionId}`),at._onmessage&&(ut.removeEventListener("message",at._onmessage),at._onmessage=void 0),at._onkeystatuseschange&&(ut.removeEventListener("keystatuseschange",at._onkeystatuseschange),at._onkeystatuseschange=void 0),dt&&dt.readyState!==XMLHttpRequest.DONE&&dt.abort(),at.mediaKeysSession=at.decryptdata=at.licenseXhr=void 0;const ct=this.mediaKeySessions.indexOf(at);ct>-1&&this.mediaKeySessions.splice(ct,1);const{drmSystemOptions:pt}=this.config;return(isPersistentSessionType(pt)?new Promise((ht,mt)=>{self.setTimeout(()=>mt(new Error("MediaKeySession.remove() timeout")),8e3),ut.remove().then(ht)}):Promise.resolve()).catch(ht=>{var mt;this.log(`Could not remove session: ${ht}`),(mt=this.hls)==null||mt.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,fatal:!1,error:new Error(`Could not remove session: ${ht}`)})}).then(()=>ut.close()).catch(ht=>{var mt;this.log(`Could not close session: ${ht}`),(mt=this.hls)==null||mt.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error(`Could not close session: ${ht}`)})})}}}EMEController.CDMCleanupPromise=void 0;class EMEKeyError extends Error{constructor(at,ut){super(ut),this.data=void 0,at.error||(at.error=new Error(ut)),this.data=at,at.err=at.error}}class FPSController{constructor(at){this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=at,this.registerListeners()}setStreamController(at){this.streamController=at}registerListeners(){this.hls.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this)}unregisterListeners(){this.hls.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this)}destroy(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}onMediaAttaching(at,ut){const dt=this.hls.config;if(dt.capLevelOnFPSDrop){const ct=ut.media instanceof self.HTMLVideoElement?ut.media:null;this.media=ct,ct&&typeof ct.getVideoPlaybackQuality=="function"&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),dt.fpsDroppedMonitoringPeriod)}}onMediaDetaching(){this.media=null}checkFPS(at,ut,dt){const ct=performance.now();if(ut){if(this.lastTime){const pt=ct-this.lastTime,ft=dt-this.lastDroppedFrames,ht=ut-this.lastDecodedFrames,mt=1e3*ft/pt,yt=this.hls;if(yt.trigger(Events.FPS_DROP,{currentDropped:ft,currentDecoded:ht,totalDroppedFrames:dt}),mt>0&&ft>yt.config.fpsDroppedMonitoringThreshold*ht){let bt=yt.currentLevel;yt.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+bt),bt>0&&(yt.autoLevelCapping===-1||yt.autoLevelCapping>=bt)&&(bt=bt-1,yt.trigger(Events.FPS_DROP_LEVEL_CAPPING,{level:bt,droppedLevel:yt.currentLevel}),yt.autoLevelCapping=bt,this.streamController.nextLevelSwitch())}}this.lastTime=ct,this.lastDroppedFrames=dt,this.lastDecodedFrames=ut}}checkFPSInterval(){const at=this.media;if(at)if(this.isVideoPlaybackQualityAvailable){const ut=at.getVideoPlaybackQuality();this.checkFPS(at,ut.totalVideoFrames,ut.droppedVideoFrames)}else this.checkFPS(at,at.webkitDecodedFrameCount,at.webkitDroppedFrameCount)}}function sendAddTrackEvent(st,at){let ut;try{ut=new Event("addtrack")}catch{ut=document.createEvent("Event"),ut.initEvent("addtrack",!1,!1)}ut.track=st,at.dispatchEvent(ut)}function addCueToTrack(st,at){const ut=st.mode;if(ut==="disabled"&&(st.mode="hidden"),st.cues&&!st.cues.getCueById(at.id))try{if(st.addCue(at),!st.cues.getCueById(at.id))throw new Error(`addCue is failed for: ${at}`)}catch(dt){logger.debug(`[texttrack-utils]: ${dt}`);try{const ct=new self.TextTrackCue(at.startTime,at.endTime,at.text);ct.id=at.id,st.addCue(ct)}catch(ct){logger.debug(`[texttrack-utils]: Legacy TextTrackCue fallback failed: ${ct}`)}}ut==="disabled"&&(st.mode=ut)}function clearCurrentCues(st,at){const ut=st.mode;if(ut==="disabled"&&(st.mode="hidden"),st.cues)for(let dt=st.cues.length;dt--;)at&&st.cues[dt].removeEventListener("enter",at),st.removeCue(st.cues[dt]);ut==="disabled"&&(st.mode=ut)}function removeCuesInRange(st,at,ut,dt){const ct=st.mode;if(ct==="disabled"&&(st.mode="hidden"),st.cues&&st.cues.length>0){const pt=getCuesInRange(st.cues,at,ut);for(let ft=0;ftst[ut].endTime)return-1;let dt=0,ct=ut,pt;for(;dt<=ct;)if(pt=Math.floor((ct+dt)/2),atst[pt].startTime&&dt-1)for(let pt=ct,ft=st.length;pt=at&&ht.endTime<=ut)dt.push(ht);else if(ht.startTime>ut)return dt}return dt}function filterSubtitleTracks(st){const at=[];for(let ut=0;utthis.pollTrackChange(0),this.onTextTracksChanged=()=>{if(this.useTextTrackPolling||self.clearInterval(this.subtitlePollingInterval),!this.media||!this.hls.config.renderTextTracksNatively)return;let ut=null;const dt=filterSubtitleTracks(this.media.textTracks);for(let pt=0;pt-1&&this.toggleTrackModes()}registerListeners(){const{hls:at}=this;at.on(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.on(Events.LEVEL_LOADING,this.onLevelLoading,this),at.on(Events.LEVEL_SWITCHING,this.onLevelSwitching,this),at.on(Events.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),at.on(Events.ERROR,this.onError,this)}unregisterListeners(){const{hls:at}=this;at.off(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.off(Events.LEVEL_LOADING,this.onLevelLoading,this),at.off(Events.LEVEL_SWITCHING,this.onLevelSwitching,this),at.off(Events.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),at.off(Events.ERROR,this.onError,this)}onMediaAttached(at,ut){this.media=ut.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&"onchange"in this.media.textTracks),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))}pollTrackChange(at){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,at)}onMediaDetaching(at,ut){const dt=this.media;if(!dt)return;const ct=!!ut.transferMedia;if(self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||dt.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),this.subtitleTrack=-1,this.media=null,ct)return;filterSubtitleTracks(dt.textTracks).forEach(ft=>{clearCurrentCues(ft)})}onManifestLoading(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}onManifestParsed(at,ut){this.tracks=ut.subtitleTracks}onSubtitleTrackLoaded(at,ut){const{id:dt,groupId:ct,details:pt}=ut,ft=this.tracksInGroup[dt];if(!ft||ft.groupId!==ct){this.warn(`Subtitle track with id:${dt} and group:${ct} not found in active group ${ft==null?void 0:ft.groupId}`);return}const ht=ft.details;ft.details=ut.details,this.log(`Subtitle track ${dt} "${ft.name}" lang:${ft.lang} group:${ct} loaded [${pt.startSN}-${pt.endSN}]`),dt===this.trackId&&this.playlistLoaded(dt,ut,ht)}onLevelLoading(at,ut){this.switchLevel(ut.level)}onLevelSwitching(at,ut){this.switchLevel(ut.level)}switchLevel(at){const ut=this.hls.levels[at];if(!ut)return;const dt=ut.subtitleGroups||null,ct=this.groupIds;let pt=this.currentTrack;if(!dt||(ct==null?void 0:ct.length)!==(dt==null?void 0:dt.length)||dt!=null&&dt.some(ft=>(ct==null?void 0:ct.indexOf(ft))===-1)){this.groupIds=dt,this.trackId=-1,this.currentTrack=null;const ft=this.tracks.filter(bt=>!dt||dt.indexOf(bt.groupId)!==-1);if(ft.length)this.selectDefaultTrack&&!ft.some(bt=>bt.default)&&(this.selectDefaultTrack=!1),ft.forEach((bt,Tt)=>{bt.id=Tt});else if(!pt&&!this.tracksInGroup.length)return;this.tracksInGroup=ft;const ht=this.hls.config.subtitlePreference;if(!pt&&ht){this.selectDefaultTrack=!1;const bt=findMatchingOption(ht,ft);if(bt>-1)pt=ft[bt];else{const Tt=findMatchingOption(ht,this.tracks);pt=this.tracks[Tt]}}let mt=this.findTrackId(pt);mt===-1&&pt&&(mt=this.findTrackId(null));const yt={subtitleTracks:ft};this.log(`Updating subtitle tracks, ${ft.length} track(s) found in "${dt==null?void 0:dt.join(",")}" group-id`),this.hls.trigger(Events.SUBTITLE_TRACKS_UPDATED,yt),mt!==-1&&this.trackId===-1&&this.setSubtitleTrack(mt)}}findTrackId(at){const ut=this.tracksInGroup,dt=this.selectDefaultTrack;for(let ct=0;ct-1){const pt=this.tracksInGroup[ct];return this.setSubtitleTrack(ct),pt}else{if(dt)return null;{const pt=findMatchingOption(at,ut);if(pt>-1)return ut[pt]}}}}return null}loadPlaylist(at){super.loadPlaylist(),this.shouldLoadPlaylist(this.currentTrack)&&this.scheduleLoading(this.currentTrack,at)}loadingPlaylist(at,ut){super.loadingPlaylist(at,ut);const dt=at.id,ct=at.groupId,pt=this.getUrlWithDirectives(at.url,ut),ft=at.details,ht=ft==null?void 0:ft.age;this.log(`Loading subtitle ${dt} "${at.name}" lang:${at.lang} group:${ct}${(ut==null?void 0:ut.msn)!==void 0?" at sn "+ut.msn+" part "+ut.part:""}${ht&&ft.live?" age "+ht.toFixed(1)+(ft.type&&" "+ft.type||""):""} ${pt}`),this.hls.trigger(Events.SUBTITLE_TRACK_LOADING,{url:pt,id:dt,groupId:ct,deliveryDirectives:ut||null,track:at})}toggleTrackModes(){const{media:at}=this;if(!at)return;const ut=filterSubtitleTracks(at.textTracks),dt=this.currentTrack;let ct;if(dt&&(ct=ut.filter(pt=>subtitleTrackMatchesTextTrack(dt,pt))[0],ct||this.warn(`Unable to find subtitle TextTrack with name "${dt.name}" and language "${dt.lang}"`)),[].slice.call(ut).forEach(pt=>{pt.mode!=="disabled"&&pt!==ct&&(pt.mode="disabled")}),ct){const pt=this.subtitleDisplay?"showing":"hidden";ct.mode!==pt&&(ct.mode=pt)}}setSubtitleTrack(at){const ut=this.tracksInGroup;if(!this.media){this.queuedDefaultTrack=at;return}if(at<-1||at>=ut.length||!isFiniteNumber(at)){this.warn(`Invalid subtitle track id: ${at}`);return}this.selectDefaultTrack=!1;const dt=this.currentTrack,ct=ut[at]||null;if(this.trackId=at,this.currentTrack=ct,this.toggleTrackModes(),!ct){this.hls.trigger(Events.SUBTITLE_TRACK_SWITCH,{id:at});return}const pt=!!ct.details&&!ct.details.live;if(at===this.trackId&&ct===dt&&pt)return;this.log(`Switching to subtitle-track ${at}`+(ct?` "${ct.name}" lang:${ct.lang} group:${ct.groupId}`:""));const{id:ft,groupId:ht="",name:mt,type:yt,url:bt}=ct;this.hls.trigger(Events.SUBTITLE_TRACK_SWITCH,{id:ft,groupId:ht,name:mt,type:yt,url:bt});const Tt=this.switchParams(ct.url,dt==null?void 0:dt.details,ct.details);this.loadPlaylist(Tt)}}function uuid(){try{return crypto.randomUUID()}catch{try{const at=URL.createObjectURL(new Blob),ut=at.toString();return URL.revokeObjectURL(at),ut.slice(ut.lastIndexOf("/")+1)}catch{let ut=new Date().getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,ct=>{const pt=(ut+Math.random()*16)%16|0;return ut=Math.floor(ut/16),(ct=="x"?pt:pt&3|8).toString(16)})}}}function hash(st){let at=5381,ut=st.length;for(;ut;)at=at*33^st.charCodeAt(--ut);return(at>>>0).toString()}const ALIGNED_END_THRESHOLD_SECONDS=.025;let TimelineOccupancy=function(st){return st[st.Point=0]="Point",st[st.Range=1]="Range",st}({});function generateAssetIdentifier(st,at,ut){return`${st.identifier}-${ut+1}-${hash(at)}`}class InterstitialEvent{constructor(at,ut){this.base=void 0,this._duration=null,this._timelineStart=null,this.appendInPlaceDisabled=void 0,this.appendInPlaceStarted=void 0,this.dateRange=void 0,this.hasPlayed=!1,this.cumulativeDuration=0,this.resumeOffset=NaN,this.playoutLimit=NaN,this.restrictions={skip:!1,jump:!1},this.snapOptions={out:!1,in:!1},this.assetList=[],this.assetListLoader=void 0,this.assetListResponse=null,this.resumeAnchor=void 0,this.error=void 0,this.resetOnResume=void 0,this.base=ut,this.dateRange=at,this.setDateRange(at)}setDateRange(at){this.dateRange=at,this.resumeOffset=at.attr.optionalFloat("X-RESUME-OFFSET",this.resumeOffset),this.playoutLimit=at.attr.optionalFloat("X-PLAYOUT-LIMIT",this.playoutLimit),this.restrictions=at.attr.enumeratedStringList("X-RESTRICT",this.restrictions),this.snapOptions=at.attr.enumeratedStringList("X-SNAP",this.snapOptions)}reset(){var at;this.appendInPlaceStarted=!1,(at=this.assetListLoader)==null||at.destroy(),this.assetListLoader=void 0,this.supplementsPrimary||(this.assetListResponse=null,this.assetList=[],this._duration=null)}isAssetPastPlayoutLimit(at){var ut;if(at>0&&at>=this.assetList.length)return!0;const dt=this.playoutLimit;return at<=0||isNaN(dt)?!1:dt===0?!0:(((ut=this.assetList[at])==null?void 0:ut.startOffset)||0)>dt}findAssetIndex(at){return this.assetList.indexOf(at)}get identifier(){return this.dateRange.id}get startDate(){return this.dateRange.startDate}get startTime(){const at=this.dateRange.startTime;if(this.snapOptions.out){const ut=this.dateRange.tagAnchor;if(ut)return getSnapToFragmentTime(at,ut)}return at}get startOffset(){return this.cue.pre?0:this.startTime}get startIsAligned(){if(this.startTime===0||this.snapOptions.out)return!0;const at=this.dateRange.tagAnchor;if(at){const ut=this.dateRange.startTime,dt=getSnapToFragmentTime(ut,at);return ut-dt<.1}return!1}get resumptionOffset(){const at=this.resumeOffset,ut=isFiniteNumber(at)?at:this.duration;return this.cumulativeDuration+ut}get resumeTime(){const at=this.startOffset+this.resumptionOffset;if(this.snapOptions.in){const ut=this.resumeAnchor;if(ut)return getSnapToFragmentTime(at,ut)}return at}get appendInPlace(){return this.appendInPlaceStarted?!0:this.appendInPlaceDisabled?!1:!!(!this.cue.once&&!this.cue.pre&&this.startIsAligned&&(isNaN(this.playoutLimit)&&isNaN(this.resumeOffset)||this.resumeOffset&&this.duration&&Math.abs(this.resumeOffset-this.duration)0||this.assetListResponse!==null}toString(){return eventToString(this)}}function getSnapToFragmentTime(st,at){return st-at.start":st.cue.post?"":""}${st.timelineStart.toFixed(2)}-${st.resumeTime.toFixed(2)}]`}function eventAssetToString(st){const at=st.timelineStart,ut=st.duration||0;return`["${st.identifier}" ${at.toFixed(2)}-${(at+ut).toFixed(2)}]`}class HlsAssetPlayer{constructor(at,ut,dt,ct){this.hls=void 0,this.interstitial=void 0,this.assetItem=void 0,this.tracks=null,this.hasDetails=!1,this.mediaAttached=null,this._currentTime=void 0,this._bufferedEosTime=void 0,this.checkPlayout=()=>{this.reachedPlayout(this.currentTime)&&this.hls.trigger(Events.PLAYOUT_LIMIT_REACHED,{})};const pt=this.hls=new at(ut);this.interstitial=dt,this.assetItem=ct;let ft=ct.uri;try{ft=getInterstitialUrl(ft,ut.primarySessionId).href}catch{}pt.loadSource(ft);const ht=()=>{this.hasDetails=!0};pt.once(Events.LEVEL_LOADED,ht),pt.once(Events.AUDIO_TRACK_LOADED,ht),pt.once(Events.SUBTITLE_TRACK_LOADED,ht),pt.on(Events.MEDIA_ATTACHING,(mt,{media:yt})=>{this.removeMediaListeners(),this.mediaAttached=yt,this.interstitial.playoutLimit&&(yt.addEventListener("timeupdate",this.checkPlayout),this.appendInPlace&&pt.on(Events.BUFFER_APPENDED,()=>{const Tt=this.bufferedEnd;this.reachedPlayout(Tt)&&(this._bufferedEosTime=Tt,pt.trigger(Events.BUFFERED_TO_END,void 0))}))})}get appendInPlace(){var at;return((at=this.interstitial)==null?void 0:at.appendInPlace)||!1}bufferedInPlaceToEnd(at){var ut;if(!this.appendInPlace)return!1;if((ut=this.hls)!=null&&ut.bufferedToEnd)return!0;if(!at||!this._bufferedEosTime)return!1;const dt=this.timelineOffset,ct=BufferHelper.bufferInfo(at,dt,0);return this.getAssetTime(ct.end)>=this._bufferedEosTime-.02}reachedPlayout(at){const dt=this.interstitial.playoutLimit;return this.startOffset+at>=dt}get destroyed(){var at;return!((at=this.hls)!=null&&at.userConfig)}get assetId(){return this.assetItem.identifier}get interstitialId(){return this.assetItem.parentIdentifier}get media(){var at;return((at=this.hls)==null?void 0:at.media)||null}get bufferedEnd(){const at=this.media||this.mediaAttached;if(!at)return this._bufferedEosTime?this._bufferedEosTime:this.currentTime;const ut=BufferHelper.bufferInfo(at,at.currentTime,.001);return this.getAssetTime(ut.end)}get currentTime(){const at=this.media||this.mediaAttached;return at?this.getAssetTime(at.currentTime):this._currentTime||0}get duration(){const at=this.assetItem.duration;return at||0}get remaining(){const at=this.duration;return at?Math.max(0,at-this.currentTime):0}get startOffset(){return this.assetItem.startOffset}get timelineOffset(){var at;return((at=this.hls)==null?void 0:at.config.timelineOffset)||0}set timelineOffset(at){const ut=this.timelineOffset;if(at!==ut){const dt=at-ut;if(Math.abs(dt)>1/9e4){if(this.hasDetails)throw new Error("Cannot set timelineOffset after playlists are loaded");this.hls.config.timelineOffset=at}}}getAssetTime(at){const ut=this.timelineOffset,dt=this.duration;return Math.min(Math.max(0,at-ut),dt)}removeMediaListeners(){const at=this.mediaAttached;at&&(this._currentTime=at.currentTime,this.bufferSnapShot(),at.removeEventListener("timeupdate",this.checkPlayout))}bufferSnapShot(){if(this.mediaAttached){var at;(at=this.hls)!=null&&at.bufferedToEnd&&(this._bufferedEosTime=this.bufferedEnd)}}destroy(){this.removeMediaListeners(),this.hls.destroy(),this.hls=this.interstitial=null,this.tracks=this.mediaAttached=this.checkPlayout=null}attachMedia(at){this.hls.attachMedia(at)}detachMedia(){this.removeMediaListeners(),this.mediaAttached=null,this.hls.detachMedia()}resumeBuffering(){this.hls.resumeBuffering()}pauseBuffering(){this.hls.pauseBuffering()}transferMedia(){return this.bufferSnapShot(),this.hls.transferMedia()}resetDetails(){const at=this.hls;if(this.hasDetails){at.stopLoad();const ut=dt=>delete dt.details;at.levels.forEach(ut),at.allAudioTracks.forEach(ut),at.allSubtitleTracks.forEach(ut),this.hasDetails=!1}}on(at,ut,dt){this.hls.on(at,ut)}once(at,ut,dt){this.hls.once(at,ut)}off(at,ut,dt){this.hls.off(at,ut)}toString(){var at;return`HlsAssetPlayer: ${eventAssetToString(this.assetItem)} ${(at=this.hls)==null?void 0:at.sessionId} ${this.appendInPlace?"append-in-place":""}`}}const ABUTTING_THRESHOLD_SECONDS=.033;class InterstitialsSchedule extends Logger{constructor(at,ut){super("interstitials-sched",ut),this.onScheduleUpdate=void 0,this.eventMap={},this.events=null,this.items=null,this.durations={primary:0,playout:0,integrated:0},this.onScheduleUpdate=at}destroy(){this.reset(),this.onScheduleUpdate=null}reset(){this.eventMap={},this.setDurations(0,0,0),this.events&&this.events.forEach(at=>at.reset()),this.events=this.items=null}resetErrorsInRange(at,ut){return this.events?this.events.reduce((dt,ct)=>at<=ct.startOffset&&ut>ct.startOffset?(delete ct.error,dt+1):dt,0):0}get duration(){const at=this.items;return at?at[at.length-1].end:0}get length(){return this.items?this.items.length:0}getEvent(at){return at&&this.eventMap[at]||null}hasEvent(at){return at in this.eventMap}findItemIndex(at,ut){if(at.event)return this.findEventIndex(at.event.identifier);let dt=-1;at.nextEvent?dt=this.findEventIndex(at.nextEvent.identifier)-1:at.previousEvent&&(dt=this.findEventIndex(at.previousEvent.identifier)+1);const ct=this.items;if(ct)for(ct[dt]||(ut===void 0&&(ut=at.start),dt=this.findItemIndexAtTime(ut));dt>=0&&(pt=ct[dt])!=null&&pt.event;){var pt;dt--}return dt}findItemIndexAtTime(at,ut){const dt=this.items;if(dt)for(let ct=0;ctpt.start&&at1)for(let pt=0;ptht&&ut!ht.includes(yt.identifier)):[];ft.length&&ft.sort((yt,bt)=>{const Tt=yt.cue.pre,St=yt.cue.post,At=bt.cue.pre,vt=bt.cue.post;if(Tt&&!At)return-1;if(At&&!Tt||St&&!vt)return 1;if(vt&&!St)return-1;if(!Tt&&!At&&!St&&!vt){const Dt=yt.startTime,Et=bt.startTime;if(Dt!==Et)return Dt-Et}return yt.dateRange.tagOrder-bt.dateRange.tagOrder}),this.events=ft,mt.forEach(yt=>{this.removeEvent(yt)}),this.updateSchedule(at,mt)}updateSchedule(at,ut=[]){const dt=this.events||[];if(dt.length||ut.length||this.length<2){const ct=this.items,pt=this.parseSchedule(dt,at);(ut.length||(ct==null?void 0:ct.length)!==pt.length||pt.some((ht,mt)=>Math.abs(ht.playout.start-ct[mt].playout.start)>.005||Math.abs(ht.playout.end-ct[mt].playout.end)>.005))&&(this.items=pt,this.onScheduleUpdate(ut,ct))}}parseDateRanges(at,ut,dt){const ct=[],pt=Object.keys(at);for(let ft=0;ft!mt.error&&!(mt.cue.once&&mt.hasPlayed)),at.length){this.resolveOffsets(at,ut);let mt=0,yt=0;if(at.forEach((bt,Tt)=>{const St=bt.cue.pre,At=bt.cue.post,vt=at[Tt-1]||null,Dt=bt.appendInPlace,Et=At?pt:bt.startOffset,_t=bt.duration,xt=bt.timelineOccupancy===TimelineOccupancy.Range?_t:0,Ct=bt.resumptionOffset,kt=(vt==null?void 0:vt.startTime)===Et,wt=Et+bt.cumulativeDuration;let $t=Dt?wt+_t:Et+Ct;if(St||!At&&Et<=0){const Ot=yt;yt+=xt,bt.timelineStart=wt;const zt=ft;ft+=_t,dt.push({event:bt,start:wt,end:$t,playout:{start:zt,end:ft},integrated:{start:Ot,end:yt}})}else if(Et<=pt){if(!kt){const Mt=Et-mt;if(Mt>ABUTTING_THRESHOLD_SECONDS){const qt=mt,Qt=yt;yt+=Mt;const Yt=ft;ft+=Mt;const jt={previousEvent:at[Tt-1]||null,nextEvent:bt,start:qt,end:qt+Mt,playout:{start:Yt,end:ft},integrated:{start:Qt,end:yt}};dt.push(jt)}else Mt>0&&vt&&(vt.cumulativeDuration+=Mt,dt[dt.length-1].end=Et)}At&&($t=wt),bt.timelineStart=wt;const Ot=yt;yt+=xt;const zt=ft;ft+=_t,dt.push({event:bt,start:wt,end:$t,playout:{start:zt,end:ft},integrated:{start:Ot,end:yt}})}else return;const Lt=bt.resumeTime;At||Lt>pt?mt=pt:mt=Lt}),mt{const yt=ht.cue.pre,bt=ht.cue.post,Tt=yt?0:bt?ct:ht.startTime;this.updateAssetDurations(ht),ft===Tt?ht.cumulativeDuration=pt:(pt=0,ft=Tt),!bt&&ht.snapOptions.in&&(ht.resumeAnchor=findFragmentByPTS(null,dt.fragments,ht.startOffset+ht.resumptionOffset,0,0)||void 0),ht.appendInPlace&&!ht.appendInPlaceStarted&&(this.primaryCanResumeInPlaceAt(ht,ut)||(ht.appendInPlace=!1)),!ht.appendInPlace&&mt+1ALIGNED_END_THRESHOLD_SECONDS?(this.log(`"${at.identifier}" resumption ${dt} not aligned with estimated timeline end ${ct}`),!1):ut?!Object.keys(ut).some(ft=>{const ht=ut[ft].details,mt=ht.edge;if(dt>=mt)return this.log(`"${at.identifier}" resumption ${dt} past ${ft} playlist end ${mt}`),!1;const yt=findFragmentByPTS(null,ht.fragments,dt);if(!yt)return this.log(`"${at.identifier}" resumption ${dt} does not align with any fragments in ${ft} playlist (${ht.fragStart}-${ht.fragmentEnd})`),!0;const bt=ft==="audio"?.175:0;return Math.abs(yt.start-dt){const mt=ut+dt;ft.startOffset=dt,ft.timelineStart=mt,ct||(ct=ft.duration===null),pt||(pt=!!ft.error);const yt=ft.error?0:ft.duration||0;dt+=yt}),ct&&!pt?at.duration=Math.max(dt,at.duration):at.duration=dt}removeEvent(at){at.reset(),delete this.eventMap[at.identifier]}}function segmentToString(st){return`[${st.event?'"'+st.event.identifier+'"':"primary"}: ${st.start.toFixed(2)}-${st.end.toFixed(2)}]`}class AssetListLoader{constructor(at){this.hls=void 0,this.hls=at}destroy(){this.hls=null}loadAssetList(at,ut){const dt=at.assetListUrl;let ct;try{ct=getInterstitialUrl(dt,this.hls.sessionId,at.baseUrl)}catch(St){const At=this.assignAssetListError(at,ErrorDetails.ASSET_LIST_LOAD_ERROR,St,dt);this.hls.trigger(Events.ERROR,At);return}ut&&ct.protocol!=="data:"&&ct.searchParams.set("_HLS_start_offset",""+ut);const pt=this.hls.config,ft=pt.loader,ht=new ft(pt),mt={responseType:"json",url:ct.href},yt=pt.interstitialAssetListLoadPolicy.default,bt={loadPolicy:yt,timeout:yt.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},Tt={onSuccess:(St,At,vt,Dt)=>{const Et=St.data,_t=Et==null?void 0:Et.ASSETS;if(!Array.isArray(_t)){const xt=this.assignAssetListError(at,ErrorDetails.ASSET_LIST_PARSING_ERROR,new Error("Invalid interstitial asset list"),vt.url,At,Dt);this.hls.trigger(Events.ERROR,xt);return}at.assetListResponse=Et,this.hls.trigger(Events.ASSET_LIST_LOADED,{event:at,assetListResponse:Et,networkDetails:Dt})},onError:(St,At,vt,Dt)=>{const Et=this.assignAssetListError(at,ErrorDetails.ASSET_LIST_LOAD_ERROR,new Error(`Error loading X-ASSET-LIST: HTTP status ${St.code} ${St.text} (${At.url})`),At.url,Dt,vt);this.hls.trigger(Events.ERROR,Et)},onTimeout:(St,At,vt)=>{const Dt=this.assignAssetListError(at,ErrorDetails.ASSET_LIST_LOAD_TIMEOUT,new Error(`Timeout loading X-ASSET-LIST (${At.url})`),At.url,St,vt);this.hls.trigger(Events.ERROR,Dt)}};return ht.load(mt,bt,Tt),this.hls.trigger(Events.ASSET_LIST_LOADING,{event:at}),ht}assignAssetListError(at,ut,dt,ct,pt,ft){return at.error=dt,{type:ErrorTypes.NETWORK_ERROR,details:ut,fatal:!1,interstitial:at,url:ct,error:dt,networkDetails:ft,stats:pt}}}function playWithCatch(st){st==null||st.play().catch(()=>{})}class InterstitialsController extends Logger{constructor(at,ut){super("interstitials",at.logger),this.HlsPlayerClass=void 0,this.hls=void 0,this.assetListLoader=void 0,this.mediaSelection=null,this.altSelection=null,this.media=null,this.detachedData=null,this.requiredTracks=null,this.manager=null,this.playerQueue=[],this.bufferedPos=-1,this.timelinePos=-1,this.schedule=void 0,this.playingItem=null,this.bufferingItem=null,this.waitingItem=null,this.endedItem=null,this.playingAsset=null,this.endedAsset=null,this.bufferingAsset=null,this.shouldPlay=!1,this.onPlay=()=>{this.shouldPlay=!0},this.onPause=()=>{this.shouldPlay=!1},this.onSeeking=()=>{const dt=this.currentTime;if(dt===void 0||this.playbackDisabled)return;const ct=dt-this.timelinePos;if(Math.abs(ct)<1/7056e5)return;const ft=ct<=-.01;this.timelinePos=dt,this.bufferedPos=dt;const ht=this.playingItem;if(!ht){this.checkBuffer();return}if(ft&&this.schedule.resetErrorsInRange(dt,dt-ct)&&this.updateSchedule(),this.checkBuffer(),ft&&dt=ht.end){var mt;const St=this.schedule.findItemIndexAtTime(this.timelinePos);if(!this.isInterstitial(ht)&&(mt=this.media)!=null&&mt.paused&&(this.shouldPlay=!1),!ft){const At=this.findItemIndex(ht);if(St>At){const vt=this.schedule.findJumpRestrictedIndex(At+1,St);if(vt>At){this.setSchedulePosition(vt);return}}}this.setSchedulePosition(St);return}const yt=this.playingAsset;if(!yt){if(this.playingLastItem&&this.isInterstitial(ht)){const St=ht.event.assetList[0];St&&(this.endedItem=this.playingItem,this.playingItem=null,this.setScheduleToAssetAtTime(dt,St))}return}const bt=yt.timelineStart,Tt=yt.duration||0;(ft&&dt=bt+Tt)&&this.setScheduleToAssetAtTime(dt,yt)},this.onTimeupdate=()=>{const dt=this.currentTime;if(dt===void 0||this.playbackDisabled)return;if(dt>this.timelinePos)this.timelinePos=dt,dt>this.bufferedPos&&this.checkBuffer();else return;const ct=this.playingItem;if(!ct||this.playingLastItem)return;if(dt>=ct.end){this.timelinePos=ct.end;const ht=this.findItemIndex(ct);this.setSchedulePosition(ht+1)}const pt=this.playingAsset;if(!pt)return;const ft=pt.timelineStart+(pt.duration||0);dt>=ft&&this.setScheduleToAssetAtTime(dt,pt)},this.onScheduleUpdate=(dt,ct)=>{const pt=this.schedule,ft=this.playingItem,ht=pt.events||[],mt=pt.items||[],yt=pt.durations,bt=dt.map(vt=>vt.identifier),Tt=!!(ht.length||bt.length);(Tt||ct)&&this.log(`INTERSTITIALS_UPDATED (${ht.length}): ${ht} Schedule: ${mt.map(vt=>segmentToString(vt))} pos: ${this.timelinePos}`),bt.length&&this.log(`Removed events ${bt}`),this.playerQueue.forEach(vt=>{if(vt.interstitial.appendInPlace){const Dt=vt.assetItem.timelineStart,Et=vt.timelineOffset-Dt;if(Et)try{vt.timelineOffset=Dt}catch(_t){Math.abs(Et)>ALIGNED_END_THRESHOLD_SECONDS&&this.warn(`${_t} ("${vt.assetId}" ${vt.timelineOffset}->${Dt})`)}}});let St=null;if(ft){const vt=this.updateItem(ft,this.timelinePos);this.itemsMatch(ft,vt)&&(this.playingItem=vt,this.waitingItem=this.endedItem=null,St=()=>this.trimInPlace(vt,ft))}else this.waitingItem=this.updateItem(this.waitingItem),this.endedItem=this.updateItem(this.endedItem);const At=this.bufferingItem;if(At){const vt=this.updateItem(At,this.bufferedPos);this.itemsMatch(At,vt)?(this.bufferingItem=vt,St||(St=()=>this.trimInPlace(vt,At))):At.event&&(this.bufferingItem=this.playingItem,this.clearInterstitial(At.event,null))}if(dt.forEach(vt=>{vt.assetList.forEach(Dt=>{this.clearAssetPlayer(Dt.identifier,null)})}),Tt||ct){if(this.hls.trigger(Events.INTERSTITIALS_UPDATED,{events:ht.slice(0),schedule:mt.slice(0),durations:yt,removedIds:bt}),this.isInterstitial(ft)&&bt.includes(ft.event.identifier)){this.warn(`Interstitial "${ft.event.identifier}" removed while playing`),this.primaryFallback(ft.event);return}St&&St(),this.checkBuffer()}},this.hls=at,this.HlsPlayerClass=ut,this.assetListLoader=new AssetListLoader(at),this.schedule=new InterstitialsSchedule(this.onScheduleUpdate,at.logger),this.registerListeners()}registerListeners(){const at=this.hls;at.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),at.on(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.LEVEL_UPDATED,this.onLevelUpdated,this),at.on(Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),at.on(Events.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),at.on(Events.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),at.on(Events.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),at.on(Events.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),at.on(Events.ASSET_LIST_LOADED,this.onAssetListLoaded,this),at.on(Events.BUFFER_APPENDED,this.onBufferAppended,this),at.on(Events.BUFFER_FLUSHED,this.onBufferFlushed,this),at.on(Events.BUFFERED_TO_END,this.onBufferedToEnd,this),at.on(Events.MEDIA_ENDED,this.onMediaEnded,this),at.on(Events.ERROR,this.onError,this),at.on(Events.DESTROYING,this.onDestroying,this)}unregisterListeners(){const at=this.hls;at&&(at.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),at.off(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.LEVEL_UPDATED,this.onLevelUpdated,this),at.off(Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),at.off(Events.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),at.off(Events.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),at.off(Events.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),at.off(Events.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),at.off(Events.ASSET_LIST_LOADED,this.onAssetListLoaded,this),at.off(Events.BUFFER_CODECS,this.onBufferCodecs,this),at.off(Events.BUFFER_APPENDED,this.onBufferAppended,this),at.off(Events.BUFFER_FLUSHED,this.onBufferFlushed,this),at.off(Events.BUFFERED_TO_END,this.onBufferedToEnd,this),at.off(Events.MEDIA_ENDED,this.onMediaEnded,this),at.off(Events.ERROR,this.onError,this),at.off(Events.DESTROYING,this.onDestroying,this))}startLoad(){this.resumeBuffering()}stopLoad(){this.pauseBuffering()}resumeBuffering(){var at;(at=this.getBufferingPlayer())==null||at.resumeBuffering()}pauseBuffering(){var at;(at=this.getBufferingPlayer())==null||at.pauseBuffering()}destroy(){this.unregisterListeners(),this.stopLoad(),this.assetListLoader&&this.assetListLoader.destroy(),this.emptyPlayerQueue(),this.clearScheduleState(),this.schedule&&this.schedule.destroy(),this.media=this.detachedData=this.mediaSelection=this.requiredTracks=this.altSelection=this.manager=null,this.hls=this.HlsPlayerClass=this.schedule=this.log=null,this.assetListLoader=null,this.onPlay=this.onPause=this.onSeeking=this.onTimeupdate=null,this.onScheduleUpdate=null}onDestroying(){const at=this.primaryMedia||this.media;at&&this.removeMediaListeners(at)}removeMediaListeners(at){removeEventListener(at,"play",this.onPlay),removeEventListener(at,"pause",this.onPause),removeEventListener(at,"seeking",this.onSeeking),removeEventListener(at,"timeupdate",this.onTimeupdate)}onMediaAttaching(at,ut){const dt=this.media=ut.media;addEventListener(dt,"seeking",this.onSeeking),addEventListener(dt,"timeupdate",this.onTimeupdate),addEventListener(dt,"play",this.onPlay),addEventListener(dt,"pause",this.onPause)}onMediaAttached(at,ut){const dt=this.effectivePlayingItem,ct=this.detachedData;if(this.detachedData=null,dt===null)this.checkStart();else if(!ct){this.clearScheduleState();const pt=this.findItemIndex(dt);this.setSchedulePosition(pt)}}clearScheduleState(){this.playingItem=this.bufferingItem=this.waitingItem=this.endedItem=this.playingAsset=this.endedAsset=this.bufferingAsset=null}onMediaDetaching(at,ut){const dt=!!ut.transferMedia,ct=this.media;if(this.media=null,!dt&&(ct&&this.removeMediaListeners(ct),this.detachedData)){const pt=this.getBufferingPlayer();pt&&(this.playingAsset=this.endedAsset=this.bufferingAsset=this.bufferingItem=this.waitingItem=this.detachedData=null,pt.detachMedia()),this.shouldPlay=!1}}get interstitialsManager(){if(!this.manager){if(!this.hls)return null;const at=this,ut=()=>at.bufferingItem||at.waitingItem,dt=Tt=>Tt&&at.getAssetPlayer(Tt.identifier),ct=(Tt,St,At,vt,Dt)=>{if(Tt){let Et=Tt[St].start;const _t=Tt.event;if(_t){if(St==="playout"||_t.timelineOccupancy!==TimelineOccupancy.Point){const xt=dt(At);(xt==null?void 0:xt.interstitial)===_t&&(Et+=xt.assetItem.startOffset+xt[Dt])}}else{const xt=vt==="bufferedPos"?ft():at[vt];Et+=xt-Tt.start}return Et}return 0},pt=(Tt,St)=>{if(Tt!==0&&St!=="primary"&&at.schedule.length){var At;const vt=at.schedule.findItemIndexAtTime(Tt),Dt=(At=at.schedule.items)==null?void 0:At[vt];if(Dt){const Et=Dt[St].start-Dt.start;return Tt+Et}}return Tt},ft=()=>{const Tt=at.bufferedPos;return Tt===Number.MAX_VALUE?ht("primary"):Math.max(Tt,0)},ht=Tt=>{var St;return(St=at.primaryDetails)!=null&&St.live?at.primaryDetails.edge:at.schedule.durations[Tt]},mt=(Tt,St)=>{var At,vt;const Dt=at.effectivePlayingItem;if(Dt!=null&&(At=Dt.event)!=null&&At.restrictions.skip)return;at.log(`seek to ${Tt} "${St}"`);const Et=at.effectivePlayingItem,_t=at.schedule.findItemIndexAtTime(Tt,St),xt=(vt=at.schedule.items)==null?void 0:vt[_t],Ct=at.getBufferingPlayer(),kt=Ct==null?void 0:Ct.interstitial,wt=kt==null?void 0:kt.appendInPlace,$t=Et&&at.itemsMatch(Et,xt);if(Et&&(wt||$t)){const Ot=dt(at.playingAsset),zt=(Ot==null?void 0:Ot.media)||at.primaryMedia;if(zt){const Mt=St==="primary"?zt.currentTime:ct(Et,St,at.playingAsset,"timelinePos","currentTime"),qt=Tt-Mt,Qt=(wt?Mt:zt.currentTime)+qt;if(Qt>=0&&(!Ot||wt||Qt<=Ot.duration)){zt.currentTime=Qt;return}}}if(xt){let Ot=Tt;if(St!=="primary"){const Mt=xt[St].start,qt=Tt-Mt;Ot=xt.start+qt}const zt=!at.isInterstitial(xt);if((!at.isInterstitial(Et)||Et.event.appendInPlace)&&(zt||xt.event.appendInPlace)){const Mt=at.media||(wt?Ct==null?void 0:Ct.media:null);Mt&&(Mt.currentTime=Ot)}else if(Et){const Mt=at.findItemIndex(Et);if(_t>Mt){const Qt=at.schedule.findJumpRestrictedIndex(Mt+1,_t);if(Qt>Mt){at.setSchedulePosition(Qt);return}}let qt=0;if(zt)at.timelinePos=Ot,at.checkBuffer();else{var Lt;const Qt=xt==null||(Lt=xt.event)==null?void 0:Lt.assetList;if(Qt){const Yt=Tt-(xt[St]||xt).start;for(let jt=Qt.length;jt--;){const Ft=Qt[jt];if(Ft.duration&&Yt>=Ft.startOffset&&Yt{const Tt=at.effectivePlayingItem;if(at.isInterstitial(Tt))return Tt;const St=ut();return at.isInterstitial(St)?St:null},bt={get currentTime(){const Tt=yt(),St=at.effectivePlayingItem;return St&&St===Tt?ct(St,"playout",at.effectivePlayingAsset,"timelinePos","currentTime")-St.playout.start:0},set currentTime(Tt){const St=yt(),At=at.effectivePlayingItem;At&&At===St&&mt(Tt+At.playout.start,"playout")},get duration(){const Tt=yt();return Tt?Tt.playout.end-Tt.playout.start:0},get assetPlayers(){var Tt;const St=(Tt=yt())==null?void 0:Tt.event.assetList;return St?St.map(At=>at.getAssetPlayer(At.identifier)):[]},get playingIndex(){var Tt;const St=(Tt=yt())==null?void 0:Tt.event;return St&&at.effectivePlayingAsset?St.findAssetIndex(at.effectivePlayingAsset):-1},get scheduleItem(){return yt()}};this.manager={get events(){var Tt,St;return((Tt=at.schedule)==null||(St=Tt.events)==null?void 0:St.slice(0))||[]},get schedule(){var Tt,St;return((Tt=at.schedule)==null||(St=Tt.items)==null?void 0:St.slice(0))||[]},get interstitialPlayer(){return yt()?bt:null},get playerQueue(){return at.playerQueue.slice(0)},get bufferingAsset(){return at.bufferingAsset},get bufferingItem(){return ut()},get bufferingIndex(){const Tt=ut();return at.findItemIndex(Tt)},get playingAsset(){return at.effectivePlayingAsset},get playingItem(){return at.effectivePlayingItem},get playingIndex(){const Tt=at.effectivePlayingItem;return at.findItemIndex(Tt)},primary:{get bufferedEnd(){return ft()},get currentTime(){const Tt=at.timelinePos;return Tt>0?Tt:0},set currentTime(Tt){mt(Tt,"primary")},get duration(){return ht("primary")},get seekableStart(){var Tt;return((Tt=at.primaryDetails)==null?void 0:Tt.fragmentStart)||0}},integrated:{get bufferedEnd(){return ct(ut(),"integrated",at.bufferingAsset,"bufferedPos","bufferedEnd")},get currentTime(){return ct(at.effectivePlayingItem,"integrated",at.effectivePlayingAsset,"timelinePos","currentTime")},set currentTime(Tt){mt(Tt,"integrated")},get duration(){return ht("integrated")},get seekableStart(){var Tt;return pt(((Tt=at.primaryDetails)==null?void 0:Tt.fragmentStart)||0,"integrated")}},skip:()=>{const Tt=at.effectivePlayingItem,St=Tt==null?void 0:Tt.event;if(St&&!St.restrictions.skip){const At=at.findItemIndex(Tt);if(St.appendInPlace){const vt=Tt.playout.start+Tt.event.duration;mt(vt+.001,"playout")}else at.advanceAfterAssetEnded(St,At,1/0)}}}}return this.manager}get effectivePlayingItem(){return this.waitingItem||this.playingItem||this.endedItem}get effectivePlayingAsset(){return this.playingAsset||this.endedAsset}get playingLastItem(){var at;const ut=this.playingItem,dt=(at=this.schedule)==null?void 0:at.items;return!this.playbackStarted||!ut||!dt?!1:this.findItemIndex(ut)===dt.length-1}get playbackStarted(){return this.effectivePlayingItem!==null}get currentTime(){var at,ut,dt;if(this.mediaSelection===null)return;const ct=this.waitingItem||this.playingItem;if(this.isInterstitial(ct)&&!ct.event.appendInPlace)return;let pt=this.media;!pt&&(at=this.bufferingItem)!=null&&(ut=at.event)!=null&&ut.appendInPlace&&(pt=this.primaryMedia);const ft=(dt=pt)==null?void 0:dt.currentTime;if(!(ft===void 0||!isFiniteNumber(ft)))return ft}get primaryMedia(){var at;return this.media||((at=this.detachedData)==null?void 0:at.media)||null}isInterstitial(at){return!!(at!=null&&at.event)}retreiveMediaSource(at,ut){const dt=this.getAssetPlayer(at);dt&&this.transferMediaFromPlayer(dt,ut)}transferMediaFromPlayer(at,ut){const dt=at.interstitial.appendInPlace,ct=at.media;if(dt&&ct===this.primaryMedia){if(this.bufferingAsset=null,(!ut||this.isInterstitial(ut)&&!ut.event.appendInPlace)&&ut&&ct){this.detachedData={media:ct};return}const pt=at.transferMedia();this.log(`transfer MediaSource from ${at} ${stringify(pt)}`),this.detachedData=pt}else ut&&ct&&(this.shouldPlay||(this.shouldPlay=!ct.paused))}transferMediaTo(at,ut){var dt,ct;if(at.media===ut)return;let pt=null;const ft=this.hls,ht=at!==ft,mt=ht&&at.interstitial.appendInPlace,yt=(dt=this.detachedData)==null?void 0:dt.mediaSource;let bt;if(ft.media)mt&&(pt=ft.transferMedia(),this.detachedData=pt),bt="Primary";else if(yt){const At=this.getBufferingPlayer();At?(pt=At.transferMedia(),bt=`${At}`):bt="detached MediaSource"}else bt="detached media";if(!pt){if(yt)pt=this.detachedData,this.log(`using detachedData: MediaSource ${stringify(pt)}`);else if(!this.detachedData||ft.media===ut){const At=this.playerQueue;At.length>1&&At.forEach(vt=>{if(ht&&vt.interstitial.appendInPlace!==mt){const Dt=vt.interstitial;this.clearInterstitial(vt.interstitial,null),Dt.appendInPlace=!1,Dt.appendInPlace&&this.warn(`Could not change append strategy for queued assets ${Dt}`)}}),this.hls.detachMedia(),this.detachedData={media:ut}}}const Tt=pt&&"mediaSource"in pt&&((ct=pt.mediaSource)==null?void 0:ct.readyState)!=="closed",St=Tt&&pt?pt:ut;if(this.log(`${Tt?"transfering MediaSource":"attaching media"} to ${ht?at:"Primary"} from ${bt}`),St===pt){const At=ht&&at.assetId===this.schedule.assetIdAtEnd;St.overrides={duration:this.schedule.duration,endOfStream:!ht||At,cueRemoval:!ht}}at.attachMedia(St)}onInterstitialCueEnter(){this.onTimeupdate()}checkStart(){const at=this.schedule,ut=at.events;if(!ut||this.playbackDisabled||!this.media)return;this.bufferedPos===-1&&(this.bufferedPos=0);const dt=this.timelinePos,ct=this.effectivePlayingItem;if(dt===-1){const pt=this.hls.startPosition;if(this.timelinePos=pt,ut.length&&ut[0].cue.pre){const ft=at.findEventIndex(ut[0].identifier);this.setSchedulePosition(ft)}else if(pt>=0||!this.primaryLive){const ft=this.timelinePos=pt>0?pt:0,ht=at.findItemIndexAtTime(ft);this.setSchedulePosition(ht)}}else if(ct&&!this.playingItem){const pt=at.findItemIndex(ct);this.setSchedulePosition(pt)}}advanceAfterAssetEnded(at,ut,dt){const ct=getNextAssetIndex(at,dt);if(!at.isAssetPastPlayoutLimit(ct))this.setSchedulePosition(ut,ct);else{const pt=this.schedule.items;if(pt){const ft=ut+1,ht=pt.length;if(ft>=ht){this.setSchedulePosition(-1);return}const mt=at.resumeTime;this.timelinePos=0?dt[at]:null,pt=this.playingItem,ft=this.playingLastItem;if(this.isInterstitial(pt)){var ht;const yt=pt.event,bt=this.playingAsset,Tt=bt==null?void 0:bt.identifier,St=Tt?this.getAssetPlayer(Tt):null;if(St&&Tt&&(!this.eventItemsMatch(pt,ct)||ut!==void 0&&Tt!==((ht=yt.assetList)==null?void 0:ht[ut].identifier))){var mt;const At=yt.findAssetIndex(bt);if(this.log(`INTERSTITIAL_ASSET_ENDED ${At+1}/${yt.assetList.length} ${eventAssetToString(bt)}`),this.endedAsset=bt,this.playingAsset=null,this.hls.trigger(Events.INTERSTITIAL_ASSET_ENDED,{asset:bt,assetListIndex:At,event:yt,schedule:dt.slice(0),scheduleIndex:at,player:St}),pt!==this.playingItem){this.itemsMatch(pt,this.playingItem)&&!this.playingAsset&&this.advanceAfterAssetEnded(yt,this.findItemIndex(this.playingItem),At);return}this.retreiveMediaSource(Tt,ct),St.media&&!((mt=this.detachedData)!=null&&mt.mediaSource)&&St.detachMedia()}if(!this.eventItemsMatch(pt,ct)&&(this.endedItem=pt,this.playingItem=null,this.log(`INTERSTITIAL_ENDED ${yt} ${segmentToString(pt)}`),yt.hasPlayed=!0,this.hls.trigger(Events.INTERSTITIAL_ENDED,{event:yt,schedule:dt.slice(0),scheduleIndex:at}),yt.cue.once)){this.updateSchedule();const At=this.schedule.items;if(ct&&At){const vt=this.findItemIndex(ct);this.advanceSchedule(vt,At,ut,pt,ft)}return}}this.advanceSchedule(at,dt,ut,pt,ft)}advanceSchedule(at,ut,dt,ct,pt){const ft=at>=0?ut[at]:null,ht=this.primaryMedia,mt=this.playerQueue;if(mt.length&&mt.forEach(yt=>{const bt=yt.interstitial,Tt=this.schedule.findEventIndex(bt.identifier);(Ttat+1)&&this.clearInterstitial(bt,ft)}),this.isInterstitial(ft)){this.timelinePos=Math.min(Math.max(this.timelinePos,ft.start),ft.end);const yt=ft.event;if(dt===void 0){dt=this.schedule.findAssetIndex(yt,this.timelinePos);const At=getNextAssetIndex(yt,dt-1);if(yt.isAssetPastPlayoutLimit(At)){this.advanceAfterAssetEnded(yt,at,dt);return}dt=At}const bt=this.waitingItem;this.assetsBuffered(ft,ht)||this.setBufferingItem(ft);let Tt=this.preloadAssets(yt,dt);if(this.eventItemsMatch(ft,bt||ct)||(this.waitingItem=ft,this.log(`INTERSTITIAL_STARTED ${segmentToString(ft)} ${yt.appendInPlace?"append in place":""}`),this.hls.trigger(Events.INTERSTITIAL_STARTED,{event:yt,schedule:ut.slice(0),scheduleIndex:at})),!yt.assetListLoaded){this.log(`Waiting for ASSET-LIST to complete loading ${yt}`);return}if(yt.assetListLoader&&(yt.assetListLoader.destroy(),yt.assetListLoader=void 0),!ht){this.log(`Waiting for attachMedia to start Interstitial ${yt}`);return}this.waitingItem=this.endedItem=null,this.playingItem=ft;const St=yt.assetList[dt];if(!St){const At=ut[at+1],vt=this.media;At&&vt&&!this.isInterstitial(At)&&vt.currentTime=at.end)&&(ft=this.getPrimaryResumption(at,ut),this.timelinePos=ft),this.attachPrimary(ft,at)}if(!dt)return;const pt=this.schedule.items;pt&&(this.log(`INTERSTITIALS_PRIMARY_RESUMED ${segmentToString(at)}`),this.hls.trigger(Events.INTERSTITIALS_PRIMARY_RESUMED,{schedule:pt.slice(0),scheduleIndex:ut}),this.checkBuffer())}getPrimaryResumption(at,ut){const dt=at.start;if(this.primaryLive){const ct=this.primaryDetails;if(ut===0)return this.hls.startPosition;if(ct&&(dtct.edge))return this.hls.liveSyncPosition||-1}return dt}isAssetBuffered(at){const ut=this.getAssetPlayer(at.identifier);return ut!=null&&ut.hls?ut.hls.bufferedToEnd:BufferHelper.bufferInfo(this.primaryMedia,this.timelinePos,0).end+1>=at.timelineStart+(at.duration||0)}attachPrimary(at,ut,dt){ut?this.setBufferingItem(ut):this.bufferingItem=this.playingItem,this.bufferingAsset=null;const ct=this.primaryMedia;if(!ct)return;const pt=this.hls;pt.media?this.checkBuffer():(this.transferMediaTo(pt,ct),dt&&this.startLoadingPrimaryAt(at,dt)),dt||(this.timelinePos=at,this.startLoadingPrimaryAt(at,dt))}startLoadingPrimaryAt(at,ut){var dt;const ct=this.hls;!ct.loadingEnabled||!ct.media||Math.abs((((dt=ct.mainForwardBufferInfo)==null?void 0:dt.start)||ct.media.currentTime)-at)>.5?ct.startLoad(at,ut):ct.bufferingEnabled||ct.resumeBuffering()}onManifestLoading(){this.stopLoad(),this.schedule.reset(),this.emptyPlayerQueue(),this.clearScheduleState(),this.shouldPlay=!1,this.bufferedPos=this.timelinePos=-1,this.mediaSelection=this.altSelection=this.manager=this.requiredTracks=null,this.hls.off(Events.BUFFER_CODECS,this.onBufferCodecs,this),this.hls.on(Events.BUFFER_CODECS,this.onBufferCodecs,this)}onLevelUpdated(at,ut){if(ut.level===-1)return;const dt=this.hls.levels[ut.level],ct=_objectSpread2(_objectSpread2({},this.mediaSelection||this.altSelection),{},{main:dt});this.mediaSelection=ct,this.schedule.parseInterstitialDateRanges(ct,this.hls.config.interstitialAppendInPlace),!this.effectivePlayingItem&&this.schedule.items&&this.checkStart()}onAudioTrackUpdated(at,ut){const dt=this.hls.audioTracks[ut.id],ct=this.mediaSelection;if(!ct){this.altSelection=_objectSpread2(_objectSpread2({},this.altSelection),{},{audio:dt});return}const pt=_objectSpread2(_objectSpread2({},ct),{},{audio:dt});this.mediaSelection=pt}onSubtitleTrackUpdated(at,ut){const dt=this.hls.subtitleTracks[ut.id],ct=this.mediaSelection;if(!ct){this.altSelection=_objectSpread2(_objectSpread2({},this.altSelection),{},{subtitles:dt});return}const pt=_objectSpread2(_objectSpread2({},ct),{},{subtitles:dt});this.mediaSelection=pt}onAudioTrackSwitching(at,ut){const dt=getBasicSelectionOption(ut);this.playerQueue.forEach(ct=>ct.hls.setAudioOption(ut)||ct.hls.setAudioOption(dt))}onSubtitleTrackSwitch(at,ut){const dt=getBasicSelectionOption(ut);this.playerQueue.forEach(ct=>ct.hls.setSubtitleOption(ut)||ut.id!==-1&&ct.hls.setSubtitleOption(dt))}onBufferCodecs(at,ut){const dt=ut.tracks;dt&&(this.requiredTracks=dt)}onBufferAppended(at,ut){this.checkBuffer()}onBufferFlushed(at,ut){const dt=this.playingItem;if(dt&&!this.itemsMatch(dt,this.bufferingItem)&&!this.isInterstitial(dt)){const ct=this.timelinePos;this.bufferedPos=ct,this.checkBuffer()}}onBufferedToEnd(at){const ut=this.schedule.events;if(this.bufferedPos.25){at.event.assetList.forEach((pt,ft)=>{at.event.isAssetPastPlayoutLimit(ft)&&this.clearAssetPlayer(pt.identifier,null)});const dt=at.end+.25,ct=BufferHelper.bufferInfo(this.primaryMedia,dt,0);(ct.end>dt||(ct.nextStart||0)>dt)&&(this.attachPrimary(dt,null),this.flushFrontBuffer(dt))}}itemsMatch(at,ut){return!!ut&&(at===ut||at.event&&ut.event&&this.eventItemsMatch(at,ut)||!at.event&&!ut.event&&this.findItemIndex(at)===this.findItemIndex(ut))}eventItemsMatch(at,ut){var dt;return!!ut&&(at===ut||at.event.identifier===((dt=ut.event)==null?void 0:dt.identifier))}findItemIndex(at,ut){return at?this.schedule.findItemIndex(at,ut):-1}updateSchedule(){const at=this.mediaSelection;at&&this.schedule.updateSchedule(at,[])}checkBuffer(at){const ut=this.schedule.items;if(!ut)return;const dt=BufferHelper.bufferInfo(this.primaryMedia,this.timelinePos,0);at&&(this.bufferedPos=this.timelinePos),at||(at=dt.len<1),this.updateBufferedPos(dt.end,ut,at)}updateBufferedPos(at,ut,dt){const ct=this.schedule,pt=this.bufferingItem;if(this.bufferedPos>at)return;if(ut.length===1&&this.itemsMatch(ut[0],pt)){this.bufferedPos=at;return}const ft=this.playingItem,ht=this.findItemIndex(ft);let mt=ct.findItemIndexAtTime(at);if(this.bufferedPos=pt.end||(yt=At.event)!=null&&yt.appendInPlace&&at+.01>=At.start)&&(mt=St),St-ht>1&&(pt==null||(bt=pt.event)==null?void 0:bt.appendInPlace)===!1)return;if(this.bufferedPos=at,mt>Tt&&mt>ht)this.bufferedToItem(At);else{const vt=this.primaryDetails;this.primaryLive&&vt&&at>vt.edge-vt.targetduration&&At.start{const pt=this.getAssetPlayer(ct.identifier);return!(pt!=null&&pt.bufferedInPlaceToEnd(ut))})}setBufferingItem(at){const ut=this.bufferingItem,dt=this.schedule;if(this.itemsMatch(at,ut))this.bufferingItem!==at&&(this.bufferingItem=at);else{const{items:ct,events:pt}=dt;if(!ct||!pt)return ut;const ft=this.isInterstitial(at),ht=this.getBufferingPlayer();this.bufferingItem=at,this.bufferedPos=Math.max(at.start,Math.min(at.end,this.timelinePos));const mt=ht?ht.remaining:ut?ut.end-this.timelinePos:0;this.log(`INTERSTITIALS_BUFFERED_TO_BOUNDARY ${segmentToString(at)}`+(ut?` (${mt.toFixed(2)} remaining)`:"")),this.playbackDisabled||(ft?at.event.assetList.forEach(yt=>{const bt=this.getAssetPlayer(yt.identifier);bt&&bt.resumeBuffering()}):(this.hls.resumeBuffering(),this.playerQueue.forEach(yt=>yt.pauseBuffering()))),this.hls.trigger(Events.INTERSTITIALS_BUFFERED_TO_BOUNDARY,{events:pt.slice(0),schedule:ct.slice(0),bufferingIndex:this.findItemIndex(at),playingIndex:this.findItemIndex(this.playingItem)})}return ut}bufferedToItem(at,ut=0){const dt=this.setBufferingItem(at);if(!this.playbackDisabled){if(this.isInterstitial(at))this.bufferedToEvent(at,ut);else if(dt!==null){this.bufferingAsset=null;const ct=this.detachedData;ct?ct.mediaSource?this.attachPrimary(at.start,at,!0):this.preloadPrimary(at):this.preloadPrimary(at)}}}preloadPrimary(at){const ut=this.findItemIndex(at),dt=this.getPrimaryResumption(at,ut);this.startLoadingPrimaryAt(dt)}bufferedToEvent(at,ut){const dt=at.event,ct=dt.assetList.length===0&&!dt.assetListLoader,pt=dt.cue.once;if(ct||!pt){const ft=this.preloadAssets(dt,ut);if(ft!=null&&ft.interstitial.appendInPlace){const ht=dt.assetList[ut],mt=this.primaryMedia;ht&&mt&&this.bufferAssetPlayer(ft,mt)}}}preloadAssets(at,ut){const dt=at.assetUrl,ct=at.assetList.length,pt=ct===0&&!at.assetListLoader,ft=at.cue.once;if(pt){const mt=at.timelineStart;if(at.appendInPlace){var ht;const St=this.playingItem;!this.isInterstitial(St)&&(St==null||(ht=St.nextEvent)==null?void 0:ht.identifier)===at.identifier&&this.flushFrontBuffer(mt+.25)}let yt,bt=0;if(!this.playingItem&&this.primaryLive&&(bt=this.hls.startPosition,bt===-1&&(bt=this.hls.liveSyncPosition||0)),bt&&!(at.cue.pre||at.cue.post)){const St=bt-mt;St>0&&(yt=Math.round(St*1e3)/1e3)}if(this.log(`Load interstitial asset ${ut+1}/${dt?1:ct} ${at}${yt?` live-start: ${bt} start-offset: ${yt}`:""}`),dt)return this.createAsset(at,0,0,mt,at.duration,dt);const Tt=this.assetListLoader.loadAssetList(at,yt);Tt&&(at.assetListLoader=Tt)}else if(!ft&&ct){for(let mt=ut;mt{this.hls.trigger(Events.BUFFER_FLUSHING,{startOffset:at,endOffset:1/0,type:ct})})}getAssetPlayerQueueIndex(at){const ut=this.playerQueue;for(let dt=0;dt1){const kt=ut.duration;kt&&Ct{if(Ct.live){const $t=new Error(`Interstitials MUST be VOD assets ${at}`),Lt={fatal:!0,type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.INTERSTITIAL_ASSET_ITEM_ERROR,error:$t};this.handleAssetItemError(Lt,at,this.schedule.findEventIndex(at.identifier),dt,$t.message);return}const kt=Ct.edge-Ct.fragmentStart,wt=ut.duration;(wt===null||kt>wt)&&(this.log(`Interstitial asset "${Tt}" duration change ${wt} > ${kt}`),ut.duration=kt,this.updateSchedule())};vt.on(Events.LEVEL_UPDATED,(Ct,{details:kt})=>Dt(kt)),vt.on(Events.LEVEL_PTS_UPDATED,(Ct,{details:kt})=>Dt(kt));const Et=(Ct,kt)=>{const wt=this.getAssetPlayer(Tt);if(wt&&kt.tracks){wt.off(Events.BUFFER_CODECS,Et),wt.tracks=kt.tracks;const $t=this.primaryMedia;this.bufferingAsset===wt.assetItem&&$t&&!wt.media&&this.bufferAssetPlayer(wt,$t)}};vt.on(Events.BUFFER_CODECS,Et);const _t=()=>{var Ct;const kt=this.getAssetPlayer(Tt);if(this.log(`buffered to end of asset ${kt}`),!kt)return;const wt=this.schedule.findEventIndex(at.identifier),$t=(Ct=this.schedule.items)==null?void 0:Ct[wt];if(this.isInterstitial($t)){const Ot=at.findAssetIndex(ut),zt=getNextAssetIndex(at,Ot);if(!at.isAssetPastPlayoutLimit(zt))this.bufferedToItem($t,zt);else{var Lt;const Mt=(Lt=this.schedule.items)==null?void 0:Lt[wt+1];Mt&&this.bufferedToItem(Mt)}}};vt.on(Events.BUFFERED_TO_END,_t);const xt=Ct=>()=>{if(!this.getAssetPlayer(Tt))return;this.shouldPlay=!0;const wt=this.schedule.findEventIndex(at.identifier);this.advanceAfterAssetEnded(at,wt,Ct)};return vt.once(Events.MEDIA_ENDED,xt(dt)),vt.once(Events.PLAYOUT_LIMIT_REACHED,xt(1/0)),vt.on(Events.ERROR,(Ct,kt)=>{const wt=this.getAssetPlayer(Tt);if(kt.details===ErrorDetails.BUFFER_STALLED_ERROR){if(wt!=null&&wt.media){const $t=wt.currentTime,Lt=wt.duration-$t;$t&&at.appendInPlace&&Lt/wt.media.playbackRate<.5?(this.log(`Advancing buffer past end of asset ${Tt} ${at} at ${wt.media.currentTime}`),_t()):(this.warn(`Stalled at ${$t} of ${$t+Lt} in asset ${Tt} ${at}`),this.onTimeupdate(),this.checkBuffer(!0))}return}this.handleAssetItemError(kt,at,this.schedule.findEventIndex(at.identifier),dt,`Asset player error ${kt.error} ${at}`)}),vt.on(Events.DESTROYING,()=>{if(!this.getAssetPlayer(Tt))return;const kt=new Error(`Asset player destroyed unexpectedly ${Tt}`),wt={fatal:!0,type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.INTERSTITIAL_ASSET_ITEM_ERROR,error:kt};this.handleAssetItemError(wt,at,this.schedule.findEventIndex(at.identifier),dt,kt.message)}),this.log(`INTERSTITIAL_ASSET_PLAYER_CREATED ${eventAssetToString(ut)}`),this.hls.trigger(Events.INTERSTITIAL_ASSET_PLAYER_CREATED,{asset:ut,assetListIndex:dt,event:at,player:vt}),vt}clearInterstitial(at,ut){at.assetList.forEach(dt=>{this.clearAssetPlayer(dt.identifier,ut)}),at.reset()}resetAssetPlayer(at){const ut=this.getAssetPlayerQueueIndex(at);if(ut!==-1){this.log(`reset asset player "${at}" after error`);const dt=this.playerQueue[ut];this.transferMediaFromPlayer(dt,null),dt.resetDetails()}}clearAssetPlayer(at,ut){const dt=this.getAssetPlayerQueueIndex(at);if(dt!==-1){this.log(`clear asset player "${at}" toSegment: ${ut&&segmentToString(ut)}`);const ct=this.playerQueue[dt];this.transferMediaFromPlayer(ct,ut),this.playerQueue.splice(dt,1),ct.destroy()}}emptyPlayerQueue(){let at;for(;at=this.playerQueue.pop();)at.destroy();this.playerQueue=[]}startAssetPlayer(at,ut,dt,ct,pt){const{interstitial:ft,assetItem:ht,assetId:mt}=at,yt=ft.assetList.length,bt=this.playingAsset;this.endedAsset=null,this.playingAsset=ht,(!bt||bt.identifier!==mt)&&(bt&&(this.clearAssetPlayer(bt.identifier,dt[ct]),delete bt.error),this.log(`INTERSTITIAL_ASSET_STARTED ${ut+1}/${yt} ${eventAssetToString(ht)}`),this.hls.trigger(Events.INTERSTITIAL_ASSET_STARTED,{asset:ht,assetListIndex:ut,event:ft,schedule:dt.slice(0),scheduleIndex:ct,player:at})),this.bufferAssetPlayer(at,pt)}bufferAssetPlayer(at,ut){var dt,ct;const{interstitial:pt,assetItem:ft}=at,ht=this.schedule.findEventIndex(pt.identifier),mt=(dt=this.schedule.items)==null?void 0:dt[ht];if(!mt)return;this.setBufferingItem(mt),this.bufferingAsset=ft;const yt=this.getBufferingPlayer();if(yt===at)return;const bt=pt.appendInPlace;if(bt&&(yt==null?void 0:yt.interstitial.appendInPlace)===!1)return;const Tt=(yt==null?void 0:yt.tracks)||((ct=this.detachedData)==null?void 0:ct.tracks)||this.requiredTracks;if(bt&&ft!==this.playingAsset){if(!at.tracks)return;if(Tt&&!isCompatibleTrackChange(Tt,at.tracks)){const St=new Error(`Asset ${eventAssetToString(ft)} SourceBuffer tracks ('${Object.keys(at.tracks)}') are not compatible with primary content tracks ('${Object.keys(Tt)}')`),At={fatal:!0,type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.INTERSTITIAL_ASSET_ITEM_ERROR,error:St},vt=pt.findAssetIndex(ft);this.handleAssetItemError(At,pt,ht,vt,St.message);return}}this.transferMediaTo(at,ut)}handleAssetItemError(at,ut,dt,ct,pt){if(at.details===ErrorDetails.BUFFER_STALLED_ERROR)return;const ft=ut.assetList[ct];this.warn(`INTERSTITIAL_ASSET_ERROR ${ft&&eventAssetToString(ft)} ${at.error}`);const ht=ft==null?void 0:ft.identifier,mt=this.getAssetPlayerQueueIndex(ht),yt=this.playerQueue[mt]||null,bt=this.schedule.items,Tt=_extends({},at,{fatal:!1,errorAction:createDoNothingErrorAction(!0),asset:ft,assetListIndex:ct,event:ut,schedule:bt,scheduleIndex:dt,player:yt});if(this.hls.trigger(Events.INTERSTITIAL_ASSET_ERROR,Tt),!at.fatal)return;const St=this.playingAsset,At=new Error(pt);if(ft&&(this.clearAssetPlayer(ht,null),ft.error=At),!ut.assetList.some(vt=>!vt.error))ut.error=At;else{for(let vt=ct;vt"} error: ${at.error}`);let ct=this.timelinePos;ct===-1&&(ct=this.hls.startPosition);const pt=this.updateItem(dt,ct);this.itemsMatch(dt,pt)&&this.clearInterstitial(at,null),at.appendInPlace&&(this.attachPrimary(ut,null),this.flushFrontBuffer(ut));const ft=this.schedule.findItemIndexAtTime(ct);this.setSchedulePosition(ft)}else this.checkStart()}onAssetListLoaded(at,ut){var dt;const ct=ut.event,pt=ct.identifier,ft=ut.assetListResponse.ASSETS;if(!this.schedule.hasEvent(pt))return;const ht=ct.timelineStart,mt=ct.duration;let yt=0;ft.forEach((vt,Dt)=>{const Et=parseFloat(vt.DURATION);this.createAsset(ct,Dt,yt,ht+yt,Et,vt.URI),yt+=Et}),ct.duration=yt,this.log(`Loaded asset-list with duration: ${yt} (was: ${mt}) ${ct}`);const bt=this.waitingItem,Tt=(bt==null?void 0:bt.event.identifier)===pt;this.updateSchedule();const St=(dt=this.bufferingItem)==null?void 0:dt.event;if(Tt){var At;const vt=this.schedule.findEventIndex(pt),Dt=(At=this.schedule.items)==null?void 0:At[vt];if(Dt){if(!this.playingItem&&this.timelinePos>Dt.end&&this.schedule.findItemIndexAtTime(this.timelinePos)!==vt){ct.error=new Error(`Interstitial no longer within playback range ${this.timelinePos} ${ct}`),this.primaryFallback(ct);return}this.setBufferingItem(Dt)}this.setSchedulePosition(vt)}else if((St==null?void 0:St.identifier)===pt&&St.appendInPlace){const vt=ct.assetList[0],Dt=this.getAssetPlayer(vt.identifier),Et=this.primaryMedia;vt&&Dt&&Et&&this.bufferAssetPlayer(Dt,Et)}}onError(at,ut){switch(ut.details){case ErrorDetails.ASSET_LIST_PARSING_ERROR:case ErrorDetails.ASSET_LIST_LOAD_ERROR:case ErrorDetails.ASSET_LIST_LOAD_TIMEOUT:{const dt=ut.interstitial;dt&&this.primaryFallback(dt);break}case ErrorDetails.BUFFER_STALLED_ERROR:{this.onTimeupdate(),this.checkBuffer(!0);break}}}}const TICK_INTERVAL$2=500;class SubtitleStreamController extends BaseStreamController{constructor(at,ut,dt){super(at,ut,dt,"subtitle-stream-controller",PlaylistLevelType.SUBTITLE),this.currentTrackId=-1,this.tracksBuffered=[],this.mainDetails=null,this.registerListeners()}onHandlerDestroying(){this.unregisterListeners(),super.onHandlerDestroying(),this.mainDetails=null}registerListeners(){super.registerListeners();const{hls:at}=this;at.on(Events.LEVEL_LOADED,this.onLevelLoaded,this),at.on(Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),at.on(Events.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),at.on(Events.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),at.on(Events.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),at.on(Events.BUFFER_FLUSHING,this.onBufferFlushing,this)}unregisterListeners(){super.unregisterListeners();const{hls:at}=this;at.off(Events.LEVEL_LOADED,this.onLevelLoaded,this),at.off(Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),at.off(Events.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),at.off(Events.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),at.off(Events.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),at.off(Events.BUFFER_FLUSHING,this.onBufferFlushing,this)}startLoad(at,ut){this.stopLoad(),this.state=State.IDLE,this.setInterval(TICK_INTERVAL$2),this.nextLoadPosition=this.lastCurrentTime=at+this.timelineOffset,this.startPosition=ut?-1:at,this.tick()}onManifestLoading(){super.onManifestLoading(),this.mainDetails=null}onMediaDetaching(at,ut){this.tracksBuffered=[],super.onMediaDetaching(at,ut)}onLevelLoaded(at,ut){this.mainDetails=ut.details}onSubtitleFragProcessed(at,ut){const{frag:dt,success:ct}=ut;if(this.fragContextChanged(dt)||(isMediaFragment(dt)&&(this.fragPrevious=dt),this.state=State.IDLE),!ct)return;const pt=this.tracksBuffered[this.currentTrackId];if(!pt)return;let ft;const ht=dt.start;for(let yt=0;yt=pt[yt].start&&ht<=pt[yt].end){ft=pt[yt];break}const mt=dt.start+dt.duration;ft?ft.end=mt:(ft={start:ht,end:mt},pt.push(ft)),this.fragmentTracker.fragBuffered(dt),this.fragBufferedComplete(dt,null),this.media&&this.tick()}onBufferFlushing(at,ut){const{startOffset:dt,endOffset:ct}=ut;if(dt===0&&ct!==Number.POSITIVE_INFINITY){const pt=ct-1;if(pt<=0)return;ut.endOffsetSubtitles=Math.max(0,pt),this.tracksBuffered.forEach(ft=>{for(let ht=0;htnew Level(dt));return}this.tracksBuffered=[],this.levels=ut.map(dt=>{const ct=new Level(dt);return this.tracksBuffered[ct.id]=[],ct}),this.fragmentTracker.removeFragmentsInRange(0,Number.POSITIVE_INFINITY,PlaylistLevelType.SUBTITLE),this.fragPrevious=null,this.mediaBuffer=null}onSubtitleTrackSwitch(at,ut){var dt;if(this.currentTrackId=ut.id,!((dt=this.levels)!=null&&dt.length)||this.currentTrackId===-1){this.clearInterval();return}const ct=this.levels[this.currentTrackId];ct!=null&&ct.details?this.mediaBuffer=this.mediaBufferTimeRanges:this.mediaBuffer=null,ct&&this.state!==State.STOPPED&&this.setInterval(TICK_INTERVAL$2)}onSubtitleTrackLoaded(at,ut){var dt;const{currentTrackId:ct,levels:pt}=this,{details:ft,id:ht}=ut;if(!pt){this.warn(`Subtitle tracks were reset while loading level ${ht}`);return}const mt=pt[ht];if(ht>=pt.length||!mt)return;this.log(`Subtitle track ${ht} loaded [${ft.startSN},${ft.endSN}]${ft.lastPartSn?`[part-${ft.lastPartSn}-${ft.lastPartIndex}]`:""},duration:${ft.totalduration}`),this.mediaBuffer=this.mediaBufferTimeRanges;let yt=0;if(ft.live||(dt=mt.details)!=null&&dt.live){if(ft.deltaUpdateFailed)return;const Tt=this.mainDetails;if(!Tt){this.startFragRequested=!1;return}const St=Tt.fragments[0];if(!mt.details)ft.hasProgramDateTime&&Tt.hasProgramDateTime?(alignMediaPlaylistByPDT(ft,Tt),yt=ft.fragmentStart):St&&(yt=St.start,addSliding(ft,yt));else{var bt;yt=this.alignPlaylists(ft,mt.details,(bt=this.levelLastLoaded)==null?void 0:bt.details),yt===0&&St&&(yt=St.start,addSliding(ft,yt))}Tt&&!this.startFragRequested&&this.setStartPosition(Tt,yt)}mt.details=ft,this.levelLastLoaded=mt,ht===ct&&(this.hls.trigger(Events.SUBTITLE_TRACK_UPDATED,{details:ft,id:ht,groupId:ut.groupId}),this.tick(),ft.live&&!this.fragCurrent&&this.media&&this.state===State.IDLE&&(findFragmentByPTS(null,ft.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),mt.details=void 0)))}_handleFragmentLoadComplete(at){const{frag:ut,payload:dt}=at,ct=ut.decryptdata,pt=this.hls;if(!this.fragContextChanged(ut)&&dt&&dt.byteLength>0&&ct!=null&&ct.key&&ct.iv&&isFullSegmentEncryption(ct.method)){const ft=performance.now();this.decrypter.decrypt(new Uint8Array(dt),ct.key.buffer,ct.iv.buffer,getAesModeFromFullSegmentMethod(ct.method)).catch(ht=>{throw pt.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.FRAG_DECRYPT_ERROR,fatal:!1,error:ht,reason:ht.message,frag:ut}),ht}).then(ht=>{const mt=performance.now();pt.trigger(Events.FRAG_DECRYPTED,{frag:ut,payload:ht,stats:{tstart:ft,tdecrypt:mt}})}).catch(ht=>{this.warn(`${ht.name}: ${ht.message}`),this.state=State.IDLE})}}doTick(){if(!this.media){this.state=State.IDLE;return}if(this.state===State.IDLE){const{currentTrackId:at,levels:ut}=this,dt=ut==null?void 0:ut[at];if(!dt||!ut.length||!dt.details||this.waitForLive(dt))return;const{config:ct}=this,pt=this.getLoadPosition(),ft=BufferHelper.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],pt,ct.maxBufferHole),{end:ht,len:mt}=ft,yt=dt.details,bt=this.hls.maxBufferLength+yt.levelTargetDuration;if(mt>bt)return;const Tt=yt.fragments,St=Tt.length,At=yt.edge;let vt=null;const Dt=this.fragPrevious;if(htAt-xt?0:xt;vt=findFragmentByPTS(Dt,Tt,Math.max(Tt[0].start,ht),Ct),!vt&&Dt&&Dt.start{if(ct=ct>>>0,ct>pt-1)throw new DOMException(`Failed to execute '${dt}' on 'TimeRanges': The index provided (${ct}) is greater than the maximum bound (${pt})`);return at[ct][dt]};this.buffered={get length(){return at.length},end(dt){return ut("end",dt,at.length)},start(dt){return ut("start",dt,at.length)}}}}const specialCea608CharsCodes={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},getCharForByte=st=>String.fromCharCode(specialCea608CharsCodes[st]||st),NR_ROWS=15,NR_COLS=100,rowsLowCh1={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},rowsHighCh1={17:2,18:4,21:6,22:8,23:10,19:13,20:15},rowsLowCh2={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},rowsHighCh2={25:2,26:4,29:6,30:8,31:10,27:13,28:15},backgroundColors=["white","green","blue","cyan","red","yellow","magenta","black","transparent"];class CaptionsLogger{constructor(){this.time=null,this.verboseLevel=0}log(at,ut){if(this.verboseLevel>=at){const dt=typeof ut=="function"?ut():ut;logger.log(`${this.time} [${at}] ${dt}`)}}}const numArrayToHexArray=function st(at){const ut=[];for(let dt=0;dtNR_COLS&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=NR_COLS)}moveCursor(at){const ut=this.pos+at;if(at>1)for(let dt=this.pos+1;dt=144&&this.backSpace();const ut=getCharForByte(at);if(this.pos>=NR_COLS){this.logger.log(0,()=>"Cannot insert "+at.toString(16)+" ("+ut+") at position "+this.pos+". Skipping it!");return}this.chars[this.pos].setChar(ut,this.currPenState),this.moveCursor(1)}clearFromPos(at){let ut;for(ut=at;ut"pacData = "+stringify(at));let ut=at.row-1;if(this.nrRollUpRows&&ut"bkgData = "+stringify(at)),this.backSpace(),this.setPen(at),this.insertChar(32)}setRollUpRows(at){this.nrRollUpRows=at}rollUp(){if(this.nrRollUpRows===null){this.logger.log(3,"roll_up but nrRollUpRows not set yet");return}this.logger.log(1,()=>this.getDisplayText());const at=this.currRow+1-this.nrRollUpRows,ut=this.rows.splice(at,1)[0];ut.clear(),this.rows.splice(this.currRow,0,ut),this.logger.log(2,"Rolling up")}getDisplayText(at){at=at||!1;const ut=[];let dt="",ct=-1;for(let pt=0;pt0&&(at?dt="["+ut.join(" | ")+"]":dt=ut.join(` `)),dt}getTextAndFormat(){return this.rows}}class Cea608Channel{constructor(at,ut,dt){this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=at,this.outputFilter=ut,this.mode=null,this.verbose=0,this.displayedMemory=new CaptionScreen(dt),this.nonDisplayedMemory=new CaptionScreen(dt),this.lastOutputScreen=new CaptionScreen(dt),this.currRollUpRow=this.displayedMemory.rows[NR_ROWS-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=dt}reset(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[NR_ROWS-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}getHandler(){return this.outputFilter}setHandler(at){this.outputFilter=at}setPAC(at){this.writeScreen.setPAC(at)}setBkgData(at){this.writeScreen.setBkgData(at)}setMode(at){at!==this.mode&&(this.mode=at,this.logger.log(2,()=>"MODE="+at),this.mode==="MODE_POP-ON"?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),this.mode!=="MODE_ROLL-UP"&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=at)}insertChars(at){for(let dt=0;dtut+": "+this.writeScreen.getDisplayText(!0)),(this.mode==="MODE_PAINT-ON"||this.mode==="MODE_ROLL-UP")&&(this.logger.log(1,()=>"DISPLAYED: "+this.displayedMemory.getDisplayText(!0)),this.outputDataUpdate())}ccRCL(){this.logger.log(2,"RCL - Resume Caption Loading"),this.setMode("MODE_POP-ON")}ccBS(){this.logger.log(2,"BS - BackSpace"),this.mode!=="MODE_TEXT"&&(this.writeScreen.backSpace(),this.writeScreen===this.displayedMemory&&this.outputDataUpdate())}ccAOF(){}ccAON(){}ccDER(){this.logger.log(2,"DER- Delete to End of Row"),this.writeScreen.clearToEndOfRow(),this.outputDataUpdate()}ccRU(at){this.logger.log(2,"RU("+at+") - Roll Up"),this.writeScreen=this.displayedMemory,this.setMode("MODE_ROLL-UP"),this.writeScreen.setRollUpRows(at)}ccFON(){this.logger.log(2,"FON - Flash On"),this.writeScreen.setPen({flash:!0})}ccRDC(){this.logger.log(2,"RDC - Resume Direct Captioning"),this.setMode("MODE_PAINT-ON")}ccTR(){this.logger.log(2,"TR"),this.setMode("MODE_TEXT")}ccRTD(){this.logger.log(2,"RTD"),this.setMode("MODE_TEXT")}ccEDM(){this.logger.log(2,"EDM - Erase Displayed Memory"),this.displayedMemory.reset(),this.outputDataUpdate(!0)}ccCR(){this.logger.log(2,"CR - Carriage Return"),this.writeScreen.rollUp(),this.outputDataUpdate(!0)}ccENM(){this.logger.log(2,"ENM - Erase Non-displayed Memory"),this.nonDisplayedMemory.reset()}ccEOC(){if(this.logger.log(2,"EOC - End Of Caption"),this.mode==="MODE_POP-ON"){const at=this.displayedMemory;this.displayedMemory=this.nonDisplayedMemory,this.nonDisplayedMemory=at,this.writeScreen=this.nonDisplayedMemory,this.logger.log(1,()=>"DISP: "+this.displayedMemory.getDisplayText())}this.outputDataUpdate(!0)}ccTO(at){this.logger.log(2,"TO("+at+") - Tab Offset"),this.writeScreen.moveCursor(at)}ccMIDROW(at){const ut={flash:!1};if(ut.underline=at%2===1,ut.italics=at>=46,ut.italics)ut.foreground="white";else{const dt=Math.floor(at/2)-16,ct=["white","green","blue","cyan","red","yellow","magenta"];ut.foreground=ct[dt]}this.logger.log(2,"MIDROW: "+stringify(ut)),this.writeScreen.setPen(ut)}outputDataUpdate(at=!1){const ut=this.logger.time;ut!==null&&this.outputFilter&&(this.cueStartTime===null&&!this.displayedMemory.isEmpty()?this.cueStartTime=ut:this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,ut,this.lastOutputScreen),at&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:ut),this.lastOutputScreen.copy(this.displayedMemory))}cueSplitAtTime(at){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,at,this.displayedMemory),this.cueStartTime=at))}}class Cea608Parser{constructor(at,ut,dt){this.channels=void 0,this.currentChannel=0,this.cmdHistory=createCmdHistory(),this.logger=void 0;const ct=this.logger=new CaptionsLogger;this.channels=[null,new Cea608Channel(at,ut,ct),new Cea608Channel(at+1,dt,ct)]}getHandler(at){return this.channels[at].getHandler()}setHandler(at,ut){this.channels[at].setHandler(ut)}addData(at,ut){this.logger.time=at;for(let dt=0;dt"["+numArrayToHexArray([ut[dt],ut[dt+1]])+"] -> ("+numArrayToHexArray([ct,pt])+")");const mt=this.cmdHistory;if(ct>=16&&ct<=31){if(hasCmdRepeated(ct,pt,mt)){setLastCmd(null,null,mt),this.logger.log(3,()=>"Repeated command ("+numArrayToHexArray([ct,pt])+") is dropped");continue}setLastCmd(ct,pt,this.cmdHistory),ft=this.parseCmd(ct,pt),ft||(ft=this.parseMidrow(ct,pt)),ft||(ft=this.parsePAC(ct,pt)),ft||(ft=this.parseBackgroundAttributes(ct,pt))}else setLastCmd(null,null,mt);if(!ft&&(ht=this.parseChars(ct,pt),ht)){const bt=this.currentChannel;bt&&bt>0?this.channels[bt].insertChars(ht):this.logger.log(2,"No channel found yet. TEXT-MODE?")}!ft&&!ht&&this.logger.log(2,()=>"Couldn't parse cleaned data "+numArrayToHexArray([ct,pt])+" orig: "+numArrayToHexArray([ut[dt],ut[dt+1]]))}}parseCmd(at,ut){const dt=(at===20||at===28||at===21||at===29)&&ut>=32&&ut<=47,ct=(at===23||at===31)&&ut>=33&&ut<=35;if(!(dt||ct))return!1;const pt=at===20||at===21||at===23?1:2,ft=this.channels[pt];return at===20||at===21||at===28||at===29?ut===32?ft.ccRCL():ut===33?ft.ccBS():ut===34?ft.ccAOF():ut===35?ft.ccAON():ut===36?ft.ccDER():ut===37?ft.ccRU(2):ut===38?ft.ccRU(3):ut===39?ft.ccRU(4):ut===40?ft.ccFON():ut===41?ft.ccRDC():ut===42?ft.ccTR():ut===43?ft.ccRTD():ut===44?ft.ccEDM():ut===45?ft.ccCR():ut===46?ft.ccENM():ut===47&&ft.ccEOC():ft.ccTO(ut-32),this.currentChannel=pt,!0}parseMidrow(at,ut){let dt=0;if((at===17||at===25)&&ut>=32&&ut<=47){if(at===17?dt=1:dt=2,dt!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;const ct=this.channels[dt];return ct?(ct.ccMIDROW(ut),this.logger.log(3,()=>"MIDROW ("+numArrayToHexArray([at,ut])+")"),!0):!1}return!1}parsePAC(at,ut){let dt;const ct=(at>=17&&at<=23||at>=25&&at<=31)&&ut>=64&&ut<=127,pt=(at===16||at===24)&&ut>=64&&ut<=95;if(!(ct||pt))return!1;const ft=at<=23?1:2;ut>=64&&ut<=95?dt=ft===1?rowsLowCh1[at]:rowsLowCh2[at]:dt=ft===1?rowsHighCh1[at]:rowsHighCh2[at];const ht=this.channels[ft];return ht?(ht.setPAC(this.interpretPAC(dt,ut)),this.currentChannel=ft,!0):!1}interpretPAC(at,ut){let dt;const ct={color:null,italics:!1,indent:null,underline:!1,row:at};return ut>95?dt=ut-96:dt=ut-64,ct.underline=(dt&1)===1,dt<=13?ct.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(dt/2)]:dt<=15?(ct.italics=!0,ct.color="white"):ct.indent=Math.floor((dt-16)/2)*4,ct}parseChars(at,ut){let dt,ct=null,pt=null;if(at>=25?(dt=2,pt=at-8):(dt=1,pt=at),pt>=17&&pt<=19){let ft;pt===17?ft=ut+80:pt===18?ft=ut+112:ft=ut+144,this.logger.log(2,()=>"Special char '"+getCharForByte(ft)+"' in channel "+dt),ct=[ft]}else at>=32&&at<=127&&(ct=ut===0?[at]:[at,ut]);return ct&&this.logger.log(3,()=>"Char codes = "+numArrayToHexArray(ct).join(",")),ct}parseBackgroundAttributes(at,ut){const dt=(at===16||at===24)&&ut>=32&&ut<=47,ct=(at===23||at===31)&&ut>=45&&ut<=47;if(!(dt||ct))return!1;let pt;const ft={};at===16||at===24?(pt=Math.floor((ut-32)/2),ft.background=backgroundColors[pt],ut%2===1&&(ft.background=ft.background+"_semi")):ut===45?ft.background="transparent":(ft.foreground="black",ut===47&&(ft.underline=!0));const ht=at<=23?1:2;return this.channels[ht].setBkgData(ft),!0}reset(){for(let at=0;at100)throw new Error("Position must be between 0 and 100.");$t=Mt,this.hasBeenReset=!0}})),Object.defineProperty(bt,"positionAlign",pt({},Tt,{get:function(){return Lt},set:function(Mt){const qt=ct(Mt);if(!qt)throw new SyntaxError("An invalid or illegal string was specified.");Lt=qt,this.hasBeenReset=!0}})),Object.defineProperty(bt,"size",pt({},Tt,{get:function(){return Ot},set:function(Mt){if(Mt<0||Mt>100)throw new Error("Size must be between 0 and 100.");Ot=Mt,this.hasBeenReset=!0}})),Object.defineProperty(bt,"align",pt({},Tt,{get:function(){return zt},set:function(Mt){const qt=ct(Mt);if(!qt)throw new SyntaxError("An invalid or illegal string was specified.");zt=qt,this.hasBeenReset=!0}})),bt.displayState=void 0}return ft.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},ft}();class StringDecoder{decode(at,ut){if(!at)return"";if(typeof at!="string")throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(at))}}function parseTimeStamp(st){function at(dt,ct,pt,ft){return(dt|0)*3600+(ct|0)*60+(pt|0)+parseFloat(ft||0)}const ut=st.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return ut?parseFloat(ut[2])>59?at(ut[2],ut[3],0,ut[4]):at(ut[1],ut[2],ut[3],ut[4]):null}class Settings{constructor(){this.values=Object.create(null)}set(at,ut){!this.get(at)&&ut!==""&&(this.values[at]=ut)}get(at,ut,dt){return dt?this.has(at)?this.values[at]:ut[dt]:this.has(at)?this.values[at]:ut}has(at){return at in this.values}alt(at,ut,dt){for(let ct=0;ct=0&&dt<=100)return this.set(at,dt),!0}return!1}}function parseOptions(st,at,ut,dt){const ct=dt?st.split(dt):[st];for(const pt in ct){if(typeof ct[pt]!="string")continue;const ft=ct[pt].split(ut);if(ft.length!==2)continue;const ht=ft[0],mt=ft[1];at(ht,mt)}}const defaults$1=new VTTCue(0,0,""),center=defaults$1.align==="middle"?"middle":"center";function parseCue(st,at,ut){const dt=st;function ct(){const ht=parseTimeStamp(st);if(ht===null)throw new Error("Malformed timestamp: "+dt);return st=st.replace(/^[^\sa-zA-Z-]+/,""),ht}function pt(ht,mt){const yt=new Settings;parseOptions(ht,function(St,At){let vt;switch(St){case"region":for(let Dt=ut.length-1;Dt>=0;Dt--)if(ut[Dt].id===At){yt.set(St,ut[Dt].region);break}break;case"vertical":yt.alt(St,At,["rl","lr"]);break;case"line":vt=At.split(","),yt.integer(St,vt[0]),yt.percent(St,vt[0])&&yt.set("snapToLines",!1),yt.alt(St,vt[0],["auto"]),vt.length===2&&yt.alt("lineAlign",vt[1],["start",center,"end"]);break;case"position":vt=At.split(","),yt.percent(St,vt[0]),vt.length===2&&yt.alt("positionAlign",vt[1],["start",center,"end","line-left","line-right","auto"]);break;case"size":yt.percent(St,At);break;case"align":yt.alt(St,At,["start",center,"end","left","right"]);break}},/:/,/\s/),mt.region=yt.get("region",null),mt.vertical=yt.get("vertical","");let bt=yt.get("line","auto");bt==="auto"&&defaults$1.line===-1&&(bt=-1),mt.line=bt,mt.lineAlign=yt.get("lineAlign","start"),mt.snapToLines=yt.get("snapToLines",!0),mt.size=yt.get("size",100),mt.align=yt.get("align",center);let Tt=yt.get("position","auto");Tt==="auto"&&defaults$1.position===50&&(Tt=mt.align==="start"||mt.align==="left"?0:mt.align==="end"||mt.align==="right"?100:50),mt.position=Tt}function ft(){st=st.replace(/^\s+/,"")}if(ft(),at.startTime=ct(),ft(),st.slice(0,3)!=="-->")throw new Error("Malformed time stamp (time stamps must be separated by '-->'): "+dt);st=st.slice(3),ft(),at.endTime=ct(),ft(),pt(st,at)}function fixLineBreaks(st){return st.replace(//gi,` `)}class VTTParser{constructor(){this.state="INITIAL",this.buffer="",this.decoder=new StringDecoder,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}parse(at){const ut=this;at&&(ut.buffer+=ut.decoder.decode(at,{stream:!0}));function dt(){let pt=ut.buffer,ft=0;for(pt=fixLineBreaks(pt);ft")===-1){ut.cue.id=pt;continue}case"CUE":if(!ut.cue){ut.state="BADCUE";continue}try{parseCue(pt,ut.cue,ut.regionList)}catch{ut.cue=null,ut.state="BADCUE";continue}ut.state="CUETEXT";continue;case"CUETEXT":{const ht=pt.indexOf("-->")!==-1;if(!pt||ht&&(ft=!0)){ut.oncue&&ut.cue&&ut.oncue(ut.cue),ut.cue=null,ut.state="ID";continue}if(ut.cue===null)continue;ut.cue.text&&(ut.cue.text+=` `),ut.cue.text+=pt}continue;case"BADCUE":pt||(ut.state="ID")}}}catch{ut.state==="CUETEXT"&&ut.cue&&ut.oncue&&ut.oncue(ut.cue),ut.cue=null,ut.state=ut.state==="INITIAL"?"BADWEBVTT":"BADCUE"}return this}flush(){const at=this;try{if((at.cue||at.state==="HEADER")&&(at.buffer+=` `,at.parse()),at.state==="INITIAL"||at.state==="BADWEBVTT")throw new Error("Malformed WebVTT signature.")}catch(ut){at.onparsingerror&&at.onparsingerror(ut)}return at.onflush&&at.onflush(),this}}const LINEBREAKS=/\r\n|\n\r|\n|\r/g,startsWith=function st(at,ut,dt=0){return at.slice(dt,dt+ut.length)===ut},cueString2millis=function st(at){let ut=parseInt(at.slice(-3));const dt=parseInt(at.slice(-6,-4)),ct=parseInt(at.slice(-9,-7)),pt=at.length>9?parseInt(at.substring(0,at.indexOf(":"))):0;if(!isFiniteNumber(ut)||!isFiniteNumber(dt)||!isFiniteNumber(ct)||!isFiniteNumber(pt))throw Error(`Malformed X-TIMESTAMP-MAP: Local:${at}`);return ut+=1e3*dt,ut+=60*1e3*ct,ut+=60*60*1e3*pt,ut};function generateCueId(st,at,ut){return hash(st.toString())+hash(at.toString())+hash(ut)}const calculateOffset=function st(at,ut,dt){let ct=at[ut],pt=at[ct.prevCC];if(!pt||!pt.new&&ct.new){at.ccOffset=at.presentationOffset=ct.start,ct.new=!1;return}for(;(ft=pt)!=null&&ft.new;){var ft;at.ccOffset+=ct.start-pt.start,ct.new=!1,ct=pt,pt=at[ct.prevCC]}at.presentationOffset=dt};function parseWebVTT(st,at,ut,dt,ct,pt,ft){const ht=new VTTParser,mt=utf8ArrayToStr(new Uint8Array(st)).trim().replace(LINEBREAKS,` `).split(` `),yt=[],bt=at?toMpegTsClockFromTimescale(at.baseTime,at.timescale):0;let Tt="00:00.000",St=0,At=0,vt,Dt=!0;ht.oncue=function(Et){const _t=ut[dt];let xt=ut.ccOffset;const Ct=(St-bt)/9e4;if(_t!=null&&_t.new&&(At!==void 0?xt=ut.ccOffset=_t.start:calculateOffset(ut,dt,Ct)),Ct){if(!at){vt=new Error("Missing initPTS for VTT MPEGTS");return}xt=Ct-ut.presentationOffset}const kt=Et.endTime-Et.startTime,wt=normalizePts((Et.startTime+xt-At)*9e4,ct*9e4)/9e4;Et.startTime=Math.max(wt,0),Et.endTime=Math.max(wt+kt,0);const $t=Et.text.trim();Et.text=decodeURIComponent(encodeURIComponent($t)),Et.id||(Et.id=generateCueId(Et.startTime,Et.endTime,$t)),Et.endTime>0&&yt.push(Et)},ht.onparsingerror=function(Et){vt=Et},ht.onflush=function(){if(vt){ft(vt);return}pt(yt)},mt.forEach(Et=>{if(Dt)if(startsWith(Et,"X-TIMESTAMP-MAP=")){Dt=!1,Et.slice(16).split(",").forEach(_t=>{startsWith(_t,"LOCAL:")?Tt=_t.slice(6):startsWith(_t,"MPEGTS:")&&(St=parseInt(_t.slice(7)))});try{At=cueString2millis(Tt)/1e3}catch(_t){vt=_t}return}else Et===""&&(Dt=!1);ht.parse(Et+` `)}),ht.flush()}const IMSC1_CODEC="stpp.ttml.im1t",HMSF_REGEX=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,TIME_UNIT_REGEX=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,textAlignToLineAlign={left:"start",center:"center",right:"end",start:"start",end:"end"};function parseIMSC1(st,at,ut,dt){const ct=findBox(new Uint8Array(st),["mdat"]);if(ct.length===0){dt(new Error("Could not parse IMSC1 mdat"));return}const pt=ct.map(ht=>utf8ArrayToStr(ht)),ft=toTimescaleFromScale(at.baseTime,1,at.timescale);try{pt.forEach(ht=>ut(parseTTML(ht,ft)))}catch(ht){dt(ht)}}function parseTTML(st,at){const ct=new DOMParser().parseFromString(st,"text/xml").getElementsByTagName("tt")[0];if(!ct)throw new Error("Invalid ttml");const pt={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},ft=Object.keys(pt).reduce((Tt,St)=>(Tt[St]=ct.getAttribute(`ttp:${St}`)||pt[St],Tt),{}),ht=ct.getAttribute("xml:space")!=="preserve",mt=collectionToDictionary(getElementCollection(ct,"styling","style")),yt=collectionToDictionary(getElementCollection(ct,"layout","region")),bt=getElementCollection(ct,"body","[begin]");return[].map.call(bt,Tt=>{const St=getTextContent(Tt,ht);if(!St||!Tt.hasAttribute("begin"))return null;const At=parseTtmlTime(Tt.getAttribute("begin"),ft),vt=parseTtmlTime(Tt.getAttribute("dur"),ft);let Dt=parseTtmlTime(Tt.getAttribute("end"),ft);if(At===null)throw timestampParsingError(Tt);if(Dt===null){if(vt===null)throw timestampParsingError(Tt);Dt=At+vt}const Et=new VTTCue(At-at,Dt-at,St);Et.id=generateCueId(Et.startTime,Et.endTime,Et.text);const _t=yt[Tt.getAttribute("region")],xt=mt[Tt.getAttribute("style")],Ct=getTtmlStyles(_t,xt,mt),{textAlign:kt}=Ct;if(kt){const wt=textAlignToLineAlign[kt];wt&&(Et.lineAlign=wt),Et.align=kt}return _extends(Et,Ct),Et}).filter(Tt=>Tt!==null)}function getElementCollection(st,at,ut){const dt=st.getElementsByTagName(at)[0];return dt?[].slice.call(dt.querySelectorAll(ut)):[]}function collectionToDictionary(st){return st.reduce((at,ut)=>{const dt=ut.getAttribute("xml:id");return dt&&(at[dt]=ut),at},{})}function getTextContent(st,at){return[].slice.call(st.childNodes).reduce((ut,dt,ct)=>{var pt;return dt.nodeName==="br"&&ct?ut+` `:(pt=dt.childNodes)!=null&&pt.length?getTextContent(dt,at):at?ut+dt.textContent.trim().replace(/\s+/g," "):ut+dt.textContent},"")}function getTtmlStyles(st,at,ut){const dt="http://www.w3.org/ns/ttml#styling";let ct=null;const pt=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],ft=st!=null&&st.hasAttribute("style")?st.getAttribute("style"):null;return ft&&ut.hasOwnProperty(ft)&&(ct=ut[ft]),pt.reduce((ht,mt)=>{const yt=getAttributeNS(at,dt,mt)||getAttributeNS(st,dt,mt)||getAttributeNS(ct,dt,mt);return yt&&(ht[mt]=yt),ht},{})}function getAttributeNS(st,at,ut){return st&&st.hasAttributeNS(at,ut)?st.getAttributeNS(at,ut):null}function timestampParsingError(st){return new Error(`Could not parse ttml timestamp ${st}`)}function parseTtmlTime(st,at){if(!st)return null;let ut=parseTimeStamp(st);return ut===null&&(HMSF_REGEX.test(st)?ut=parseHoursMinutesSecondsFrames(st,at):TIME_UNIT_REGEX.test(st)&&(ut=parseTimeUnits(st,at))),ut}function parseHoursMinutesSecondsFrames(st,at){const ut=HMSF_REGEX.exec(st),dt=(ut[4]|0)+(ut[5]|0)/at.subFrameRate;return(ut[1]|0)*3600+(ut[2]|0)*60+(ut[3]|0)+dt/at.frameRate}function parseTimeUnits(st,at){const ut=TIME_UNIT_REGEX.exec(st),dt=Number(ut[1]);switch(ut[2]){case"h":return dt*3600;case"m":return dt*60;case"ms":return dt*1e3;case"f":return dt/at.frameRate;case"t":return dt/at.tickRate}return dt}class OutputFilter{constructor(at,ut){this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=at,this.trackName=ut}dispatchCue(){this.startTime!==null&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}newCue(at,ut,dt){(this.startTime===null||this.startTime>at)&&(this.startTime=at),this.endTime=ut,this.screen=dt,this.timelineController.createCaptionsTrack(this.trackName)}reset(){this.cueRanges=[],this.startTime=null}}class TimelineController{constructor(at){this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=newVTTCCs(),this.captionsProperties=void 0,this.hls=at,this.config=at.config,this.Cues=at.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},at.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),at.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.MANIFEST_LOADED,this.onManifestLoaded,this),at.on(Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),at.on(Events.FRAG_LOADING,this.onFragLoading,this),at.on(Events.FRAG_LOADED,this.onFragLoaded,this),at.on(Events.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),at.on(Events.FRAG_DECRYPTED,this.onFragDecrypted,this),at.on(Events.INIT_PTS_FOUND,this.onInitPtsFound,this),at.on(Events.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),at.on(Events.BUFFER_FLUSHING,this.onBufferFlushing,this)}destroy(){const{hls:at}=this;at.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),at.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.MANIFEST_LOADED,this.onManifestLoaded,this),at.off(Events.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),at.off(Events.FRAG_LOADING,this.onFragLoading,this),at.off(Events.FRAG_LOADED,this.onFragLoaded,this),at.off(Events.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),at.off(Events.FRAG_DECRYPTED,this.onFragDecrypted,this),at.off(Events.INIT_PTS_FOUND,this.onInitPtsFound,this),at.off(Events.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),at.off(Events.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.media=null,this.cea608Parser1=this.cea608Parser2=void 0}initCea608Parsers(){const at=new OutputFilter(this,"textTrack1"),ut=new OutputFilter(this,"textTrack2"),dt=new OutputFilter(this,"textTrack3"),ct=new OutputFilter(this,"textTrack4");this.cea608Parser1=new Cea608Parser(1,at,ut),this.cea608Parser2=new Cea608Parser(3,dt,ct)}addCues(at,ut,dt,ct,pt){let ft=!1;for(let ht=pt.length;ht--;){const mt=pt[ht],yt=intersection(mt[0],mt[1],ut,dt);if(yt>=0&&(mt[0]=Math.min(mt[0],ut),mt[1]=Math.max(mt[1],dt),ft=!0,yt/(dt-ut)>.5))return}if(ft||pt.push([ut,dt]),this.config.renderTextTracksNatively){const ht=this.captionsTracks[at];this.Cues.newCue(ht,ut,dt,ct)}else{const ht=this.Cues.newCue(null,ut,dt,ct);this.hls.trigger(Events.CUES_PARSED,{type:"captions",cues:ht,track:at})}}onInitPtsFound(at,{frag:ut,id:dt,initPTS:ct,timescale:pt}){const{unparsedVttFrags:ft}=this;dt===PlaylistLevelType.MAIN&&(this.initPTS[ut.cc]={baseTime:ct,timescale:pt}),ft.length&&(this.unparsedVttFrags=[],ft.forEach(ht=>{this.initPTS[ht.frag.cc]?this.onFragLoaded(Events.FRAG_LOADED,ht):this.hls.trigger(Events.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:ht.frag,error:new Error("Subtitle discontinuity domain does not match main")})}))}getExistingTrack(at,ut){const{media:dt}=this;if(dt)for(let ct=0;ct{clearCurrentCues(ct[pt]),delete ct[pt]}),this.nonNativeCaptionsTracks={}}onManifestLoading(){this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs=newVTTCCs(),this._cleanTracks(),this.tracks=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.textTracks=[],this.unparsedVttFrags=[],this.initPTS=[],this.cea608Parser1&&this.cea608Parser2&&(this.cea608Parser1.reset(),this.cea608Parser2.reset())}_cleanTracks(){const{media:at}=this;if(!at)return;const ut=at.textTracks;if(ut)for(let dt=0;dtpt.textCodec===IMSC1_CODEC);if(this.config.enableWebVTT||ct&&this.config.enableIMSC1){if(subtitleOptionsIdentical(this.tracks,dt)){this.tracks=dt;return}if(this.textTracks=[],this.tracks=dt,this.config.renderTextTracksNatively){const ft=this.media,ht=ft?filterSubtitleTracks(ft.textTracks):null;if(this.tracks.forEach((mt,yt)=>{let bt;if(ht){let Tt=null;for(let St=0;Styt!==null).map(yt=>yt.label);mt.length&&this.hls.logger.warn(`Media element contains unused subtitle tracks: ${mt.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`)}}else if(this.tracks.length){const ft=this.tracks.map(ht=>({label:ht.name,kind:ht.type.toLowerCase(),default:ht.default,subtitleTrack:ht}));this.hls.trigger(Events.NON_NATIVE_TEXT_TRACKS_FOUND,{tracks:ft})}}}onManifestLoaded(at,ut){this.config.enableCEA708Captions&&ut.captions&&ut.captions.forEach(dt=>{const ct=/(?:CC|SERVICE)([1-4])/.exec(dt.instreamId);if(!ct)return;const pt=`textTrack${ct[1]}`,ft=this.captionsProperties[pt];ft&&(ft.label=dt.name,dt.lang&&(ft.languageCode=dt.lang),ft.media=dt)})}closedCaptionsForLevel(at){const ut=this.hls.levels[at.level];return ut==null?void 0:ut.attrs["CLOSED-CAPTIONS"]}onFragLoading(at,ut){if(this.enabled&&ut.frag.type===PlaylistLevelType.MAIN){var dt,ct;const{cea608Parser1:pt,cea608Parser2:ft,lastSn:ht}=this,{cc:mt,sn:yt}=ut.frag,bt=(dt=(ct=ut.part)==null?void 0:ct.index)!=null?dt:-1;pt&&ft&&(yt!==ht+1||yt===ht&&bt!==this.lastPartIndex+1||mt!==this.lastCc)&&(pt.reset(),ft.reset()),this.lastCc=mt,this.lastSn=yt,this.lastPartIndex=bt}}onFragLoaded(at,ut){const{frag:dt,payload:ct}=ut;if(dt.type===PlaylistLevelType.SUBTITLE)if(ct.byteLength){const pt=dt.decryptdata,ft="stats"in ut;if(pt==null||!pt.encrypted||ft){const ht=this.tracks[dt.level],mt=this.vttCCs;mt[dt.cc]||(mt[dt.cc]={start:dt.start,prevCC:this.prevCC,new:!0},this.prevCC=dt.cc),ht&&ht.textCodec===IMSC1_CODEC?this._parseIMSC1(dt,ct):this._parseVTTs(ut)}}else this.hls.trigger(Events.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:dt,error:new Error("Empty subtitle payload")})}_parseIMSC1(at,ut){const dt=this.hls;parseIMSC1(ut,this.initPTS[at.cc],ct=>{this._appendCues(ct,at.level),dt.trigger(Events.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:at})},ct=>{dt.logger.log(`Failed to parse IMSC1: ${ct}`),dt.trigger(Events.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:at,error:ct})})}_parseVTTs(at){var ut;const{frag:dt,payload:ct}=at,{initPTS:pt,unparsedVttFrags:ft}=this,ht=pt.length-1;if(!pt[dt.cc]&&ht===-1){ft.push(at);return}const mt=this.hls,yt=(ut=dt.initSegment)!=null&&ut.data?appendUint8Array(dt.initSegment.data,new Uint8Array(ct)).buffer:ct;parseWebVTT(yt,this.initPTS[dt.cc],this.vttCCs,dt.cc,dt.start,bt=>{this._appendCues(bt,dt.level),mt.trigger(Events.SUBTITLE_FRAG_PROCESSED,{success:!0,frag:dt})},bt=>{const Tt=bt.message==="Missing initPTS for VTT MPEGTS";Tt?ft.push(at):this._fallbackToIMSC1(dt,ct),mt.logger.log(`Failed to parse VTT cue: ${bt}`),!(Tt&&ht>dt.cc)&&mt.trigger(Events.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:dt,error:bt})})}_fallbackToIMSC1(at,ut){const dt=this.tracks[at.level];dt.textCodec||parseIMSC1(ut,this.initPTS[at.cc],()=>{dt.textCodec=IMSC1_CODEC,this._parseIMSC1(at,ut)},()=>{dt.textCodec="wvtt"})}_appendCues(at,ut){const dt=this.hls;if(this.config.renderTextTracksNatively){const ct=this.textTracks[ut];if(!ct||ct.mode==="disabled")return;at.forEach(pt=>addCueToTrack(ct,pt))}else{const ct=this.tracks[ut];if(!ct)return;const pt=ct.default?"default":"subtitles"+ut;dt.trigger(Events.CUES_PARSED,{type:"subtitles",cues:at,track:pt})}}onFragDecrypted(at,ut){const{frag:dt}=ut;dt.type===PlaylistLevelType.SUBTITLE&&this.onFragLoaded(Events.FRAG_LOADED,ut)}onSubtitleTracksCleared(){this.tracks=[],this.captionsTracks={}}onFragParsingUserdata(at,ut){if(!this.enabled||!this.config.enableCEA708Captions)return;const{frag:dt,samples:ct}=ut;if(!(dt.type===PlaylistLevelType.MAIN&&this.closedCaptionsForLevel(dt)==="NONE"))for(let pt=0;ptremoveCuesInRange(ht[mt],ut,dt))}if(this.config.renderTextTracksNatively&&ut===0&&ct!==void 0){const{textTracks:ht}=this;Object.keys(ht).forEach(mt=>removeCuesInRange(ht[mt],ut,ct))}}}extractCea608Data(at){const ut=[[],[]],dt=at[0]&31;let ct=2;for(let pt=0;pt=16?mt--:mt++;const At=fixLineBreaks(yt.trim()),vt=generateCueId(at,ut,At);st!=null&&(Tt=st.cues)!=null&&Tt.getCueById(vt)||(ft=new bt(at,ut,At),ft.id=vt,ft.line=St+1,ft.align="left",ft.position=10+Math.min(80,Math.floor(mt*8/32)*10),ct.push(ft))}return st&&ct.length&&(ct.sort((St,At)=>St.line==="auto"||At.line==="auto"?0:St.line>8&&At.line>8?At.line-St.line:St.line-At.line),ct.forEach(St=>addCueToTrack(st,St))),ct}};function fetchSupported(){if(self.fetch&&self.AbortController&&self.ReadableStream&&self.Request)try{return new self.ReadableStream({}),!0}catch{}return!1}const BYTERANGE=/(\d+)-(\d+)\/(\d+)/;class FetchLoader{constructor(at){this.fetchSetup=void 0,this.requestTimeout=void 0,this.request=null,this.response=null,this.controller=void 0,this.context=null,this.config=null,this.callbacks=null,this.stats=void 0,this.loader=null,this.fetchSetup=at.fetchSetup||getRequest,this.controller=new self.AbortController,this.stats=new LoadStats}destroy(){this.loader=this.callbacks=this.context=this.config=this.request=null,this.abortInternal(),this.response=null,this.fetchSetup=this.controller=this.stats=null}abortInternal(){this.controller&&!this.stats.loading.end&&(this.stats.aborted=!0,this.controller.abort())}abort(){var at;this.abortInternal(),(at=this.callbacks)!=null&&at.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.response)}load(at,ut,dt){const ct=this.stats;if(ct.loading.start)throw new Error("Loader can only be used once.");ct.loading.start=self.performance.now();const pt=getRequestParameters(at,this.controller.signal),ft=at.responseType==="arraybuffer",ht=ft?"byteLength":"length",{maxTimeToFirstByteMs:mt,maxLoadTimeMs:yt}=ut.loadPolicy;this.context=at,this.config=ut,this.callbacks=dt,this.request=this.fetchSetup(at,pt),self.clearTimeout(this.requestTimeout),ut.timeout=mt&&isFiniteNumber(mt)?mt:yt,this.requestTimeout=self.setTimeout(()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(ct,at,this.response))},ut.timeout),(isPromise(this.request)?this.request.then(self.fetch):self.fetch(this.request)).then(Tt=>{var St;this.response=this.loader=Tt;const At=Math.max(self.performance.now(),ct.loading.start);if(self.clearTimeout(this.requestTimeout),ut.timeout=yt,this.requestTimeout=self.setTimeout(()=>{this.callbacks&&(this.abortInternal(),this.callbacks.onTimeout(ct,at,this.response))},yt-(At-ct.loading.start)),!Tt.ok){const{status:Dt,statusText:Et}=Tt;throw new FetchError(Et||"fetch, bad network response",Dt,Tt)}ct.loading.first=At,ct.total=getContentLength(Tt.headers)||ct.total;const vt=(St=this.callbacks)==null?void 0:St.onProgress;return vt&&isFiniteNumber(ut.highWaterMark)?this.loadProgressively(Tt,ct,at,ut.highWaterMark,vt):ft?Tt.arrayBuffer():at.responseType==="json"?Tt.json():Tt.text()}).then(Tt=>{var St,At;const vt=this.response;if(!vt)throw new Error("loader destroyed");self.clearTimeout(this.requestTimeout),ct.loading.end=Math.max(self.performance.now(),ct.loading.first);const Dt=Tt[ht];Dt&&(ct.loaded=ct.total=Dt);const Et={url:vt.url,data:Tt,code:vt.status},_t=(St=this.callbacks)==null?void 0:St.onProgress;_t&&!isFiniteNumber(ut.highWaterMark)&&_t(ct,at,Tt,vt),(At=this.callbacks)==null||At.onSuccess(Et,ct,at,vt)}).catch(Tt=>{var St;if(self.clearTimeout(this.requestTimeout),ct.aborted)return;const At=Tt&&Tt.code||0,vt=Tt?Tt.message:null;(St=this.callbacks)==null||St.onError({code:At,text:vt},at,Tt?Tt.details:null,ct)})}getCacheAge(){let at=null;if(this.response){const ut=this.response.headers.get("age");at=ut?parseFloat(ut):null}return at}getResponseHeader(at){return this.response?this.response.headers.get(at):null}loadProgressively(at,ut,dt,ct=0,pt){const ft=new ChunkCache,ht=at.body.getReader(),mt=()=>ht.read().then(yt=>{if(yt.done)return ft.dataLength&&pt(ut,dt,ft.flush().buffer,at),Promise.resolve(new ArrayBuffer(0));const bt=yt.value,Tt=bt.length;return ut.loaded+=Tt,Tt=ct&&pt(ut,dt,ft.flush().buffer,at)):pt(ut,dt,bt.buffer,at),mt()}).catch(()=>Promise.reject());return mt()}}function getRequestParameters(st,at){const ut={method:"GET",mode:"cors",credentials:"same-origin",signal:at,headers:new self.Headers(_extends({},st.headers))};return st.rangeEnd&&ut.headers.set("Range","bytes="+st.rangeStart+"-"+String(st.rangeEnd-1)),ut}function getByteRangeLength(st){const at=BYTERANGE.exec(st);if(at)return parseInt(at[2])-parseInt(at[1])+1}function getContentLength(st){const at=st.get("Content-Range");if(at){const dt=getByteRangeLength(at);if(isFiniteNumber(dt))return dt}const ut=st.get("Content-Length");if(ut)return parseInt(ut)}function getRequest(st,at){return new self.Request(st.url,at)}class FetchError extends Error{constructor(at,ut,dt){super(at),this.code=void 0,this.details=void 0,this.code=ut,this.details=dt}}const AGE_HEADER_LINE_REGEX=/^age:\s*[\d.]+\s*$/im;class XhrLoader{constructor(at){this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=at&&at.xhrSetup||null,this.stats=new LoadStats,this.retryDelay=0}destroy(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null}abortInternal(){const at=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),at&&(at.onreadystatechange=null,at.onprogress=null,at.readyState!==4&&(this.stats.aborted=!0,at.abort()))}abort(){var at;this.abortInternal(),(at=this.callbacks)!=null&&at.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}load(at,ut,dt){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=at,this.config=ut,this.callbacks=dt,this.loadInternal()}loadInternal(){const{config:at,context:ut}=this;if(!at||!ut)return;const dt=this.loader=new self.XMLHttpRequest,ct=this.stats;ct.loading.first=0,ct.loaded=0,ct.aborted=!1;const pt=this.xhrSetup;pt?Promise.resolve().then(()=>{if(!(this.loader!==dt||this.stats.aborted))return pt(dt,ut.url)}).catch(ft=>{if(!(this.loader!==dt||this.stats.aborted))return dt.open("GET",ut.url,!0),pt(dt,ut.url)}).then(()=>{this.loader!==dt||this.stats.aborted||this.openAndSendXhr(dt,ut,at)}).catch(ft=>{var ht;(ht=this.callbacks)==null||ht.onError({code:dt.status,text:ft.message},ut,dt,ct)}):this.openAndSendXhr(dt,ut,at)}openAndSendXhr(at,ut,dt){at.readyState||at.open("GET",ut.url,!0);const ct=ut.headers,{maxTimeToFirstByteMs:pt,maxLoadTimeMs:ft}=dt.loadPolicy;if(ct)for(const ht in ct)at.setRequestHeader(ht,ct[ht]);ut.rangeEnd&&at.setRequestHeader("Range","bytes="+ut.rangeStart+"-"+(ut.rangeEnd-1)),at.onreadystatechange=this.readystatechange.bind(this),at.onprogress=this.loadprogress.bind(this),at.responseType=ut.responseType,self.clearTimeout(this.requestTimeout),dt.timeout=pt&&isFiniteNumber(pt)?pt:ft,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),dt.timeout),at.send()}readystatechange(){const{context:at,loader:ut,stats:dt}=this;if(!at||!ut)return;const ct=ut.readyState,pt=this.config;if(!dt.aborted&&ct>=2&&(dt.loading.first===0&&(dt.loading.first=Math.max(self.performance.now(),dt.loading.start),pt.timeout!==pt.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),pt.timeout=pt.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),pt.loadPolicy.maxLoadTimeMs-(dt.loading.first-dt.loading.start)))),ct===4)){self.clearTimeout(this.requestTimeout),ut.onreadystatechange=null,ut.onprogress=null;const yt=ut.status,bt=ut.responseType==="text"?ut.responseText:null;if(yt>=200&&yt<300){const vt=bt??ut.response;if(vt!=null){var ft,ht;dt.loading.end=Math.max(self.performance.now(),dt.loading.first);const Dt=ut.responseType==="arraybuffer"?vt.byteLength:vt.length;dt.loaded=dt.total=Dt,dt.bwEstimate=dt.total*8e3/(dt.loading.end-dt.loading.first);const Et=(ft=this.callbacks)==null?void 0:ft.onProgress;Et&&Et(dt,at,vt,ut);const _t={url:ut.responseURL,data:vt,code:yt};(ht=this.callbacks)==null||ht.onSuccess(_t,dt,at,ut);return}}const Tt=pt.loadPolicy.errorRetry,St=dt.retry,At={url:at.url,data:void 0,code:yt};if(shouldRetry(Tt,St,!1,At))this.retry(Tt);else{var mt;logger.error(`${yt} while loading ${at.url}`),(mt=this.callbacks)==null||mt.onError({code:yt,text:ut.statusText},at,ut,dt)}}}loadtimeout(){if(!this.config)return;const at=this.config.loadPolicy.timeoutRetry,ut=this.stats.retry;if(shouldRetry(at,ut,!0))this.retry(at);else{var dt;logger.warn(`timeout while loading ${(dt=this.context)==null?void 0:dt.url}`);const ct=this.callbacks;ct&&(this.abortInternal(),ct.onTimeout(this.stats,this.context,this.loader))}}retry(at){const{context:ut,stats:dt}=this;this.retryDelay=getRetryDelay(at,dt.retry),dt.retry++,logger.warn(`${status?"HTTP Status "+status:"Timeout"} while loading ${ut==null?void 0:ut.url}, retrying ${dt.retry}/${at.maxNumRetry} in ${this.retryDelay}ms`),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}loadprogress(at){const ut=this.stats;ut.loaded=at.loaded,at.lengthComputable&&(ut.total=at.total)}getCacheAge(){let at=null;if(this.loader&&AGE_HEADER_LINE_REGEX.test(this.loader.getAllResponseHeaders())){const ut=this.loader.getResponseHeader("age");at=ut?parseFloat(ut):null}return at}getResponseHeader(at){return this.loader&&new RegExp(`^${at}:\\s*[\\d.]+\\s*$`,"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(at):null}}const defaultLoadPolicy={maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null},hlsDefaultConfig=_objectSpread2(_objectSpread2({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,maxDevicePixelRatio:Number.POSITIVE_INFINITY,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,startOnSegmentBoundary:!1,maxBufferSize:60*1e3*1e3,maxFragLookUpTolerance:.25,maxBufferHole:.1,detectStallWithCurrentTimeMs:1250,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,nudgeOnVideoHole:!0,liveSyncMode:"edge",liveSyncDurationCount:3,liveSyncOnStallIncrease:1,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,ignorePlaylistParsingErrors:!1,loader:XhrLoader,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:AbrController,bufferController:BufferController,capLevelController:CapLevelController,errorController:ErrorController,fpsController:FPSController,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrEwmaDefaultEstimateMax:5e6,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:requestMediaKeySystemAccess,requireKeySystemAccessOnStart:!1,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableEmsgKLVMetadata:!1,enableID3MetadataCues:!0,enableInterstitialPlayback:!0,interstitialAppendInPlace:!0,interstitialLiveLookAhead:10,useMediaCapabilities:!0,preserveManualLevelOnError:!1,certLoadPolicy:{default:defaultLoadPolicy},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},interstitialAssetListLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:3e4,timeoutRetry:{maxNumRetry:0,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:0,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},timelineConfig()),{},{subtitleStreamController:SubtitleStreamController,subtitleTrackController:SubtitleTrackController,timelineController:TimelineController,audioStreamController:AudioStreamController,audioTrackController:AudioTrackController,emeController:EMEController,cmcdController:CMCDController,contentSteeringController:ContentSteeringController,interstitialsController:InterstitialsController});function timelineConfig(){return{cueHandler:Cues,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}}function mergeConfig$1(st,at,ut){if((at.liveSyncDurationCount||at.liveMaxLatencyDurationCount)&&(at.liveSyncDuration||at.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");if(at.liveMaxLatencyDurationCount!==void 0&&(at.liveSyncDurationCount===void 0||at.liveMaxLatencyDurationCount<=at.liveSyncDurationCount))throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"');if(at.liveMaxLatencyDuration!==void 0&&(at.liveSyncDuration===void 0||at.liveMaxLatencyDuration<=at.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"');const dt=deepCpy(st),ct=["manifest","level","frag"],pt=["TimeOut","MaxRetry","RetryDelay","MaxRetryTimeout"];return ct.forEach(ft=>{const ht=`${ft==="level"?"playlist":ft}LoadPolicy`,mt=at[ht]===void 0,yt=[];pt.forEach(bt=>{const Tt=`${ft}Loading${bt}`,St=at[Tt];if(St!==void 0&&mt){yt.push(Tt);const At=dt[ht].default;switch(at[ht]={default:At},bt){case"TimeOut":At.maxLoadTimeMs=St,At.maxTimeToFirstByteMs=St;break;case"MaxRetry":At.errorRetry.maxNumRetry=St,At.timeoutRetry.maxNumRetry=St;break;case"RetryDelay":At.errorRetry.retryDelayMs=St,At.timeoutRetry.retryDelayMs=St;break;case"MaxRetryTimeout":At.errorRetry.maxRetryDelayMs=St,At.timeoutRetry.maxRetryDelayMs=St;break}}}),yt.length&&ut.warn(`hls.js config: "${yt.join('", "')}" setting(s) are deprecated, use "${ht}": ${stringify(at[ht])}`)}),_objectSpread2(_objectSpread2({},dt),at)}function deepCpy(st){return st&&typeof st=="object"?Array.isArray(st)?st.map(deepCpy):Object.keys(st).reduce((at,ut)=>(at[ut]=deepCpy(st[ut]),at),{}):st}function enableStreamingMode(st,at){const ut=st.loader;ut!==FetchLoader&&ut!==XhrLoader?(at.log("[config]: Custom loader detected, cannot enable progressive streaming"),st.progressive=!1):fetchSupported()&&(st.loader=FetchLoader,st.progressive=!0,st.enableSoftwareAES=!0,at.log("[config]: Progressive streaming enabled, using FetchLoader"))}const MAX_START_GAP_JUMP=2,SKIP_BUFFER_HOLE_STEP_SECONDS=.1,SKIP_BUFFER_RANGE_START=.05,TICK_INTERVAL$1=100;class GapController extends TaskLoop{constructor(at,ut){super("gap-controller",at.logger),this.hls=null,this.fragmentTracker=null,this.media=null,this.mediaSource=void 0,this.nudgeRetry=0,this.stallReported=!1,this.stalled=null,this.moved=!1,this.seeking=!1,this.buffered={},this.lastCurrentTime=0,this.ended=0,this.waiting=0,this.onMediaPlaying=()=>{this.ended=0,this.waiting=0},this.onMediaWaiting=()=>{var dt;(dt=this.media)!=null&&dt.seeking||(this.waiting=self.performance.now(),this.tick())},this.onMediaEnded=()=>{if(this.hls){var dt;this.ended=((dt=this.media)==null?void 0:dt.currentTime)||1,this.hls.trigger(Events.MEDIA_ENDED,{stalled:!1})}},this.hls=at,this.fragmentTracker=ut,this.registerListeners()}registerListeners(){const{hls:at}=this;at&&(at.on(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.on(Events.BUFFER_APPENDED,this.onBufferAppended,this))}unregisterListeners(){const{hls:at}=this;at&&(at.off(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.off(Events.BUFFER_APPENDED,this.onBufferAppended,this))}destroy(){super.destroy(),this.unregisterListeners(),this.media=this.hls=this.fragmentTracker=null,this.mediaSource=void 0}onMediaAttached(at,ut){this.setInterval(TICK_INTERVAL$1),this.mediaSource=ut.mediaSource;const dt=this.media=ut.media;addEventListener(dt,"playing",this.onMediaPlaying),addEventListener(dt,"waiting",this.onMediaWaiting),addEventListener(dt,"ended",this.onMediaEnded)}onMediaDetaching(at,ut){this.clearInterval();const{media:dt}=this;dt&&(removeEventListener(dt,"playing",this.onMediaPlaying),removeEventListener(dt,"waiting",this.onMediaWaiting),removeEventListener(dt,"ended",this.onMediaEnded),this.media=null),this.mediaSource=void 0}onBufferAppended(at,ut){this.buffered=ut.timeRanges}get hasBuffered(){return Object.keys(this.buffered).length>0}tick(){var at;if(!((at=this.media)!=null&&at.readyState)||!this.hasBuffered)return;const ut=this.media.currentTime;this.poll(ut,this.lastCurrentTime),this.lastCurrentTime=ut}poll(at,ut){var dt,ct;const pt=(dt=this.hls)==null?void 0:dt.config;if(!pt)return;const ft=this.media;if(!ft)return;const{seeking:ht}=ft,mt=this.seeking&&!ht,yt=!this.seeking&&ht,bt=ft.paused&&!ht||ft.ended||ft.playbackRate===0;if(this.seeking=ht,at!==ut){ut&&(this.ended=0),this.moved=!0,ht||(this.nudgeRetry=0,pt.nudgeOnVideoHole&&!bt&&at>ut&&this.nudgeOnVideoHole(at,ut)),this.waiting===0&&this.stallResolved(at);return}if(yt||mt){mt&&this.stallResolved(at);return}if(bt){this.nudgeRetry=0,this.stallResolved(at),!this.ended&&ft.ended&&this.hls&&(this.ended=at||1,this.hls.trigger(Events.MEDIA_ENDED,{stalled:!1}));return}if(!BufferHelper.getBuffered(ft).length){this.nudgeRetry=0;return}const Tt=BufferHelper.bufferInfo(ft,at,0),St=Tt.nextStart||0,At=this.fragmentTracker;if(ht&&At&&this.hls){const $t=getInFlightDependency(this.hls.inFlightFragments,at),Lt=Tt.len>MAX_START_GAP_JUMP,Ot=!St||$t||St-at>MAX_START_GAP_JUMP&&!At.getPartialFragment(at);if(Lt||Ot)return;this.moved=!1}const vt=(ct=this.hls)==null?void 0:ct.latestLevelDetails;if(!this.moved&&this.stalled!==null&&At){if(!(Tt.len>0)&&!St)return;const Lt=Math.max(St,Tt.start||0)-at,zt=!!(vt!=null&&vt.live)?vt.targetduration*2:MAX_START_GAP_JUMP,Mt=At.getPartialFragment(at);if(Lt>0&&(Lt<=zt||Mt)){ft.paused||this._trySkipBufferHole(Mt);return}}const Dt=pt.detectStallWithCurrentTimeMs,Et=self.performance.now(),_t=this.waiting;let xt=this.stalled;if(xt===null)if(_t>0&&Et-_t=Dt||_t)&&this.hls){var kt;if(((kt=this.mediaSource)==null?void 0:kt.readyState)==="ended"&&!(vt!=null&&vt.live)&&Math.abs(at-((vt==null?void 0:vt.edge)||0))<1){if(this.ended)return;this.ended=at||1,this.hls.trigger(Events.MEDIA_ENDED,{stalled:!0});return}if(this._reportStall(Tt),!this.media||!this.hls)return}const wt=BufferHelper.bufferInfo(ft,at,pt.maxBufferHole);this._tryFixBufferStall(wt,Ct,at)}stallResolved(at){const ut=this.stalled;if(ut&&this.hls&&(this.stalled=null,this.stallReported)){const dt=self.performance.now()-ut;this.log(`playback not stuck anymore @${at}, after ${Math.round(dt)}ms`),this.stallReported=!1,this.waiting=0,this.hls.trigger(Events.STALL_RESOLVED,{})}}nudgeOnVideoHole(at,ut){var dt;const ct=this.buffered.video;if(this.hls&&this.media&&this.fragmentTracker&&(dt=this.buffered.audio)!=null&&dt.length&&ct&&ct.length>1&&at>ct.end(0)){const pt=BufferHelper.bufferedInfo(BufferHelper.timeRangesToArray(this.buffered.audio),at,0);if(pt.len>1&&ut>=pt.start){const ft=BufferHelper.timeRangesToArray(ct),ht=BufferHelper.bufferedInfo(ft,ut,0).bufferedIndex;if(ht>-1&&htht)&&bt-yt<1&&at-yt<2){const Tt=new Error(`nudging playhead to flush pipeline after video hole. currentTime: ${at} hole: ${yt} -> ${bt} buffered index: ${mt}`);this.warn(Tt.message),this.media.currentTime+=1e-6;const St=this.fragmentTracker.getPartialFragment(at)||void 0,At=BufferHelper.bufferInfo(this.media,at,0);this.hls.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.BUFFER_SEEK_OVER_HOLE,fatal:!1,error:Tt,reason:Tt.message,frag:St,buffer:At.len,bufferInfo:At})}}}}}_tryFixBufferStall(at,ut,dt){var ct,pt;const{fragmentTracker:ft,media:ht}=this,mt=(ct=this.hls)==null?void 0:ct.config;if(!ht||!ft||!mt)return;const yt=(pt=this.hls)==null?void 0:pt.latestLevelDetails,bt=ft.getPartialFragment(dt);if((bt||yt!=null&&yt.live&&dt1&&at.len>mt.maxBufferHole||at.nextStart&&(at.nextStart-dtmt.highBufferWatchdogPeriod*1e3||this.waiting)&&(this.warn("Trying to nudge playhead over buffer-hole"),this._tryNudgeBuffer(at))}adjacentTraversal(at,ut){const dt=this.fragmentTracker,ct=at.nextStart;if(dt&&ct){const pt=dt.getFragAtPos(ut,PlaylistLevelType.MAIN),ft=dt.getFragAtPos(ct,PlaylistLevelType.MAIN);if(pt&&ft)return ft.sn-pt.sn<2}return!1}_reportStall(at){const{hls:ut,media:dt,stallReported:ct,stalled:pt}=this;if(!ct&&pt!==null&&dt&&ut){this.stallReported=!0;const ft=new Error(`Playback stalling at @${dt.currentTime} due to low buffer (${stringify(at)})`);this.warn(ft.message),ut.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.BUFFER_STALLED_ERROR,fatal:!1,error:ft,buffer:at.len,bufferInfo:at,stalled:{start:pt}})}}_trySkipBufferHole(at){var ut;const{fragmentTracker:dt,media:ct}=this,pt=(ut=this.hls)==null?void 0:ut.config;if(!ct||!dt||!pt)return 0;const ft=ct.currentTime,ht=BufferHelper.bufferInfo(ct,ft,0),mt=ft0&&ht.len<1&&ct.readyState<3,St=mt-ft;if(St>0&&(bt||Tt)){if(St>pt.maxBufferHole){let vt=!1;if(ft===0){const Dt=dt.getAppendedFrag(0,PlaylistLevelType.MAIN);Dt&&mt"u"))return self.VTTCue||self.TextTrackCue}function createCueWithDataFields(st,at,ut,dt,ct){let pt=new st(at,ut,"");try{pt.value=dt,ct&&(pt.type=ct)}catch{pt=new st(at,ut,stringify(ct?_objectSpread2({type:ct},dt):dt))}return pt}const MAX_CUE_ENDTIME=(()=>{const st=getCueClass();try{st&&new st(0,Number.POSITIVE_INFINITY,"")}catch{return Number.MAX_VALUE}return Number.POSITIVE_INFINITY})();class ID3TrackController{constructor(at){this.hls=void 0,this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.removeCues=!0,this.onEventCueEnter=()=>{this.hls&&this.hls.trigger(Events.EVENT_CUE_ENTER,{})},this.hls=at,this._registerListeners()}destroy(){this._unregisterListeners(),this.id3Track=null,this.media=null,this.dateRangeCuesAppended={},this.hls=this.onEventCueEnter=null}_registerListeners(){const{hls:at}=this;at.on(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),at.on(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),at.on(Events.BUFFER_FLUSHING,this.onBufferFlushing,this),at.on(Events.LEVEL_UPDATED,this.onLevelUpdated,this),at.on(Events.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this)}_unregisterListeners(){const{hls:at}=this;at.off(Events.MEDIA_ATTACHING,this.onMediaAttaching,this),at.off(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.FRAG_PARSING_METADATA,this.onFragParsingMetadata,this),at.off(Events.BUFFER_FLUSHING,this.onBufferFlushing,this),at.off(Events.LEVEL_UPDATED,this.onLevelUpdated,this),at.off(Events.LEVEL_PTS_UPDATED,this.onLevelPtsUpdated,this)}onMediaAttaching(at,ut){var dt;this.media=ut.media,((dt=ut.overrides)==null?void 0:dt.cueRemoval)===!1&&(this.removeCues=!1)}onMediaAttached(){const at=this.hls.latestLevelDetails;at&&this.updateDateRangeCues(at)}onMediaDetaching(at,ut){this.media=null,!ut.transferMedia&&(this.id3Track&&(this.removeCues&&clearCurrentCues(this.id3Track,this.onEventCueEnter),this.id3Track=null),this.dateRangeCuesAppended={})}onManifestLoading(){this.dateRangeCuesAppended={}}createTrack(at){const ut=this.getID3Track(at.textTracks);return ut.mode="hidden",ut}getID3Track(at){if(this.media){for(let ut=0;utMAX_CUE_ENDTIME&&(Tt=MAX_CUE_ENDTIME),Tt-bt<=0&&(Tt=bt+MIN_CUE_DURATION);for(let At=0;Atbt.type===MetadataSchema.audioId3&&mt:ct==="video"?yt=bt=>bt.type===MetadataSchema.emsg&&ht:yt=bt=>bt.type===MetadataSchema.audioId3&&mt||bt.type===MetadataSchema.emsg&&ht,removeCuesInRange(pt,ut,dt,yt)}}onLevelUpdated(at,{details:ut}){this.updateDateRangeCues(ut,!0)}onLevelPtsUpdated(at,ut){Math.abs(ut.drift)>.01&&this.updateDateRangeCues(ut.details)}updateDateRangeCues(at,ut){if(!this.media||!at.hasProgramDateTime||!this.hls.config.enableDateRangeMetadataCues)return;const{id3Track:dt}=this,{dateRanges:ct}=at,pt=Object.keys(ct);let ft=this.dateRangeCuesAppended;if(dt&&ut){var ht;if((ht=dt.cues)!=null&&ht.length){const bt=Object.keys(ft).filter(Tt=>!pt.includes(Tt));for(let Tt=bt.length;Tt--;){const St=bt[Tt],At=ft[St].cues;delete ft[St],Object.keys(At).forEach(vt=>{try{const Dt=At[vt];Dt.removeEventListener("enter",this.onEventCueEnter),dt.removeCue(Dt)}catch{}})}}else ft=this.dateRangeCuesAppended={}}const mt=at.fragments[at.fragments.length-1];if(pt.length===0||!isFiniteNumber(mt==null?void 0:mt.programDateTime))return;this.id3Track||(this.id3Track=this.createTrack(this.media));const yt=getCueClass();for(let bt=0;bt{if(Lt!==St.id){const Ot=ct[Lt];if(Ot.class===St.class&&Ot.startDate>St.startDate&&(!$t||St.startDate<$t.startDate))return Ot}return $t},null);wt&&(_t=wt.startTime,Et=!0)}const kt=Object.keys(St.attr);for(let wt=0;wt.01&&(Lt.startTime=At,Lt.endTime=_t);else if(yt){let Ot=St.attr[$t];isSCTE35Attribute($t)&&(Ot=hexToArrayBuffer(Ot));const Mt=createCueWithDataFields(yt,At,_t,{key:$t,data:Ot},MetadataSchema.dateRange);Mt&&(Mt.id=Tt,this.id3Track.addCue(Mt),Dt[$t]=Mt,this.hls.config.interstitialsController&&($t==="X-ASSET-LIST"||$t==="X-ASSET-URL")&&Mt.addEventListener("enter",this.onEventCueEnter))}}ft[Tt]={cues:Dt,dateRange:St,durationKnown:Et}}}}class LatencyController{constructor(at){this.hls=void 0,this.config=void 0,this.media=null,this.currentTime=0,this.stallCount=0,this._latency=null,this._targetLatencyUpdated=!1,this.onTimeupdate=()=>{const{media:ut}=this,dt=this.levelDetails;if(!ut||!dt)return;this.currentTime=ut.currentTime;const ct=this.computeLatency();if(ct===null)return;this._latency=ct;const{lowLatencyMode:pt,maxLiveSyncPlaybackRate:ft}=this.config;if(!pt||ft===1||!dt.live)return;const ht=this.targetLatency;if(ht===null)return;const mt=ct-ht,yt=Math.min(this.maxLatency,ht+dt.targetduration);if(mt.05&&this.forwardBufferLength>1){const Tt=Math.min(2,Math.max(1,ft)),St=Math.round(2/(1+Math.exp(-.75*mt-this.edgeStalled))*20)/20,At=Math.min(Tt,Math.max(1,St));this.changeMediaPlaybackRate(ut,At)}else ut.playbackRate!==1&&ut.playbackRate!==0&&this.changeMediaPlaybackRate(ut,1)},this.hls=at,this.config=at.config,this.registerListeners()}get levelDetails(){var at;return((at=this.hls)==null?void 0:at.latestLevelDetails)||null}get latency(){return this._latency||0}get maxLatency(){const{config:at}=this;if(at.liveMaxLatencyDuration!==void 0)return at.liveMaxLatencyDuration;const ut=this.levelDetails;return ut?at.liveMaxLatencyDurationCount*ut.targetduration:0}get targetLatency(){const at=this.levelDetails;if(at===null||this.hls===null)return null;const{holdBack:ut,partHoldBack:dt,targetduration:ct}=at,{liveSyncDuration:pt,liveSyncDurationCount:ft,lowLatencyMode:ht}=this.config,mt=this.hls.userConfig;let yt=ht&&dt||ut;(this._targetLatencyUpdated||mt.liveSyncDuration||mt.liveSyncDurationCount||yt===0)&&(yt=pt!==void 0?pt:ft*ct);const bt=ct;return yt+Math.min(this.stallCount*this.config.liveSyncOnStallIncrease,bt)}set targetLatency(at){this.stallCount=0,this.config.liveSyncDuration=at,this._targetLatencyUpdated=!0}get liveSyncPosition(){const at=this.estimateLiveEdge(),ut=this.targetLatency;if(at===null||ut===null)return null;const dt=this.levelDetails;if(dt===null)return null;const ct=dt.edge,pt=at-ut-this.edgeStalled,ft=ct-dt.totalduration,ht=ct-(this.config.lowLatencyMode&&dt.partTarget||dt.targetduration);return Math.min(Math.max(ft,pt),ht)}get drift(){const at=this.levelDetails;return at===null?1:at.drift}get edgeStalled(){const at=this.levelDetails;if(at===null)return 0;const ut=(this.config.lowLatencyMode&&at.partTarget||at.targetduration)*3;return Math.max(at.age-ut,0)}get forwardBufferLength(){const{media:at}=this,ut=this.levelDetails;if(!at||!ut)return 0;const dt=at.buffered.length;return(dt?at.buffered.end(dt-1):ut.edge)-this.currentTime}destroy(){this.unregisterListeners(),this.onMediaDetaching(),this.hls=null}registerListeners(){const{hls:at}=this;at&&(at.on(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.on(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.LEVEL_UPDATED,this.onLevelUpdated,this),at.on(Events.ERROR,this.onError,this))}unregisterListeners(){const{hls:at}=this;at&&(at.off(Events.MEDIA_ATTACHED,this.onMediaAttached,this),at.off(Events.MEDIA_DETACHING,this.onMediaDetaching,this),at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.LEVEL_UPDATED,this.onLevelUpdated,this),at.off(Events.ERROR,this.onError,this))}onMediaAttached(at,ut){this.media=ut.media,this.media.addEventListener("timeupdate",this.onTimeupdate)}onMediaDetaching(){this.media&&(this.media.removeEventListener("timeupdate",this.onTimeupdate),this.media=null)}onManifestLoading(){this._latency=null,this.stallCount=0}onLevelUpdated(at,{details:ut}){ut.advanced&&this.onTimeupdate(),!ut.live&&this.media&&this.media.removeEventListener("timeupdate",this.onTimeupdate)}onError(at,ut){var dt;ut.details===ErrorDetails.BUFFER_STALLED_ERROR&&(this.stallCount++,this.hls&&(dt=this.levelDetails)!=null&&dt.live&&this.hls.logger.warn("[latency-controller]: Stall detected, adjusting target latency"))}changeMediaPlaybackRate(at,ut){var dt,ct;at.playbackRate!==ut&&((dt=this.hls)==null||dt.logger.debug(`[latency-controller]: latency=${this.latency.toFixed(3)}, targetLatency=${(ct=this.targetLatency)==null?void 0:ct.toFixed(3)}, forwardBufferLength=${this.forwardBufferLength.toFixed(3)}: adjusting playback rate from ${at.playbackRate} to ${ut}`),at.playbackRate=ut)}estimateLiveEdge(){const at=this.levelDetails;return at===null?null:at.edge+at.age}computeLatency(){const at=this.estimateLiveEdge();return at===null?null:at-this.currentTime}}class LevelController extends BasePlaylistController{constructor(at,ut){super(at,"level-controller"),this._levels=[],this._firstLevel=-1,this._maxAutoLevel=-1,this._startLevel=void 0,this.currentLevel=null,this.currentLevelIndex=-1,this.manualLevelIndex=-1,this.steering=void 0,this.onParsedComplete=void 0,this.steering=ut,this._registerListeners()}_registerListeners(){const{hls:at}=this;at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.MANIFEST_LOADED,this.onManifestLoaded,this),at.on(Events.LEVEL_LOADED,this.onLevelLoaded,this),at.on(Events.LEVELS_UPDATED,this.onLevelsUpdated,this),at.on(Events.FRAG_BUFFERED,this.onFragBuffered,this),at.on(Events.ERROR,this.onError,this)}_unregisterListeners(){const{hls:at}=this;at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.MANIFEST_LOADED,this.onManifestLoaded,this),at.off(Events.LEVEL_LOADED,this.onLevelLoaded,this),at.off(Events.LEVELS_UPDATED,this.onLevelsUpdated,this),at.off(Events.FRAG_BUFFERED,this.onFragBuffered,this),at.off(Events.ERROR,this.onError,this)}destroy(){this._unregisterListeners(),this.steering=null,this.resetLevels(),super.destroy()}stopLoad(){this._levels.forEach(ut=>{ut.loadError=0,ut.fragmentError=0}),super.stopLoad()}resetLevels(){this._startLevel=void 0,this.manualLevelIndex=-1,this.currentLevelIndex=-1,this.currentLevel=null,this._levels=[],this._maxAutoLevel=-1}onManifestLoading(at,ut){this.resetLevels()}onManifestLoaded(at,ut){const dt=this.hls.config.preferManagedMediaSource,ct=[],pt={},ft={};let ht=!1,mt=!1,yt=!1;ut.levels.forEach(bt=>{const Tt=bt.attrs;let{audioCodec:St,videoCodec:At}=bt;St&&(bt.audioCodec=St=getCodecCompatibleName(St,dt)||void 0),At&&(At=bt.videoCodec=convertAVC1ToAVCOTI(At));const{width:vt,height:Dt,unknownCodecs:Et}=bt;let _t=Et?Et.length:0;if(Et)for(let Mt=_t;Mt--;){const qt=Et[Mt];this.isAudioSupported(qt)?(bt.audioCodec=St=St?`${St},${qt}`:qt,_t--,sampleEntryCodesISO.audio[St.substring(0,4)]=2):this.isVideoSupported(qt)&&(bt.videoCodec=At=At?`${At},${qt}`:qt,_t--,sampleEntryCodesISO.video[At.substring(0,4)]=2)}if(ht||(ht=!!(vt&&Dt)),mt||(mt=!!At),yt||(yt=!!St),_t||St&&!this.isAudioSupported(St)||At&&!this.isVideoSupported(At)){this.log(`Some or all CODECS not supported "${Tt.CODECS}"`);return}const{CODECS:xt,"FRAME-RATE":Ct,"HDCP-LEVEL":kt,"PATHWAY-ID":wt,RESOLUTION:$t,"VIDEO-RANGE":Lt}=Tt,zt=`${`${wt||"."}-`}${bt.bitrate}-${$t}-${Ct}-${xt}-${Lt}-${kt}`;if(pt[zt])if(pt[zt].uri!==bt.url&&!bt.attrs["PATHWAY-ID"]){const Mt=ft[zt]+=1;bt.attrs["PATHWAY-ID"]=new Array(Mt+1).join(".");const qt=this.createLevel(bt);pt[zt]=qt,ct.push(qt)}else pt[zt].addGroupId("audio",Tt.AUDIO),pt[zt].addGroupId("text",Tt.SUBTITLES);else{const Mt=this.createLevel(bt);pt[zt]=Mt,ft[zt]=1,ct.push(Mt)}}),this.filterAndSortMediaOptions(ct,ut,ht,mt,yt)}createLevel(at){const ut=new Level(at),dt=at.supplemental;if(dt!=null&&dt.videoCodec&&!this.isVideoSupported(dt.videoCodec)){const ct=new Error(`SUPPLEMENTAL-CODECS not supported "${dt.videoCodec}"`);this.log(ct.message),ut.supportedResult=getUnsupportedResult(ct,[])}return ut}isAudioSupported(at){return areCodecsMediaSourceSupported(at,"audio",this.hls.config.preferManagedMediaSource)}isVideoSupported(at){return areCodecsMediaSourceSupported(at,"video",this.hls.config.preferManagedMediaSource)}filterAndSortMediaOptions(at,ut,dt,ct,pt){let ft=[],ht=[],mt=at;if((dt||ct)&&pt&&(mt=mt.filter(({videoCodec:Et,videoRange:_t,width:xt,height:Ct})=>(!!Et||!!(xt&&Ct))&&isVideoRange(_t))),mt.length===0){Promise.resolve().then(()=>{if(this.hls){let Et="no level with compatible codecs found in manifest",_t=Et;ut.levels.length&&(_t=`one or more CODECS in variant not supported: ${stringify(ut.levels.map(Ct=>Ct.attrs.CODECS).filter((Ct,kt,wt)=>wt.indexOf(Ct)===kt))}`,this.warn(_t),Et+=` (${_t})`);const xt=new Error(Et);this.hls.trigger(Events.ERROR,{type:ErrorTypes.MEDIA_ERROR,details:ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:ut.url,error:xt,reason:_t})}});return}ut.audioTracks&&(ft=ut.audioTracks.filter(Et=>!Et.audioCodec||this.isAudioSupported(Et.audioCodec)),assignTrackIdsByGroup(ft)),ut.subtitles&&(ht=ut.subtitles,assignTrackIdsByGroup(ht));const yt=mt.slice(0);mt.sort((Et,_t)=>{if(Et.attrs["HDCP-LEVEL"]!==_t.attrs["HDCP-LEVEL"])return(Et.attrs["HDCP-LEVEL"]||"")>(_t.attrs["HDCP-LEVEL"]||"")?1:-1;if(dt&&Et.height!==_t.height)return Et.height-_t.height;if(Et.frameRate!==_t.frameRate)return Et.frameRate-_t.frameRate;if(Et.videoRange!==_t.videoRange)return VideoRangeValues.indexOf(Et.videoRange)-VideoRangeValues.indexOf(_t.videoRange);if(Et.videoCodec!==_t.videoCodec){const xt=videoCodecPreferenceValue(Et.videoCodec),Ct=videoCodecPreferenceValue(_t.videoCodec);if(xt!==Ct)return Ct-xt}if(Et.uri===_t.uri&&Et.codecSet!==_t.codecSet){const xt=codecsSetSelectionPreferenceValue(Et.codecSet),Ct=codecsSetSelectionPreferenceValue(_t.codecSet);if(xt!==Ct)return Ct-xt}return Et.averageBitrate!==_t.averageBitrate?Et.averageBitrate-_t.averageBitrate:0});let bt=yt[0];if(this.steering&&(mt=this.steering.filterParsedLevels(mt),mt.length!==yt.length)){for(let Et=0;Etxt&&xt===this.hls.abrEwmaDefaultEstimate&&(this.hls.bandwidthEstimate=Ct)}break}const St=pt&&!ct,At=this.hls.config,vt=!!(At.audioStreamController&&At.audioTrackController),Dt={levels:mt,audioTracks:ft,subtitleTracks:ht,sessionData:ut.sessionData,sessionKeys:ut.sessionKeys,firstLevel:this._firstLevel,stats:ut.stats,audio:pt,video:ct,altAudio:vt&&!St&&ft.some(Et=>!!Et.url)};this.hls.trigger(Events.MANIFEST_PARSED,Dt)}get levels(){return this._levels.length===0?null:this._levels}get loadLevelObj(){return this.currentLevel}get level(){return this.currentLevelIndex}set level(at){const ut=this._levels;if(ut.length===0)return;if(at<0||at>=ut.length){const bt=new Error("invalid level idx"),Tt=at<0;if(this.hls.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.LEVEL_SWITCH_ERROR,level:at,fatal:Tt,error:bt,reason:bt.message}),Tt)return;at=Math.min(at,ut.length-1)}const dt=this.currentLevelIndex,ct=this.currentLevel,pt=ct?ct.attrs["PATHWAY-ID"]:void 0,ft=ut[at],ht=ft.attrs["PATHWAY-ID"];if(this.currentLevelIndex=at,this.currentLevel=ft,dt===at&&ct&&pt===ht)return;this.log(`Switching to level ${at} (${ft.height?ft.height+"p ":""}${ft.videoRange?ft.videoRange+" ":""}${ft.codecSet?ft.codecSet+" ":""}@${ft.bitrate})${ht?" with Pathway "+ht:""} from level ${dt}${pt?" with Pathway "+pt:""}`);const mt={level:at,attrs:ft.attrs,details:ft.details,bitrate:ft.bitrate,averageBitrate:ft.averageBitrate,maxBitrate:ft.maxBitrate,realBitrate:ft.realBitrate,width:ft.width,height:ft.height,codecSet:ft.codecSet,audioCodec:ft.audioCodec,videoCodec:ft.videoCodec,audioGroups:ft.audioGroups,subtitleGroups:ft.subtitleGroups,loaded:ft.loaded,loadError:ft.loadError,fragmentError:ft.fragmentError,name:ft.name,id:ft.id,uri:ft.uri,url:ft.url,urlId:0,audioGroupIds:ft.audioGroupIds,textGroupIds:ft.textGroupIds};this.hls.trigger(Events.LEVEL_SWITCHING,mt);const yt=ft.details;if(!yt||yt.live){const bt=this.switchParams(ft.uri,ct==null?void 0:ct.details,yt);this.loadPlaylist(bt)}}get manualLevel(){return this.manualLevelIndex}set manualLevel(at){this.manualLevelIndex=at,this._startLevel===void 0&&(this._startLevel=at),at!==-1&&(this.level=at)}get firstLevel(){return this._firstLevel}set firstLevel(at){this._firstLevel=at}get startLevel(){if(this._startLevel===void 0){const at=this.hls.config.startLevel;return at!==void 0?at:this.hls.firstAutoLevel}return this._startLevel}set startLevel(at){this._startLevel=at}get pathways(){return this.steering?this.steering.pathways():[]}get pathwayPriority(){return this.steering?this.steering.pathwayPriority:null}set pathwayPriority(at){if(this.steering){const ut=this.steering.pathways(),dt=at.filter(ct=>ut.indexOf(ct)!==-1);if(at.length<1){this.warn(`pathwayPriority ${at} should contain at least one pathway from list: ${ut}`);return}this.steering.pathwayPriority=dt}}onError(at,ut){ut.fatal||!ut.context||ut.context.type===PlaylistContextType.LEVEL&&ut.context.level===this.level&&this.checkRetry(ut)}onFragBuffered(at,{frag:ut}){if(ut!==void 0&&ut.type===PlaylistLevelType.MAIN){const dt=ut.elementaryStreams;if(!Object.keys(dt).some(pt=>!!dt[pt]))return;const ct=this._levels[ut.level];ct!=null&&ct.loadError&&(this.log(`Resetting level error count of ${ct.loadError} on frag buffered`),ct.loadError=0)}}onLevelLoaded(at,ut){var dt;const{level:ct,details:pt}=ut,ft=ut.levelInfo;if(!ft){var ht;this.warn(`Invalid level index ${ct}`),(ht=ut.deliveryDirectives)!=null&&ht.skip&&(pt.deltaUpdateFailed=!0);return}if(ft===this.currentLevel||ut.withoutMultiVariant){ft.fragmentError===0&&(ft.loadError=0);let mt=ft.details;mt===ut.details&&mt.advanced&&(mt=void 0),this.playlistLoaded(ct,ut,mt)}else(dt=ut.deliveryDirectives)!=null&&dt.skip&&(pt.deltaUpdateFailed=!0)}loadPlaylist(at){super.loadPlaylist(),this.shouldLoadPlaylist(this.currentLevel)&&this.scheduleLoading(this.currentLevel,at)}loadingPlaylist(at,ut){super.loadingPlaylist(at,ut);const dt=this.getUrlWithDirectives(at.uri,ut),ct=this.currentLevelIndex,pt=at.attrs["PATHWAY-ID"],ft=at.details,ht=ft==null?void 0:ft.age;this.log(`Loading level index ${ct}${(ut==null?void 0:ut.msn)!==void 0?" at sn "+ut.msn+" part "+ut.part:""}${pt?" Pathway "+pt:""}${ht&&ft.live?" age "+ht.toFixed(1)+(ft.type&&" "+ft.type||""):""} ${dt}`),this.hls.trigger(Events.LEVEL_LOADING,{url:dt,level:ct,levelInfo:at,pathwayId:at.attrs["PATHWAY-ID"],id:0,deliveryDirectives:ut||null})}get nextLoadLevel(){return this.manualLevelIndex!==-1?this.manualLevelIndex:this.hls.nextAutoLevel}set nextLoadLevel(at){this.level=at,this.manualLevelIndex===-1&&(this.hls.nextAutoLevel=at)}removeLevel(at){var ut;if(this._levels.length===1)return;const dt=this._levels.filter((pt,ft)=>ft!==at?!0:(this.steering&&this.steering.removeLevel(pt),pt===this.currentLevel&&(this.currentLevel=null,this.currentLevelIndex=-1,pt.details&&pt.details.fragments.forEach(ht=>ht.level=-1)),!1));reassignFragmentLevelIndexes(dt),this._levels=dt,this.currentLevelIndex>-1&&(ut=this.currentLevel)!=null&&ut.details&&(this.currentLevelIndex=this.currentLevel.details.fragments[0].level),this.manualLevelIndex>-1&&(this.manualLevelIndex=this.currentLevelIndex);const ct=dt.length-1;this._firstLevel=Math.min(this._firstLevel,ct),this._startLevel&&(this._startLevel=Math.min(this._startLevel,ct)),this.hls.trigger(Events.LEVELS_UPDATED,{levels:dt})}onLevelsUpdated(at,{levels:ut}){this._levels=ut}checkMaxAutoUpdated(){const{autoLevelCapping:at,maxAutoLevel:ut,maxHdcpLevel:dt}=this.hls;this._maxAutoLevel!==ut&&(this._maxAutoLevel=ut,this.hls.trigger(Events.MAX_AUTO_LEVEL_UPDATED,{autoLevelCapping:at,levels:this.levels,maxAutoLevel:ut,minAutoLevel:this.hls.minAutoLevel,maxHdcpLevel:dt}))}}function assignTrackIdsByGroup(st){const at={};st.forEach(ut=>{const dt=ut.groupId||"";ut.id=at[dt]=at[dt]||0,at[dt]++})}function getSourceBuffer(){return self.SourceBuffer||self.WebKitSourceBuffer}function isMSESupported(){if(!getMediaSource())return!1;const at=getSourceBuffer();return!at||at.prototype&&typeof at.prototype.appendBuffer=="function"&&typeof at.prototype.remove=="function"}function isSupported(){if(!isMSESupported())return!1;const st=getMediaSource();return typeof(st==null?void 0:st.isTypeSupported)=="function"&&(["avc1.42E01E,mp4a.40.2","av01.0.01M.08","vp09.00.50.08"].some(at=>st.isTypeSupported(mimeTypeForCodec(at,"video")))||["mp4a.40.2","fLaC"].some(at=>st.isTypeSupported(mimeTypeForCodec(at,"audio"))))}function changeTypeSupported(){var st;const at=getSourceBuffer();return typeof(at==null||(st=at.prototype)==null?void 0:st.changeType)=="function"}const TICK_INTERVAL=100;class StreamController extends BaseStreamController{constructor(at,ut,dt){super(at,ut,dt,"stream-controller",PlaylistLevelType.MAIN),this.audioCodecSwap=!1,this.level=-1,this._forceStartLoad=!1,this._hasEnoughToStart=!1,this.altAudio=0,this.audioOnly=!1,this.fragPlaying=null,this.fragLastKbps=0,this.couldBacktrack=!1,this.backtrackFragment=null,this.audioCodecSwitch=!1,this.videoBuffer=null,this.onMediaPlaying=()=>{this.tick()},this.onMediaSeeked=()=>{const ct=this.media,pt=ct?ct.currentTime:null;if(pt===null||!isFiniteNumber(pt)||(this.log(`Media seeked to ${pt.toFixed(3)}`),!this.getBufferedFrag(pt)))return;const ft=this.getFwdBufferInfoAtPos(ct,pt,PlaylistLevelType.MAIN,0);if(ft===null||ft.len===0){this.warn(`Main forward buffer length at ${pt} on "seeked" event ${ft?ft.len:"empty"})`);return}this.tick()},this.registerListeners()}registerListeners(){super.registerListeners();const{hls:at}=this;at.on(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.on(Events.LEVEL_LOADING,this.onLevelLoading,this),at.on(Events.LEVEL_LOADED,this.onLevelLoaded,this),at.on(Events.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),at.on(Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),at.on(Events.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),at.on(Events.BUFFER_CREATED,this.onBufferCreated,this),at.on(Events.BUFFER_FLUSHED,this.onBufferFlushed,this),at.on(Events.LEVELS_UPDATED,this.onLevelsUpdated,this),at.on(Events.FRAG_BUFFERED,this.onFragBuffered,this)}unregisterListeners(){super.unregisterListeners();const{hls:at}=this;at.off(Events.MANIFEST_PARSED,this.onManifestParsed,this),at.off(Events.LEVEL_LOADED,this.onLevelLoaded,this),at.off(Events.FRAG_LOAD_EMERGENCY_ABORTED,this.onFragLoadEmergencyAborted,this),at.off(Events.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),at.off(Events.AUDIO_TRACK_SWITCHED,this.onAudioTrackSwitched,this),at.off(Events.BUFFER_CREATED,this.onBufferCreated,this),at.off(Events.BUFFER_FLUSHED,this.onBufferFlushed,this),at.off(Events.LEVELS_UPDATED,this.onLevelsUpdated,this),at.off(Events.FRAG_BUFFERED,this.onFragBuffered,this)}onHandlerDestroying(){this.onMediaPlaying=this.onMediaSeeked=null,this.unregisterListeners(),super.onHandlerDestroying()}startLoad(at,ut){if(this.levels){const{lastCurrentTime:dt,hls:ct}=this;if(this.stopLoad(),this.setInterval(TICK_INTERVAL),this.level=-1,!this.startFragRequested){let pt=ct.startLevel;pt===-1&&(ct.config.testBandwidth&&this.levels.length>1?(pt=0,this.bitrateTest=!0):pt=ct.firstAutoLevel),ct.nextLoadLevel=pt,this.level=ct.loadLevel,this._hasEnoughToStart=!!ut}dt>0&&at===-1&&!ut&&(this.log(`Override startPosition with lastCurrentTime @${dt.toFixed(3)}`),at=dt),this.state=State.IDLE,this.nextLoadPosition=this.lastCurrentTime=at+this.timelineOffset,this.startPosition=ut?-1:at,this.tick()}else this._forceStartLoad=!0,this.state=State.STOPPED}stopLoad(){this._forceStartLoad=!1,super.stopLoad()}doTick(){switch(this.state){case State.WAITING_LEVEL:{const{levels:ut,level:dt}=this,ct=ut==null?void 0:ut[dt],pt=ct==null?void 0:ct.details;if(pt&&(!pt.live||this.levelLastLoaded===ct&&!this.waitForLive(ct))){if(this.waitForCdnTuneIn(pt))break;this.state=State.IDLE;break}else if(this.hls.nextLoadLevel!==this.level){this.state=State.IDLE;break}break}case State.FRAG_LOADING_WAITING_RETRY:{var at;const ut=self.performance.now(),dt=this.retryDate;if(!dt||ut>=dt||(at=this.media)!=null&&at.seeking){const{levels:ct,level:pt}=this,ft=ct==null?void 0:ct[pt];this.resetStartWhenNotLoaded(ft||null),this.state=State.IDLE}}break}this.state===State.IDLE&&this.doTickIdle(),this.onTickEnd()}onTickEnd(){var at;super.onTickEnd(),(at=this.media)!=null&&at.readyState&&this.media.seeking===!1&&(this.lastCurrentTime=this.media.currentTime),this.checkFragmentChanged()}doTickIdle(){const{hls:at,levelLastLoaded:ut,levels:dt,media:ct}=this;if(ut===null||!ct&&!this.primaryPrefetch&&(this.startFragRequested||!at.config.startFragPrefetch)||this.altAudio&&this.audioOnly)return;const pt=this.buffering?at.nextLoadLevel:at.loadLevel;if(!(dt!=null&&dt[pt]))return;const ft=dt[pt],ht=this.getMainFwdBufferInfo();if(ht===null)return;const mt=this.getLevelDetails();if(mt&&this._streamEnded(ht,mt)){const Dt={};this.altAudio===2&&(Dt.type="video"),this.hls.trigger(Events.BUFFER_EOS,Dt),this.state=State.ENDED;return}if(!this.buffering)return;at.loadLevel!==pt&&at.manualLevel===-1&&this.log(`Adapting to level ${pt} from level ${this.level}`),this.level=at.nextLoadLevel=pt;const yt=ft.details;if(!yt||this.state===State.WAITING_LEVEL||this.waitForLive(ft)){this.level=pt,this.state=State.WAITING_LEVEL,this.startFragRequested=!1;return}const bt=ht.len,Tt=this.getMaxBufferLength(ft.maxBitrate);if(bt>=Tt)return;this.backtrackFragment&&this.backtrackFragment.start>ht.end&&(this.backtrackFragment=null);const St=this.backtrackFragment?this.backtrackFragment.start:ht.end;let At=this.getNextFragment(St,yt);if(this.couldBacktrack&&!this.fragPrevious&&At&&isMediaFragment(At)&&this.fragmentTracker.getState(At)!==FragmentState.OK){var vt;const Et=((vt=this.backtrackFragment)!=null?vt:At).sn-yt.startSN,_t=yt.fragments[Et-1];_t&&At.cc===_t.cc&&(At=_t,this.fragmentTracker.removeFragment(_t))}else this.backtrackFragment&&ht.len&&(this.backtrackFragment=null);if(At&&this.isLoopLoading(At,St)){if(!At.gap){const Et=this.audioOnly&&!this.altAudio?ElementaryStreamTypes.AUDIO:ElementaryStreamTypes.VIDEO,_t=(Et===ElementaryStreamTypes.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;_t&&this.afterBufferFlushed(_t,Et,PlaylistLevelType.MAIN)}At=this.getNextFragmentLoopLoading(At,yt,ht,PlaylistLevelType.MAIN,Tt)}At&&(At.initSegment&&!At.initSegment.data&&!this.bitrateTest&&(At=At.initSegment),this.loadFragment(At,ft,St))}loadFragment(at,ut,dt){const ct=this.fragmentTracker.getState(at);ct===FragmentState.NOT_LOADED||ct===FragmentState.PARTIAL?isMediaFragment(at)?this.bitrateTest?(this.log(`Fragment ${at.sn} of level ${at.level} is being downloaded to test bitrate and will not be buffered`),this._loadBitrateTestFrag(at,ut)):super.loadFragment(at,ut,dt):this._loadInitSegment(at,ut):this.clearTrackerIfNeeded(at)}getBufferedFrag(at){return this.fragmentTracker.getBufferedFrag(at,PlaylistLevelType.MAIN)}followingBufferedFrag(at){return at?this.getBufferedFrag(at.end+.5):null}immediateLevelSwitch(){this.abortCurrentFrag(),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)}nextLevelSwitch(){const{levels:at,media:ut}=this;if(ut!=null&&ut.readyState){let dt;const ct=this.getAppendedFrag(ut.currentTime);ct&&ct.start>1&&this.flushMainBuffer(0,ct.start-1);const pt=this.getLevelDetails();if(pt!=null&&pt.live){const ht=this.getMainFwdBufferInfo();if(!ht||ht.len{const ft=pt.audioCodec;ft&&(dt=dt||ft.indexOf("mp4a.40.2")!==-1,ct=ct||ft.indexOf("mp4a.40.5")!==-1)}),this.audioCodecSwitch=dt&&ct&&!changeTypeSupported(),this.audioCodecSwitch&&this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=ut.levels,this.startFragRequested=!1}onLevelLoading(at,ut){const{levels:dt}=this;if(!dt||this.state!==State.IDLE)return;const ct=ut.levelInfo;(!ct.details||ct.details.live&&(this.levelLastLoaded!==ct||ct.details.expired)||this.waitForCdnTuneIn(ct.details))&&(this.state=State.WAITING_LEVEL)}onLevelLoaded(at,ut){var dt;const{levels:ct,startFragRequested:pt}=this,ft=ut.level,ht=ut.details,mt=ht.totalduration;if(!ct){this.warn(`Levels were reset while loading level ${ft}`);return}this.log(`Level ${ft} loaded [${ht.startSN},${ht.endSN}]${ht.lastPartSn?`[part-${ht.lastPartSn}-${ht.lastPartIndex}]`:""}, cc [${ht.startCC}, ${ht.endCC}] duration:${mt}`);const yt=ut.levelInfo,bt=this.fragCurrent;bt&&(this.state===State.FRAG_LOADING||this.state===State.FRAG_LOADING_WAITING_RETRY)&&bt.level!==ut.level&&bt.loader&&this.abortCurrentFrag();let Tt=0;if(ht.live||(dt=yt.details)!=null&&dt.live){var St;if(this.checkLiveUpdate(ht),ht.deltaUpdateFailed)return;Tt=this.alignPlaylists(ht,yt.details,(St=this.levelLastLoaded)==null?void 0:St.details)}if(yt.details=ht,this.levelLastLoaded=yt,pt||this.setStartPosition(ht,Tt),this.hls.trigger(Events.LEVEL_UPDATED,{details:ht,level:ft}),this.state===State.WAITING_LEVEL){if(this.waitForCdnTuneIn(ht))return;this.state=State.IDLE}pt&&ht.live&&this.synchronizeToLiveEdge(ht),this.tick()}synchronizeToLiveEdge(at){const{config:ut,media:dt}=this;if(!dt)return;const ct=this.hls.liveSyncPosition,pt=this.getLoadPosition(),ft=at.fragmentStart,ht=at.edge,mt=pt>=ft-ut.maxFragLookUpTolerance&&pt<=ht;if(ct!==null&&dt.duration>ct&&(pt{var ft;(ft=this.hls)==null||ft.trigger(Events.AUDIO_TRACK_SWITCHED,ut)}),dt.trigger(Events.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:null});return}dt.trigger(Events.AUDIO_TRACK_SWITCHED,ut)}}onAudioTrackSwitched(at,ut){const dt=useAlternateAudio(ut.url,this.hls);if(dt){const ct=this.videoBuffer;ct&&this.mediaBuffer!==ct&&(this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=ct)}this.altAudio=dt?2:0,this.tick()}onBufferCreated(at,ut){const dt=ut.tracks;let ct,pt,ft=!1;for(const ht in dt){const mt=dt[ht];if(mt.id==="main"){if(pt=ht,ct=mt,ht==="video"){const yt=dt[ht];yt&&(this.videoBuffer=yt.buffer)}}else ft=!0}ft&&ct?(this.log(`Alternate track found, use ${pt}.buffered to schedule main fragment loading`),this.mediaBuffer=ct.buffer):this.mediaBuffer=this.media}onFragBuffered(at,ut){const{frag:dt,part:ct}=ut,pt=dt.type===PlaylistLevelType.MAIN;if(pt){if(this.fragContextChanged(dt)){this.warn(`Fragment ${dt.sn}${ct?" p: "+ct.index:""} of level ${dt.level} finished buffering, but was aborted. state: ${this.state}`),this.state===State.PARSED&&(this.state=State.IDLE);return}const ht=ct?ct.stats:dt.stats;this.fragLastKbps=Math.round(8*ht.total/(ht.buffering.end-ht.loading.first)),isMediaFragment(dt)&&(this.fragPrevious=dt),this.fragBufferedComplete(dt,ct)}const ft=this.media;ft&&(!this._hasEnoughToStart&&BufferHelper.getBuffered(ft).length&&(this._hasEnoughToStart=!0,this.seekToStartPos()),pt&&this.tick())}get hasEnoughToStart(){return this._hasEnoughToStart}onError(at,ut){var dt;if(ut.fatal){this.state=State.ERROR;return}switch(ut.details){case ErrorDetails.FRAG_GAP:case ErrorDetails.FRAG_PARSING_ERROR:case ErrorDetails.FRAG_DECRYPT_ERROR:case ErrorDetails.FRAG_LOAD_ERROR:case ErrorDetails.FRAG_LOAD_TIMEOUT:case ErrorDetails.KEY_LOAD_ERROR:case ErrorDetails.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(PlaylistLevelType.MAIN,ut);break;case ErrorDetails.LEVEL_LOAD_ERROR:case ErrorDetails.LEVEL_LOAD_TIMEOUT:case ErrorDetails.LEVEL_PARSING_ERROR:!ut.levelRetry&&this.state===State.WAITING_LEVEL&&((dt=ut.context)==null?void 0:dt.type)===PlaylistContextType.LEVEL&&(this.state=State.IDLE);break;case ErrorDetails.BUFFER_ADD_CODEC_ERROR:case ErrorDetails.BUFFER_APPEND_ERROR:if(ut.parent!=="main")return;this.reduceLengthAndFlushBuffer(ut)&&this.resetLoadingState();break;case ErrorDetails.BUFFER_FULL_ERROR:if(ut.parent!=="main")return;this.reduceLengthAndFlushBuffer(ut)&&this.flushMainBuffer(0,Number.POSITIVE_INFINITY);break;case ErrorDetails.INTERNAL_EXCEPTION:this.recoverWorkerError(ut);break}}onFragLoadEmergencyAborted(){this.state=State.IDLE,this._hasEnoughToStart||(this.startFragRequested=!1,this.nextLoadPosition=this.lastCurrentTime),this.tickImmediate()}onBufferFlushed(at,{type:ut}){if(ut!==ElementaryStreamTypes.AUDIO||!this.altAudio){const dt=(ut===ElementaryStreamTypes.VIDEO?this.videoBuffer:this.mediaBuffer)||this.media;dt&&(this.afterBufferFlushed(dt,ut,PlaylistLevelType.MAIN),this.tick())}}onLevelsUpdated(at,ut){this.level>-1&&this.fragCurrent&&(this.level=this.fragCurrent.level,this.level===-1&&this.resetWhenMissingContext(this.fragCurrent)),this.levels=ut.levels}swapAudioCodec(){this.audioCodecSwap=!this.audioCodecSwap}seekToStartPos(){const{media:at}=this;if(!at)return;const ut=at.currentTime;let dt=this.startPosition;if(dt>=0&&ut0&&(mt{const{hls:ct}=this,pt=dt==null?void 0:dt.frag;if(!pt||this.fragContextChanged(pt))return;ut.fragmentError=0,this.state=State.IDLE,this.startFragRequested=!1,this.bitrateTest=!1;const ft=pt.stats;ft.parsing.start=ft.parsing.end=ft.buffering.start=ft.buffering.end=self.performance.now(),ct.trigger(Events.FRAG_LOADED,dt),pt.bitrateTest=!1})}_handleTransmuxComplete(at){var ut;const dt=this.playlistType,{hls:ct}=this,{remuxResult:pt,chunkMeta:ft}=at,ht=this.getCurrentContext(ft);if(!ht){this.resetWhenMissingContext(ft);return}const{frag:mt,part:yt,level:bt}=ht,{video:Tt,text:St,id3:At,initSegment:vt}=pt,{details:Dt}=bt,Et=this.altAudio?void 0:pt.audio;if(this.fragContextChanged(mt)){this.fragmentTracker.removeFragment(mt);return}if(this.state=State.PARSING,vt){if(vt!=null&&vt.tracks){const kt=mt.initSegment||mt;this._bufferInitSegment(bt,vt.tracks,kt,ft),ct.trigger(Events.FRAG_PARSING_INIT_SEGMENT,{frag:kt,id:dt,tracks:vt.tracks})}const _t=vt.initPTS,xt=vt.timescale,Ct=this.initPTS[mt.cc];isFiniteNumber(_t)&&(!Ct||Ct.baseTime!==_t||Ct.timescale!==xt)&&(this.initPTS[mt.cc]={baseTime:_t,timescale:xt},ct.trigger(Events.INIT_PTS_FOUND,{frag:mt,id:dt,initPTS:_t,timescale:xt}))}if(Tt&&Dt){Et&&Tt.type==="audiovideo"&&this.logMuxedErr(mt);const _t=Dt.fragments[mt.sn-1-Dt.startSN],xt=mt.sn===Dt.startSN,Ct=!_t||mt.cc>_t.cc;if(pt.independent!==!1){const{startPTS:kt,endPTS:wt,startDTS:$t,endDTS:Lt}=Tt;if(yt)yt.elementaryStreams[Tt.type]={startPTS:kt,endPTS:wt,startDTS:$t,endDTS:Lt};else if(Tt.firstKeyFrame&&Tt.independent&&ft.id===1&&!Ct&&(this.couldBacktrack=!0),Tt.dropped&&Tt.independent){const Ot=this.getMainFwdBufferInfo(),zt=(Ot?Ot.end:this.getLoadPosition())+this.config.maxBufferHole,Mt=Tt.firstKeyFramePTS?Tt.firstKeyFramePTS:kt;if(!xt&&ztMAX_START_GAP_JUMP&&(mt.gap=!0);mt.setElementaryStreamInfo(Tt.type,kt,wt,$t,Lt),this.backtrackFragment&&(this.backtrackFragment=mt),this.bufferFragmentData(Tt,mt,yt,ft,xt||Ct)}else if(xt||Ct)mt.gap=!0;else{this.backtrack(mt);return}}if(Et){const{startPTS:_t,endPTS:xt,startDTS:Ct,endDTS:kt}=Et;yt&&(yt.elementaryStreams[ElementaryStreamTypes.AUDIO]={startPTS:_t,endPTS:xt,startDTS:Ct,endDTS:kt}),mt.setElementaryStreamInfo(ElementaryStreamTypes.AUDIO,_t,xt,Ct,kt),this.bufferFragmentData(Et,mt,yt,ft)}if(Dt&&At!=null&&(ut=At.samples)!=null&&ut.length){const _t={id:dt,frag:mt,details:Dt,samples:At.samples};ct.trigger(Events.FRAG_PARSING_METADATA,_t)}if(Dt&&St){const _t={id:dt,frag:mt,details:Dt,samples:St.samples};ct.trigger(Events.FRAG_PARSING_USERDATA,_t)}}logMuxedErr(at){this.warn(`${isMediaFragment(at)?"Media":"Init"} segment with muxed audiovideo where only video expected: ${at.url}`)}_bufferInitSegment(at,ut,dt,ct){if(this.state!==State.PARSING)return;this.audioOnly=!!ut.audio&&!ut.video,this.altAudio&&!this.audioOnly&&(delete ut.audio,ut.audiovideo&&this.logMuxedErr(dt));const{audio:pt,video:ft,audiovideo:ht}=ut;if(pt){const yt=at.audioCodec;let bt=pickMostCompleteCodecName(pt.codec,yt);bt==="mp4a"&&(bt="mp4a.40.5");const Tt=navigator.userAgent.toLowerCase();if(this.audioCodecSwitch){bt&&(bt.indexOf("mp4a.40.5")!==-1?bt="mp4a.40.2":bt="mp4a.40.5");const St=pt.metadata;St&&"channelCount"in St&&(St.channelCount||1)!==1&&Tt.indexOf("firefox")===-1&&(bt="mp4a.40.5")}bt&&bt.indexOf("mp4a.40.5")!==-1&&Tt.indexOf("android")!==-1&&pt.container!=="audio/mpeg"&&(bt="mp4a.40.2",this.log(`Android: force audio codec to ${bt}`)),yt&&yt!==bt&&this.log(`Swapping manifest audio codec "${yt}" for "${bt}"`),pt.levelCodec=bt,pt.id=PlaylistLevelType.MAIN,this.log(`Init audio buffer, container:${pt.container}, codecs[selected/level/parsed]=[${bt||""}/${yt||""}/${pt.codec}]`),delete ut.audiovideo}if(ft){ft.levelCodec=at.videoCodec,ft.id=PlaylistLevelType.MAIN;const yt=ft.codec;if((yt==null?void 0:yt.length)===4)switch(yt){case"hvc1":case"hev1":ft.codec="hvc1.1.6.L120.90";break;case"av01":ft.codec="av01.0.04M.08";break;case"avc1":ft.codec="avc1.42e01e";break}this.log(`Init video buffer, container:${ft.container}, codecs[level/parsed]=[${at.videoCodec||""}/${yt}]${ft.codec!==yt?" parsed-corrected="+ft.codec:""}${ft.supplemental?" supplemental="+ft.supplemental:""}`),delete ut.audiovideo}ht&&(this.log(`Init audiovideo buffer, container:${ht.container}, codecs[level/parsed]=[${at.codecs}/${ht.codec}]`),delete ut.video,delete ut.audio);const mt=Object.keys(ut);if(mt.length){if(this.hls.trigger(Events.BUFFER_CODECS,ut),!this.hls)return;mt.forEach(yt=>{const Tt=ut[yt].initSegment;Tt!=null&&Tt.byteLength&&this.hls.trigger(Events.BUFFER_APPENDING,{type:yt,data:Tt,frag:dt,part:null,chunkMeta:ct,parent:dt.type})})}this.tickImmediate()}getMainFwdBufferInfo(){const at=this.mediaBuffer&&this.altAudio===2?this.mediaBuffer:this.media;return this.getFwdBufferInfo(at,PlaylistLevelType.MAIN)}get maxBufferLength(){const{levels:at,level:ut}=this,dt=at==null?void 0:at[ut];return dt?this.getMaxBufferLength(dt.maxBitrate):this.config.maxBufferLength}backtrack(at){this.couldBacktrack=!0,this.backtrackFragment=at,this.resetTransmuxer(),this.flushBufferGap(at),this.fragmentTracker.removeFragment(at),this.fragPrevious=null,this.nextLoadPosition=at.start,this.state=State.IDLE}checkFragmentChanged(){const at=this.media;let ut=null;if(at&&at.readyState>1&&at.seeking===!1){const dt=at.currentTime;if(BufferHelper.isBuffered(at,dt)?ut=this.getAppendedFrag(dt):BufferHelper.isBuffered(at,dt+.1)&&(ut=this.getAppendedFrag(dt+.1)),ut){this.backtrackFragment=null;const ct=this.fragPlaying,pt=ut.level;(!ct||ut.sn!==ct.sn||ct.level!==pt)&&(this.fragPlaying=ut,this.hls.trigger(Events.FRAG_CHANGED,{frag:ut}),(!ct||ct.level!==pt)&&this.hls.trigger(Events.LEVEL_SWITCHED,{level:pt}))}}}get nextLevel(){const at=this.nextBufferedFrag;return at?at.level:-1}get currentFrag(){var at;if(this.fragPlaying)return this.fragPlaying;const ut=((at=this.media)==null?void 0:at.currentTime)||this.lastCurrentTime;return isFiniteNumber(ut)?this.getAppendedFrag(ut):null}get currentProgramDateTime(){var at;const ut=((at=this.media)==null?void 0:at.currentTime)||this.lastCurrentTime;if(isFiniteNumber(ut)){const dt=this.getLevelDetails(),ct=this.currentFrag||(dt?findFragmentByPTS(null,dt.fragments,ut):null);if(ct){const pt=ct.programDateTime;if(pt!==null){const ft=pt+(ut-ct.start)*1e3;return new Date(ft)}}}return null}get currentLevel(){const at=this.currentFrag;return at?at.level:-1}get nextBufferedFrag(){const at=this.currentFrag;return at?this.followingBufferedFrag(at):null}get forceStartLoad(){return this._forceStartLoad}}class KeyLoader{constructor(at){this.config=void 0,this.keyUriToKeyInfo={},this.emeController=null,this.config=at}abort(at){for(const dt in this.keyUriToKeyInfo){const ct=this.keyUriToKeyInfo[dt].loader;if(ct){var ut;if(at&&at!==((ut=ct.context)==null?void 0:ut.frag.type))return;ct.abort()}}}detach(){for(const at in this.keyUriToKeyInfo){const ut=this.keyUriToKeyInfo[at];(ut.mediaKeySessionContext||ut.decryptdata.isCommonEncryption)&&delete this.keyUriToKeyInfo[at]}}destroy(){this.detach();for(const at in this.keyUriToKeyInfo){const ut=this.keyUriToKeyInfo[at].loader;ut&&ut.destroy()}this.keyUriToKeyInfo={}}createKeyLoadError(at,ut=ErrorDetails.KEY_LOAD_ERROR,dt,ct,pt){return new LoadError({type:ErrorTypes.NETWORK_ERROR,details:ut,fatal:!1,frag:at,response:pt,error:dt,networkDetails:ct})}loadClear(at,ut,dt){if(this.emeController&&this.config.emeEnabled&&!this.emeController.getSelectedKeySystemFormats().length){if(ut.length)for(let ct=0,pt=ut.length;ct{if(!this.emeController)return;ft.setKeyFormat(ht);const mt=keySystemFormatToKeySystemDomain(ht);if(mt)return this.emeController.getKeySystemAccess([mt])})}if(this.config.requireKeySystemAccessOnStart){const ct=getKeySystemsForConfig(this.config);if(ct.length)return this.emeController.getKeySystemAccess(ct)}}return null}load(at){return!at.decryptdata&&at.encrypted&&this.emeController&&this.config.emeEnabled?this.emeController.selectKeySystemFormat(at).then(ut=>this.loadInternal(at,ut)):this.loadInternal(at)}loadInternal(at,ut){var dt,ct;ut&&at.setKeyFormat(ut);const pt=at.decryptdata;if(!pt){const yt=new Error(ut?`Expected frag.decryptdata to be defined after setting format ${ut}`:"Missing decryption data on fragment in onKeyLoading");return Promise.reject(this.createKeyLoadError(at,ErrorDetails.KEY_LOAD_ERROR,yt))}const ft=pt.uri;if(!ft)return Promise.reject(this.createKeyLoadError(at,ErrorDetails.KEY_LOAD_ERROR,new Error(`Invalid key URI: "${ft}"`)));let ht=this.keyUriToKeyInfo[ft];if((dt=ht)!=null&&dt.decryptdata.key)return pt.key=ht.decryptdata.key,Promise.resolve({frag:at,keyInfo:ht});if((ct=ht)!=null&&ct.keyLoadPromise){var mt;switch((mt=ht.mediaKeySessionContext)==null?void 0:mt.keyStatus){case void 0:case"status-pending":case"usable":case"usable-in-future":return ht.keyLoadPromise.then(yt=>(pt.key=yt.keyInfo.decryptdata.key,{frag:at,keyInfo:ht}))}}switch(ht=this.keyUriToKeyInfo[ft]={decryptdata:pt,keyLoadPromise:null,loader:null,mediaKeySessionContext:null},pt.method){case"ISO-23001-7":case"SAMPLE-AES":case"SAMPLE-AES-CENC":case"SAMPLE-AES-CTR":return pt.keyFormat==="identity"?this.loadKeyHTTP(ht,at):this.loadKeyEME(ht,at);case"AES-128":case"AES-256":case"AES-256-CTR":return this.loadKeyHTTP(ht,at);default:return Promise.reject(this.createKeyLoadError(at,ErrorDetails.KEY_LOAD_ERROR,new Error(`Key supplied with unsupported METHOD: "${pt.method}"`)))}}loadKeyEME(at,ut){const dt={frag:ut,keyInfo:at};if(this.emeController&&this.config.emeEnabled){const ct=this.emeController.loadKey(dt);if(ct)return(at.keyLoadPromise=ct.then(pt=>(at.mediaKeySessionContext=pt,dt))).catch(pt=>{throw at.keyLoadPromise=null,pt})}return Promise.resolve(dt)}loadKeyHTTP(at,ut){const dt=this.config,ct=dt.loader,pt=new ct(dt);return ut.keyLoader=at.loader=pt,at.keyLoadPromise=new Promise((ft,ht)=>{const mt={keyInfo:at,frag:ut,responseType:"arraybuffer",url:at.decryptdata.uri},yt=dt.keyLoadPolicy.default,bt={loadPolicy:yt,timeout:yt.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},Tt={onSuccess:(St,At,vt,Dt)=>{const{frag:Et,keyInfo:_t,url:xt}=vt;if(!Et.decryptdata||_t!==this.keyUriToKeyInfo[xt])return ht(this.createKeyLoadError(Et,ErrorDetails.KEY_LOAD_ERROR,new Error("after key load, decryptdata unset or changed"),Dt));_t.decryptdata.key=Et.decryptdata.key=new Uint8Array(St.data),Et.keyLoader=null,_t.loader=null,ft({frag:Et,keyInfo:_t})},onError:(St,At,vt,Dt)=>{this.resetLoader(At),ht(this.createKeyLoadError(ut,ErrorDetails.KEY_LOAD_ERROR,new Error(`HTTP Error ${St.code} loading key ${St.text}`),vt,_objectSpread2({url:mt.url,data:void 0},St)))},onTimeout:(St,At,vt)=>{this.resetLoader(At),ht(this.createKeyLoadError(ut,ErrorDetails.KEY_LOAD_TIMEOUT,new Error("key loading timed out"),vt))},onAbort:(St,At,vt)=>{this.resetLoader(At),ht(this.createKeyLoadError(ut,ErrorDetails.INTERNAL_ABORTED,new Error("key loading aborted"),vt))}};pt.load(mt,bt,Tt)})}resetLoader(at){const{frag:ut,keyInfo:dt,url:ct}=at,pt=dt.loader;ut.keyLoader===pt&&(ut.keyLoader=null,dt.loader=null),delete this.keyUriToKeyInfo[ct],pt&&pt.destroy()}}function mapContextToLevelType(st){const{type:at}=st;switch(at){case PlaylistContextType.AUDIO_TRACK:return PlaylistLevelType.AUDIO;case PlaylistContextType.SUBTITLE_TRACK:return PlaylistLevelType.SUBTITLE;default:return PlaylistLevelType.MAIN}}function getResponseUrl(st,at){let ut=st.url;return(ut===void 0||ut.indexOf("data:")===0)&&(ut=at.url),ut}class PlaylistLoader{constructor(at){this.hls=void 0,this.loaders=Object.create(null),this.variableList=null,this.onManifestLoaded=this.checkAutostartLoad,this.hls=at,this.registerListeners()}startLoad(at){}stopLoad(){this.destroyInternalLoaders()}registerListeners(){const{hls:at}=this;at.on(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.on(Events.LEVEL_LOADING,this.onLevelLoading,this),at.on(Events.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),at.on(Events.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),at.on(Events.LEVELS_UPDATED,this.onLevelsUpdated,this)}unregisterListeners(){const{hls:at}=this;at.off(Events.MANIFEST_LOADING,this.onManifestLoading,this),at.off(Events.LEVEL_LOADING,this.onLevelLoading,this),at.off(Events.AUDIO_TRACK_LOADING,this.onAudioTrackLoading,this),at.off(Events.SUBTITLE_TRACK_LOADING,this.onSubtitleTrackLoading,this),at.off(Events.LEVELS_UPDATED,this.onLevelsUpdated,this)}createInternalLoader(at){const ut=this.hls.config,dt=ut.pLoader,ct=ut.loader,pt=dt||ct,ft=new pt(ut);return this.loaders[at.type]=ft,ft}getInternalLoader(at){return this.loaders[at.type]}resetInternalLoader(at){this.loaders[at]&&delete this.loaders[at]}destroyInternalLoaders(){for(const at in this.loaders){const ut=this.loaders[at];ut&&ut.destroy(),this.resetInternalLoader(at)}}destroy(){this.variableList=null,this.unregisterListeners(),this.destroyInternalLoaders()}onManifestLoading(at,ut){const{url:dt}=ut;this.variableList=null,this.load({id:null,level:0,responseType:"text",type:PlaylistContextType.MANIFEST,url:dt,deliveryDirectives:null,levelOrTrack:null})}onLevelLoading(at,ut){const{id:dt,level:ct,pathwayId:pt,url:ft,deliveryDirectives:ht,levelInfo:mt}=ut;this.load({id:dt,level:ct,pathwayId:pt,responseType:"text",type:PlaylistContextType.LEVEL,url:ft,deliveryDirectives:ht,levelOrTrack:mt})}onAudioTrackLoading(at,ut){const{id:dt,groupId:ct,url:pt,deliveryDirectives:ft,track:ht}=ut;this.load({id:dt,groupId:ct,level:null,responseType:"text",type:PlaylistContextType.AUDIO_TRACK,url:pt,deliveryDirectives:ft,levelOrTrack:ht})}onSubtitleTrackLoading(at,ut){const{id:dt,groupId:ct,url:pt,deliveryDirectives:ft,track:ht}=ut;this.load({id:dt,groupId:ct,level:null,responseType:"text",type:PlaylistContextType.SUBTITLE_TRACK,url:pt,deliveryDirectives:ft,levelOrTrack:ht})}onLevelsUpdated(at,ut){const dt=this.loaders[PlaylistContextType.LEVEL];if(dt){const ct=dt.context;ct&&!ut.levels.some(pt=>pt===ct.levelOrTrack)&&(dt.abort(),delete this.loaders[PlaylistContextType.LEVEL])}}load(at){var ut;const dt=this.hls.config;let ct=this.getInternalLoader(at);if(ct){const yt=this.hls.logger,bt=ct.context;if(bt&&bt.levelOrTrack===at.levelOrTrack&&(bt.url===at.url||bt.deliveryDirectives&&!at.deliveryDirectives)){bt.url===at.url?yt.log(`[playlist-loader]: ignore ${at.url} ongoing request`):yt.log(`[playlist-loader]: ignore ${at.url} in favor of ${bt.url}`);return}yt.log(`[playlist-loader]: aborting previous loader for type: ${at.type}`),ct.abort()}let pt;if(at.type===PlaylistContextType.MANIFEST?pt=dt.manifestLoadPolicy.default:pt=_extends({},dt.playlistLoadPolicy.default,{timeoutRetry:null,errorRetry:null}),ct=this.createInternalLoader(at),isFiniteNumber((ut=at.deliveryDirectives)==null?void 0:ut.part)){let yt;if(at.type===PlaylistContextType.LEVEL&&at.level!==null?yt=this.hls.levels[at.level].details:at.type===PlaylistContextType.AUDIO_TRACK&&at.id!==null?yt=this.hls.audioTracks[at.id].details:at.type===PlaylistContextType.SUBTITLE_TRACK&&at.id!==null&&(yt=this.hls.subtitleTracks[at.id].details),yt){const bt=yt.partTarget,Tt=yt.targetduration;if(bt&&Tt){const St=Math.max(bt*3,Tt*.8)*1e3;pt=_extends({},pt,{maxTimeToFirstByteMs:Math.min(St,pt.maxTimeToFirstByteMs),maxLoadTimeMs:Math.min(St,pt.maxTimeToFirstByteMs)})}}}const ft=pt.errorRetry||pt.timeoutRetry||{},ht={loadPolicy:pt,timeout:pt.maxLoadTimeMs,maxRetry:ft.maxNumRetry||0,retryDelay:ft.retryDelayMs||0,maxRetryDelay:ft.maxRetryDelayMs||0},mt={onSuccess:(yt,bt,Tt,St)=>{const At=this.getInternalLoader(Tt);this.resetInternalLoader(Tt.type);const vt=yt.data;if(vt.indexOf("#EXTM3U")!==0){this.handleManifestParsingError(yt,Tt,new Error("no EXTM3U delimiter"),St||null,bt);return}bt.parsing.start=performance.now(),M3U8Parser.isMediaPlaylist(vt)||Tt.type!==PlaylistContextType.MANIFEST?this.handleTrackOrLevelPlaylist(yt,bt,Tt,St||null,At):this.handleMasterPlaylist(yt,bt,Tt,St)},onError:(yt,bt,Tt,St)=>{this.handleNetworkError(bt,Tt,!1,yt,St)},onTimeout:(yt,bt,Tt)=>{this.handleNetworkError(bt,Tt,!0,void 0,yt)}};ct.load(at,ht,mt)}checkAutostartLoad(){if(!this.hls)return;const{config:{autoStartLoad:at,startPosition:ut},forceStartLoad:dt}=this.hls;(at||dt)&&(this.hls.logger.log(`${at?"auto":"force"} startLoad with configured startPosition ${ut}`),this.hls.startLoad(ut))}handleMasterPlaylist(at,ut,dt,ct){const pt=this.hls,ft=at.data,ht=getResponseUrl(at,dt),mt=M3U8Parser.parseMasterPlaylist(ft,ht);if(mt.playlistParsingError){this.handleManifestParsingError(at,dt,mt.playlistParsingError,ct,ut);return}const{contentSteering:yt,levels:bt,sessionData:Tt,sessionKeys:St,startTimeOffset:At,variableList:vt}=mt;this.variableList=vt;const{AUDIO:Dt=[],SUBTITLES:Et,"CLOSED-CAPTIONS":_t}=M3U8Parser.parseMasterPlaylistMedia(ft,ht,mt);Dt.length&&!Dt.some(Ct=>!Ct.url)&&bt[0].audioCodec&&!bt[0].attrs.AUDIO&&(this.hls.logger.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"),Dt.unshift({type:"main",name:"main",groupId:"main",default:!1,autoselect:!1,forced:!1,id:-1,attrs:new AttrList({}),bitrate:0,url:""})),pt.trigger(Events.MANIFEST_LOADED,{levels:bt,audioTracks:Dt,subtitles:Et,captions:_t,contentSteering:yt,url:ht,stats:ut,networkDetails:ct,sessionData:Tt,sessionKeys:St,startTimeOffset:At,variableList:vt})}handleTrackOrLevelPlaylist(at,ut,dt,ct,pt){const ft=this.hls,{id:ht,level:mt,type:yt}=dt,bt=getResponseUrl(at,dt),Tt=isFiniteNumber(mt)?mt:isFiniteNumber(ht)?ht:0,St=mapContextToLevelType(dt),At=M3U8Parser.parseLevelPlaylist(at.data,bt,Tt,St,0,this.variableList);if(yt===PlaylistContextType.MANIFEST){const vt={attrs:new AttrList({}),bitrate:0,details:At,name:"",url:bt};At.requestScheduled=ut.loading.start+computeReloadInterval(At,0),ft.trigger(Events.MANIFEST_LOADED,{levels:[vt],audioTracks:[],url:bt,stats:ut,networkDetails:ct,sessionData:null,sessionKeys:null,contentSteering:null,startTimeOffset:null,variableList:null})}ut.parsing.end=performance.now(),dt.levelDetails=At,this.handlePlaylistLoaded(At,at,ut,dt,ct,pt)}handleManifestParsingError(at,ut,dt,ct,pt){this.hls.trigger(Events.ERROR,{type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.MANIFEST_PARSING_ERROR,fatal:ut.type===PlaylistContextType.MANIFEST,url:at.url,err:dt,error:dt,reason:dt.message,response:at,context:ut,networkDetails:ct,stats:pt})}handleNetworkError(at,ut,dt=!1,ct,pt){let ft=`A network ${dt?"timeout":"error"+(ct?" (status "+ct.code+")":"")} occurred while loading ${at.type}`;at.type===PlaylistContextType.LEVEL?ft+=`: ${at.level} id: ${at.id}`:(at.type===PlaylistContextType.AUDIO_TRACK||at.type===PlaylistContextType.SUBTITLE_TRACK)&&(ft+=` id: ${at.id} group-id: "${at.groupId}"`);const ht=new Error(ft);this.hls.logger.warn(`[playlist-loader]: ${ft}`);let mt=ErrorDetails.UNKNOWN,yt=!1;const bt=this.getInternalLoader(at);switch(at.type){case PlaylistContextType.MANIFEST:mt=dt?ErrorDetails.MANIFEST_LOAD_TIMEOUT:ErrorDetails.MANIFEST_LOAD_ERROR,yt=!0;break;case PlaylistContextType.LEVEL:mt=dt?ErrorDetails.LEVEL_LOAD_TIMEOUT:ErrorDetails.LEVEL_LOAD_ERROR,yt=!1;break;case PlaylistContextType.AUDIO_TRACK:mt=dt?ErrorDetails.AUDIO_TRACK_LOAD_TIMEOUT:ErrorDetails.AUDIO_TRACK_LOAD_ERROR,yt=!1;break;case PlaylistContextType.SUBTITLE_TRACK:mt=dt?ErrorDetails.SUBTITLE_TRACK_LOAD_TIMEOUT:ErrorDetails.SUBTITLE_LOAD_ERROR,yt=!1;break}bt&&this.resetInternalLoader(at.type);const Tt={type:ErrorTypes.NETWORK_ERROR,details:mt,fatal:yt,url:at.url,loader:bt,context:at,error:ht,networkDetails:ut,stats:pt};if(ct){const St=(ut==null?void 0:ut.url)||at.url;Tt.response=_objectSpread2({url:St,data:void 0},ct)}this.hls.trigger(Events.ERROR,Tt)}handlePlaylistLoaded(at,ut,dt,ct,pt,ft){const ht=this.hls,{type:mt,level:yt,id:bt,groupId:Tt,deliveryDirectives:St}=ct,At=getResponseUrl(ut,ct),vt=mapContextToLevelType(ct),Dt=typeof ct.level=="number"&&vt===PlaylistLevelType.MAIN?yt:void 0;if(!at.fragments.length){const _t=at.playlistParsingError=new Error("No Segments found in Playlist");ht.trigger(Events.ERROR,{type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.LEVEL_EMPTY_ERROR,fatal:!1,url:At,error:_t,reason:_t.message,response:ut,context:ct,level:Dt,parent:vt,networkDetails:pt,stats:dt});return}at.targetduration||(at.playlistParsingError=new Error("Missing Target Duration"));const Et=at.playlistParsingError;if(Et){if(this.hls.logger.warn(Et),!ht.config.ignorePlaylistParsingErrors){ht.trigger(Events.ERROR,{type:ErrorTypes.NETWORK_ERROR,details:ErrorDetails.LEVEL_PARSING_ERROR,fatal:!1,url:At,error:Et,reason:Et.message,response:ut,context:ct,level:Dt,parent:vt,networkDetails:pt,stats:dt});return}at.playlistParsingError=null}switch(at.live&&ft&&(ft.getCacheAge&&(at.ageHeader=ft.getCacheAge()||0),(!ft.getCacheAge||isNaN(at.ageHeader))&&(at.ageHeader=0)),mt){case PlaylistContextType.MANIFEST:case PlaylistContextType.LEVEL:ht.trigger(Events.LEVEL_LOADED,{details:at,levelInfo:ct.levelOrTrack||ht.levels[0],level:Dt||0,id:bt||0,stats:dt,networkDetails:pt,deliveryDirectives:St,withoutMultiVariant:mt===PlaylistContextType.MANIFEST});break;case PlaylistContextType.AUDIO_TRACK:ht.trigger(Events.AUDIO_TRACK_LOADED,{details:at,track:ct.levelOrTrack,id:bt||0,groupId:Tt||"",stats:dt,networkDetails:pt,deliveryDirectives:St});break;case PlaylistContextType.SUBTITLE_TRACK:ht.trigger(Events.SUBTITLE_TRACK_LOADED,{details:at,track:ct.levelOrTrack,id:bt||0,groupId:Tt||"",stats:dt,networkDetails:pt,deliveryDirectives:St});break}}}class Hls{static get version(){return version}static isMSESupported(){return isMSESupported()}static isSupported(){return isSupported()}static getMediaSource(){return getMediaSource()}static get Events(){return Events}static get MetadataSchema(){return MetadataSchema}static get ErrorTypes(){return ErrorTypes}static get ErrorDetails(){return ErrorDetails}static get DefaultConfig(){return Hls.defaultConfig?Hls.defaultConfig:hlsDefaultConfig}static set DefaultConfig(at){Hls.defaultConfig=at}constructor(at={}){this.config=void 0,this.userConfig=void 0,this.logger=void 0,this.coreComponents=void 0,this.networkControllers=void 0,this._emitter=new EventEmitter,this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.abrController=void 0,this.bufferController=void 0,this.capLevelController=void 0,this.latencyController=void 0,this.levelController=void 0,this.streamController=void 0,this.audioStreamController=void 0,this.subtititleStreamController=void 0,this.audioTrackController=void 0,this.subtitleTrackController=void 0,this.interstitialsController=void 0,this.gapController=void 0,this.emeController=void 0,this.cmcdController=void 0,this._media=null,this._url=null,this._sessionId=void 0,this.triggeringException=void 0,this.started=!1;const ut=this.logger=enableLogs(at.debug||!1,"Hls instance",at.assetPlayerId),dt=this.config=mergeConfig$1(Hls.DefaultConfig,at,ut);this.userConfig=at,dt.progressive&&enableStreamingMode(dt,ut);const{abrController:ct,bufferController:pt,capLevelController:ft,errorController:ht,fpsController:mt}=dt,yt=new ht(this),bt=this.abrController=new ct(this),Tt=new FragmentTracker(this),St=dt.interstitialsController,At=St?this.interstitialsController=new St(this,Hls):null,vt=this.bufferController=new pt(this,Tt),Dt=this.capLevelController=new ft(this),Et=new mt(this),_t=new PlaylistLoader(this),xt=dt.contentSteeringController,Ct=xt?new xt(this):null,kt=this.levelController=new LevelController(this,Ct),wt=new ID3TrackController(this),$t=new KeyLoader(this.config),Lt=this.streamController=new StreamController(this,Tt,$t),Ot=this.gapController=new GapController(this,Tt);Dt.setStreamController(Lt),Et.setStreamController(Lt);const zt=[_t,kt,Lt];At&&zt.splice(1,0,At),Ct&&zt.splice(1,0,Ct),this.networkControllers=zt;const Mt=[bt,vt,Ot,Dt,Et,wt,Tt];this.audioTrackController=this.createController(dt.audioTrackController,zt);const qt=dt.audioStreamController;qt&&zt.push(this.audioStreamController=new qt(this,Tt,$t)),this.subtitleTrackController=this.createController(dt.subtitleTrackController,zt);const Qt=dt.subtitleStreamController;Qt&&zt.push(this.subtititleStreamController=new Qt(this,Tt,$t)),this.createController(dt.timelineController,Mt),$t.emeController=this.emeController=this.createController(dt.emeController,Mt),this.cmcdController=this.createController(dt.cmcdController,Mt),this.latencyController=this.createController(LatencyController,Mt),this.coreComponents=Mt,zt.push(yt);const Yt=yt.onErrorOut;typeof Yt=="function"&&this.on(Events.ERROR,Yt,yt),this.on(Events.MANIFEST_LOADED,_t.onManifestLoaded,_t)}createController(at,ut){if(at){const dt=new at(this);return ut&&ut.push(dt),dt}return null}on(at,ut,dt=this){this._emitter.on(at,ut,dt)}once(at,ut,dt=this){this._emitter.once(at,ut,dt)}removeAllListeners(at){this._emitter.removeAllListeners(at)}off(at,ut,dt=this,ct){this._emitter.off(at,ut,dt,ct)}listeners(at){return this._emitter.listeners(at)}emit(at,ut,dt){return this._emitter.emit(at,ut,dt)}trigger(at,ut){if(this.config.debug)return this.emit(at,at,ut);try{return this.emit(at,at,ut)}catch(dt){if(this.logger.error("An internal error happened while handling event "+at+'. Error message: "'+dt.message+'". Here is a stacktrace:',dt),!this.triggeringException){this.triggeringException=!0;const ct=at===Events.ERROR;this.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.INTERNAL_EXCEPTION,fatal:ct,event:at,error:dt}),this.triggeringException=!1}}return!1}listenerCount(at){return this._emitter.listenerCount(at)}destroy(){this.logger.log("destroy"),this.trigger(Events.DESTROYING,void 0),this.detachMedia(),this.removeAllListeners(),this._autoLevelCapping=-1,this._url=null,this.networkControllers.forEach(ut=>ut.destroy()),this.networkControllers.length=0,this.coreComponents.forEach(ut=>ut.destroy()),this.coreComponents.length=0;const at=this.config;at.xhrSetup=at.fetchSetup=void 0,this.userConfig=null}attachMedia(at){if(!at||"media"in at&&!at.media){const pt=new Error(`attachMedia failed: invalid argument (${at})`);this.trigger(Events.ERROR,{type:ErrorTypes.OTHER_ERROR,details:ErrorDetails.ATTACH_MEDIA_ERROR,fatal:!0,error:pt});return}this.logger.log("attachMedia"),this._media&&(this.logger.warn("media must be detached before attaching"),this.detachMedia());const ut="media"in at,dt=ut?at.media:at,ct=ut?at:{media:dt};this._media=dt,this.trigger(Events.MEDIA_ATTACHING,ct)}detachMedia(){this.logger.log("detachMedia"),this.trigger(Events.MEDIA_DETACHING,{}),this._media=null}transferMedia(){this._media=null;const at=this.bufferController.transferMedia();return this.trigger(Events.MEDIA_DETACHING,{transferMedia:at}),at}loadSource(at){this.stopLoad();const ut=this.media,dt=this._url,ct=this._url=urlToolkitExports.buildAbsoluteURL(self.location.href,at,{alwaysNormalize:!0});this._autoLevelCapping=-1,this._maxHdcpLevel=null,this.logger.log(`loadSource:${ct}`),ut&&dt&&(dt!==ct||this.bufferController.hasSourceTypes())&&(this.detachMedia(),this.attachMedia(ut)),this.trigger(Events.MANIFEST_LOADING,{url:at})}get url(){return this._url}get hasEnoughToStart(){return this.streamController.hasEnoughToStart}get startPosition(){return this.streamController.startPositionValue}startLoad(at=-1,ut){this.logger.log(`startLoad(${at+(ut?", ":"")})`),this.started=!0,this.resumeBuffering();for(let dt=0;dt{at.resumeBuffering&&at.resumeBuffering()}))}pauseBuffering(){this.bufferingEnabled&&(this.logger.log("pause buffering"),this.networkControllers.forEach(at=>{at.pauseBuffering&&at.pauseBuffering()}))}get inFlightFragments(){const at={[PlaylistLevelType.MAIN]:this.streamController.inFlightFrag};return this.audioStreamController&&(at[PlaylistLevelType.AUDIO]=this.audioStreamController.inFlightFrag),this.subtititleStreamController&&(at[PlaylistLevelType.SUBTITLE]=this.subtititleStreamController.inFlightFrag),at}swapAudioCodec(){this.logger.log("swapAudioCodec"),this.streamController.swapAudioCodec()}recoverMediaError(){this.logger.log("recoverMediaError");const at=this._media,ut=at==null?void 0:at.currentTime;this.detachMedia(),at&&(this.attachMedia(at),ut&&this.startLoad(ut))}removeLevel(at){this.levelController.removeLevel(at)}get sessionId(){let at=this._sessionId;return at||(at=this._sessionId=uuid()),at}get levels(){const at=this.levelController.levels;return at||[]}get latestLevelDetails(){return this.streamController.getLevelDetails()||null}get loadLevelObj(){return this.levelController.loadLevelObj}get currentLevel(){return this.streamController.currentLevel}set currentLevel(at){this.logger.log(`set currentLevel:${at}`),this.levelController.manualLevel=at,this.streamController.immediateLevelSwitch()}get nextLevel(){return this.streamController.nextLevel}set nextLevel(at){this.logger.log(`set nextLevel:${at}`),this.levelController.manualLevel=at,this.streamController.nextLevelSwitch()}get loadLevel(){return this.levelController.level}set loadLevel(at){this.logger.log(`set loadLevel:${at}`),this.levelController.manualLevel=at}get nextLoadLevel(){return this.levelController.nextLoadLevel}set nextLoadLevel(at){this.levelController.nextLoadLevel=at}get firstLevel(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)}set firstLevel(at){this.logger.log(`set firstLevel:${at}`),this.levelController.firstLevel=at}get startLevel(){const at=this.levelController.startLevel;return at===-1&&this.abrController.forcedAutoLevel>-1?this.abrController.forcedAutoLevel:at}set startLevel(at){this.logger.log(`set startLevel:${at}`),at!==-1&&(at=Math.max(at,this.minAutoLevel)),this.levelController.startLevel=at}get capLevelToPlayerSize(){return this.config.capLevelToPlayerSize}set capLevelToPlayerSize(at){const ut=!!at;ut!==this.config.capLevelToPlayerSize&&(ut?this.capLevelController.startCapping():(this.capLevelController.stopCapping(),this.autoLevelCapping=-1,this.streamController.nextLevelSwitch()),this.config.capLevelToPlayerSize=ut)}get autoLevelCapping(){return this._autoLevelCapping}get bandwidthEstimate(){const{bwEstimator:at}=this.abrController;return at?at.getEstimate():NaN}set bandwidthEstimate(at){this.abrController.resetEstimator(at)}get abrEwmaDefaultEstimate(){const{bwEstimator:at}=this.abrController;return at?at.defaultEstimate:NaN}get ttfbEstimate(){const{bwEstimator:at}=this.abrController;return at?at.getEstimateTTFB():NaN}set autoLevelCapping(at){this._autoLevelCapping!==at&&(this.logger.log(`set autoLevelCapping:${at}`),this._autoLevelCapping=at,this.levelController.checkMaxAutoUpdated())}get maxHdcpLevel(){return this._maxHdcpLevel}set maxHdcpLevel(at){isHdcpLevel(at)&&this._maxHdcpLevel!==at&&(this._maxHdcpLevel=at,this.levelController.checkMaxAutoUpdated())}get autoLevelEnabled(){return this.levelController.manualLevel===-1}get manualLevel(){return this.levelController.manualLevel}get minAutoLevel(){const{levels:at,config:{minAutoBitrate:ut}}=this;if(!at)return 0;const dt=at.length;for(let ct=0;ct=ut)return ct;return 0}get maxAutoLevel(){const{levels:at,autoLevelCapping:ut,maxHdcpLevel:dt}=this;let ct;if(ut===-1&&at!=null&&at.length?ct=at.length-1:ct=ut,dt)for(let pt=ct;pt--;){const ft=at[pt].attrs["HDCP-LEVEL"];if(ft&&ft<=dt)return pt}return ct}get firstAutoLevel(){return this.abrController.firstAutoLevel}get nextAutoLevel(){return this.abrController.nextAutoLevel}set nextAutoLevel(at){this.abrController.nextAutoLevel=at}get playingDate(){return this.streamController.currentProgramDateTime}get mainForwardBufferInfo(){return this.streamController.getMainFwdBufferInfo()}get maxBufferLength(){return this.streamController.maxBufferLength}setAudioOption(at){var ut;return((ut=this.audioTrackController)==null?void 0:ut.setAudioOption(at))||null}setSubtitleOption(at){var ut;return((ut=this.subtitleTrackController)==null?void 0:ut.setSubtitleOption(at))||null}get allAudioTracks(){const at=this.audioTrackController;return at?at.allAudioTracks:[]}get audioTracks(){const at=this.audioTrackController;return at?at.audioTracks:[]}get audioTrack(){const at=this.audioTrackController;return at?at.audioTrack:-1}set audioTrack(at){const ut=this.audioTrackController;ut&&(ut.audioTrack=at)}get allSubtitleTracks(){const at=this.subtitleTrackController;return at?at.allSubtitleTracks:[]}get subtitleTracks(){const at=this.subtitleTrackController;return at?at.subtitleTracks:[]}get subtitleTrack(){const at=this.subtitleTrackController;return at?at.subtitleTrack:-1}get media(){return this._media}set subtitleTrack(at){const ut=this.subtitleTrackController;ut&&(ut.subtitleTrack=at)}get subtitleDisplay(){const at=this.subtitleTrackController;return at?at.subtitleDisplay:!1}set subtitleDisplay(at){const ut=this.subtitleTrackController;ut&&(ut.subtitleDisplay=at)}get lowLatencyMode(){return this.config.lowLatencyMode}set lowLatencyMode(at){this.config.lowLatencyMode=at}get liveSyncPosition(){return this.latencyController.liveSyncPosition}get latency(){return this.latencyController.latency}get maxLatency(){return this.latencyController.maxLatency}get targetLatency(){return this.latencyController.targetLatency}set targetLatency(at){this.latencyController.targetLatency=at}get drift(){return this.latencyController.drift}get forceStartLoad(){return this.streamController.forceStartLoad}get pathways(){return this.levelController.pathways}get pathwayPriority(){return this.levelController.pathwayPriority}set pathwayPriority(at){this.levelController.pathwayPriority=at}get bufferedToEnd(){var at;return!!((at=this.bufferController)!=null&&at.bufferedToEnd)}get interstitialsManager(){var at;return((at=this.interstitialsController)==null?void 0:at.interstitialsManager)||null}getMediaDecodingInfo(at,ut=this.allAudioTracks){const dt=getAudioTracksByGroup(ut);return getMediaDecodingInfoPromise(at,dt,navigator.mediaCapabilities)}}Hls.defaultConfig=void 0;var updateQueue=makeQueue(),raf=st=>schedule(st,updateQueue),writeQueue=makeQueue();raf.write=st=>schedule(st,writeQueue);var onStartQueue=makeQueue();raf.onStart=st=>schedule(st,onStartQueue);var onFrameQueue=makeQueue();raf.onFrame=st=>schedule(st,onFrameQueue);var onFinishQueue=makeQueue();raf.onFinish=st=>schedule(st,onFinishQueue);var timeouts=[];raf.setTimeout=(st,at)=>{const ut=raf.now()+at,dt=()=>{const pt=timeouts.findIndex(ft=>ft.cancel==dt);~pt&&timeouts.splice(pt,1),pendingCount-=~pt?1:0},ct={time:ut,handler:st,cancel:dt};return timeouts.splice(findTimeout(ut),0,ct),pendingCount+=1,start(),ct};var findTimeout=st=>~(~timeouts.findIndex(at=>at.time>st)||~timeouts.length);raf.cancel=st=>{onStartQueue.delete(st),onFrameQueue.delete(st),onFinishQueue.delete(st),updateQueue.delete(st),writeQueue.delete(st)};raf.sync=st=>{sync=!0,raf.batchedUpdates(st),sync=!1};raf.throttle=st=>{let at;function ut(){try{st(...at)}finally{at=null}}function dt(...ct){at=ct,raf.onStart(ut)}return dt.handler=st,dt.cancel=()=>{onStartQueue.delete(ut),at=null},dt};var nativeRaf=typeof window<"u"?window.requestAnimationFrame:()=>{};raf.use=st=>nativeRaf=st;raf.now=typeof performance<"u"?()=>performance.now():Date.now;raf.batchedUpdates=st=>st();raf.catch=console.error;raf.frameLoop="always";raf.advance=()=>{raf.frameLoop!=="demand"?console.warn("Cannot call the manual advancement of rafz whilst frameLoop is not set as demand"):update()};var ts=-1,pendingCount=0,sync=!1;function schedule(st,at){sync?(at.delete(st),st(0)):(at.add(st),start())}function start(){ts<0&&(ts=0,raf.frameLoop!=="demand"&&nativeRaf(loop))}function stop(){ts=-1}function loop(){~ts&&(nativeRaf(loop),raf.batchedUpdates(update))}function update(){const st=ts;ts=raf.now();const at=findTimeout(ts);if(at&&(eachSafely(timeouts.splice(0,at),ut=>ut.handler()),pendingCount-=at),!pendingCount){stop();return}onStartQueue.flush(),updateQueue.flush(st?Math.min(64,ts-st):16.667),onFrameQueue.flush(),writeQueue.flush(),onFinishQueue.flush()}function makeQueue(){let st=new Set,at=st;return{add(ut){pendingCount+=at==st&&!st.has(ut)?1:0,st.add(ut)},delete(ut){return pendingCount-=at==st&&st.has(ut)?1:0,st.delete(ut)},flush(ut){at.size&&(st=new Set,pendingCount-=at.size,eachSafely(at,dt=>dt(ut)&&st.add(dt)),pendingCount+=st.size,at=st)}}}function eachSafely(st,at){st.forEach(ut=>{try{at(ut)}catch(dt){raf.catch(dt)}})}var __defProp=Object.defineProperty,__export=(st,at)=>{for(var ut in at)__defProp(st,ut,{get:at[ut],enumerable:!0})},globals_exports={};__export(globals_exports,{assign:()=>assign,colors:()=>colors,createStringInterpolator:()=>createStringInterpolator,skipAnimation:()=>skipAnimation,to:()=>to$1,willAdvance:()=>willAdvance});function noop(){}var defineHidden=(st,at,ut)=>Object.defineProperty(st,at,{value:ut,writable:!0,configurable:!0}),is={arr:Array.isArray,obj:st=>!!st&&st.constructor.name==="Object",fun:st=>typeof st=="function",str:st=>typeof st=="string",num:st=>typeof st=="number",und:st=>st===void 0};function isEqual$1(st,at){if(is.arr(st)){if(!is.arr(at)||st.length!==at.length)return!1;for(let ut=0;utst.forEach(at);function eachProp(st,at,ut){if(is.arr(st)){for(let dt=0;dtis.und(st)?[]:is.arr(st)?st:[st];function flush(st,at){if(st.size){const ut=Array.from(st);st.clear(),each(ut,at)}}var flushCalls=(st,...at)=>flush(st,ut=>ut(...at)),isSSR=()=>typeof window>"u"||!window.navigator||/ServerSideRendering|^Deno\//.test(window.navigator.userAgent),createStringInterpolator,to$1,colors=null,skipAnimation=!1,willAdvance=noop,assign=st=>{st.to&&(to$1=st.to),st.now&&(raf.now=st.now),st.colors!==void 0&&(colors=st.colors),st.skipAnimation!=null&&(skipAnimation=st.skipAnimation),st.createStringInterpolator&&(createStringInterpolator=st.createStringInterpolator),st.requestAnimationFrame&&raf.use(st.requestAnimationFrame),st.batchedUpdates&&(raf.batchedUpdates=st.batchedUpdates),st.willAdvance&&(willAdvance=st.willAdvance),st.frameLoop&&(raf.frameLoop=st.frameLoop)},startQueue=new Set,currentFrame=[],prevFrame=[],priority=0,frameLoop={get idle(){return!startQueue.size&&!currentFrame.length},start(st){priority>st.priority?(startQueue.add(st),raf.onStart(flushStartQueue)):(startSafely(st),raf(advance))},advance,sort(st){if(priority)raf.onFrame(()=>frameLoop.sort(st));else{const at=currentFrame.indexOf(st);~at&&(currentFrame.splice(at,1),startUnsafely(st))}},clear(){currentFrame=[],startQueue.clear()}};function flushStartQueue(){startQueue.forEach(startSafely),startQueue.clear(),raf(advance)}function startSafely(st){currentFrame.includes(st)||startUnsafely(st)}function startUnsafely(st){currentFrame.splice(findIndex(currentFrame,at=>at.priority>st.priority),0,st)}function advance(st){const at=prevFrame;for(let ut=0;ut0}function findIndex(st,at){const ut=st.findIndex(at);return ut<0?st.length:ut}var colors2={transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199},NUMBER="[-+]?\\d*\\.?\\d+",PERCENTAGE=NUMBER+"%";function call(...st){return"\\(\\s*("+st.join(")\\s*,\\s*(")+")\\s*\\)"}var rgb=new RegExp("rgb"+call(NUMBER,NUMBER,NUMBER)),rgba=new RegExp("rgba"+call(NUMBER,NUMBER,NUMBER,NUMBER)),hsl=new RegExp("hsl"+call(NUMBER,PERCENTAGE,PERCENTAGE)),hsla=new RegExp("hsla"+call(NUMBER,PERCENTAGE,PERCENTAGE,NUMBER)),hex3=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex4=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6=/^#([0-9a-fA-F]{6})$/,hex8=/^#([0-9a-fA-F]{8})$/;function normalizeColor(st){let at;return typeof st=="number"?st>>>0===st&&st>=0&&st<=4294967295?st:null:(at=hex6.exec(st))?parseInt(at[1]+"ff",16)>>>0:colors&&colors[st]!==void 0?colors[st]:(at=rgb.exec(st))?(parse255(at[1])<<24|parse255(at[2])<<16|parse255(at[3])<<8|255)>>>0:(at=rgba.exec(st))?(parse255(at[1])<<24|parse255(at[2])<<16|parse255(at[3])<<8|parse1(at[4]))>>>0:(at=hex3.exec(st))?parseInt(at[1]+at[1]+at[2]+at[2]+at[3]+at[3]+"ff",16)>>>0:(at=hex8.exec(st))?parseInt(at[1],16)>>>0:(at=hex4.exec(st))?parseInt(at[1]+at[1]+at[2]+at[2]+at[3]+at[3]+at[4]+at[4],16)>>>0:(at=hsl.exec(st))?(hslToRgb(parse360(at[1]),parsePercentage(at[2]),parsePercentage(at[3]))|255)>>>0:(at=hsla.exec(st))?(hslToRgb(parse360(at[1]),parsePercentage(at[2]),parsePercentage(at[3]))|parse1(at[4]))>>>0:null}function hue2rgb(st,at,ut){return ut<0&&(ut+=1),ut>1&&(ut-=1),ut<1/6?st+(at-st)*6*ut:ut<1/2?at:ut<2/3?st+(at-st)*(2/3-ut)*6:st}function hslToRgb(st,at,ut){const dt=ut<.5?ut*(1+at):ut+at-ut*at,ct=2*ut-dt,pt=hue2rgb(ct,dt,st+1/3),ft=hue2rgb(ct,dt,st),ht=hue2rgb(ct,dt,st-1/3);return Math.round(pt*255)<<24|Math.round(ft*255)<<16|Math.round(ht*255)<<8}function parse255(st){const at=parseInt(st,10);return at<0?0:at>255?255:at}function parse360(st){return(parseFloat(st)%360+360)%360/360}function parse1(st){const at=parseFloat(st);return at<0?0:at>1?255:Math.round(at*255)}function parsePercentage(st){const at=parseFloat(st);return at<0?0:at>100?1:at/100}function colorToRgba(st){let at=normalizeColor(st);if(at===null)return st;at=at||0;const ut=(at&4278190080)>>>24,dt=(at&16711680)>>>16,ct=(at&65280)>>>8,pt=(at&255)/255;return`rgba(${ut}, ${dt}, ${ct}, ${pt})`}var createInterpolator=(st,at,ut)=>{if(is.fun(st))return st;if(is.arr(st))return createInterpolator({range:st,output:at,extrapolate:ut});if(is.str(st.output[0]))return createStringInterpolator(st);const dt=st,ct=dt.output,pt=dt.range||[0,1],ft=dt.extrapolateLeft||dt.extrapolate||"extend",ht=dt.extrapolateRight||dt.extrapolate||"extend",mt=dt.easing||(yt=>yt);return yt=>{const bt=findRange(yt,pt);return interpolate(yt,pt[bt],pt[bt+1],ct[bt],ct[bt+1],mt,ft,ht,dt.map)}};function interpolate(st,at,ut,dt,ct,pt,ft,ht,mt){let yt=mt?mt(st):st;if(ytut){if(ht==="identity")return yt;ht==="clamp"&&(yt=ut)}return dt===ct?dt:at===ut?st<=at?dt:ct:(at===-1/0?yt=-yt:ut===1/0?yt=yt-at:yt=(yt-at)/(ut-at),yt=pt(yt),dt===-1/0?yt=-yt:ct===1/0?yt=yt+dt:yt=yt*(ct-dt)+dt,yt)}function findRange(st,at){for(var ut=1;ut=st);++ut);return ut-1}var easings={linear:st=>st},$get=Symbol.for("FluidValue.get"),$observers=Symbol.for("FluidValue.observers"),hasFluidValue=st=>!!(st&&st[$get]),getFluidValue=st=>st&&st[$get]?st[$get]():st,getFluidObservers=st=>st[$observers]||null;function callFluidObserver(st,at){st.eventObserved?st.eventObserved(at):st(at)}function callFluidObservers(st,at){const ut=st[$observers];ut&&ut.forEach(dt=>{callFluidObserver(dt,at)})}var FluidValue=class{constructor(st){if(!st&&!(st=this.get))throw Error("Unknown getter");setFluidGetter(this,st)}},setFluidGetter=(st,at)=>setHidden(st,$get,at);function addFluidObserver(st,at){if(st[$get]){let ut=st[$observers];ut||setHidden(st,$observers,ut=new Set),ut.has(at)||(ut.add(at),st.observerAdded&&st.observerAdded(ut.size,at))}return at}function removeFluidObserver(st,at){const ut=st[$observers];if(ut&&ut.has(at)){const dt=ut.size-1;dt?ut.delete(at):st[$observers]=null,st.observerRemoved&&st.observerRemoved(dt,at)}}var setHidden=(st,at,ut)=>Object.defineProperty(st,at,{value:ut,writable:!0,configurable:!0}),numberRegex=/[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,colorRegex=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi,unitRegex=new RegExp(`(${numberRegex.source})(%|[a-z]+)`,"i"),rgbaRegex=/rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi,cssVariableRegex=/var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/,variableToRgba=st=>{const[at,ut]=parseCSSVariable(st);if(!at||isSSR())return st;const dt=window.getComputedStyle(document.documentElement).getPropertyValue(at);if(dt)return dt.trim();if(ut&&ut.startsWith("--")){const ct=window.getComputedStyle(document.documentElement).getPropertyValue(ut);return ct||st}else{if(ut&&cssVariableRegex.test(ut))return variableToRgba(ut);if(ut)return ut}return st},parseCSSVariable=st=>{const at=cssVariableRegex.exec(st);if(!at)return[,];const[,ut,dt]=at;return[ut,dt]},namedColorRegex,rgbaRound=(st,at,ut,dt,ct)=>`rgba(${Math.round(at)}, ${Math.round(ut)}, ${Math.round(dt)}, ${ct})`,createStringInterpolator2=st=>{namedColorRegex||(namedColorRegex=colors?new RegExp(`(${Object.keys(colors).join("|")})(?!\\w)`,"g"):/^\b$/);const at=st.output.map(pt=>getFluidValue(pt).replace(cssVariableRegex,variableToRgba).replace(colorRegex,colorToRgba).replace(namedColorRegex,colorToRgba)),ut=at.map(pt=>pt.match(numberRegex).map(Number)),ct=ut[0].map((pt,ft)=>ut.map(ht=>{if(!(ft in ht))throw Error('The arity of each "output" value must be equal');return ht[ft]})).map(pt=>createInterpolator({...st,output:pt}));return pt=>{var mt;const ft=!unitRegex.test(at[0])&&((mt=at.find(yt=>unitRegex.test(yt)))==null?void 0:mt.replace(numberRegex,""));let ht=0;return at[0].replace(numberRegex,()=>`${ct[ht++](pt)}${ft||""}`).replace(rgbaRegex,rgbaRound)}},prefix="react-spring: ",once=st=>{const at=st;let ut=!1;if(typeof at!="function")throw new TypeError(`${prefix}once requires a function parameter`);return(...dt)=>{ut||(at(...dt),ut=!0)}},warnInterpolate=once(console.warn);function deprecateInterpolate(){warnInterpolate(`${prefix}The "interpolate" function is deprecated in v9 (use "to" instead)`)}var warnDirectCall=once(console.warn);function deprecateDirectCall(){warnDirectCall(`${prefix}Directly calling start instead of using the api object is deprecated in v9 (use ".start" instead), this will be removed in later 0.X.0 versions`)}function isAnimatedString(st){return is.str(st)&&(st[0]=="#"||/\d/.test(st)||!isSSR()&&cssVariableRegex.test(st)||st in(colors||{}))}var useIsomorphicLayoutEffect=isSSR()?reactExports.useEffect:reactExports.useLayoutEffect,useIsMounted=()=>{const st=reactExports.useRef(!1);return useIsomorphicLayoutEffect(()=>(st.current=!0,()=>{st.current=!1}),[]),st};function useForceUpdate(){const st=reactExports.useState()[1],at=useIsMounted();return()=>{at.current&&st(Math.random())}}function useMemoOne(st,at){const[ut]=reactExports.useState(()=>({inputs:at,result:st()})),dt=reactExports.useRef(),ct=dt.current;let pt=ct;return pt?at&&pt.inputs&&areInputsEqual(at,pt.inputs)||(pt={inputs:at,result:st()}):pt=ut,reactExports.useEffect(()=>{dt.current=pt,ct==ut&&(ut.inputs=ut.result=void 0)},[pt]),pt.result}function areInputsEqual(st,at){if(st.length!==at.length)return!1;for(let ut=0;utreactExports.useEffect(st,emptyDeps),emptyDeps=[];function usePrev(st){const at=reactExports.useRef();return reactExports.useEffect(()=>{at.current=st}),at.current}var $node=Symbol.for("Animated:node"),isAnimated=st=>!!st&&st[$node]===st,getAnimated=st=>st&&st[$node],setAnimated=(st,at)=>defineHidden(st,$node,at),getPayload=st=>st&&st[$node]&&st[$node].getPayload(),Animated=class{constructor(){setAnimated(this,this)}getPayload(){return this.payload||[]}},AnimatedValue=class extends Animated{constructor(st){super(),this._value=st,this.done=!0,this.durationProgress=0,is.num(this._value)&&(this.lastPosition=this._value)}static create(st){return new AnimatedValue(st)}getPayload(){return[this]}getValue(){return this._value}setValue(st,at){return is.num(st)&&(this.lastPosition=st,at&&(st=Math.round(st/at)*at,this.done&&(this.lastPosition=st))),this._value===st?!1:(this._value=st,!0)}reset(){const{done:st}=this;this.done=!1,is.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,st&&(this.lastVelocity=null),this.v0=null)}},AnimatedString=class extends AnimatedValue{constructor(st){super(0),this._string=null,this._toString=createInterpolator({output:[st,st]})}static create(st){return new AnimatedString(st)}getValue(){const st=this._string;return st??(this._string=this._toString(this._value))}setValue(st){if(is.str(st)){if(st==this._string)return!1;this._string=st,this._value=1}else if(super.setValue(st))this._string=null;else return!1;return!0}reset(st){st&&(this._toString=createInterpolator({output:[this.getValue(),st]})),this._value=0,super.reset()}},TreeContext={dependencies:null},AnimatedObject=class extends Animated{constructor(st){super(),this.source=st,this.setValue(st)}getValue(st){const at={};return eachProp(this.source,(ut,dt)=>{isAnimated(ut)?at[dt]=ut.getValue(st):hasFluidValue(ut)?at[dt]=getFluidValue(ut):st||(at[dt]=ut)}),at}setValue(st){this.source=st,this.payload=this._makePayload(st)}reset(){this.payload&&each(this.payload,st=>st.reset())}_makePayload(st){if(st){const at=new Set;return eachProp(st,this._addToPayload,at),Array.from(at)}}_addToPayload(st){TreeContext.dependencies&&hasFluidValue(st)&&TreeContext.dependencies.add(st);const at=getPayload(st);at&&each(at,ut=>this.add(ut))}},AnimatedArray=class extends AnimatedObject{constructor(st){super(st)}static create(st){return new AnimatedArray(st)}getValue(){return this.source.map(st=>st.getValue())}setValue(st){const at=this.getPayload();return st.length==at.length?at.map((ut,dt)=>ut.setValue(st[dt])).some(Boolean):(super.setValue(st.map(makeAnimated)),!0)}};function makeAnimated(st){return(isAnimatedString(st)?AnimatedString:AnimatedValue).create(st)}function getAnimatedType(st){const at=getAnimated(st);return at?at.constructor:is.arr(st)?AnimatedArray:isAnimatedString(st)?AnimatedString:AnimatedValue}var withAnimated=(st,at)=>{const ut=!is.fun(st)||st.prototype&&st.prototype.isReactComponent;return reactExports.forwardRef((dt,ct)=>{const pt=reactExports.useRef(null),ft=ut&&reactExports.useCallback(vt=>{pt.current=updateRef(ct,vt)},[ct]),[ht,mt]=getAnimatedState(dt,at),yt=useForceUpdate(),bt=()=>{const vt=pt.current;if(ut&&!vt)return;(vt?at.applyAnimatedValues(vt,ht.getValue(!0)):!1)===!1&&yt()},Tt=new PropsObserver(bt,mt),St=reactExports.useRef();useIsomorphicLayoutEffect(()=>(St.current=Tt,each(mt,vt=>addFluidObserver(vt,Tt)),()=>{St.current&&(each(St.current.deps,vt=>removeFluidObserver(vt,St.current)),raf.cancel(St.current.update))})),reactExports.useEffect(bt,[]),useOnce(()=>()=>{const vt=St.current;each(vt.deps,Dt=>removeFluidObserver(Dt,vt))});const At=at.getComponentProps(ht.getValue());return reactExports.createElement(st,{...At,ref:ft})})},PropsObserver=class{constructor(st,at){this.update=st,this.deps=at}eventObserved(st){st.type=="change"&&raf.write(this.update)}};function getAnimatedState(st,at){const ut=new Set;return TreeContext.dependencies=ut,st.style&&(st={...st,style:at.createAnimatedStyle(st.style)}),st=new AnimatedObject(st),TreeContext.dependencies=null,[st,ut]}function updateRef(st,at){return st&&(is.fun(st)?st(at):st.current=at),at}var cacheKey=Symbol.for("AnimatedComponent"),createHost=(st,{applyAnimatedValues:at=()=>!1,createAnimatedStyle:ut=ct=>new AnimatedObject(ct),getComponentProps:dt=ct=>ct}={})=>{const ct={applyAnimatedValues:at,createAnimatedStyle:ut,getComponentProps:dt},pt=ft=>{const ht=getDisplayName(ft)||"Anonymous";return is.str(ft)?ft=pt[ft]||(pt[ft]=withAnimated(ft,ct)):ft=ft[cacheKey]||(ft[cacheKey]=withAnimated(ft,ct)),ft.displayName=`Animated(${ht})`,ft};return eachProp(st,(ft,ht)=>{is.arr(st)&&(ht=getDisplayName(ft)),pt[ht]=pt(ft)}),{animated:pt}},getDisplayName=st=>is.str(st)?st:st&&is.str(st.displayName)?st.displayName:is.fun(st)&&st.name||null;function callProp(st,...at){return is.fun(st)?st(...at):st}var matchProp=(st,at)=>st===!0||!!(at&&st&&(is.fun(st)?st(at):toArray(st).includes(at))),resolveProp=(st,at)=>is.obj(st)?at&&st[at]:st,getDefaultProp=(st,at)=>st.default===!0?st[at]:st.default?st.default[at]:void 0,noopTransform=st=>st,getDefaultProps=(st,at=noopTransform)=>{let ut=DEFAULT_PROPS;st.default&&st.default!==!0&&(st=st.default,ut=Object.keys(st));const dt={};for(const ct of ut){const pt=at(st[ct],ct);is.und(pt)||(dt[ct]=pt)}return dt},DEFAULT_PROPS=["config","onProps","onStart","onChange","onPause","onResume","onRest"],RESERVED_PROPS={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function getForwardProps(st){const at={};let ut=0;if(eachProp(st,(dt,ct)=>{RESERVED_PROPS[ct]||(at[ct]=dt,ut++)}),ut)return at}function inferTo(st){const at=getForwardProps(st);if(at){const ut={to:at};return eachProp(st,(dt,ct)=>ct in at||(ut[ct]=dt)),ut}return{...st}}function computeGoal(st){return st=getFluidValue(st),is.arr(st)?st.map(computeGoal):isAnimatedString(st)?globals_exports.createStringInterpolator({range:[0,1],output:[st,st]})(1):st}function hasProps(st){for(const at in st)return!0;return!1}function isAsyncTo(st){return is.fun(st)||is.arr(st)&&is.obj(st[0])}function detachRefs(st,at){var ut;(ut=st.ref)==null||ut.delete(st),at==null||at.delete(st)}function replaceRef(st,at){var ut;at&&st.ref!==at&&((ut=st.ref)==null||ut.delete(st),at.add(st),st.ref=at)}var config={default:{tension:170,friction:26}},defaults={...config.default,mass:1,damping:1,easing:easings.linear,clamp:!1},AnimationConfig=class{constructor(){this.velocity=0,Object.assign(this,defaults)}};function mergeConfig(st,at,ut){ut&&(ut={...ut},sanitizeConfig(ut,at),at={...ut,...at}),sanitizeConfig(st,at),Object.assign(st,at);for(const ft in defaults)st[ft]==null&&(st[ft]=defaults[ft]);let{frequency:dt,damping:ct}=st;const{mass:pt}=st;return is.und(dt)||(dt<.01&&(dt=.01),ct<0&&(ct=0),st.tension=Math.pow(2*Math.PI/dt,2)*pt,st.friction=4*Math.PI*ct*pt/dt),st}function sanitizeConfig(st,at){if(!is.und(at.decay))st.duration=void 0;else{const ut=!is.und(at.tension)||!is.und(at.friction);(ut||!is.und(at.frequency)||!is.und(at.damping)||!is.und(at.mass))&&(st.duration=void 0,st.decay=void 0),ut&&(st.frequency=void 0)}}var emptyArray=[],Animation$1=class{constructor(){this.changed=!1,this.values=emptyArray,this.toValues=null,this.fromValues=emptyArray,this.config=new AnimationConfig,this.immediate=!1}};function scheduleProps(st,{key:at,props:ut,defaultProps:dt,state:ct,actions:pt}){return new Promise((ft,ht)=>{let mt,yt,bt=matchProp(ut.cancel??(dt==null?void 0:dt.cancel),at);if(bt)At();else{is.und(ut.pause)||(ct.paused=matchProp(ut.pause,at));let vt=dt==null?void 0:dt.pause;vt!==!0&&(vt=ct.paused||matchProp(vt,at)),mt=callProp(ut.delay||0,at),vt?(ct.resumeQueue.add(St),pt.pause()):(pt.resume(),St())}function Tt(){ct.resumeQueue.add(St),ct.timeouts.delete(yt),yt.cancel(),mt=yt.time-raf.now()}function St(){mt>0&&!globals_exports.skipAnimation?(ct.delayed=!0,yt=raf.setTimeout(At,mt),ct.pauseQueue.add(Tt),ct.timeouts.add(yt)):At()}function At(){ct.delayed&&(ct.delayed=!1),ct.pauseQueue.delete(Tt),ct.timeouts.delete(yt),st<=(ct.cancelId||0)&&(bt=!0);try{pt.start({...ut,callId:st,cancel:bt},ft)}catch(vt){ht(vt)}}})}var getCombinedResult=(st,at)=>at.length==1?at[0]:at.some(ut=>ut.cancelled)?getCancelledResult(st.get()):at.every(ut=>ut.noop)?getNoopResult(st.get()):getFinishedResult(st.get(),at.every(ut=>ut.finished)),getNoopResult=st=>({value:st,noop:!0,finished:!0,cancelled:!1}),getFinishedResult=(st,at,ut=!1)=>({value:st,finished:at,cancelled:ut}),getCancelledResult=st=>({value:st,cancelled:!0,finished:!1});function runAsync(st,at,ut,dt){const{callId:ct,parentId:pt,onRest:ft}=at,{asyncTo:ht,promise:mt}=ut;return!pt&&st===ht&&!at.reset?mt:ut.promise=(async()=>{ut.asyncId=ct,ut.asyncTo=st;const yt=getDefaultProps(at,(Et,_t)=>_t==="onRest"?void 0:Et);let bt,Tt;const St=new Promise((Et,_t)=>(bt=Et,Tt=_t)),At=Et=>{const _t=ct<=(ut.cancelId||0)&&getCancelledResult(dt)||ct!==ut.asyncId&&getFinishedResult(dt,!1);if(_t)throw Et.result=_t,Tt(Et),Et},vt=(Et,_t)=>{const xt=new BailSignal,Ct=new SkipAnimationSignal;return(async()=>{if(globals_exports.skipAnimation)throw stopAsync(ut),Ct.result=getFinishedResult(dt,!1),Tt(Ct),Ct;At(xt);const kt=is.obj(Et)?{...Et}:{..._t,to:Et};kt.parentId=ct,eachProp(yt,($t,Lt)=>{is.und(kt[Lt])&&(kt[Lt]=$t)});const wt=await dt.start(kt);return At(xt),ut.paused&&await new Promise($t=>{ut.resumeQueue.add($t)}),wt})()};let Dt;if(globals_exports.skipAnimation)return stopAsync(ut),getFinishedResult(dt,!1);try{let Et;is.arr(st)?Et=(async _t=>{for(const xt of _t)await vt(xt)})(st):Et=Promise.resolve(st(vt,dt.stop.bind(dt))),await Promise.all([Et.then(bt),St]),Dt=getFinishedResult(dt.get(),!0,!1)}catch(Et){if(Et instanceof BailSignal)Dt=Et.result;else if(Et instanceof SkipAnimationSignal)Dt=Et.result;else throw Et}finally{ct==ut.asyncId&&(ut.asyncId=pt,ut.asyncTo=pt?ht:void 0,ut.promise=pt?mt:void 0)}return is.fun(ft)&&raf.batchedUpdates(()=>{ft(Dt,dt,dt.item)}),Dt})()}function stopAsync(st,at){flush(st.timeouts,ut=>ut.cancel()),st.pauseQueue.clear(),st.resumeQueue.clear(),st.asyncId=st.asyncTo=st.promise=void 0,at&&(st.cancelId=at)}var BailSignal=class extends Error{constructor(){super("An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.")}},SkipAnimationSignal=class extends Error{constructor(){super("SkipAnimationSignal")}},isFrameValue=st=>st instanceof FrameValue,nextId=1,FrameValue=class extends FluidValue{constructor(){super(...arguments),this.id=nextId++,this._priority=0}get priority(){return this._priority}set priority(st){this._priority!=st&&(this._priority=st,this._onPriorityChange(st))}get(){const st=getAnimated(this);return st&&st.getValue()}to(...st){return globals_exports.to(this,st)}interpolate(...st){return deprecateInterpolate(),globals_exports.to(this,st)}toJSON(){return this.get()}observerAdded(st){st==1&&this._attach()}observerRemoved(st){st==0&&this._detach()}_attach(){}_detach(){}_onChange(st,at=!1){callFluidObservers(this,{type:"change",parent:this,value:st,idle:at})}_onPriorityChange(st){this.idle||frameLoop.sort(this),callFluidObservers(this,{type:"priority",parent:this,priority:st})}},$P=Symbol.for("SpringPhase"),HAS_ANIMATED=1,IS_ANIMATING=2,IS_PAUSED=4,hasAnimated=st=>(st[$P]&HAS_ANIMATED)>0,isAnimating=st=>(st[$P]&IS_ANIMATING)>0,isPaused=st=>(st[$P]&IS_PAUSED)>0,setActiveBit=(st,at)=>at?st[$P]|=IS_ANIMATING|HAS_ANIMATED:st[$P]&=~IS_ANIMATING,setPausedBit=(st,at)=>at?st[$P]|=IS_PAUSED:st[$P]&=~IS_PAUSED,SpringValue=class extends FrameValue{constructor(st,at){if(super(),this.animation=new Animation$1,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!is.und(st)||!is.und(at)){const ut=is.obj(st)?{...st}:{...at,from:st};is.und(ut.default)&&(ut.default=!0),this.start(ut)}}get idle(){return!(isAnimating(this)||this._state.asyncTo)||isPaused(this)}get goal(){return getFluidValue(this.animation.to)}get velocity(){const st=getAnimated(this);return st instanceof AnimatedValue?st.lastVelocity||0:st.getPayload().map(at=>at.lastVelocity||0)}get hasAnimated(){return hasAnimated(this)}get isAnimating(){return isAnimating(this)}get isPaused(){return isPaused(this)}get isDelayed(){return this._state.delayed}advance(st){let at=!0,ut=!1;const dt=this.animation;let{toValues:ct}=dt;const{config:pt}=dt,ft=getPayload(dt.to);!ft&&hasFluidValue(dt.to)&&(ct=toArray(getFluidValue(dt.to))),dt.values.forEach((yt,bt)=>{if(yt.done)return;const Tt=yt.constructor==AnimatedString?1:ft?ft[bt].lastPosition:ct[bt];let St=dt.immediate,At=Tt;if(!St){if(At=yt.lastPosition,pt.tension<=0){yt.done=!0;return}let vt=yt.elapsedTime+=st;const Dt=dt.fromValues[bt],Et=yt.v0!=null?yt.v0:yt.v0=is.arr(pt.velocity)?pt.velocity[bt]:pt.velocity;let _t;const xt=pt.precision||(Dt==Tt?.005:Math.min(1,Math.abs(Tt-Dt)*.001));if(is.und(pt.duration))if(pt.decay){const Ct=pt.decay===!0?.998:pt.decay,kt=Math.exp(-(1-Ct)*vt);At=Dt+Et/(1-Ct)*(1-kt),St=Math.abs(yt.lastPosition-At)<=xt,_t=Et*kt}else{_t=yt.lastVelocity==null?Et:yt.lastVelocity;const Ct=pt.restVelocity||xt/10,kt=pt.clamp?0:pt.bounce,wt=!is.und(kt),$t=Dt==Tt?yt.v0>0:DtCt,!(!Lt&&(St=Math.abs(Tt-At)<=xt,St)));++qt){wt&&(Ot=At==Tt||At>Tt==$t,Ot&&(_t=-_t*kt,At=Tt));const Qt=-pt.tension*1e-6*(At-Tt),Yt=-pt.friction*.001*_t,jt=(Qt+Yt)/pt.mass;_t=_t+jt*zt,At=At+_t*zt}}else{let Ct=1;pt.duration>0&&(this._memoizedDuration!==pt.duration&&(this._memoizedDuration=pt.duration,yt.durationProgress>0&&(yt.elapsedTime=pt.duration*yt.durationProgress,vt=yt.elapsedTime+=st)),Ct=(pt.progress||0)+vt/this._memoizedDuration,Ct=Ct>1?1:Ct<0?0:Ct,yt.durationProgress=Ct),At=Dt+pt.easing(Ct)*(Tt-Dt),_t=(At-yt.lastPosition)/st,St=Ct==1}yt.lastVelocity=_t,Number.isNaN(At)&&(console.warn("Got NaN while animating:",this),St=!0)}ft&&!ft[bt].done&&(St=!1),St?yt.done=!0:at=!1,yt.setValue(At,pt.round)&&(ut=!0)});const ht=getAnimated(this),mt=ht.getValue();if(at){const yt=getFluidValue(dt.to);(mt!==yt||ut)&&!pt.decay?(ht.setValue(yt),this._onChange(yt)):ut&&pt.decay&&this._onChange(mt),this._stop()}else ut&&this._onChange(mt)}set(st){return raf.batchedUpdates(()=>{this._stop(),this._focus(st),this._set(st)}),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(isAnimating(this)){const{to:st,config:at}=this.animation;raf.batchedUpdates(()=>{this._onStart(),at.decay||this._set(st,!1),this._stop()})}return this}update(st){return(this.queue||(this.queue=[])).push(st),this}start(st,at){let ut;return is.und(st)?(ut=this.queue||[],this.queue=[]):ut=[is.obj(st)?st:{...at,to:st}],Promise.all(ut.map(dt=>this._update(dt))).then(dt=>getCombinedResult(this,dt))}stop(st){const{to:at}=this.animation;return this._focus(this.get()),stopAsync(this._state,st&&this._lastCallId),raf.batchedUpdates(()=>this._stop(at,st)),this}reset(){this._update({reset:!0})}eventObserved(st){st.type=="change"?this._start():st.type=="priority"&&(this.priority=st.priority+1)}_prepareNode(st){const at=this.key||"";let{to:ut,from:dt}=st;ut=is.obj(ut)?ut[at]:ut,(ut==null||isAsyncTo(ut))&&(ut=void 0),dt=is.obj(dt)?dt[at]:dt,dt==null&&(dt=void 0);const ct={to:ut,from:dt};return hasAnimated(this)||(st.reverse&&([ut,dt]=[dt,ut]),dt=getFluidValue(dt),is.und(dt)?getAnimated(this)||this._set(ut):this._set(dt)),ct}_update({...st},at){const{key:ut,defaultProps:dt}=this;st.default&&Object.assign(dt,getDefaultProps(st,(ft,ht)=>/^on/.test(ht)?resolveProp(ft,ut):ft)),mergeActiveFn(this,st,"onProps"),sendEvent(this,"onProps",st,this);const ct=this._prepareNode(st);if(Object.isFrozen(this))throw Error("Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?");const pt=this._state;return scheduleProps(++this._lastCallId,{key:ut,props:st,defaultProps:dt,state:pt,actions:{pause:()=>{isPaused(this)||(setPausedBit(this,!0),flushCalls(pt.pauseQueue),sendEvent(this,"onPause",getFinishedResult(this,checkFinished(this,this.animation.to)),this))},resume:()=>{isPaused(this)&&(setPausedBit(this,!1),isAnimating(this)&&this._resume(),flushCalls(pt.resumeQueue),sendEvent(this,"onResume",getFinishedResult(this,checkFinished(this,this.animation.to)),this))},start:this._merge.bind(this,ct)}}).then(ft=>{if(st.loop&&ft.finished&&!(at&&ft.noop)){const ht=createLoopUpdate(st);if(ht)return this._update(ht,!0)}return ft})}_merge(st,at,ut){if(at.cancel)return this.stop(!0),ut(getCancelledResult(this));const dt=!is.und(st.to),ct=!is.und(st.from);if(dt||ct)if(at.callId>this._lastToId)this._lastToId=at.callId;else return ut(getCancelledResult(this));const{key:pt,defaultProps:ft,animation:ht}=this,{to:mt,from:yt}=ht;let{to:bt=mt,from:Tt=yt}=st;ct&&!dt&&(!at.default||is.und(bt))&&(bt=Tt),at.reverse&&([bt,Tt]=[Tt,bt]);const St=!isEqual$1(Tt,yt);St&&(ht.from=Tt),Tt=getFluidValue(Tt);const At=!isEqual$1(bt,mt);At&&this._focus(bt);const vt=isAsyncTo(at.to),{config:Dt}=ht,{decay:Et,velocity:_t}=Dt;(dt||ct)&&(Dt.velocity=0),at.config&&!vt&&mergeConfig(Dt,callProp(at.config,pt),at.config!==ft.config?callProp(ft.config,pt):void 0);let xt=getAnimated(this);if(!xt||is.und(bt))return ut(getFinishedResult(this,!0));const Ct=is.und(at.reset)?ct&&!at.default:!is.und(Tt)&&matchProp(at.reset,pt),kt=Ct?Tt:this.get(),wt=computeGoal(bt),$t=is.num(wt)||is.arr(wt)||isAnimatedString(wt),Lt=!vt&&(!$t||matchProp(ft.immediate||at.immediate,pt));if(At){const qt=getAnimatedType(bt);if(qt!==xt.constructor)if(Lt)xt=this._set(wt);else throw Error(`Cannot animate between ${xt.constructor.name} and ${qt.name}, as the "to" prop suggests`)}const Ot=xt.constructor;let zt=hasFluidValue(bt),Mt=!1;if(!zt){const qt=Ct||!hasAnimated(this)&&St;(At||qt)&&(Mt=isEqual$1(computeGoal(kt),wt),zt=!Mt),(!isEqual$1(ht.immediate,Lt)&&!Lt||!isEqual$1(Dt.decay,Et)||!isEqual$1(Dt.velocity,_t))&&(zt=!0)}if(Mt&&isAnimating(this)&&(ht.changed&&!Ct?zt=!0:zt||this._stop(mt)),!vt&&((zt||hasFluidValue(mt))&&(ht.values=xt.getPayload(),ht.toValues=hasFluidValue(bt)?null:Ot==AnimatedString?[1]:toArray(wt)),ht.immediate!=Lt&&(ht.immediate=Lt,!Lt&&!Ct&&this._set(mt)),zt)){const{onRest:qt}=ht;each(ACTIVE_EVENTS,Yt=>mergeActiveFn(this,at,Yt));const Qt=getFinishedResult(this,checkFinished(this,mt));flushCalls(this._pendingCalls,Qt),this._pendingCalls.add(ut),ht.changed&&raf.batchedUpdates(()=>{var Yt;ht.changed=!Ct,qt==null||qt(Qt,this),Ct?callProp(ft.onRest,Qt):(Yt=ht.onStart)==null||Yt.call(ht,Qt,this)})}Ct&&this._set(kt),vt?ut(runAsync(at.to,at,this._state,this)):zt?this._start():isAnimating(this)&&!At?this._pendingCalls.add(ut):ut(getNoopResult(kt))}_focus(st){const at=this.animation;st!==at.to&&(getFluidObservers(this)&&this._detach(),at.to=st,getFluidObservers(this)&&this._attach())}_attach(){let st=0;const{to:at}=this.animation;hasFluidValue(at)&&(addFluidObserver(at,this),isFrameValue(at)&&(st=at.priority+1)),this.priority=st}_detach(){const{to:st}=this.animation;hasFluidValue(st)&&removeFluidObserver(st,this)}_set(st,at=!0){const ut=getFluidValue(st);if(!is.und(ut)){const dt=getAnimated(this);if(!dt||!isEqual$1(ut,dt.getValue())){const ct=getAnimatedType(ut);!dt||dt.constructor!=ct?setAnimated(this,ct.create(ut)):dt.setValue(ut),dt&&raf.batchedUpdates(()=>{this._onChange(ut,at)})}}return getAnimated(this)}_onStart(){const st=this.animation;st.changed||(st.changed=!0,sendEvent(this,"onStart",getFinishedResult(this,checkFinished(this,st.to)),this))}_onChange(st,at){at||(this._onStart(),callProp(this.animation.onChange,st,this)),callProp(this.defaultProps.onChange,st,this),super._onChange(st,at)}_start(){const st=this.animation;getAnimated(this).reset(getFluidValue(st.to)),st.immediate||(st.fromValues=st.values.map(at=>at.lastPosition)),isAnimating(this)||(setActiveBit(this,!0),isPaused(this)||this._resume())}_resume(){globals_exports.skipAnimation?this.finish():frameLoop.start(this)}_stop(st,at){if(isAnimating(this)){setActiveBit(this,!1);const ut=this.animation;each(ut.values,ct=>{ct.done=!0}),ut.toValues&&(ut.onChange=ut.onPause=ut.onResume=void 0),callFluidObservers(this,{type:"idle",parent:this});const dt=at?getCancelledResult(this.get()):getFinishedResult(this.get(),checkFinished(this,st??ut.to));flushCalls(this._pendingCalls,dt),ut.changed&&(ut.changed=!1,sendEvent(this,"onRest",dt,this))}}};function checkFinished(st,at){const ut=computeGoal(at),dt=computeGoal(st.get());return isEqual$1(dt,ut)}function createLoopUpdate(st,at=st.loop,ut=st.to){const dt=callProp(at);if(dt){const ct=dt!==!0&&inferTo(dt),pt=(ct||st).reverse,ft=!ct||ct.reset;return createUpdate({...st,loop:at,default:!1,pause:void 0,to:!pt||isAsyncTo(ut)?ut:void 0,from:ft?st.from:void 0,reset:ft,...ct})}}function createUpdate(st){const{to:at,from:ut}=st=inferTo(st),dt=new Set;return is.obj(at)&&findDefined(at,dt),is.obj(ut)&&findDefined(ut,dt),st.keys=dt.size?Array.from(dt):null,st}function declareUpdate(st){const at=createUpdate(st);return is.und(at.default)&&(at.default=getDefaultProps(at)),at}function findDefined(st,at){eachProp(st,(ut,dt)=>ut!=null&&at.add(dt))}var ACTIVE_EVENTS=["onStart","onRest","onChange","onPause","onResume"];function mergeActiveFn(st,at,ut){st.animation[ut]=at[ut]!==getDefaultProp(at,ut)?resolveProp(at[ut],st.key):void 0}function sendEvent(st,at,...ut){var dt,ct,pt,ft;(ct=(dt=st.animation)[at])==null||ct.call(dt,...ut),(ft=(pt=st.defaultProps)[at])==null||ft.call(pt,...ut)}var BATCHED_EVENTS=["onStart","onChange","onRest"],nextId2=1,Controller=class{constructor(st,at){this.id=nextId2++,this.springs={},this.queue=[],this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),at&&(this._flush=at),st&&this.start({default:!0,...st})}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every(st=>st.idle&&!st.isDelayed&&!st.isPaused)}get item(){return this._item}set item(st){this._item=st}get(){const st={};return this.each((at,ut)=>st[ut]=at.get()),st}set(st){for(const at in st){const ut=st[at];is.und(ut)||this.springs[at].set(ut)}}update(st){return st&&this.queue.push(createUpdate(st)),this}start(st){let{queue:at}=this;return st?at=toArray(st).map(createUpdate):this.queue=[],this._flush?this._flush(this,at):(prepareKeys(this,at),flushUpdateQueue(this,at))}stop(st,at){if(st!==!!st&&(at=st),at){const ut=this.springs;each(toArray(at),dt=>ut[dt].stop(!!st))}else stopAsync(this._state,this._lastAsyncId),this.each(ut=>ut.stop(!!st));return this}pause(st){if(is.und(st))this.start({pause:!0});else{const at=this.springs;each(toArray(st),ut=>at[ut].pause())}return this}resume(st){if(is.und(st))this.start({pause:!1});else{const at=this.springs;each(toArray(st),ut=>at[ut].resume())}return this}each(st){eachProp(this.springs,st)}_onFrame(){const{onStart:st,onChange:at,onRest:ut}=this._events,dt=this._active.size>0,ct=this._changed.size>0;(dt&&!this._started||ct&&!this._started)&&(this._started=!0,flush(st,([ht,mt])=>{mt.value=this.get(),ht(mt,this,this._item)}));const pt=!dt&&this._started,ft=ct||pt&&ut.size?this.get():null;ct&&at.size&&flush(at,([ht,mt])=>{mt.value=ft,ht(mt,this,this._item)}),pt&&(this._started=!1,flush(ut,([ht,mt])=>{mt.value=ft,ht(mt,this,this._item)}))}eventObserved(st){if(st.type=="change")this._changed.add(st.parent),st.idle||this._active.add(st.parent);else if(st.type=="idle")this._active.delete(st.parent);else return;raf.onFrame(this._onFrame)}};function flushUpdateQueue(st,at){return Promise.all(at.map(ut=>flushUpdate(st,ut))).then(ut=>getCombinedResult(st,ut))}async function flushUpdate(st,at,ut){const{keys:dt,to:ct,from:pt,loop:ft,onRest:ht,onResolve:mt}=at,yt=is.obj(at.default)&&at.default;ft&&(at.loop=!1),ct===!1&&(at.to=null),pt===!1&&(at.from=null);const bt=is.arr(ct)||is.fun(ct)?ct:void 0;bt?(at.to=void 0,at.onRest=void 0,yt&&(yt.onRest=void 0)):each(BATCHED_EVENTS,Dt=>{const Et=at[Dt];if(is.fun(Et)){const _t=st._events[Dt];at[Dt]=({finished:xt,cancelled:Ct})=>{const kt=_t.get(Et);kt?(xt||(kt.finished=!1),Ct&&(kt.cancelled=!0)):_t.set(Et,{value:null,finished:xt||!1,cancelled:Ct||!1})},yt&&(yt[Dt]=at[Dt])}});const Tt=st._state;at.pause===!Tt.paused?(Tt.paused=at.pause,flushCalls(at.pause?Tt.pauseQueue:Tt.resumeQueue)):Tt.paused&&(at.pause=!0);const St=(dt||Object.keys(st.springs)).map(Dt=>st.springs[Dt].start(at)),At=at.cancel===!0||getDefaultProp(at,"cancel")===!0;(bt||At&&Tt.asyncId)&&St.push(scheduleProps(++st._lastAsyncId,{props:at,state:Tt,actions:{pause:noop,resume:noop,start(Dt,Et){At?(stopAsync(Tt,st._lastAsyncId),Et(getCancelledResult(st))):(Dt.onRest=ht,Et(runAsync(bt,Dt,Tt,st)))}}})),Tt.paused&&await new Promise(Dt=>{Tt.resumeQueue.add(Dt)});const vt=getCombinedResult(st,await Promise.all(St));if(ft&&vt.finished&&!(ut&&vt.noop)){const Dt=createLoopUpdate(at,ft,ct);if(Dt)return prepareKeys(st,[Dt]),flushUpdate(st,Dt,!0)}return mt&&raf.batchedUpdates(()=>mt(vt,st,st.item)),vt}function getSprings(st,at){const ut={...st.springs};return at&&each(toArray(at),dt=>{is.und(dt.keys)&&(dt=createUpdate(dt)),is.obj(dt.to)||(dt={...dt,to:void 0}),prepareSprings(ut,dt,ct=>createSpring(ct))}),setSprings(st,ut),ut}function setSprings(st,at){eachProp(at,(ut,dt)=>{st.springs[dt]||(st.springs[dt]=ut,addFluidObserver(ut,st))})}function createSpring(st,at){const ut=new SpringValue;return ut.key=st,at&&addFluidObserver(ut,at),ut}function prepareSprings(st,at,ut){at.keys&&each(at.keys,dt=>{(st[dt]||(st[dt]=ut(dt)))._prepareNode(at)})}function prepareKeys(st,at){each(at,ut=>{prepareSprings(st.springs,ut,dt=>createSpring(dt,st))})}var SpringContext=({children:st,...at})=>{const ut=reactExports.useContext(ctx),dt=at.pause||!!ut.pause,ct=at.immediate||!!ut.immediate;at=useMemoOne(()=>({pause:dt,immediate:ct}),[dt,ct]);const{Provider:pt}=ctx;return reactExports.createElement(pt,{value:at},st)},ctx=makeContext(SpringContext,{});SpringContext.Provider=ctx.Provider;SpringContext.Consumer=ctx.Consumer;function makeContext(st,at){return Object.assign(st,reactExports.createContext(at)),st.Provider._context=st,st.Consumer._context=st,st}var SpringRef=()=>{const st=[],at=function(dt){deprecateDirectCall();const ct=[];return each(st,(pt,ft)=>{if(is.und(dt))ct.push(pt.start());else{const ht=ut(dt,pt,ft);ht&&ct.push(pt.start(ht))}}),ct};at.current=st,at.add=function(dt){st.includes(dt)||st.push(dt)},at.delete=function(dt){const ct=st.indexOf(dt);~ct&&st.splice(ct,1)},at.pause=function(){return each(st,dt=>dt.pause(...arguments)),this},at.resume=function(){return each(st,dt=>dt.resume(...arguments)),this},at.set=function(dt){each(st,(ct,pt)=>{const ft=is.fun(dt)?dt(pt,ct):dt;ft&&ct.set(ft)})},at.start=function(dt){const ct=[];return each(st,(pt,ft)=>{if(is.und(dt))ct.push(pt.start());else{const ht=this._getProps(dt,pt,ft);ht&&ct.push(pt.start(ht))}}),ct},at.stop=function(){return each(st,dt=>dt.stop(...arguments)),this},at.update=function(dt){return each(st,(ct,pt)=>ct.update(this._getProps(dt,ct,pt))),this};const ut=function(dt,ct,pt){return is.fun(dt)?dt(pt,ct):dt};return at._getProps=ut,at};function useSprings(st,at,ut){const dt=is.fun(at)&&at;dt&&!ut&&(ut=[]);const ct=reactExports.useMemo(()=>dt||arguments.length==3?SpringRef():void 0,[]),pt=reactExports.useRef(0),ft=useForceUpdate(),ht=reactExports.useMemo(()=>({ctrls:[],queue:[],flush(_t,xt){const Ct=getSprings(_t,xt);return pt.current>0&&!ht.queue.length&&!Object.keys(Ct).some(wt=>!_t.springs[wt])?flushUpdateQueue(_t,xt):new Promise(wt=>{setSprings(_t,Ct),ht.queue.push(()=>{wt(flushUpdateQueue(_t,xt))}),ft()})}}),[]),mt=reactExports.useRef([...ht.ctrls]),yt=[],bt=usePrev(st)||0;reactExports.useMemo(()=>{each(mt.current.slice(st,bt),_t=>{detachRefs(_t,ct),_t.stop(!0)}),mt.current.length=st,Tt(bt,st)},[st]),reactExports.useMemo(()=>{Tt(0,Math.min(bt,st))},ut);function Tt(_t,xt){for(let Ct=_t;CtgetSprings(_t,yt[xt])),At=reactExports.useContext(SpringContext),vt=usePrev(At),Dt=At!==vt&&hasProps(At);useIsomorphicLayoutEffect(()=>{pt.current++,ht.ctrls=mt.current;const{queue:_t}=ht;_t.length&&(ht.queue=[],each(_t,xt=>xt())),each(mt.current,(xt,Ct)=>{ct==null||ct.add(xt),Dt&&xt.start({default:At});const kt=yt[Ct];kt&&(replaceRef(xt,kt.ref),xt.ref?xt.queue.push(kt):xt.start(kt))})}),useOnce(()=>()=>{each(ht.ctrls,_t=>_t.stop(!0))});const Et=St.map(_t=>({..._t}));return ct?[Et,ct]:Et}function useSpring(st,at){const ut=is.fun(st),[[dt],ct]=useSprings(1,ut?st:[st],ut?at||[]:at);return ut||arguments.length==2?[dt,ct]:dt}var Interpolation=class extends FrameValue{constructor(st,at){super(),this.source=st,this.idle=!0,this._active=new Set,this.calc=createInterpolator(...at);const ut=this._get(),dt=getAnimatedType(ut);setAnimated(this,dt.create(ut))}advance(st){const at=this._get(),ut=this.get();isEqual$1(at,ut)||(getAnimated(this).setValue(at),this._onChange(at,this.idle)),!this.idle&&checkIdle(this._active)&&becomeIdle(this)}_get(){const st=is.arr(this.source)?this.source.map(getFluidValue):toArray(getFluidValue(this.source));return this.calc(...st)}_start(){this.idle&&!checkIdle(this._active)&&(this.idle=!1,each(getPayload(this),st=>{st.done=!1}),globals_exports.skipAnimation?(raf.batchedUpdates(()=>this.advance()),becomeIdle(this)):frameLoop.start(this))}_attach(){let st=1;each(toArray(this.source),at=>{hasFluidValue(at)&&addFluidObserver(at,this),isFrameValue(at)&&(at.idle||this._active.add(at),st=Math.max(st,at.priority+1))}),this.priority=st,this._start()}_detach(){each(toArray(this.source),st=>{hasFluidValue(st)&&removeFluidObserver(st,this)}),this._active.clear(),becomeIdle(this)}eventObserved(st){st.type=="change"?st.idle?this.advance():(this._active.add(st.parent),this._start()):st.type=="idle"?this._active.delete(st.parent):st.type=="priority"&&(this.priority=toArray(this.source).reduce((at,ut)=>Math.max(at,(isFrameValue(ut)?ut.priority:0)+1),0))}};function isIdle(st){return st.idle!==!1}function checkIdle(st){return!st.size||Array.from(st).every(isIdle)}function becomeIdle(st){st.idle||(st.idle=!0,each(getPayload(st),at=>{at.done=!0}),callFluidObservers(st,{type:"idle",parent:st}))}var to=(st,...at)=>new Interpolation(st,at);globals_exports.assign({createStringInterpolator:createStringInterpolator2,to:(st,at)=>new Interpolation(st,at)});var isCustomPropRE=/^--/;function dangerousStyleValue(st,at){return at==null||typeof at=="boolean"||at===""?"":typeof at=="number"&&at!==0&&!isCustomPropRE.test(st)&&!(isUnitlessNumber.hasOwnProperty(st)&&isUnitlessNumber[st])?at+"px":(""+at).trim()}var attributeCache={};function applyAnimatedValues(st,at){if(!st.nodeType||!st.setAttribute)return!1;const ut=st.nodeName==="filter"||st.parentNode&&st.parentNode.nodeName==="filter",{className:dt,style:ct,children:pt,scrollTop:ft,scrollLeft:ht,viewBox:mt,...yt}=at,bt=Object.values(yt),Tt=Object.keys(yt).map(St=>ut||st.hasAttribute(St)?St:attributeCache[St]||(attributeCache[St]=St.replace(/([A-Z])/g,At=>"-"+At.toLowerCase())));pt!==void 0&&(st.textContent=pt);for(const St in ct)if(ct.hasOwnProperty(St)){const At=dangerousStyleValue(St,ct[St]);isCustomPropRE.test(St)?st.style.setProperty(St,At):st.style[St]=At}Tt.forEach((St,At)=>{st.setAttribute(St,bt[At])}),dt!==void 0&&(st.className=dt),ft!==void 0&&(st.scrollTop=ft),ht!==void 0&&(st.scrollLeft=ht),mt!==void 0&&st.setAttribute("viewBox",mt)}var isUnitlessNumber={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},prefixKey=(st,at)=>st+at.charAt(0).toUpperCase()+at.substring(1),prefixes=["Webkit","Ms","Moz","O"];isUnitlessNumber=Object.keys(isUnitlessNumber).reduce((st,at)=>(prefixes.forEach(ut=>st[prefixKey(ut,at)]=st[at]),st),isUnitlessNumber);var domTransforms=/^(matrix|translate|scale|rotate|skew)/,pxTransforms=/^(translate)/,degTransforms=/^(rotate|skew)/,addUnit=(st,at)=>is.num(st)&&st!==0?st+at:st,isValueIdentity=(st,at)=>is.arr(st)?st.every(ut=>isValueIdentity(ut,at)):is.num(st)?st===at:parseFloat(st)===at,AnimatedStyle=class extends AnimatedObject{constructor({x:st,y:at,z:ut,...dt}){const ct=[],pt=[];(st||at||ut)&&(ct.push([st||0,at||0,ut||0]),pt.push(ft=>[`translate3d(${ft.map(ht=>addUnit(ht,"px")).join(",")})`,isValueIdentity(ft,0)])),eachProp(dt,(ft,ht)=>{if(ht==="transform")ct.push([ft||""]),pt.push(mt=>[mt,mt===""]);else if(domTransforms.test(ht)){if(delete dt[ht],is.und(ft))return;const mt=pxTransforms.test(ht)?"px":degTransforms.test(ht)?"deg":"";ct.push(toArray(ft)),pt.push(ht==="rotate3d"?([yt,bt,Tt,St])=>[`rotate3d(${yt},${bt},${Tt},${addUnit(St,mt)})`,isValueIdentity(St,0)]:yt=>[`${ht}(${yt.map(bt=>addUnit(bt,mt)).join(",")})`,isValueIdentity(yt,ht.startsWith("scale")?1:0)])}}),ct.length&&(dt.transform=new FluidTransform(ct,pt)),super(dt)}},FluidTransform=class extends FluidValue{constructor(st,at){super(),this.inputs=st,this.transforms=at,this._value=null}get(){return this._value||(this._value=this._get())}_get(){let st="",at=!0;return each(this.inputs,(ut,dt)=>{const ct=getFluidValue(ut[0]),[pt,ft]=this.transforms[dt](is.arr(ct)?ct:ut.map(getFluidValue));st+=" "+pt,at=at&&ft}),at?"none":st}observerAdded(st){st==1&&each(this.inputs,at=>each(at,ut=>hasFluidValue(ut)&&addFluidObserver(ut,this)))}observerRemoved(st){st==0&&each(this.inputs,at=>each(at,ut=>hasFluidValue(ut)&&removeFluidObserver(ut,this)))}eventObserved(st){st.type=="change"&&(this._value=null),callFluidObservers(this,st)}},primitives=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"];globals_exports.assign({batchedUpdates:reactDomExports.unstable_batchedUpdates,createStringInterpolator:createStringInterpolator2,colors:colors2});var host=createHost(primitives,{applyAnimatedValues,createAnimatedStyle:st=>new AnimatedStyle(st),getComponentProps:({scrollTop:st,scrollLeft:at,...ut})=>ut}),animated=host.animated;function isArray(st){return Array.isArray?Array.isArray(st):getTag(st)==="[object Array]"}function baseToString(st){if(typeof st=="string")return st;let at=st+"";return at=="0"&&1/st==-1/0?"-0":at}function toString(st){return st==null?"":baseToString(st)}function isString(st){return typeof st=="string"}function isNumber(st){return typeof st=="number"}function isBoolean(st){return st===!0||st===!1||isObjectLike(st)&&getTag(st)=="[object Boolean]"}function isObject(st){return typeof st=="object"}function isObjectLike(st){return isObject(st)&&st!==null}function isDefined(st){return st!=null}function isBlank(st){return!st.trim().length}function getTag(st){return st==null?st===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(st)}const INCORRECT_INDEX_TYPE="Incorrect 'index' type",LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY=st=>`Invalid value for key ${st}`,PATTERN_LENGTH_TOO_LARGE=st=>`Pattern length exceeds max of ${st}.`,MISSING_KEY_PROPERTY=st=>`Missing ${st} property in key`,INVALID_KEY_WEIGHT_VALUE=st=>`Property 'weight' in key '${st}' must be a positive integer`,hasOwn=Object.prototype.hasOwnProperty;class KeyStore{constructor(at){this._keys=[],this._keyMap={};let ut=0;at.forEach(dt=>{let ct=createKey(dt);this._keys.push(ct),this._keyMap[ct.id]=ct,ut+=ct.weight}),this._keys.forEach(dt=>{dt.weight/=ut})}get(at){return this._keyMap[at]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function createKey(st){let at=null,ut=null,dt=null,ct=1,pt=null;if(isString(st)||isArray(st))dt=st,at=createKeyPath(st),ut=createKeyId(st);else{if(!hasOwn.call(st,"name"))throw new Error(MISSING_KEY_PROPERTY("name"));const ft=st.name;if(dt=ft,hasOwn.call(st,"weight")&&(ct=st.weight,ct<=0))throw new Error(INVALID_KEY_WEIGHT_VALUE(ft));at=createKeyPath(ft),ut=createKeyId(ft),pt=st.getFn}return{path:at,id:ut,weight:ct,src:dt,getFn:pt}}function createKeyPath(st){return isArray(st)?st:st.split(".")}function createKeyId(st){return isArray(st)?st.join("."):st}function get(st,at){let ut=[],dt=!1;const ct=(pt,ft,ht)=>{if(isDefined(pt))if(!ft[ht])ut.push(pt);else{let mt=ft[ht];const yt=pt[mt];if(!isDefined(yt))return;if(ht===ft.length-1&&(isString(yt)||isNumber(yt)||isBoolean(yt)))ut.push(toString(yt));else if(isArray(yt)){dt=!0;for(let bt=0,Tt=yt.length;btst.score===at.score?st.idx{this._keysMap[ut.id]=dt})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,isString(this.docs[0])?this.docs.forEach((at,ut)=>{this._addString(at,ut)}):this.docs.forEach((at,ut)=>{this._addObject(at,ut)}),this.norm.clear())}add(at){const ut=this.size();isString(at)?this._addString(at,ut):this._addObject(at,ut)}removeAt(at){this.records.splice(at,1);for(let ut=at,dt=this.size();ut{let ft=ct.getFn?ct.getFn(at):this.getFn(at,ct.path);if(isDefined(ft)){if(isArray(ft)){let ht=[];const mt=[{nestedArrIndex:-1,value:ft}];for(;mt.length;){const{nestedArrIndex:yt,value:bt}=mt.pop();if(isDefined(bt))if(isString(bt)&&!isBlank(bt)){let Tt={v:bt,i:yt,n:this.norm.get(bt)};ht.push(Tt)}else isArray(bt)&&bt.forEach((Tt,St)=>{mt.push({nestedArrIndex:St,value:Tt})})}dt.$[pt]=ht}else if(isString(ft)&&!isBlank(ft)){let ht={v:ft,n:this.norm.get(ft)};dt.$[pt]=ht}}}),this.records.push(dt)}toJSON(){return{keys:this.keys,records:this.records}}}function createIndex(st,at,{getFn:ut=Config.getFn,fieldNormWeight:dt=Config.fieldNormWeight}={}){const ct=new FuseIndex({getFn:ut,fieldNormWeight:dt});return ct.setKeys(st.map(createKey)),ct.setSources(at),ct.create(),ct}function parseIndex(st,{getFn:at=Config.getFn,fieldNormWeight:ut=Config.fieldNormWeight}={}){const{keys:dt,records:ct}=st,pt=new FuseIndex({getFn:at,fieldNormWeight:ut});return pt.setKeys(dt),pt.setIndexRecords(ct),pt}function computeScore$1(st,{errors:at=0,currentLocation:ut=0,expectedLocation:dt=0,distance:ct=Config.distance,ignoreLocation:pt=Config.ignoreLocation}={}){const ft=at/st.length;if(pt)return ft;const ht=Math.abs(dt-ut);return ct?ft+ht/ct:ht?1:ft}function convertMaskToIndices(st=[],at=Config.minMatchCharLength){let ut=[],dt=-1,ct=-1,pt=0;for(let ft=st.length;pt=at&&ut.push([dt,ct]),dt=-1)}return st[pt-1]&&pt-dt>=at&&ut.push([dt,pt-1]),ut}const MAX_BITS=32;function search(st,at,ut,{location:dt=Config.location,distance:ct=Config.distance,threshold:pt=Config.threshold,findAllMatches:ft=Config.findAllMatches,minMatchCharLength:ht=Config.minMatchCharLength,includeMatches:mt=Config.includeMatches,ignoreLocation:yt=Config.ignoreLocation}={}){if(at.length>MAX_BITS)throw new Error(PATTERN_LENGTH_TOO_LARGE(MAX_BITS));const bt=at.length,Tt=st.length,St=Math.max(0,Math.min(dt,Tt));let At=pt,vt=St;const Dt=ht>1||mt,Et=Dt?Array(Tt):[];let _t;for(;(_t=st.indexOf(at,vt))>-1;){let Lt=computeScore$1(at,{currentLocation:_t,expectedLocation:St,distance:ct,ignoreLocation:yt});if(At=Math.min(Lt,At),vt=_t+bt,Dt){let Ot=0;for(;Ot=Mt;jt-=1){let Ft=jt-1,Vt=ut[st.charAt(Ft)];if(Dt&&(Et[Ft]=+!!Vt),Qt[jt]=(Qt[jt+1]<<1|1)&Vt,Lt&&(Qt[jt]|=(xt[jt+1]|xt[jt])<<1|1|xt[jt+1]),Qt[jt]&wt&&(Ct=computeScore$1(at,{errors:Lt,currentLocation:Ft,expectedLocation:St,distance:ct,ignoreLocation:yt}),Ct<=At)){if(At=Ct,vt=Ft,vt<=St)break;Mt=Math.max(1,2*St-vt)}}if(computeScore$1(at,{errors:Lt+1,currentLocation:St,expectedLocation:St,distance:ct,ignoreLocation:yt})>At)break;xt=Qt}const $t={isMatch:vt>=0,score:Math.max(.001,Ct)};if(Dt){const Lt=convertMaskToIndices(Et,ht);Lt.length?mt&&($t.indices=Lt):$t.isMatch=!1}return $t}function createPatternAlphabet(st){let at={};for(let ut=0,dt=st.length;utst.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,""):st=>st;class BitapSearch{constructor(at,{location:ut=Config.location,threshold:dt=Config.threshold,distance:ct=Config.distance,includeMatches:pt=Config.includeMatches,findAllMatches:ft=Config.findAllMatches,minMatchCharLength:ht=Config.minMatchCharLength,isCaseSensitive:mt=Config.isCaseSensitive,ignoreDiacritics:yt=Config.ignoreDiacritics,ignoreLocation:bt=Config.ignoreLocation}={}){if(this.options={location:ut,threshold:dt,distance:ct,includeMatches:pt,findAllMatches:ft,minMatchCharLength:ht,isCaseSensitive:mt,ignoreDiacritics:yt,ignoreLocation:bt},at=mt?at:at.toLowerCase(),at=yt?stripDiacritics(at):at,this.pattern=at,this.chunks=[],!this.pattern.length)return;const Tt=(At,vt)=>{this.chunks.push({pattern:At,alphabet:createPatternAlphabet(At),startIndex:vt})},St=this.pattern.length;if(St>MAX_BITS){let At=0;const vt=St%MAX_BITS,Dt=St-vt;for(;At{const{isMatch:xt,score:Ct,indices:kt}=search(at,Dt,Et,{location:pt+_t,distance:ft,threshold:ht,findAllMatches:mt,minMatchCharLength:yt,includeMatches:ct,ignoreLocation:bt});xt&&(At=!0),St+=Ct,xt&&kt&&(Tt=[...Tt,...kt])});let vt={isMatch:At,score:At?St/this.chunks.length:1};return At&&ct&&(vt.indices=Tt),vt}}class BaseMatch{constructor(at){this.pattern=at}static isMultiMatch(at){return getMatch(at,this.multiRegex)}static isSingleMatch(at){return getMatch(at,this.singleRegex)}search(){}}function getMatch(st,at){const ut=st.match(at);return ut?ut[1]:null}class ExactMatch extends BaseMatch{constructor(at){super(at)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(at){const ut=at===this.pattern;return{isMatch:ut,score:ut?0:1,indices:[0,this.pattern.length-1]}}}class InverseExactMatch extends BaseMatch{constructor(at){super(at)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(at){const dt=at.indexOf(this.pattern)===-1;return{isMatch:dt,score:dt?0:1,indices:[0,at.length-1]}}}class PrefixExactMatch extends BaseMatch{constructor(at){super(at)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(at){const ut=at.startsWith(this.pattern);return{isMatch:ut,score:ut?0:1,indices:[0,this.pattern.length-1]}}}class InversePrefixExactMatch extends BaseMatch{constructor(at){super(at)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(at){const ut=!at.startsWith(this.pattern);return{isMatch:ut,score:ut?0:1,indices:[0,at.length-1]}}}class SuffixExactMatch extends BaseMatch{constructor(at){super(at)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(at){const ut=at.endsWith(this.pattern);return{isMatch:ut,score:ut?0:1,indices:[at.length-this.pattern.length,at.length-1]}}}class InverseSuffixExactMatch extends BaseMatch{constructor(at){super(at)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(at){const ut=!at.endsWith(this.pattern);return{isMatch:ut,score:ut?0:1,indices:[0,at.length-1]}}}class FuzzyMatch extends BaseMatch{constructor(at,{location:ut=Config.location,threshold:dt=Config.threshold,distance:ct=Config.distance,includeMatches:pt=Config.includeMatches,findAllMatches:ft=Config.findAllMatches,minMatchCharLength:ht=Config.minMatchCharLength,isCaseSensitive:mt=Config.isCaseSensitive,ignoreDiacritics:yt=Config.ignoreDiacritics,ignoreLocation:bt=Config.ignoreLocation}={}){super(at),this._bitapSearch=new BitapSearch(at,{location:ut,threshold:dt,distance:ct,includeMatches:pt,findAllMatches:ft,minMatchCharLength:ht,isCaseSensitive:mt,ignoreDiacritics:yt,ignoreLocation:bt})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(at){return this._bitapSearch.searchIn(at)}}class IncludeMatch extends BaseMatch{constructor(at){super(at)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(at){let ut=0,dt;const ct=[],pt=this.pattern.length;for(;(dt=at.indexOf(this.pattern,ut))>-1;)ut=dt+pt,ct.push([dt,ut-1]);const ft=!!ct.length;return{isMatch:ft,score:ft?0:1,indices:ct}}}const searchers=[ExactMatch,IncludeMatch,PrefixExactMatch,InversePrefixExactMatch,InverseSuffixExactMatch,SuffixExactMatch,InverseExactMatch,FuzzyMatch],searchersLen=searchers.length,SPACE_RE=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,OR_TOKEN="|";function parseQuery(st,at={}){return st.split(OR_TOKEN).map(ut=>{let dt=ut.trim().split(SPACE_RE).filter(pt=>pt&&!!pt.trim()),ct=[];for(let pt=0,ft=dt.length;pt!!(st[LogicalOperator.AND]||st[LogicalOperator.OR]),isPath=st=>!!st[KeyType.PATH],isLeaf=st=>!isArray(st)&&isObject(st)&&!isExpression(st),convertToExplicit=st=>({[LogicalOperator.AND]:Object.keys(st).map(at=>({[at]:st[at]}))});function parse(st,at,{auto:ut=!0}={}){const dt=ct=>{let pt=Object.keys(ct);const ft=isPath(ct);if(!ft&&pt.length>1&&!isExpression(ct))return dt(convertToExplicit(ct));if(isLeaf(ct)){const mt=ft?ct[KeyType.PATH]:pt[0],yt=ft?ct[KeyType.PATTERN]:ct[mt];if(!isString(yt))throw new Error(LOGICAL_SEARCH_INVALID_QUERY_FOR_KEY(mt));const bt={keyId:createKeyId(mt),pattern:yt};return ut&&(bt.searcher=createSearcher(yt,at)),bt}let ht={children:[],operator:pt[0]};return pt.forEach(mt=>{const yt=ct[mt];isArray(yt)&&yt.forEach(bt=>{ht.children.push(dt(bt))})}),ht};return isExpression(st)||(st=convertToExplicit(st)),dt(st)}function computeScore(st,{ignoreFieldNorm:at=Config.ignoreFieldNorm}){st.forEach(ut=>{let dt=1;ut.matches.forEach(({key:ct,norm:pt,score:ft})=>{const ht=ct?ct.weight:null;dt*=Math.pow(ft===0&&ht?Number.EPSILON:ft,(ht||1)*(at?1:pt))}),ut.score=dt})}function transformMatches(st,at){const ut=st.matches;at.matches=[],isDefined(ut)&&ut.forEach(dt=>{if(!isDefined(dt.indices)||!dt.indices.length)return;const{indices:ct,value:pt}=dt;let ft={indices:ct,value:pt};dt.key&&(ft.key=dt.key.src),dt.idx>-1&&(ft.refIndex=dt.idx),at.matches.push(ft)})}function transformScore(st,at){at.score=st.score}function format(st,at,{includeMatches:ut=Config.includeMatches,includeScore:dt=Config.includeScore}={}){const ct=[];return ut&&ct.push(transformMatches),dt&&ct.push(transformScore),st.map(pt=>{const{idx:ft}=pt,ht={item:at[ft],refIndex:ft};return ct.length&&ct.forEach(mt=>{mt(pt,ht)}),ht})}class Fuse{constructor(at,ut={},dt){this.options={...Config,...ut},this.options.useExtendedSearch,this._keyStore=new KeyStore(this.options.keys),this.setCollection(at,dt)}setCollection(at,ut){if(this._docs=at,ut&&!(ut instanceof FuseIndex))throw new Error(INCORRECT_INDEX_TYPE);this._myIndex=ut||createIndex(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(at){isDefined(at)&&(this._docs.push(at),this._myIndex.add(at))}remove(at=()=>!1){const ut=[];for(let dt=0,ct=this._docs.length;dt-1&&(mt=mt.slice(0,ut)),format(mt,this._docs,{includeMatches:dt,includeScore:ct})}_searchStringList(at){const ut=createSearcher(at,this.options),{records:dt}=this._myIndex,ct=[];return dt.forEach(({v:pt,i:ft,n:ht})=>{if(!isDefined(pt))return;const{isMatch:mt,score:yt,indices:bt}=ut.searchIn(pt);mt&&ct.push({item:pt,idx:ft,matches:[{score:yt,value:pt,norm:ht,indices:bt}]})}),ct}_searchLogical(at){const ut=parse(at,this.options),dt=(ht,mt,yt)=>{if(!ht.children){const{keyId:Tt,searcher:St}=ht,At=this._findMatches({key:this._keyStore.get(Tt),value:this._myIndex.getValueForItemAtKeyId(mt,Tt),searcher:St});return At&&At.length?[{idx:yt,item:mt,matches:At}]:[]}const bt=[];for(let Tt=0,St=ht.children.length;Tt{if(isDefined(ht)){let yt=dt(ut,ht,mt);yt.length&&(pt[mt]||(pt[mt]={idx:mt,item:ht,matches:[]},ft.push(pt[mt])),yt.forEach(({matches:bt})=>{pt[mt].matches.push(...bt)}))}}),ft}_searchObjectList(at){const ut=createSearcher(at,this.options),{keys:dt,records:ct}=this._myIndex,pt=[];return ct.forEach(({$:ft,i:ht})=>{if(!isDefined(ft))return;let mt=[];dt.forEach((yt,bt)=>{mt.push(...this._findMatches({key:yt,value:ft[bt],searcher:ut}))}),mt.length&&pt.push({idx:ht,item:ft,matches:mt})}),pt}_findMatches({key:at,value:ut,searcher:dt}){if(!isDefined(ut))return[];let ct=[];if(isArray(ut))ut.forEach(({v:pt,i:ft,n:ht})=>{if(!isDefined(pt))return;const{isMatch:mt,score:yt,indices:bt}=dt.searchIn(pt);mt&&ct.push({score:yt,key:at,value:pt,idx:ft,norm:ht,indices:bt})});else{const{v:pt,n:ft}=ut,{isMatch:ht,score:mt,indices:yt}=dt.searchIn(pt);ht&&ct.push({score:mt,key:at,value:pt,norm:ft,indices:yt})}return ct}}Fuse.version="7.1.0";Fuse.createIndex=createIndex;Fuse.parseIndex=parseIndex;Fuse.config=Config;Fuse.parseQuery=parse;register(ExtendedSearch);const parents=new Set,coords=new WeakMap,siblings=new WeakMap,animations=new WeakMap,intersections=new WeakMap,intervals=new WeakMap,options=new WeakMap,debounces=new WeakMap,enabled=new WeakSet;let root,scrollX=0,scrollY=0;const TGT="__aa_tgt",DEL="__aa_del",NEW="__aa_new",handleMutations=st=>{const at=getElements(st);at&&at.forEach(ut=>animate(ut))},handleResizes=st=>{st.forEach(at=>{at.target===root&&updateAllPos(),coords.has(at.target)&&updatePos(at.target)})};function observePosition(st){const at=intersections.get(st);at==null||at.disconnect();let ut=coords.get(st),dt=0;const ct=5;ut||(ut=getCoords(st),coords.set(st,ut));const{offsetWidth:pt,offsetHeight:ft}=root,mt=[ut.top-ct,pt-(ut.left+ct+ut.width),ft-(ut.top+ct+ut.height),ut.left-ct].map(bt=>`${-1*Math.floor(bt)}px`).join(" "),yt=new IntersectionObserver(()=>{++dt>1&&updatePos(st)},{root,threshold:1,rootMargin:mt});yt.observe(st),intersections.set(st,yt)}function updatePos(st){clearTimeout(debounces.get(st));const at=getOptions(st),ut=isPlugin(at)?500:at.duration;debounces.set(st,setTimeout(async()=>{const dt=animations.get(st);try{await(dt==null?void 0:dt.finished),coords.set(st,getCoords(st)),observePosition(st)}catch{}},ut))}function updateAllPos(){clearTimeout(debounces.get(root)),debounces.set(root,setTimeout(()=>{parents.forEach(st=>forEach(st,at=>lowPriority(()=>updatePos(at))))},100))}function poll(st){setTimeout(()=>{intervals.set(st,setInterval(()=>lowPriority(updatePos.bind(null,st)),2e3))},Math.round(2e3*Math.random()))}function lowPriority(st){typeof requestIdleCallback=="function"?requestIdleCallback(()=>st()):requestAnimationFrame(()=>st())}let mutations,resize;const supportedBrowser=typeof window<"u"&&"ResizeObserver"in window;supportedBrowser&&(root=document.documentElement,mutations=new MutationObserver(handleMutations),resize=new ResizeObserver(handleResizes),window.addEventListener("scroll",()=>{scrollY=window.scrollY,scrollX=window.scrollX}),resize.observe(root));function getElements(st){return st.reduce((dt,ct)=>[...dt,...Array.from(ct.addedNodes),...Array.from(ct.removedNodes)],[]).every(dt=>dt.nodeName==="#comment")?!1:st.reduce((dt,ct)=>{if(dt===!1)return!1;if(ct.target instanceof Element){if(target(ct.target),!dt.has(ct.target)){dt.add(ct.target);for(let pt=0;ptut(st,options.has(st)));for(let ut=0;utct(dt,options.has(dt)))}}function getPluginTuple(st){return Array.isArray(st)?st:[st]}function isPlugin(st){return typeof st=="function"}function remain(st){const at=coords.get(st),ut=getCoords(st);if(!isEnabled(st))return coords.set(st,ut);let dt;if(!at)return;const ct=getOptions(st);if(typeof ct!="function"){const pt=at.left-ut.left,ft=at.top-ut.top,[ht,mt,yt,bt]=getTransitionSizes(st,at,ut),Tt={transform:`translate(${pt}px, ${ft}px)`},St={transform:"translate(0, 0)"};ht!==mt&&(Tt.width=`${ht}px`,St.width=`${mt}px`),yt!==bt&&(Tt.height=`${yt}px`,St.height=`${bt}px`),dt=st.animate([Tt,St],{duration:ct.duration,easing:ct.easing})}else{const[pt]=getPluginTuple(ct(st,"remain",at,ut));dt=new Animation(pt),dt.play()}animations.set(st,dt),coords.set(st,ut),dt.addEventListener("finish",updatePos.bind(null,st))}function add(st){NEW in st&&delete st[NEW];const at=getCoords(st);coords.set(st,at);const ut=getOptions(st);if(!isEnabled(st))return;let dt;if(typeof ut!="function")dt=st.animate([{transform:"scale(.98)",opacity:0},{transform:"scale(0.98)",opacity:0,offset:.5},{transform:"scale(1)",opacity:1}],{duration:ut.duration*1.5,easing:"ease-in"});else{const[ct]=getPluginTuple(ut(st,"add",at));dt=new Animation(ct),dt.play()}animations.set(st,dt),dt.addEventListener("finish",updatePos.bind(null,st))}function cleanUp(st,at){var ut;st.remove(),coords.delete(st),siblings.delete(st),animations.delete(st),(ut=intersections.get(st))===null||ut===void 0||ut.disconnect(),setTimeout(()=>{if(DEL in st&&delete st[DEL],Object.defineProperty(st,NEW,{value:!0,configurable:!0}),at&&st instanceof HTMLElement)for(const dt in at)st.style[dt]=""},0)}function remove(st){var at;if(!siblings.has(st)||!coords.has(st))return;const[ut,dt]=siblings.get(st);Object.defineProperty(st,DEL,{value:!0,configurable:!0});const ct=window.scrollX,pt=window.scrollY;if(dt&&dt.parentNode&&dt.parentNode instanceof Element?dt.parentNode.insertBefore(st,dt):ut&&ut.parentNode?ut.parentNode.appendChild(st):(at=getTarget(st))===null||at===void 0||at.appendChild(st),!isEnabled(st))return cleanUp(st);const[ft,ht,mt,yt]=deletePosition(st),bt=getOptions(st),Tt=coords.get(st);(ct!==scrollX||pt!==scrollY)&&adjustScroll(st,ct,pt,bt);let St,At={position:"absolute",top:`${ft}px`,left:`${ht}px`,width:`${mt}px`,height:`${yt}px`,margin:"0",pointerEvents:"none",transformOrigin:"center",zIndex:"100"};if(!isPlugin(bt))Object.assign(st.style,At),St=st.animate([{transform:"scale(1)",opacity:1},{transform:"scale(.98)",opacity:0}],{duration:bt.duration,easing:"ease-out"});else{const[vt,Dt]=getPluginTuple(bt(st,"remove",Tt));(Dt==null?void 0:Dt.styleReset)!==!1&&(At=(Dt==null?void 0:Dt.styleReset)||At,Object.assign(st.style,At)),St=new Animation(vt),St.play()}animations.set(st,St),St.addEventListener("finish",cleanUp.bind(null,st,At))}function adjustScroll(st,at,ut,dt){const ct=scrollX-at,pt=scrollY-ut,ft=document.documentElement.style.scrollBehavior;if(getComputedStyle(root).scrollBehavior==="smooth"&&(document.documentElement.style.scrollBehavior="auto"),window.scrollTo(window.scrollX+ct,window.scrollY+pt),!st.parentElement)return;const mt=st.parentElement;let yt=mt.clientHeight,bt=mt.clientWidth;const Tt=performance.now();function St(){requestAnimationFrame(()=>{if(!isPlugin(dt)){const At=yt-mt.clientHeight,vt=bt-mt.clientWidth;Tt+dt.duration>performance.now()?(window.scrollTo({left:window.scrollX-vt,top:window.scrollY-At}),yt=mt.clientHeight,bt=mt.clientWidth,St()):document.documentElement.style.scrollBehavior=ft}})}St()}function deletePosition(st){const at=coords.get(st),[ut,,dt]=getTransitionSizes(st,at,getCoords(st));let ct=st.parentElement;for(;ct&&(getComputedStyle(ct).position==="static"||ct instanceof HTMLBodyElement);)ct=ct.parentElement;ct||(ct=document.body);const pt=getComputedStyle(ct),ft=coords.get(ct)||getCoords(ct),ht=Math.round(at.top-ft.top)-raw(pt.borderTopWidth),mt=Math.round(at.left-ft.left)-raw(pt.borderLeftWidth);return[ht,mt,ut,dt]}function autoAnimate(st,at={}){return mutations&&resize&&(window.matchMedia("(prefers-reduced-motion: reduce)").matches&&!isPlugin(at)&&!at.disrespectUserMotionPreference||(enabled.add(st),getComputedStyle(st).position==="static"&&Object.assign(st.style,{position:"relative"}),forEach(st,updatePos,poll,ct=>resize==null?void 0:resize.observe(ct)),isPlugin(at)?options.set(st,at):options.set(st,{duration:250,easing:"ease-in-out",...at}),mutations.observe(st,{childList:!0}),parents.add(st))),Object.freeze({parent:st,enable:()=>{enabled.add(st)},disable:()=>{enabled.delete(st)},isEnabled:()=>enabled.has(st)})}function useAutoAnimate(st){const[at,ut]=reactExports.useState(),dt=reactExports.useMemo(()=>st,[]),ct=reactExports.useCallback(ft=>{ft instanceof HTMLElement?ut(autoAnimate(ft,dt)):ut(void 0)},[dt]),pt=reactExports.useCallback(ft=>{at&&(ft?at.enable():at.disable())},[at]);return[ct,pt]}var lib={},renderPropsVersion={},events={};Object.defineProperty(events,"__esModule",{value:!0});events.unlisten=events.listen=void 0;const elementsWithListeners=[],registeredListeners=[];function createListener(st){return{el:st,callbacks:{},realCallbacks:{},realListenersCnt:0}}function addCallback(st,at,ut){if(st.callbacks[at]){st.callbacks[at].indexOf(ut)===-1&&st.callbacks[at].push(ut);return}st.callbacks[at]=[ut],st.realCallbacks[at]=dt=>{for(let ct=0,pt=st.callbacks[at].length;ct0)&&(st.el.removeEventListener(at,st.realCallbacks[at]),delete st.callbacks[at],delete st.realCallbacks[at],st.realListenersCnt-=1))}function addListener(st,at,ut){let dt=elementsWithListeners.indexOf(st);dt===-1&&(dt=elementsWithListeners.length,elementsWithListeners.push(st),registeredListeners.push(createListener(st)));const ct=registeredListeners[dt];addCallback(ct,at,ut)}function removeListener(st,at,ut){const dt=elementsWithListeners.indexOf(st);if(dt===-1)return;const ct=registeredListeners[dt];removeCallback(ct,at,ut),!(ct.realListenersCnt>0)&&(elementsWithListeners.splice(dt,1),registeredListeners.splice(dt,1))}function listen(st,at,ut){for(let dt=0,ct=at.length;dt{if(typeof document<"u"&&document.body){const st=document.body;return typeof st.matches=="function"?"matches":typeof st.webkitMatchesSelector=="function"?"webkitMatchesSelector":typeof st.mozMatchesSelector=="function"?"mozMatchesSelector":typeof st.msMatchesSelector=="function"?"msMatchesSelector":typeof st.oMatchesSelector=="function"?"oMatchesSelector":null}return null})();function find(st,at){if(!st)return null;if(basicSelectors.hasOwnProperty(st))return basicSelectors[st];if(st[0]==="#")return document.getElementById(st.slice(1));if(matchesMethodName===null)return null;let ut=at;for(;ut=ut.parentElement;)if(ut[matchesMethodName](st))return ut||null;return null}find$1.default=find;var getClosestTransformedParent$1={};Object.defineProperty(getClosestTransformedParent$1,"__esModule",{value:!0});function getClosestTransformedParent(st){do{const at=window.getComputedStyle(st);if(at.transform!=="none"||at.webkitTransform!=="none")return st;st=st.parentElement||st.parentNode}while(st!==null&&st.nodeType===1);return null}getClosestTransformedParent$1.default=getClosestTransformedParent;var rect={};Object.defineProperty(rect,"__esModule",{value:!0});rect.isIntersecting=rect.getRect=rect.infiniteRect=void 0;rect.infiniteRect={top:-1/0,bottom:1/0,height:1/0,left:-1/0,right:1/0,width:1/0};function getRect(st){return st&&"getBoundingClientRect"in st&&typeof st.getBoundingClientRect=="function"?st.getBoundingClientRect():st===window||st===document?{top:0,left:0,bottom:window.innerHeight,height:window.innerHeight,width:window.innerWidth,right:window.innerWidth}:{top:0,left:0,right:0,bottom:0,width:0,height:0}}rect.getRect=getRect;function isIntersecting(st,at,ut,dt){const ct=st.top+ut,pt=st.bottom+dt;return ct>=at.top&&ct<=at.bottom||pt>=at.top&&pt<=at.bottom||pt>=at.bottom&&ct<=at.top}rect.isIntersecting=isIntersecting;var __importDefault$1=commonjsGlobal&&commonjsGlobal.__importDefault||function(st){return st&&st.__esModule?st:{default:st}};Object.defineProperty(renderPropsVersion,"__esModule",{value:!0});const react_1=reactExports,events_1=events,find_1=__importDefault$1(find$1),getClosestTransformedParent_1=__importDefault$1(getClosestTransformedParent$1),rect_1=rect,buildTopStyles=(st,at)=>{const{bottomOffset:ut,hideOnBoundaryHit:dt}=at,{top:ct,height:pt,width:ft,boundaryBottom:ht}=st;return dt||ct+pt+ut0?{top:`${ht-pt-ut}px`,width:`${ft}px`,position:"fixed"}:{width:`${ft}px`,bottom:`${ut}px`,position:"absolute"}},buildBottomStyles=(st,at)=>{const{bottomOffset:ut,hideOnBoundaryHit:dt}=at,{bottom:ct,height:pt,width:ft,boundaryTop:ht}=st;return dt||ct-pt-ut>ht?{width:`${ft}px`,top:`${ct-pt}px`,position:"fixed"}:{width:`${ft}px`,top:`${ut}px`,position:"absolute"}},buildStickyStyle=(st,at,ut)=>(st==="top"?buildTopStyles:buildBottomStyles)(ut,at),isEqual=(st,at)=>{const ut=st.wrapperStyles,dt=at.wrapperStyles;if(st.isFixed!==at.isFixed||st.height!==at.height||!ut&&dt||ut&&!dt)return!1;if(!dt)return!0;for(const ct in ut)if(ut.hasOwnProperty(ct)&&ut[ct]!==dt[ct])return!1;return!0};class Sticky extends react_1.Component{constructor(){super(...arguments),this.holderEl=null,this.wrapperEl=null,this.el=null,this.scrollEl=null,this.boundaryEl=null,this.disabled=!1,this.checkPositionIntervalId=null,this.lastMinHeight=null,this.state={isFixed:!1,wrapperStyles:void 0,holderStyles:void 0,height:0},this.holderRef=at=>{at!==this.holderEl&&(this.holderEl=at)},this.wrapperRef=at=>{at!==this.wrapperEl&&(this.wrapperEl=at,this.updateScrollEl(),this.updateBoundaryEl())},this.checkPosition=()=>{const{holderEl:at,wrapperEl:ut,boundaryEl:dt,scrollEl:ct,disabled:pt}=this;if(!ct||!at||!ut){console.error("Missing required elements:",{scrollEl:ct,holderEl:at,wrapperEl:ut});return}const{mode:ft,onFixedToggle:ht,offsetTransforms:mt,isIOSFixEnabled:yt,dontUpdateHolderHeightWhenSticky:bt}=this.props;if(pt){this.state.isFixed&&this.setState({isFixed:!1,wrapperStyles:{}});return}if(!at.getBoundingClientRect||!ut.getBoundingClientRect)return;const Tt=at.getBoundingClientRect(),St=ut.getBoundingClientRect(),At=dt?(0,rect_1.getRect)(dt):rect_1.infiniteRect,vt=(0,rect_1.getRect)(ct),Dt=this.isFixed(Tt,St,At,vt);let Et=null;if(mt&&Dt&&ct instanceof HTMLElement){const kt=(0,getClosestTransformedParent_1.default)(ct);kt&&(Et=(0,rect_1.getRect)(kt))}const _t=this.state.isFixed&&bt&&this.lastMinHeight?this.lastMinHeight:St.height;this.lastMinHeight=_t;const xt=yt?{transform:"translateZ(0)",WebkitTransform:"translateZ(0)"}:void 0,Ct={isFixed:Dt,height:St.height,holderStyles:{minHeight:`${_t}px`},wrapperStyles:Dt?Object.assign(Object.assign({},xt),buildStickyStyle(ft,this.props,{boundaryTop:ft==="bottom"?At.top:0,boundaryBottom:ft==="top"?At.bottom:0,top:ft==="top"?vt.top-(Et?Et.top:0):0,bottom:ft==="bottom"?vt.bottom-(Et?Et.bottom:0):0,width:Tt.width,height:St.height})):xt};Dt!==this.state.isFixed&&ht&&typeof ht=="function"&&ht(Dt),isEqual(this.state,Ct)||this.setState(Ct)}}isFixed(at,ut,dt,ct){const{hideOnBoundaryHit:pt,bottomOffset:ft,topOffset:ht,mode:mt}=this.props;if(this.disabled||pt&&dt&&!(0,rect_1.isIntersecting)(dt,ct,ht,ft))return!1;const yt=pt?ut.height+ft:0;return mt==="top"?at.top+htct.bottom&&ct.bottom-yt>=dt.top}updateScrollEl(){if(!this.wrapperEl)return;this.scrollEl&&((0,events_1.unlisten)(this.scrollEl,["scroll"],this.checkPosition),this.scrollEl=null);const{scrollElement:at}=this.props;typeof at=="string"?this.scrollEl=(0,find_1.default)(at,this.wrapperEl):this.scrollEl=at,this.scrollEl?(0,events_1.listen)(this.scrollEl,["scroll"],this.checkPosition):console.error("Cannot find scrollElement "+(typeof at=="string"?at:"unknown"))}updateBoundaryEl(){if(!this.wrapperEl)return;const{boundaryElement:at}=this.props;this.boundaryEl=(0,find_1.default)(at,this.wrapperEl),(this.boundaryEl===window||this.boundaryEl===document)&&(this.boundaryEl=null)}initialize(){const{positionRecheckInterval:at,disabled:ut}=this.props;this.disabled=ut,(0,events_1.listen)(window,["scroll","resize","pageshow","load"],this.checkPosition),this.checkPosition(),at&&(this.checkPositionIntervalId=setInterval(this.checkPosition,at))}componentDidUpdate({scrollElement:at,boundaryElement:ut,disabled:dt}){(at!==this.props.scrollElement||this.scrollEl===null)&&this.updateScrollEl(),(ut!==this.props.boundaryElement||this.boundaryEl===null)&&this.updateBoundaryEl(),dt!==this.props.disabled&&(this.disabled=this.props.disabled,this.checkPosition())}componentDidMount(){this.initialize(),this.wrapperEl===null&&console.error("Wrapper element is missing, please make sure that you have assigned refs correctly")}componentWillUnmount(){this.scrollEl&&(0,events_1.unlisten)(this.scrollEl,["scroll"],this.checkPosition),(0,events_1.unlisten)(window,["scroll","resize","pageshow","load"],this.checkPosition),this.boundaryEl=null,this.scrollEl=null,this.checkPositionIntervalId&&clearInterval(this.checkPositionIntervalId)}render(){const{holderRef:at,wrapperRef:ut}=this,{isFixed:dt,wrapperStyles:ct,holderStyles:pt}=this.state;return this.props.children({holderRef:at,wrapperRef:ut,isFixed:dt,wrapperStyles:ct,holderStyles:pt})}}Sticky.defaultProps={mode:"top",topOffset:0,bottomOffset:0,isIOSFixEnabled:!0,offsetTransforms:!0,disabled:!1,onFixedToggle:void 0,boundaryElement:void 0,hideOnBoundaryHit:!0,scrollElement:"window",dontUpdateHolderHeightWhenSticky:!1};renderPropsVersion.default=Sticky;var basicVersion={};(function(st){var at=commonjsGlobal&&commonjsGlobal.__rest||function(ft,ht){var mt={};for(var yt in ft)Object.prototype.hasOwnProperty.call(ft,yt)&&ht.indexOf(yt)<0&&(mt[yt]=ft[yt]);if(ft!=null&&typeof Object.getOwnPropertySymbols=="function")for(var bt=0,yt=Object.getOwnPropertySymbols(ft);btdt.default.createElement("div",Object.assign({},Ot,{ref:Yt,style:Qt}),dt.default.createElement("div",Object.assign({},Ot,{className:`${wt} ${zt?$t:""}`,style:zt?Object.assign(Object.assign({},Mt),Lt):Mt,ref:qt}),xt)))}st.default=pt})(basicVersion);var __importDefault=commonjsGlobal&&commonjsGlobal.__importDefault||function(st){return st&&st.__esModule?st:{default:st}};Object.defineProperty(lib,"__esModule",{value:!0});lib.RenderPropSticky=void 0;const render_props_version_1=__importDefault(renderPropsVersion);lib.RenderPropSticky=render_props_version_1.default;const basic_version_1=__importDefault(basicVersion);var _default=lib.default=basic_version_1.default;/*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */var s=function(){return s=Object.assign||function(st){for(var at,ut=1,dt=arguments.length;ut "+f.SCRIPT_NOT_AVAILABLE)}}),function(){d(xt,mt==null?void 0:mt.element)}}m(" recaptcha key not provided")},[dt,pt,vt,Dt,ht,at,mt==null?void 0:mt.element]);var Et=reactExports.useCallback(function(xt){if(!Tt||!Tt.execute)throw new Error(" Google Recaptcha has not been loaded");return Tt.execute(At.current,{action:xt})},[Tt,At]),_t=reactExports.useMemo(function(){return{executeRecaptcha:Tt?Et:void 0,container:mt==null?void 0:mt.element}},[Et,Tt,mt==null?void 0:mt.element]);return React$3.createElement(v.Provider,{value:_t},yt)}var g=function(){return reactExports.useContext(v)};function w(st,at){return st(at={exports:{}},at.exports),at.exports;/** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */}var $=typeof Symbol=="function"&&Symbol.for,C=$?Symbol.for("react.element"):60103,P=$?Symbol.for("react.portal"):60106,x=$?Symbol.for("react.fragment"):60107,E=$?Symbol.for("react.strict_mode"):60108,R=$?Symbol.for("react.profiler"):60114,M=$?Symbol.for("react.provider"):60109,N=$?Symbol.for("react.context"):60110,O=$?Symbol.for("react.async_mode"):60111,_=$?Symbol.for("react.concurrent_mode"):60111,T=$?Symbol.for("react.forward_ref"):60112,j=$?Symbol.for("react.suspense"):60113,L=$?Symbol.for("react.suspense_list"):60120,k=$?Symbol.for("react.memo"):60115,F=$?Symbol.for("react.lazy"):60116,A=$?Symbol.for("react.block"):60121,V=$?Symbol.for("react.fundamental"):60117,z=$?Symbol.for("react.responder"):60118,G=$?Symbol.for("react.scope"):60119;function I(st){if(typeof st=="object"&&st!==null){var at=st.$$typeof;switch(at){case C:switch(st=st.type){case O:case _:case x:case R:case E:case j:return st;default:switch(st=st&&st.$$typeof){case N:case T:case F:case k:case M:return st;default:return at}}case P:return at}}}function D(st){return I(st)===_}var q={AsyncMode:O,ConcurrentMode:_,ContextConsumer:N,ContextProvider:M,Element:C,ForwardRef:T,Fragment:x,Lazy:F,Memo:k,Portal:P,Profiler:R,StrictMode:E,Suspense:j,isAsyncMode:function(st){return D(st)||I(st)===O},isConcurrentMode:D,isContextConsumer:function(st){return I(st)===N},isContextProvider:function(st){return I(st)===M},isElement:function(st){return typeof st=="object"&&st!==null&&st.$$typeof===C},isForwardRef:function(st){return I(st)===T},isFragment:function(st){return I(st)===x},isLazy:function(st){return I(st)===F},isMemo:function(st){return I(st)===k},isPortal:function(st){return I(st)===P},isProfiler:function(st){return I(st)===R},isStrictMode:function(st){return I(st)===E},isSuspense:function(st){return I(st)===j},isValidElementType:function(st){return typeof st=="string"||typeof st=="function"||st===x||st===_||st===R||st===E||st===j||st===L||typeof st=="object"&&st!==null&&(st.$$typeof===F||st.$$typeof===k||st.$$typeof===M||st.$$typeof===N||st.$$typeof===T||st.$$typeof===V||st.$$typeof===z||st.$$typeof===G||st.$$typeof===A)},typeOf:I},B=w(function(st,at){}),J=(B.AsyncMode,B.ConcurrentMode,B.ContextConsumer,B.ContextProvider,B.Element,B.ForwardRef,B.Fragment,B.Lazy,B.Memo,B.Portal,B.Profiler,B.StrictMode,B.Suspense,B.isAsyncMode,B.isConcurrentMode,B.isContextConsumer,B.isContextProvider,B.isElement,B.isForwardRef,B.isFragment,B.isLazy,B.isMemo,B.isPortal,B.isProfiler,B.isStrictMode,B.isSuspense,B.isValidElementType,B.typeOf,w(function(st){st.exports=q})),H={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Q={};Q[J.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},Q[J.Memo]=H;export{easings as $,wordlist as A,useInterval as B,useAsync as C,qe as D,useLocation as E,FetchError$1 as F,reactDomExports as G,Helmet as H,FocusTrap$1 as I,useTranslation as J,useMeasure$1 as K,Link as L,Trans as M,NotFoundError as N,useAsyncFn as O,It as P,purify as Q,parse$1 as R,convert as S,Turnstile as T,detect$1 as U,list as V,subsrt as W,fscreen as X,Hls as Y,detect as Z,useSpring as _,cjs as a,animated as a0,makeProviders as a1,targets as a2,makeStandardFetcher as a3,useCopyToClipboard as a4,Fuse as a5,t$7 as a6,useTimeoutFn as a7,useEffectOnce as a8,to as a9,useMountedState as aa,useParams as ab,generatePath as ac,useWindowSize as ad,React$3 as ae,useAutoAnimate as af,_default as ag,g as ah,h as ai,lazyWithPreload_1 as aj,Routes as ak,Route as al,Navigate as am,createRoot as an,HelmetProvider as ao,BrowserRouter as ap,HashRouter as aq,getDefaultExportFromCjs$1 as ar,commonjsGlobal as as,countryLanguages as b,create$1 as c,iso6393To1 as d,instance as e,initReactI18next as f,classNames as g,jwtDecode as h,immer as i,jsxRuntimeExports as j,setM3U8ProxyUrl as k,slugify as l,makeSimpleProxyFetcher as m,nanoid$2 as n,ofetch as o,persist as p,merge as q,reactExports as r,semver as s,useNavigate as t,u$6 as u,forge as v,pbkdf2Async as w,generateMnemonic as x,validateMnemonic as y,sha256$1 as z}; //# sourceMappingURL=vendor-Dx2ViLO9.js.map