@omnimedia/omnitool 1.1.0-10 → 1.1.0-11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/s/context.ts +0 -7
- package/s/demo/demo.bundle.ts +30 -5
- package/s/demo/routines/waveform-test.ts +3 -2
- package/s/driver/driver.ts +2 -2
- package/s/timeline/parts/compositor/export.ts +5 -5
- package/s/timeline/parts/compositor/playback.ts +6 -7
- package/s/timeline/parts/compositor/samplers/webcodecs.ts +5 -4
- package/s/timeline/parts/waveform.ts +2 -3
- package/s/timeline/sugar/omni-test.ts +3 -1
- package/s/timeline/sugar/omni.ts +6 -1
- package/x/context.d.ts +1 -4
- package/x/context.js +1 -5
- package/x/context.js.map +1 -1
- package/x/demo/demo.bundle.js +18 -6
- package/x/demo/demo.bundle.js.map +1 -1
- package/x/demo/demo.bundle.min.js +577 -9
- package/x/demo/demo.bundle.min.js.map +4 -4
- package/x/demo/routines/waveform-test.d.ts +2 -1
- package/x/demo/routines/waveform-test.js +2 -2
- package/x/demo/routines/waveform-test.js.map +1 -1
- package/x/driver/driver.d.ts +1 -1
- package/x/driver/driver.js +1 -1
- package/x/driver/driver.js.map +1 -1
- package/x/index.html +2 -2
- package/x/timeline/parts/compositor/export.d.ts +3 -1
- package/x/timeline/parts/compositor/export.js +6 -6
- package/x/timeline/parts/compositor/export.js.map +1 -1
- package/x/timeline/parts/compositor/playback.d.ts +4 -2
- package/x/timeline/parts/compositor/playback.js +7 -8
- package/x/timeline/parts/compositor/playback.js.map +1 -1
- package/x/timeline/parts/compositor/samplers/webcodecs.d.ts +2 -1
- package/x/timeline/parts/compositor/samplers/webcodecs.js +1 -4
- package/x/timeline/parts/compositor/samplers/webcodecs.js.map +1 -1
- package/x/timeline/parts/waveform.d.ts +2 -1
- package/x/timeline/parts/waveform.js +1 -3
- package/x/timeline/parts/waveform.js.map +1 -1
- package/x/timeline/sugar/omni-test.js +3 -1
- package/x/timeline/sugar/omni-test.js.map +1 -1
- package/x/timeline/sugar/omni.d.ts +3 -0
- package/x/timeline/sugar/omni.js +6 -1
- package/x/timeline/sugar/omni.js.map +1 -1
- package/s/tools/common/loader.ts +0 -26
- package/s/tools/common/transformer-pipeline.ts +0 -26
- package/s/tools/speech-recognition/common/model.ts +0 -26
- package/s/tools/speech-recognition/whisper/fns/host.ts +0 -25
- package/s/tools/speech-recognition/whisper/fns/schematic.ts +0 -23
- package/s/tools/speech-recognition/whisper/fns/work.ts +0 -91
- package/s/tools/speech-recognition/whisper/parts/types.ts +0 -38
- package/s/tools/speech-recognition/whisper/parts/worker.bundle.ts +0 -7
- package/s/tools/speech-recognition/whisper/tool.ts +0 -70
- package/x/tools/common/loader.d.ts +0 -19
- package/x/tools/common/loader.js +0 -18
- package/x/tools/common/loader.js.map +0 -1
- package/x/tools/common/transformer-pipeline.d.ts +0 -8
- package/x/tools/common/transformer-pipeline.js +0 -24
- package/x/tools/common/transformer-pipeline.js.map +0 -1
- package/x/tools/speech-recognition/common/model.d.ts +0 -14
- package/x/tools/speech-recognition/common/model.js +0 -16
- package/x/tools/speech-recognition/common/model.js.map +0 -1
- package/x/tools/speech-recognition/whisper/fns/host.d.ts +0 -13
- package/x/tools/speech-recognition/whisper/fns/host.js +0 -19
- package/x/tools/speech-recognition/whisper/fns/host.js.map +0 -1
- package/x/tools/speech-recognition/whisper/fns/schematic.d.ts +0 -19
- package/x/tools/speech-recognition/whisper/fns/schematic.js +0 -2
- package/x/tools/speech-recognition/whisper/fns/schematic.js.map +0 -1
- package/x/tools/speech-recognition/whisper/fns/work.d.ts +0 -12
- package/x/tools/speech-recognition/whisper/fns/work.js +0 -74
- package/x/tools/speech-recognition/whisper/fns/work.js.map +0 -1
- package/x/tools/speech-recognition/whisper/parts/types.d.ts +0 -31
- package/x/tools/speech-recognition/whisper/parts/types.js +0 -2
- package/x/tools/speech-recognition/whisper/parts/types.js.map +0 -1
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.d.ts +0 -1
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.js +0 -4
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.js.map +0 -1
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js +0 -8
- package/x/tools/speech-recognition/whisper/parts/worker.bundle.min.js.map +0 -7
- package/x/tools/speech-recognition/whisper/tool.d.ts +0 -12
- package/x/tools/speech-recognition/whisper/tool.js +0 -63
- package/x/tools/speech-recognition/whisper/tool.js.map +0 -1
|
@@ -1,11 +1,579 @@
|
|
|
1
|
-
function un(r,e){return{error:t=>r.error({...e,...t}),rpcRequest:t=>r.rpcRequest({...e,...t}),rpcError:t=>r.rpcError({...e,...t})}}var Gt=()=>r=>({plain:r.none,errMessage:r.mix(r.brightRed,r.bold),errName:r.red,errStack:r.mix(r.red,r.dim),timestamp:r.blue,timestampErr:r.red});function cs(){return Gt()}var Se=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var Xt=()=>({none:r=>r,uncolor:ji,mix:$i,hex:Ki,rgb:ls,bgRgb:Gi});function ji(r){return r.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function $i(...r){return e=>{for(let t of r)e=t(e);return e}}function Ki(r){r=r.replace(/^#/,"");let e,t,n,s;if(r.length===3)e=parseInt(r.split("").map(a=>a+a).join(""),16);else if(r.length===6)e=parseInt(r,16);else throw new Error("Invalid hex color");return t=e>>16&255,n=e>>8&255,s=e&255,ls(t,n,s)}function ls(r,e,t){let n=`\x1B[38;2;${r};${e};${t}m`;return s=>`${n}${s}${Se.reset}`}function Gi(r,e,t){let n=`\x1B[48;2;${r};${e};${t}m`;return s=>`${n}${s}${Se.reset}`}var St={...Object.fromEntries(Object.entries(Se).map(([r])=>[r,e=>e])),...Xt()};var Tt={...Object.fromEntries(Object.entries(Se).map(([r,e])=>[r,t=>`${e}${t}${Se.reset}`])),...Xt()};function dn(){return typeof Deno<"u"&&typeof Deno.version<"u"}function fn(){return typeof process<"u"&&process.versions&&process.versions.node}function us(){return fn()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":dn()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var mn=()=>us()?Tt:St;var Qt=()=>({colors:r,theme:e})=>{let t=e(r);function n(i){let o=i.stack?`
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
`)
|
|
5
|
-
`))
|
|
6
|
-
`),stderr:async r=>void process.stderr.write(r+`
|
|
7
|
-
`)});var er=()=>({stdout:async r=>console.log(r),stderr:async r=>console.error(r)});var fs=()=>dn()?Yt():fn()?Jt():er();var ms=()=>({stdout:async()=>{},stderr:async()=>{}});function hs(){return()=>({stdout:r=>r,stderr:r=>r})}var Xe=class r{static writers={auto:fs,void:ms,deno:Yt,node:Jt,console:er};static colors={auto:mn,colorful:()=>Tt,colorless:()=>St};static themes={auto:cs,basic:Gt};static shapers={auto:ds,none:hs,errors:Qt,timestamp:Zt};writer=r.writers.auto();colors=r.colors.auto();theme=r.themes.auto();shaper=r.shapers.auto();async log(...e){await this.writer.stdout(this.shaper(this).stdout(e).join(" "))}async error(...e){await this.writer.stderr(this.shaper(this).stderr(e).join(" "))}setWriter(e){return this.writer=e,this}setColors(e){return this.colors=e,this}setTheme(e){return this.theme=e,this}setShaper(...e){return this.shaper=Pt(...e),this}};var Ct=class extends Xe{static dummy(){return new this().setWriter(Xe.writers.void())}rpcRequest=async({request:e,...t})=>{let n=this.colors.none;this.log(...this.#e(t),n(`${e.method}()`))};rpcError=async({request:e,error:t,...n})=>{this.error(...this.#e(n),`${e.method}()`,t)};#e({meta:e,label:t,remote:n}){let s=this.colors.mix(this.colors.blue,this.colors.dim),a=this.colors.mix(this.colors.cyan,this.colors.dim);return[e?this.#t(e):void 0,t||void 0,n===void 0?void 0:n?s("<-"):a("->")].filter(Boolean)}#t(e){let{headers:t}=e.request;return[this.colors.yellow(`[${e.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var oe=class extends Ct{rpcRequest=async()=>{}};var ce=Object.freeze({eq(r,e){if(r.length!==e.length)return!1;for(let t=0;t<=r.length;t++)if(r.at(t)!==e.at(t))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var De=Object.freeze({fromBytes(r){return[...r].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=parseInt(r.slice(t,t+2),16);return e},random(r=32){return this.fromBytes(ce.random(r))},string(r){return De.fromBytes(r)},bytes(r){return De.toBytes(r)}});var hn=58,tr="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",pn=Object.freeze({fromBytes(r){let e=BigInt("0x"+De.fromBytes(r)),t="";for(;e>0;){let n=e%BigInt(hn);e=e/BigInt(hn),t=tr[Number(n)]+t}for(let n of r)if(n===0)t=tr[0]+t;else break;return t},toBytes(r){let e=BigInt(0);for(let i of r){let o=tr.indexOf(i);if(o===-1)throw new Error(`Invalid character '${i}' in base58 string`);e=e*BigInt(hn)+BigInt(o)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let n=De.toBytes(t),s=0;for(let i of r)if(i===tr[0])s++;else break;let a=new Uint8Array(s+n.length);return a.set(n,s),a},random(r=32){return this.fromBytes(ce.random(r))},string(r){return pn.fromBytes(r)},bytes(r){return pn.toBytes(r)}});var ps=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,n)=>[t,n])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,c=0,l=[];for(let u of e){if(u===this.lexicon.padding?.character)continue;let d=this.lookup[u];if(d===void 0)throw new Error(`Invalid character: ${u}`);for(o=o<<t|d,c+=t;c>=8;)c-=8,l.push(o>>c&255)}return new Uint8Array(l)}let n=0n,s=BigInt(this.lexicon.characters.length),a=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),a=!0);for(let o of e){let c=this.lookup[o];if(c===void 0)throw new Error(`Invalid character: ${o}`);n=n*s+BigInt(c)}let i=[];for(;n>0n;)i.unshift(Number(n%256n)),n=n/256n;return new Uint8Array(i)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let i=0,o=0,c="";for(let l of e)for(i=i<<8|l,o+=8;o>=t;){o-=t;let u=i>>o&(1<<t)-1;c+=this.lexicon.characters[u]}if(o>0){let l=i<<t-o&(1<<t)-1;c+=this.lexicon.characters[l]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let n=0n;for(let i of e)n=(n<<8n)+BigInt(i);if(n===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),a="";for(;n>0n;)a=this.lexicon.characters[Number(n%s)]+a,n=n/s;return a}toInteger(e){if(!e)return 0;let t=0n,n=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let i=this.lookup[a];if(i===void 0)throw new Error(`Invalid character: ${a}`);t=t*s+BigInt(i)}return Number(n?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,n=BigInt(t?-e:e);if(n===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),a="";for(;n>0n;)a=this.lexicon.characters[Number(n%s)]+a,n=n/s;return t?`${this.negativePrefix}${a}`:a}random(e=32){return this.fromBytes(ce.random(e))}};var gn=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(ce.random(r))},string(r){return gn.fromBytes(r)},bytes(r){return gn.toBytes(r)}});var gs=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return gs.fromBytes(r)},bytes(r){return gs.toBytes(r)}});var rr=Object.freeze({set:r=>r!=null,unset:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});var vt=class extends Error{milliseconds;name=this.constructor.name;constructor(e){super(`deadline exceeded (${(e/1e3).toFixed(1)} seconds)`),this.milliseconds=e}};function nr(r,e){return r<=0||r===1/0?e():new Promise((t,n)=>{let s=setTimeout(()=>n(new vt(r)),r);e().then(t).catch(n).finally(()=>clearTimeout(s))})}function Be(){let r,e,t=new Promise((s,a)=>{r=s,e=a});function n(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:n}}function bs(r,e){let t=r;for(let n of e)if(t=t[n],rr.unset(t))break;return t}function Qi(r){return{map:e=>ys(r,e),filter:e=>ks(r,e)}}Qi.pipe=Object.freeze({map:r=>e=>ys(e,r),filter:r=>e=>ks(e,r)});var ys=(r,e)=>Object.fromEntries(Object.entries(r).map(([t,n])=>[t,e(n,t)])),ks=(r,e)=>Object.fromEntries(Object.entries(r).filter(([t,n])=>e(n,t)));function Zi(){let r=new Set;function e(a){return r.add(a),()=>{r.delete(a)}}async function t(...a){await Promise.all([...r].map(i=>i(...a)))}async function n(){let{promise:a,resolve:i}=Be(),o=e((...c)=>{i(c),o()});return a}function s(){r.clear()}return e.pub=t,e.sub=e,e.on=e,e.next=n,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.next=n,t.clear=s,[t,e]}function sr(r){let e=Zi()[0];return r&&e.sub(r),e}var fe=class{#e=[];add(...e){return this.#e.push(...e),this}disposable(e){return this.bag(e,()=>e.dispose())}bag(e,t){return this.add(()=>t(e)),e}dispose(){for(let e of this.#e.reverse())e();this.#e=[]}};var Te;(function(r){r.version="2.0";function e(t){return"id"in t?t.id:null}r.getId=e,r.errorCodes={serverError:-32e3,unexposedError:-32001}})(Te||(Te={}));var ir=class extends Error{name=this.constructor.name},Re=class extends Error{name=this.constructor.name};async function xs({tap:r,request:e,action:t}){let n=Te.getId(e);try{let s=await t();return n===null?null:{id:n,result:s,jsonrpc:Te.version}}catch(s){return r.rpcError({request:e,error:s}),n===null?null:{id:n,jsonrpc:Te.version,error:s instanceof ir?{code:Te.errorCodes.serverError,message:s.message}:{code:Te.errorCodes.unexposedError,message:"unexposed error"}}}}function ar(r){let e=r.tap??new oe;return async t=>{let n=t.method.split("."),s=bs(r.fns,n),a=async()=>await s(...t.params);return e.rpcRequest({request:t}),await xs({tap:e,request:t,action:a})}}var Oe=Symbol("tune"),Yi=Symbol("query"),Ji=Symbol("notify"),ea=Symbol("settings");function ws(r){function e(t){let n={notify:void 0};return new Proxy(()=>{},{apply:(s,a,i)=>r(t,i,n),get:(s,a)=>{if(a!=="then")return a===Oe?i=>(...o)=>r(t,o,{...n,...i}):a===Ji?(...i)=>r(t,i,{...n,notify:!0}):a===Yi?(...i)=>r(t,i,{...n,notify:!1}):a===ea?n:(s[a]||(s[a]=e([...t,a])),s[a])},set:(s,a,i)=>(s[a]=i,!0)})}return e([])}function ze(r){let{endpoint:e,tap:t=new oe}=r,n=1;return ws(async(s,a,i)=>{let o=i.notify??r.notify??!1,c=i.transfer,l={jsonrpc:"2.0",method:s.join("."),params:a},u=o?l:{...l,id:n++};t.rpcRequest({request:u});let d=await e(u,{transfer:c});if(o&&!d)return null;if(!d)throw new Re("response was null, but shouldn't be, because the request was not a notification");if("error"in d)throw new Re(r.label?`${r.label}: ${d.error.message}`:d.error.message);return d.result})}function It(r){return ze({endpoint:ar(r),tap:r.tap})}var Me=class{recv=sr();sendRequest=sr();sendResponse=sr();static makeEntangledPair({origin:e="example.e280.org"}={}){let t=new this,n=new this,s=[t.sendRequest.sub(i=>n.recv(i,{origin:e})),t.sendResponse.sub(i=>n.recv(i,{origin:e})),n.sendRequest.sub(i=>t.recv(i,{origin:e})),n.sendResponse.sub(i=>t.recv(i,{origin:e}))];return[t,n,()=>s.forEach(i=>i())]}};function or(r,e){return r.addEventListener("message",e),()=>r.removeEventListener("message",e)}function Ss(r,e){return async(t,{transfer:n}={})=>{if("id"in t){let s=Be();return e(t,n,s.promise),r.wait(t.id,t.method).then(a=>(s.resolve(a),a))}else{let s=Promise.resolve(null);return e(t,n,s),s}}}function Ts(r){let e=[],t=[];for(let n of Array.isArray(r)?r:[r])"method"in n?e.push(n):t.push(n);return{requests:e,responses:t}}async function Ps(r,e){let t=(await Promise.all(e.map(async n=>r(n)))).filter(n=>n!==null);return t.length===0?null:t.length===1?t[0]:t}var Qe=class extends Me{#e=new fe;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,n)=>e.postMessage(t,n)),this.sendResponse.sub((t,n)=>e.postMessage(t,n)),or(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var cr=class{remote;transfer;constructor(e){this.remote=e}};var bn=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var lr=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let n=Be();return this.pending.set(e,{method:t,deferred:n}),await nr(this.timeout,()=>n.promise).catch(s=>{throw s instanceof vt&&(s.message=`request #${e} ${t}(), ${s.message}`),s})}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new Re(e.error.message)):t.deferred.resolve(e))}};var Ne=class{options;remote;remoteEndpoint;#e;#t=new fe;constructor(e){this.options=e;let{conduit:t,tap:n}=e;this.#e=new lr(e.timeout??bn.timeout),this.remoteEndpoint=Ss(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=ze({endpoint:this.remoteEndpoint,tap:n&&un(n,{remote:!0})}),this.#t.add(t.recv.sub(s=>this.recv(s)))}async recv(e){let t=new cr(this.remote),{conduit:n,rpc:s,tap:a}=this.options,{requests:i,responses:o}=Ts(e);for(let d of o)this.#e.deliverResponse(d);if(!s)return;let c=await s(t),l=ar({fns:c,tap:a&&un(a,{remote:!1})}),u=await Ps(l,i);u&&await n.sendResponse(u,t.transfer)}dispose(){this.#t.dispose()}};var me={derive:{host:r=>({host:r.remote.host,get transfer(){return r.transfer},set transfer(e){r.transfer=e}}),work:r=>({work:r.remote,get transfer(){return r.transfer},set transfer(e){r.transfer=e}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var he=new oe;async function Cs(r,e,t={}){let n=t.tap??he,s=new Ne({tap:n,timeout:t.timeout??1/0,conduit:new Qe(r.getSelf()),rpc:async a=>e(me.derive.host(a))});return await s.remote.infra.ready(),s.remote.host}var le=Object.freeze({eq(r,e){if(r.length!==e.length)return!1;for(let t=0;t<=r.length;t++)if(r.at(t)!==e.at(t))return!1;return!0},random(r){return crypto.getRandomValues(new Uint8Array(r))}});var Ve=Object.freeze({fromBytes(r){return[...r].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(r){if(r.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(r.length/2);for(let t=0;t<r.length;t+=2)e[t/2]=parseInt(r.slice(t,t+2),16);return e},random(r=32){return this.fromBytes(le.random(r))},string(r){return Ve.fromBytes(r)},bytes(r){return Ve.toBytes(r)}});var yn=58,ur="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",kn=Object.freeze({fromBytes(r){let e=BigInt("0x"+Ve.fromBytes(r)),t="";for(;e>0;){let n=e%BigInt(yn);e=e/BigInt(yn),t=ur[Number(n)]+t}for(let n of r)if(n===0)t=ur[0]+t;else break;return t},toBytes(r){let e=BigInt(0);for(let i of r){let o=ur.indexOf(i);if(o===-1)throw new Error(`Invalid character '${i}' in base58 string`);e=e*BigInt(yn)+BigInt(o)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let n=Ve.toBytes(t),s=0;for(let i of r)if(i===ur[0])s++;else break;let a=new Uint8Array(s+n.length);return a.set(n,s),a},random(r=32){return this.fromBytes(le.random(r))},string(r){return kn.fromBytes(r)},bytes(r){return kn.toBytes(r)}});var vs=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,n)=>[t,n])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,c=0,l=[];for(let u of e){if(u===this.lexicon.padding?.character)continue;let d=this.lookup[u];if(d===void 0)throw new Error(`Invalid character: ${u}`);for(o=o<<t|d,c+=t;c>=8;)c-=8,l.push(o>>c&255)}return new Uint8Array(l)}let n=0n,s=BigInt(this.lexicon.characters.length),a=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),a=!0);for(let o of e){let c=this.lookup[o];if(c===void 0)throw new Error(`Invalid character: ${o}`);n=n*s+BigInt(c)}let i=[];for(;n>0n;)i.unshift(Number(n%256n)),n=n/256n;return new Uint8Array(i)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let i=0,o=0,c="";for(let l of e)for(i=i<<8|l,o+=8;o>=t;){o-=t;let u=i>>o&(1<<t)-1;c+=this.lexicon.characters[u]}if(o>0){let l=i<<t-o&(1<<t)-1;c+=this.lexicon.characters[l]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let n=0n;for(let i of e)n=(n<<8n)+BigInt(i);if(n===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),a="";for(;n>0n;)a=this.lexicon.characters[Number(n%s)]+a,n=n/s;return a}toInteger(e){if(!e)return 0;let t=0n,n=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let i=this.lookup[a];if(i===void 0)throw new Error(`Invalid character: ${a}`);t=t*s+BigInt(i)}return Number(n?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,n=BigInt(t?-e:e);if(n===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),a="";for(;n>0n;)a=this.lexicon.characters[Number(n%s)]+a,n=n/s;return t?`${this.negativePrefix}${a}`:a}random(e=32){return this.fromBytes(le.random(e))}};var xn=Object.freeze({fromBytes(r){return typeof btoa=="function"?btoa(String.fromCharCode(...r)):Buffer.from(r).toString("base64")},toBytes(r){return typeof atob=="function"?Uint8Array.from(atob(r),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(r,"base64"))},random(r=32){return this.fromBytes(le.random(r))},string(r){return xn.fromBytes(r)},bytes(r){return xn.toBytes(r)}});var Is=Object.freeze({fromBytes(r){return new TextDecoder().decode(r)},toBytes(r){return new TextEncoder().encode(r)},string(r){return Is.fromBytes(r)},bytes(r){return Is.toBytes(r)}});var wn=Object.freeze({set:r=>r!=null,unset:r=>r==null,boolean:r=>typeof r=="boolean",number:r=>typeof r=="number",string:r=>typeof r=="string",bigint:r=>typeof r=="bigint",object:r=>typeof r=="object"&&r!==null,array:r=>Array.isArray(r),fn:r=>typeof r=="function",symbol:r=>typeof r=="symbol"});function Es(r){let e=Promise.resolve();return(...t)=>{let n=()=>r(...t),s=e.then(n);return e=s.catch(()=>{}),s}}function _s(...r){return(...e)=>r.forEach(t=>t(...e))}function Ze(){let r,e,t=new Promise((s,a)=>{r=s,e=a});function n(s){return s.then(r).catch(e),t}return{promise:t,resolve:r,reject:e,entangle:n}}function sa(r){return{map:e=>As(r,e),filter:e=>Fs(r,e)}}sa.pipe=Object.freeze({map:r=>e=>As(e,r),filter:r=>e=>Fs(e,r)});var As=(r,e)=>Object.fromEntries(Object.entries(r).map(([t,n])=>[t,e(n,t)])),Fs=(r,e)=>Object.fromEntries(Object.entries(r).filter(([t,n])=>e(n,t)));function ia(){let r=new Set;function e(a){return r.add(a),()=>{r.delete(a)}}async function t(...a){await Promise.all([...r].map(i=>i(...a)))}async function n(){let{promise:a,resolve:i}=Ze(),o=e((...c)=>{i(c),o()});return a}function s(){r.clear()}return e.pub=t,e.sub=e,e.on=e,e.next=n,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.next=n,t.clear=s,[t,e]}function Sn(r){let e=ia()[1];return r&&e.sub(r),e}var Ye=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let n=t.tap??he,s=t.label??"comrade",a=e.loadWorker(t.workerUrl,s),i=Ze(),o={async ready(){i.resolve()}},c=new Ne({tap:n,timeout:t.timeout??1/0,conduit:new Qe(a),rpc:async l=>({infra:o,host:t.setupHost(me.derive.work(l))})});return await i.promise,new this(a,c)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var dr=class{threads;static async make(e,t){let n=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(n)].map(async(a,i)=>Ye.make(e,{...t,label:t.label??`${t.label??"comrade"}_${i+1}`})));return new this(s,{tap:t.tap})}work;#e=new Set;#t=[];constructor(e,t={}){this.threads=e;let n=t.tap??he,s=async(a,i)=>this.#r({request:a,prom:Ze(),transfer:i?.transfer});this.work=ze({tap:n,endpoint:s}),e.forEach(a=>this.#e.add(a))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#r(e){return this.#t.push(e),this.#n(),e.prom.promise}#n(){for(;this.#e.size>0&&this.#t.length>0;){let e=[...this.#e].pop();this.#e.delete(e);let t=this.#t.shift();this.#e.delete(e);let n=e.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(n).finally(()=>{this.#e.add(e),this.#n()})}}};var Ds=r=>({thread:e=>Ye.make(r,e),cluster:e=>dr.make(r,e),worker:(e,t={})=>Cs(r,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:n,tap:s=he}=e,a=me.mock.host(),i=me.mock.work();return i.work=It({tap:s,fns:t(a)}),a.host=It({tap:s,fns:n(i)}),{workShell:i,hostShell:a,work:i.work,host:a.host}},mockWork(e,t=he){let n=me.mock.host(),s=me.mock.work();return s.work=It({tap:t,fns:e(n)}),{workShell:s,hostShell:n,work:s.work,mockHost:a=>(n.host=It({tap:t,fns:a(s)}),{workShell:s,hostShell:n,work:s.work,host:n.host})}}});var Bs=()=>({getSelf(){return self},guessOptimalThreadCount(){let r=navigator.hardwareConcurrency??1;return Math.max(1,r-1)},loadWorker(r,e){return new window.Worker(r,{name:e,type:"module"})},async loadWasm(r){return WebAssembly.instantiateStreaming(fetch(r))}});var aa=Bs(),Je=Ds(aa);function b(r){if(!r)throw new Error("Assertion failed.")}var mr=r=>{let e=(r%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${r}.`)},W=r=>r&&r[r.length-1];var U=class r{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),t=this.bytes[e]??0,n=7-(this.pos&7),s=(t&1<<n)>>n;return this.pos++,s}readBits(e){if(e===1)return this.readBit();let t=0;for(let n=0;n<e;n++)t<<=1,t|=this.readBit();return t}writeBits(e,t){let n=this.pos+e;for(let s=this.pos;s<n;s++){let a=Math.floor(s/8),i=this.bytes[a],o=7-(s&7);i&=~(1<<o),i|=(t&1<<n-s-1)>>n-s-1<<o,this.bytes[a]=i}this.pos=n}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,t=this.bytes[e]??0;return this.pos+=8,t}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new r(this.bytes);return e.pos=this.pos,e}},I=r=>{let e=0;for(;r.readBits(1)===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+r.readBits(e)},et=r=>{let e=I(r);return(e&1)===0?-(e>>1):e+1>>1};var Pe=r=>r instanceof Uint8Array?r:r instanceof ArrayBuffer?new Uint8Array(r):new Uint8Array(r.buffer,r.byteOffset,r.byteLength),z=r=>r instanceof DataView?r:r instanceof ArrayBuffer?new DataView(r):new DataView(r.buffer,r.byteOffset,r.byteLength),G=new TextDecoder,oa=new TextEncoder;var Pn=r=>Object.fromEntries(Object.entries(r).map(([e,t])=>[t,e])),Cn={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},hr=Pn(Cn),vn={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},pr=Pn(vn),In={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},gr=Pn(In);var En=r=>r instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&r instanceof SharedArrayBuffer||ArrayBuffer.isView(r),ee=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,t=new Promise(s=>{e=s}),n=this.currentPromise;return this.currentPromise=t,await n,e}},_n=r=>[...r].map(e=>e.toString(16).padStart(2,"0")).join(""),An=r=>(r=r>>1&1431655765|(r&1431655765)<<1,r=r>>2&858993459|(r&858993459)<<2,r=r>>4&252645135|(r&252645135)<<4,r=r>>8&16711935|(r&16711935)<<8,r=r>>16&65535|(r&65535)<<16,r>>>0),M=(r,e,t)=>{let n=0,s=r.length-1,a=-1;for(;n<=s;){let i=n+s>>1,o=t(r[i]);o===e?(a=i,s=i-1):o<e?n=i+1:s=i-1}return a},R=(r,e,t)=>{let n=0,s=r.length-1,a=-1;for(;n<=s;){let i=n+(s-n+1)/2|0;t(r[i])<=e?(a=i,n=i+1):s=i-1}return a},te=(r,e,t)=>{let n=R(r,t(e),t);r.splice(n+1,0,e)},X=()=>{let r,e;return{promise:new Promise((n,s)=>{r=n,e=s}),resolve:r,reject:e}};var Fn=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return r[t]},br=(r,e)=>{for(let t=r.length-1;t>=0;t--)if(e(r[t]))return t;return-1},Rs=async function*(r){Symbol.iterator in r?yield*r[Symbol.iterator]():yield*r[Symbol.asyncIterator]()},Os=r=>{if(!(Symbol.iterator in r)&&!(Symbol.asyncIterator in r))throw new TypeError("Argument must be an iterable or async iterable.")},Et=r=>{throw new Error(`Unexpected value: ${r}`)};var Dn=(r,e)=>({async next(){let t=await r.next();return t.done?{value:void 0,done:!0}:{value:e(t.value),done:!1}},return(){return r.return()},throw(t){return r.throw(t)},[Symbol.asyncIterator](){return this}}),yr=(r,e,t)=>Math.max(e,Math.min(t,r)),q="und",Ue=(r,e)=>{let t=10**e;return Math.round(r*t)/t},zs=(r,e)=>Math.round(r/e)*e,Ms=r=>{let e=0;for(;r;)e++,r>>=1;return e},ca=/^[a-z]{3}$/,kr=r=>ca.test(r),Ce=1e6*(1+Number.EPSILON),xr=(r,e)=>{let t={...r};for(let n in e)typeof r[n]=="object"&&r[n]!==null&&typeof e[n]=="object"&&e[n]!==null?t[n]=xr(r[n],e[n]):t[n]=e[n];return t},Bn=async(r,e,t)=>{let n=0;for(;;)try{return await fetch(r,e)}catch(s){n++;let a=t(n);if(a===null)throw s;if(console.error("Retrying failed fetch. Error:",s),!Number.isFinite(a)||a<0)throw new TypeError("Retry delay must be a non-negative finite number.");a>0&&await new Promise(i=>setTimeout(i,1e3*a))}};var fr=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}},Tn=null,wr=()=>{if(Tn!==null)return Tn;let r=!!(typeof navigator<"u"&&navigator.vendor?.match(/apple/i)&&!navigator.userAgent?.match(/crios/i)&&!navigator.userAgent?.match(/fxios/i)&&!navigator.userAgent?.match(/Opera|OPT\//));return Tn=r,r},Le=(r,e)=>r!==-1?r:e,Sr=(r,e,t,n)=>r<=n&&t<=e;var Ns=r=>{let e=atob(r),t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t};var ve=class{constructor(e,t){this.data=e,this.mimeType=t}};var At=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],la=["aac","opus","mp3","vorbis","flac"],fp=[...la,...At];var He=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}];var Vs=".01.01.01.01.00",Us=".0.110.01.01.01.0";var Tr=r=>{let{codec:e,codecDescription:t,colorSpace:n,avcCodecInfo:s,hevcCodecInfo:a,vp9CodecInfo:i,av1CodecInfo:o}=r;if(e==="avc"){if(s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc1.${_n(c)}`}if(!t||t.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc1.${_n(t.subarray(1,4))}`}else if(e==="hevc"){let c,l,u,d,f,m;if(a)c=a.generalProfileSpace,l=a.generalProfileIdc,u=An(a.generalProfileCompatibilityFlags),d=a.generalTierFlag,f=a.generalLevelIdc,m=[...a.generalConstraintIndicatorFlags];else{if(!t||t.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let g=z(t),y=g.getUint8(1);c=y>>6&3,l=y&31,u=An(g.getUint32(2)),d=y>>5&1,f=g.getUint8(12),m=[];for(let S=0;S<6;S++)m.push(g.getUint8(6+S))}let h="hev1.";for(h+=["","A","B","C"][c]+l,h+=".",h+=u.toString(16).toUpperCase(),h+=".",h+=d===0?"L":"H",h+=f;m.length>0&&m[m.length-1]===0;)m.pop();return m.length>0&&(h+=".",h+=m.map(g=>g.toString(16).toUpperCase()).join(".")),h}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!i){let S=r.width*r.height,p=W(He).level;for(let w of He)if(S<=w.maxPictureSize){p=w.level;break}return`vp09.00.${p.toString().padStart(2,"0")}.08`}let c=i.profile.toString().padStart(2,"0"),l=i.level.toString().padStart(2,"0"),u=i.bitDepth.toString().padStart(2,"0"),d=i.chromaSubsampling.toString().padStart(2,"0"),f=i.colourPrimaries.toString().padStart(2,"0"),m=i.transferCharacteristics.toString().padStart(2,"0"),h=i.matrixCoefficients.toString().padStart(2,"0"),g=i.videoFullRangeFlag.toString().padStart(2,"0"),y=`vp09.${c}.${l}.${u}.${d}`;return y+=`.${f}.${m}.${h}.${g}`,y.endsWith(Vs)&&(y=y.slice(0,-Vs.length)),y}else if(e==="av1"){if(!o){let w=r.width*r.height,k=W(He).level;for(let x of He)if(w<=x.maxPictureSize){k=x.level;break}return`av01.0.${k.toString().padStart(2,"0")}M.08`}let c=o.profile,l=o.level.toString().padStart(2,"0"),u=o.tier?"H":"M",d=o.bitDepth.toString().padStart(2,"0"),f=o.monochrome?"1":"0",m=100*o.chromaSubsamplingX+10*o.chromaSubsamplingY+1*(o.chromaSubsamplingX&&o.chromaSubsamplingY?o.chromaSamplePosition:0),h=n?.primaries?Cn[n.primaries]:1,g=n?.transfer?vn[n.transfer]:1,y=n?.matrix?In[n.matrix]:1,S=n?.fullRange?1:0,p=`av01.${c}.${l}${u}.${d}`;return p+=`.${f}.${m.toString().padStart(3,"0")}`,p+=`.${h.toString().padStart(2,"0")}`,p+=`.${g.toString().padStart(2,"0")}`,p+=`.${y.toString().padStart(2,"0")}`,p+=`.${S}`,p.endsWith(Us)&&(p=p.slice(0,-Us.length)),p}}throw new TypeError(`Unhandled codec '${e}'.`)};var Pr=r=>{let{codec:e,codecDescription:t,aacCodecInfo:n}=r;if(e==="aac"){if(!n)throw new TypeError("AAC codec info must be provided.");return n.isMpeg2?"mp4a.67":`mp4a.40.${On(t).objectType}`}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e&&At.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},_t=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Rn=[-1,1,2,3,4,5,6,8],On=r=>{if(!r||r.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new U(r),t=e.readBits(5);t===31&&(t=32+e.readBits(6));let n=e.readBits(4),s=null;n===15?s=e.readBits(24):n<_t.length&&(s=_t[n]);let a=e.readBits(4),i=null;return a>=1&&a<=7&&(i=Rn[a]),{objectType:t,frequencyIndex:n,sampleRate:s,channelConfiguration:a,numberOfChannels:i}},Ls=48e3,ua=/^pcm-([usf])(\d+)+(be)?$/,Hs=r=>{if(b(At.includes(r)),r==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(r==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=ua.exec(r);b(e);let t;e[1]==="u"?t="unsigned":e[1]==="s"?t="signed":t="float";let n=Number(e[2])/8,s=e[3]!=="be",a=r==="pcm-u8"?2**7:0;return{dataType:t,sampleSize:n,littleEndian:s,silentValue:a}};var tt;(function(r){r[r.IDR=5]="IDR",r[r.SPS=7]="SPS",r[r.PPS=8]="PPS",r[r.SPS_EXT=13]="SPS_EXT"})(tt||(tt={}));var Q;(function(r){r[r.RASL_N=8]="RASL_N",r[r.RASL_R=9]="RASL_R",r[r.BLA_W_LP=16]="BLA_W_LP",r[r.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",r[r.VPS_NUT=32]="VPS_NUT",r[r.SPS_NUT=33]="SPS_NUT",r[r.PPS_NUT=34]="PPS_NUT",r[r.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",r[r.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT"})(Q||(Q={}));var vr=r=>{let e=[],t=0;for(;t<r.length;){let n=-1,s=0;for(let a=t;a<r.length-3;a++){if(r[a]===0&&r[a+1]===0&&r[a+2]===1){n=a,s=3;break}if(a<r.length-4&&r[a]===0&&r[a+1]===0&&r[a+2]===0&&r[a+3]===1){n=a,s=4;break}}if(n===-1)break;if(t>0&&n>t){let a=r.subarray(t,n);a.length>0&&e.push(a)}t=n+s}if(t<r.length){let n=r.subarray(t);n.length>0&&e.push(n)}return e},qs=(r,e)=>{let t=[],n=0,s=new DataView(r.buffer,r.byteOffset,r.byteLength);for(;n+e<=r.length;){let a;e===1?a=s.getUint8(n):e===2?a=s.getUint16(n,!1):e===3?a=(s.getUint16(n,!1)<<8)+s.getUint8(n+2):e===4?a=s.getUint32(n,!1):(Et(e),b(!1)),n+=e;let i=r.subarray(n,n+a);t.push(i),n+=a}return t},zn=r=>{let e=[],t=r.length;for(let n=0;n<t;n++)n+2<t&&r[n]===0&&r[n+1]===0&&r[n+2]===3?(e.push(0,0),n+=2):e.push(r[n]);return new Uint8Array(e)};var da=(r,e)=>{if(e.description){let s=(Pe(e.description)[4]&3)+1;return qs(r,s)}else return vr(r)},Cr=r=>r[0]&31,js=r=>{try{let e=vr(r),t=e.filter(f=>Cr(f)===tt.SPS),n=e.filter(f=>Cr(f)===tt.PPS),s=e.filter(f=>Cr(f)===tt.SPS_EXT);if(t.length===0||n.length===0)return null;let a=t[0],i=new U(zn(a));if(i.skipBits(1),i.skipBits(2),i.readBits(5)!==7)return console.error("Invalid SPS NAL unit type"),null;let c=i.readAlignedByte(),l=i.readAlignedByte(),u=i.readAlignedByte(),d={configurationVersion:1,avcProfileIndication:c,profileCompatibility:l,avcLevelIndication:u,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:n,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if(c===100||c===110||c===122||c===144){I(i);let f=I(i);f===3&&i.skipBits(1);let m=I(i),h=I(i);d.chromaFormat=f,d.bitDepthLumaMinus8=m,d.bitDepthChromaMinus8=h,d.sequenceParameterSetExt=s}return d}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}};var Mn=(r,e)=>{if(e.description){let s=(Pe(e.description)[21]&3)+1;return qs(r,s)}else return vr(r)},pe=r=>r[0]>>1&63,$s=r=>{try{let e=vr(r),t=e.filter(_=>pe(_)===Q.VPS_NUT),n=e.filter(_=>pe(_)===Q.SPS_NUT),s=e.filter(_=>pe(_)===Q.PPS_NUT),a=e.filter(_=>pe(_)===Q.PREFIX_SEI_NUT||pe(_)===Q.SUFFIX_SEI_NUT);if(n.length===0||s.length===0)return null;let i=n[0],o=new U(zn(i));o.skipBits(16),o.readBits(4);let c=o.readBits(3),l=o.readBits(1),{general_profile_space:u,general_tier_flag:d,general_profile_idc:f,general_profile_compatibility_flags:m,general_constraint_indicator_flags:h,general_level_idc:g}=fa(o,c);I(o);let y=I(o);y===3&&o.skipBits(1),I(o),I(o),o.readBits(1)&&(I(o),I(o),I(o),I(o));let S=I(o),p=I(o);I(o);let k=o.readBits(1)?0:c;for(let _=k;_<=c;_++)I(o),I(o),I(o);I(o),I(o),I(o),I(o),I(o),I(o),o.readBits(1)&&o.readBits(1)&&ma(o),o.skipBits(1),o.skipBits(1),o.readBits(1)&&(o.skipBits(4),o.skipBits(4),I(o),I(o),o.skipBits(1));let x=I(o);if(ha(o,x),o.readBits(1)){let _=I(o);for(let B=0;B<_;B++)I(o),o.skipBits(1)}o.skipBits(1),o.skipBits(1);let C=0;o.readBits(1)&&(C=ga(o,c));let v=0;if(s.length>0){let _=s[0],B=new U(zn(_));B.skipBits(16),I(B),I(B),B.skipBits(1),B.skipBits(1),B.skipBits(3),B.skipBits(1),B.skipBits(1),I(B),I(B),et(B),B.skipBits(1),B.skipBits(1),B.readBits(1)&&I(B),et(B),et(B),B.skipBits(1),B.skipBits(1),B.skipBits(1),B.skipBits(1);let L=B.readBits(1),Fe=B.readBits(1);!L&&!Fe?v=0:L&&!Fe?v=2:!L&&Fe?v=3:v=0}let F=[...t.length?[{arrayCompleteness:1,nalUnitType:Q.VPS_NUT,nalUnits:t}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:Q.SPS_NUT,nalUnits:n}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:Q.PPS_NUT,nalUnits:s}]:[],...a.length?[{arrayCompleteness:1,nalUnitType:pe(a[0]),nalUnits:a}]:[]];return{configurationVersion:1,generalProfileSpace:u,generalTierFlag:d,generalProfileIdc:f,generalProfileCompatibilityFlags:m,generalConstraintIndicatorFlags:h,generalLevelIdc:g,minSpatialSegmentationIdc:C,parallelismType:v,chromaFormatIdc:y,bitDepthLumaMinus8:S,bitDepthChromaMinus8:p,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:l,lengthSizeMinusOne:3,arrays:F}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},fa=(r,e)=>{let t=r.readBits(2),n=r.readBits(1),s=r.readBits(5),a=0;for(let u=0;u<32;u++)a=a<<1|r.readBits(1);let i=new Uint8Array(6);for(let u=0;u<6;u++)i[u]=r.readBits(8);let o=r.readBits(8),c=[],l=[];for(let u=0;u<e;u++)c.push(r.readBits(1)),l.push(r.readBits(1));if(e>0)for(let u=e;u<8;u++)r.skipBits(2);for(let u=0;u<e;u++)c[u]&&r.skipBits(88),l[u]&&r.skipBits(8);return{general_profile_space:t,general_tier_flag:n,general_profile_idc:s,general_profile_compatibility_flags:a,general_constraint_indicator_flags:i,general_level_idc:o}},ma=r=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!r.readBits(1))I(r);else{let s=Math.min(64,1<<4+(e<<1));e>1&&et(r);for(let a=0;a<s;a++)et(r)}},ha=(r,e)=>{let t=[];for(let n=0;n<e;n++)t[n]=pa(r,n,e,t)},pa=(r,e,t,n)=>{let s=0,a=0,i=0;if(e!==0&&(a=r.readBits(1)),a){if(e===t){let c=I(r);i=e-(c+1)}else i=e-1;r.readBits(1),I(r);let o=n[i]??0;for(let c=0;c<=o;c++)r.readBits(1)||r.readBits(1);s=n[i]}else{let o=I(r),c=I(r);for(let l=0;l<o;l++)I(r),r.readBits(1);for(let l=0;l<c;l++)I(r),r.readBits(1);s=o+c}return s},ga=(r,e)=>{if(r.readBits(1)&&r.readBits(8)===255&&(r.readBits(16),r.readBits(16)),r.readBits(1)&&r.readBits(1),r.readBits(1)&&(r.readBits(3),r.readBits(1),r.readBits(1)&&(r.readBits(8),r.readBits(8),r.readBits(8))),r.readBits(1)&&(I(r),I(r)),r.readBits(1),r.readBits(1),r.readBits(1),r.readBits(1)&&(I(r),I(r),I(r),I(r)),r.readBits(1)&&(r.readBits(32),r.readBits(32),r.readBits(1)&&I(r),r.readBits(1)&&ba(r,!0,e)),r.readBits(1)){r.readBits(1),r.readBits(1),r.readBits(1);let t=I(r);return I(r),I(r),I(r),I(r),t}return 0},ba=(r,e,t)=>{let n=!1,s=!1,a=!1;e&&(n=r.readBits(1)===1,s=r.readBits(1)===1,(n||s)&&(a=r.readBits(1)===1,a&&(r.readBits(8),r.readBits(5),r.readBits(1),r.readBits(5)),r.readBits(4),r.readBits(4),a&&r.readBits(4),r.readBits(5),r.readBits(5),r.readBits(5)));for(let i=0;i<=t;i++){let o=r.readBits(1)===1,c=!0;o||(c=r.readBits(1)===1);let l=!1;c?I(r):l=r.readBits(1)===1;let u=1;l||(u=I(r)+1),n&&Ws(r,u,a),s&&Ws(r,u,a)}},Ws=(r,e,t)=>{for(let n=0;n<e;n++)I(r),I(r),t&&(I(r),I(r)),r.readBits(1)};var Ir=r=>{let e=new U(r);if(e.readBits(2)!==2)return null;let n=e.readBits(1),a=(e.readBits(1)<<1)+n;if(a===3&&e.skipBits(1),e.readBits(1)===1||e.readBits(1)!==0||(e.skipBits(2),e.readBits(24)!==4817730))return null;let l=8;a>=2&&(l=e.readBits(1)?12:10);let u=e.readBits(3),d=0,f=0;if(u!==7)if(f=e.readBits(1),a===1||a===3){let v=e.readBits(1),F=e.readBits(1);d=!v&&!F?3:v&&!F?2:1,e.skipBits(1)}else d=1;else d=3,f=1;let m=e.readBits(16),h=e.readBits(16),g=m+1,y=h+1,S=g*y,p=W(He).level;for(let C of He)if(S<=C.maxPictureSize){p=C.level;break}return{profile:a,level:p,bitDepth:l,chromaSubsampling:d,videoFullRangeFlag:f,colourPrimaries:u===2?1:u===1?6:2,transferCharacteristics:u===2?1:u===1?6:2,matrixCoefficients:u===7?0:u===2?1:u===1?6:2}},Ks=function*(r){let e=new U(r),t=()=>{let n=0;for(let s=0;s<8;s++){let a=e.readAlignedByte();if(n|=(a&127)<<s*7,!(a&128))break;if(s===7&&a&128)return null}return n>=2**32-1?null:n};for(;e.getBitsLeft()>=8;){e.skipBits(1);let n=e.readBits(4),s=e.readBits(1),a=e.readBits(1);e.skipBits(1),s&&e.skipBits(8);let i;if(a){let o=t();if(o===null)return;i=o}else i=Math.floor(e.getBitsLeft()/8);b(e.pos%8===0),yield{type:n,data:r.subarray(e.pos/8,e.pos/8+i)},e.skipBits(i*8)}},Er=r=>{for(let{type:e,data:t}of Ks(r)){if(e!==1)continue;let n=new U(t),s=n.readBits(3),a=n.readBits(1),i=n.readBits(1),o=0,c=0,l=0;if(i)o=n.readBits(5);else{if(n.readBits(1)&&(n.skipBits(32),n.skipBits(32),n.readBits(1)))return null;let S=n.readBits(1);S&&(l=n.readBits(5),n.skipBits(32),n.skipBits(5),n.skipBits(5));let p=n.readBits(5);for(let w=0;w<=p;w++){n.skipBits(12);let k=n.readBits(5);if(w===0&&(o=k),k>7){let C=n.readBits(1);w===0&&(c=C)}if(S&&n.readBits(1)){let v=l+1;n.skipBits(v),n.skipBits(v),n.skipBits(1)}n.readBits(1)&&n.skipBits(4)}}let u=n.readBits(1),d=8;s===2&&u?d=n.readBits(1)?12:10:s<=2&&(d=u?10:8);let f=0;s!==1&&(f=n.readBits(1));let m=1,h=1,g=0;return f||(s===0?(m=1,h=1):s===1?(m=0,h=0):d===12&&(m=n.readBits(1),m&&(h=n.readBits(1))),m&&h&&(g=n.readBits(2))),{profile:s,level:o,tier:c,bitDepth:d,monochrome:f,chromaSubsamplingX:m,chromaSubsamplingY:h,chromaSamplePosition:g}}return null},Gs=r=>{let e=z(r),t=e.getUint8(9),n=e.getUint16(10,!0),s=e.getUint32(12,!0),a=e.getInt16(16,!0),i=e.getUint8(18),o=null;return i&&(o=r.subarray(19,21+t)),{outputChannelCount:t,preSkip:n,inputSampleRate:s,outputGain:a,channelMappingFamily:i,channelMappingTable:o}},ya=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],Xs=r=>{let e=r[0]>>3;return{durationInSamples:ya[e]}},Qs=r=>{if(r.length<7)throw new Error("Setup header is too short.");if(r[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...r.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let t=r.length,n=new Uint8Array(t);for(let d=0;d<t;d++)n[d]=r[t-1-d];let s=new U(n),a=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){a=s.pos;break}if(a===0)throw new Error("Invalid Setup header: framing bit not found.");let i=0,o=!1,c=0;for(;s.getBitsLeft()>=97;){let d=s.pos,f=s.readBits(8),m=s.readBits(16),h=s.readBits(16);if(f>63||m!==0||h!==0){s.pos=d;break}if(s.skipBits(1),i++,i>64)break;s.clone().readBits(6)+1===i&&(o=!0,c=i)}if(!o)throw new Error("Invalid Setup header: mode header not found.");if(c>63)throw new Error(`Unsupported mode count: ${c}.`);let l=c;s.pos=0,s.skipBits(a);let u=Array(l).fill(0);for(let d=l-1;d>=0;d--)s.skipBits(40),u[d]=s.readBits(1);return{modeBlockflags:u}},Zs=async(r,e)=>{switch(b(r.codec),r.codec){case"avc":{let t=await r.getDecoderConfig();return b(t),da(e.data,t).some(a=>Cr(a)===tt.IDR)?"key":"delta"}case"hevc":{let t=await r.getDecoderConfig();return b(t),Mn(e.data,t).some(a=>{let i=pe(a);return Q.BLA_W_LP<=i&&i<=Q.RSV_IRAP_VCL23})?"key":"delta"}case"vp8":return(e.data[0]&1)===0?"key":"delta";case"vp9":{let t=new U(e.data);if(t.readBits(2)!==2)return null;let n=t.readBits(1);return(t.readBits(1)<<1)+n===3&&t.skipBits(1),t.readBits(1)?null:t.readBits(1)===0?"key":"delta"}case"av1":{let t=!1;for(let{type:n,data:s}of Ks(e.data))if(n===1){let a=new U(s);a.skipBits(4),t=!!a.readBits(1)}else if(n===3||n===6||n===7){if(t)return"key";let a=new U(s);return a.readBits(1)?null:a.readBits(2)===0?"key":"delta"}return null}default:Et(r.codec),b(!1)}};var Ys=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isQuickTime?"quicktime":"mp4");if(r.codecStrings.length>0){let n=[...new Set(r.codecStrings)];t+=`; codecs="${n.join(", ")}"`}return t};var _r=class{constructor(e){this.source=e}requestSlice(e,t){if(this.fileSize!==null&&e+t>this.fileSize)return null;let n=e+t,s=this.source._read(e,n);return s instanceof Promise?s.then(a=>a?new rt(a.bytes,a.view,a.offset,e,n):null):s?new rt(s.bytes,s.view,s.offset,e,n):null}requestSliceRange(e,t,n){if(this.fileSize!==null)return this.requestSlice(e,yr(this.fileSize-e,t,n));{let s=this.requestSlice(e,n),a=i=>{if(i)return i;let o=l=>(b(l!==null),this.requestSlice(e,yr(l-e,t,n))),c=this.source._retrieveSize();return c instanceof Promise?c.then(o):o(c)};return s instanceof Promise?s.then(a):a(s)}}},rt=class r{constructor(e,t,n,s,a){this.bytes=e,this.view=t,this.offset=n,this.start=s,this.end=a,this.bufferPos=s-n}static tempFromBytes(e){return new r(e,z(e),0,0,e.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(e){this.bufferPos=e-this.offset}skip(e){this.bufferPos+=e}slice(e,t=this.end-e){if(e<this.start||e+t>this.end)throw new RangeError("Slicing outside of original slice.");return new r(this.bytes,this.view,this.offset,e,e+t)}},D=(r,e)=>{let t=r.bytes.subarray(r.bufferPos,r.bufferPos+e);return r.bufferPos+=e,t},E=r=>r.view.getUint8(r.bufferPos++),nt=(r,e)=>{let t=r.view.getUint16(r.bufferPos,e);return r.bufferPos+=2,t},j=r=>{let e=r.view.getUint16(r.bufferPos,!1);return r.bufferPos+=2,e},st=r=>{let e=j(r),t=E(r);return e*256+t},Ft=r=>{let e=r.view.getInt16(r.bufferPos,!1);return r.bufferPos+=2,e},ge=(r,e)=>{let t=r.view.getUint32(r.bufferPos,e);return r.bufferPos+=4,t},P=r=>{let e=r.view.getUint32(r.bufferPos,!1);return r.bufferPos+=4,e},We=r=>{let e=r.view.getUint32(r.bufferPos,!0);return r.bufferPos+=4,e},be=r=>{let e=r.view.getInt32(r.bufferPos,!1);return r.bufferPos+=4,e},ka=r=>{let e=r.view.getInt32(r.bufferPos,!0);return r.bufferPos+=4,e},Nn=(r,e)=>{let t,n;return e?(t=ge(r,!0),n=ge(r,!0)):(n=ge(r,!1),t=ge(r,!1)),n*4294967296+t},J=r=>{let e=P(r),t=P(r);return e*4294967296+t},Js=r=>{let e=be(r),t=P(r);return e*4294967296+t},ei=r=>{let e=We(r);return ka(r)*4294967296+e},ti=r=>{let e=r.view.getFloat32(r.bufferPos,!1);return r.bufferPos+=4,e},Ar=r=>{let e=r.view.getFloat64(r.bufferPos,!1);return r.bufferPos+=8,e},V=(r,e)=>{if(r.bufferPos+e>r.bytes.length)throw new RangeError("Reading past end of slice.");let t="";for(let n=0;n<e;n++)t+=String.fromCharCode(r.bytes[r.bufferPos++]);return t};var ye=8,qe=16,ue=r=>{let e=P(r),t=V(r,4),n=8;e===1&&(e=J(r),n=16);let a=e-n;return a<0?null:{name:t,totalSize:e,headerSize:n,contentSize:a}},Ie=r=>be(r)/65536,Fr=r=>be(r)/1073741824,Dr=r=>{let e=0;for(let t=0;t<4;t++){e<<=7;let n=E(r);if(e|=n&127,(n&128)===0)break}return e},re=r=>{let e=j(r);return r.skip(2),G.decode(D(r,e))},ri=r=>{let e=ue(r);if(!e||e.name!=="data")return null;let t=P(r);r.skip(4);let n=D(r,e.contentSize-8);switch(t){case 1:return G.decode(n);case 2:return new TextDecoder("utf-16be").decode(n);case 13:return new ve(n,"image/jpeg");case 14:return new ve(n,"image/png");case 27:return new ve(n,"image/bmp");default:return n}};var T;(function(r){r[r.EBML=440786851]="EBML",r[r.EBMLVersion=17030]="EBMLVersion",r[r.EBMLReadVersion=17143]="EBMLReadVersion",r[r.EBMLMaxIDLength=17138]="EBMLMaxIDLength",r[r.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",r[r.DocType=17026]="DocType",r[r.DocTypeVersion=17031]="DocTypeVersion",r[r.DocTypeReadVersion=17029]="DocTypeReadVersion",r[r.Void=236]="Void",r[r.Segment=408125543]="Segment",r[r.SeekHead=290298740]="SeekHead",r[r.Seek=19899]="Seek",r[r.SeekID=21419]="SeekID",r[r.SeekPosition=21420]="SeekPosition",r[r.Duration=17545]="Duration",r[r.Info=357149030]="Info",r[r.TimestampScale=2807729]="TimestampScale",r[r.MuxingApp=19840]="MuxingApp",r[r.WritingApp=22337]="WritingApp",r[r.Tracks=374648427]="Tracks",r[r.TrackEntry=174]="TrackEntry",r[r.TrackNumber=215]="TrackNumber",r[r.TrackUID=29637]="TrackUID",r[r.TrackType=131]="TrackType",r[r.FlagEnabled=185]="FlagEnabled",r[r.FlagDefault=136]="FlagDefault",r[r.FlagForced=21930]="FlagForced",r[r.FlagLacing=156]="FlagLacing",r[r.Name=21358]="Name",r[r.Language=2274716]="Language",r[r.LanguageBCP47=2274717]="LanguageBCP47",r[r.CodecID=134]="CodecID",r[r.CodecPrivate=25506]="CodecPrivate",r[r.CodecDelay=22186]="CodecDelay",r[r.SeekPreRoll=22203]="SeekPreRoll",r[r.DefaultDuration=2352003]="DefaultDuration",r[r.Video=224]="Video",r[r.PixelWidth=176]="PixelWidth",r[r.PixelHeight=186]="PixelHeight",r[r.Audio=225]="Audio",r[r.SamplingFrequency=181]="SamplingFrequency",r[r.Channels=159]="Channels",r[r.BitDepth=25188]="BitDepth",r[r.SimpleBlock=163]="SimpleBlock",r[r.BlockGroup=160]="BlockGroup",r[r.Block=161]="Block",r[r.BlockAdditions=30113]="BlockAdditions",r[r.BlockMore=166]="BlockMore",r[r.BlockAdditional=165]="BlockAdditional",r[r.BlockAddID=238]="BlockAddID",r[r.BlockDuration=155]="BlockDuration",r[r.ReferenceBlock=251]="ReferenceBlock",r[r.Cluster=524531317]="Cluster",r[r.Timestamp=231]="Timestamp",r[r.Cues=475249515]="Cues",r[r.CuePoint=187]="CuePoint",r[r.CueTime=179]="CueTime",r[r.CueTrackPositions=183]="CueTrackPositions",r[r.CueTrack=247]="CueTrack",r[r.CueClusterPosition=241]="CueClusterPosition",r[r.Colour=21936]="Colour",r[r.MatrixCoefficients=21937]="MatrixCoefficients",r[r.TransferCharacteristics=21946]="TransferCharacteristics",r[r.Primaries=21947]="Primaries",r[r.Range=21945]="Range",r[r.Projection=30320]="Projection",r[r.ProjectionType=30321]="ProjectionType",r[r.ProjectionPoseRoll=30325]="ProjectionPoseRoll",r[r.Attachments=423732329]="Attachments",r[r.AttachedFile=24999]="AttachedFile",r[r.FileDescription=18046]="FileDescription",r[r.FileName=18030]="FileName",r[r.FileMediaType=18016]="FileMediaType",r[r.FileData=18012]="FileData",r[r.FileUID=18094]="FileUID",r[r.Chapters=272869232]="Chapters",r[r.Tags=307544935]="Tags",r[r.Tag=29555]="Tag",r[r.Targets=25536]="Targets",r[r.TargetTypeValue=26826]="TargetTypeValue",r[r.TargetType=25546]="TargetType",r[r.TagTrackUID=25541]="TagTrackUID",r[r.TagEditionUID=25545]="TagEditionUID",r[r.TagChapterUID=25540]="TagChapterUID",r[r.TagAttachmentUID=25542]="TagAttachmentUID",r[r.SimpleTag=26568]="SimpleTag",r[r.TagName=17827]="TagName",r[r.TagLanguage=17530]="TagLanguage",r[r.TagString=17543]="TagString",r[r.TagBinary=17541]="TagBinary"})(T||(T={}));var xa=[T.EBML,T.Segment],it=[T.SeekHead,T.Info,T.Cluster,T.Tracks,T.Cues,T.Attachments,T.Chapters,T.Tags],Br=[...xa,...it];var Vn=8,Z=2,ne=2*Vn,Un=r=>{let e=E(r);if(r.skip(-1),e===0)return null;let t=1,n=128;for(;(e&n)===0;)t++,n>>=1;return t},at=r=>{let e=E(r);if(e===0)return null;let t=1,n=128;for(;(e&n)===0;)t++,n>>=1;let s=e&n-1;for(let a=1;a<t;a++)s*=256,s+=E(r);return s},O=(r,e)=>{if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let t=0;for(let n=0;n<e;n++)t*=256,t+=E(r);return t},ni=(r,e)=>{let t=O(r,e);return t&1<<e*8-1&&(t-=2**(e*8)),t},Rr=r=>{let e=Un(r);return e===null?null:O(r,e)},Ln=r=>{let e=E(r);return e===255?e=null:(r.skip(-1),e=at(r),e===72057594037927940&&(e=null)),e},se=r=>{let e=Rr(r);if(e===null)return null;let t=Ln(r);return{id:e,size:t}},Ee=(r,e)=>{let t=D(r,e),n=0;for(;n<e&&t[n]!==0;)n+=1;return String.fromCharCode(...t.subarray(0,n))},ot=(r,e)=>{let t=D(r,e),n=0;for(;n<e&&t[n]!==0;)n+=1;return G.decode(t.subarray(0,n))},Or=(r,e)=>{if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);return e===4?ti(r):Ar(r)},zr=async(r,e,t,n)=>{let s=new Set(t),a=e;for(;n===null||a<n;){let i=r.requestSliceRange(a,Z,ne);if(i instanceof Promise&&(i=await i),!i)break;let o=se(i);if(!o)break;if(s.has(o.id))return{pos:a,found:!0};ke(o.size),a=i.filePos+o.size}return{pos:n!==null&&n>a?n:a,found:!1}},Hn=async(r,e,t,n)=>{let a=new Set(t),i=e;for(;i<n;){let o=r.requestSliceRange(i,0,Math.min(65536,n-i));if(o instanceof Promise&&(o=await o),!o||o.length<Vn)break;for(let c=0;c<o.length-Vn;c++){o.filePos=i;let l=Rr(o);if(l!==null&&a.has(l))return i;i++}}return null},ie={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function ke(r){if(r===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var si=r=>{let t=(r.hasVideo?"video/":r.hasAudio?"audio/":"application/")+(r.isWebM?"webm":"x-matroska");if(r.codecStrings.length>0){let n=[...new Set(r.codecStrings.filter(Boolean))];t+=`; codecs="${n.join(", ")}"`}return t};var wa={1:[-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],2:[-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],3:[-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1]},Sa={1:[-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],2:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],3:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1]},Ta={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},ii=1483304551,ai=1231971951,Pa=(r,e,t,n)=>Math.floor(r===3?(12*e/t+n)*4:144*e/t+n),oi=(r,e)=>r===3?e===3?21:36:e===3?13:21,ci=(r,e)=>{let t=r>>>24,n=r>>>16&255,s=r>>>8&255,a=r&255;if(t!==255&&n!==255&&s!==255&&a!==255)return{header:null,bytesAdvanced:4};if(t!==255)return{header:null,bytesAdvanced:1};if((n&224)!==224)return{header:null,bytesAdvanced:1};let i=n>>3&3,o=n>>1&3,c=s>>4&15,l=s>>2&3,u=s>>1&1,d=a>>6&3,f=a>>4&3,m=a>>3&1,h=a>>2&1,g=a&3,y=i===3?wa[o]?.[c]:Sa[o]?.[c];if(!y||y===-1)return{header:null,bytesAdvanced:1};let S=y*1e3,p=Ta[i]?.[l];if(!p||p===-1)return{header:null,bytesAdvanced:1};let w=Pa(o,S,p,u);if(e!==null&&e<w)return{header:null,bytesAdvanced:1};let k;return i===3?k=o===3?384:1152:o===3?k=384:o===2?k=1152:k=576,{header:{totalSize:w,mpegVersionId:i,layer:o,bitrate:S,frequencyIndex:l,sampleRate:p,channel:d,modeExtension:f,copyright:m,original:h,emphasis:g,audioSamplesInFrame:k},bytesAdvanced:1}};var Mr=r=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=r&e,e>>=8;return t};var lt;(function(r){r[r.Unsynchronisation=128]="Unsynchronisation",r[r.ExtendedHeader=64]="ExtendedHeader",r[r.ExperimentalIndicator=32]="ExperimentalIndicator",r[r.Footer=16]="Footer"})(lt||(lt={}));var ut;(function(r){r[r.ISO_8859_1=0]="ISO_8859_1",r[r.UTF_16_WITH_BOM=1]="UTF_16_WITH_BOM",r[r.UTF_16_BE_NO_BOM=2]="UTF_16_BE_NO_BOM",r[r.UTF_8=3]="UTF_8"})(ut||(ut={}));var Dt=128,ft=10,dt=["Blues","Classic rock","Country","Dance","Disco","Funk","Grunge","Hip-hop","Jazz","Metal","New age","Oldies","Other","Pop","Rhythm and blues","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death metal","Pranks","Soundtrack","Euro-techno","Ambient","Trip-hop","Vocal","Jazz & funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound clip","Gospel","Noise","Alternative rock","Bass","Soul","Punk","Space","Meditative","Instrumental pop","Instrumental rock","Ethnic","Gothic","Darkwave","Techno-industrial","Electronic","Pop-folk","Eurodance","Dream","Southern rock","Comedy","Cult","Gangsta","Top 40","Christian rap","Pop/funk","Jungle music","Native US","Cabaret","New wave","Psychedelic","Rave","Showtunes","Trailer","Lo-fi","Tribal","Acid punk","Acid jazz","Polka","Retro","Musical","Rock 'n' roll","Hard rock","Folk","Folk rock","National folk","Swing","Fast fusion","Bebop","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic rock","Progressive rock","Psychedelic rock","Symphonic rock","Slow rock","Big band","Chorus","Easy listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber music","Sonata","Symphony","Booty bass","Primus","Porn groove","Satire","Slow jam","Club","Tango","Samba","Folklore","Ballad","Power ballad","Rhythmic Soul","Freestyle","Duet","Punk rock","Drum solo","A cappella","Euro-house","Dance hall","Goa music","Drum & bass","Club-house","Hardcore techno","Terror","Indie","Britpop","Negerpunk","Polsk punk","Beat","Christian gangsta rap","Heavy metal","Black metal","Crossover","Contemporary Christian","Christian rock","Merengue","Salsa","Thrash metal","Anime","Jpop","Synthpop","Christmas","Art rock","Baroque","Bhangra","Big beat","Breakbeat","Chillout","Downtempo","Dub","EBM","Eclectic","Electro","Electroclash","Emo","Experimental","Garage","Global","IDM","Illbient","Industro-Goth","Jam Band","Krautrock","Leftfield","Lounge","Math rock","New romantic","Nu-breakz","Post-punk","Post-rock","Psytrance","Shoegaze","Space rock","Trop rock","World music","Neoclassical","Audiobook","Audio theatre","Neue Deutsche Welle","Podcast","Indie rock","G-Funk","Dubstep","Garage rock","Psybient"],Bt=async(r,e,t)=>{let n=e;for(;t===null||n<t;){let s=r.requestSlice(n,4);if(s instanceof Promise&&(s=await s),!s)break;let a=P(s),i=ci(a,r.fileSize!==null?r.fileSize-n:null);if(i.header)return{header:i.header,startPos:n};n+=i.bytesAdvanced}return null},ui=(r,e)=>{let t=r.filePos;e.raw??={},e.raw.TAG??=D(r,Dt-3),r.filePos=t;let n=ct(r,30);n&&(e.title??=n);let s=ct(r,30);s&&(e.artist??=s);let a=ct(r,30);a&&(e.album??=a);let i=ct(r,4),o=Number.parseInt(i,10);Number.isInteger(o)&&o>0&&(e.date??=new Date(o,0,1));let c=D(r,30),l;if(c[28]===0&&c[29]!==0){let d=c[29];d>0&&(e.trackNumber??=d),r.skip(-30),l=ct(r,28),r.skip(2)}else r.skip(-30),l=ct(r,30);l&&(e.comment??=l);let u=E(r);u<dt.length&&(e.genre??=dt[u])},ct=(r,e)=>{let t=D(r,e),n=Le(t.indexOf(0),t.length),s=t.subarray(0,n),a="";for(let i=0;i<s.length;i++)a+=String.fromCharCode(s[i]);return a.trimEnd()},Rt=r=>{let e=r.filePos,t=V(r,3),n=E(r),s=E(r),a=E(r),i=P(r);if(t!=="ID3"||n===255||s===255||(i&2155905152)!==0)return r.filePos=e,null;let o=Mr(i);return{majorVersion:n,revision:s,flags:a,size:o}},di=(r,e,t)=>{if(![2,3,4].includes(e.majorVersion)){console.warn(`Unsupported ID3v2 major version: ${e.majorVersion}`);return}let n=D(r,e.size),s=new Wn(e,n);if(e.flags<.Footer&&s.removeFooter(),e.flags<.Unsynchronisation&&e.majorVersion===3&&s.ununsynchronizeAll(),e.flags<.ExtendedHeader){let a=s.readU32();e.majorVersion===3?s.pos+=a:s.pos+=a-4}for(;s.pos<=s.bytes.length-s.frameHeaderSize();){let a=s.readId3V2Frame();if(!a)break;let i=s.pos,o=s.pos+a.size,c=!1,l=!1,u=!1;if(e.majorVersion===3?(c=!!(a.flags&64),l=!!(a.flags&128)):e.majorVersion===4&&(c=!!(a.flags&4),l=!!(a.flags&8),u=!!(a.flags&2)||!!(e.flags<.Unsynchronisation)),c){console.warn(`Skipping encrypted ID3v2 frame ${a.id}`),s.pos=o;continue}if(l){console.warn(`Skipping compressed ID3v2 frame ${a.id}`),s.pos=o;continue}switch(u&&s.ununsynchronizeRegion(s.pos,o),t.raw??={},a.id[0]==="T"?t.raw[a.id]??=s.readId3V2EncodingAndText(o):t.raw[a.id]??=s.readBytes(a.size),s.pos=i,a.id){case"TIT2":case"TT2":t.title??=s.readId3V2EncodingAndText(o);break;case"TIT3":case"TT3":t.description??=s.readId3V2EncodingAndText(o);break;case"TPE1":case"TP1":t.artist??=s.readId3V2EncodingAndText(o);break;case"TALB":case"TAL":t.album??=s.readId3V2EncodingAndText(o);break;case"TPE2":case"TP2":t.albumArtist??=s.readId3V2EncodingAndText(o);break;case"TRCK":case"TRK":{let f=s.readId3V2EncodingAndText(o).split("/"),m=Number.parseInt(f[0],10),h=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(t.trackNumber??=m),h&&Number.isInteger(h)&&h>0&&(t.tracksTotal??=h)}break;case"TPOS":case"TPA":{let f=s.readId3V2EncodingAndText(o).split("/"),m=Number.parseInt(f[0],10),h=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(t.discNumber??=m),h&&Number.isInteger(h)&&h>0&&(t.discsTotal??=h)}break;case"TCON":case"TCO":{let d=s.readId3V2EncodingAndText(o),f=/^\((\d+)\)/.exec(d);if(f){let m=Number.parseInt(f[1]);if(dt[m]!==void 0){t.genre??=dt[m];break}}if(f=/^\d+$/.exec(d),f){let m=Number.parseInt(f[0]);if(dt[m]!==void 0){t.genre??=dt[m];break}}t.genre??=d}break;case"TDRC":case"TDAT":{let d=s.readId3V2EncodingAndText(o),f=new Date(d);Number.isNaN(f.getTime())||(t.date??=f)}break;case"TYER":case"TYE":{let d=s.readId3V2EncodingAndText(o),f=Number.parseInt(d,10);Number.isInteger(f)&&(t.date??=new Date(f,0,1))}break;case"USLT":case"ULT":{let d=s.readU8();s.pos+=3,s.readId3V2Text(d,o),t.lyrics??=s.readId3V2Text(d,o)}break;case"COMM":case"COM":{let d=s.readU8();s.pos+=3,s.readId3V2Text(d,o),t.comment??=s.readId3V2Text(d,o)}break;case"APIC":case"PIC":{let d=s.readId3V2TextEncoding(),f;if(e.majorVersion===2){let y=s.readAscii(3);f=y==="PNG"?"image/png":y==="JPG"?"image/jpeg":"image/*"}else f=s.readId3V2Text(d,o);let m=s.readU8(),h=s.readId3V2Text(d,o).trimEnd(),g=o-s.pos;if(g>=0){let y=s.readBytes(g);t.images||(t.images=[]),t.images.push({data:y,mimeType:f,kind:m===3?"coverFront":m===4?"coverBack":"unknown",description:h})}}break;default:s.pos+=a.size;break}s.pos=o}},Wn=class{constructor(e,t){this.header=e,this.bytes=t,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength)}frameHeaderSize(){return this.header.majorVersion===2?6:10}ununsynchronizeAll(){let e=[];for(let t=0;t<this.bytes.length;t++){let n=this.bytes[t];e.push(n),n===255&&t!==this.bytes.length-1&&this.bytes[t]===0&&t++}this.bytes=new Uint8Array(e),this.view=new DataView(this.bytes.buffer)}ununsynchronizeRegion(e,t){let n=[];for(let i=e;i<t;i++){let o=this.bytes[i];n.push(o),o===255&&i!==t-1&&this.bytes[i+1]===0&&i++}let s=this.bytes.subarray(0,e),a=this.bytes.subarray(t);this.bytes=new Uint8Array(s.length+n.length+a.length),this.bytes.set(s,0),this.bytes.set(n,s.length),this.bytes.set(a,s.length+n.length),this.view=new DataView(this.bytes.buffer)}removeFooter(){this.bytes=this.bytes.subarray(0,this.bytes.length-ft),this.view=new DataView(this.bytes.buffer)}readBytes(e){let t=this.bytes.subarray(this.pos,this.pos+e);return this.pos+=e,t}readU8(){let e=this.view.getUint8(this.pos);return this.pos+=1,e}readU16(){let e=this.view.getUint16(this.pos,!1);return this.pos+=2,e}readU24(){let e=this.view.getUint16(this.pos,!1),t=this.view.getUint8(this.pos+1);return this.pos+=3,e*256+t}readU32(){let e=this.view.getUint32(this.pos,!1);return this.pos+=4,e}readAscii(e){let t="";for(let n=0;n<e;n++)t+=String.fromCharCode(this.view.getUint8(this.pos+n));return this.pos+=e,t}readId3V2Frame(){if(this.header.majorVersion===2){let e=this.readAscii(3);if(e==="\0\0\0")return null;let t=this.readU24();return{id:e,size:t,flags:0}}else{let e=this.readAscii(4);if(e==="\0\0\0\0")return null;let t=this.readU32(),n=this.header.majorVersion===4?Mr(t):t,s=this.readU16(),a=this.pos,i=o=>{let c=this.pos+o;if(c>this.bytes.length)return!1;if(c<=this.bytes.length-this.frameHeaderSize()){this.pos+=o;let l=this.readAscii(4);if(l!=="\0\0\0\0"&&!/[0-9A-Z]{4}/.test(l))return!1}return!0};if(!i(n)){let o=this.header.majorVersion===4?t:Mr(t);i(o)&&(n=o)}return this.pos=a,{id:e,size:n,flags:s}}}readId3V2TextEncoding(){let e=this.readU8();if(e>3)throw new Error(`Unsupported text encoding: ${e}`);return e}readId3V2Text(e,t){let n=this.pos,s=this.readBytes(t);switch(e){case ut.ISO_8859_1:{let a="";for(let i=0;i<s.length;i++){let o=s[i];if(o===0){this.pos=n+i+1;break}a+=String.fromCharCode(o)}return a}case ut.UTF_16_WITH_BOM:if(s[0]===255&&s[1]===254){let a=new TextDecoder("utf-16le"),i=Le(s.findIndex((o,c)=>o===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=n+Math.min(i+2,s.length),a.decode(s.subarray(2,i))}else if(s[0]===254&&s[1]===255){let a=new TextDecoder("utf-16be"),i=Le(s.findIndex((o,c)=>o===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=n+Math.min(i+2,s.length),a.decode(s.subarray(2,i))}else{let a=Le(s.findIndex(i=>i===0),s.length);return this.pos=n+Math.min(a+1,s.length),G.decode(s.subarray(0,a))}case ut.UTF_16_BE_NO_BOM:{let a=new TextDecoder("utf-16be"),i=Le(s.findIndex((o,c)=>o===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=n+Math.min(i+2,s.length),a.decode(s.subarray(0,i))}case ut.UTF_8:{let a=Le(s.findIndex(i=>i===0),s.length);return this.pos=n+Math.min(a+1,s.length),G.decode(s.subarray(0,a))}}}readId3V2EncodingAndText(e){if(this.pos>=e)return"";let t=this.readId3V2TextEncoding();return this.readId3V2Text(t,e)}};var qn=1399285583,Ca=79764919,fi=new Uint32Array(256);for(let r=0;r<256;r++){let e=r<<24;for(let t=0;t<8;t++)e=e&2147483648?e<<1^Ca:e<<1;fi[r]=e>>>0&4294967295}var mi=r=>{let e=z(r),t=e.getUint32(22,!0);e.setUint32(22,0,!0);let n=0;for(let s=0;s<r.length;s++){let a=r[s];n=(n<<8^fi[n>>>24^a])>>>0}return e.setUint32(22,t,!0),n},hi=(r,e,t)=>{let n=0,s=null;if(r.length>0)if(e.codec==="vorbis"){b(e.vorbisInfo);let a=e.vorbisInfo.modeBlockflags.length,o=(1<<Ms(a-1))-1<<1,c=(r[0]&o)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let l=t,u=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[u],u===1){let d=(o|1)+1,f=r[0]&d?1:0;l=e.vorbisInfo.blocksizes[f]}n=l!==null?l+s>>2:0}else e.codec==="opus"&&(n=Xs(r).durationInSamples);return{durationInSamples:n,vorbisBlockSize:s}},pi=r=>{let e="audio/ogg";if(r.codecStrings){let t=[...new Set(r.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var _e=27,je=282,gi=je+65025,mt=r=>{let e=r.filePos;if(We(r)!==qn)return null;r.skip(1);let n=E(r),s=ei(r),a=We(r),i=We(r),o=We(r),c=E(r),l=new Uint8Array(c);for(let m=0;m<c;m++)l[m]=E(r);let u=27+c,d=l.reduce((m,h)=>m+h,0),f=u+d;return{headerStartPos:e,totalSize:f,dataStartPos:e+u,dataSize:d,headerType:n,granulePosition:s,serialNumber:a,sequenceNumber:i,checksum:o,lacingValues:l}},bi=(r,e)=>{for(;r.filePos<e-3;){let t=We(r),n=t&255,s=t>>>8&255,a=t>>>16&255,i=t>>>24&255,o=79;if(!(n!==o&&s!==o&&a!==o&&i!==o)){if(r.skip(-4),t===qn)return!0;r.skip(1)}}return!1};var Y=class{constructor(e){this.input=e}};var Nr=[],jn=[];var $=new Uint8Array(0),N=class r{constructor(e,t,n,s,a=-1,i){if(this.data=e,this.type=t,this.timestamp=n,this.duration=s,this.sequenceNumber=a,e===$&&i===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(i===void 0&&(i=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(t!=="key"&&t!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(n))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(s)||s<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(a))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(i)||i<0)throw new TypeError("byteLength must be a non-negative integer.");this.byteLength=i}get isMetadataOnly(){return this.data===$}get microsecondTimestamp(){return Math.trunc(Ce*this.timestamp)}get microsecondDuration(){return Math.trunc(Ce*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let t=new Uint8Array(e.byteLength);return e.copyTo(t),new r(t,e.type,e.timestamp/1e6,(e.duration??0)/1e6)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");return new r(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}};var zt=class r{get displayWidth(){return this.rotation%180===0?this.codedWidth:this.codedHeight}get displayHeight(){return this.rotation%180===0?this.codedHeight:this.codedWidth}get microsecondTimestamp(){return Math.trunc(Ce*this.timestamp)}get microsecondDuration(){return Math.trunc(Ce*this.duration)}constructor(e,t){if(this._closed=!1,e instanceof ArrayBuffer||ArrayBuffer.isView(e)){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(!("format"in t)||typeof t.format!="string")throw new TypeError("init.format must be a string.");if(!Number.isInteger(t.codedWidth)||t.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(t.codedHeight)||t.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=Pe(e).slice(),this.format=t.format,this.codedWidth=t.codedWidth,this.codedHeight=t.codedHeight,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace(t.colorSpace)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(t?.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(t?.timestamp!==void 0&&!Number.isFinite(t?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(t?.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=e,this.format=e.format,this.codedWidth=e.displayWidth,this.codedHeight=e.displayHeight,this.rotation=t?.rotation??0,this.timestamp=t?.timestamp??e.timestamp/1e6,this.duration=t?.duration??(e.duration??0)/1e6,this.colorSpace=e.colorSpace}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new r(new VideoFrame(e,{timestamp:Math.trunc(t.timestamp*Ce),duration:Math.trunc((t.duration??0)*Ce)}),t);let n=0,s=0;if("naturalWidth"in e?(n=e.naturalWidth,s=e.naturalHeight):"videoWidth"in e?(n=e.videoWidth,s=e.videoHeight):"width"in e&&(n=Number(e.width),s=Number(e.height)),!n||!s)throw new TypeError("Could not determine dimensions.");let a=new OffscreenCanvas(n,s),i=a.getContext("2d",{alpha:!1,willReadFrequently:!0});b(i),i.drawImage(e,0,0),this._data=a,this.format="RGBX",this.codedWidth=n,this.codedHeight=s,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw new TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.")}clone(){if(this._closed)throw new Error("VideoSample is closed.");return b(this._data!==null),Ot(this._data)?new r(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation}):this._data instanceof Uint8Array?new r(this._data.slice(),{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation}):new r(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation})}close(){this._closed||(Ot(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(){if(this._closed)throw new Error("VideoSample is closed.");return b(this._data!==null),Ot(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!En(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw new Error("VideoSample is closed.");if(b(this._data!==null),Ot(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)Pe(e).set(this._data);else{let n=this._data.getContext("2d",{alpha:!1});b(n);let s=n.getImageData(0,0,this.codedWidth,this.codedHeight);Pe(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return b(this._data!==null),Ot(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration,colorSpace:this.colorSpace}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}draw(e,t,n,s,a,i,o,c,l){let u=0,d=0,f=this.displayWidth,m=this.displayHeight,h=0,g=0,y=this.displayWidth,S=this.displayHeight;if(i!==void 0?(u=t,d=n,f=s,m=a,h=i,g=o,c!==void 0?(y=c,S=l):(y=f,S=m)):(h=t,g=n,s!==void 0&&(y=s,S=a)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(u))throw new TypeError("sx must be a number.");if(!Number.isFinite(d))throw new TypeError("sy must be a number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(m)||m<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(h))throw new TypeError("dx must be a number.");if(!Number.isFinite(g))throw new TypeError("dy must be a number.");if(!Number.isFinite(y)||y<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(S)||S<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");this.rotation===90?[u,d,f,m]=[d,this.codedHeight-u-f,m,f]:this.rotation===180?[u,d]=[this.codedWidth-u-f,this.codedHeight-d-m]:this.rotation===270&&([u,d,f,m]=[this.codedWidth-d-m,u,m,f]);let p=this.toCanvasImageSource();e.save();let w=h+y/2,k=g+S/2;e.translate(w,k),e.rotate(this.rotation*Math.PI/180);let x=this.rotation%180===0?1:y/S;e.scale(1/x,x),e.drawImage(p,u,d,f,m,-y/2,-S/2,y,S),e.restore()}drawWithFit(e,t){let n=e.canvas.width,s=e.canvas.height,a=t.rotation??this.rotation,i,o,c,l;if(t.fit==="fill")i=0,o=0,c=n,l=s;else{let[d,f]=a%180===0?[this.codedWidth,this.codedHeight]:[this.codedHeight,this.codedWidth],m=t.fit==="contain"?Math.min(n/d,s/f):Math.max(n/d,s/f);c=d*m,l=f*m,i=(n-c)/2,o=(s-l)/2}let u=a%180===0?1:c/l;e.translate(n/2,s/2),e.rotate(a*Math.PI/180),e.scale(1/u,u),e.translate(-n/2,-s/2),e.drawImage(this.toCanvasImageSource(),i,o,c,l)}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(b(this._data!==null),this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}},Ot=r=>typeof VideoFrame<"u"&&r instanceof VideoFrame;var ht=r=>{if(!r||typeof r!="object")throw new TypeError("options must be an object.");if(r.metadataOnly!==void 0&&typeof r.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(r.verifyKeyPackets!==void 0&&typeof r.verifyKeyPackets!="boolean")throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(r.verifyKeyPackets&&r.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},$e=r=>{if(typeof r!="number"||Number.isNaN(r))throw new TypeError("timestamp must be a number.")},$n=(r,e,t)=>t.verifyKeyPackets?e.then(async n=>{if(!n||n.type==="delta")return n;let s=await r.determinePacketType(n);return s&&(n.type=s),n}):e,pt=class{constructor(e){if(!(e instanceof gt))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return ht(e),$n(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,t={}){return $e(e),ht(t),$n(this._track,this._track._backing.getPacket(e,t),t)}getNextPacket(e,t={}){if(!(e instanceof N))throw new TypeError("packet must be an EncodedPacket.");return ht(t),$n(this._track,this._track._backing.getNextPacket(e,t),t)}async getKeyPacket(e,t={}){if($e(e),ht(t),!t.verifyKeyPackets)return this._track._backing.getKeyPacket(e,t);let n=await this._track._backing.getKeyPacket(e,t);return!n||n.type==="delta"?n:await this._track.determinePacketType(n)==="delta"?this.getKeyPacket(n.timestamp-1/this._track.timeResolution,t):n}async getNextKeyPacket(e,t={}){if(!(e instanceof N))throw new TypeError("packet must be an EncodedPacket.");if(ht(t),!t.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,t);let n=await this._track._backing.getNextKeyPacket(e,t);return!n||n.type==="delta"?n:await this._track.determinePacketType(n)==="delta"?this.getNextKeyPacket(n,t):n}packets(e,t,n={}){if(e!==void 0&&!(e instanceof N))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!n?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(t!==void 0&&!(t instanceof N))throw new TypeError("endPacket must be an EncodedPacket.");ht(n);let s=[],{promise:a,resolve:i}=X(),{promise:o,resolve:c}=X(),l=!1,u=!1,d=null,f=[],m=()=>Math.max(2,f.length);return(async()=>{let h=e??await this.getFirstPacket(n);for(;h&&!u&&!(t&&h.sequenceNumber>=t?.sequenceNumber);){if(s.length>m()){({promise:o,resolve:c}=X()),await o;continue}s.push(h),i(),{promise:a,resolve:i}=X(),h=await this.getNextPacket(h,n)}l=!0,i()})().catch(h=>{d||(d=h,i())}),{async next(){for(;;){if(u)return{value:void 0,done:!0};if(d)throw d;if(s.length>0){let h=s.shift(),g=performance.now();for(f.push(g);f.length>0&&g-f[0]>=1e3;)f.shift();return c(),{value:h,done:!1}}else{if(l)return{value:void 0,done:!0};await a}}},async return(){return u=!0,c(),i(),{value:void 0,done:!0}},async throw(h){throw h},[Symbol.asyncIterator](){return this}}}},Kn=class{constructor(e,t){this.onSample=e,this.onError=t}},Vr=class{mediaSamplesInRange(e=0,t=1/0){$e(e),$e(t);let n=[],s=!1,a=null,{promise:i,resolve:o}=X(),{promise:c,resolve:l}=X(),u=!1,d=!1,f=!1,m=null;return(async()=>{let h=new Error,g=await this._createDecoder(x=>{if(l(),x.timestamp>=t&&(d=!0),d){x.close();return}a&&(x.timestamp>e?(n.push(a),s=!0):a.close()),x.timestamp>=e&&(n.push(x),s=!0),a=s?null:x,n.length>0&&(o(),{promise:i,resolve:o}=X())},x=>{m||(x.stack=h.stack,m=x,o())}),y=this._createPacketSink(),S=await y.getKeyPacket(e,{verifyKeyPackets:!0})??await y.getFirstPacket();if(!S)return;let p=S,w;if(t<1/0){let x=await y.getPacket(t),C=x?x.type==="key"&&x.timestamp===t?x:await y.getNextKeyPacket(x,{verifyKeyPackets:!0}):null;C&&(w=C)}let k=y.packets(S,w);for(await k.next();p&&!d;){let x=yi(n.length);if(n.length+g.getDecodeQueueSize()>x){({promise:c,resolve:l}=X()),await c;continue}g.decode(p);let C=await k.next();if(C.done)break;p=C.value}await k.return(),f||await g.flush(),g.close(),!s&&a&&n.push(a),u=!0,o()})().catch(h=>{m||(m=h,o())}),{async next(){for(;;){if(f)return{value:void 0,done:!0};if(m)throw m;if(n.length>0){let h=n.shift();return l(),{value:h,done:!1}}else if(!u)await i;else return{value:void 0,done:!0}}},async return(){f=!0,d=!0,l(),o(),a?.close();for(let h of n)h.close();return{value:void 0,done:!0}},async throw(h){throw h},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){Os(e);let t=Rs(e),n=[],s=[],{promise:a,resolve:i}=X(),{promise:o,resolve:c}=X(),l=!1,u=!1,d=null,f=m=>{s.push(m),i(),{promise:a,resolve:i}=X()};return(async()=>{let m=new Error,h=await this._createDecoder(x=>{if(c(),u){x.close();return}let C=0;for(;n.length>0&&x.timestamp-n[0]>-1e-10;)C++,n.shift();if(C>0)for(let v=0;v<C;v++)f(v<C-1?x.clone():x);else x.close()},x=>{d||(x.stack=m.stack,d=x,i())}),g=this._createPacketSink(),y=null,S=null,p=-1,w=async()=>{b(S);let x=S;for(h.decode(x);x.sequenceNumber<p;){let C=yi(s.length);for(;s.length+h.getDecodeQueueSize()>C&&!u;)({promise:o,resolve:c}=X()),await o;if(u)break;let v=await g.getNextPacket(x);b(v),h.decode(v),x=v}p=-1},k=async()=>{await h.flush();for(let x=0;x<n.length;x++)f(null);n.length=0};for await(let x of t){if($e(x),u)break;let C=await g.getPacket(x),v=C&&await g.getKeyPacket(x,{verifyKeyPackets:!0});if(!v){p!==-1&&(await w(),await k()),f(null),y=null;continue}y&&(v.sequenceNumber!==S.sequenceNumber||C.timestamp<y.timestamp)&&(await w(),await k()),n.push(C.timestamp),p=Math.max(C.sequenceNumber,p),y=C,S=v}u||(p!==-1&&await w(),await k()),h.close(),l=!0,i()})().catch(m=>{d||(d=m,i())}),{async next(){for(;;){if(u)return{value:void 0,done:!0};if(d)throw d;if(s.length>0){let m=s.shift();return b(m!==void 0),c(),{value:m,done:!1}}else if(!l)await a;else return{value:void 0,done:!0}}},async return(){u=!0,c(),i();for(let m of s)m?.close();return{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}},yi=r=>r===0?40:8,Gn=class extends Kn{constructor(e,t,n,s,a,i){super(e,t),this.codec=n,this.decoderConfig=s,this.rotation=a,this.timeResolution=i,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new fr,this.customDecoderQueueSize=0,this.inputTimestamps=[],this.sampleQueue=[],this.currentPacketIndex=0,this.raslSkipped=!1;let o=Nr.find(c=>c.supports(n,s));if(o)this.customDecoder=new o,this.customDecoder.codec=n,this.customDecoder.config=s,this.customDecoder.onSample=c=>{if(!(c instanceof zt))throw new TypeError("The argument passed to onSample must be a VideoSample.");this.finalizeAndEmitSample(c)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let c=l=>{if(wr()){if(this.sampleQueue.length>0&&l.timestamp>=W(this.sampleQueue).timestamp){for(let u of this.sampleQueue)this.finalizeAndEmitSample(u);this.sampleQueue.length=0}te(this.sampleQueue,l,u=>u.timestamp)}else{let u=this.inputTimestamps.shift();b(u!==void 0),l.setTimestamp(u),this.finalizeAndEmitSample(l)}};this.decoder=new VideoDecoder({output:l=>c(new zt(l)),error:t}),this.decoder.configure(s)}}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(b(this.decoder),this.decoder.decodeQueueSize)}decode(e){if(this.codec==="hevc"&&this.currentPacketIndex>0&&!this.raslSkipped){if(Mn(e.data,this.decoderConfig).some(s=>{let a=pe(s);return a===Q.RASL_N||a===Q.RASL_R}))return;this.raslSkipped=!0}this.currentPacketIndex++,this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(b(this.decoder),wr()||te(this.inputTimestamps,e.timestamp,t=>t),this.decoder.decode(e.toEncodedVideoChunk()))}async flush(){if(this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(b(this.decoder),await this.decoder.flush()),wr()){for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}this.currentPacketIndex=0,this.raslSkipped=!1}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(b(this.decoder),this.decoder.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},Ur=class extends Vr{constructor(e){if(!(e instanceof de))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._videoTrack=e}async _createDecoder(e,t){if(!await this._videoTrack.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let n=this._videoTrack.codec,s=this._videoTrack.rotation,a=await this._videoTrack.getDecoderConfig(),i=this._videoTrack.timeResolution;return b(n&&a),new Gn(e,t,n,a,s,i)}_createPacketSink(){return new pt(this._videoTrack)}async getSample(e){$e(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}},Mt=class{constructor(e,t={}){if(this._nextCanvasIndex=0,!(e instanceof de))throw new TypeError("videoTrack must be an InputVideoTrack.");if(t&&typeof t!="object")throw new TypeError("options must be an object.");if(t.width!==void 0&&(!Number.isInteger(t.width)||t.width<=0))throw new TypeError("options.width, when defined, must be a positive integer.");if(t.height!==void 0&&(!Number.isInteger(t.height)||t.height<=0))throw new TypeError("options.height, when defined, must be a positive integer.");if(t.fit!==void 0&&!["fill","contain","cover"].includes(t.fit))throw new TypeError('options.fit, when provided, must be one of "fill", "contain", or "cover".');if(t.width!==void 0&&t.height!==void 0&&t.fit===void 0)throw new TypeError("When both options.width and options.height are provided, options.fit must also be provided.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("options.rotation, when provided, must be 0, 90, 180 or 270.");if(t.poolSize!==void 0&&(typeof t.poolSize!="number"||!Number.isInteger(t.poolSize)||t.poolSize<0))throw new TypeError("poolSize must be a non-negative integer.");let n=t.rotation??e.rotation,[s,a]=n%180===0?[e.codedWidth,e.codedHeight]:[e.codedHeight,e.codedWidth],i=s/a;t.width!==void 0&&t.height===void 0?(s=t.width,a=Math.round(s/i)):t.width===void 0&&t.height!==void 0?(a=t.height,s=Math.round(a*i)):t.width!==void 0&&t.height!==void 0&&(s=t.width,a=t.height),this._videoTrack=e,this._width=s,this._height=a,this._rotation=n,this._fit=t.fit??"fill",this._videoSampleSink=new Ur(e),this._canvasPool=Array.from({length:t.poolSize??0},()=>null)}_videoSampleToWrappedCanvas(e){let t=this._canvasPool[this._nextCanvasIndex],n=!1;t||(typeof document<"u"?(t=document.createElement("canvas"),t.width=this._width,t.height=this._height):t=new OffscreenCanvas(this._width,this._height),this._canvasPool.length>0&&(this._canvasPool[this._nextCanvasIndex]=t),n=!0),this._canvasPool.length>0&&(this._nextCanvasIndex=(this._nextCanvasIndex+1)%this._canvasPool.length);let s=t.getContext("2d",{alpha:!1});b(s),s.resetTransform(),n||s.clearRect(0,0,this._width,this._height),e.drawWithFit(s,{fit:this._fit,rotation:this._rotation});let a={canvas:t,timestamp:e.timestamp,duration:e.duration};return e.close(),a}async getCanvas(e){$e(e);let t=await this._videoSampleSink.getSample(e);return t&&this._videoSampleToWrappedCanvas(t)}canvases(e=0,t=1/0){return Dn(this._videoSampleSink.samples(e,t),n=>this._videoSampleToWrappedCanvas(n))}canvasesAtTimestamps(e){return Dn(this._videoSampleSink.samplesAtTimestamps(e),t=>t&&this._videoSampleToWrappedCanvas(t))}};var gt=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof de}isAudioTrack(){return this instanceof K}get id(){return this._backing.getId()}get internalCodecId(){return this._backing.getInternalCodecId()}get languageCode(){return this._backing.getLanguageCode()}get name(){return this._backing.getName()}get timeResolution(){return this._backing.getTimeResolution()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let t=new pt(this),n=1/0,s=-1/0,a=0,i=0;for await(let o of t.packets(void 0,void 0,{metadataOnly:!0})){if(a>=e&&o.timestamp>=s)break;n=Math.min(n,o.timestamp),s=Math.max(s,o.timestamp+o.duration),a++,i+=o.byteLength}return{packetCount:a,averagePacketRate:a?Number((a/(s-n)).toPrecision(16)):0,averageBitrate:a?Number((8*i/(s-n)).toPrecision(16)):0}}},de=class extends gt{constructor(e){super(e),this._backing=e}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get displayWidth(){return this._backing.getRotation()%180===0?this._backing.getCodedWidth():this._backing.getCodedHeight()}get displayHeight(){return this._backing.getRotation()%180===0?this._backing.getCodedHeight():this._backing.getCodedWidth()}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pg"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return b(t!==null),Nr.some(s=>s.supports(t,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof N))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");return this.codec===null?null:Zs(this,e)}},K=class extends gt{constructor(e){super(e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return b(t!==null),jn.some(n=>n.supports(t,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof N))throw new TypeError("packet must be an EncodedPacket.");return this.codec===null?null:"key"}};var xe;(function(r){r[r.PCM=1]="PCM",r[r.IEEE_FLOAT=3]="IEEE_FLOAT",r[r.ALAW=6]="ALAW",r[r.MULAW=7]="MULAW",r[r.EXTENSIBLE=65534]="EXTENSIBLE"})(xe||(xe={}));var Lr=class extends Y{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.lastKnownPacketIndex=0,this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=this.reader.requestSlice(0,12);e instanceof Promise&&(e=await e),b(e);let t=V(e,4),n=t!=="RIFX",s=t==="RF64",a=ge(e,n),i=s?this.reader.fileSize:Math.min(a+8,this.reader.fileSize??1/0);if(V(e,4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");let c=0,l=null,u=e.filePos;for(;i===null||u<i;){let f=this.reader.requestSlice(u,8);if(f instanceof Promise&&(f=await f),!f)break;let m=V(f,4),h=ge(f,n),g=f.filePos;if(s&&c===0&&m!=="ds64")throw new Error('Invalid RF64 file: First chunk must be "ds64".');if(m==="fmt ")await this.parseFmtChunk(g,h,n);else if(m==="data"){if(l??=h,this.dataStart=f.filePos,this.dataSize=Math.min(l,(i??1/0)-this.dataStart),this.reader.fileSize===null)break}else if(m==="ds64"){let y=Nn(f,n);l=Nn(f,n),i=Math.min(y+8,this.reader.fileSize??1/0)}else m==="LIST"&&await this.parseListChunk(g,h,n);u=g+h+(h&1),c++}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let d=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/d)*d,this.tracks.push(new K(new Xn(this)))})()}async parseFmtChunk(e,t,n){let s=this.reader.requestSlice(e,t);if(s instanceof Promise&&(s=await s),!s)return;let a=nt(s,n),i=nt(s,n),o=ge(s,n);s.skip(4);let c=nt(s,n),l;if(t===14?l=8:l=nt(s,n),t>=18&&a!==357){let u=nt(s,n),d=t-18;if(Math.min(d,u)>=22&&a===xe.EXTENSIBLE){s.skip(6);let m=D(s,16);a=m[0]|m[1]<<8}}(a===xe.MULAW||a===xe.ALAW)&&(l=8),this.audioInfo={format:a,numberOfChannels:i,sampleRate:o,sampleSizeInBytes:Math.ceil(l/8),blockSizeInBytes:c}}async parseListChunk(e,t,n){let s=this.reader.requestSlice(e,t);if(s instanceof Promise&&(s=await s),!s)return;let a=V(s,4);if(a!=="INFO"&&a!=="INF0")return;let i=s.filePos;for(;i<=e+t-8;){s.filePos=i;let o=V(s,4),c=ge(s,n),l=D(s,c),u=0;for(let f=0;f<l.length&&l[f]!==0;f++)u++;let d=String.fromCharCode(...l.subarray(0,u));switch(this.metadataTags.raw??={},this.metadataTags.raw[o]=d,o){case"INAM":case"TITL":this.metadataTags.title??=d;break;case"TIT3":this.metadataTags.description??=d;break;case"IART":this.metadataTags.artist??=d;break;case"IPRD":this.metadataTags.album??=d;break;case"IPRT":case"ITRK":case"TRCK":{let f=d.split("/"),m=Number.parseInt(f[0],10),h=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(this.metadataTags.trackNumber??=m),h&&Number.isInteger(h)&&h>0&&(this.metadataTags.tracksTotal??=h)}break;case"ICRD":case"IDIT":{let f=new Date(d);Number.isNaN(f.getTime())||(this.metadataTags.date??=f)}break;case"YEAR":{let f=Number.parseInt(d,10);Number.isInteger(f)&&f>0&&(this.metadataTags.date??=new Date(f,0,1))}break;case"IGNR":case"GENR":this.metadataTags.genre??=d;break;case"ICMT":case"CMNT":case"COMM":this.metadataTags.comment??=d;break}i+=8+c+(c&1)}}getCodec(){if(b(this.audioInfo),this.audioInfo.format===xe.MULAW)return"ulaw";if(this.audioInfo.format===xe.ALAW)return"alaw";if(this.audioInfo.format===xe.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===xe.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return b(e),e.computeDuration()}async getTracks(){return await this.readMetadata(),this.tracks}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},bt=2048,Xn=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(b(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getNumberOfChannels(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return b(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return q}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){b(this.demuxer.audioInfo);let n=e*bt*this.demuxer.audioInfo.blockSizeInBytes;if(n>=this.demuxer.dataSize)return null;let s=Math.min(bt*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-n);if(this.demuxer.reader.fileSize===null){let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+n,s);if(c instanceof Promise&&(c=await c),!c)return null}let a;if(t.metadataOnly)a=$;else{let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+n,s);c instanceof Promise&&(c=await c),b(c),a=D(c,s)}let i=e*bt/this.demuxer.audioInfo.sampleRate,o=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return this.demuxer.lastKnownPacketIndex=Math.max(e,i),new N(a,"key",i,o,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getPacket(e,t){b(this.demuxer.audioInfo);let n=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/bt,(this.demuxer.dataSize-1)/(bt*this.demuxer.audioInfo.blockSizeInBytes))),s=await this.getPacketAtIndex(n,t);if(s)return s;if(n===0)return null;b(this.demuxer.reader.fileSize===null);let a=await this.getPacketAtIndex(this.demuxer.lastKnownPacketIndex,t);for(;a;){let i=await this.getNextPacket(a,t);if(!i)break;a=i}return a}getNextPacket(e,t){b(this.demuxer.audioInfo);let n=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/bt);return this.getPacketAtIndex(n+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var Ke=class{constructor(){this._sizePromise=null,this.onread=null}async getSizeOrNull(){return this._sizePromise??=Promise.resolve(this._retrieveSize())}async getSize(){let e=await this.getSizeOrNull();if(e===null)throw new Error("Cannot determine the size of an unsized source.");return e}};var Nt=class extends Ke{constructor(e,t={}){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.maxCacheSize!==void 0&&(!Number.isInteger(t.maxCacheSize)||t.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative integer.");super(),this._readers=new WeakMap,this._blob=e,this._orchestrator=new Hr({maxCacheSize:t.maxCacheSize??8*2**20,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:xi.fileSystem})}_retrieveSize(){let e=this._blob.size;return this._orchestrator.fileSize=e,e}_read(e,t){return this._orchestrator.read(e,t)}async _runWorker(e){let t=this._readers.get(e);for(t||(t=this._blob.slice(e.currentPos).stream().getReader(),this._readers.set(e,t));e.currentPos<e.targetPos&&!e.aborted;){let{done:n,value:s}=await t.read();if(n){if(this._orchestrator.forgetWorker(e),e.currentPos<e.targetPos)throw new Error("Blob reader stopped unexpectedly before all requested data was read.");break}this.onread?.(e.currentPos,e.currentPos+s.length),this._orchestrator.supplyWorkerData(e,s)}e.running=!1}get _supportsRandomAccess(){return!0}},ki=.5*2**20,Vt=class extends Ke{constructor(e,t={}){if(typeof e!="string"&&!(e instanceof URL))throw new TypeError("url must be a string or URL.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.requestInit!==void 0&&(!t.requestInit||typeof t.requestInit!="object"))throw new TypeError("options.requestInit, when provided, must be an object.");if(t.getRetryDelay!==void 0&&typeof t.getRetryDelay!="function")throw new TypeError("options.getRetryDelay, when provided, must be a function.");if(t.maxCacheSize!==void 0&&(!Number.isInteger(t.maxCacheSize)||t.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative integer.");super(),this._existingResponses=new WeakMap,this._url=e instanceof URL?e:new URL(e,typeof location<"u"?location.href:void 0),this._options=t,this._getRetryDelay=t.getRetryDelay??(n=>Math.min(2**(n-2),8)),this._orchestrator=new Hr({maxCacheSize:t.maxCacheSize??64*2**20,maxWorkerCount:2,runWorker:this._runWorker.bind(this),prefetchProfile:xi.network})}async _retrieveSize(){let e=new AbortController,t=await Bn(this._url,xr(this._options.requestInit??{},{headers:{Range:"bytes=0-"},signal:e.signal}),this._getRetryDelay);if(!t.ok)throw new Error(`Error fetching ${this._url}: ${t.status} ${t.statusText}`);let n,s;if(t.status===206)s=this._getPartialLengthFromRangeResponse(t),n=this._orchestrator.createWorker(0,Math.min(s,ki));else{let a=t.headers.get("Content-Length");if(a)s=Number(a),n=this._orchestrator.createWorker(0,s),this._orchestrator.options.maxCacheSize=1/0,console.warn("HTTP server did not respond with 206 Partial Content, meaning the entire remote resource now has to be downloaded. For efficient media file streaming across a network, please make sure your server supports range requests.");else throw new Error(`HTTP response (status ${t.status}) must surface Content-Length header.`)}return this._orchestrator.fileSize=s,this._existingResponses.set(n,{response:t,abortController:e}),this._orchestrator.runWorker(n),s}_read(e,t){return this._orchestrator.read(e,t)}async _runWorker(e){for(;!e.aborted;){let t=this._existingResponses.get(e);this._existingResponses.delete(e);let n=t?.abortController,s=t?.response;if(n||(n=new AbortController,s=await Bn(this._url,xr(this._options.requestInit??{},{headers:{Range:`bytes=${e.currentPos}-`},signal:n.signal}),this._getRetryDelay)),b(s),!s.ok)throw new Error(`Error fetching ${this._url}: ${s.status} ${s.statusText}`);if(e.currentPos>0&&s.status!==206)throw new Error("HTTP server did not respond with 206 Partial Content to a range request. To enable efficient media file streaming across a network, please make sure your server supports range requests.");let a=this._getPartialLengthFromRangeResponse(s),i=e.targetPos-e.currentPos;if(a<i)throw new Error(`HTTP response unexpectedly too short: Needed at least ${i} bytes, got only ${a}.`);if(!s.body)throw new Error("Missing HTTP response body.");let o=s.body.getReader();for(;;){let c;try{c=await o.read()}catch(d){let f=this._getRetryDelay(1);if(f!==null){console.error("Error while reading response stream. Attempting to resume.",d),await new Promise(m=>setTimeout(m,1e3*f));break}else throw d}let{done:l,value:u}=c;if(l){if(this._orchestrator.forgetWorker(e),e.currentPos<e.targetPos)throw new Error("Response stream reader stopped unexpectedly before all requested data was read.");e.running=!1;return}if(this.onread?.(e.currentPos,e.currentPos+u.length),this._orchestrator.supplyWorkerData(e,u),e.currentPos>=e.targetPos||e.aborted){n.abort(),e.running=!1;return}}}e.running=!1}_getPartialLengthFromRangeResponse(e){let t=e.headers.get("Content-Range");if(t){let n=/\/(\d+)/.exec(t);if(n)return Number(n[1]);throw new Error(`Invalid Content-Range header: ${t}`)}else{let n=e.headers.get("Content-Length");if(n)return Number(n);throw new Error("Partial HTTP response (status 206) must surface either Content-Range or Content-Length header.")}}get _supportsRandomAccess(){return!0}};var xi={none:(r,e)=>({start:r,end:e}),fileSystem:(r,e)=>(r=Math.floor((r-65536)/65536)*65536,e=Math.ceil((e+65536)/65536)*65536,{start:r,end:e}),network:(r,e,t)=>{r=Math.max(0,Math.floor((r-65536)/65536)*65536);for(let s of t){let i=Math.max((s.startPos+s.targetPos)/2,s.targetPos-8388608);if(Sr(r,e,i,s.targetPos)){let o=s.targetPos-s.startPos,c=Math.ceil((o+1)/8388608)*8388608,l=2**Math.ceil(Math.log2(o+1)),u=Math.min(l,c);e=Math.max(e,s.startPos+u)}}return e=Math.max(e,r+ki),{start:r,end:e}}},Hr=class{constructor(e){this.options=e,this.fileSize=null,this.nextAge=0,this.workers=[],this.cache=[],this.currentCacheSize=0}read(e,t){b(this.fileSize!==null);let n=this.options.prefetchProfile(e,t,this.workers),s=Math.max(n.start,0),a=Math.min(n.end,this.fileSize);b(s<=e&&t<=a);let i=null,o=R(this.cache,e,p=>p.start),c=o!==-1?this.cache[o]:null;c&&c.start<=e&&t<=c.end&&(c.age=this.nextAge++,i={bytes:c.bytes,view:c.view,offset:c.start});let l=R(this.cache,s,p=>p.start),u=i?null:new Uint8Array(t-e),d=0,f=s,m=[];if(l!==-1){for(let p=l;p<this.cache.length;p++){let w=this.cache[p];if(w.start>=a)break;if(w.end<=s)continue;let k=Math.max(s,w.start),x=Math.min(a,w.end);if(b(k<=x),f<k&&m.push({start:f,end:k}),f=x,u){let C=Math.max(e,w.start),v=Math.min(t,w.end);if(C<v){let F=C-e;u.set(w.bytes.subarray(C-w.start,v-w.start),F),F===d&&(d=v-e)}}w.age=this.nextAge++}f<a&&m.push({start:f,end:a})}else m.push({start:s,end:a});if(u&&d>=u.length&&(i={bytes:u,view:z(u),offset:e}),m.length===0)return b(i),i;let{promise:h,resolve:g,reject:y}=X(),S=[];for(let p of m){let w=Math.max(e,p.start),k=Math.min(t,p.end);w===p.start&&k===p.end?S.push(p):w<k&&S.push({start:w,end:k})}for(let p of m){let w=u&&{start:e,bytes:u,holes:S,resolve:g,reject:y},k=!1;for(let x of this.workers)if(Sr(p.start-131072,p.start,x.currentPos,x.targetPos)){x.targetPos=Math.max(x.targetPos,p.end),k=!0,w&&!x.pendingSlices.includes(w)&&x.pendingSlices.push(w),x.running||this.runWorker(x);break}if(!k){let x=this.createWorker(p.start,p.end);w&&(x.pendingSlices=[w]),this.runWorker(x)}}return i||(b(u),i=h.then(p=>({bytes:p,view:z(p),offset:e}))),i}createWorker(e,t){let n={startPos:e,currentPos:e,targetPos:t,running:!1,aborted:!1,pendingSlices:[],age:this.nextAge++};for(this.workers.push(n);this.workers.length>this.options.maxWorkerCount;){let s=0,a=this.workers[0];for(let i=1;i<this.workers.length;i++){let o=this.workers[i];o.age<a.age&&(s=i,a=o)}if(a.running&&a.pendingSlices.length>0)break;a.aborted=!0,this.workers.splice(s,1)}return n}runWorker(e){b(!e.running),b(e.currentPos<e.targetPos),e.running=!0,e.age=this.nextAge++,this.options.runWorker(e).catch(t=>{if(e.running=!1,e.pendingSlices.length>0)e.pendingSlices.forEach(n=>n.reject(t)),e.pendingSlices.length=0;else throw t})}supplyWorkerData(e,t){let n=e.currentPos,s=n+t.length;this.insertIntoCache({start:n,end:s,bytes:t,view:z(t),age:this.nextAge++}),e.currentPos+=t.length,e.targetPos=Math.max(e.targetPos,e.currentPos);for(let a=0;a<e.pendingSlices.length;a++){let i=e.pendingSlices[a],o=Math.max(n,i.start),c=Math.min(s,i.start+i.bytes.length);o<c&&i.bytes.set(t.subarray(o-n,c-n),o-i.start);for(let l=0;l<i.holes.length;l++){let u=i.holes[l];n<=u.start&&s>u.start&&(u.start=s),u.end<=u.start&&(i.holes.splice(l,1),l--)}i.holes.length===0&&(i.resolve(i.bytes),e.pendingSlices.splice(a,1),a--)}for(let a=0;a<this.workers.length;a++){let i=this.workers[a];e===i||i.running||Sr(n,s,i.currentPos,i.targetPos)&&(this.workers.splice(a,1),a--)}}forgetWorker(e){let t=this.workers.indexOf(e);b(t!==-1),this.workers.splice(t,1)}insertIntoCache(e){if(this.options.maxCacheSize===0)return;let t=R(this.cache,e.start,n=>n.start)+1;if(t>0){let n=this.cache[t-1];if(n.end>=e.end)return;if(n.end>e.start){let s=new Uint8Array(e.end-n.start);s.set(n.bytes,0),s.set(e.bytes,e.start-n.start),this.currentCacheSize+=e.end-n.end,n.bytes=s,n.view=z(s),n.end=e.end,t--,e=n}else this.cache.splice(t,0,e),this.currentCacheSize+=e.bytes.length}else this.cache.splice(t,0,e),this.currentCacheSize+=e.bytes.length;for(let n=t+1;n<this.cache.length;n++){let s=this.cache[n];if(e.end<=s.start)break;if(e.end>=s.end){this.cache.splice(n,1),this.currentCacheSize-=s.bytes.length,n--;continue}let a=new Uint8Array(s.end-e.start);a.set(e.bytes,0),a.set(s.bytes,s.start-e.start),this.currentCacheSize-=e.end-s.start,e.bytes=a,e.view=z(a),e.end=s.end,this.cache.splice(n,1);break}for(;this.currentCacheSize>this.options.maxCacheSize;){let n=0,s=this.cache[0];for(let a=1;a<this.cache.length;a++){let i=this.cache[a];i.age<s.age&&(n=a,s=i)}if(this.currentCacheSize-s.bytes.length<=this.options.maxCacheSize)break;this.cache.splice(n,1),this.currentCacheSize-=s.bytes.length}}};var va=new Set(["@day","@mak","@mod","@swr","@xyz","CAME","CNCV","CNFV","CNMN","FIRM","FOV\0","GoPr","LENS","PXMN","SIGM","SNum","TAGS","albm","albr","angl","auth","ccid","cdis","clfn","clid","clsf","cmid","cmnm","coll","cprt","cver","cvru","date","dscp","fsid","gnre","hinv","icnu","info","infu","kgtt","loci","lrcu","mcvr","name","perf","pmcc","reel","rtng","scen","shot","slno","thmb","titl","tnam","urat","uuid","vndr","yrrc","\xA9ART","\xA9TIM","\xA9TSC","\xA9TSZ","\xA9alb","\xA9arg","\xA9ark","\xA9cmt","\xA9cok","\xA9com","\xA9cpy","\xA9day","\xA9dir","\xA9ed1","\xA9ed2","\xA9ed3","\xA9ed4","\xA9ed5","\xA9ed6","\xA9ed7","\xA9ed8","\xA9ed9","\xA9enc","\xA9fmt","\xA9fpt","\xA9frl","\xA9fyw","\xA9gen","\xA9gpt","\xA9grl","\xA9grp","\xA9gyw","\xA9inf","\xA9isr","\xA9lab","\xA9lal","\xA9lyr","\xA9mak","\xA9mal","\xA9mdl","\xA9mod","\xA9nam","\xA9pdk","\xA9phg","\xA9prd","\xA9prf","\xA9prk","\xA9prl","\xA9req","\xA9snk","\xA9snm","\xA9src","\xA9swf","\xA9swk","\xA9swr","\xA9too","\xA9trk","\xA9wrt","\xA9xsp","\xA9xyz","\xA9ysp","\xA9zsp"]),Wr=class extends Y{constructor(e){super(e),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.fragments=[],this.currentFragment=null,this.fragmentLookupMutex=new ee,this.reader=e._reader}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(n=>n.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.tracks.map(e=>e.inputTrack)}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.inputTrack.getCodecParameterString()));return Ys({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(t=>t.info?.type==="video"),hasAudio:this.tracks.some(t=>t.info?.type==="audio"),codecStrings:e.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let t=this.reader.requestSliceRange(e,ye,qe);if(t instanceof Promise&&(t=await t),!t)break;let n=e,s=ue(t);if(!s)break;if(s.name==="ftyp"){let a=V(t,4);this.isQuickTime=a==="qt "}else if(s.name==="moov"){let a=this.reader.requestSlice(t.filePos,s.contentSize);if(a instanceof Promise&&(a=await a),!a)break;this.moovSlice=a,this.readContiguousBoxes(this.moovSlice);for(let i of this.tracks){let o=i.editListPreviousSegmentDurations/this.movieTimescale;i.editListOffset-=Math.round(o*i.timescale)}break}e=n+s.totalSize}if(this.isFragmented&&this.reader.fileSize!==null){let t=this.reader.requestSlice(this.reader.fileSize-4,4);t instanceof Promise&&(t=await t),b(t);let n=P(t),s=this.reader.fileSize-n;if(s>=0&&s<=this.reader.fileSize-qe){let a=this.reader.requestSliceRange(s,ye,qe);if(a instanceof Promise&&(a=await a),a){let i=ue(a);if(i&&i.name==="mfra"){let o=this.reader.requestSlice(a.filePos,i.contentSize);o instanceof Promise&&(o=await o),o&&this.readContiguousBoxes(o)}}}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};e.sampleTable=t,b(this.moovSlice);let n=this.moovSlice.slice(e.sampleTableByteOffset);if(this.currentTrack=e,this.traverseBox(n),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&At.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){b(e.info?.type==="audio");let a=Hs(e.info.codec),i=[],o=[];for(let c=0;c<t.sampleToChunk.length;c++){let l=t.sampleToChunk[c],u=t.sampleToChunk[c+1],d=(u?u.startChunkIndex:t.chunkOffsets.length)-l.startChunkIndex;for(let f=0;f<d;f++){let m=l.startSampleIndex+f*l.samplesPerChunk,h=m+l.samplesPerChunk,g=R(t.sampleTimingEntries,m,F=>F.startIndex),y=t.sampleTimingEntries[g],S=R(t.sampleTimingEntries,h,F=>F.startIndex),p=t.sampleTimingEntries[S],w=y.startDecodeTimestamp+(m-y.startIndex)*y.delta,x=p.startDecodeTimestamp+(h-p.startIndex)*p.delta-w,C=W(i);C&&C.delta===x?C.count++:i.push({startIndex:l.startChunkIndex+f,startDecodeTimestamp:w,count:1,delta:x});let v=l.samplesPerChunk*a.sampleSize*e.info.numberOfChannels;o.push(v)}l.startSampleIndex=l.startChunkIndex,l.samplesPerChunk=1}t.sampleTimingEntries=i,t.sampleSizes=o}if(t.sampleCompositionTimeOffsets.length>0){t.presentationTimestamps=[];for(let a of t.sampleTimingEntries)for(let i=0;i<a.count;i++)t.presentationTimestamps.push({presentationTimestamp:a.startDecodeTimestamp+i*a.delta,sampleIndex:a.startIndex+i});for(let a of t.sampleCompositionTimeOffsets)for(let i=0;i<a.count;i++){let o=a.startIndex+i,c=t.presentationTimestamps[o];c&&(c.presentationTimestamp+=a.offset)}t.presentationTimestamps.sort((a,i)=>a.presentationTimestamp-i.presentationTimestamp),t.presentationTimestampIndexMap=Array(t.presentationTimestamps.length).fill(-1);for(let a=0;a<t.presentationTimestamps.length;a++)t.presentationTimestampIndexMap[t.presentationTimestamps[a].sampleIndex]=a}return t}async readFragment(e){let t=this.reader.requestSliceRange(e,ye,qe);t instanceof Promise&&(t=await t),b(t);let n=ue(t);b(n?.name==="moof");let s=this.reader.requestSlice(e,n.totalSize);s instanceof Promise&&(s=await s),b(s),this.traverseBox(s);let a=M(this.fragments,e,o=>o.moofOffset);b(a!==-1);let i=this.fragments[a];b(i.moofOffset===e);for(let[o,c]of i.trackData){if(c.startTimestampIsFinal)continue;let l=this.tracks.find(g=>g.id===o),u=0,d=null,f=null,m=R(l.fragments,e-1,g=>g.moofOffset);m!==-1&&(d=l.fragments[m],f=d,u=d.moofOffset+d.moofSize);let h=u===0;for(;u<=e-ye;){if(d?.nextFragment)d=d.nextFragment,u=d.moofOffset+d.moofSize;else{let g=this.reader.requestSliceRange(u,ye,qe);if(g instanceof Promise&&(g=await g),!g)break;let y=u,S=ue(g);if(!S)break;if(S.name==="moof"){let p=M(this.fragments,y,k=>k.moofOffset),w;p===-1?w=await this.readFragment(y):w=this.fragments[p],d&&(d.nextFragment=w),d=w,h&&(w.isKnownToBeFirstFragment=!0,h=!1)}u=y+S.totalSize}d&&d.trackData.has(o)&&(f=d)}if(f){let g=f.trackData.get(o);b(g.startTimestampIsFinal),Si(c,g.endTimestamp)}c.startTimestampIsFinal=!0}return i}readContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-ye&&this.traverseBox(e););}*iterateContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-ye;){let n=e.filePos,s=ue(e);if(!s)break;yield{boxInfo:s,slice:e},e.filePos=n+s.totalSize}}traverseBox(e){let t=e.filePos,n=ue(e);if(!n)return!1;let s=e.filePos,a=t+n.totalSize;switch(n.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(e.slice(s,n.contentSize));break;case"mvhd":{let i=E(e);e.skip(3),i===1?(e.skip(16),this.movieTimescale=P(e),this.movieDurationInTimescale=J(e)):(e.skip(8),this.movieTimescale=P(e),this.movieDurationInTimescale=P(e))}break;case"trak":{let i={id:-1,demuxer:this,inputTrack:null,info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:q,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:null,currentFragmentState:null,fragments:[],fragmentsWithKeyFrame:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=i,this.readContiguousBoxes(e.slice(s,n.contentSize)),i.id!==-1&&i.timescale!==-1&&i.info!==null){if(i.info.type==="video"&&i.info.width!==-1){let o=i;i.inputTrack=new de(new Qn(o)),this.tracks.push(i)}else if(i.info.type==="audio"&&i.info.numberOfChannels!==-1){let o=i;i.inputTrack=new K(new Zn(o)),this.tracks.push(i)}}this.currentTrack=null}break;case"tkhd":{let i=this.currentTrack;if(!i)break;let o=E(e);if(!((st(e)&1)!==0))break;if(o===0)e.skip(8),i.id=P(e),e.skip(4),i.durationInMovieTimescale=P(e);else if(o===1)e.skip(16),i.id=P(e),e.skip(4),i.durationInMovieTimescale=J(e);else throw new Error(`Incorrect track header version ${o}.`);e.skip(16);let u=[Ie(e),Ie(e),Fr(e),Ie(e),Ie(e),Fr(e),Ie(e),Ie(e),Fr(e)],d=mr(zs(Aa(u),90));b(d===0||d===90||d===180||d===270),i.rotation=d}break;case"elst":{let i=this.currentTrack;if(!i)break;let o=E(e);e.skip(3);let c=!1,l=0,u=P(e);for(let d=0;d<u;d++){let f=o===1?J(e):P(e),m=o===1?Js(e):be(e),h=Ie(e);if(f!==0){if(c){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(m===-1){l+=f;continue}if(h!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}i.editListPreviousSegmentDurations=l,i.editListOffset=m,c=!0}}}break;case"mdhd":{let i=this.currentTrack;if(!i)break;let o=E(e);e.skip(3),o===0?(e.skip(8),i.timescale=P(e),i.durationInMediaTimescale=P(e)):o===1&&(e.skip(16),i.timescale=P(e),i.durationInMediaTimescale=J(e));let c=j(e);if(c>0){i.languageCode="";for(let l=0;l<3;l++)i.languageCode=String.fromCharCode(96+(c&31))+i.languageCode,c>>=5;kr(i.languageCode)||(i.languageCode=q)}}break;case"hdlr":{let i=this.currentTrack;if(!i)break;e.skip(8);let o=V(e,4);o==="vide"?i.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:o==="soun"&&(i.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let i=this.currentTrack;if(!i)break;i.sampleTableByteOffset=t,this.readContiguousBoxes(e.slice(s,n.contentSize))}break;case"stsd":{let i=this.currentTrack;if(!i||i.info===null||i.sampleTable)break;let o=E(e);e.skip(3);let c=P(e);for(let l=0;l<c;l++){let u=e.filePos,d=ue(e);if(!d)break;i.internalCodecId=d.name;let f=d.name.toLowerCase();if(i.info.type==="video")f==="avc1"?i.info.codec="avc":f==="hvc1"||f==="hev1"?i.info.codec="hevc":f==="vp08"?i.info.codec="vp8":f==="vp09"?i.info.codec="vp9":f==="av01"?i.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${d.name}').`),e.skip(24),i.info.width=j(e),i.info.height=j(e),e.skip(50),this.readContiguousBoxes(e.slice(e.filePos,u+d.totalSize-e.filePos));else{f==="mp4a"||(f==="opus"?i.info.codec="opus":f==="flac"?i.info.codec="flac":f==="twos"||f==="sowt"||f==="raw "||f==="in24"||f==="in32"||f==="fl32"||f==="fl64"||f==="lpcm"||f==="ipcm"||f==="fpcm"||(f==="ulaw"?i.info.codec="ulaw":f==="alaw"?i.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${d.name}').`))),e.skip(8);let m=j(e);e.skip(6);let h=j(e),g=j(e);e.skip(4);let y=P(e)/65536;if(o===0&&m>0){if(m===1)e.skip(4),g=8*P(e),e.skip(8);else if(m===2){e.skip(4),y=Ar(e),h=P(e),e.skip(4),g=P(e);let S=P(e);if(e.skip(8),f==="lpcm"){let p=g+7>>3,w=!!(S&1),k=!!(S&2),x=S&4?-1:0;g>0&&g<=64&&(w?g===32&&(i.info.codec=k?"pcm-f32be":"pcm-f32"):x&1<<p-1?p===1?i.info.codec="pcm-s8":p===2?i.info.codec=k?"pcm-s16be":"pcm-s16":p===3?i.info.codec=k?"pcm-s24be":"pcm-s24":p===4&&(i.info.codec=k?"pcm-s32be":"pcm-s32"):p===1&&(i.info.codec="pcm-u8")),i.info.codec===null&&console.warn("Unsupported PCM format.")}}}i.info.numberOfChannels=h,i.info.sampleRate=y,f==="twos"?g===8?i.info.codec="pcm-s8":g===16?i.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${g} for codec 'twos'.`),i.info.codec=null):f==="sowt"?g===8?i.info.codec="pcm-s8":g===16?i.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${g} for codec 'sowt'.`),i.info.codec=null):f==="raw "?i.info.codec="pcm-u8":f==="in24"?i.info.codec="pcm-s24be":f==="in32"?i.info.codec="pcm-s32be":f==="fl32"?i.info.codec="pcm-f32be":f==="fl64"?i.info.codec="pcm-f64be":f==="ipcm"?i.info.codec="pcm-s16be":f==="fpcm"&&(i.info.codec="pcm-f32be"),this.readContiguousBoxes(e.slice(e.filePos,u+d.totalSize-e.filePos))}}}break;case"avcC":{let i=this.currentTrack;if(!i)break;b(i.info),i.info.codecDescription=D(e,n.contentSize)}break;case"hvcC":{let i=this.currentTrack;if(!i)break;b(i.info),i.info.codecDescription=D(e,n.contentSize)}break;case"vpcC":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="video"),e.skip(4);let o=E(e),c=E(e),l=E(e),u=l>>4,d=l>>1&7,f=l&1,m=E(e),h=E(e),g=E(e);i.info.vp9CodecInfo={profile:o,level:c,bitDepth:u,chromaSubsampling:d,videoFullRangeFlag:f,colourPrimaries:m,transferCharacteristics:h,matrixCoefficients:g}}break;case"av1C":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="video"),e.skip(1);let o=E(e),c=o>>5,l=o&31,u=E(e),d=u>>7,f=u>>6&1,m=u>>5&1,h=u>>4&1,g=u>>3&1,y=u>>2&1,S=u&3,p=c===2&&f?m?12:10:f?10:8;i.info.av1CodecInfo={profile:c,level:l,tier:d,bitDepth:p,monochrome:h,chromaSubsamplingX:g,chromaSubsamplingY:y,chromaSamplePosition:S}}break;case"colr":{let i=this.currentTrack;if(!i||(b(i.info?.type==="video"),V(e,4)!=="nclx"))break;let c=j(e),l=j(e),u=j(e),d=!!(E(e)&128);i.info.colorSpace={primaries:hr[c],transfer:pr[l],matrix:gr[u],fullRange:d}}break;case"wave":this.readContiguousBoxes(e.slice(s,n.contentSize));break;case"esds":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio"),e.skip(4);let o=E(e);b(o===3),Dr(e),e.skip(2);let c=E(e),l=(c&128)!==0,u=(c&64)!==0,d=(c&32)!==0;if(l&&e.skip(2),u){let y=E(e);e.skip(y)}d&&e.skip(2);let f=E(e);b(f===4);let m=Dr(e),h=e.filePos,g=E(e);if(g===64||g===103?(i.info.codec="aac",i.info.aacCodecInfo={isMpeg2:g===103}):g===105||g===107?i.info.codec="mp3":g===221?i.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${g}) - discarding track.`),e.skip(12),m>e.filePos-h){let y=E(e);b(y===5);let S=Dr(e);if(i.info.codecDescription=D(e,S),i.info.codec==="aac"){let p=On(i.info.codecDescription);p.numberOfChannels!==null&&(i.info.numberOfChannels=p.numberOfChannels),p.sampleRate!==null&&(i.info.sampleRate=p.sampleRate)}}}break;case"enda":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio"),j(e)&255&&(i.info.codec==="pcm-s16be"?i.info.codec="pcm-s16":i.info.codec==="pcm-s24be"?i.info.codec="pcm-s24":i.info.codec==="pcm-s32be"?i.info.codec="pcm-s32":i.info.codec==="pcm-f32be"?i.info.codec="pcm-f32":i.info.codec==="pcm-f64be"&&(i.info.codec="pcm-f64"))}break;case"pcmC":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio"),e.skip(4);let c=!!(E(e)&1),l=E(e);i.info.codec==="pcm-s16be"?c?l===16?i.info.codec="pcm-s16":l===24?i.info.codec="pcm-s24":l===32?i.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${l}.`),i.info.codec=null):l===16?i.info.codec="pcm-s16be":l===24?i.info.codec="pcm-s24be":l===32?i.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${l}.`),i.info.codec=null):i.info.codec==="pcm-f32be"&&(c?l===32?i.info.codec="pcm-f32":l===64?i.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${l}.`),i.info.codec=null):l===32?i.info.codec="pcm-f32be":l===64?i.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${l}.`),i.info.codec=null));break}case"dOps":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio"),e.skip(1);let o=E(e),c=j(e),l=P(e),u=Ft(e),d=E(e),f;d!==0?f=D(e,2+o):f=new Uint8Array(0);let m=new Uint8Array(19+f.byteLength),h=new DataView(m.buffer);h.setUint32(0,1332770163,!1),h.setUint32(4,1214603620,!1),h.setUint8(8,1),h.setUint8(9,o),h.setUint16(10,c,!0),h.setUint32(12,l,!0),h.setInt16(16,u,!0),h.setUint8(18,d),m.set(f,19),i.info.codecDescription=m,i.info.numberOfChannels=o,i.info.sampleRate=l}break;case"dfLa":{let i=this.currentTrack;if(!i)break;b(i.info?.type==="audio"),e.skip(4);let o=127,c=128,l=e.filePos;for(;e.filePos<a;){let h=E(e),g=st(e);if((h&o)===0){e.skip(10);let S=P(e),p=S>>>12,w=(S>>9&7)+1;i.info.sampleRate=p,i.info.numberOfChannels=w,e.skip(20)}else e.skip(g);if(h&c)break}let u=e.filePos;e.filePos=l;let d=D(e,u-l),f=new Uint8Array(4+d.byteLength);new DataView(f.buffer).setUint32(0,1716281667,!1),f.set(d,4),i.info.codecDescription=f}break;case"stts":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let o=P(e),c=0,l=0;for(let u=0;u<o;u++){let d=P(e),f=P(e);i.sampleTable.sampleTimingEntries.push({startIndex:c,startDecodeTimestamp:l,count:d,delta:f}),c+=d,l+=d*f}}break;case"ctts":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let o=P(e),c=0;for(let l=0;l<o;l++){let u=P(e),d=be(e);i.sampleTable.sampleCompositionTimeOffsets.push({startIndex:c,count:u,offset:d}),c+=u}}break;case"stsz":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let o=P(e),c=P(e);if(o===0)for(let l=0;l<c;l++){let u=P(e);i.sampleTable.sampleSizes.push(u)}else i.sampleTable.sampleSizes.push(o)}break;case"stz2":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4),e.skip(3);let o=E(e),c=P(e),l=D(e,Math.ceil(c*o/8)),u=new U(l);for(let d=0;d<c;d++){let f=u.readBits(o);i.sampleTable.sampleSizes.push(f)}}break;case"stss":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4),i.sampleTable.keySampleIndices=[];let o=P(e);for(let c=0;c<o;c++){let l=P(e)-1;i.sampleTable.keySampleIndices.push(l)}i.sampleTable.keySampleIndices[0]!==0&&i.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let o=P(e);for(let l=0;l<o;l++){let u=P(e)-1,d=P(e),f=P(e);i.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:u,samplesPerChunk:d,sampleDescriptionIndex:f})}let c=0;for(let l=0;l<i.sampleTable.sampleToChunk.length;l++)if(i.sampleTable.sampleToChunk[l].startSampleIndex=c,l<i.sampleTable.sampleToChunk.length-1){let d=i.sampleTable.sampleToChunk[l+1].startChunkIndex-i.sampleTable.sampleToChunk[l].startChunkIndex;c+=d*i.sampleTable.sampleToChunk[l].samplesPerChunk}}break;case"stco":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let o=P(e);for(let c=0;c<o;c++){let l=P(e);i.sampleTable.chunkOffsets.push(l)}}break;case"co64":{let i=this.currentTrack;if(!i||!i.sampleTable)break;e.skip(4);let o=P(e);for(let c=0;c<o;c++){let l=J(e);i.sampleTable.chunkOffsets.push(l)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(s,n.contentSize));break;case"mehd":{let i=E(e);e.skip(3);let o=i===1?J(e):P(e);this.movieDurationInTimescale=o}break;case"trex":{e.skip(4);let i=P(e),o=P(e),c=P(e),l=P(e),u=P(e);this.fragmentTrackDefaults.push({trackId:i,defaultSampleDescriptionIndex:o,defaultSampleDuration:c,defaultSampleSize:l,defaultSampleFlags:u})}break;case"tfra":{let i=E(e);e.skip(3);let o=P(e),c=this.tracks.find(p=>p.id===o);if(!c)break;c.fragmentLookupTable=[];let l=P(e),u=(l&48)>>4,d=(l&12)>>2,f=l&3,m=[E,j,st,P],h=m[u],g=m[d],y=m[f],S=P(e);for(let p=0;p<S;p++){let w=i===1?J(e):P(e),k=i===1?J(e):P(e);h(e),g(e),y(e),c.fragmentLookupTable.push({timestamp:w,moofOffset:k})}}break;case"moof":{this.currentFragment={moofOffset:t,moofSize:n.totalSize,implicitBaseDataOffset:t,trackData:new Map,dataStart:1/0,dataEnd:0,nextFragment:null,isKnownToBeFirstFragment:!1},this.readContiguousBoxes(e.slice(s,n.contentSize)),te(this.fragments,this.currentFragment,i=>i.moofOffset);for(let[,i]of this.currentFragment.trackData){let o=i.samples[0],c=W(i.samples);this.currentFragment.dataStart=Math.min(this.currentFragment.dataStart,o.byteOffset),this.currentFragment.dataEnd=Math.max(this.currentFragment.dataEnd,c.byteOffset+c.byteSize)}this.currentFragment=null}break;case"traf":if(b(this.currentFragment),this.readContiguousBoxes(e.slice(s,n.contentSize)),this.currentTrack){let i=this.currentFragment.trackData.get(this.currentTrack.id);if(i){te(this.currentTrack.fragments,this.currentFragment,l=>l.moofOffset),i.firstKeyFrameTimestamp!==null&&te(this.currentTrack.fragmentsWithKeyFrame,this.currentFragment,l=>l.moofOffset);let{currentFragmentState:c}=this.currentTrack;b(c),c.startTimestamp!==null&&(Si(i,c.startTimestamp),i.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{b(this.currentFragment),e.skip(1);let i=st(e),o=!!(i&1),c=!!(i&2),l=!!(i&8),u=!!(i&16),d=!!(i&32),f=!!(i&65536),m=!!(i&131072),h=P(e),g=this.tracks.find(S=>S.id===h);if(!g)break;let y=this.fragmentTrackDefaults.find(S=>S.trackId===h);this.currentTrack=g,g.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:y?.defaultSampleDescriptionIndex??null,defaultSampleDuration:y?.defaultSampleDuration??null,defaultSampleSize:y?.defaultSampleSize??null,defaultSampleFlags:y?.defaultSampleFlags??null,startTimestamp:null},o?g.currentFragmentState.baseDataOffset=J(e):m&&(g.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),c&&(g.currentFragmentState.sampleDescriptionIndex=P(e)),l&&(g.currentFragmentState.defaultSampleDuration=P(e)),u&&(g.currentFragmentState.defaultSampleSize=P(e)),d&&(g.currentFragmentState.defaultSampleFlags=P(e)),f&&(g.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let i=this.currentTrack;if(!i)break;b(i.currentFragmentState);let o=E(e);e.skip(3);let c=o===0?P(e):J(e);i.currentFragmentState.startTimestamp=c}break;case"trun":{let i=this.currentTrack;if(!i)break;if(b(this.currentFragment),b(i.currentFragmentState),this.currentFragment.trackData.has(i.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let o=E(e),c=st(e),l=!!(c&1),u=!!(c&4),d=!!(c&256),f=!!(c&512),m=!!(c&1024),h=!!(c&2048),g=P(e),y=i.currentFragmentState.baseDataOffset;l&&(y+=be(e));let S=null;u&&(S=P(e));let p=y;if(g===0){this.currentFragment.implicitBaseDataOffset=p;break}let w=0,k={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(i.id,k);for(let v=0;v<g;v++){let F;d?F=P(e):(b(i.currentFragmentState.defaultSampleDuration!==null),F=i.currentFragmentState.defaultSampleDuration);let A;f?A=P(e):(b(i.currentFragmentState.defaultSampleSize!==null),A=i.currentFragmentState.defaultSampleSize);let _;m?_=P(e):(b(i.currentFragmentState.defaultSampleFlags!==null),_=i.currentFragmentState.defaultSampleFlags),v===0&&S!==null&&(_=S);let B=0;h&&(o===0?B=P(e):B=be(e));let L=!(_&65536);k.samples.push({presentationTimestamp:w+B,duration:F,byteOffset:p,byteSize:A,isKeyFrame:L}),p+=A,w+=F}k.presentationTimestamps=k.samples.map((v,F)=>({presentationTimestamp:v.presentationTimestamp,sampleIndex:F})).sort((v,F)=>v.presentationTimestamp-F.presentationTimestamp);for(let v=0;v<k.presentationTimestamps.length;v++){let F=k.presentationTimestamps[v],A=k.samples[F.sampleIndex];if(k.firstKeyFrameTimestamp===null&&A.isKeyFrame&&(k.firstKeyFrameTimestamp=A.presentationTimestamp),v<k.presentationTimestamps.length-1){let _=k.presentationTimestamps[v+1];A.duration=_.presentationTimestamp-F.presentationTimestamp}}let x=k.samples[k.presentationTimestamps[0].sampleIndex],C=k.samples[W(k.presentationTimestamps).sampleIndex];k.startTimestamp=x.presentationTimestamp,k.endTimestamp=C.presentationTimestamp+C.duration,this.currentFragment.implicitBaseDataOffset=p}break;case"udta":{let i=this.iterateContiguousBoxes(e.slice(s,n.contentSize));for(let{boxInfo:o,slice:c}of i){if(o.name!=="meta"&&!this.currentTrack){let l=c.filePos;this.metadataTags.raw??={},va.has(o.name)?this.metadataTags.raw[o.name]??=re(c):this.metadataTags.raw[o.name]??=D(c,o.contentSize),c.filePos=l}switch(o.name){case"meta":c.skip(-o.headerSize),this.traverseBox(c);break;case"\xA9nam":case"name":this.currentTrack?this.currentTrack.name=G.decode(D(c,o.contentSize)):this.metadataTags.title??=re(c);break;case"\xA9des":this.currentTrack||(this.metadataTags.description??=re(c));break;case"\xA9ART":this.currentTrack||(this.metadataTags.artist??=re(c));break;case"\xA9alb":this.currentTrack||(this.metadataTags.album??=re(c));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=re(c));break;case"\xA9gen":this.currentTrack||(this.metadataTags.genre??=re(c));break;case"\xA9day":if(!this.currentTrack){let l=new Date(re(c));Number.isNaN(l.getTime())||(this.metadataTags.date??=l)}break;case"\xA9cmt":this.currentTrack||(this.metadataTags.comment??=re(c));break;case"\xA9lyr":this.currentTrack||(this.metadataTags.lyrics??=re(c));break}}}break;case"meta":{if(this.currentTrack)break;let o=P(e)!==0;this.currentMetadataKeys=new Map,o?this.readContiguousBoxes(e.slice(s,n.contentSize)):this.readContiguousBoxes(e.slice(s+4,n.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;e.skip(4);let i=P(e);for(let o=0;o<i;o++){let c=P(e);e.skip(4);let l=G.decode(D(e,c-8));this.currentMetadataKeys.set(o+1,l)}}break;case"ilst":{if(!this.currentMetadataKeys)break;let i=this.iterateContiguousBoxes(e.slice(s,n.contentSize));for(let{boxInfo:o,slice:c}of i){let l=o.name,u=(l.charCodeAt(0)<<24)+(l.charCodeAt(1)<<16)+(l.charCodeAt(2)<<8)+l.charCodeAt(3);this.currentMetadataKeys.has(u)&&(l=this.currentMetadataKeys.get(u));let d=ri(c);switch(this.metadataTags.raw??={},this.metadataTags.raw[l]??=d,l){case"\xA9nam":case"titl":case"com.apple.quicktime.title":case"title":typeof d=="string"&&(this.metadataTags.title??=d);break;case"\xA9des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":typeof d=="string"&&(this.metadataTags.description??=d);break;case"\xA9ART":case"com.apple.quicktime.artist":case"artist":typeof d=="string"&&(this.metadataTags.artist??=d);break;case"\xA9alb":case"albm":case"com.apple.quicktime.album":case"album":typeof d=="string"&&(this.metadataTags.album??=d);break;case"aART":case"album_artist":typeof d=="string"&&(this.metadataTags.albumArtist??=d);break;case"\xA9cmt":case"com.apple.quicktime.comment":case"comment":typeof d=="string"&&(this.metadataTags.comment??=d);break;case"\xA9gen":case"gnre":case"com.apple.quicktime.genre":case"genre":typeof d=="string"&&(this.metadataTags.genre??=d);break;case"\xA9lyr":case"lyrics":typeof d=="string"&&(this.metadataTags.lyrics??=d);break;case"\xA9day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if(typeof d=="string"){let f=new Date(d);Number.isNaN(f.getTime())||(this.metadataTags.date??=f)}break;case"covr":case"com.apple.quicktime.artwork":d instanceof ve?(this.metadataTags.images??=[],this.metadataTags.images.push({data:d.data,kind:"coverFront",mimeType:d.mimeType})):d instanceof Uint8Array&&(this.metadataTags.images??=[],this.metadataTags.images.push({data:d,kind:"coverFront",mimeType:"image/*"}));break;case"trkn":if(d instanceof Uint8Array){let f=z(d),m=f.getUint16(2,!1),h=f.getUint16(4,!1);m>0&&(this.metadataTags.trackNumber??=m),h>0&&(this.metadataTags.tracksTotal??=h)}break;case"disc":case"disk":if(d instanceof Uint8Array){let f=z(d),m=f.getUint16(2,!1),h=f.getUint16(4,!1);m>0&&(this.metadataTags.discNumber??=m),h>0&&(this.metadataTags.discsTotal??=h)}break}}}break}return e.filePos=a,!0}},qr=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async getFirstPacket(e){let t=await this.fetchPacketForSampleIndex(0,e);return t||!this.internalTrack.demuxer.isFragmented?t:this.performFragmentedLookup(()=>{let n=this.internalTrack.demuxer.fragments[0]??null;if(n?.isKnownToBeFirstFragment){let s=n;for(;s;){if(s.trackData.get(this.internalTrack.id))return{fragmentIndex:M(this.internalTrack.fragments,s.moofOffset,i=>i.moofOffset),sampleIndex:0,correctSampleFound:!0};s=s.nextFragment}}return{fragmentIndex:-1,sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return Ue(e*this.internalTrack.timescale,14)+this.internalTrack.editListOffset}async getPacket(e,t){let n=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a=wi(s,n),i=await this.fetchPacketForSampleIndex(a,t);return!Ti(s)||!this.internalTrack.demuxer.isFragmented?i:this.performFragmentedLookup(()=>this.findSampleInFragmentsForTimestamp(n),n,n,t)}async getNextPacket(e,t){let n=this.packetToSampleIndex.get(e);if(n!==void 0)return this.fetchPacketForSampleIndex(n+1,t);let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let a=s.fragment.trackData.get(this.internalTrack.id),i=M(this.internalTrack.fragments,s.fragment.moofOffset,o=>o.moofOffset);return b(i!==-1),this.performFragmentedLookup(()=>{if(s.sampleIndex+1<a.samples.length)return{fragmentIndex:i,sampleIndex:s.sampleIndex+1,correctSampleFound:!0};{let o=s.fragment;for(;o.nextFragment;)if(o=o.nextFragment,o.trackData.get(this.internalTrack.id)){let l=M(this.internalTrack.fragments,o.moofOffset,u=>u.moofOffset);return b(l!==-1),{fragmentIndex:l,sampleIndex:0,correctSampleFound:!0}}return{fragmentIndex:i,sampleIndex:-1,correctSampleFound:!1}}},-1/0,1/0,t)}async getKeyPacket(e,t){let n=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),a=wi(s,n),i=a===-1?-1:Ea(s,a),o=await this.fetchPacketForSampleIndex(i,t);return!Ti(s)||!this.internalTrack.demuxer.isFragmented?o:this.performFragmentedLookup(()=>this.findKeySampleInFragmentsForTimestamp(n),n,n,t)}async getNextKeyPacket(e,t){let n=this.packetToSampleIndex.get(e);if(n!==void 0){let o=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),c=_a(o,n);return this.fetchPacketForSampleIndex(c,t)}let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let a=s.fragment.trackData.get(this.internalTrack.id),i=M(this.internalTrack.fragments,s.fragment.moofOffset,o=>o.moofOffset);return b(i!==-1),this.performFragmentedLookup(()=>{let o=a.samples.findIndex((c,l)=>c.isKeyFrame&&l>s.sampleIndex);if(o!==-1)return{fragmentIndex:i,sampleIndex:o,correctSampleFound:!0};{let c=s.fragment;for(;c.nextFragment;){c=c.nextFragment;let l=c.trackData.get(this.internalTrack.id);if(l&&l.firstKeyFrameTimestamp!==null){let u=M(this.internalTrack.fragments,c.moofOffset,f=>f.moofOffset);b(u!==-1);let d=l.samples.findIndex(f=>f.isKeyFrame);return b(d!==-1),{fragmentIndex:u,sampleIndex:d,correctSampleFound:!0}}}return{fragmentIndex:i,sampleIndex:-1,correctSampleFound:!1}}},-1/0,1/0,t)}async fetchPacketForSampleIndex(e,t){if(e===-1)return null;let n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=Ia(n,e);if(!s)return null;let a;if(t.metadataOnly)a=$;else{let l=this.internalTrack.demuxer.reader.requestSlice(s.sampleOffset,s.sampleSize);l instanceof Promise&&(l=await l),b(l),a=D(l,s.sampleSize)}let i=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,o=s.duration/this.internalTrack.timescale,c=new N(a,s.isKeyFrame?"key":"delta",i,o,e,s.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,t,n){if(t===-1)return null;let a=e.trackData.get(this.internalTrack.id).samples[t];b(a);let i;if(n.metadataOnly)i=$;else{let u=this.internalTrack.demuxer.reader.requestSlice(a.byteOffset,a.byteSize);u instanceof Promise&&(u=await u),b(u),i=D(u,a.byteSize)}let o=(a.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=a.duration/this.internalTrack.timescale,l=new N(i,a.isKeyFrame?"key":"delta",o,c,e.moofOffset+t,a.byteSize);return this.packetToFragmentLocation.set(l,{fragment:e,sampleIndex:t}),l}findSampleInFragmentsForTimestamp(e){let t=R(this.internalTrack.fragments,e,a=>a.trackData.get(this.internalTrack.id).startTimestamp),n=-1,s=!1;if(t!==-1){let i=this.internalTrack.fragments[t].trackData.get(this.internalTrack.id),o=R(i.presentationTimestamps,e,c=>c.presentationTimestamp);b(o!==-1),n=i.presentationTimestamps[o].sampleIndex,s=e<i.endTimestamp}return{fragmentIndex:t,sampleIndex:n,correctSampleFound:s}}findKeySampleInFragmentsForTimestamp(e){let t=R(this.internalTrack.fragmentsWithKeyFrame,e,i=>i.trackData.get(this.internalTrack.id).startTimestamp),n=-1,s=-1,a=!1;if(t!==-1){let i=this.internalTrack.fragmentsWithKeyFrame[t];n=M(this.internalTrack.fragments,i.moofOffset,u=>u.moofOffset),b(n!==-1);let o=i.trackData.get(this.internalTrack.id),c=br(o.presentationTimestamps,u=>o.samples[u.sampleIndex].isKeyFrame&&u.presentationTimestamp<=e);b(c!==-1),s=o.presentationTimestamps[c].sampleIndex,a=e<o.endTimestamp}return{fragmentIndex:n,sampleIndex:s,correctSampleFound:a}}async performFragmentedLookup(e,t,n,s){let a=this.internalTrack.demuxer,i=await a.fragmentLookupMutex.acquire();try{let{fragmentIndex:o,sampleIndex:c,correctSampleFound:l}=e();if(l){let p=this.internalTrack.fragments[o];return this.fetchPacketInFragment(p,c,s)}let u=null,d=o,f=c,m=this.internalTrack.fragmentLookupTable?R(this.internalTrack.fragmentLookupTable,t,p=>p.timestamp):-1,h=m!==-1?this.internalTrack.fragmentLookupTable[m]:null,g,y=!1;if(o===-1)g=h?.moofOffset??0,y=g===0;else{let p=this.internalTrack.fragments[o];!h||p.moofOffset>=h.moofOffset?(g=p.moofOffset+p.moofSize,u=p):g=h.moofOffset}for(;;){if(u){let x=u.trackData.get(this.internalTrack.id);if(x&&x.startTimestamp>n)break;if(u.nextFragment){g=u.nextFragment.moofOffset+u.nextFragment.moofSize,u=u.nextFragment;continue}}let p=a.reader.requestSliceRange(g,ye,qe);if(p instanceof Promise&&(p=await p),!p)break;let w=g,k=ue(p);if(!k)break;if(k.name==="moof"){let x=M(a.fragments,w,_=>_.moofOffset),C;x===-1?C=await a.readFragment(w):C=a.fragments[x],u&&(u.nextFragment=C),u=C,y&&(C.isKnownToBeFirstFragment=!0,y=!1);let{fragmentIndex:v,sampleIndex:F,correctSampleFound:A}=e();if(A){let _=this.internalTrack.fragments[v];return this.fetchPacketInFragment(_,F,s)}v!==-1&&(d=v,f=F)}g=w+k.totalSize}let S=d!==-1?this.internalTrack.fragments[d]:null;if(h&&(!S||S.moofOffset<h.moofOffset)){let w=this.internalTrack.fragmentLookupTable[m-1]?.timestamp??-1/0;return this.performFragmentedLookup(e,w,n,s)}return S?this.fetchPacketInFragment(S,f,s):null}finally{i()}}},Qn=class extends qr{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&Ir(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&Er(e.data)}return{codec:Tr(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},Zn=class extends qr{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Pr(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},wi=(r,e)=>{if(r.presentationTimestamps){let t=R(r.presentationTimestamps,e,n=>n.presentationTimestamp);return t===-1?-1:r.presentationTimestamps[t].sampleIndex}else{let t=R(r.sampleTimingEntries,e,s=>s.startDecodeTimestamp);if(t===-1)return-1;let n=r.sampleTimingEntries[t];return n.startIndex+Math.min(Math.floor((e-n.startDecodeTimestamp)/n.delta),n.count-1)}},Ia=(r,e)=>{let t=R(r.sampleTimingEntries,e,S=>S.startIndex),n=r.sampleTimingEntries[t];if(!n||n.startIndex+n.count<=e)return null;let a=n.startDecodeTimestamp+(e-n.startIndex)*n.delta,i=R(r.sampleCompositionTimeOffsets,e,S=>S.startIndex),o=r.sampleCompositionTimeOffsets[i];o&&e-o.startIndex<o.count&&(a+=o.offset);let c=r.sampleSizes[Math.min(e,r.sampleSizes.length-1)],l=R(r.sampleToChunk,e,S=>S.startSampleIndex),u=r.sampleToChunk[l];b(u);let d=u.startChunkIndex+Math.floor((e-u.startSampleIndex)/u.samplesPerChunk),f=r.chunkOffsets[d],m=u.startSampleIndex+(d-u.startChunkIndex)*u.samplesPerChunk,h=0,g=f;if(r.sampleSizes.length===1)g+=c*(e-m),h+=c*u.samplesPerChunk;else for(let S=m;S<m+u.samplesPerChunk;S++){let p=r.sampleSizes[S];S<e&&(g+=p),h+=p}let y=n.delta;if(r.presentationTimestamps){let S=r.presentationTimestampIndexMap[e];b(S!==void 0),S<r.presentationTimestamps.length-1&&(y=r.presentationTimestamps[S+1].presentationTimestamp-a)}return{presentationTimestamp:a,duration:y,sampleOffset:g,sampleSize:c,chunkOffset:f,chunkSize:h,isKeyFrame:r.keySampleIndices?M(r.keySampleIndices,e,S=>S)!==-1:!0}},Ea=(r,e)=>{if(!r.keySampleIndices)return e;let t=R(r.keySampleIndices,e,n=>n);return r.keySampleIndices[t]??-1},_a=(r,e)=>{if(!r.keySampleIndices)return e+1;let t=R(r.keySampleIndices,e,n=>n);return r.keySampleIndices[t+1]??-1},Si=(r,e)=>{r.startTimestamp+=e,r.endTimestamp+=e;for(let t of r.samples)t.presentationTimestamp+=e;for(let t of r.presentationTimestamps)t.presentationTimestamp+=e},Aa=r=>{let[e,,,t]=r,n=Math.hypot(e,t),s=e/n,a=t/n,i=-Math.atan2(a,s)*(180/Math.PI);return Number.isFinite(i)?i:0},Ti=r=>r.sampleSizes.length===0;var we;(function(r){r[r.None=0]="None",r[r.Xiph=1]="Xiph",r[r.FixedSize=2]="FixedSize",r[r.Ebml=3]="Ebml"})(we||(we={}));var Yn=[{id:T.SeekHead,flag:"seekHeadSeen"},{id:T.Info,flag:"infoSeen"},{id:T.Tracks,flag:"tracksSeen"},{id:T.Cues,flag:"cuesSeen"}],Pi=10*2**20,jr=class extends Y{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentCueTime=null,this.currentTagTargetIsMovie=!0,this.currentSimpleTagName=null,this.currentAttachedFile=null,this.isWebM=!1,this.reader=e._reader}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(n=>n.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(t=>t.inputTrack))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),t=await Promise.all(e.map(n=>n.getCodecParameterString()));return si({isWebM:this.isWebM,hasVideo:this.segments.some(n=>n.tracks.some(s=>s.info?.type==="video")),hasAudio:this.segments.some(n=>n.tracks.some(s=>s.info?.type==="audio")),codecStrings:t.filter(Boolean)})}async getMetadataTags(){await this.readMetadata();for(let t of this.segments)t.metadataTagsCollected||(this.reader.fileSize!==null&&await this.loadSegmentMetadata(t),t.metadataTagsCollected=!0);let e={};for(let t of this.segments)e={...e,...t.metadataTags};return e}readMetadata(){return this.readMetadataPromise??=(async()=>{let e=0;for(;;){let t=this.reader.requestSliceRange(e,Z,ne);if(t instanceof Promise&&(t=await t),!t)break;let n=se(t);if(!n)break;let s=n.id,a=n.size,i=t.filePos;if(s===T.EBML){ke(a);let o=this.reader.requestSlice(i,a);if(o instanceof Promise&&(o=await o),!o)break;this.readContiguousElements(o)}else if(s===T.Segment){if(await this.readSegment(i,a),a===null||this.reader.fileSize===null)break}else if(s===T.Cluster){if(this.reader.fileSize===null)break;a===null&&(a=(await zr(this.reader,i,Br,this.reader.fileSize)).pos-i);let o=W(this.segments);o&&(o.elementEndPos=i+a)}ke(a),e=i+a}})()}async readSegment(e,t){this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,tagsSeen:!1,attachmentsSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:e,elementEndPos:t===null?null:e+t,clusterSeekStartPos:e,clusters:[],clusterLookupMutex:new ee,metadataTags:{},metadataTagsCollected:!1},this.segments.push(this.currentSegment);let n=e;for(;this.currentSegment.elementEndPos===null||n<this.currentSegment.elementEndPos;){let c=this.reader.requestSliceRange(n,Z,ne);if(c instanceof Promise&&(c=await c),!c)break;let l=n,u=se(c);if(!u||!it.includes(u.id)&&u.id!==T.Void){let g=await Hn(this.reader,l,it,Math.min(this.currentSegment.elementEndPos??1/0,l+Pi));if(g){n=g;continue}else break}let{id:d,size:f}=u,m=c.filePos,h=Yn.findIndex(g=>g.id===d);if(h!==-1){let g=Yn[h].flag;this.currentSegment[g]=!0,ke(f);let y=this.reader.requestSlice(m,f);y instanceof Promise&&(y=await y),y&&this.readContiguousElements(y)}else if(d===T.Tags||d===T.Attachments){d===T.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,ke(f);let g=this.reader.requestSlice(m,f);g instanceof Promise&&(g=await g),g&&this.readContiguousElements(g)}else if(d===T.Cluster){this.currentSegment.clusterSeekStartPos=l;break}if(f===null)break;n=m+f}if(this.currentSegment.seekEntries.sort((c,l)=>c.segmentPosition-l.segmentPosition),this.reader.fileSize!==null)for(let c of this.currentSegment.seekEntries){let l=Yn.find(g=>g.id===c.id);if(!l||this.currentSegment[l.flag])continue;let u=this.reader.requestSliceRange(e+c.segmentPosition,Z,ne);if(u instanceof Promise&&(u=await u),!u)continue;let d=se(u);if(!d)continue;let{id:f,size:m}=d;if(f!==l.id)continue;ke(m),this.currentSegment[l.flag]=!0;let h=this.reader.requestSlice(u.filePos,m);h instanceof Promise&&(h=await h),h&&this.readContiguousElements(h)}this.currentSegment.timestampScale===-1&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e9/1e6),this.currentSegment.tracks.sort((c,l)=>Number(l.isDefault)-Number(c.isDefault)),this.currentSegment.cuePoints.sort((c,l)=>c.clusterPosition-l.clusterPosition);let s=this.currentSegment.tracks.map(c=>c.id),a=new Set,i=null,o=null;for(let c of this.currentSegment.cuePoints){if(c.clusterPosition!==i){for(let u of a)b(o),this.currentSegment.tracks.find(f=>f.id===u).cuePoints.push(o);for(let u of s)a.add(u)}if(o=c,!a.has(c.trackId))continue;this.currentSegment.tracks.find(u=>u.id===c.trackId).cuePoints.push(c),a.delete(c.trackId),i=c.clusterPosition}for(let c of a)b(o),this.currentSegment.tracks.find(u=>u.id===c).cuePoints.push(o);for(let c of this.currentSegment.tracks)c.cuePoints.sort((l,u)=>l.time-u.time);this.currentSegment=null}async readCluster(e,t){let n=this.reader.requestSliceRange(e,Z,ne);n instanceof Promise&&(n=await n),b(n);let s=e,a=se(n);b(a);let i=a.id,o=a.size,c=n.filePos;o===null&&(o=(await zr(this.reader,c,Br,t.elementEndPos)).pos-c),b(i===T.Cluster);let l=this.reader.requestSlice(c,o);l instanceof Promise&&(l=await l);let u={elementStartPos:s,elementEndPos:c+o,dataStartPos:c,timestamp:-1,trackData:new Map,nextCluster:null,isKnownToBeFirstCluster:!1};this.currentCluster=u,l&&this.readContiguousElements(l);for(let[d,f]of u.trackData){let m=t.tracks.find(p=>p.id===d)??null;b(f.blocks.length>0);let h=!1,g=!1;for(let p=0;p<f.blocks.length;p++){let w=f.blocks[p];w.timestamp+=u.timestamp,h||=w.referencedTimestamps.length>0,g||=w.lacing!==we.None}h&&(f.blocks=Fa(f.blocks)),f.presentationTimestamps=f.blocks.map((p,w)=>({timestamp:p.timestamp,blockIndex:w})).sort((p,w)=>p.timestamp-w.timestamp);for(let p=0;p<f.presentationTimestamps.length;p++){let w=f.presentationTimestamps[p],k=f.blocks[w.blockIndex];if(f.firstKeyFrameTimestamp===null&&k.isKeyFrame&&(f.firstKeyFrameTimestamp=k.timestamp),p<f.presentationTimestamps.length-1){let x=f.presentationTimestamps[p+1];k.duration=x.timestamp-k.timestamp}else k.duration===0&&m?.defaultDuration!=null&&k.lacing===we.None&&(k.duration=m.defaultDuration)}g&&(this.expandLacedBlocks(f.blocks,m),f.presentationTimestamps=f.blocks.map((p,w)=>({timestamp:p.timestamp,blockIndex:w})).sort((p,w)=>p.timestamp-w.timestamp));let y=f.blocks[f.presentationTimestamps[0].blockIndex],S=f.blocks[W(f.presentationTimestamps).blockIndex];f.startTimestamp=y.timestamp,f.endTimestamp=S.timestamp+S.duration,m&&(te(m.clusters,u,w=>w.elementStartPos),f.firstKeyFrameTimestamp!==null&&te(m.clustersWithKeyFrame,u,w=>w.elementStartPos))}return te(t.clusters,u,d=>d.elementStartPos),this.currentCluster=null,u}getTrackDataInCluster(e,t){let n=e.trackData.get(t);return n||(n={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(t,n)),n}expandLacedBlocks(e,t){for(let n=0;n<e.length;n++){let s=e[n];if(s.lacing===we.None)continue;let a=rt.tempFromBytes(s.data),i=[],o=E(a)+1;switch(s.lacing){case we.Xiph:{let c=0;for(let l=0;l<o-1;l++){let u=0;for(;a.bufferPos<a.length;){let d=E(a);if(u+=d,d<255){i.push(u),c+=u;break}}}i.push(a.length-(a.bufferPos+c))}break;case we.FixedSize:{let c=a.length-1,l=Math.floor(c/o);for(let u=0;u<o;u++)i.push(l)}break;case we.Ebml:{let c=at(a);b(c!==null);let l=c;i.push(l);let u=l;for(let d=1;d<o-1;d++){let f=a.bufferPos,m=at(a);b(m!==null);let h=m,y=(1<<(a.bufferPos-f)*7-1)-1,S=h-y;l+=S,i.push(l),u+=l}i.push(a.length-(a.bufferPos+u))}break;default:b(!1)}b(i.length===o),e.splice(n,1);for(let c=0;c<o;c++){let l=i[c],u=D(a,l),d=s.duration||o*(t?.defaultDuration??0),f=s.timestamp+d*c/o,m=d/o;e.splice(n+c,0,{timestamp:f,duration:m,isKeyFrame:s.isKeyFrame,referencedTimestamps:s.referencedTimestamps,data:u,lacing:we.None})}n+=o,n--}}async loadSegmentMetadata(e){for(let t of e.seekEntries){if(!(t.id===T.Tags&&!e.tagsSeen)){if(!(t.id===T.Attachments&&!e.attachmentsSeen))continue}let n=this.reader.requestSliceRange(e.dataStartPos+t.segmentPosition,Z,ne);if(n instanceof Promise&&(n=await n),!n)continue;let s=se(n);if(!s||s.id!==t.id)continue;let{size:a}=s;ke(a),b(!this.currentSegment),this.currentSegment=e;let i=this.reader.requestSlice(n.filePos,a);i instanceof Promise&&(i=await i),i&&this.readContiguousElements(i),this.currentSegment=null,t.id===T.Tags?e.tagsSeen=!0:t.id===T.Attachments&&(e.attachmentsSeen=!0)}}readContiguousElements(e){let t=e.filePos;for(;e.filePos-t<=e.length-Z&&this.traverseElement(e););}traverseElement(e){let t=se(e);if(!t)return!1;let{id:n,size:s}=t,a=e.filePos;switch(ke(s),n){case T.DocType:this.isWebM=Ee(e,s)==="webm";break;case T.Seek:{if(!this.currentSegment)break;let i={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(i),this.readContiguousElements(e.slice(a,s)),(i.id===-1||i.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case T.SeekID:{let i=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!i)break;i.id=O(e,s)}break;case T.SeekPosition:{let i=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!i)break;i.segmentPosition=O(e,s)}break;case T.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=O(e,s),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case T.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=Or(e,s)}break;case T.TrackEntry:{if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusters:[],clustersWithKeyFrame:[],cuePoints:[],isDefault:!1,inputTrack:null,codecId:null,codecPrivate:null,defaultDuration:null,name:null,languageCode:q,info:null},this.readContiguousElements(e.slice(a,s)),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let i=this.currentTrack.codecId.indexOf("/"),o=i===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,i);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){this.currentTrack.codecId===ie.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===ie.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===ie.vp8?this.currentTrack.info.codec="vp8":o===ie.vp9?this.currentTrack.info.codec="vp9":o===ie.av1&&(this.currentTrack.info.codec="av1");let c=this.currentTrack,l=new de(new Jn(c));this.currentTrack.inputTrack=l,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){o===ie.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2")},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===ie.mp3?this.currentTrack.info.codec="mp3":o===ie.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===ie.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):o===ie.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let c=this.currentTrack,l=new K(new es(c));this.currentTrack.inputTrack=l,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case T.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=O(e,s)}break;case T.TrackType:{if(!this.currentTrack)break;let i=O(e,s);i===1?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null}:i===2&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case T.FlagEnabled:{if(!this.currentTrack)break;O(e,s)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case T.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.isDefault=!!O(e,s)}break;case T.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=Ee(e,s)}break;case T.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=D(e,s)}break;case T.DefaultDuration:{if(!this.currentTrack)break;this.currentTrack.defaultDuration=this.currentTrack.segment.timestampFactor*O(e,s)/1e9}break;case T.Name:{if(!this.currentTrack)break;this.currentTrack.name=ot(e,s)}break;case T.Language:{if(!this.currentTrack||this.currentTrack.languageCode!==q)break;this.currentTrack.languageCode=Ee(e,s),kr(this.currentTrack.languageCode)||(this.currentTrack.languageCode=q)}break;case T.LanguageBCP47:{if(!this.currentTrack)break;let o=Ee(e,s).split("-")[0];o?this.currentTrack.languageCode=o:this.currentTrack.languageCode=q}break;case T.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(a,s))}break;case T.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=O(e,s)}break;case T.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=O(e,s)}break;case T.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e.slice(a,s))}break;case T.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let i=O(e,s),o=gr[i]??null;this.currentTrack.info.colorSpace.matrix=o}break;case T.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=O(e,s)===2}break;case T.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let i=O(e,s),o=pr[i]??null;this.currentTrack.info.colorSpace.transfer=o}break;case T.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let i=O(e,s),o=hr[i]??null;this.currentTrack.info.colorSpace.primaries=o}break;case T.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(a,s))}break;case T.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let o=-Or(e,s);try{this.currentTrack.info.rotation=mr(o)}catch{}}break;case T.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e.slice(a,s))}break;case T.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=Or(e,s)}break;case T.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=O(e,s)}break;case T.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=O(e,s)}break;case T.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e.slice(a,s)),this.currentCueTime=null}break;case T.CueTime:this.currentCueTime=O(e,s);break;case T.CueTrackPositions:{if(this.currentCueTime===null)break;b(this.currentSegment);let i={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(i),this.readContiguousElements(e.slice(a,s)),(i.trackId===-1||i.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case T.CueTrack:{let i=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!i)break;i.trackId=O(e,s)}break;case T.CueClusterPosition:{let i=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!i)break;b(this.currentSegment),i.clusterPosition=this.currentSegment.dataStartPos+O(e,s)}break;case T.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=O(e,s)}break;case T.SimpleBlock:{if(!this.currentCluster)break;let i=at(e);if(i===null)break;let o=Ft(e),c=E(e),l=!!(c&128),u=c>>1&3;this.getTrackDataInCluster(this.currentCluster,i).blocks.push({timestamp:o,duration:0,isKeyFrame:l,referencedTimestamps:[],data:D(e,s-(e.filePos-a)),lacing:u})}break;case T.BlockGroup:{if(!this.currentCluster)break;if(this.readContiguousElements(e.slice(a,s)),this.currentBlock){for(let i=0;i<this.currentBlock.referencedTimestamps.length;i++)this.currentBlock.referencedTimestamps[i]+=this.currentBlock.timestamp;this.currentBlock=null}}break;case T.Block:{if(!this.currentCluster)break;let i=at(e);if(i===null)break;let o=Ft(e),l=E(e)>>1&3,u=this.getTrackDataInCluster(this.currentCluster,i);this.currentBlock={timestamp:o,duration:0,isKeyFrame:!0,referencedTimestamps:[],data:D(e,s-(e.filePos-a)),lacing:l},u.blocks.push(this.currentBlock)}break;case T.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=O(e,s)}break;case T.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;let i=ni(e,s);this.currentBlock.referencedTimestamps.push(i)}break;case T.Tag:this.currentTagTargetIsMovie=!0,this.readContiguousElements(e.slice(a,s));break;case T.Targets:this.readContiguousElements(e.slice(a,s));break;case T.TargetTypeValue:O(e,s)!==50&&(this.currentTagTargetIsMovie=!1);break;case T.TagTrackUID:case T.TagEditionUID:case T.TagChapterUID:case T.TagAttachmentUID:this.currentTagTargetIsMovie=!1;break;case T.SimpleTag:{if(!this.currentTagTargetIsMovie)break;this.currentSimpleTagName=null,this.readContiguousElements(e.slice(a,s))}break;case T.TagName:this.currentSimpleTagName=ot(e,s);break;case T.TagString:{if(!this.currentSimpleTagName)break;let i=ot(e,s);this.processTagValue(this.currentSimpleTagName,i)}break;case T.TagBinary:{if(!this.currentSimpleTagName)break;let i=D(e,s);this.processTagValue(this.currentSimpleTagName,i)}break;case T.AttachedFile:{if(!this.currentSegment)break;if(this.currentAttachedFile={fileName:null,fileMediaType:null,fileData:null,fileDescription:null},this.readContiguousElements(e.slice(a,s)),this.currentAttachedFile.fileMediaType?.startsWith("image/")&&this.currentAttachedFile.fileData){let i=this.currentAttachedFile.fileName,o="unknown";if(i){let c=i.toLowerCase();c.startsWith("cover.")?o="coverFront":c.startsWith("back.")&&(o="coverBack")}this.currentSegment.metadataTags.images??=[],this.currentSegment.metadataTags.images.push({data:this.currentAttachedFile.fileData,mimeType:this.currentAttachedFile.fileMediaType,kind:o,name:this.currentAttachedFile.fileName??void 0,description:this.currentAttachedFile.fileDescription??void 0})}this.currentAttachedFile=null}break;case T.FileName:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileName=ot(e,s)}break;case T.FileMediaType:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=Ee(e,s)}break;case T.FileData:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileData=D(e,s)}break;case T.FileDescription:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileDescription=ot(e,s)}break}return e.filePos=a+s,!0}processTagValue(e,t){if(!this.currentSegment?.metadataTags)return;let n=this.currentSegment.metadataTags;if(n.raw??={},n.raw[e]??=t,typeof t=="string")switch(e.toLowerCase()){case"title":n.title??=t;break;case"description":n.description??=t;break;case"artist":n.artist??=t;break;case"album":n.album??=t;break;case"album_artist":n.albumArtist??=t;break;case"genre":n.genre??=t;break;case"comment":n.comment??=t;break;case"lyrics":n.lyrics??=t;break;case"date":{let s=new Date(t);Number.isNaN(s.getTime())||(n.date??=s)}break;case"track_number":case"part_number":{let s=t.split("/"),a=Number.parseInt(s[0],10),i=s[1]&&Number.parseInt(s[1],10);Number.isInteger(a)&&a>0&&(n.trackNumber??=a),i&&Number.isInteger(i)&&i>0&&(n.tracksTotal??=i)}break;case"disc_number":case"disc":{let s=t.split("/"),a=Number.parseInt(s[0],10),i=s[1]&&Number.parseInt(s[1],10);Number.isInteger(a)&&a>0&&(n.discNumber??=a),i&&Number.isInteger(i)&&i>0&&(n.discsTotal??=i)}break}}},$r=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.codecId}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}getTimeResolution(){return this.internalTrack.segment.timestampFactor}async getFirstPacket(e){return this.performClusterLookup(()=>{let t=this.internalTrack.segment.clusters[0]??null;if(t?.isKnownToBeFirstCluster){let n=t;for(;n;){if(n.trackData.get(this.internalTrack.id))return{clusterIndex:M(this.internalTrack.clusters,n.elementStartPos,a=>a.elementStartPos),blockIndex:0,correctBlockFound:!0};n=n.nextCluster}}return{clusterIndex:-1,blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,e)}intoTimescale(e){return Ue(e*this.internalTrack.segment.timestampFactor,14)}async getPacket(e,t){let n=this.intoTimescale(e);return this.performClusterLookup(()=>this.findBlockInClustersForTimestamp(n),n,n,t)}async getNextPacket(e,t){let n=this.packetToClusterLocation.get(e);if(n===void 0)throw new Error("Packet was not created from this track.");let s=n.cluster.trackData.get(this.internalTrack.id),a=M(this.internalTrack.clusters,n.cluster.elementStartPos,i=>i.elementStartPos);return b(a!==-1),this.performClusterLookup(()=>{if(n.blockIndex+1<s.blocks.length)return{clusterIndex:a,blockIndex:n.blockIndex+1,correctBlockFound:!0};{let i=n.cluster;for(;i.nextCluster;)if(i=i.nextCluster,i.trackData.get(this.internalTrack.id)){let c=M(this.internalTrack.clusters,i.elementStartPos,l=>l.elementStartPos);return b(c!==-1),{clusterIndex:c,blockIndex:0,correctBlockFound:!0}}return{clusterIndex:a,blockIndex:-1,correctBlockFound:!1}}},-1/0,1/0,t)}async getKeyPacket(e,t){let n=this.intoTimescale(e);return this.performClusterLookup(()=>this.findKeyBlockInClustersForTimestamp(n),n,n,t)}async getNextKeyPacket(e,t){let n=this.packetToClusterLocation.get(e);if(n===void 0)throw new Error("Packet was not created from this track.");let s=n.cluster.trackData.get(this.internalTrack.id),a=M(this.internalTrack.clusters,n.cluster.elementStartPos,i=>i.elementStartPos);return b(a!==-1),this.performClusterLookup(()=>{let i=s.blocks.findIndex((o,c)=>o.isKeyFrame&&c>n.blockIndex);if(i!==-1)return{clusterIndex:a,blockIndex:i,correctBlockFound:!0};{let o=n.cluster;for(;o.nextCluster;){o=o.nextCluster;let c=o.trackData.get(this.internalTrack.id);if(c&&c.firstKeyFrameTimestamp!==null){let l=M(this.internalTrack.clusters,o.elementStartPos,d=>d.elementStartPos);b(l!==-1);let u=c.blocks.findIndex(d=>d.isKeyFrame);return b(u!==-1),{clusterIndex:l,blockIndex:u,correctBlockFound:!0}}}return{clusterIndex:a,blockIndex:-1,correctBlockFound:!1}}},-1/0,1/0,t)}async fetchPacketInCluster(e,t,n){if(t===-1)return null;let a=e.trackData.get(this.internalTrack.id).blocks[t];b(a);let i=n.metadataOnly?$:a.data,o=a.timestamp/this.internalTrack.segment.timestampFactor,c=a.duration/this.internalTrack.segment.timestampFactor,l=new N(i,a.isKeyFrame?"key":"delta",o,c,e.dataStartPos+t,a.data.byteLength);return this.packetToClusterLocation.set(l,{cluster:e,blockIndex:t}),l}findBlockInClustersForTimestamp(e){let t=R(this.internalTrack.clusters,e,a=>a.trackData.get(this.internalTrack.id).startTimestamp),n=-1,s=!1;if(t!==-1){let i=this.internalTrack.clusters[t].trackData.get(this.internalTrack.id),o=R(i.presentationTimestamps,e,c=>c.timestamp);b(o!==-1),n=i.presentationTimestamps[o].blockIndex,s=e<i.endTimestamp}return{clusterIndex:t,blockIndex:n,correctBlockFound:s}}findKeyBlockInClustersForTimestamp(e){let t=R(this.internalTrack.clustersWithKeyFrame,e,i=>i.trackData.get(this.internalTrack.id).firstKeyFrameTimestamp),n=-1,s=-1,a=!1;if(t!==-1){let i=this.internalTrack.clustersWithKeyFrame[t];n=M(this.internalTrack.clusters,i.elementStartPos,u=>u.elementStartPos),b(n!==-1);let o=i.trackData.get(this.internalTrack.id),c=br(o.presentationTimestamps,u=>o.blocks[u.blockIndex].isKeyFrame&&u.timestamp<=e);b(c!==-1),s=o.presentationTimestamps[c].blockIndex,a=e<o.endTimestamp}return{clusterIndex:n,blockIndex:s,correctBlockFound:a}}async performClusterLookup(e,t,n,s){let{demuxer:a,segment:i}=this.internalTrack,o=await i.clusterLookupMutex.acquire();try{let{clusterIndex:c,blockIndex:l,correctBlockFound:u}=e();if(u){let w=this.internalTrack.clusters[c];return this.fetchPacketInCluster(w,l,s)}let d=null,f=c,m=l,h=R(this.internalTrack.cuePoints,t,w=>w.time),g=h!==-1?this.internalTrack.cuePoints[h]:null,y,S=!1;if(c===-1)y=g?.clusterPosition??i.clusterSeekStartPos,S=y===i.clusterSeekStartPos;else{let w=this.internalTrack.clusters[c];!g||w.elementStartPos>=g.clusterPosition?(y=w.elementEndPos,d=w):y=g.clusterPosition}for(;i.elementEndPos===null||y<=i.elementEndPos-Z;){if(d){let A=d.trackData.get(this.internalTrack.id);if(A&&A.startTimestamp>n)break;if(d.nextCluster){y=d.nextCluster.elementEndPos,d=d.nextCluster;continue}}let w=a.reader.requestSliceRange(y,Z,ne);if(w instanceof Promise&&(w=await w),!w)break;let k=y,x=se(w);if(!x||!it.includes(x.id)&&x.id!==T.Void){let A=await Hn(a.reader,k,it,Math.min(i.elementEndPos??1/0,k+Pi));if(A){y=A;continue}else break}let C=x.id,v=x.size,F=w.filePos;if(C===T.Cluster){let A=M(i.clusters,k,Kt=>Kt.elementStartPos),_;A===-1?_=await a.readCluster(k,i):_=i.clusters[A],d&&(d.nextCluster=_),d=_,S&&(_.isKnownToBeFirstCluster=!0,S=!1);let{clusterIndex:B,blockIndex:L,correctBlockFound:Fe}=e();if(Fe){let Kt=this.internalTrack.clusters[B];return this.fetchPacketInCluster(Kt,L,s)}B!==-1&&(f=B,m=L)}if(v===null){C===T.Cluster?(b(d),v=d.elementEndPos-F):v=(await zr(a.reader,F,Br,i.elementEndPos)).pos-F;let A=F+v;if(i.elementEndPos!==null&&A>i.elementEndPos-Z)break;{let _=a.reader.requestSliceRange(A,Z,ne);if(_ instanceof Promise&&(_=await _),!_)break;if(Rr(_)===T.Segment){i.elementEndPos=A;break}}}y=F+v}let p=f!==-1?this.internalTrack.clusters[f]:null;if(g&&(!p||p.elementStartPos<g.clusterPosition)){let k=this.internalTrack.cuePoints[h-1]?.time??-1/0;return this.performClusterLookup(e,k,n,s)}return p?this.fetchPacketInCluster(p,m,s):null}finally{o()}}},Jn=class extends $r{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;return(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({})),{codec:Tr({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?js(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?$s(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Ir(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Er(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},es=class extends $r{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:Pr({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},Fa=r=>{let e=new Map;for(let a=0;a<r.length;a++){let i=r[a];e.set(i.timestamp,i)}let t=new Set,n=[],s=a=>{if(!t.has(a)){t.add(a);for(let i=0;i<a.referencedTimestamps.length;i++){let o=a.referencedTimestamps[i],c=e.get(o);c&&s(c)}n.push(a)}};for(let a=0;a<r.length;a++)s(r[a]);return n};var Kr=class extends Y{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.tracks=[],this.readingMutex=new ee,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();if(!this.firstFrameHeader)throw new Error("No valid MP3 frame found.");this.tracks=[new K(new ts(this))]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let o=this.reader.requestSlice(this.lastLoadedPos,ft);if(o instanceof Promise&&(o=await o),!o){this.lastSampleLoaded=!0;return}let c=Rt(o);if(!c)break;this.lastLoadedPos=o.filePos+c.size}let e=await Bt(this.reader,this.lastLoadedPos,this.reader.fileSize);if(!e){this.lastSampleLoaded=!0;return}let t=e.header;this.lastLoadedPos=e.startPos+t.totalSize-1;let n=oi(t.mpegVersionId,t.channel),s=this.reader.requestSlice(e.startPos+n,4);if(s instanceof Promise&&(s=await s),s){let o=P(s);if(o===ii||o===ai)return}this.firstFrameHeader||(this.firstFrameHeader=t);let a=t.audioSamplesInFrame/t.sampleRate,i={timestamp:this.nextTimestampInSamples/t.sampleRate,duration:a,dataStart:e.startPos,dataSize:t.totalSize};this.loadedSamples.push(i),this.nextTimestampInSamples+=t.audioSamplesInFrame}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return b(e),e.computeDuration()}async getMetadataTags(){let e=await this.readingMutex.acquire();try{if(await this.readMetadata(),this.metadataTags)return this.metadataTags;this.metadataTags={};let t=0,n=!1;for(;;){let s=this.reader.requestSlice(t,ft);if(s instanceof Promise&&(s=await s),!s)break;let a=Rt(s);if(!a)break;n=!0;let i=this.reader.requestSlice(s.filePos,a.size);if(i instanceof Promise&&(i=await i),!i)break;di(i,a,this.metadataTags),t=s.filePos+a.size}if(!n&&this.reader.fileSize!==null&&this.reader.fileSize>=Dt){let s=this.reader.requestSlice(this.reader.fileSize-Dt,Dt);s instanceof Promise&&(s=await s),b(s),V(s,3)==="TAG"&&ui(s,this.metadataTags)}return this.metadataTags}finally{e()}}},ts=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return b(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return q}getCodec(){return"mp3"}getInternalCodecId(){return null}getNumberOfChannels(){return b(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return b(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}async getDecoderConfig(){return b(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:this.demuxer.firstFrameHeader.channel===3?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}async getPacketAtIndex(e,t){if(e===-1)return null;let n=this.demuxer.loadedSamples[e];if(!n)return null;let s;if(t.metadataOnly)s=$;else{let a=this.demuxer.reader.requestSlice(n.dataStart,n.dataSize);if(a instanceof Promise&&(a=await a),!a)return null;s=D(a,n.dataSize)}return new N(s,"key",n.timestamp,n.duration,e,n.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let n=await this.demuxer.readingMutex.acquire();try{let s=M(this.demuxer.loadedSamples,e.timestamp,i=>i.timestamp);if(s===-1)throw new Error("Packet was not created from this track.");let a=s+1;for(;a>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(a,t)}finally{n()}}async getPacket(e,t){let n=await this.demuxer.readingMutex.acquire();try{for(;;){let s=R(this.demuxer.loadedSamples,e,a=>a.timestamp);if(s===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(s,t);if(s>=0&&s+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(s,t);await this.demuxer.advanceReader()}}finally{n()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var Gr=class extends Y{constructor(e){super(e),this.metadataPromise=null,this.bitstreams=[],this.tracks=[],this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let t=this.reader.requestSliceRange(e,_e,je);if(t instanceof Promise&&(t=await t),!t)break;let n=mt(t);if(!n||!!!(n.headerType&2))break;this.bitstreams.push({serialNumber:n.serialNumber,bosPage:n,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),e=n.headerStartPos+n.totalSize}for(let t of this.bitstreams){let n=await this.readPacket(t.bosPage,0);n&&(n.data.byteLength>=7&&n.data[0]===1&&n.data[1]===118&&n.data[2]===111&&n.data[3]===114&&n.data[4]===98&&n.data[5]===105&&n.data[6]===115?await this.readVorbisMetadata(n,t):n.data.byteLength>=8&&n.data[0]===79&&n.data[1]===112&&n.data[2]===117&&n.data[3]===115&&n.data[4]===72&&n.data[5]===101&&n.data[6]===97&&n.data[7]===100&&await this.readOpusMetadata(n,t),t.codecInfo.codec!==null&&this.tracks.push(new K(new rs(t,this))))}})()}async readVorbisMetadata(e,t){let n=await this.findNextPacketStart(e);if(!n)return;let s=await this.readPacket(n.startPage,n.startSegmentIndex);if(!s||(n=await this.findNextPacketStart(s),!n))return;let a=await this.readPacket(n.startPage,n.startSegmentIndex);if(!a||s.data[0]!==3||a.data[0]!==5)return;let i=[],o=d=>{for(;i.push(Math.min(255,d)),!(d<255);)d-=255};o(e.data.length),o(s.data.length);let c=new Uint8Array(1+i.length+e.data.length+s.data.length+a.data.length);c[0]=i.length,c.set(i,1),c.set(e.data,1+i.length),c.set(s.data,1+i.length+e.data.length),c.set(a.data,1+i.length+e.data.length+s.data.length),t.codecInfo.codec="vorbis",t.description=c,t.lastMetadataPacket=a;let l=z(e.data);t.numberOfChannels=l.getUint8(11),t.sampleRate=l.getUint32(12,!0);let u=l.getUint8(28);t.codecInfo.vorbisInfo={blocksizes:[1<<(u&15),1<<(u>>4)],modeBlockflags:Qs(a.data).modeBlockflags},this.readVorbisComments(s.data.subarray(7))}async readOpusMetadata(e,t){let n=await this.findNextPacketStart(e);if(!n)return;let s=await this.readPacket(n.startPage,n.startSegmentIndex);if(!s)return;t.codecInfo.codec="opus",t.description=e.data,t.lastMetadataPacket=s;let a=Gs(e.data);t.numberOfChannels=a.outputChannelCount,t.sampleRate=a.inputSampleRate,t.codecInfo.opusInfo={preSkip:a.preSkip},this.readVorbisComments(s.data.subarray(8))}readVorbisComments(e){let t=z(e),n=0,s=t.getUint32(n,!0);n+=4;let a=G.decode(e.subarray(n,n+s));n+=s,s>0&&(this.metadataTags.raw??={},this.metadataTags.raw.vendor??=a);let i=t.getUint32(n,!0);n+=4;for(let o=0;o<i;o++){let c=t.getUint32(n,!0);n+=4;let l=G.decode(e.subarray(n,n+c));n+=c;let u=l.indexOf("=");if(u===-1)continue;let d=l.slice(0,u).toUpperCase(),f=l.slice(u+1);switch(this.metadataTags.raw??={},this.metadataTags.raw[d]??=f,d){case"TITLE":this.metadataTags.title??=f;break;case"DESCRIPTION":this.metadataTags.description??=f;break;case"ARTIST":this.metadataTags.artist??=f;break;case"ALBUM":this.metadataTags.album??=f;break;case"ALBUMARTIST":this.metadataTags.albumArtist??=f;break;case"COMMENT":this.metadataTags.comment??=f;break;case"LYRICS":this.metadataTags.lyrics??=f;break;case"TRACKNUMBER":{let m=f.split("/"),h=Number.parseInt(m[0],10),g=m[1]&&Number.parseInt(m[1],10);Number.isInteger(h)&&h>0&&(this.metadataTags.trackNumber??=h),g&&Number.isInteger(g)&&g>0&&(this.metadataTags.tracksTotal??=g)}break;case"TRACKTOTAL":{let m=Number.parseInt(f,10);Number.isInteger(m)&&m>0&&(this.metadataTags.tracksTotal??=m)}break;case"DISCNUMBER":{let m=f.split("/"),h=Number.parseInt(m[0],10),g=m[1]&&Number.parseInt(m[1],10);Number.isInteger(h)&&h>0&&(this.metadataTags.discNumber??=h),g&&Number.isInteger(g)&&g>0&&(this.metadataTags.discsTotal??=g)}break;case"DISCTOTAL":{let m=Number.parseInt(f,10);Number.isInteger(m)&&m>0&&(this.metadataTags.discsTotal??=m)}break;case"DATE":{let m=new Date(f);Number.isNaN(m.getTime())||(this.metadataTags.date??=m)}break;case"GENRE":this.metadataTags.genre??=f;break;case"METADATA_BLOCK_PICTURE":{let m=Ns(f),h=z(m),g=h.getUint32(0,!1),y=h.getUint32(4,!1),S=String.fromCharCode(...m.subarray(8,8+y)),p=h.getUint32(8+y,!1),w=G.decode(m.subarray(12+y,12+y+p)),k=h.getUint32(y+p+28),x=m.subarray(y+p+32,y+p+32+k);this.metadataTags.images??=[],this.metadataTags.images.push({data:x,mimeType:S,kind:g===3?"coverFront":g===4?"coverBack":"unknown",name:void 0,description:w||void 0})}break}}}async readPacket(e,t){b(t<e.lacingValues.length);let n=0;for(let d=0;d<t;d++)n+=e.lacingValues[d];let s=e,a=n,i=t,o=[];e:for(;;){let d=this.reader.requestSlice(s.dataStartPos,s.dataSize);d instanceof Promise&&(d=await d),b(d);let f=D(d,s.dataSize);for(;;){if(i===s.lacingValues.length){o.push(f.subarray(n,a));break}let h=s.lacingValues[i];if(a+=h,h<255){o.push(f.subarray(n,a));break e}i++}let m=s.headerStartPos+s.totalSize;for(;;){let h=this.reader.requestSliceRange(m,_e,je);if(h instanceof Promise&&(h=await h),!h)return null;let g=mt(h);if(!g)return null;if(s=g,s.serialNumber===e.serialNumber)break;m=s.headerStartPos+s.totalSize}n=0,a=0,i=0}let c=o.reduce((d,f)=>d+f.length,0),l=new Uint8Array(c),u=0;for(let d=0;d<o.length;d++){let f=o[d];l.set(f,u),u+=f.length}return{data:l,endPage:s,endSegmentIndex:i}}async findNextPacketStart(e){if(e.endSegmentIndex<e.endPage.lacingValues.length-1)return{startPage:e.endPage,startSegmentIndex:e.endSegmentIndex+1};if(!!(e.endPage.headerType&4))return null;let n=e.endPage.headerStartPos+e.endPage.totalSize;for(;;){let s=this.reader.requestSliceRange(n,_e,je);if(s instanceof Promise&&(s=await s),!s)return null;let a=mt(s);if(!a)return null;if(a.serialNumber===e.endPage.serialNumber)return{startPage:a,startSegmentIndex:0};n=a.headerStartPos+a.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.getCodecParameterString()));return pi({codecStrings:e.filter(Boolean)})}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(n=>n.computeDuration()));return Math.max(0,...t)}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},rs=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new ee,this.internalSampleRate=e.codecInfo.codec==="opus"?Ls:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}getCodec(){return this.bitstream.codecInfo.codec}getInternalCodecId(){return null}async getDecoderConfig(){return b(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getName(){return null}getLanguageCode(){return q}async getFirstTimestamp(){return 0}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(b(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,n){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:a}=hi(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),i=new N(n.metadataOnly?$:e.data,"key",Math.max(0,t.timestampInSamples)/this.internalSampleRate,s/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(i,{packet:e,timestampInSamples:t.timestampInSamples,durationInSamples:s,vorbisLastBlockSize:t.vorbisLastBlocksize,vorbisBlockSize:a}),i}async getFirstPacket(e){b(this.bitstream.lastMetadataPacket);let t=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!t)return null;let n=0;this.bitstream.codecInfo.codec==="opus"&&(b(this.bitstream.codecInfo.opusInfo),n-=this.bitstream.codecInfo.opusInfo.preSkip);let s=await this.demuxer.readPacket(t.startPage,t.startSegmentIndex);return this.createEncodedPacketFromOggPacket(s,{timestampInSamples:n,vorbisLastBlocksize:null},e)}async getNextPacket(e,t){let n=this.encodedPacketToMetadata.get(e);if(!n)throw new Error("Packet was not created from this track.");let s=await this.demuxer.findNextPacketStart(n.packet);if(!s)return null;let a=n.timestampInSamples+n.durationInSamples,i=await this.demuxer.readPacket(s.startPage,s.startSegmentIndex);return this.createEncodedPacketFromOggPacket(i,{timestampInSamples:a,vorbisLastBlocksize:n.vorbisBlockSize},t)}async getPacket(e,t){if(this.demuxer.reader.fileSize===null)return this.getPacketSequential(e,t);let n=Ue(e*this.internalSampleRate,14);if(n===0)return this.getFirstPacket(t);if(n<0)return null;b(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!s)return null;let a=s.startPage,i=this.demuxer.reader.fileSize,o=[a];e:for(;a.headerStartPos+a.totalSize<i;){let p=a.headerStartPos,w=Math.floor((p+i)/2),k=w;for(;;){let x=Math.min(k+gi,i-_e),C=this.demuxer.reader.requestSlice(k,x-k);if(C instanceof Promise&&(C=await C),b(C),!bi(C,x)){i=w+_e;continue e}let F=this.demuxer.reader.requestSliceRange(C.filePos,_e,je);F instanceof Promise&&(F=await F),b(F);let A=mt(F);b(A);let _=!1;if(A.serialNumber===this.bitstream.serialNumber)_=!0;else{let L=this.demuxer.reader.requestSlice(A.headerStartPos,A.totalSize);L instanceof Promise&&(L=await L),b(L);let Fe=D(L,A.totalSize);_=mi(Fe)===A.checksum}if(!_){k=A.headerStartPos+4;continue}if(_&&A.serialNumber!==this.bitstream.serialNumber){k=A.headerStartPos+A.totalSize;continue}if(A.granulePosition===-1){k=A.headerStartPos+A.totalSize;continue}this.granulePositionToTimestampInSamples(A.granulePosition)>n?i=A.headerStartPos:(a=A,o.push(A));continue e}}let c=s.startPage;for(let p of o){if(p.granulePosition===a.granulePosition)break;(!c||p.headerStartPos>c.headerStartPos)&&(c=p)}let l=c,u=[l];for(;!(l.serialNumber===this.bitstream.serialNumber&&l.granulePosition===a.granulePosition);){let p=l.headerStartPos+l.totalSize,w=this.demuxer.reader.requestSliceRange(p,_e,je);w instanceof Promise&&(w=await w),b(w);let k=mt(w);b(k),l=k,l.serialNumber===this.bitstream.serialNumber&&u.push(l)}b(l.granulePosition!==-1);let d=null,f,m,h=l,g=0;if(l.headerStartPos===s.startPage.headerStartPos)f=this.granulePositionToTimestampInSamples(0),m=!0,d=0;else{f=0,m=!1;for(let k=l.lacingValues.length-1;k>=0;k--)if(l.lacingValues[k]<255){d=k+1;break}if(d===null)throw new Error("Invalid page with granule position: no packets end on this page.");g=d-1;let p={data:$,endPage:h,endSegmentIndex:g};if(await this.demuxer.findNextPacketStart(p)){let k=vi(u,l,d);b(k);let x=Ci(u,k.page,k.segmentIndex);x&&(l=x.page,d=x.segmentIndex)}else for(;;){let k=vi(u,l,d);if(!k)break;let x=Ci(u,k.page,k.segmentIndex);if(!x)break;if(l=x.page,d=x.segmentIndex,k.page.headerStartPos!==h.headerStartPos){h=k.page,g=k.segmentIndex;break}}}let y=null,S=null;for(;l!==null;){b(d!==null);let p=await this.demuxer.readPacket(l,d);if(!p)break;if(!(l.headerStartPos===s.startPage.headerStartPos&&d<s.startSegmentIndex)){let x=this.createEncodedPacketFromOggPacket(p,{timestampInSamples:f,vorbisLastBlocksize:S?.vorbisBlockSize??null},t);b(x);let C=this.encodedPacketToMetadata.get(x);if(b(C),!m&&p.endPage.headerStartPos===h.headerStartPos&&p.endSegmentIndex===g?(f=this.granulePositionToTimestampInSamples(l.granulePosition),m=!0,x=this.createEncodedPacketFromOggPacket(p,{timestampInSamples:f-C.durationInSamples,vorbisLastBlocksize:S?.vorbisBlockSize??null},t),b(x),C=this.encodedPacketToMetadata.get(x),b(C)):f+=C.durationInSamples,y=x,S=C,m&&(Math.max(f,0)>n||Math.max(C.timestampInSamples,0)===n))break}let k=await this.demuxer.findNextPacketStart(p);if(!k)break;l=k.startPage,d=k.startSegmentIndex}return y}async getPacketSequential(e,t){let n=await this.sequentialScanMutex.acquire();try{let s=Ue(e*this.internalSampleRate,14);e=s/this.internalSampleRate;let a=R(this.sequentialScanCache,s,c=>c.timestampInSamples),i;if(a!==-1){let c=this.sequentialScanCache[a];i=this.createEncodedPacketFromOggPacket(c.packet,{timestampInSamples:c.timestampInSamples,vorbisLastBlocksize:c.vorbisLastBlockSize},t)}else i=await this.getFirstPacket(t);let o=0;for(;i&&i.timestamp<e;){let c=await this.getNextPacket(i,t);if(!c||c.timestamp>e)break;if(i=c,o++,o===100){o=0;let l=this.encodedPacketToMetadata.get(i);b(l),this.sequentialScanCache.length>0&&b(W(this.sequentialScanCache).timestampInSamples<=l.timestampInSamples),this.sequentialScanCache.push(l)}}return i}finally{n()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}},Ci=(r,e,t)=>{let n=e,s=t;e:for(;;){for(s--,s;s>=0;s--)if(n.lacingValues[s]<255){s++;break e}if(b(s===-1),!(n.headerType&1)){s=0;break}let i=Fn(r,o=>o.headerStartPos<n.headerStartPos);if(!i)return null;n=i,s=n.lacingValues.length}if(b(s!==-1),s===n.lacingValues.length){let a=r[r.indexOf(n)+1];b(a),n=a,s=0}return{page:n,segmentIndex:s}},vi=(r,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let n=Fn(r,s=>s.headerStartPos<e.headerStartPos);return n?{page:n,segmentIndex:n.lacingValues.length-1}:null};var yt=7,kt=9,Ut=r=>{let e=r.filePos,t=D(r,9),n=new U(t);if(n.readBits(12)!==4095||(n.skipBits(1),n.readBits(2)!==0))return null;let i=n.readBits(1),o=n.readBits(2)+1,c=n.readBits(4);if(c===15)return null;n.skipBits(1);let l=n.readBits(3);if(l===0)throw new Error("ADTS frames with channel configuration 0 are not supported.");n.skipBits(1),n.skipBits(1),n.skipBits(1),n.skipBits(1);let u=n.readBits(13);n.skipBits(11);let d=n.readBits(2)+1;if(d!==1)throw new Error("ADTS frames with more than one AAC frame are not supported.");let f=null;return i===1?r.filePos-=2:f=n.readBits(16),{objectType:o,samplingFrequencyIndex:c,channelConfiguration:l,frameLength:u,numberOfAacFrames:d,crcCheck:f,startPos:e}};var ns=1024,Xr=class extends Y{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.tracks=[],this.readingMutex=new ee,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();b(this.firstFrameHeader),this.tracks=[new K(new ss(this))]})()}async advanceReader(){let e=this.reader.requestSliceRange(this.lastLoadedPos,yt,kt);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let t=Ut(e);if(!t){this.lastSampleLoaded=!0;return}if(this.reader.fileSize!==null&&t.startPos+t.frameLength>this.reader.fileSize){this.lastSampleLoaded=!0;return}this.firstFrameHeader||(this.firstFrameHeader=t);let n=_t[t.samplingFrequencyIndex];b(n!==void 0);let s=ns/n,a=t.crcCheck?kt:yt,i={timestamp:this.nextTimestampInSamples/n,duration:s,dataStart:t.startPos+a,dataSize:t.frameLength-a};this.loadedSamples.push(i),this.nextTimestampInSamples+=ns,this.lastLoadedPos=t.startPos+t.frameLength}async getMimeType(){return"audio/aac"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return b(e),e.computeDuration()}async getMetadataTags(){return{}}},ss=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return this.getSampleRate()/ns}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return q}getCodec(){return"aac"}getInternalCodecId(){return b(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){b(this.demuxer.firstFrameHeader);let e=Rn[this.demuxer.firstFrameHeader.channelConfiguration];return b(e!==void 0),e}getSampleRate(){b(this.demuxer.firstFrameHeader);let e=_t[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return b(e!==void 0),e}async getDecoderConfig(){b(this.demuxer.firstFrameHeader);let e=new Uint8Array(3),t=new U(e),{objectType:n,samplingFrequencyIndex:s,channelConfiguration:a}=this.demuxer.firstFrameHeader;return n>31?(t.writeBits(5,31),t.writeBits(6,n-32)):t.writeBits(5,n),t.writeBits(4,s),t.writeBits(4,a),{codec:`mp4a.40.${this.demuxer.firstFrameHeader.objectType}`,numberOfChannels:this.getNumberOfChannels(),sampleRate:this.getSampleRate(),description:e.subarray(0,Math.ceil((t.pos-1)/8))}}async getPacketAtIndex(e,t){if(e===-1)return null;let n=this.demuxer.loadedSamples[e];if(!n)return null;let s;if(t.metadataOnly)s=$;else{let a=this.demuxer.reader.requestSlice(n.dataStart,n.dataSize);if(a instanceof Promise&&(a=await a),!a)return null;s=D(a,n.dataSize)}return new N(s,"key",n.timestamp,n.duration,e,n.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let n=await this.demuxer.readingMutex.acquire();try{let s=M(this.demuxer.loadedSamples,e.timestamp,i=>i.timestamp);if(s===-1)throw new Error("Packet was not created from this track.");let a=s+1;for(;a>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(a,t)}finally{n()}}async getPacket(e,t){let n=await this.demuxer.readingMutex.acquire();try{for(;;){let s=R(this.demuxer.loadedSamples,e,a=>a.timestamp);if(s===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(s,t);if(s>=0&&s+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(s,t);await this.demuxer.advanceReader()}}finally{n()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var ae=class{},Lt=class extends ae{async _getMajorBrand(e){let t=e._reader.requestSlice(0,12);return t instanceof Promise&&(t=await t),!t||(t.skip(4),V(t,4)!=="ftyp")?null:V(t,4)}_createDemuxer(e){return new Wr(e)}},Qr=class extends Lt{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},Zr=class extends Lt{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},Ht=class extends ae{async isSupportedEBMLOfDocType(e,t){let n=e._reader.requestSlice(0,ne);if(n instanceof Promise&&(n=await n),!n)return!1;let s=Un(n);if(s===null||s<1||s>8||O(n,s)!==T.EBML)return!1;let i=Ln(n);if(i===null)return!1;let o=e._reader.requestSlice(n.filePos,i);if(o instanceof Promise&&(o=await o),!o)return!1;let c=n.filePos;for(;o.filePos<=c+i-Z;){let l=se(o);if(!l)break;let{id:u,size:d}=l,f=o.filePos;if(d===null)return!1;switch(u){case T.EBMLVersion:if(O(o,d)!==1)return!1;break;case T.EBMLReadVersion:if(O(o,d)!==1)return!1;break;case T.DocType:if(Ee(o,d)!==t)return!1;break;case T.DocTypeVersion:if(O(o,d)>4)return!1;break}o.filePos=f+d}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new jr(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},Yr=class extends Ht{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},Jr=class extends ae{async _canReadInput(e){let t=e._reader.requestSlice(0,10);if(t instanceof Promise&&(t=await t),!t)return!1;let n=0,s=!1;for(;;){let l=e._reader.requestSlice(n,ft);if(l instanceof Promise&&(l=await l),!l)break;let u=Rt(l);if(!u)break;s=!0,n=l.filePos+u.size}let a=await Bt(e._reader,n,n+4096);if(!a)return!1;if(s)return!0;n=a.startPos+=a.header.totalSize;let i=await Bt(e._reader,n,n+4);if(!i)return!1;let o=a.header,c=i.header;return!(o.channel!==c.channel||o.sampleRate!==c.sampleRate)}_createDemuxer(e){return new Kr(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},en=class extends ae{async _canReadInput(e){let t=e._reader.requestSlice(0,12);if(t instanceof Promise&&(t=await t),!t)return!1;let n=V(t,4);return n!=="RIFF"&&n!=="RIFX"&&n!=="RF64"?!1:(t.skip(4),V(t,4)==="WAVE")}_createDemuxer(e){return new Lr(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},tn=class extends ae{async _canReadInput(e){let t=e._reader.requestSlice(0,4);return t instanceof Promise&&(t=await t),t?V(t,4)==="OggS":!1}_createDemuxer(e){return new Gr(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},rn=class extends ae{async _canReadInput(e){let t=e._reader.requestSliceRange(0,yt,kt);if(t instanceof Promise&&(t=await t),!t)return!1;let n=Ut(t);if(!n||(t=e._reader.requestSliceRange(n.frameLength,yt,kt),t instanceof Promise&&(t=await t),!t))return!1;let s=Ut(t);return s?n.objectType===s.objectType&&n.samplingFrequencyIndex===s.samplingFrequencyIndex&&n.channelConfiguration===s.channelConfiguration:!1}_createDemuxer(e){return new Xr(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}},Ii=new Qr,Ei=new Zr,_i=new Ht,Ai=new Yr,Fi=new Jr,Di=new en,Bi=new tn,Ri=new rn,xt=[Ii,Ei,_i,Ai,Di,Bi,Fi,Ri];var Ae=class{constructor(e){if(this._demuxerPromise=null,this._format=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(t=>!(t instanceof ae)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof Ke))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._reader=new _r(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{this._reader.fileSize=await this._source.getSizeOrNull();for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,e._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),b(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter(t=>t.isVideoTrack())}async getAudioTracks(){return(await this.getTracks()).filter(t=>t.isAudioTrack())}async getPrimaryVideoTrack(){return(await this.getTracks()).find(t=>t.isVideoTrack())??null}async getPrimaryAudioTrack(){return(await this.getTracks()).find(t=>t.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}};var nn=class{count=0;#e=new Map;register(e,t){this.#e.set(e,t)}unregister(e){this.#e.delete(e)}dispatch(e,t){this.#e.get(e)?.(t)}};var Oi=r=>Je.host(e=>({async world(){r.count++}}));async function Wt(r){return r instanceof Blob?new Nt(r):new Vt(r)}var sn=class{machina;thread;static async setup(e){let t=new nn,n=await Je.thread({label:"OmnitoolDriver",workerUrl:e.workerUrl,setupHost:Oi(t)});return new this(t,n)}constructor(e,t){this.machina=e,this.thread=t}async hello(){return this.thread.work.hello()}async getAudioDuration(e){return await(await new Ae({source:await Wt(e),formats:xt}).getPrimaryAudioTrack())?.computeDuration()}async getVideoDuration(e){return await(await new Ae({source:await Wt(e),formats:xt}).getPrimaryVideoTrack())?.computeDuration()}decodeVideo(e){let t=null,n=new TransformStream({async transform(s,a){let i=await e.onFrame?.(s)??s;t?.close(),a.enqueue(i),t=i}});return this.thread.work.decodeVideo[Oe]({transfer:[n.writable]})({source:e.source,video:n.writable,start:e.start,end:e.end}),n.readable}decodeAudio(e){let t=new TransformStream;return this.thread.work.decodeAudio[Oe]({transfer:[t.writable]})({source:e.source,audio:t.writable,start:e.start,end:e.end}),t.readable}async encode({video:e,audio:t,config:n}){let a=await(await window.showSaveFilePicker()).createWritable(),i=new WritableStream({async write(o){await a.write(o)},async close(){await a.close()}});return await this.thread.work.encode[Oe]({transfer:[t??[],e??[],i]})({video:e,audio:t,config:n,bridge:i})}async composite(e){let t=this.#e(e);return await this.thread.work.composite[Oe]({transfer:t})(e)}#e(e){let t=[],n=s=>{if(Array.isArray(s))for(let a of s)n(a);else s&&typeof s=="object"&&"kind"in s&&s.kind==="image"&&s.frame instanceof VideoFrame&&t.push(s.frame)};return n(e),t}};var Da=new URL("../driver/driver.worker.bundle.min.js",import.meta.url),an={driver:sn.setup({workerUrl:Da})};function H(r,e,t,n){return new(t||(t=Promise))(function(s,a){function i(l){try{c(n.next(l))}catch(u){a(u)}}function o(l){try{c(n.throw(l))}catch(u){a(u)}}function c(l){var u;l.done?s(l.value):(u=l.value,u instanceof t?u:new t(function(d){d(u)})).then(i,o)}c((n=n.apply(r,e||[])).next())})}var Ge=class{constructor(){this.listeners={}}on(e,t,n){if(this.listeners[e]||(this.listeners[e]=new Set),this.listeners[e].add(t),n?.once){let s=()=>{this.un(e,s),this.un(e,t)};return this.on(e,s),s}return()=>this.un(e,t)}un(e,t){var n;(n=this.listeners[e])===null||n===void 0||n.delete(t)}once(e,t){return this.on(e,t,{once:!0})}unAll(){this.listeners={}}emit(e,...t){this.listeners[e]&&this.listeners[e].forEach(n=>n(...t))}},on={decode:function(r,e){return H(this,void 0,void 0,function*(){let t=new AudioContext({sampleRate:e});return t.decodeAudioData(r).finally(()=>t.close())})},createBuffer:function(r,e){return typeof r[0]=="number"&&(r=[r]),function(t){let n=t[0];if(n.some(s=>s>1||s<-1)){let s=n.length,a=0;for(let i=0;i<s;i++){let o=Math.abs(n[i]);o>a&&(a=o)}for(let i of t)for(let o=0;o<s;o++)i[o]/=a}}(r),{duration:e,length:r[0].length,sampleRate:r[0].length/e,numberOfChannels:r.length,getChannelData:t=>r?.[t],copyFromChannel:AudioBuffer.prototype.copyFromChannel,copyToChannel:AudioBuffer.prototype.copyToChannel}}};function Mi(r,e){let t=e.xmlns?document.createElementNS(e.xmlns,r):document.createElement(r);for(let[n,s]of Object.entries(e))if(n==="children"&&s)for(let[a,i]of Object.entries(s))i instanceof Node?t.appendChild(i):typeof i=="string"?t.appendChild(document.createTextNode(i)):t.appendChild(Mi(a,i));else n==="style"?Object.assign(t.style,s):n==="textContent"?t.textContent=s:t.setAttribute(n,s.toString());return t}function zi(r,e,t){let n=Mi(r,e||{});return t?.appendChild(n),n}var Ba=Object.freeze({__proto__:null,createElement:zi,default:zi}),Ra={fetchBlob:function(r,e,t){return H(this,void 0,void 0,function*(){let n=yield fetch(r,t);if(n.status>=400)throw new Error(`Failed to fetch ${r}: ${n.status} (${n.statusText})`);return function(s,a){H(this,void 0,void 0,function*(){if(!s.body||!s.headers)return;let i=s.body.getReader(),o=Number(s.headers.get("Content-Length"))||0,c=0,l=d=>H(this,void 0,void 0,function*(){c+=d?.length||0;let f=Math.round(c/o*100);a(f)}),u=()=>H(this,void 0,void 0,function*(){let d;try{d=yield i.read()}catch{return}d.done||(l(d.value),yield u())});u()})}(n.clone(),e),n.blob()})}},is=class extends Ge{constructor(e){super(),this.isExternalMedia=!1,e.media?(this.media=e.media,this.isExternalMedia=!0):this.media=document.createElement("audio"),e.mediaControls&&(this.media.controls=!0),e.autoplay&&(this.media.autoplay=!0),e.playbackRate!=null&&this.onMediaEvent("canplay",()=>{e.playbackRate!=null&&(this.media.playbackRate=e.playbackRate)},{once:!0})}onMediaEvent(e,t,n){return this.media.addEventListener(e,t,n),()=>this.media.removeEventListener(e,t,n)}getSrc(){return this.media.currentSrc||this.media.src||""}revokeSrc(){let e=this.getSrc();e.startsWith("blob:")&&URL.revokeObjectURL(e)}canPlayType(e){return this.media.canPlayType(e)!==""}setSrc(e,t){let n=this.getSrc();if(e&&n===e)return;this.revokeSrc();let s=t instanceof Blob&&(this.canPlayType(t.type)||!e)?URL.createObjectURL(t):e;if(n&&this.media.removeAttribute("src"),s||e)try{this.media.src=s}catch{this.media.src=e}}destroy(){this.isExternalMedia||(this.media.pause(),this.media.remove(),this.revokeSrc(),this.media.removeAttribute("src"),this.media.load())}setMediaElement(e){this.media=e}play(){return H(this,void 0,void 0,function*(){return this.media.play()})}pause(){this.media.pause()}isPlaying(){return!this.media.paused&&!this.media.ended}setTime(e){this.media.currentTime=Math.max(0,Math.min(e,this.getDuration()))}getDuration(){return this.media.duration}getCurrentTime(){return this.media.currentTime}getVolume(){return this.media.volume}setVolume(e){this.media.volume=e}getMuted(){return this.media.muted}setMuted(e){this.media.muted=e}getPlaybackRate(){return this.media.playbackRate}isSeeking(){return this.media.seeking}setPlaybackRate(e,t){t!=null&&(this.media.preservesPitch=t),this.media.playbackRate=e}getMediaElement(){return this.media}setSinkId(e){return this.media.setSinkId(e)}},jt=class r extends Ge{constructor(e,t){super(),this.timeouts=[],this.isScrollable=!1,this.audioData=null,this.resizeObserver=null,this.lastContainerWidth=0,this.isDragging=!1,this.subscriptions=[],this.unsubscribeOnScroll=[],this.subscriptions=[],this.options=e;let n=this.parentFromOptionsContainer(e.container);this.parent=n;let[s,a]=this.initHtml();n.appendChild(s),this.container=s,this.scrollContainer=a.querySelector(".scroll"),this.wrapper=a.querySelector(".wrapper"),this.canvasWrapper=a.querySelector(".canvases"),this.progressWrapper=a.querySelector(".progress"),this.cursor=a.querySelector(".cursor"),t&&a.appendChild(t),this.initEvents()}parentFromOptionsContainer(e){let t;if(typeof e=="string"?t=document.querySelector(e):e instanceof HTMLElement&&(t=e),!t)throw new Error("Container not found");return t}initEvents(){let e=t=>{let n=this.wrapper.getBoundingClientRect(),s=t.clientX-n.left,a=t.clientY-n.top;return[s/n.width,a/n.height]};if(this.wrapper.addEventListener("click",t=>{let[n,s]=e(t);this.emit("click",n,s)}),this.wrapper.addEventListener("dblclick",t=>{let[n,s]=e(t);this.emit("dblclick",n,s)}),this.options.dragToSeek!==!0&&typeof this.options.dragToSeek!="object"||this.initDrag(),this.scrollContainer.addEventListener("scroll",()=>{let{scrollLeft:t,scrollWidth:n,clientWidth:s}=this.scrollContainer,a=t/n,i=(t+s)/n;this.emit("scroll",a,i,t,t+s)}),typeof ResizeObserver=="function"){let t=this.createDelay(100);this.resizeObserver=new ResizeObserver(()=>{t().then(()=>this.onContainerResize()).catch(()=>{})}),this.resizeObserver.observe(this.scrollContainer)}}onContainerResize(){let e=this.parent.clientWidth;e===this.lastContainerWidth&&this.options.height!=="auto"||(this.lastContainerWidth=e,this.reRender())}initDrag(){this.subscriptions.push(function(e,t,n,s,a=3,i=0,o=100){if(!e)return()=>{};let c=matchMedia("(pointer: coarse)").matches,l=()=>{},u=d=>{if(d.button!==i)return;d.preventDefault(),d.stopPropagation();let f=d.clientX,m=d.clientY,h=!1,g=Date.now(),y=x=>{if(x.preventDefault(),x.stopPropagation(),c&&Date.now()-g<o)return;let C=x.clientX,v=x.clientY,F=C-f,A=v-m;if(h||Math.abs(F)>a||Math.abs(A)>a){let _=e.getBoundingClientRect(),{left:B,top:L}=_;h||(n?.(f-B,m-L),h=!0),t(F,A,C-B,v-L),f=C,m=v}},S=x=>{if(h){let C=x.clientX,v=x.clientY,F=e.getBoundingClientRect(),{left:A,top:_}=F;s?.(C-A,v-_)}l()},p=x=>{x.relatedTarget&&x.relatedTarget!==document.documentElement||S(x)},w=x=>{h&&(x.stopPropagation(),x.preventDefault())},k=x=>{h&&x.preventDefault()};document.addEventListener("pointermove",y),document.addEventListener("pointerup",S),document.addEventListener("pointerout",p),document.addEventListener("pointercancel",p),document.addEventListener("touchmove",k,{passive:!1}),document.addEventListener("click",w,{capture:!0}),l=()=>{document.removeEventListener("pointermove",y),document.removeEventListener("pointerup",S),document.removeEventListener("pointerout",p),document.removeEventListener("pointercancel",p),document.removeEventListener("touchmove",k),setTimeout(()=>{document.removeEventListener("click",w,{capture:!0})},10)}};return e.addEventListener("pointerdown",u),()=>{l(),e.removeEventListener("pointerdown",u)}}(this.wrapper,(e,t,n)=>{this.emit("drag",Math.max(0,Math.min(1,n/this.wrapper.getBoundingClientRect().width)))},e=>{this.isDragging=!0,this.emit("dragstart",Math.max(0,Math.min(1,e/this.wrapper.getBoundingClientRect().width)))},e=>{this.isDragging=!1,this.emit("dragend",Math.max(0,Math.min(1,e/this.wrapper.getBoundingClientRect().width)))}))}getHeight(e,t){var n;let s=((n=this.audioData)===null||n===void 0?void 0:n.numberOfChannels)||1;if(e==null)return 128;if(!isNaN(Number(e)))return Number(e);if(e==="auto"){let a=this.parent.clientHeight||128;return t?.every(i=>!i.overlay)?a/s:a}return 128}initHtml(){let e=document.createElement("div"),t=e.attachShadow({mode:"open"}),n=this.options.cspNonce&&typeof this.options.cspNonce=="string"?this.options.cspNonce.replace(/"/g,""):"";return t.innerHTML=`
|
|
8
|
-
|
|
1
|
+
var Jw=Object.create;var Ud=Object.defineProperty;var e_=Object.getOwnPropertyDescriptor;var t_=Object.getOwnPropertyNames;var r_=Object.getPrototypeOf,i_=Object.prototype.hasOwnProperty;var b=(i,e)=>()=>(i&&(e=i(i=0)),e);var zd=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports);var s_=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of t_(e))!i_.call(i,s)&&s!==t&&Ud(i,s,{get:()=>e[s],enumerable:!(r=e_(e,s))||r.enumerable});return i};var Gd=(i,e,t)=>(t=i!=null?Jw(r_(i)):{},s_(e||!i||!i.__esModule?Ud(t,"default",{value:i,enumerable:!0}):t,i));var A,Wl,ia,L,G=b(()=>{"use strict";A=(i=>(i.Application="application",i.WebGLPipes="webgl-pipes",i.WebGLPipesAdaptor="webgl-pipes-adaptor",i.WebGLSystem="webgl-system",i.WebGPUPipes="webgpu-pipes",i.WebGPUPipesAdaptor="webgpu-pipes-adaptor",i.WebGPUSystem="webgpu-system",i.CanvasSystem="canvas-system",i.CanvasPipesAdaptor="canvas-pipes-adaptor",i.CanvasPipes="canvas-pipes",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i.MaskEffect="mask-effect",i.BlendMode="blend-mode",i.TextureSource="texture-source",i.Environment="environment",i.ShapeBuilder="shape-builder",i.Batcher="batcher",i))(A||{}),Wl=i=>{if(typeof i=="function"||typeof i=="object"&&i.extension){if(!i.extension)throw new Error("Extension class must have an extension object");i={...typeof i.extension!="object"?{type:i.extension}:i.extension,ref:i}}if(typeof i=="object")i={...i};else throw new Error("Invalid extension type");return typeof i.type=="string"&&(i.type=[i.type]),i},ia=(i,e)=>Wl(i).priority??e,L={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(Wl).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...i){return i.map(Wl).forEach(e=>{e.type.forEach(t=>{let r=this._addHandlers,s=this._queue;r[t]?r[t]?.(e):(s[t]=s[t]||[],s[t]?.push(e))})}),this},handle(i,e,t){let r=this._addHandlers,s=this._removeHandlers;if(r[i]||s[i])throw new Error(`Extension type ${i} already has a handler`);r[i]=e,s[i]=t;let n=this._queue;return n[i]&&(n[i]?.forEach(o=>e(o)),delete n[i]),this},handleByMap(i,e){return this.handle(i,t=>{t.name&&(e[t.name]=t.ref)},t=>{t.name&&delete e[t.name]})},handleByNamedList(i,e,t=-1){return this.handle(i,r=>{e.findIndex(n=>n.name===r.name)>=0||(e.push({name:r.name,value:r.ref}),e.sort((n,o)=>ia(o.value,t)-ia(n.value,t)))},r=>{let s=e.findIndex(n=>n.name===r.name);s!==-1&&e.splice(s,1)})},handleByList(i,e,t=-1){return this.handle(i,r=>{e.includes(r.ref)||(e.push(r.ref),e.sort((s,n)=>ia(n,t)-ia(s,t)))},r=>{let s=e.indexOf(r.ref);s!==-1&&e.splice(s,1)})},mixin(i,...e){for(let t of e)Object.defineProperties(i.prototype,Object.getOwnPropertyDescriptors(t))}}});var Tm=zd((jF,Hl)=>{"use strict";var K_=Object.prototype.hasOwnProperty,Re="~";function Rs(){}Object.create&&(Rs.prototype=Object.create(null),new Rs().__proto__||(Re=!1));function Z_(i,e,t){this.fn=i,this.context=e,this.once=t||!1}function Sm(i,e,t,r,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new Z_(t,r||i,s),o=Re?Re+e:e;return i._events[o]?i._events[o].fn?i._events[o]=[i._events[o],n]:i._events[o].push(n):(i._events[o]=n,i._eventsCount++),i}function sa(i,e){--i._eventsCount===0?i._events=new Rs:delete i._events[e]}function Ie(){this._events=new Rs,this._eventsCount=0}Ie.prototype.eventNames=function(){var e=[],t,r;if(this._eventsCount===0)return e;for(r in t=this._events)K_.call(t,r)&&e.push(Re?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ie.prototype.listeners=function(e){var t=Re?Re+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var s=0,n=r.length,o=new Array(n);s<n;s++)o[s]=r[s].fn;return o};Ie.prototype.listenerCount=function(e){var t=Re?Re+e:e,r=this._events[t];return r?r.fn?1:r.length:0};Ie.prototype.emit=function(e,t,r,s,n,o){var a=Re?Re+e:e;if(!this._events[a])return!1;var c=this._events[a],l=arguments.length,u,h;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,r),!0;case 4:return c.fn.call(c.context,t,r,s),!0;case 5:return c.fn.call(c.context,t,r,s,n),!0;case 6:return c.fn.call(c.context,t,r,s,n,o),!0}for(h=1,u=new Array(l-1);h<l;h++)u[h-1]=arguments[h];c.fn.apply(c.context,u)}else{var d=c.length,f;for(h=0;h<d;h++)switch(c[h].once&&this.removeListener(e,c[h].fn,void 0,!0),l){case 1:c[h].fn.call(c[h].context);break;case 2:c[h].fn.call(c[h].context,t);break;case 3:c[h].fn.call(c[h].context,t,r);break;case 4:c[h].fn.call(c[h].context,t,r,s);break;default:if(!u)for(f=1,u=new Array(l-1);f<l;f++)u[f-1]=arguments[f];c[h].fn.apply(c[h].context,u)}}return!0};Ie.prototype.on=function(e,t,r){return Sm(this,e,t,r,!1)};Ie.prototype.once=function(e,t,r){return Sm(this,e,t,r,!0)};Ie.prototype.removeListener=function(e,t,r,s){var n=Re?Re+e:e;if(!this._events[n])return this;if(!t)return sa(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!r||o.context===r)&&sa(this,n);else{for(var a=0,c=[],l=o.length;a<l;a++)(o[a].fn!==t||s&&!o[a].once||r&&o[a].context!==r)&&c.push(o[a]);c.length?this._events[n]=c.length===1?c[0]:c:sa(this,n)}return this};Ie.prototype.removeAllListeners=function(e){var t;return e?(t=Re?Re+e:e,this._events[t]&&sa(this,t)):(this._events=new Rs,this._eventsCount=0),this};Ie.prototype.off=Ie.prototype.removeListener;Ie.prototype.addListener=Ie.prototype.on;Ie.prefixed=Re;Ie.EventEmitter=Ie;typeof Hl<"u"&&(Hl.exports=Ie)});var km,ie,He=b(()=>{km=Gd(Tm(),1),ie=km.default});var Q_,jt,_e,et,Bm,vm,jl,J_,na,Fm,Dm,Pm,Cm,Em,Os,eS,tS,rS,iS,Xl,Am,sS,$l,ql,Im,Yl,dt,Mm,Rm,Om=b(()=>{Q_={grad:.9,turn:360,rad:360/(2*Math.PI)},jt=function(i){return typeof i=="string"?i.length>0:typeof i=="number"},_e=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=Math.pow(10,e)),Math.round(t*i)/t+0},et=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),i>t?t:i>e?i:e},Bm=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},vm=function(i){return{r:et(i.r,0,255),g:et(i.g,0,255),b:et(i.b,0,255),a:et(i.a)}},jl=function(i){return{r:_e(i.r),g:_e(i.g),b:_e(i.b),a:_e(i.a,3)}},J_=/^#([0-9a-f]{3,8})$/i,na=function(i){var e=i.toString(16);return e.length<2?"0"+e:e},Fm=function(i){var e=i.r,t=i.g,r=i.b,s=i.a,n=Math.max(e,t,r),o=n-Math.min(e,t,r),a=o?n===e?(t-r)/o:n===t?2+(r-e)/o:4+(e-t)/o:0;return{h:60*(a<0?a+6:a),s:n?o/n*100:0,v:n/255*100,a:s}},Dm=function(i){var e=i.h,t=i.s,r=i.v,s=i.a;e=e/360*6,t/=100,r/=100;var n=Math.floor(e),o=r*(1-t),a=r*(1-(e-n)*t),c=r*(1-(1-e+n)*t),l=n%6;return{r:255*[r,a,o,o,c,r][l],g:255*[c,r,r,a,o,o][l],b:255*[o,o,c,r,r,a][l],a:s}},Pm=function(i){return{h:Bm(i.h),s:et(i.s,0,100),l:et(i.l,0,100),a:et(i.a)}},Cm=function(i){return{h:_e(i.h),s:_e(i.s),l:_e(i.l),a:_e(i.a,3)}},Em=function(i){return Dm((t=(e=i).s,{h:e.h,s:(t*=((r=e.l)<50?r:100-r)/100)>0?2*t/(r+t)*100:0,v:r+t,a:e.a}));var e,t,r},Os=function(i){return{h:(e=Fm(i)).h,s:(s=(200-(t=e.s))*(r=e.v)/100)>0&&s<200?t*r/100/(s<=100?s:200-s)*100:0,l:s/2,a:e.a};var e,t,r,s},eS=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,tS=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,rS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,iS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,Xl={string:[[function(i){var e=J_.exec(i);return e?(i=e[1]).length<=4?{r:parseInt(i[0]+i[0],16),g:parseInt(i[1]+i[1],16),b:parseInt(i[2]+i[2],16),a:i.length===4?_e(parseInt(i[3]+i[3],16)/255,2):1}:i.length===6||i.length===8?{r:parseInt(i.substr(0,2),16),g:parseInt(i.substr(2,2),16),b:parseInt(i.substr(4,2),16),a:i.length===8?_e(parseInt(i.substr(6,2),16)/255,2):1}:null:null},"hex"],[function(i){var e=rS.exec(i)||iS.exec(i);return e?e[2]!==e[4]||e[4]!==e[6]?null:vm({r:Number(e[1])/(e[2]?100/255:1),g:Number(e[3])/(e[4]?100/255:1),b:Number(e[5])/(e[6]?100/255:1),a:e[7]===void 0?1:Number(e[7])/(e[8]?100:1)}):null},"rgb"],[function(i){var e=eS.exec(i)||tS.exec(i);if(!e)return null;var t,r,s=Pm({h:(t=e[1],r=e[2],r===void 0&&(r="deg"),Number(t)*(Q_[r]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Em(s)},"hsl"]],object:[[function(i){var e=i.r,t=i.g,r=i.b,s=i.a,n=s===void 0?1:s;return jt(e)&&jt(t)&&jt(r)?vm({r:Number(e),g:Number(t),b:Number(r),a:Number(n)}):null},"rgb"],[function(i){var e=i.h,t=i.s,r=i.l,s=i.a,n=s===void 0?1:s;if(!jt(e)||!jt(t)||!jt(r))return null;var o=Pm({h:Number(e),s:Number(t),l:Number(r),a:Number(n)});return Em(o)},"hsl"],[function(i){var e=i.h,t=i.s,r=i.v,s=i.a,n=s===void 0?1:s;if(!jt(e)||!jt(t)||!jt(r))return null;var o=function(a){return{h:Bm(a.h),s:et(a.s,0,100),v:et(a.v,0,100),a:et(a.a)}}({h:Number(e),s:Number(t),v:Number(r),a:Number(n)});return Dm(o)},"hsv"]]},Am=function(i,e){for(var t=0;t<e.length;t++){var r=e[t][0](i);if(r)return[r,e[t][1]]}return[null,void 0]},sS=function(i){return typeof i=="string"?Am(i.trim(),Xl.string):typeof i=="object"&&i!==null?Am(i,Xl.object):[null,void 0]},$l=function(i,e){var t=Os(i);return{h:t.h,s:et(t.s+100*e,0,100),l:t.l,a:t.a}},ql=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},Im=function(i,e){var t=Os(i);return{h:t.h,s:t.s,l:et(t.l+100*e,0,100),a:t.a}},Yl=function(){function i(e){this.parsed=sS(e)[0],this.rgba=this.parsed||{r:0,g:0,b:0,a:1}}return i.prototype.isValid=function(){return this.parsed!==null},i.prototype.brightness=function(){return _e(ql(this.rgba),2)},i.prototype.isDark=function(){return ql(this.rgba)<.5},i.prototype.isLight=function(){return ql(this.rgba)>=.5},i.prototype.toHex=function(){return e=jl(this.rgba),t=e.r,r=e.g,s=e.b,o=(n=e.a)<1?na(_e(255*n)):"","#"+na(t)+na(r)+na(s)+o;var e,t,r,s,n,o},i.prototype.toRgb=function(){return jl(this.rgba)},i.prototype.toRgbString=function(){return e=jl(this.rgba),t=e.r,r=e.g,s=e.b,(n=e.a)<1?"rgba("+t+", "+r+", "+s+", "+n+")":"rgb("+t+", "+r+", "+s+")";var e,t,r,s,n},i.prototype.toHsl=function(){return Cm(Os(this.rgba))},i.prototype.toHslString=function(){return e=Cm(Os(this.rgba)),t=e.h,r=e.s,s=e.l,(n=e.a)<1?"hsla("+t+", "+r+"%, "+s+"%, "+n+")":"hsl("+t+", "+r+"%, "+s+"%)";var e,t,r,s,n},i.prototype.toHsv=function(){return e=Fm(this.rgba),{h:_e(e.h),s:_e(e.s),v:_e(e.v),a:_e(e.a,3)};var e},i.prototype.invert=function(){return dt({r:255-(e=this.rgba).r,g:255-e.g,b:255-e.b,a:e.a});var e},i.prototype.saturate=function(e){return e===void 0&&(e=.1),dt($l(this.rgba,e))},i.prototype.desaturate=function(e){return e===void 0&&(e=.1),dt($l(this.rgba,-e))},i.prototype.grayscale=function(){return dt($l(this.rgba,-1))},i.prototype.lighten=function(e){return e===void 0&&(e=.1),dt(Im(this.rgba,e))},i.prototype.darken=function(e){return e===void 0&&(e=.1),dt(Im(this.rgba,-e))},i.prototype.rotate=function(e){return e===void 0&&(e=15),this.hue(this.hue()+e)},i.prototype.alpha=function(e){return typeof e=="number"?dt({r:(t=this.rgba).r,g:t.g,b:t.b,a:e}):_e(this.rgba.a,3);var t},i.prototype.hue=function(e){var t=Os(this.rgba);return typeof e=="number"?dt({h:e,s:t.s,l:t.l,a:t.a}):_e(t.h)},i.prototype.isEqual=function(e){return this.toHex()===dt(e).toHex()},i}(),dt=function(i){return i instanceof Yl?i:new Yl(i)},Mm=[],Rm=function(i){i.forEach(function(e){Mm.indexOf(e)<0&&(e(Yl,Xl),Mm.push(e))})}});function Um(i,e){var t={white:"#ffffff",bisque:"#ffe4c4",blue:"#0000ff",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",antiquewhite:"#faebd7",aqua:"#00ffff",azure:"#f0ffff",whitesmoke:"#f5f5f5",papayawhip:"#ffefd5",plum:"#dda0dd",blanchedalmond:"#ffebcd",black:"#000000",gold:"#ffd700",goldenrod:"#daa520",gainsboro:"#dcdcdc",cornsilk:"#fff8dc",cornflowerblue:"#6495ed",burlywood:"#deb887",aquamarine:"#7fffd4",beige:"#f5f5dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkkhaki:"#bdb76b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",peachpuff:"#ffdab9",darkmagenta:"#8b008b",darkred:"#8b0000",darkorchid:"#9932cc",darkorange:"#ff8c00",darkslateblue:"#483d8b",gray:"#808080",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",deeppink:"#ff1493",deepskyblue:"#00bfff",wheat:"#f5deb3",firebrick:"#b22222",floralwhite:"#fffaf0",ghostwhite:"#f8f8ff",darkviolet:"#9400d3",magenta:"#ff00ff",green:"#008000",dodgerblue:"#1e90ff",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",blueviolet:"#8a2be2",forestgreen:"#228b22",lawngreen:"#7cfc00",indianred:"#cd5c5c",indigo:"#4b0082",fuchsia:"#ff00ff",brown:"#a52a2a",maroon:"#800000",mediumblue:"#0000cd",lightcoral:"#f08080",darkturquoise:"#00ced1",lightcyan:"#e0ffff",ivory:"#fffff0",lightyellow:"#ffffe0",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",linen:"#faf0e6",mediumaquamarine:"#66cdaa",lemonchiffon:"#fffacd",lime:"#00ff00",khaki:"#f0e68c",mediumseagreen:"#3cb371",limegreen:"#32cd32",mediumspringgreen:"#00fa9a",lightskyblue:"#87cefa",lightblue:"#add8e6",midnightblue:"#191970",lightpink:"#ffb6c1",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",mintcream:"#f5fffa",lightslategray:"#778899",lightslategrey:"#778899",navajowhite:"#ffdead",navy:"#000080",mediumvioletred:"#c71585",powderblue:"#b0e0e6",palegoldenrod:"#eee8aa",oldlace:"#fdf5e6",paleturquoise:"#afeeee",mediumturquoise:"#48d1cc",mediumorchid:"#ba55d3",rebeccapurple:"#663399",lightsteelblue:"#b0c4de",mediumslateblue:"#7b68ee",thistle:"#d8bfd8",tan:"#d2b48c",orchid:"#da70d6",mediumpurple:"#9370db",purple:"#800080",pink:"#ffc0cb",skyblue:"#87ceeb",springgreen:"#00ff7f",palegreen:"#98fb98",red:"#ff0000",yellow:"#ffff00",slateblue:"#6a5acd",lavenderblush:"#fff0f5",peru:"#cd853f",palevioletred:"#db7093",violet:"#ee82ee",teal:"#008080",slategray:"#708090",slategrey:"#708090",aliceblue:"#f0f8ff",darkseagreen:"#8fbc8f",darkolivegreen:"#556b2f",greenyellow:"#adff2f",seagreen:"#2e8b57",seashell:"#fff5ee",tomato:"#ff6347",silver:"#c0c0c0",sienna:"#a0522d",lavender:"#e6e6fa",lightgreen:"#90ee90",orange:"#ffa500",orangered:"#ff4500",steelblue:"#4682b4",royalblue:"#4169e1",turquoise:"#40e0d0",yellowgreen:"#9acd32",salmon:"#fa8072",saddlebrown:"#8b4513",sandybrown:"#f4a460",rosybrown:"#bc8f8f",darksalmon:"#e9967a",lightgoldenrodyellow:"#fafad2",snow:"#fffafa",lightgrey:"#d3d3d3",lightgray:"#d3d3d3",dimgray:"#696969",dimgrey:"#696969",olivedrab:"#6b8e23",olive:"#808000"},r={};for(var s in t)r[t[s]]=s;var n={};i.prototype.toName=function(o){if(!(this.rgba.a||this.rgba.r||this.rgba.g||this.rgba.b))return"transparent";var a,c,l=r[this.toHex()];if(l)return l;if(o?.closest){var u=this.toRgb(),h=1/0,d="black";if(!n.length)for(var f in t)n[f]=new i(t[f]).toRgb();for(var m in t){var p=(a=u,c=n[m],Math.pow(a.r-c.r,2)+Math.pow(a.g-c.g,2)+Math.pow(a.b-c.b,2));p<h&&(h=p,d=m)}return d}},e.string.push([function(o){var a=o.toLowerCase(),c=a==="transparent"?"#0000":t[a];return c?new i(c).toRgb():null},"name"])}var zm=b(()=>{});var Ei,X,je=b(()=>{Om();zm();Rm([Um]);Ei=class Us{constructor(e=16777215){this._value=null,this._components=new Float32Array(4),this._components.fill(1),this._int=16777215,this.value=e}get red(){return this._components[0]}get green(){return this._components[1]}get blue(){return this._components[2]}get alpha(){return this._components[3]}setValue(e){return this.value=e,this}set value(e){if(e instanceof Us)this._value=this._cloneSource(e._value),this._int=e._int,this._components.set(e._components);else{if(e===null)throw new Error("Cannot set Color#value to null");(this._value===null||!this._isSourceEqual(this._value,e))&&(this._value=this._cloneSource(e),this._normalize(this._value))}}get value(){return this._value}_cloneSource(e){return typeof e=="string"||typeof e=="number"||e instanceof Number||e===null?e:Array.isArray(e)||ArrayBuffer.isView(e)?e.slice(0):typeof e=="object"&&e!==null?{...e}:e}_isSourceEqual(e,t){let r=typeof e;if(r!==typeof t)return!1;if(r==="number"||r==="string"||e instanceof Number)return e===t;if(Array.isArray(e)&&Array.isArray(t)||ArrayBuffer.isView(e)&&ArrayBuffer.isView(t))return e.length!==t.length?!1:e.every((n,o)=>n===t[o]);if(e!==null&&t!==null){let n=Object.keys(e),o=Object.keys(t);return n.length!==o.length?!1:n.every(a=>e[a]===t[a])}return e===t}toRgba(){let[e,t,r,s]=this._components;return{r:e,g:t,b:r,a:s}}toRgb(){let[e,t,r]=this._components;return{r:e,g:t,b:r}}toRgbaString(){let[e,t,r]=this.toUint8RgbArray();return`rgba(${e},${t},${r},${this.alpha})`}toUint8RgbArray(e){let[t,r,s]=this._components;return this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb),e[0]=Math.round(t*255),e[1]=Math.round(r*255),e[2]=Math.round(s*255),e}toArray(e){this._arrayRgba||(this._arrayRgba=[]),e||(e=this._arrayRgba);let[t,r,s,n]=this._components;return e[0]=t,e[1]=r,e[2]=s,e[3]=n,e}toRgbArray(e){this._arrayRgb||(this._arrayRgb=[]),e||(e=this._arrayRgb);let[t,r,s]=this._components;return e[0]=t,e[1]=r,e[2]=s,e}toNumber(){return this._int}toBgrNumber(){let[e,t,r]=this.toUint8RgbArray();return(r<<16)+(t<<8)+e}toLittleEndianNumber(){let e=this._int;return(e>>16)+(e&65280)+((e&255)<<16)}multiply(e){let[t,r,s,n]=Us._temp.setValue(e)._components;return this._components[0]*=t,this._components[1]*=r,this._components[2]*=s,this._components[3]*=n,this._refreshInt(),this._value=null,this}premultiply(e,t=!0){return t&&(this._components[0]*=e,this._components[1]*=e,this._components[2]*=e),this._components[3]=e,this._refreshInt(),this._value=null,this}toPremultiplied(e,t=!0){if(e===1)return(255<<24)+this._int;if(e===0)return t?0:this._int;let r=this._int>>16&255,s=this._int>>8&255,n=this._int&255;return t&&(r=r*e+.5|0,s=s*e+.5|0,n=n*e+.5|0),(e*255<<24)+(r<<16)+(s<<8)+n}toHex(){let e=this._int.toString(16);return`#${"000000".substring(0,6-e.length)+e}`}toHexa(){let t=Math.round(this._components[3]*255).toString(16);return this.toHex()+"00".substring(0,2-t.length)+t}setAlpha(e){return this._components[3]=this._clamp(e),this}_normalize(e){let t,r,s,n;if((typeof e=="number"||e instanceof Number)&&e>=0&&e<=16777215){let o=e;t=(o>>16&255)/255,r=(o>>8&255)/255,s=(o&255)/255,n=1}else if((Array.isArray(e)||e instanceof Float32Array)&&e.length>=3&&e.length<=4)e=this._clamp(e),[t,r,s,n=1]=e;else if((e instanceof Uint8Array||e instanceof Uint8ClampedArray)&&e.length>=3&&e.length<=4)e=this._clamp(e,0,255),[t,r,s,n=255]=e,t/=255,r/=255,s/=255,n/=255;else if(typeof e=="string"||typeof e=="object"){if(typeof e=="string"){let a=Us.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=dt(e);o.isValid()&&({r:t,g:r,b:s,a:n}=o.rgba,t/=255,r/=255,s/=255)}if(t!==void 0)this._components[0]=t,this._components[1]=r,this._components[2]=s,this._components[3]=n,this._refreshInt();else throw new Error(`Unable to convert color ${e}`)}_refreshInt(){this._clamp(this._components);let[e,t,r]=this._components;this._int=(e*255<<16)+(t*255<<8)+(r*255|0)}_clamp(e,t=0,r=1){return typeof e=="number"?Math.min(Math.max(e,t),r):(e.forEach((s,n)=>{e[n]=Math.min(Math.max(s,t),r)}),e)}static isColorLike(e){return typeof e=="number"||typeof e=="string"||e instanceof Number||e instanceof Us||Array.isArray(e)||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Float32Array||e.r!==void 0&&e.g!==void 0&&e.b!==void 0||e.r!==void 0&&e.g!==void 0&&e.b!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0||e.h!==void 0&&e.s!==void 0&&e.l!==void 0&&e.a!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0||e.h!==void 0&&e.s!==void 0&&e.v!==void 0&&e.a!==void 0}};Ei.shared=new Ei;Ei._temp=new Ei;Ei.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;X=Ei});var Gm,Nm=b(()=>{"use strict";Gm={cullArea:null,cullable:!1,cullableChildren:!0}});var Lm,Vm,Wm,Kl=b(()=>{"use strict";Lm=Math.PI*2,Vm=180/Math.PI,Wm=Math.PI/180});var Y,Zl,St=b(()=>{"use strict";Y=class i{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new i(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[pixi.js/math:Point x=${this.x} y=${this.y}]`}static get shared(){return Zl.x=0,Zl.y=0,Zl}},Zl=new Y});var F,nS,oS,re=b(()=>{Kl();St();F=class i{constructor(e=1,t=0,r=0,s=1,n=0,o=0){this.array=null,this.a=e,this.b=t,this.c=r,this.d=s,this.tx=n,this.ty=o}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,r,s,n,o){return this.a=e,this.b=t,this.c=r,this.d=s,this.tx=n,this.ty=o,this}toArray(e,t){this.array||(this.array=new Float32Array(9));let r=t||this.array;return e?(r[0]=this.a,r[1]=this.b,r[2]=0,r[3]=this.c,r[4]=this.d,r[5]=0,r[6]=this.tx,r[7]=this.ty,r[8]=1):(r[0]=this.a,r[1]=this.c,r[2]=this.tx,r[3]=this.b,r[4]=this.d,r[5]=this.ty,r[6]=0,r[7]=0,r[8]=1),r}apply(e,t){t=t||new Y;let r=e.x,s=e.y;return t.x=this.a*r+this.c*s+this.tx,t.y=this.b*r+this.d*s+this.ty,t}applyInverse(e,t){t=t||new Y;let r=this.a,s=this.b,n=this.c,o=this.d,a=this.tx,c=this.ty,l=1/(r*o+n*-s),u=e.x,h=e.y;return t.x=o*l*u+-n*l*h+(c*n-a*o)*l,t.y=r*l*h+-s*l*u+(-c*r+a*s)*l,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){let t=Math.cos(e),r=Math.sin(e),s=this.a,n=this.c,o=this.tx;return this.a=s*t-this.b*r,this.b=s*r+this.b*t,this.c=n*t-this.d*r,this.d=n*r+this.d*t,this.tx=o*t-this.ty*r,this.ty=o*r+this.ty*t,this}append(e){let t=this.a,r=this.b,s=this.c,n=this.d;return this.a=e.a*t+e.b*s,this.b=e.a*r+e.b*n,this.c=e.c*t+e.d*s,this.d=e.c*r+e.d*n,this.tx=e.tx*t+e.ty*s+this.tx,this.ty=e.tx*r+e.ty*n+this.ty,this}appendFrom(e,t){let r=e.a,s=e.b,n=e.c,o=e.d,a=e.tx,c=e.ty,l=t.a,u=t.b,h=t.c,d=t.d;return this.a=r*l+s*h,this.b=r*u+s*d,this.c=n*l+o*h,this.d=n*u+o*d,this.tx=a*l+c*h+t.tx,this.ty=a*u+c*d+t.ty,this}setTransform(e,t,r,s,n,o,a,c,l){return this.a=Math.cos(a+l)*n,this.b=Math.sin(a+l)*n,this.c=-Math.sin(a-c)*o,this.d=Math.cos(a-c)*o,this.tx=e-(r*this.a+s*this.c),this.ty=t-(r*this.b+s*this.d),this}prepend(e){let t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){let r=this.a,s=this.c;this.a=r*e.a+this.b*e.c,this.b=r*e.b+this.b*e.d,this.c=s*e.a+this.d*e.c,this.d=s*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){let t=this.a,r=this.b,s=this.c,n=this.d,o=e.pivot,a=-Math.atan2(-s,n),c=Math.atan2(r,t),l=Math.abs(a+c);return l<1e-5||Math.abs(Lm-l)<1e-5?(e.rotation=c,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=c),e.scale.x=Math.sqrt(t*t+r*r),e.scale.y=Math.sqrt(s*s+n*n),e.position.x=this.tx+(o.x*t+o.y*s),e.position.y=this.ty+(o.x*r+o.y*n),e}invert(){let e=this.a,t=this.b,r=this.c,s=this.d,n=this.tx,o=e*s-t*r;return this.a=s/o,this.b=-t/o,this.c=-r/o,this.d=e/o,this.tx=(r*this.ty-s*n)/o,this.ty=-(e*this.ty-t*n)/o,this}isIdentity(){return this.a===1&&this.b===0&&this.c===0&&this.d===1&&this.tx===0&&this.ty===0}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){let e=new i;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}equals(e){return e.a===this.a&&e.b===this.b&&e.c===this.c&&e.d===this.d&&e.tx===this.tx&&e.ty===this.ty}toString(){return`[pixi.js:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return oS.identity()}static get shared(){return nS.identity()}},nS=new F,oS=new F});var Oe,Ql=b(()=>{"use strict";Oe=class i{constructor(e,t,r){this._x=t||0,this._y=r||0,this._observer=e}clone(e){return new i(e??this._observer,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this._observer._onUpdate(this)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this._observer._onUpdate(this)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[pixi.js/math:ObservablePoint x=${this._x} y=${this._y} scope=${this._observer}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this._observer._onUpdate(this))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this._observer._onUpdate(this))}}});function K(i="default"){return Jl[i]===void 0&&(Jl[i]=-1),++Jl[i]}var Jl,Ue=b(()=>{"use strict";Jl={default:-1}});function N(i,e,t=3){if(Hm[e])return;let r=new Error().stack;typeof r>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
|
|
2
|
+
Deprecated since v${i}`):(r=r.split(`
|
|
3
|
+
`).splice(t).join(`
|
|
4
|
+
`),console.groupCollapsed?(console.groupCollapsed("%cPixiJS Deprecation Warning: %c%s","color:#614108;background:#fffbe6","font-weight:normal;color:#614108;background:#fffbe6",`${e}
|
|
5
|
+
Deprecated since v${i}`),console.warn(r),console.groupEnd()):(console.warn("PixiJS Deprecation Warning: ",`${e}
|
|
6
|
+
Deprecated since v${i}`),console.warn(r))),Hm[e]=!0}var Hm,$,jm,pe=b(()=>{"use strict";Hm={},$="8.0.0",jm="8.3.4"});var Nr,eu=b(()=>{"use strict";Nr=class{constructor(e,t){this._pool=[],this._count=0,this._index=0,this._classType=e,t&&this.prepopulate(t)}prepopulate(e){for(let t=0;t<e;t++)this._pool[this._index++]=new this._classType;this._count+=e}get(e){let t;return this._index>0?t=this._pool[--this._index]:t=new this._classType,t.init?.(e),t}return(e){e.reset?.(),this._pool[this._index++]=e}get totalSize(){return this._count}get totalFree(){return this._index}get totalUsed(){return this._count-this._index}clear(){this._pool.length=0,this._index=0}}});var tu,be,Lr=b(()=>{eu();tu=class{constructor(){this._poolsByClass=new Map}prepopulate(e,t){this.getPool(e).prepopulate(t)}get(e,t){return this.getPool(e).get(t)}return(e){this.getPool(e.constructor).return(e)}getPool(e){return this._poolsByClass.has(e)||this._poolsByClass.set(e,new Nr(e)),this._poolsByClass.get(e)}stats(){let e={};return this._poolsByClass.forEach(t=>{let r=e[t._classType.name]?t._classType.name+t._classType.ID:t._classType.name;e[r]={free:t.totalFree,used:t.totalUsed,size:t.totalSize}}),e}},be=new tu});var $m,qm=b(()=>{pe();$m={get isCachedAsTexture(){return!!this.renderGroup?.isCachedAsTexture},cacheAsTexture(i){typeof i=="boolean"&&i===!1?this.disableRenderGroup():(this.enableRenderGroup(),this.renderGroup.enableCacheAsTexture(i===!0?{}:i))},updateCacheTexture(){this.renderGroup?.updateCacheTexture()},get cacheAsBitmap(){return this.isCachedAsTexture},set cacheAsBitmap(i){N("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function oa(i,e,t){let r=i.length,s;if(e>=r||t===0)return;t=e+t>r?r-e:t;let n=r-t;for(s=e;s<n;++s)i[s]=i[s+t];i.length=n}var ru=b(()=>{"use strict"});var Xm,Ym=b(()=>{ru();pe();Xm={allowChildren:!0,removeChildren(i=0,e){let t=e??this.children.length,r=t-i,s=[];if(r>0&&r<=t){for(let o=t-1;o>=i;o--){let a=this.children[o];a&&(s.push(a),a.parent=null)}oa(this.children,i,t);let n=this.renderGroup||this.parentRenderGroup;n&&n.removeChildren(s);for(let o=0;o<s.length;++o){let a=s[o];a.parentRenderLayer?.detach(a),this.emit("childRemoved",a,this,o),s[o].emit("removed",this)}return s.length>0&&this._didViewChangeTick++,s}else if(r===0&&this.children.length===0)return s;throw new RangeError("removeChildren: numeric values are outside the acceptable range.")},removeChildAt(i){let e=this.getChildAt(i);return this.removeChild(e)},getChildAt(i){if(i<0||i>=this.children.length)throw new Error(`getChildAt: Index (${i}) does not exist.`);return this.children[i]},setChildIndex(i,e){if(e<0||e>=this.children.length)throw new Error(`The index ${e} supplied is out of bounds ${this.children.length}`);this.getChildIndex(i),this.addChildAt(i,e)},getChildIndex(i){let e=this.children.indexOf(i);if(e===-1)throw new Error("The supplied Container must be a child of the caller");return e},addChildAt(i,e){this.allowChildren||N($,"addChildAt: Only Containers will be allowed to add children in v8.0.0");let{children:t}=this;if(e<0||e>t.length)throw new Error(`${i}addChildAt: The index ${e} supplied is out of bounds ${t.length}`);if(i.parent){let s=i.parent.children.indexOf(i);if(i.parent===this&&s===e)return i;s!==-1&&i.parent.children.splice(s,1)}e===t.length?t.push(i):t.splice(e,0,i),i.parent=this,i.didChange=!0,i._updateFlags=15;let r=this.renderGroup||this.parentRenderGroup;return r&&r.addChild(i),this.sortableChildren&&(this.sortDirty=!0),this.emit("childAdded",i,this,e),i.emit("added",this),i},swapChildren(i,e){if(i===e)return;let t=this.getChildIndex(i),r=this.getChildIndex(e);this.children[t]=e,this.children[r]=i;let s=this.renderGroup||this.parentRenderGroup;s&&(s.structureDidChange=!0),this._didContainerChangeTick++},removeFromParent(){this.parent?.removeChild(this)},reparentChild(...i){return i.length===1?this.reparentChildAt(i[0],this.children.length):(i.forEach(e=>this.reparentChildAt(e,this.children.length)),i[0])},reparentChildAt(i,e){if(i.parent===this)return this.setChildIndex(i,e),i;let t=i.worldTransform.clone();i.removeFromParent(),this.addChildAt(i,e);let r=this.worldTransform.clone();return r.invert(),t.prepend(r),i.setFromMatrix(t),i}}});var Km,Zm=b(()=>{"use strict";Km={collectRenderables(i,e,t){this.parentRenderLayer&&this.parentRenderLayer!==t||this.globalDisplayStatus<7||!this.includeInBuild||(this.sortableChildren&&this.sortChildren(),this.isSimple?this.collectRenderablesSimple(i,e,t):this.renderGroup?e.renderPipes.renderGroup.addRenderGroup(this.renderGroup,i):this.collectRenderablesWithEffects(i,e,t))},collectRenderablesSimple(i,e,t){let r=this.children,s=r.length;for(let n=0;n<s;n++)r[n].collectRenderables(i,e,t)},collectRenderablesWithEffects(i,e,t){let{renderPipes:r}=e;for(let s=0;s<this.effects.length;s++){let n=this.effects[s];r[n.pipe].push(n,this,i)}this.collectRenderablesSimple(i,e,t);for(let s=this.effects.length-1;s>=0;s--){let n=this.effects[s];r[n.pipe].pop(n,this,i)}}}});var zs,Qm=b(()=>{"use strict";zs=class{constructor(){this.pipe="filter",this.priority=1}destroy(){for(let e=0;e<this.filters.length;e++)this.filters[e].destroy();this.filters=null,this.filterArea=null}}});var iu,aa,Jm=b(()=>{G();Lr();iu=class{constructor(){this._effectClasses=[],this._tests=[],this._initialized=!1}init(){this._initialized||(this._initialized=!0,this._effectClasses.forEach(e=>{this.add({test:e.test,maskClass:e})}))}add(e){this._tests.push(e)}getMaskEffect(e){this._initialized||this.init();for(let t=0;t<this._tests.length;t++){let r=this._tests[t];if(r.test(e))return be.get(r.maskClass,e)}return e}returnMaskEffect(e){be.return(e)}},aa=new iu;L.handleByList(A.MaskEffect,aa._effectClasses)});var ep,tp=b(()=>{Qm();Jm();ep={_maskEffect:null,_maskOptions:{inverse:!1},_filterEffect:null,effects:[],_markStructureAsChanged(){let i=this.renderGroup||this.parentRenderGroup;i&&(i.structureDidChange=!0)},addEffect(i){this.effects.indexOf(i)===-1&&(this.effects.push(i),this.effects.sort((t,r)=>t.priority-r.priority),this._markStructureAsChanged(),this._updateIsSimple())},removeEffect(i){let e=this.effects.indexOf(i);e!==-1&&(this.effects.splice(e,1),this._markStructureAsChanged(),this._updateIsSimple())},set mask(i){let e=this._maskEffect;e?.mask!==i&&(e&&(this.removeEffect(e),aa.returnMaskEffect(e),this._maskEffect=null),i!=null&&(this._maskEffect=aa.getMaskEffect(i),this.addEffect(this._maskEffect)))},get mask(){return this._maskEffect?.mask},setMask(i){this._maskOptions={...this._maskOptions,...i},i.mask&&(this.mask=i.mask),this._markStructureAsChanged()},set filters(i){!Array.isArray(i)&&i&&(i=[i]);let e=this._filterEffect||(this._filterEffect=new zs);i=i;let t=i?.length>0,r=e.filters?.length>0,s=t!==r;i=Array.isArray(i)?i.slice(0):i,e.filters=Object.freeze(i),s&&(t?this.addEffect(e):(this.removeEffect(e),e.filters=i??null))},get filters(){return this._filterEffect?.filters},set filterArea(i){this._filterEffect||(this._filterEffect=new zs),this._filterEffect.filterArea=i},get filterArea(){return this._filterEffect?.filterArea}}});var rp,ip=b(()=>{pe();rp={label:null,get name(){return N($,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){N($,"Container.name property has been removed, use Container.label instead"),this.label=i},getChildByName(i,e=!1){return this.getChildByLabel(i,e)},getChildByLabel(i,e=!1){let t=this.children;for(let r=0;r<t.length;r++){let s=t[r];if(s.label===i||i instanceof RegExp&&i.test(s.label))return s}if(e)for(let r=0;r<t.length;r++){let n=t[r].getChildByLabel(i,!0);if(n)return n}return null},getChildrenByLabel(i,e=!1,t=[]){let r=this.children;for(let s=0;s<r.length;s++){let n=r[s];(n.label===i||i instanceof RegExp&&i.test(n.label))&&t.push(n)}if(e)for(let s=0;s<r.length;s++)r[s].getChildrenByLabel(i,!0,t);return t}}});var ca,Z,$e=b(()=>{St();ca=[new Y,new Y,new Y,new Y],Z=class i{constructor(e=0,t=0,r=0,s=0){this.type="rectangle",this.x=Number(e),this.y=Number(t),this.width=Number(r),this.height=Number(s)}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}isEmpty(){return this.left===this.right||this.top===this.bottom}static get EMPTY(){return new i(0,0,0,0)}clone(){return new i(this.x,this.y,this.width,this.height)}copyFromBounds(e){return this.x=e.minX,this.y=e.minY,this.width=e.maxX-e.minX,this.height=e.maxY-e.minY,this}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){return this.width<=0||this.height<=0?!1:e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}strokeContains(e,t,r,s=.5){let{width:n,height:o}=this;if(n<=0||o<=0)return!1;let a=this.x,c=this.y,l=r*(1-s),u=r-l,h=a-l,d=a+n+l,f=c-l,m=c+o+l,p=a+u,g=a+n-u,y=c+u,x=c+o-u;return e>=h&&e<=d&&t>=f&&t<=m&&!(e>p&&e<g&&t>y&&t<x)}intersects(e,t){if(!t){let M=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=M)return!1;let C=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>C}let r=this.left,s=this.right,n=this.top,o=this.bottom;if(s<=r||o<=n)return!1;let a=ca[0].set(e.left,e.top),c=ca[1].set(e.left,e.bottom),l=ca[2].set(e.right,e.top),u=ca[3].set(e.right,e.bottom);if(l.x<=a.x||c.y<=a.y)return!1;let h=Math.sign(t.a*t.d-t.b*t.c);if(h===0||(t.apply(a,a),t.apply(c,c),t.apply(l,l),t.apply(u,u),Math.max(a.x,c.x,l.x,u.x)<=r||Math.min(a.x,c.x,l.x,u.x)>=s||Math.max(a.y,c.y,l.y,u.y)<=n||Math.min(a.y,c.y,l.y,u.y)>=o))return!1;let d=h*(c.y-a.y),f=h*(a.x-c.x),m=d*r+f*n,p=d*s+f*n,g=d*r+f*o,y=d*s+f*o;if(Math.max(m,p,g,y)<=d*a.x+f*a.y||Math.min(m,p,g,y)>=d*u.x+f*u.y)return!1;let x=h*(a.y-l.y),w=h*(l.x-a.x),_=x*r+w*n,S=x*s+w*n,T=x*r+w*o,v=x*s+w*o;return!(Math.max(_,S,T,v)<=x*a.x+w*a.y||Math.min(_,S,T,v)>=x*u.x+w*u.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=e*2,this.height+=t*2,this}fit(e){let t=Math.max(this.x,e.x),r=Math.min(this.x+this.width,e.x+e.width),s=Math.max(this.y,e.y),n=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(r-t,0),this.y=s,this.height=Math.max(n-s,0),this}ceil(e=1,t=.001){let r=Math.ceil((this.x+this.width-t)*e)/e,s=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=r-this.x,this.height=s-this.y,this}enlarge(e){let t=Math.min(this.x,e.x),r=Math.max(this.x+this.width,e.x+e.width),s=Math.min(this.y,e.y),n=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=r-t,this.y=s,this.height=n-s,this}getBounds(e){return e||(e=new i),e.copyFrom(this),e}containsRect(e){if(this.width<=0||this.height<=0)return!1;let t=e.x,r=e.y,s=e.x+e.width,n=e.y+e.height;return t>=this.x&&t<this.x+this.width&&r>=this.y&&r<this.y+this.height&&s>=this.x&&s<this.x+this.width&&n>=this.y&&n<this.y+this.height}set(e,t,r,s){return this.x=e,this.y=t,this.width=r,this.height=s,this}toString(){return`[pixi.js/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}}});var sp,le,ft=b(()=>{re();$e();sp=new F,le=class i{constructor(e=1/0,t=1/0,r=-1/0,s=-1/0){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=sp,this.minX=e,this.minY=t,this.maxX=r,this.maxY=s}isEmpty(){return this.minX>this.maxX||this.minY>this.maxY}get rectangle(){this._rectangle||(this._rectangle=new Z);let e=this._rectangle;return this.minX>this.maxX||this.minY>this.maxY?(e.x=0,e.y=0,e.width=0,e.height=0):e.copyFromBounds(this),e}clear(){return this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,this.matrix=sp,this}set(e,t,r,s){this.minX=e,this.minY=t,this.maxX=r,this.maxY=s}addFrame(e,t,r,s,n){n||(n=this.matrix);let o=n.a,a=n.b,c=n.c,l=n.d,u=n.tx,h=n.ty,d=this.minX,f=this.minY,m=this.maxX,p=this.maxY,g=o*e+c*t+u,y=a*e+l*t+h;g<d&&(d=g),y<f&&(f=y),g>m&&(m=g),y>p&&(p=y),g=o*r+c*t+u,y=a*r+l*t+h,g<d&&(d=g),y<f&&(f=y),g>m&&(m=g),y>p&&(p=y),g=o*e+c*s+u,y=a*e+l*s+h,g<d&&(d=g),y<f&&(f=y),g>m&&(m=g),y>p&&(p=y),g=o*r+c*s+u,y=a*r+l*s+h,g<d&&(d=g),y<f&&(f=y),g>m&&(m=g),y>p&&(p=y),this.minX=d,this.minY=f,this.maxX=m,this.maxY=p}addRect(e,t){this.addFrame(e.x,e.y,e.x+e.width,e.y+e.height,t)}addBounds(e,t){this.addFrame(e.minX,e.minY,e.maxX,e.maxY,t)}addBoundsMask(e){this.minX=this.minX>e.minX?this.minX:e.minX,this.minY=this.minY>e.minY?this.minY:e.minY,this.maxX=this.maxX<e.maxX?this.maxX:e.maxX,this.maxY=this.maxY<e.maxY?this.maxY:e.maxY}applyMatrix(e){let t=this.minX,r=this.minY,s=this.maxX,n=this.maxY,{a:o,b:a,c,d:l,tx:u,ty:h}=e,d=o*t+c*r+u,f=a*t+l*r+h;this.minX=d,this.minY=f,this.maxX=d,this.maxY=f,d=o*s+c*r+u,f=a*s+l*r+h,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*t+c*n+u,f=a*t+l*n+h,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY,d=o*s+c*n+u,f=a*s+l*n+h,this.minX=d<this.minX?d:this.minX,this.minY=f<this.minY?f:this.minY,this.maxX=d>this.maxX?d:this.maxX,this.maxY=f>this.maxY?f:this.maxY}fit(e){return this.minX<e.left&&(this.minX=e.left),this.maxX>e.right&&(this.maxX=e.right),this.minY<e.top&&(this.minY=e.top),this.maxY>e.bottom&&(this.maxY=e.bottom),this}fitBounds(e,t,r,s){return this.minX<e&&(this.minX=e),this.maxX>t&&(this.maxX=t),this.minY<r&&(this.minY=r),this.maxY>s&&(this.maxY=s),this}pad(e,t=e){return this.minX-=e,this.maxX+=e,this.minY-=t,this.maxY+=t,this}ceil(){return this.minX=Math.floor(this.minX),this.minY=Math.floor(this.minY),this.maxX=Math.ceil(this.maxX),this.maxY=Math.ceil(this.maxY),this}clone(){return new i(this.minX,this.minY,this.maxX,this.maxY)}scale(e,t=e){return this.minX*=e,this.minY*=t,this.maxX*=e,this.maxY*=t,this}get x(){return this.minX}set x(e){let t=this.maxX-this.minX;this.minX=e,this.maxX=e+t}get y(){return this.minY}set y(e){let t=this.maxY-this.minY;this.minY=e,this.maxY=e+t}get width(){return this.maxX-this.minX}set width(e){this.maxX=this.minX+e}get height(){return this.maxY-this.minY}set height(e){this.maxY=this.minY+e}get left(){return this.minX}get right(){return this.maxX}get top(){return this.minY}get bottom(){return this.maxY}get isPositive(){return this.maxX-this.minX>0&&this.maxY-this.minY>0}get isValid(){return this.minX+this.minY!==1/0}addVertexData(e,t,r,s){let n=this.minX,o=this.minY,a=this.maxX,c=this.maxY;s||(s=this.matrix);let l=s.a,u=s.b,h=s.c,d=s.d,f=s.tx,m=s.ty;for(let p=t;p<r;p+=2){let g=e[p],y=e[p+1],x=l*g+h*y+f,w=u*g+d*y+m;n=x<n?x:n,o=w<o?w:o,a=x>a?x:a,c=w>c?w:c}this.minX=n,this.minY=o,this.maxX=a,this.maxY=c}containsPoint(e,t){return this.minX<=e&&this.minY<=t&&this.maxX>=e&&this.maxY>=t}toString(){return`[pixi.js:Bounds minX=${this.minX} minY=${this.minY} maxX=${this.maxX} maxY=${this.maxY} width=${this.width} height=${this.height}]`}copyFrom(e){return this.minX=e.minX,this.minY=e.minY,this.maxX=e.maxX,this.maxY=e.maxY,this}}});var ge,Ke,Vr=b(()=>{re();eu();ft();ge=new Nr(F),Ke=new Nr(le)});var aS,np,op=b(()=>{re();ft();Vr();aS=new F,np={getFastGlobalBounds(i,e){e||(e=new le),e.clear(),this._getGlobalBoundsRecursive(!!i,e,this.parentRenderLayer),e.isValid||e.set(0,0,0,0);let t=this.renderGroup||this.parentRenderGroup;return e.applyMatrix(t.worldTransform),e},_getGlobalBoundsRecursive(i,e,t){let r=e;if(i&&this.parentRenderLayer&&this.parentRenderLayer!==t||this.localDisplayStatus!==7||!this.measurable)return;let s=!!this.effects.length;if((this.renderGroup||s)&&(r=Ke.get().clear()),this.boundsArea)e.addRect(this.boundsArea,this.worldTransform);else{if(this.renderPipeId){let o=this.bounds;r.addFrame(o.minX,o.minY,o.maxX,o.maxY,this.groupTransform)}let n=this.children;for(let o=0;o<n.length;o++)n[o]._getGlobalBoundsRecursive(i,r,t)}if(s){let n=!1,o=this.renderGroup||this.parentRenderGroup;for(let a=0;a<this.effects.length;a++)this.effects[a].addBounds&&(n||(n=!0,r.applyMatrix(o.worldTransform)),this.effects[a].addBounds(r,!0));n&&(r.applyMatrix(o.worldTransform.copyTo(aS).invert()),e.addBounds(r,this.relativeGroupTransform)),e.addBounds(r),Ke.return(r)}else this.renderGroup&&(e.addBounds(r,this.relativeGroupTransform),Ke.return(r))}}});function la(i,e,t){t.clear();let r,s;return i.parent?e?r=i.parent.worldTransform:(s=ge.get().identity(),r=ua(i,s)):r=F.IDENTITY,ap(i,t,r,e),s&&ge.return(s),t.isValid||t.set(0,0,0,0),t}function ap(i,e,t,r){if(!i.visible||!i.measurable)return;let s;r?s=i.worldTransform:(i.updateLocalTransform(),s=ge.get(),s.appendFrom(i.localTransform,t));let n=e,o=!!i.effects.length;if(o&&(e=Ke.get().clear()),i.boundsArea)e.addRect(i.boundsArea,s);else{i.bounds&&(e.matrix=s,e.addBounds(i.bounds));for(let a=0;a<i.children.length;a++)ap(i.children[a],e,s,r)}if(o){for(let a=0;a<i.effects.length;a++)i.effects[a].addBounds?.(e);n.addBounds(e,F.IDENTITY),Ke.return(e)}r||ge.return(s)}function ua(i,e){let t=i.parent;return t&&(ua(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var ha=b(()=>{re();Vr()});function da(i,e){if(i===16777215||!e)return e;if(e===16777215||!i)return i;let t=i>>16&255,r=i>>8&255,s=i&255,n=e>>16&255,o=e>>8&255,a=e&255,c=t*n/255|0,l=r*o/255|0,u=s*a/255|0;return(c<<16)+(l<<8)+u}var su=b(()=>{"use strict"});function nu(i,e){return i===cp?e:e===cp?i:da(i,e)}var cp,lp=b(()=>{su();cp=16777215});function Gs(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var up,hp=b(()=>{ha();Vr();lp();up={getGlobalAlpha(i){if(i)return this.renderGroup?this.renderGroup.worldAlpha:this.parentRenderGroup?this.parentRenderGroup.worldAlpha*this.alpha:this.alpha;let e=this.alpha,t=this.parent;for(;t;)e*=t.alpha,t=t.parent;return e},getGlobalTransform(i,e){if(e)return i.copyFrom(this.worldTransform);this.updateLocalTransform();let t=ua(this,ge.get().identity());return i.appendFrom(this.localTransform,t),ge.return(t),i},getGlobalTint(i){if(i)return this.renderGroup?Gs(this.renderGroup.worldColor):this.parentRenderGroup?Gs(nu(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=nu(e,t.localColor),t=t.parent;return Gs(e)}}});function fa(i,e,t){return e.clear(),t||(t=F.IDENTITY),dp(i,e,t,i,!0),e.isValid||e.set(0,0,0,0),e}function dp(i,e,t,r,s){let n;if(s)n=ge.get(),n=t.copyTo(n);else{if(!i.visible||!i.measurable)return;i.updateLocalTransform();let c=i.localTransform;n=ge.get(),n.appendFrom(c,t)}let o=e,a=!!i.effects.length;if(a&&(e=Ke.get().clear()),i.boundsArea)e.addRect(i.boundsArea,n);else{i.renderPipeId&&(e.matrix=n,e.addBounds(i.bounds));let c=i.children;for(let l=0;l<c.length;l++)dp(c[l],e,n,r,!1)}if(a){for(let c=0;c<i.effects.length;c++)i.effects[c].addLocalBounds?.(e,r);o.addBounds(e,F.IDENTITY),Ke.return(e)}ge.return(n)}var ou=b(()=>{re();Vr()});function au(i,e){let t=i.children;for(let r=0;r<t.length;r++){let s=t[r],n=s.uid,o=(s._didViewChangeTick&65535)<<16|s._didContainerChangeTick&65535,a=e.index;(e.data[a]!==n||e.data[a+1]!==o)&&(e.data[e.index]=n,e.data[e.index+1]=o,e.didChange=!0),e.index=a+2,s.children.length&&au(s,e)}return e.didChange}var fp=b(()=>{"use strict"});var cS,mp,pp=b(()=>{re();ft();ha();ou();fp();cS=new F,mp={_localBoundsCacheId:-1,_localBoundsCacheData:null,_setWidth(i,e){let t=Math.sign(this.scale.x)||1;e!==0?this.scale.x=i/e*t:this.scale.x=t},_setHeight(i,e){let t=Math.sign(this.scale.y)||1;e!==0?this.scale.y=i/e*t:this.scale.y=t},getLocalBounds(){this._localBoundsCacheData||(this._localBoundsCacheData={data:[],index:1,didChange:!1,localBounds:new le});let i=this._localBoundsCacheData;return i.index=1,i.didChange=!1,i.data[0]!==this._didViewChangeTick&&(i.didChange=!0,i.data[0]=this._didViewChangeTick),au(this,i),i.didChange&&fa(this,i.localBounds,cS),i.localBounds},getBounds(i,e){return la(this,i,e||new le)}}});var gp,xp=b(()=>{"use strict";gp={_onRender:null,set onRender(i){let e=this.renderGroup||this.parentRenderGroup;if(!i){this._onRender&&e?.removeOnRender(this),this._onRender=null;return}this._onRender||e?.addOnRender(this),this._onRender=i},get onRender(){return this._onRender}}});function lS(i,e){return i._zIndex-e._zIndex}var yp,bp=b(()=>{"use strict";yp={_zIndex:0,sortDirty:!1,sortableChildren:!1,get zIndex(){return this._zIndex},set zIndex(i){this._zIndex!==i&&(this._zIndex=i,this.depthOfChildModified())},depthOfChildModified(){this.parent&&(this.parent.sortableChildren=!0,this.parent.sortDirty=!0),this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0)},sortChildren(){this.sortDirty&&(this.sortDirty=!1,this.children.sort(lS))}}});var wp,_p=b(()=>{St();Vr();wp={getGlobalPosition(i=new Y,e=!1){return this.parent?this.parent.toGlobal(this._position,i,e):(i.x=this._position.x,i.y=this._position.y),i},toGlobal(i,e,t=!1){let r=this.getGlobalTransform(ge.get(),t);return e=r.apply(i,e),ge.return(r),e},toLocal(i,e,t,r){e&&(i=e.toGlobal(i,t,r));let s=this.getGlobalTransform(ge.get(),r);return t=s.applyInverse(i,t),ge.return(s),t}}});var Ai,cu=b(()=>{Ue();Ai=class{constructor(){this.uid=K("instructionSet"),this.instructions=[],this.instructionSize=0,this.renderables=[],this.gcTick=0}reset(){this.instructionSize=0}add(e){this.instructions[this.instructionSize++]=e}log(){this.instructions.length=this.instructionSize,console.table(this.instructions,["type","action"])}}});function $t(i){return i+=i===0?1:0,--i,i|=i>>>1,i|=i>>>2,i|=i>>>4,i|=i>>>8,i|=i>>>16,i+1}function lu(i){return!(i&i-1)&&!!i}var Ns=b(()=>{"use strict"});function ma(i){let e={};for(let t in i)i[t]!==void 0&&(e[t]=i[t]);return e}var uu=b(()=>{"use strict"});function uS(i){let e=Sp[i];return e===void 0&&(Sp[i]=K("resource")),e}var Sp,Tp,tt,Ii=b(()=>{He();Ue();pe();Sp=Object.create(null);Tp=class kp extends ie{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...kp.defaultOptions,...e},this.addressMode=e.addressMode,this.addressModeU=e.addressModeU??this.addressModeU,this.addressModeV=e.addressModeV??this.addressModeV,this.addressModeW=e.addressModeW??this.addressModeW,this.scaleMode=e.scaleMode,this.magFilter=e.magFilter??this.magFilter,this.minFilter=e.minFilter??this.minFilter,this.mipmapFilter=e.mipmapFilter??this.mipmapFilter,this.lodMinClamp=e.lodMinClamp,this.lodMaxClamp=e.lodMaxClamp,this.compare=e.compare,this.maxAnisotropy=e.maxAnisotropy??1}set addressMode(e){this.addressModeU=e,this.addressModeV=e,this.addressModeW=e}get addressMode(){return this.addressModeU}set wrapMode(e){N($,"TextureStyle.wrapMode is now TextureStyle.addressMode"),this.addressMode=e}get wrapMode(){return this.addressMode}set scaleMode(e){this.magFilter=e,this.minFilter=e,this.mipmapFilter=e}get scaleMode(){return this.magFilter}set maxAnisotropy(e){this._maxAnisotropy=Math.min(e,16),this._maxAnisotropy>1&&(this.scaleMode="linear")}get maxAnisotropy(){return this._maxAnisotropy}get _resourceId(){return this._sharedResourceId||this._generateResourceId()}update(){this.emit("change",this),this._sharedResourceId=null}_generateResourceId(){let e=`${this.addressModeU}-${this.addressModeV}-${this.addressModeW}-${this.magFilter}-${this.minFilter}-${this.mipmapFilter}-${this.lodMinClamp}-${this.lodMaxClamp}-${this.compare}-${this._maxAnisotropy}`;return this._sharedResourceId=uS(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};Tp.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};tt=Tp});var vp,we,qt=b(()=>{He();Ns();uu();Ue();Ii();vp=class Pp extends ie{constructor(e={}){super(),this.options=e,this.uid=K("textureSource"),this._resourceType="textureSource",this._resourceId=K("resource"),this.uploadMethodId="unknown",this._resolution=1,this.pixelWidth=1,this.pixelHeight=1,this.width=1,this.height=1,this.sampleCount=1,this.mipLevelCount=1,this.autoGenerateMipmaps=!1,this.format="rgba8unorm",this.dimension="2d",this.antialias=!1,this._touched=0,this._batchTick=-1,this._textureBindLocation=-1,e={...Pp.defaultOptions,...e},this.label=e.label??"",this.resource=e.resource,this.autoGarbageCollect=e.autoGarbageCollect,this._resolution=e.resolution,e.width?this.pixelWidth=e.width*this._resolution:this.pixelWidth=this.resource?this.resourceWidth??1:1,e.height?this.pixelHeight=e.height*this._resolution:this.pixelHeight=this.resource?this.resourceHeight??1:1,this.width=this.pixelWidth/this._resolution,this.height=this.pixelHeight/this._resolution,this.format=e.format,this.dimension=e.dimensions,this.mipLevelCount=e.mipLevelCount,this.autoGenerateMipmaps=e.autoGenerateMipmaps,this.sampleCount=e.sampleCount,this.antialias=e.antialias,this.alphaMode=e.alphaMode,this.style=new tt(ma(e)),this.destroyed=!1,this._refreshPOT()}get source(){return this}get style(){return this._style}set style(e){this.style!==e&&(this._style?.off("change",this._onStyleChange,this),this._style=e,this._style?.on("change",this._onStyleChange,this),this._onStyleChange())}get addressMode(){return this._style.addressMode}set addressMode(e){this._style.addressMode=e}get repeatMode(){return this._style.addressMode}set repeatMode(e){this._style.addressMode=e}get magFilter(){return this._style.magFilter}set magFilter(e){this._style.magFilter=e}get minFilter(){return this._style.minFilter}set minFilter(e){this._style.minFilter=e}get mipmapFilter(){return this._style.mipmapFilter}set mipmapFilter(e){this._style.mipmapFilter=e}get lodMinClamp(){return this._style.lodMinClamp}set lodMinClamp(e){this._style.lodMinClamp=e}get lodMaxClamp(){return this._style.lodMaxClamp}set lodMaxClamp(e){this._style.lodMaxClamp=e}_onStyleChange(){this.emit("styleChange",this)}update(){if(this.resource){let e=this._resolution;if(this.resize(this.resourceWidth/e,this.resourceHeight/e))return}this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._style&&(this._style.destroy(),this._style=null),this.uploadMethodId=null,this.resource=null,this.removeAllListeners()}unload(){this._resourceId=K("resource"),this.emit("change",this),this.emit("unload",this)}get resourceWidth(){let{resource:e}=this;return e.naturalWidth||e.videoWidth||e.displayWidth||e.width}get resourceHeight(){let{resource:e}=this;return e.naturalHeight||e.videoHeight||e.displayHeight||e.height}get resolution(){return this._resolution}set resolution(e){this._resolution!==e&&(this._resolution=e,this.width=this.pixelWidth/e,this.height=this.pixelHeight/e)}resize(e,t,r){r||(r=this._resolution),e||(e=this.width),t||(t=this.height);let s=Math.round(e*r),n=Math.round(t*r);return this.width=s/r,this.height=n/r,this._resolution=r,this.pixelWidth===s&&this.pixelHeight===n?!1:(this._refreshPOT(),this.pixelWidth=s,this.pixelHeight=n,this.emit("resize",this),this._resourceId=K("resource"),this.emit("change",this),!0)}updateMipmaps(){this.autoGenerateMipmaps&&this.mipLevelCount>1&&this.emit("updateMipmaps",this)}set wrapMode(e){this._style.wrapMode=e}get wrapMode(){return this._style.wrapMode}set scaleMode(e){this._style.scaleMode=e}get scaleMode(){return this._style.scaleMode}_refreshPOT(){this.isPowerOfTwo=lu(this.pixelWidth)&&lu(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};vp.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};we=vp});function hS(){for(let i=0;i<16;i++){let e=[];hu.push(e);for(let t=0;t<16;t++){let r=pa(Wr[i]*Wr[t]+jr[i]*Hr[t]),s=pa(Hr[i]*Wr[t]+$r[i]*Hr[t]),n=pa(Wr[i]*jr[t]+jr[i]*$r[t]),o=pa(Hr[i]*jr[t]+$r[i]*$r[t]);for(let a=0;a<16;a++)if(Wr[a]===r&&Hr[a]===s&&jr[a]===n&&$r[a]===o){e.push(a);break}}}for(let i=0;i<16;i++){let e=new F;e.set(Wr[i],Hr[i],jr[i],$r[i],0,0),Cp.push(e)}}var Wr,Hr,jr,$r,hu,Cp,pa,se,Ep=b(()=>{re();Wr=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Hr=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],jr=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],$r=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],hu=[],Cp=[],pa=Math.sign;hS();se={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:i=>Wr[i],uY:i=>Hr[i],vX:i=>jr[i],vY:i=>$r[i],inv:i=>i&8?i&15:-i&7,add:(i,e)=>hu[i][e],sub:(i,e)=>hu[i][se.inv(e)],rotate180:i=>i^4,isVertical:i=>(i&3)===2,byDirection:(i,e)=>Math.abs(i)*2<=Math.abs(e)?e>=0?se.S:se.N:Math.abs(e)*2<=Math.abs(i)?i>0?se.E:se.W:e>0?i>0?se.SE:se.SW:i>0?se.NE:se.NW,matrixAppendRotationInv:(i,e,t=0,r=0)=>{let s=Cp[se.inv(e)];s.tx=t,s.ty=r,i.append(s)}}});var du,Ap=b(()=>{"use strict";du=()=>{}});var qr,fu=b(()=>{G();qt();qr=class extends we{constructor(e){let t=e.resource||new Float32Array(e.width*e.height*4),r=e.format;r||(t instanceof Float32Array?r="rgba32float":t instanceof Int32Array||t instanceof Uint32Array?r="rgba32uint":t instanceof Int16Array||t instanceof Uint16Array?r="rgba16uint":(t instanceof Int8Array,r="bgra8unorm")),super({...e,resource:t,format:r}),this.uploadMethodId="buffer"}static test(e){return e instanceof Int8Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray||e instanceof Int16Array||e instanceof Uint16Array||e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array}};qr.extension=A.TextureSource});var Ip,ga,Mp=b(()=>{re();Ip=new F,ga=class{constructor(e,t){this.mapCoord=new F,this.uClampFrame=new Float32Array(4),this.uClampOffset=new Float32Array(2),this._textureID=-1,this._updateID=0,this.clampOffset=0,typeof t>"u"?this.clampMargin=e.width<10?0:.5:this.clampMargin=t,this.isSimple=!1,this.texture=e}get texture(){return this._texture}set texture(e){this.texture!==e&&(this._texture?.removeListener("update",this.update,this),this._texture=e,this._texture.addListener("update",this.update,this),this.update())}multiplyUvs(e,t){t===void 0&&(t=e);let r=this.mapCoord;for(let s=0;s<e.length;s+=2){let n=e[s],o=e[s+1];t[s]=n*r.a+o*r.c+r.tx,t[s+1]=n*r.b+o*r.d+r.ty}return t}update(){let e=this._texture;this._updateID++;let t=e.uvs;this.mapCoord.set(t.x1-t.x0,t.y1-t.y0,t.x3-t.x0,t.y3-t.y0,t.x0,t.y0);let r=e.orig,s=e.trim;s&&(Ip.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(Ip));let n=e.source,o=this.uClampFrame,a=this.clampMargin/n._resolution,c=this.clampOffset/n._resolution;return o[0]=(e.frame.x+a+c)/n.width,o[1]=(e.frame.y+a+c)/n.height,o[2]=(e.frame.x+e.frame.width-a+c)/n.width,o[3]=(e.frame.y+e.frame.height-a+c)/n.height,this.uClampOffset[0]=this.clampOffset/n.pixelWidth,this.uClampOffset[1]=this.clampOffset/n.pixelHeight,this.isSimple=e.frame.width===n.width&&e.frame.height===n.height&&e.rotate===0,!0}}});var O,Te=b(()=>{He();Ep();$e();Ue();pe();Ap();fu();qt();Mp();O=class extends ie{constructor({source:e,label:t,frame:r,orig:s,trim:n,defaultAnchor:o,defaultBorders:a,rotate:c,dynamic:l}={}){if(super(),this.uid=K("texture"),this.uvs={x0:0,y0:0,x1:0,y1:0,x2:0,y2:0,x3:0,y3:0},this.frame=new Z,this.noFrame=!1,this.dynamic=!1,this.isTexture=!0,this.label=t,this.source=e?.source??new we,this.noFrame=!r,r)this.frame.copyFrom(r);else{let{width:u,height:h}=this._source;this.frame.width=u,this.frame.height=h}this.orig=s||this.frame,this.trim=n,this.rotate=c??0,this.defaultAnchor=o,this.defaultBorders=a,this.destroyed=!1,this.dynamic=l||!1,this.updateUvs()}set source(e){this._source&&this._source.off("resize",this.update,this),this._source=e,e.on("resize",this.update,this),this.emit("update",this)}get source(){return this._source}get textureMatrix(){return this._textureMatrix||(this._textureMatrix=new ga(this)),this._textureMatrix}get width(){return this.orig.width}get height(){return this.orig.height}updateUvs(){let{uvs:e,frame:t}=this,{width:r,height:s}=this._source,n=t.x/r,o=t.y/s,a=t.width/r,c=t.height/s,l=this.rotate;if(l){let u=a/2,h=c/2,d=n+u,f=o+h;l=se.add(l,se.NW),e.x0=d+u*se.uX(l),e.y0=f+h*se.uY(l),l=se.add(l,2),e.x1=d+u*se.uX(l),e.y1=f+h*se.uY(l),l=se.add(l,2),e.x2=d+u*se.uX(l),e.y2=f+h*se.uY(l),l=se.add(l,2),e.x3=d+u*se.uX(l),e.y3=f+h*se.uY(l)}else e.x0=n,e.y0=o,e.x1=n+a,e.y1=o,e.x2=n+a,e.y2=o+c,e.x3=n,e.y3=o+c}destroy(e=!1){this._source&&e&&(this._source.destroy(),this._source=null),this._textureMatrix=null,this.destroyed=!0,this.emit("destroy",this),this.removeAllListeners()}update(){this.noFrame&&(this.frame.width=this._source.width,this.frame.height=this._source.height),this.updateUvs(),this.emit("update",this)}get baseTexture(){return N($,"Texture.baseTexture is now Texture.source"),this._source}};O.EMPTY=new O({label:"EMPTY",source:new we({label:"EMPTY"})});O.EMPTY.destroy=du;O.WHITE=new O({source:new qr({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});O.WHITE.destroy=du});var dS,mu,Me,Mi=b(()=>{Ns();qt();Te();Ii();dS=0,mu=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new tt(this.textureOptions)}createTexture(e,t,r){let s=new we({...this.textureOptions,width:e,height:t,resolution:1,antialias:r,autoGarbageCollect:!1});return new O({source:s,label:`texturePool_${dS++}`})}getOptimalTexture(e,t,r=1,s){let n=Math.ceil(e*r-1e-6),o=Math.ceil(t*r-1e-6);n=$t(n),o=$t(o);let a=(n<<17)+(o<<1)+(s?1:0);this._texturePool[a]||(this._texturePool[a]=[]);let c=this._texturePool[a].pop();return c||(c=this.createTexture(n,o,s)),c.source._resolution=r,c.source.width=n/r,c.source.height=o/r,c.source.pixelWidth=n,c.source.pixelHeight=o,c.frame.x=0,c.frame.y=0,c.frame.width=e,c.frame.height=t,c.updateUvs(),this._poolKeyHash[c.uid]=a,c}getSameSizeTexture(e,t=!1){let r=e.source;return this.getOptimalTexture(e.width,e.height,r._resolution,t)}returnTexture(e,t=!1){let r=this._poolKeyHash[e.uid];t&&(e.source.style=this.textureStyle),this._texturePool[r].push(e)}clear(e){if(e=e!==!1,e)for(let t in this._texturePool){let r=this._texturePool[t];if(r)for(let s=0;s<r.length;s++)r[s].destroy(!0)}this._texturePool={}}},Me=new mu});var xa,Bp=b(()=>{re();cu();Mi();xa=class{constructor(){this.renderPipeId="renderGroup",this.root=null,this.canBundle=!1,this.renderGroupParent=null,this.renderGroupChildren=[],this.worldTransform=new F,this.worldColorAlpha=4294967295,this.worldColor=16777215,this.worldAlpha=1,this.childrenToUpdate=Object.create(null),this.updateTick=0,this.gcTick=0,this.childrenRenderablesToUpdate={list:[],index:0},this.structureDidChange=!0,this.instructionSet=new Ai,this._onRenderContainers=[],this.textureNeedsUpdate=!0,this.isCachedAsTexture=!1,this._matrixDirty=7}init(e){this.root=e,e._onRender&&this.addOnRender(e),e.didChange=!0;let t=e.children;for(let r=0;r<t.length;r++){let s=t[r];s._updateFlags=15,this.addChild(s)}}enableCacheAsTexture(e={}){this.textureOptions=e,this.isCachedAsTexture=!0,this.textureNeedsUpdate=!0}disableCacheAsTexture(){this.isCachedAsTexture=!1,this.texture&&(Me.returnTexture(this.texture),this.texture=null)}updateCacheTexture(){this.textureNeedsUpdate=!0}reset(){this.renderGroupChildren.length=0;for(let e in this.childrenToUpdate){let t=this.childrenToUpdate[e];t.list.fill(null),t.index=0}this.childrenRenderablesToUpdate.index=0,this.childrenRenderablesToUpdate.list.fill(null),this.root=null,this.updateTick=0,this.structureDidChange=!0,this._onRenderContainers.length=0,this.renderGroupParent=null,this.disableCacheAsTexture()}get localTransform(){return this.root.localTransform}addRenderGroupChild(e){e.renderGroupParent&&e.renderGroupParent._removeRenderGroupChild(e),e.renderGroupParent=this,this.renderGroupChildren.push(e)}_removeRenderGroupChild(e){let t=this.renderGroupChildren.indexOf(e);t>-1&&this.renderGroupChildren.splice(t,1),e.renderGroupParent=null}addChild(e){if(this.structureDidChange=!0,e.parentRenderGroup=this,e.updateTick=-1,e.parent===this.root?e.relativeRenderGroupDepth=1:e.relativeRenderGroupDepth=e.parent.relativeRenderGroupDepth+1,e.didChange=!0,this.onChildUpdate(e),e.renderGroup){this.addRenderGroupChild(e.renderGroup);return}e._onRender&&this.addOnRender(e);let t=e.children;for(let r=0;r<t.length;r++)this.addChild(t[r])}removeChild(e){if(this.structureDidChange=!0,e._onRender&&(e.renderGroup||this.removeOnRender(e)),e.parentRenderGroup=null,e.renderGroup){this._removeRenderGroupChild(e.renderGroup);return}let t=e.children;for(let r=0;r<t.length;r++)this.removeChild(t[r])}removeChildren(e){for(let t=0;t<e.length;t++)this.removeChild(e[t])}onChildUpdate(e){let t=this.childrenToUpdate[e.relativeRenderGroupDepth];t||(t=this.childrenToUpdate[e.relativeRenderGroupDepth]={index:0,list:[]}),t.list[t.index++]=e}updateRenderable(e){e.globalDisplayStatus<7||(this.instructionSet.renderPipes[e.renderPipeId].updateRenderable(e),e.didViewUpdate=!1)}onChildViewUpdate(e){this.childrenRenderablesToUpdate.list[this.childrenRenderablesToUpdate.index++]=e}get isRenderable(){return this.root.localDisplayStatus===7&&this.worldAlpha>0}addOnRender(e){this._onRenderContainers.push(e)}removeOnRender(e){this._onRenderContainers.splice(this._onRenderContainers.indexOf(e),1)}runOnRender(e){for(let t=0;t<this._onRenderContainers.length;t++)this._onRenderContainers[t]._onRender(e)}destroy(){this.disableCacheAsTexture(),this.renderGroupParent=null,this.root=null,this.childrenRenderablesToUpdate=null,this.childrenToUpdate=null,this.renderGroupChildren=null,this._onRenderContainers=null,this.instructionSet=null}getChildren(e=[]){let t=this.root.children;for(let r=0;r<t.length;r++)this._getChildren(t[r],e);return e}_getChildren(e,t=[]){if(t.push(e),e.renderGroup)return t;let r=e.children;for(let s=0;s<r.length;s++)this._getChildren(r[s],t);return t}invalidateMatrices(){this._matrixDirty=7}get inverseWorldTransform(){return(this._matrixDirty&1)===0?this._inverseWorldTransform:(this._matrixDirty&=-2,this._inverseWorldTransform||(this._inverseWorldTransform=new F),this._inverseWorldTransform.copyFrom(this.worldTransform).invert())}get textureOffsetInverseTransform(){return(this._matrixDirty&2)===0?this._textureOffsetInverseTransform:(this._matrixDirty&=-3,this._textureOffsetInverseTransform||(this._textureOffsetInverseTransform=new F),this._textureOffsetInverseTransform.copyFrom(this.inverseWorldTransform).translate(-this._textureBounds.x,-this._textureBounds.y))}get inverseParentTextureTransform(){if((this._matrixDirty&4)===0)return this._inverseParentTextureTransform;this._matrixDirty&=-5;let e=this._parentCacheAsTextureRenderGroup;return e?(this._inverseParentTextureTransform||(this._inverseParentTextureTransform=new F),this._inverseParentTextureTransform.copyFrom(this.worldTransform).prepend(e.inverseWorldTransform).translate(-e._textureBounds.x,-e._textureBounds.y)):this.worldTransform}get cacheToLocalTransform(){return this._parentCacheAsTextureRenderGroup?this._parentCacheAsTextureRenderGroup.textureOffsetInverseTransform:null}}});function Fp(i,e,t={}){for(let r in e)!t[r]&&e[r]!==void 0&&(i[r]=e[r])}var Dp=b(()=>{"use strict"});var pu,gu,xu,Rp,fS,yu,mt,Ls=b(()=>{He();je();Nm();G();re();Kl();Ql();Ue();pe();Lr();qm();Ym();Zm();tp();ip();op();hp();pp();xp();bp();_p();Bp();Dp();pu=new Oe(null),gu=new Oe(null),xu=new Oe(null,1,1),Rp=1,fS=2,yu=4,mt=class i extends ie{constructor(e={}){super(),this.uid=K("renderable"),this._updateFlags=15,this.renderGroup=null,this.parentRenderGroup=null,this.parentRenderGroupIndex=0,this.didChange=!1,this.didViewUpdate=!1,this.relativeRenderGroupDepth=0,this.children=[],this.parent=null,this.includeInBuild=!0,this.measurable=!0,this.isSimple=!0,this.updateTick=-1,this.localTransform=new F,this.relativeGroupTransform=new F,this.groupTransform=this.relativeGroupTransform,this.destroyed=!1,this._position=new Oe(this,0,0),this._scale=xu,this._pivot=gu,this._skew=pu,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._rotation=0,this.localColor=16777215,this.localAlpha=1,this.groupAlpha=1,this.groupColor=16777215,this.groupColorAlpha=4294967295,this.localBlendMode="inherit",this.groupBlendMode="normal",this.localDisplayStatus=7,this.globalDisplayStatus=7,this._didContainerChangeTick=0,this._didViewChangeTick=0,this._didLocalTransformChangeId=-1,this.effects=[],Fp(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){N("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),L.mixin(i,e)}set _didChangeId(e){this._didViewChangeTick=e>>12&4095,this._didContainerChangeTick=e&4095}get _didChangeId(){return this._didContainerChangeTick&4095|(this._didViewChangeTick&4095)<<12}addChild(...e){if(this.allowChildren||N($,"addChild: Only Containers will be allowed to add children in v8.0.0"),e.length>1){for(let s=0;s<e.length;s++)this.addChild(e[s]);return e[0]}let t=e[0],r=this.renderGroup||this.parentRenderGroup;return t.parent===this?(this.children.splice(this.children.indexOf(t),1),this.children.push(t),r&&(r.structureDidChange=!0),t):(t.parent&&t.parent.removeChild(t),this.children.push(t),this.sortableChildren&&(this.sortDirty=!0),t.parent=this,t.didChange=!0,t._updateFlags=15,r&&r.addChild(t),this.emit("childAdded",t,this,this.children.length-1),t.emit("added",this),this._didViewChangeTick++,t._zIndex!==0&&t.depthOfChildModified(),t)}removeChild(...e){if(e.length>1){for(let s=0;s<e.length;s++)this.removeChild(e[s]);return e[0]}let t=e[0],r=this.children.indexOf(t);return r>-1&&(this._didViewChangeTick++,this.children.splice(r,1),this.renderGroup?this.renderGroup.removeChild(t):this.parentRenderGroup&&this.parentRenderGroup.removeChild(t),t.parentRenderLayer&&t.parentRenderLayer.detach(t),t.parent=null,this.emit("childRemoved",t,this,r),t.emit("removed",this)),t}_onUpdate(e){e&&e===this._skew&&this._updateSkew(),this._didContainerChangeTick++,!this.didChange&&(this.didChange=!0,this.parentRenderGroup&&this.parentRenderGroup.onChildUpdate(this))}set isRenderGroup(e){!!this.renderGroup!==e&&(e?this.enableRenderGroup():this.disableRenderGroup())}get isRenderGroup(){return!!this.renderGroup}enableRenderGroup(){if(this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),this.renderGroup=be.get(xa,this),this.groupTransform=F.IDENTITY,e?.addChild(this),this._updateIsSimple()}disableRenderGroup(){if(!this.renderGroup)return;let e=this.parentRenderGroup;e?.removeChild(this),be.return(this.renderGroup),this.renderGroup=null,this.groupTransform=this.relativeGroupTransform,e?.addChild(this),this._updateIsSimple()}_updateIsSimple(){this.isSimple=!this.renderGroup&&this.effects.length===0}get worldTransform(){return this._worldTransform||(this._worldTransform=new F),this.renderGroup?this._worldTransform.copyFrom(this.renderGroup.worldTransform):this.parentRenderGroup&&this._worldTransform.appendFrom(this.relativeGroupTransform,this.parentRenderGroup.worldTransform),this._worldTransform}get x(){return this._position.x}set x(e){this._position.x=e}get y(){return this._position.y}set y(e){this._position.y=e}get position(){return this._position}set position(e){this._position.copyFrom(e)}get rotation(){return this._rotation}set rotation(e){this._rotation!==e&&(this._rotation=e,this._onUpdate(this._skew))}get angle(){return this.rotation*Vm}set angle(e){this.rotation=e*Wm}get pivot(){return this._pivot===gu&&(this._pivot=new Oe(this,0,0)),this._pivot}set pivot(e){this._pivot===gu&&(this._pivot=new Oe(this,0,0)),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===pu&&(this._skew=new Oe(this,0,0)),this._skew}set skew(e){this._skew===pu&&(this._skew=new Oe(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===xu&&(this._scale=new Oe(this,1,1)),this._scale}set scale(e){this._scale===xu&&(this._scale=new Oe(this,0,0)),typeof e=="number"?this._scale.set(e):this._scale.copyFrom(e)}get width(){return Math.abs(this.scale.x*this.getLocalBounds().width)}set width(e){let t=this.getLocalBounds().width;this._setWidth(e,t)}get height(){return Math.abs(this.scale.y*this.getLocalBounds().height)}set height(e){let t=this.getLocalBounds().height;this._setHeight(e,t)}getSize(e){e||(e={});let t=this.getLocalBounds();return e.width=Math.abs(this.scale.x*t.width),e.height=Math.abs(this.scale.y*t.height),e}setSize(e,t){let r=this.getLocalBounds();typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,r.width),t!==void 0&&this._setHeight(t,r.height)}_updateSkew(){let e=this._rotation,t=this._skew;this._cx=Math.cos(e+t._y),this._sx=Math.sin(e+t._y),this._cy=-Math.sin(e-t._x),this._sy=Math.cos(e-t._x)}updateTransform(e){return this.position.set(typeof e.x=="number"?e.x:this.position.x,typeof e.y=="number"?e.y:this.position.y),this.scale.set(typeof e.scaleX=="number"?e.scaleX||1:this.scale.x,typeof e.scaleY=="number"?e.scaleY||1:this.scale.y),this.rotation=typeof e.rotation=="number"?e.rotation:this.rotation,this.skew.set(typeof e.skewX=="number"?e.skewX:this.skew.x,typeof e.skewY=="number"?e.skewY:this.skew.y),this.pivot.set(typeof e.pivotX=="number"?e.pivotX:this.pivot.x,typeof e.pivotY=="number"?e.pivotY:this.pivot.y),this}setFromMatrix(e){e.decompose(this)}updateLocalTransform(){let e=this._didContainerChangeTick;if(this._didLocalTransformChangeId===e)return;this._didLocalTransformChangeId=e;let t=this.localTransform,r=this._scale,s=this._pivot,n=this._position,o=r._x,a=r._y,c=s._x,l=s._y;t.a=this._cx*o,t.b=this._sx*o,t.c=this._cy*a,t.d=this._sy*a,t.tx=n._x-(c*t.a+l*t.c),t.ty=n._y-(c*t.b+l*t.d)}set alpha(e){e!==this.localAlpha&&(this.localAlpha=e,this._updateFlags|=Rp,this._onUpdate())}get alpha(){return this.localAlpha}set tint(e){let r=X.shared.setValue(e??16777215).toBgrNumber();r!==this.localColor&&(this.localColor=r,this._updateFlags|=Rp,this._onUpdate())}get tint(){return Gs(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=fS,this.localBlendMode=e,this._onUpdate())}get blendMode(){return this.localBlendMode}get visible(){return!!(this.localDisplayStatus&2)}set visible(e){let t=e?2:0;(this.localDisplayStatus&2)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=yu,this.localDisplayStatus^=2,this._onUpdate())}get culled(){return!(this.localDisplayStatus&4)}set culled(e){let t=e?0:4;(this.localDisplayStatus&4)!==t&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=yu,this.localDisplayStatus^=4,this._onUpdate())}get renderable(){return!!(this.localDisplayStatus&1)}set renderable(e){let t=e?1:0;(this.localDisplayStatus&1)!==t&&(this._updateFlags|=yu,this.localDisplayStatus^=1,this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._onUpdate())}get isRenderable(){return this.localDisplayStatus===7&&this.groupAlpha>0}destroy(e=!1){if(this.destroyed)return;this.destroyed=!0;let t;if(this.children.length&&(t=this.removeChildren(0,this.children.length)),this.removeFromParent(),this.parent=null,this._maskEffect=null,this._filterEffect=null,this.effects=null,this._position=null,this._scale=null,this._pivot=null,this._skew=null,this.emit("destroyed",this),this.removeAllListeners(),(typeof e=="boolean"?e:e?.children)&&t)for(let s=0;s<t.length;++s)t[s].destroy(e);this.renderGroup?.destroy(),this.renderGroup=null}};L.mixin(mt,Xm,np,wp,gp,mp,ep,rp,yp,Gm,$m,up,Km)});var ur,ya=b(()=>{St();ur=class i{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=i.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new Y,this.page=new Y,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,r){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,r,s,n){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}});function mS(i){return function(e){return e.test(i)}}function Vs(i){var e={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?e.userAgent=i:i&&i.userAgent&&(e={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var t=e.userAgent,r=t.split("[FBAN");typeof r[1]<"u"&&(t=r[0]),r=t.split("Twitter"),typeof r[1]<"u"&&(t=r[0]);var s=mS(t),n={apple:{phone:s(bu)&&!s(Xt),ipod:s(Op),tablet:!s(bu)&&(s(Up)||$p(e))&&!s(Xt),universal:s(zp),device:(s(bu)||s(Op)||s(Up)||s(zp)||$p(e))&&!s(Xt)},amazon:{phone:s(Bi),tablet:!s(Bi)&&s(ba),device:s(Bi)||s(ba)},android:{phone:!s(Xt)&&s(Bi)||!s(Xt)&&s(wu),tablet:!s(Xt)&&!s(Bi)&&!s(wu)&&(s(ba)||s(Gp)),device:!s(Xt)&&(s(Bi)||s(ba)||s(wu)||s(Gp))||s(/\bokhttp\b/i)},windows:{phone:s(Xt),tablet:s(Np),device:s(Xt)||s(Np)},other:{blackberry:s(Lp),blackberry10:s(Vp),opera:s(Wp),firefox:s(jp),chrome:s(Hp),device:s(Lp)||s(Vp)||s(Wp)||s(jp)||s(Hp)},any:!1,phone:!1,tablet:!1};return n.any=n.apple.device||n.android.device||n.windows.device||n.other.device,n.phone=n.apple.phone||n.android.phone||n.windows.phone,n.tablet=n.apple.tablet||n.android.tablet||n.windows.tablet,n}var bu,Op,Up,zp,wu,Gp,Bi,ba,Xt,Np,Lp,Vp,Wp,Hp,jp,$p,_u=b(()=>{bu=/iPhone/i,Op=/iPod/i,Up=/iPad/i,zp=/\biOS-universal(?:.+)Mac\b/i,wu=/\bAndroid(?:.+)Mobile\b/i,Gp=/Android/i,Bi=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,ba=/Silk/i,Xt=/Windows Phone/i,Np=/\bWindows(?:.+)ARM\b/i,Lp=/BlackBerry/i,Vp=/BB10/i,Wp=/Opera Mini/i,Hp=/\b(CriOS|Chrome)(?:.+)Mobile/i,jp=/Mobile(?:.+)Firefox\b/i,$p=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var qp=b(()=>{_u();_u()});var pS,Xp,Yp=b(()=>{qp();pS=Vs.default??Vs,Xp=pS(globalThis.navigator)});var gS,wa,xS,yS,Kp,Zp,bS,wS,_S,Su,Jp,eg=b(()=>{ya();G();Yp();ru();gS=9,wa=100,xS=0,yS=0,Kp=2,Zp=1,bS=-1e3,wS=-1e3,_S=2,Su=class Qp{constructor(e,t=Xp){this._mobileInfo=t,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pool=[],this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}_createTouchHook(){let e=document.createElement("button");e.style.width=`${Zp}px`,e.style.height=`${Zp}px`,e.style.position="absolute",e.style.top=`${bS}px`,e.style.left=`${wS}px`,e.style.zIndex=_S.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.width=`${wa}px`,this._div.style.height=`${wa}px`,this._div.style.position="absolute",this._div.style.top=`${xS}px`,this._div.style.left=`${yS}px`,this._div.style.zIndex=Kp.toString(),this._div.style.pointerEvents="none"),this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._deactivateOnMouseMove&&(this._onMouseMove=this._onMouseMove.bind(this),globalThis.document.addEventListener("mousemove",this._onMouseMove,!0));let e=this._renderer.view.canvas;if(e.parentNode)e.parentNode.appendChild(this._div),this._initAccessibilitySetup();else{let t=new MutationObserver(()=>{e.parentNode&&(e.parentNode.appendChild(this._div),t.disconnect(),this._initAccessibilitySetup())});t.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._onMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._onKeyDown,!1),this._renderer.runners.postrender.remove(this);for(let e of this._children)e._accessibleDiv&&e._accessibleDiv.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;this._pool.forEach(e=>{e.parentNode&&e.parentNode.removeChild(e)}),this._div&&this._div.parentNode&&this._div.parentNode.removeChild(this._div),this._pool=[],this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);let t=e.children;if(t)for(let r=0;r<t.length;r++)this._updateAccessibleObjects(t[r])}init(e){let r={accessibilityOptions:{...Qp.defaultOptions,...e?.accessibilityOptions||{}}};this.debug=r.accessibilityOptions.debug,this._activateOnTab=r.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=r.accessibilityOptions.deactivateOnMouseMove,r.accessibilityOptions.enabledByDefault?this._activate():this._activateOnTab&&(this._onKeyDown=this._onKeyDown.bind(this),globalThis.addEventListener("keydown",this._onKeyDown,!1)),this._renderer.runners.postrender.remove(this)}postrender(){let e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,!this._renderer.renderingToScreen||!this._renderer.view.canvas))return;let t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(let r of this._children)r._renderId===this._renderId&&t.add(this._children.indexOf(r))}for(let r=this._children.length-1;r>=0;r--){let s=this._children[r];t.has(r)||(s._accessibleDiv&&s._accessibleDiv.parentNode&&(s._accessibleDiv.parentNode.removeChild(s._accessibleDiv),this._pool.push(s._accessibleDiv),s._accessibleDiv=null),s._accessibleActive=!1,oa(this._children,r,1))}if(this._renderer.renderingToScreen){let{x:r,y:s,width:n,height:o}=this._renderer.screen,a=this._div;a.style.left=`${r}px`,a.style.top=`${s}px`,a.style.width=`${n}px`,a.style.height=`${o}px`}for(let r=0;r<this._children.length;r++){let s=this._children[r];if(!s._accessibleActive||!s._accessibleDiv)continue;let n=s._accessibleDiv,o=s.hitArea||s.getBounds().rectangle;if(s.hitArea){let a=s.worldTransform,c=this._renderer.resolution,l=this._renderer.resolution;n.style.left=`${(a.tx+o.x*a.a)*c}px`,n.style.top=`${(a.ty+o.y*a.d)*l}px`,n.style.width=`${o.width*a.a*c}px`,n.style.height=`${o.height*a.d*l}px`}else{this._capHitArea(o);let a=this._renderer.resolution,c=this._renderer.resolution;n.style.left=`${o.x*a}px`,n.style.top=`${o.y*c}px`,n.style.width=`${o.width*a}px`,n.style.height=`${o.height*c}px`}}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);let{width:t,height:r}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>r&&(e.height=r-e.y)}_addChild(e){let t=this._pool.pop();t||(e.accessibleType==="button"?t=document.createElement("button"):(t=document.createElement(e.accessibleType),t.style.cssText=`
|
|
7
|
+
color: transparent;
|
|
8
|
+
pointer-events: none;
|
|
9
|
+
padding: 0;
|
|
10
|
+
margin: 0;
|
|
11
|
+
border: 0;
|
|
12
|
+
outline: 0;
|
|
13
|
+
background: transparent;
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
user-select: none;
|
|
16
|
+
-webkit-user-select: none;
|
|
17
|
+
-moz-user-select: none;
|
|
18
|
+
-ms-user-select: none;
|
|
19
|
+
`,e.accessibleText&&(t.innerText=e.accessibleText)),t.style.width=`${wa}px`,t.style.height=`${wa}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=Kp.toString(),t.style.borderStyle="none",navigator.userAgent.toLowerCase().includes("chrome")?t.setAttribute("aria-live","off"):t.setAttribute("aria-live","polite"),navigator.userAgent.match(/rv:.*Gecko\//)?t.setAttribute("aria-relevant","additions"):t.setAttribute("aria-relevant","text"),t.addEventListener("click",this._onClick.bind(this)),t.addEventListener("focus",this._onFocus.bind(this)),t.addEventListener("focusout",this._onFocusOut.bind(this))),t.style.pointerEvents=e.accessiblePointerEvents,t.type=e.accessibleType,e.accessibleTitle&&e.accessibleTitle!==null?t.title=e.accessibleTitle:(!e.accessibleHint||e.accessibleHint===null)&&(t.title=`container ${e.tabIndex}`),e.accessibleHint&&e.accessibleHint!==null&&t.setAttribute("aria-label",e.accessibleHint),this.debug&&this._updateDebugHTML(t),e._accessibleActive=!0,e._accessibleDiv=t,t.container=e,this._children.push(e),this._div.appendChild(e._accessibleDiv),e.interactive&&(e._accessibleDiv.tabIndex=e.tabIndex)}_dispatchEvent(e,t){let{container:r}=e.target,s=this._renderer.events.rootBoundary,n=Object.assign(new ur(s),{target:r});s.rootTarget=this._renderer.lastObjectRendered,t.forEach(o=>s.dispatchEvent(n,o))}_onClick(e){this._dispatchEvent(e,["click","pointertap","tap"])}_onFocus(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","assertive"),this._dispatchEvent(e,["mouseover"])}_onFocusOut(e){e.target.getAttribute("aria-live")||e.target.setAttribute("aria-live","polite"),this._dispatchEvent(e,["mouseout"])}_onKeyDown(e){e.keyCode!==gS||!this._activateOnTab||this._activate()}_onMouseMove(e){e.movementX===0&&e.movementY===0||this._deactivate()}destroy(){this._deactivate(),this._destroyTouchHook(),this._div=null,this._pool=null,this._children=null,this._renderer=null,this._activateOnTab&&globalThis.removeEventListener("keydown",this._onKeyDown)}setAccessibilityEnabled(e){e?this._activate():this._deactivate()}};Su.extension={type:[A.WebGLSystem,A.WebGPUSystem],name:"accessibility"};Su.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};Jp=Su});var tg,rg=b(()=>{"use strict";tg={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var ig=b(()=>{G();Ls();eg();rg();L.add(Jp);L.mixin(mt,tg)});var Ws,sg=b(()=>{G();Ws=class{static init(e){Object.defineProperty(this,"resizeTo",{set(t){globalThis.removeEventListener("resize",this.queueResize),this._resizeTo=t,t&&(globalThis.addEventListener("resize",this.queueResize),this.resize())},get(){return this._resizeTo}}),this.queueResize=()=>{this._resizeTo&&(this._cancelResize(),this._resizeId=requestAnimationFrame(()=>this.resize()))},this._cancelResize=()=>{this._resizeId&&(cancelAnimationFrame(this._resizeId),this._resizeId=null)},this.resize=()=>{if(!this._resizeTo)return;this._cancelResize();let t,r;if(this._resizeTo===globalThis.window)t=globalThis.innerWidth,r=globalThis.innerHeight;else{let{clientWidth:s,clientHeight:n}=this._resizeTo;t=s,r=n}this.renderer.resize(t,r),this.render()},this._resizeId=null,this._resizeTo=null,this.resizeTo=e.resizeTo||null}static destroy(){globalThis.removeEventListener("resize",this.queueResize),this._cancelResize(),this._cancelResize=null,this.queueResize=null,this.resizeTo=null,this.resize=null}};Ws.extension=A.Application});var hr,_a=b(()=>{"use strict";hr=(i=>(i[i.INTERACTION=50]="INTERACTION",i[i.HIGH=25]="HIGH",i[i.NORMAL=0]="NORMAL",i[i.LOW=-25]="LOW",i[i.UTILITY=-50]="UTILITY",i))(hr||{})});var Fi,ng=b(()=>{"use strict";Fi=class{constructor(e,t=null,r=0,s=!1){this.next=null,this.previous=null,this._destroyed=!1,this._fn=e,this._context=t,this.priority=r,this._once=s}match(e,t=null){return this._fn===e&&this._context===t}emit(e){this._fn&&(this._context?this._fn.call(this._context,e):this._fn(e));let t=this.next;return this._once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this._fn=null,this._context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);let t=this.next;return this.next=e?null:t,this.previous=null,t}}});var og,pt,Sa=b(()=>{_a();ng();og=class Ze{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new Fi(null,null,1/0),this.deltaMS=1/Ze.targetFPMS,this.elapsedMS=1/Ze.targetFPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,r=hr.NORMAL){return this._addListener(new Fi(e,t,r))}addOnce(e,t,r=hr.NORMAL){return this._addListener(new Fi(e,t,r,!0))}_addListener(e){let t=this._head.next,r=this._head;if(!t)e.connect(r);else{for(;t;){if(e.priority>t.priority){e.connect(r);break}r=t,t=t.next}e.previous||e.connect(r)}return this._startIfPossible(),this}remove(e,t){let r=this._head.next;for(;r;)r.match(e,t)?r=r.destroy():r=r.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){let n=e-this._lastFrame|0;if(n<this._minElapsedMS)return;this._lastFrame=e-n%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*Ze.targetFPMS;let r=this._head,s=r.next;for(;s;)s=s.emit(this);r.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){let t=Math.min(this.maxFPS,e),r=Math.min(Math.max(0,t)/1e3,Ze.targetFPMS);this._maxElapsedMS=1/r}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{let t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!Ze._shared){let e=Ze._shared=new Ze;e.autoStart=!0,e._protected=!0}return Ze._shared}static get system(){if(!Ze._system){let e=Ze._system=new Ze;e.autoStart=!0,e._protected=!0}return Ze._system}};og.targetFPMS=.06;pt=og});var Hs,ag=b(()=>{G();_a();Sa();Hs=class{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,hr.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?pt.shared:new pt,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};Hs.extension=A.Application});var Tu=b(()=>{G();sg();ag();L.add(Ws);L.add(Hs)});function q(...i){ku!==cg&&(ku++,ku===cg?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var ku,cg,ze=b(()=>{"use strict";ku=0,cg=500});var vu,Tt,Pu=b(()=>{_a();Sa();vu=class{constructor(){this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}init(e){this.removeTickerListener(),this.events=e,this.interactionFrequency=10,this._deltaTime=0,this._didMove=!1,this._tickerAdded=!1,this._pauseUpdate=!0}get pauseUpdate(){return this._pauseUpdate}set pauseUpdate(e){this._pauseUpdate=e}addTickerListener(){this._tickerAdded||!this.domElement||(pt.system.add(this._tickerUpdate,this,hr.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(pt.system.remove(this._tickerUpdate,this),this._tickerAdded=!1)}pointerMoved(){this._didMove=!0}_update(){if(!this.domElement||this._pauseUpdate)return;if(this._didMove){this._didMove=!1;return}let e=this.events._rootPointerEvent;this.events.supportsTouchEvents&&e.pointerType==="touch"||globalThis.document.dispatchEvent(this.events.supportsPointerEvents?new PointerEvent("pointermove",{clientX:e.clientX,clientY:e.clientY,pointerType:e.pointerType,pointerId:e.pointerId}):new MouseEvent("mousemove",{clientX:e.clientX,clientY:e.clientY}))}_tickerUpdate(e){this._deltaTime+=e.deltaTime,!(this._deltaTime<this.interactionFrequency)&&(this._deltaTime=0,this._update())}},Tt=new vu});var Yt,Ta=b(()=>{St();ya();Yt=class extends ur{constructor(){super(...arguments),this.client=new Y,this.movement=new Y,this.offset=new Y,this.global=new Y,this.screen=new Y}get clientX(){return this.client.x}get clientY(){return this.client.y}get x(){return this.clientX}get y(){return this.clientY}get movementX(){return this.movement.x}get movementY(){return this.movement.y}get offsetX(){return this.offset.x}get offsetY(){return this.offset.y}get globalX(){return this.global.x}get globalY(){return this.global.y}get screenX(){return this.screen.x}get screenY(){return this.screen.y}getLocalPosition(e,t,r){return e.worldTransform.applyInverse(r||this.global,t)}getModifierState(e){return"getModifierState"in this.nativeEvent&&this.nativeEvent.getModifierState(e)}initMouseEvent(e,t,r,s,n,o,a,c,l,u,h,d,f,m,p){throw new Error("Method not implemented.")}}});var Ge,Cu=b(()=>{Ta();Ge=class extends Yt{constructor(){super(...arguments),this.width=0,this.height=0,this.isPrimary=!1}getCoalescedEvents(){return this.type==="pointermove"||this.type==="mousemove"||this.type==="touchmove"?[this]:[]}getPredictedEvents(){throw new Error("getPredictedEvents is not supported!")}}});var kt,Eu=b(()=>{Ta();kt=class extends Yt{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};kt.DOM_DELTA_PIXEL=0;kt.DOM_DELTA_LINE=1;kt.DOM_DELTA_PAGE=2});var SS,TS,js,ka,lg=b(()=>{He();St();ze();Pu();Ta();Cu();Eu();SS=2048,TS=new Y,js=new Y,ka=class{constructor(e){this.dispatch=new ie,this.moveOnAll=!1,this.enableGlobalMoveEvents=!0,this.mappingState={trackingData:{}},this.eventPool=new Map,this._allInteractiveElements=[],this._hitElements=[],this._isPointerMoveEvent=!1,this.rootTarget=e,this.hitPruneFn=this.hitPruneFn.bind(this),this.hitTestFn=this.hitTestFn.bind(this),this.mapPointerDown=this.mapPointerDown.bind(this),this.mapPointerMove=this.mapPointerMove.bind(this),this.mapPointerOut=this.mapPointerOut.bind(this),this.mapPointerOver=this.mapPointerOver.bind(this),this.mapPointerUp=this.mapPointerUp.bind(this),this.mapPointerUpOutside=this.mapPointerUpOutside.bind(this),this.mapWheel=this.mapWheel.bind(this),this.mappingTable={},this.addEventMapping("pointerdown",this.mapPointerDown),this.addEventMapping("pointermove",this.mapPointerMove),this.addEventMapping("pointerout",this.mapPointerOut),this.addEventMapping("pointerleave",this.mapPointerOut),this.addEventMapping("pointerover",this.mapPointerOver),this.addEventMapping("pointerup",this.mapPointerUp),this.addEventMapping("pointerupoutside",this.mapPointerUpOutside),this.addEventMapping("wheel",this.mapWheel)}addEventMapping(e,t){this.mappingTable[e]||(this.mappingTable[e]=[]),this.mappingTable[e].push({fn:t,priority:0}),this.mappingTable[e].sort((r,s)=>r.priority-s.priority)}dispatchEvent(e,t){e.propagationStopped=!1,e.propagationImmediatelyStopped=!1,this.propagate(e,t),this.dispatch.emit(t||e.type,e)}mapEvent(e){if(!this.rootTarget)return;let t=this.mappingTable[e.type];if(t)for(let r=0,s=t.length;r<s;r++)t[r].fn(e);else q(`[EventBoundary]: Event mapping not defined for ${e.type}`)}hitTest(e,t){Tt.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,TS.set(e,t),this.hitTestFn,this.hitPruneFn);return n&&n[0]}propagate(e,t){if(!e.target)return;let r=e.composedPath();e.eventPhase=e.CAPTURING_PHASE;for(let s=0,n=r.length-1;s<n;s++)if(e.currentTarget=r[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return;if(e.eventPhase=e.AT_TARGET,e.currentTarget=e.target,this.notifyTarget(e,t),!(e.propagationStopped||e.propagationImmediatelyStopped)){e.eventPhase=e.BUBBLING_PHASE;for(let s=r.length-2;s>=0;s--)if(e.currentTarget=r[s],this.notifyTarget(e,t),e.propagationStopped||e.propagationImmediatelyStopped)return}}all(e,t,r=this._allInteractiveElements){if(r.length===0)return;e.eventPhase=e.BUBBLING_PHASE;let s=Array.isArray(t)?t:[t];for(let n=r.length-1;n>=0;n--)s.forEach(o=>{e.currentTarget=r[n],this.notifyTarget(e,o)})}propagationPath(e){let t=[e];for(let r=0;r<SS&&e!==this.rootTarget&&e.parent;r++){if(!e.parent)throw new Error("Cannot find propagation path to disconnected target");t.push(e.parent),e=e.parent}return t.reverse(),t}hitTestMoveRecursive(e,t,r,s,n,o=!1){let a=!1;if(this._interactivePrune(e))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Tt.pauseUpdate=!1),e.interactiveChildren&&e.children){let u=e.children;for(let h=u.length-1;h>=0;h--){let d=u[h],f=this.hitTestMoveRecursive(d,this._isInteractive(t)?t:d.eventMode,r,s,n,o||n(e,r));if(f){if(f.length>0&&!f[f.length-1].parent)continue;let m=e.isInteractive();(f.length>0||m)&&(m&&this._allInteractiveElements.push(e),f.push(e)),this._hitElements.length===0&&(this._hitElements=f),a=!0}}}let c=this._isInteractive(t),l=e.isInteractive();return l&&l&&this._allInteractiveElements.push(e),o||this._hitElements.length>0?null:a?this._hitElements:c&&!n(e,r)&&s(e,r)?l?[e]:[]:null}hitTestRecursive(e,t,r,s,n){if(this._interactivePrune(e)||n(e,r))return null;if((e.eventMode==="dynamic"||t==="dynamic")&&(Tt.pauseUpdate=!1),e.interactiveChildren&&e.children){let c=e.children,l=r;for(let u=c.length-1;u>=0;u--){let h=c[u],d=this.hitTestRecursive(h,this._isInteractive(t)?t:h.eventMode,l,s,n);if(d){if(d.length>0&&!d[d.length-1].parent)continue;let f=e.isInteractive();return(d.length>0||f)&&d.push(e),d}}}let o=this._isInteractive(t),a=e.isInteractive();return o&&s(e,r)?a?[e]:[]:null}_isInteractive(e){return e==="static"||e==="dynamic"}_interactivePrune(e){return!e||!e.visible||!e.renderable||!e.measurable||e.eventMode==="none"||e.eventMode==="passive"&&!e.interactiveChildren}hitPruneFn(e,t){if(e.hitArea&&(e.worldTransform.applyInverse(t,js),!e.hitArea.contains(js.x,js.y)))return!0;if(e.effects&&e.effects.length)for(let r=0;r<e.effects.length;r++){let s=e.effects[r];if(s.containsPoint&&!s.containsPoint(t,this.hitTestFn))return!0}return!1}hitTestFn(e,t){return e.hitArea?!0:e?.containsPoint?(e.worldTransform.applyInverse(t,js),e.containsPoint(js)):!1}notifyTarget(e,t){if(!e.currentTarget.isInteractive())return;t??(t=e.type);let r=`on${t}`;e.currentTarget[r]?.(e);let s=e.eventPhase===e.CAPTURING_PHASE||e.eventPhase===e.AT_TARGET?`${t}capture`:t;this._notifyListeners(e,s),e.eventPhase===e.AT_TARGET&&this._notifyListeners(e,t)}mapPointerDown(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.createPointerEvent(e);if(this.dispatchEvent(t,"pointerdown"),t.pointerType==="touch")this.dispatchEvent(t,"touchstart");else if(t.pointerType==="mouse"||t.pointerType==="pen"){let s=t.button===2;this.dispatchEvent(t,s?"rightdown":"mousedown")}let r=this.trackingData(e.pointerId);r.pressTargetsByButton[e.button]=t.composedPath(),this.freeEvent(t)}mapPointerMove(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}this._allInteractiveElements.length=0,this._hitElements.length=0,this._isPointerMoveEvent=!0;let t=this.createPointerEvent(e);this._isPointerMoveEvent=!1;let r=t.pointerType==="mouse"||t.pointerType==="pen",s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.overTargets);if(s.overTargets?.length>0&&n!==t.target){let c=e.type==="mousemove"?"mouseout":"pointerout",l=this.createPointerEvent(e,c,n);if(this.dispatchEvent(l,"pointerout"),r&&this.dispatchEvent(l,"mouseout"),!t.composedPath().includes(n)){let u=this.createPointerEvent(e,"pointerleave",n);for(u.eventPhase=u.AT_TARGET;u.target&&!t.composedPath().includes(u.target);)u.currentTarget=u.target,this.notifyTarget(u),r&&this.notifyTarget(u,"mouseleave"),u.target=u.target.parent;this.freeEvent(u)}this.freeEvent(l)}if(n!==t.target){let c=e.type==="mousemove"?"mouseover":"pointerover",l=this.clonePointerEvent(t,c);this.dispatchEvent(l,"pointerover"),r&&this.dispatchEvent(l,"mouseover");let u=n?.parent;for(;u&&u!==this.rootTarget.parent&&u!==t.target;)u=u.parent;if(!u||u===this.rootTarget.parent){let d=this.clonePointerEvent(t,"pointerenter");for(d.eventPhase=d.AT_TARGET;d.target&&d.target!==n&&d.target!==this.rootTarget.parent;)d.currentTarget=d.target,this.notifyTarget(d),r&&this.notifyTarget(d,"mouseenter"),d.target=d.target.parent;this.freeEvent(d)}this.freeEvent(l)}let o=[],a=this.enableGlobalMoveEvents??!0;this.moveOnAll?o.push("pointermove"):this.dispatchEvent(t,"pointermove"),a&&o.push("globalpointermove"),t.pointerType==="touch"&&(this.moveOnAll?o.splice(1,0,"touchmove"):this.dispatchEvent(t,"touchmove"),a&&o.push("globaltouchmove")),r&&(this.moveOnAll?o.splice(1,0,"mousemove"):this.dispatchEvent(t,"mousemove"),a&&o.push("globalmousemove"),this.cursor=t.target?.cursor),o.length>0&&this.all(t,o),this._allInteractiveElements.length=0,this._hitElements.length=0,s.overTargets=t.composedPath(),this.freeEvent(t)}mapPointerOver(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),r=this.createPointerEvent(e),s=r.pointerType==="mouse"||r.pointerType==="pen";this.dispatchEvent(r,"pointerover"),s&&this.dispatchEvent(r,"mouseover"),r.pointerType==="mouse"&&(this.cursor=r.target?.cursor);let n=this.clonePointerEvent(r,"pointerenter");for(n.eventPhase=n.AT_TARGET;n.target&&n.target!==this.rootTarget.parent;)n.currentTarget=n.target,this.notifyTarget(n),s&&this.notifyTarget(n,"mouseenter"),n.target=n.target.parent;t.overTargets=r.composedPath(),this.freeEvent(r),this.freeEvent(n)}mapPointerOut(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId);if(t.overTargets){let r=e.pointerType==="mouse"||e.pointerType==="pen",s=this.findMountedTarget(t.overTargets),n=this.createPointerEvent(e,"pointerout",s);this.dispatchEvent(n),r&&this.dispatchEvent(n,"mouseout");let o=this.createPointerEvent(e,"pointerleave",s);for(o.eventPhase=o.AT_TARGET;o.target&&o.target!==this.rootTarget.parent;)o.currentTarget=o.target,this.notifyTarget(o),r&&this.notifyTarget(o,"mouseleave"),o.target=o.target.parent;t.overTargets=null,this.freeEvent(n),this.freeEvent(o)}this.cursor=null}mapPointerUp(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=performance.now(),r=this.createPointerEvent(e);if(this.dispatchEvent(r,"pointerup"),r.pointerType==="touch")this.dispatchEvent(r,"touchend");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let a=r.button===2;this.dispatchEvent(r,a?"rightup":"mouseup")}let s=this.trackingData(e.pointerId),n=this.findMountedTarget(s.pressTargetsByButton[e.button]),o=n;if(n&&!r.composedPath().includes(n)){let a=n;for(;a&&!r.composedPath().includes(a);){if(r.currentTarget=a,this.notifyTarget(r,"pointerupoutside"),r.pointerType==="touch")this.notifyTarget(r,"touchendoutside");else if(r.pointerType==="mouse"||r.pointerType==="pen"){let c=r.button===2;this.notifyTarget(r,c?"rightupoutside":"mouseupoutside")}a=a.parent}delete s.pressTargetsByButton[e.button],o=a}if(o){let a=this.clonePointerEvent(r,"click");a.target=o,a.path=null,s.clicksByButton[e.button]||(s.clicksByButton[e.button]={clickCount:0,target:a.target,timeStamp:t});let c=s.clicksByButton[e.button];if(c.target===a.target&&t-c.timeStamp<200?++c.clickCount:c.clickCount=1,c.target=a.target,c.timeStamp=t,a.detail=c.clickCount,a.pointerType==="mouse"){let l=a.button===2;this.dispatchEvent(a,l?"rightclick":"click")}else a.pointerType==="touch"&&this.dispatchEvent(a,"tap");this.dispatchEvent(a,"pointertap"),this.freeEvent(a)}this.freeEvent(r)}mapPointerUpOutside(e){if(!(e instanceof Ge)){q("EventBoundary cannot map a non-pointer event as a pointer event");return}let t=this.trackingData(e.pointerId),r=this.findMountedTarget(t.pressTargetsByButton[e.button]),s=this.createPointerEvent(e);if(r){let n=r;for(;n;)s.currentTarget=n,this.notifyTarget(s,"pointerupoutside"),s.pointerType==="touch"?this.notifyTarget(s,"touchendoutside"):(s.pointerType==="mouse"||s.pointerType==="pen")&&this.notifyTarget(s,s.button===2?"rightupoutside":"mouseupoutside"),n=n.parent;delete t.pressTargetsByButton[e.button]}this.freeEvent(s)}mapWheel(e){if(!(e instanceof kt)){q("EventBoundary cannot map a non-wheel event as a wheel event");return}let t=this.createWheelEvent(e);this.dispatchEvent(t),this.freeEvent(t)}findMountedTarget(e){if(!e)return null;let t=e[0];for(let r=1;r<e.length&&e[r].parent===t;r++)t=e[r];return t}createPointerEvent(e,t,r){let s=this.allocateEvent(Ge);return this.copyPointerData(e,s),this.copyMouseData(e,s),this.copyData(e,s),s.nativeEvent=e.nativeEvent,s.originalEvent=e,s.target=r??this.hitTest(s.global.x,s.global.y)??this._hitElements[0],typeof t=="string"&&(s.type=t),s}createWheelEvent(e){let t=this.allocateEvent(kt);return this.copyWheelData(e,t),this.copyMouseData(e,t),this.copyData(e,t),t.nativeEvent=e.nativeEvent,t.originalEvent=e,t.target=this.hitTest(t.global.x,t.global.y),t}clonePointerEvent(e,t){let r=this.allocateEvent(Ge);return r.nativeEvent=e.nativeEvent,r.originalEvent=e.originalEvent,this.copyPointerData(e,r),this.copyMouseData(e,r),this.copyData(e,r),r.target=e.target,r.path=e.composedPath().slice(),r.type=t??r.type,r}copyWheelData(e,t){t.deltaMode=e.deltaMode,t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ}copyPointerData(e,t){e instanceof Ge&&t instanceof Ge&&(t.pointerId=e.pointerId,t.width=e.width,t.height=e.height,t.isPrimary=e.isPrimary,t.pointerType=e.pointerType,t.pressure=e.pressure,t.tangentialPressure=e.tangentialPressure,t.tiltX=e.tiltX,t.tiltY=e.tiltY,t.twist=e.twist)}copyMouseData(e,t){e instanceof Yt&&t instanceof Yt&&(t.altKey=e.altKey,t.button=e.button,t.buttons=e.buttons,t.client.copyFrom(e.client),t.ctrlKey=e.ctrlKey,t.metaKey=e.metaKey,t.movement.copyFrom(e.movement),t.screen.copyFrom(e.screen),t.shiftKey=e.shiftKey,t.global.copyFrom(e.global))}copyData(e,t){t.isTrusted=e.isTrusted,t.srcElement=e.srcElement,t.timeStamp=performance.now(),t.type=e.type,t.detail=e.detail,t.view=e.view,t.which=e.which,t.layer.copyFrom(e.layer),t.page.copyFrom(e.page)}trackingData(e){return this.mappingState.trackingData[e]||(this.mappingState.trackingData[e]={pressTargetsByButton:{},clicksByButton:{},overTarget:null}),this.mappingState.trackingData[e]}allocateEvent(e){this.eventPool.has(e)||this.eventPool.set(e,[]);let t=this.eventPool.get(e).pop()||new e(this);return t.eventPhase=t.NONE,t.currentTarget=null,t.defaultPrevented=!1,t.path=null,t.target=null,t}freeEvent(e){if(e.manager!==this)throw new Error("It is illegal to free an event not managed by this EventBoundary!");let t=e.constructor;this.eventPool.has(t)||this.eventPool.set(t,[]),this.eventPool.get(t).push(e)}_notifyListeners(e,t){let r=e.currentTarget._events[t];if(r)if("fn"in r)r.once&&e.currentTarget.removeListener(t,r.fn,void 0,!0),r.fn.call(r.context,e);else for(let s=0,n=r.length;s<n&&!e.propagationImmediatelyStopped;s++)r[s].once&&e.currentTarget.removeListener(t,r[s].fn,void 0,!0),r[s].fn.call(r[s].context,e)}}});var kS,vS,Iu,va,Mu=b(()=>{G();lg();Pu();Cu();Eu();kS=1,vS={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},Iu=class Au{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new ka(null),Tt.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new Ge(null),this._rootWheelEvent=new kt(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Au.defaultEventFeatures},{set:(t,r,s)=>(r==="globalMove"&&(this.rootBoundary.enableGlobalMoveEvents=s),t[r]=s,!0)}),this._onPointerDown=this._onPointerDown.bind(this),this._onPointerMove=this._onPointerMove.bind(this),this._onPointerUp=this._onPointerUp.bind(this),this._onPointerOverOut=this._onPointerOverOut.bind(this),this.onWheel=this.onWheel.bind(this)}static get defaultEventMode(){return this._defaultEventMode}init(e){let{canvas:t,resolution:r}=this.renderer;this.setTargetElement(t),this.resolution=r,Au._defaultEventMode=e.eventMode??"passive",Object.assign(this.features,e.eventFeatures??{}),this.rootBoundary.enableGlobalMoveEvents=this.features.globalMove}resolutionChange(e){this.resolution=e}destroy(){this.setTargetElement(null),this.renderer=null,this._currentCursor=null}setCursor(e){e||(e="default");let t=!0;if(globalThis.OffscreenCanvas&&this.domElement instanceof OffscreenCanvas&&(t=!1),this._currentCursor===e)return;this._currentCursor=e;let r=this.cursorStyles[e];if(r)switch(typeof r){case"string":t&&(this.domElement.style.cursor=r);break;case"function":r(e);break;case"object":t&&Object.assign(this.domElement.style,r);break}else t&&typeof e=="string"&&!Object.prototype.hasOwnProperty.call(this.cursorStyles,e)&&(this.domElement.style.cursor=e)}get pointer(){return this._rootPointerEvent}_onPointerDown(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);this.autoPreventDefault&&t[0].isNormalized&&(e.cancelable||!("cancelable"in e))&&e.preventDefault();for(let r=0,s=t.length;r<s;r++){let n=t[r],o=this._bootstrapEvent(this._rootPointerEvent,n);this.rootBoundary.mapEvent(o)}this.setCursor(this.rootBoundary.cursor)}_onPointerMove(e){if(!this.features.move)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,Tt.pointerMoved();let t=this._normalizeToPointerData(e);for(let r=0,s=t.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,t[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}_onPointerUp(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=e.target;e.composedPath&&e.composedPath().length>0&&(t=e.composedPath()[0]);let r=t!==this.domElement?"outside":"",s=this._normalizeToPointerData(e);for(let n=0,o=s.length;n<o;n++){let a=this._bootstrapEvent(this._rootPointerEvent,s[n]);a.type+=r,this.rootBoundary.mapEvent(a)}this.setCursor(this.rootBoundary.cursor)}_onPointerOverOut(e){if(!this.features.click)return;this.rootBoundary.rootTarget=this.renderer.lastObjectRendered;let t=this._normalizeToPointerData(e);for(let r=0,s=t.length;r<s;r++){let n=this._bootstrapEvent(this._rootPointerEvent,t[r]);this.rootBoundary.mapEvent(n)}this.setCursor(this.rootBoundary.cursor)}onWheel(e){if(!this.features.wheel)return;let t=this.normalizeWheelEvent(e);this.rootBoundary.rootTarget=this.renderer.lastObjectRendered,this.rootBoundary.mapEvent(t)}setTargetElement(e){this._removeEvents(),this.domElement=e,Tt.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;Tt.addTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="none",e.msTouchAction="none"):this.supportsPointerEvents&&(e.touchAction="none")),this.supportsPointerEvents?(globalThis.document.addEventListener("pointermove",this._onPointerMove,!0),this.domElement.addEventListener("pointerdown",this._onPointerDown,!0),this.domElement.addEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.addEventListener("pointerover",this._onPointerOverOut,!0),globalThis.addEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.addEventListener("mousemove",this._onPointerMove,!0),this.domElement.addEventListener("mousedown",this._onPointerDown,!0),this.domElement.addEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.addEventListener("mouseover",this._onPointerOverOut,!0),globalThis.addEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.addEventListener("touchstart",this._onPointerDown,!0),this.domElement.addEventListener("touchend",this._onPointerUp,!0),this.domElement.addEventListener("touchmove",this._onPointerMove,!0))),this.domElement.addEventListener("wheel",this.onWheel,{passive:!0,capture:!0}),this._eventsAdded=!0}_removeEvents(){if(!this._eventsAdded||!this.domElement)return;Tt.removeTickerListener();let e=this.domElement.style;e&&(globalThis.navigator.msPointerEnabled?(e.msContentZooming="",e.msTouchAction=""):this.supportsPointerEvents&&(e.touchAction="")),this.supportsPointerEvents?(globalThis.document.removeEventListener("pointermove",this._onPointerMove,!0),this.domElement.removeEventListener("pointerdown",this._onPointerDown,!0),this.domElement.removeEventListener("pointerleave",this._onPointerOverOut,!0),this.domElement.removeEventListener("pointerover",this._onPointerOverOut,!0),globalThis.removeEventListener("pointerup",this._onPointerUp,!0)):(globalThis.document.removeEventListener("mousemove",this._onPointerMove,!0),this.domElement.removeEventListener("mousedown",this._onPointerDown,!0),this.domElement.removeEventListener("mouseout",this._onPointerOverOut,!0),this.domElement.removeEventListener("mouseover",this._onPointerOverOut,!0),globalThis.removeEventListener("mouseup",this._onPointerUp,!0),this.supportsTouchEvents&&(this.domElement.removeEventListener("touchstart",this._onPointerDown,!0),this.domElement.removeEventListener("touchend",this._onPointerUp,!0),this.domElement.removeEventListener("touchmove",this._onPointerMove,!0))),this.domElement.removeEventListener("wheel",this.onWheel,!0),this.domElement=null,this._eventsAdded=!1}mapPositionToPoint(e,t,r){let s=this.domElement.isConnected?this.domElement.getBoundingClientRect():{x:0,y:0,width:this.domElement.width,height:this.domElement.height,left:0,top:0},n=1/this.resolution;e.x=(t-s.left)*(this.domElement.width/s.width)*n,e.y=(r-s.top)*(this.domElement.height/s.height)*n}_normalizeToPointerData(e){let t=[];if(this.supportsTouchEvents&&e instanceof TouchEvent)for(let r=0,s=e.changedTouches.length;r<s;r++){let n=e.changedTouches[r];typeof n.button>"u"&&(n.button=0),typeof n.buttons>"u"&&(n.buttons=1),typeof n.isPrimary>"u"&&(n.isPrimary=e.touches.length===1&&e.type==="touchstart"),typeof n.width>"u"&&(n.width=n.radiusX||1),typeof n.height>"u"&&(n.height=n.radiusY||1),typeof n.tiltX>"u"&&(n.tiltX=0),typeof n.tiltY>"u"&&(n.tiltY=0),typeof n.pointerType>"u"&&(n.pointerType="touch"),typeof n.pointerId>"u"&&(n.pointerId=n.identifier||0),typeof n.pressure>"u"&&(n.pressure=n.force||.5),typeof n.twist>"u"&&(n.twist=0),typeof n.tangentialPressure>"u"&&(n.tangentialPressure=0),typeof n.layerX>"u"&&(n.layerX=n.offsetX=n.clientX),typeof n.layerY>"u"&&(n.layerY=n.offsetY=n.clientY),n.isNormalized=!0,n.type=e.type,t.push(n)}else if(!globalThis.MouseEvent||e instanceof MouseEvent&&(!this.supportsPointerEvents||!(e instanceof globalThis.PointerEvent))){let r=e;typeof r.isPrimary>"u"&&(r.isPrimary=!0),typeof r.width>"u"&&(r.width=1),typeof r.height>"u"&&(r.height=1),typeof r.tiltX>"u"&&(r.tiltX=0),typeof r.tiltY>"u"&&(r.tiltY=0),typeof r.pointerType>"u"&&(r.pointerType="mouse"),typeof r.pointerId>"u"&&(r.pointerId=kS),typeof r.pressure>"u"&&(r.pressure=.5),typeof r.twist>"u"&&(r.twist=0),typeof r.tangentialPressure>"u"&&(r.tangentialPressure=0),r.isNormalized=!0,t.push(r)}else t.push(e);return t}normalizeWheelEvent(e){let t=this._rootWheelEvent;return this._transferMouseData(t,e),t.deltaX=e.deltaX,t.deltaY=e.deltaY,t.deltaZ=e.deltaZ,t.deltaMode=e.deltaMode,this.mapPositionToPoint(t.screen,e.clientX,e.clientY),t.global.copyFrom(t.screen),t.offset.copyFrom(t.screen),t.nativeEvent=e,t.type=e.type,t}_bootstrapEvent(e,t){return e.originalEvent=null,e.nativeEvent=t,e.pointerId=t.pointerId,e.width=t.width,e.height=t.height,e.isPrimary=t.isPrimary,e.pointerType=t.pointerType,e.pressure=t.pressure,e.tangentialPressure=t.tangentialPressure,e.tiltX=t.tiltX,e.tiltY=t.tiltY,e.twist=t.twist,this._transferMouseData(e,t),this.mapPositionToPoint(e.screen,t.clientX,t.clientY),e.global.copyFrom(e.screen),e.offset.copyFrom(e.screen),e.isTrusted=t.isTrusted,e.type==="pointerleave"&&(e.type="pointerout"),e.type.startsWith("mouse")&&(e.type=e.type.replace("mouse","pointer")),e.type.startsWith("touch")&&(e.type=vS[e.type]||e.type),e}_transferMouseData(e,t){e.isTrusted=t.isTrusted,e.srcElement=t.srcElement,e.timeStamp=performance.now(),e.type=t.type,e.altKey=t.altKey,e.button=t.button,e.buttons=t.buttons,e.client.x=t.clientX,e.client.y=t.clientY,e.ctrlKey=t.ctrlKey,e.metaKey=t.metaKey,e.movement.x=t.movementX,e.movement.y=t.movementY,e.page.x=t.pageX,e.page.y=t.pageY,e.relatedTarget=null,e.shiftKey=t.shiftKey}};Iu.extension={name:"events",type:[A.WebGLSystem,A.CanvasSystem,A.WebGPUSystem],priority:-1};Iu.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};va=Iu});var ug,hg=b(()=>{Mu();ya();ug={onclick:null,onmousedown:null,onmouseenter:null,onmouseleave:null,onmousemove:null,onglobalmousemove:null,onmouseout:null,onmouseover:null,onmouseup:null,onmouseupoutside:null,onpointercancel:null,onpointerdown:null,onpointerenter:null,onpointerleave:null,onpointermove:null,onglobalpointermove:null,onpointerout:null,onpointerover:null,onpointertap:null,onpointerup:null,onpointerupoutside:null,onrightclick:null,onrightdown:null,onrightup:null,onrightupoutside:null,ontap:null,ontouchcancel:null,ontouchend:null,ontouchendoutside:null,ontouchmove:null,onglobaltouchmove:null,ontouchstart:null,onwheel:null,get interactive(){return this.eventMode==="dynamic"||this.eventMode==="static"},set interactive(i){this.eventMode=i?"static":"passive"},_internalEventMode:void 0,get eventMode(){return this._internalEventMode??va.defaultEventMode},set eventMode(i){this._internalEventMode=i},isInteractive(){return this.eventMode==="static"||this.eventMode==="dynamic"},interactiveChildren:!0,hitArea:null,addEventListener(i,e,t){let r=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof t=="object"?t.signal:void 0,n=typeof t=="object"?t.once===!0:!1,o=typeof e=="function"?void 0:e;i=r?`${i}capture`:i;let a=typeof e=="function"?e:e.handleEvent,c=this;s&&s.addEventListener("abort",()=>{c.off(i,a,o)}),n?c.once(i,a,o):c.on(i,a,o)},removeEventListener(i,e,t){let r=typeof t=="boolean"&&t||typeof t=="object"&&t.capture,s=typeof e=="function"?void 0:e;i=r?`${i}capture`:i,e=typeof e=="function"?e:e.handleEvent,this.off(i,e,s)},dispatchEvent(i){if(!(i instanceof ur))throw new Error("Container cannot propagate events outside of the Federated Events API");return i.defaultPrevented=!1,i.path=null,i.target=this,i.manager.dispatchEvent(i),!i.defaultPrevented}}});var dg=b(()=>{G();Ls();Mu();hg();L.add(va);L.mixin(mt,ug)});var $s,fg=b(()=>{G();$s=class{constructor(e){this._attachedDomElements=[],this._renderer=e,this._renderer.runners.postrender.add(this),this._domElement=document.createElement("div"),this._domElement.style.position="absolute",this._domElement.style.top="0",this._domElement.style.left="0",this._domElement.style.pointerEvents="none",this._domElement.style.zIndex="1000"}addRenderable(e,t){this._attachedDomElements.includes(e)||this._attachedDomElements.push(e)}updateRenderable(e){}validateRenderable(e){return!0}postrender(){let e=this._attachedDomElements;if(e.length===0){this._domElement.remove();return}let t=this._renderer.view.canvas;this._domElement.parentNode!==t.parentNode&&t.parentNode?.appendChild(this._domElement);let r=parseFloat(t.style.width)/t.width*this._renderer.resolution,s=parseFloat(t.style.height)/t.height*this._renderer.resolution;this._domElement.style.transform=`translate(${t.offsetLeft}px, ${t.offsetTop}px) scale(${r}, ${s})`;for(let n=0;n<e.length;n++){let o=e[n],a=o.element;if(!o.parent||o.globalDisplayStatus<7)a?.remove(),e.splice(n,1),n--;else{this._domElement.contains(a)||(a.style.position="absolute",a.style.pointerEvents="auto",this._domElement.appendChild(a));let c=o.worldTransform,l=o._anchor,u=o.width*l.x,h=o.height*l.y;a.style.transformOrigin=`${u}px ${h}px`,a.style.transform=`matrix(${c.a}, ${c.b}, ${c.c}, ${c.d}, ${c.tx-u}, ${c.ty-h})`,a.style.opacity=o.groupAlpha.toString()}}}destroy(){this._renderer.runners.postrender.remove(this);for(let e=0;e<this._attachedDomElements.length;e++)this._attachedDomElements[e].element?.remove();this._attachedDomElements.length=0,this._domElement.remove(),this._renderer=null}};$s.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"dom"}});var Di,Bu=b(()=>{ft();Ls();Di=class extends mt{constructor(e){super(e),this.canBundle=!0,this.allowChildren=!1,this._roundPixels=0,this._lastUsed=-1,this._gpuData=Object.create(null),this._bounds=new le(0,1,0,0),this._boundsDirty=!0}get bounds(){return this._boundsDirty?(this.updateBounds(),this._boundsDirty=!1,this._bounds):this._bounds}get roundPixels(){return!!this._roundPixels}set roundPixels(e){this._roundPixels=e?1:0}containsPoint(e){let t=this.bounds,{x:r,y:s}=e;return r>=t.minX&&r<=t.maxX&&s>=t.minY&&s<=t.maxY}onViewUpdate(){if(this._didViewChangeTick++,this._boundsDirty=!0,this.didViewUpdate)return;this.didViewUpdate=!0;let e=this.renderGroup||this.parentRenderGroup;e&&e.onChildViewUpdate(this)}destroy(e){super.destroy(e),this._bounds=null;for(let t in this._gpuData)this._gpuData[t].destroy?.();this._gpuData=null}collectRenderablesSimple(e,t,r){let{renderPipes:s}=t;s.blendMode.setBlendMode(this,this.groupBlendMode,e),s[this.renderPipeId].addRenderable(this,e),this.didViewUpdate=!1;let o=this.children,a=o.length;for(let c=0;c<a;c++)o[c].collectRenderables(e,t,r)}}});var mg=b(()=>{G();fg();L.add($s)});var Fu,pg=b(()=>{"use strict";Fu=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(Fu||{})});var gg,xg=b(()=>{"use strict";gg={createCanvas:(i,e)=>{let t=document.createElement("canvas");return t.width=i,t.height=e,t},getCanvasRenderingContext2D:()=>CanvasRenderingContext2D,getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(i,e)=>fetch(i,e),parseXML:i=>new DOMParser().parseFromString(i,"text/xml")}});var yg,xe,vt=b(()=>{xg();yg=gg,xe={get(){return yg},set(i){yg=i}}});function gt(i){if(typeof i!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(i)}`)}function qs(i){return i.split("?")[0].split("#")[0]}function PS(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function CS(i,e,t){return i.replace(new RegExp(PS(e),"g"),t)}function ES(i,e){let t="",r=0,s=-1,n=0,o=-1;for(let a=0;a<=i.length;++a){if(a<i.length)o=i.charCodeAt(a);else{if(o===47)break;o=47}if(o===47){if(!(s===a-1||n===1))if(s!==a-1&&n===2){if(t.length<2||r!==2||t.charCodeAt(t.length-1)!==46||t.charCodeAt(t.length-2)!==46){if(t.length>2){let c=t.lastIndexOf("/");if(c!==t.length-1){c===-1?(t="",r=0):(t=t.slice(0,c),r=t.length-1-t.lastIndexOf("/")),s=a,n=0;continue}}else if(t.length===2||t.length===1){t="",r=0,s=a,n=0;continue}}e&&(t.length>0?t+="/..":t="..",r=2)}else t.length>0?t+=`/${i.slice(s+1,a)}`:t=i.slice(s+1,a),r=a-s-1;s=a,n=0}else o===46&&n!==-1?++n:n=-1}return t}var Xr,Du=b(()=>{vt();Xr={toPosix(i){return CS(i,"\\","/")},isUrl(i){return/^https?:/.test(this.toPosix(i))},isDataUrl(i){return/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(i)},isBlobUrl(i){return i.startsWith("blob:")},hasProtocol(i){return/^[^/:]+:/.test(this.toPosix(i))},getProtocol(i){gt(i),i=this.toPosix(i);let e=/^file:\/\/\//.exec(i);if(e)return e[0];let t=/^[^/:]+:\/{0,2}/.exec(i);return t?t[0]:""},toAbsolute(i,e,t){if(gt(i),this.isDataUrl(i)||this.isBlobUrl(i))return i;let r=qs(this.toPosix(e??xe.get().getBaseUrl())),s=qs(this.toPosix(t??this.rootname(r)));return i=this.toPosix(i),i.startsWith("/")?Xr.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(gt(i),i.length===0)return".";if(this.isDataUrl(i)||this.isBlobUrl(i))return i;i=this.toPosix(i);let e="",t=i.startsWith("/");this.hasProtocol(i)&&(e=this.rootname(i),i=i.slice(e.length));let r=i.endsWith("/");return i=ES(i,!1),i.length>0&&r&&(i+="/"),t?`/${i}`:e+i},isAbsolute(i){return gt(i),i=this.toPosix(i),this.hasProtocol(i)?!0:i.startsWith("/")},join(...i){if(i.length===0)return".";let e;for(let t=0;t<i.length;++t){let r=i[t];if(gt(r),r.length>0)if(e===void 0)e=r;else{let s=i[t-1]??"";this.joinExtensions.includes(this.extname(s).toLowerCase())?e+=`/../${r}`:e+=`/${r}`}}return e===void 0?".":this.normalize(e)},dirname(i){if(gt(i),i.length===0)return".";i=this.toPosix(i);let e=i.charCodeAt(0),t=e===47,r=-1,s=!0,n=this.getProtocol(i),o=i;i=i.slice(n.length);for(let a=i.length-1;a>=1;--a)if(e=i.charCodeAt(a),e===47){if(!s){r=a;break}}else s=!1;return r===-1?t?"/":this.isUrl(o)?n+i:n:t&&r===1?"//":n+i.slice(0,r)},rootname(i){gt(i),i=this.toPosix(i);let e="";if(i.startsWith("/")?e="/":e=this.getProtocol(i),this.isUrl(i)){let t=i.indexOf("/",e.length);t!==-1?e=i.slice(0,t):e=i,e.endsWith("/")||(e+="/")}return e},basename(i,e){gt(i),e&>(e),i=qs(this.toPosix(i));let t=0,r=-1,s=!0,n;if(e!==void 0&&e.length>0&&e.length<=i.length){if(e.length===i.length&&e===i)return"";let o=e.length-1,a=-1;for(n=i.length-1;n>=0;--n){let c=i.charCodeAt(n);if(c===47){if(!s){t=n+1;break}}else a===-1&&(s=!1,a=n+1),o>=0&&(c===e.charCodeAt(o)?--o===-1&&(r=n):(o=-1,r=a))}return t===r?r=a:r===-1&&(r=i.length),i.slice(t,r)}for(n=i.length-1;n>=0;--n)if(i.charCodeAt(n)===47){if(!s){t=n+1;break}}else r===-1&&(s=!1,r=n+1);return r===-1?"":i.slice(t,r)},extname(i){gt(i),i=qs(this.toPosix(i));let e=-1,t=0,r=-1,s=!0,n=0;for(let o=i.length-1;o>=0;--o){let a=i.charCodeAt(o);if(a===47){if(!s){t=o+1;break}continue}r===-1&&(s=!1,r=o+1),a===46?e===-1?e=o:n!==1&&(n=1):e!==-1&&(n=-1)}return e===-1||r===-1||n===0||n===1&&e===r-1&&e===t+1?"":i.slice(e,r)},parse(i){gt(i);let e={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return e;i=qs(this.toPosix(i));let t=i.charCodeAt(0),r=this.isAbsolute(i),s,n="";e.root=this.rootname(i),r||this.hasProtocol(i)?s=1:s=0;let o=-1,a=0,c=-1,l=!0,u=i.length-1,h=0;for(;u>=s;--u){if(t=i.charCodeAt(u),t===47){if(!l){a=u+1;break}continue}c===-1&&(l=!1,c=u+1),t===46?o===-1?o=u:h!==1&&(h=1):o!==-1&&(h=-1)}return o===-1||c===-1||h===0||h===1&&o===c-1&&o===a+1?c!==-1&&(a===0&&r?e.base=e.name=i.slice(1,c):e.base=e.name=i.slice(a,c)):(a===0&&r?(e.name=i.slice(1,o),e.base=i.slice(1,c)):(e.name=i.slice(a,o),e.base=i.slice(a,c)),e.ext=i.slice(o,c)),e.dir=this.dirname(i),n&&(e.dir=n+e.dir),e},sep:"/",delimiter:":",joinExtensions:[".html"]}});var dr,Ru=b(()=>{"use strict";dr=(i,e,t=!1)=>(Array.isArray(i)||(i=[i]),e?i.map(r=>typeof r=="string"||t?e(r):r):i)});function bg(i,e,t,r,s){let n=e[t];for(let o=0;o<n.length;o++){let a=n[o];t<e.length-1?bg(i.replace(r[t],a),e,t+1,r,s):s.push(i.replace(r[t],a))}}function wg(i){let e=/\{(.*?)\}/g,t=i.match(e),r=[];if(t){let s=[];t.forEach(n=>{let o=n.substring(1,n.length-1).split(",");s.push(o)}),bg(i,s,0,t,r)}else r.push(i);return r}var _g=b(()=>{"use strict"});var Ou,Sg=b(()=>{"use strict";Ou=i=>!Array.isArray(i)});function AS(i){return i.split(".").pop().split("?").shift().split("#").shift()}var Xs,Tg=b(()=>{ze();Du();Ru();_g();Sg();Xs=class{constructor(){this._defaultBundleIdentifierOptions={connector:"-",createBundleAssetId:(e,t)=>`${e}${this._bundleIdConnector}${t}`,extractAssetIdFromBundle:(e,t)=>t.replace(`${e}${this._bundleIdConnector}`,"")},this._bundleIdConnector=this._defaultBundleIdentifierOptions.connector,this._createBundleAssetId=this._defaultBundleIdentifierOptions.createBundleAssetId,this._extractAssetIdFromBundle=this._defaultBundleIdentifierOptions.extractAssetIdFromBundle,this._assetMap={},this._preferredOrder=[],this._parsers=[],this._resolverHash={},this._bundles={}}setBundleIdentifier(e){if(this._bundleIdConnector=e.connector??this._bundleIdConnector,this._createBundleAssetId=e.createBundleAssetId??this._createBundleAssetId,this._extractAssetIdFromBundle=e.extractAssetIdFromBundle??this._extractAssetIdFromBundle,this._extractAssetIdFromBundle("foo",this._createBundleAssetId("foo","bar"))!=="bar")throw new Error("[Resolver] GenerateBundleAssetId are not working correctly")}prefer(...e){e.forEach(t=>{this._preferredOrder.push(t),t.priority||(t.priority=Object.keys(t.params))}),this._resolverHash={}}set basePath(e){this._basePath=e}get basePath(){return this._basePath}set rootPath(e){this._rootPath=e}get rootPath(){return this._rootPath}get parsers(){return this._parsers}reset(){this.setBundleIdentifier(this._defaultBundleIdentifierOptions),this._assetMap={},this._preferredOrder=[],this._resolverHash={},this._rootPath=null,this._basePath=null,this._manifest=null,this._bundles={},this._defaultSearchParams=null}setDefaultSearchParams(e){if(typeof e=="string")this._defaultSearchParams=e;else{let t=e;this._defaultSearchParams=Object.keys(t).map(r=>`${encodeURIComponent(r)}=${encodeURIComponent(t[r])}`).join("&")}}getAlias(e){let{alias:t,src:r}=e;return dr(t||r,n=>typeof n=="string"?n:Array.isArray(n)?n.map(o=>o?.src??o):n?.src?n.src:n,!0)}addManifest(e){this._manifest&&q("[Resolver] Manifest already exists, this will be overwritten"),this._manifest=e,e.bundles.forEach(t=>{this.addBundle(t.name,t.assets)})}addBundle(e,t){let r=[],s=t;Array.isArray(t)||(s=Object.entries(t).map(([n,o])=>typeof o=="string"||Array.isArray(o)?{alias:n,src:o}:{alias:n,...o})),s.forEach(n=>{let o=n.src,a=n.alias,c;if(typeof a=="string"){let l=this._createBundleAssetId(e,a);r.push(l),c=[a,l]}else{let l=a.map(u=>this._createBundleAssetId(e,u));r.push(...l),c=[...a,...l]}this.add({...n,alias:c,src:o})}),this._bundles[e]=r}add(e){let t=[];Array.isArray(e)?t.push(...e):t.push(e);let r;r=n=>{this.hasKey(n)&&q(`[Resolver] already has key: ${n} overwriting`)},dr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:l}=n,u=dr(o).map(f=>typeof f=="string"?wg(f):Array.isArray(f)?f:[f]),h=this.getAlias(n);Array.isArray(h)?h.forEach(r):r(h);let d=[];u.forEach(f=>{f.forEach(m=>{let p={};if(typeof m!="object"){p.src=m;for(let g=0;g<this._parsers.length;g++){let y=this._parsers[g];if(y.test(m)){p=y.parse(m);break}}}else a=m.data??a,c=m.format??c,l=m.loadParser??l,p={...p,...m};if(!h)throw new Error(`[Resolver] alias is undefined for this asset: ${p.src}`);p=this._buildResolvedAsset(p,{aliases:h,data:a,format:c,loadParser:l}),d.push(p)})}),h.forEach(f=>{this._assetMap[f]=d})})}resolveBundle(e){let t=Ou(e);e=dr(e);let r={};return e.forEach(s=>{let n=this._bundles[s];if(n){let o=this.resolve(n),a={};for(let c in o){let l=o[c];a[this._extractAssetIdFromBundle(s,c)]=l}r[s]=a}}),t?r[e[0]]:r}resolveUrl(e){let t=this.resolve(e);if(typeof e!="string"){let r={};for(let s in t)r[s]=t[s].src;return r}return t.src}resolve(e){let t=Ou(e);e=dr(e);let r={};return e.forEach(s=>{if(!this._resolverHash[s])if(this._assetMap[s]){let n=this._assetMap[s],o=this._getPreferredOrder(n);o?.priority.forEach(a=>{o.params[a].forEach(c=>{let l=n.filter(u=>u[a]?u[a]===c:!1);l.length&&(n=l)})}),this._resolverHash[s]=n[0]}else this._resolverHash[s]=this._buildResolvedAsset({alias:[s],src:s},{});r[s]=this._resolverHash[s]}),t?r[e[0]]:r}hasKey(e){return!!this._assetMap[e]}hasBundle(e){return!!this._bundles[e]}_getPreferredOrder(e){for(let t=0;t<e.length;t++){let r=e[t],s=this._preferredOrder.find(n=>n.params.format.includes(r.format));if(s)return s}return this._preferredOrder[0]}_appendDefaultSearchParams(e){if(!this._defaultSearchParams)return e;let t=/\?/.test(e)?"&":"?";return`${e}${t}${this._defaultSearchParams}`}_buildResolvedAsset(e,t){let{aliases:r,data:s,loadParser:n,format:o}=t;return(this._basePath||this._rootPath)&&(e.src=Xr.toAbsolute(e.src,this._basePath,this._rootPath)),e.alias=r??e.alias??[e.src],e.src=this._appendDefaultSearchParams(e.src),e.data={...s||{},...e.data},e.loadParser=n??e.loadParser,e.format=o??e.format??AS(e.src),e}};Xs.RETINA_PREFIX=/@([0-9\.]+)x/});var Uu,kg=b(()=>{"use strict";Uu=(i,e)=>{let t=e.split("?")[1];return t&&(i+=`?${t}`),i}});var vg,zu,Pg=b(()=>{$e();qt();Te();vg=class Ys{constructor(e,t){this.linkedSheets=[];let r=e;e?.source instanceof we&&(r={texture:e,data:t});let{texture:s,data:n,cachePrefix:o=""}=r;this.cachePrefix=o,this._texture=s instanceof O?s:null,this.textureSource=s.source,this.textures={},this.animations={},this.data=n;let a=parseFloat(n.meta.scale);a?(this.resolution=a,s.source.resolution=this.resolution):this.resolution=s.source._resolution,this._frames=this.data.frames,this._frameKeys=Object.keys(this._frames),this._batchIndex=0,this._callback=null}parse(){return new Promise(e=>{this._callback=e,this._batchIndex=0,this._frameKeys.length<=Ys.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(e){let t=e,r=Ys.BATCH_SIZE;for(;t-e<r&&t<this._frameKeys.length;){let s=this._frameKeys[t],n=this._frames[s],o=n.frame;if(o){let a=null,c=null,l=n.trimmed!==!1&&n.sourceSize?n.sourceSize:n.frame,u=new Z(0,0,Math.floor(l.w)/this.resolution,Math.floor(l.h)/this.resolution);n.rotated?a=new Z(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.h)/this.resolution,Math.floor(o.w)/this.resolution):a=new Z(Math.floor(o.x)/this.resolution,Math.floor(o.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution),n.trimmed!==!1&&n.spriteSourceSize&&(c=new Z(Math.floor(n.spriteSourceSize.x)/this.resolution,Math.floor(n.spriteSourceSize.y)/this.resolution,Math.floor(o.w)/this.resolution,Math.floor(o.h)/this.resolution)),this.textures[s]=new O({source:this.textureSource,frame:a,orig:u,trim:c,rotate:n.rotated?2:0,defaultAnchor:n.anchor,defaultBorders:n.borders,label:s.toString()})}t++}}_processAnimations(){let e=this.data.animations||{};for(let t in e){this.animations[t]=[];for(let r=0;r<e[t].length;r++){let s=e[t][r];this.animations[t].push(this.textures[s])}}}_parseComplete(){let e=this._callback;this._callback=null,this._batchIndex=0,e.call(this,this.textures)}_nextBatch(){this._processFrames(this._batchIndex*Ys.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*Ys.BATCH_SIZE<this._frameKeys.length?this._nextBatch():(this._processAnimations(),this._parseComplete())},0)}destroy(e=!1){for(let t in this.textures)this.textures[t].destroy();this._frames=null,this._frameKeys=null,this.data=null,this.textures=null,e&&(this._texture?.destroy(),this.textureSource.destroy()),this._texture=null,this.textureSource=null,this.linkedSheets=[]}};vg.BATCH_SIZE=1e3;zu=vg});function Cg(i,e,t){let r={};if(i.forEach(s=>{r[s]=e}),Object.keys(e.textures).forEach(s=>{r[`${e.cachePrefix}${s}`]=e.textures[s]}),!t){let s=Xr.dirname(i[0]);e.linkedSheets.forEach((n,o)=>{let a=Cg([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var IS,Eg,Ag=b(()=>{pg();Tg();kg();G();Te();Du();Pg();IS=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];Eg={extension:A.Asset,cache:{test:i=>i instanceof zu,getCacheableAssets:(i,e)=>Cg(i,e,!1)},resolver:{extension:{type:A.ResolveParser,name:"resolveSpritesheet"},test:i=>{let t=i.split("?")[0].split("."),r=t.pop(),s=t.pop();return r==="json"&&IS.includes(s)},parse:i=>{let e=i.split(".");return{resolution:parseFloat(Xs.RETINA_PREFIX.exec(i)?.[1]??"1"),format:e[e.length-2],src:i}}},loader:{name:"spritesheetLoader",extension:{type:A.LoadParser,priority:Fu.Normal,name:"spritesheetLoader"},async testParse(i,e){return Xr.extname(e.src).toLowerCase()===".json"&&!!i.frames},async parse(i,e,t){let{texture:r,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Xr.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(r instanceof O)c=r;else{let h=Uu(a+(s??i.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let l=new zu({texture:c.source,data:i,cachePrefix:o});await l.parse();let u=i?.meta?.related_multi_packs;if(Array.isArray(u)){let h=[];for(let f of u){if(typeof f!="string")continue;let m=a+f;e.data?.ignoreMultiPack||(m=Uu(m,e.src),h.push(t.load({src:m,data:{textureOptions:n,ignoreMultiPack:!0}})))}let d=await Promise.all(h);l.linkedSheets=d,d.forEach(f=>{f.linkedSheets=[l].concat(l.linkedSheets.filter(m=>m!==f))})}return l},async unload(i,e,t){await t.unload(i.textureSource._sourceOrigin),i.destroy(!1)}}}});var Pa=b(()=>{G();Ag();L.add(Eg)});function Ca(i,e,t){let{width:r,height:s}=t.orig,n=t.trim;if(n){let o=n.width,a=n.height;i.minX=n.x-e._x*r,i.maxX=i.minX+o,i.minY=n.y-e._y*s,i.maxY=i.minY+a}else i.minX=-e._x*r,i.maxX=i.minX+r,i.minY=-e._y*s,i.maxY=i.minY+s}var Gu=b(()=>{"use strict"});var Ks,Ig=b(()=>{Ql();Te();Gu();pe();Bu();Ks=class i extends Di{constructor(e=O.EMPTY){e instanceof O&&(e={texture:e});let{texture:t=O.EMPTY,anchor:r,roundPixels:s,width:n,height:o,...a}=e;super({label:"Sprite",...a}),this.renderPipeId="sprite",this.batched=!0,this._visualBounds={minX:0,maxX:1,minY:0,maxY:0},this._anchor=new Oe({_onUpdate:()=>{this.onViewUpdate()}}),r?this.anchor=r:t.defaultAnchor&&(this.anchor=t.defaultAnchor),this.texture=t,this.allowChildren=!1,this.roundPixels=s??!1,n!==void 0&&(this.width=n),o!==void 0&&(this.height=o)}static from(e,t=!1){return e instanceof O?new i(e):new i(O.from(e,t))}set texture(e){e||(e=O.EMPTY);let t=this._texture;t!==e&&(t&&t.dynamic&&t.off("update",this.onViewUpdate,this),e.dynamic&&e.on("update",this.onViewUpdate,this),this._texture=e,this._width&&this._setWidth(this._width,this._texture.orig.width),this._height&&this._setHeight(this._height,this._texture.orig.height),this.onViewUpdate())}get texture(){return this._texture}get visualBounds(){return Ca(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return N("8.6.1","Sprite.sourceBounds is deprecated, use visualBounds instead."),this.visualBounds}updateBounds(){let e=this._anchor,t=this._texture,r=this._bounds,{width:s,height:n}=t.orig;r.minX=-e._x*s,r.maxX=r.minX+s,r.minY=-e._y*n,r.maxY=r.minY+n}destroy(e=!1){if(super.destroy(e),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._texture.destroy(r)}this._texture=null,this._visualBounds=null,this._bounds=null,this._anchor=null,this._gpuData=null}get anchor(){return this._anchor}set anchor(e){typeof e=="number"?this._anchor.set(e):this._anchor.copyFrom(e)}get width(){return Math.abs(this.scale.x)*this._texture.orig.width}set width(e){this._setWidth(e,this._texture.orig.width),this._width=e}get height(){return Math.abs(this.scale.y)*this._texture.orig.height}set height(e){this._setHeight(e,this._texture.orig.height),this._height=e}getSize(e){return e||(e={}),e.width=Math.abs(this.scale.x)*this._texture.orig.width,e.height=Math.abs(this.scale.y)*this._texture.orig.height,e}setSize(e,t){typeof e=="object"?(t=e.height??e.width,e=e.width):t??(t=e),e!==void 0&&this._setWidth(e,this._texture.orig.width),t!==void 0&&this._setHeight(t,this._texture.orig.height)}}});function Ea(i,e,t){let r=MS;i.measurable=!0,la(i,t,r),e.addBoundsMask(r),i.measurable=!1}var MS,Nu=b(()=>{ft();ha();MS=new le});function Aa(i,e,t){let r=Ke.get();i.measurable=!0;let s=ge.get().identity(),n=Mg(i,t,s);fa(i,r,n),i.measurable=!1,e.addBoundsMask(r),ge.return(s),Ke.return(r)}function Mg(i,e,t){return i?(i!==e&&(Mg(i.parent,e,t),i.updateLocalTransform(),t.append(i.localTransform)),t):(q("Mask bounds, renderable is not inside the root container"),t)}var Lu=b(()=>{ou();Vr();ze()});var Zs,Bg=b(()=>{G();Ig();Nu();Lu();Zs=class{constructor(e){this.priority=0,this.inverse=!1,this.pipe="alphaMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.renderMaskToTexture=!(e instanceof Ks),this.mask.renderable=this.renderMaskToTexture,this.mask.includeInBuild=!this.renderMaskToTexture,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask=null}addBounds(e,t){this.inverse||Ea(this.mask,e,t)}addLocalBounds(e,t){Aa(this.mask,e,t)}containsPoint(e,t){let r=this.mask;return t(r,e)}destroy(){this.reset()}static test(e){return e instanceof Ks}};Zs.extension=A.MaskEffect});var Qs,Fg=b(()=>{G();Qs=class{constructor(e){this.priority=0,this.pipe="colorMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e}destroy(){}static test(e){return typeof e=="number"}};Qs.extension=A.MaskEffect});var Js,Dg=b(()=>{G();Ls();Nu();Lu();Js=class{constructor(e){this.priority=0,this.pipe="stencilMask",e?.mask&&this.init(e.mask)}init(e){this.mask=e,this.mask.includeInBuild=!1,this.mask.measurable=!1}reset(){this.mask.measurable=!0,this.mask.includeInBuild=!0,this.mask=null}addBounds(e,t){Ea(this.mask,e,t)}addLocalBounds(e,t){Aa(this.mask,e,t)}containsPoint(e,t){let r=this.mask;return t(r,e)}destroy(){this.reset()}static test(e){return e instanceof mt}};Js.extension=A.MaskEffect});var en,Rg=b(()=>{vt();G();qt();en=class extends we{constructor(e){e.resource||(e.resource=xe.get().createCanvas()),e.width||(e.width=e.resource.width,e.autoDensity||(e.width/=e.resolution)),e.height||(e.height=e.resource.height,e.autoDensity||(e.height/=e.resolution)),super(e),this.uploadMethodId="image",this.autoDensity=e.autoDensity,this.resizeCanvas(),this.transparent=!!e.transparent}resizeCanvas(){this.autoDensity&&"style"in this.resource&&(this.resource.style.width=`${this.width}px`,this.resource.style.height=`${this.height}px`),(this.resource.width!==this.pixelWidth||this.resource.height!==this.pixelHeight)&&(this.resource.width=this.pixelWidth,this.resource.height=this.pixelHeight)}resize(e=this.width,t=this.height,r=this._resolution){let s=super.resize(e,t,r);return s&&this.resizeCanvas(),s}static test(e){return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement||globalThis.OffscreenCanvas&&e instanceof OffscreenCanvas}get context2D(){return this._context2D||(this._context2D=this.resource.getContext("2d"))}};en.extension=A.TextureSource});var Pt,Ia=b(()=>{G();qt();Pt=class extends we{constructor(e){super(e),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(e){return globalThis.HTMLImageElement&&e instanceof HTMLImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||globalThis.VideoFrame&&e instanceof VideoFrame}};Pt.extension=A.TextureSource});async function Og(){return Vu??(Vu=(async()=>{let e=document.createElement("canvas").getContext("webgl");if(!e)return"premultiply-alpha-on-upload";let t=await new Promise(o=>{let a=document.createElement("video");a.onloadeddata=()=>o(a),a.onerror=()=>o(null),a.autoplay=!1,a.crossOrigin="anonymous",a.preload="auto",a.src="data:video/webm;base64,GkXfo59ChoEBQveBAULygQRC84EIQoKEd2VibUKHgQJChYECGFOAZwEAAAAAAAHTEU2bdLpNu4tTq4QVSalmU6yBoU27i1OrhBZUrmtTrIHGTbuMU6uEElTDZ1OsggEXTbuMU6uEHFO7a1OsggG97AEAAAAAAABZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVSalmoCrXsYMPQkBNgIRMYXZmV0GETGF2ZkSJiEBEAAAAAAAAFlSua8yuAQAAAAAAAEPXgQFzxYgAAAAAAAAAAZyBACK1nIN1bmSIgQCGhVZfVlA5g4EBI+ODhAJiWgDglLCBArqBApqBAlPAgQFVsIRVuYEBElTDZ9Vzc9JjwItjxYgAAAAAAAAAAWfInEWjh0VOQ09ERVJEh49MYXZjIGxpYnZweC12cDlnyKJFo4hEVVJBVElPTkSHlDAwOjAwOjAwLjA0MDAwMDAwMAAAH0O2dcfngQCgwqGggQAAAIJJg0IAABAAFgA4JBwYSgAAICAAEb///4r+AAB1oZ2mm+6BAaWWgkmDQgAAEAAWADgkHBhKAAAgIABIQBxTu2uRu4+zgQC3iveBAfGCAXHwgQM=",a.load()});if(!t)return"premultiply-alpha-on-upload";let r=e.createTexture();e.bindTexture(e.TEXTURE_2D,r);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,r,0),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t);let n=new Uint8Array(4);return e.readPixels(0,0,1,1,e.RGBA,e.UNSIGNED_BYTE,n),e.deleteFramebuffer(s),e.deleteTexture(r),e.getExtension("WEBGL_lose_context")?.loseContext(),n[0]<=n[3]?"premultiplied-alpha":"premultiply-alpha-on-upload"})()),Vu}var Vu,Ug=b(()=>{"use strict"});var Ma,Gg,Ng=b(()=>{G();Sa();Ug();qt();Ma=class zg extends we{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...zg.defaultOptions,...e},this._autoUpdate=!0,this._isConnectedToTicker=!1,this._updateFPS=e.updateFPS||0,this._msToNextUpdate=0,this.autoPlay=e.autoPlay!==!1,this.alphaMode=e.alphaMode??"premultiply-alpha-on-upload",this._videoFrameRequestCallback=this._videoFrameRequestCallback.bind(this),this._videoFrameRequestCallbackHandle=null,this._load=null,this._resolve=null,this._reject=null,this._onCanPlay=this._onCanPlay.bind(this),this._onCanPlayThrough=this._onCanPlayThrough.bind(this),this._onError=this._onError.bind(this),this._onPlayStart=this._onPlayStart.bind(this),this._onPlayStop=this._onPlayStop.bind(this),this._onSeeked=this._onSeeked.bind(this),e.autoLoad!==!1&&this.load()}updateFrame(){if(!this.destroyed){if(this._updateFPS){let e=pt.shared.elapsedMS*this.resource.playbackRate;this._msToNextUpdate=Math.floor(this._msToNextUpdate-e)}(!this._updateFPS||this._msToNextUpdate<=0)&&(this._msToNextUpdate=this._updateFPS?Math.floor(1e3/this._updateFPS):0),this.isValid&&this.update()}}_videoFrameRequestCallback(){this.updateFrame(),this.destroyed?this._videoFrameRequestCallbackHandle=null:this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback)}get isValid(){return!!this.resource.videoWidth&&!!this.resource.videoHeight}async load(){if(this._load)return this._load;let e=this.resource,t=this.options;return(e.readyState===e.HAVE_ENOUGH_DATA||e.readyState===e.HAVE_FUTURE_DATA)&&e.width&&e.height&&(e.complete=!0),e.addEventListener("play",this._onPlayStart),e.addEventListener("pause",this._onPlayStop),e.addEventListener("seeked",this._onSeeked),this._isSourceReady()?this._mediaReady():(t.preload||e.addEventListener("canplay",this._onCanPlay),e.addEventListener("canplaythrough",this._onCanPlayThrough),e.addEventListener("error",this._onError,!0)),this.alphaMode=await Og(),this._load=new Promise((r,s)=>{this.isValid?r(this):(this._resolve=r,this._reject=s,t.preloadTimeoutMs!==void 0&&(this._preloadTimeout=setTimeout(()=>{this._onError(new ErrorEvent(`Preload exceeded timeout of ${t.preloadTimeoutMs}ms`))})),e.load())}),this._load}_onError(e){this.resource.removeEventListener("error",this._onError,!0),this.emit("error",e),this._reject&&(this._reject(e),this._reject=null,this._resolve=null)}_isSourcePlaying(){let e=this.resource;return!e.paused&&!e.ended}_isSourceReady(){return this.resource.readyState>2}_onPlayStart(){this.isValid||this._mediaReady(),this._configureAutoUpdate()}_onPlayStop(){this._configureAutoUpdate()}_onSeeked(){this._autoUpdate&&!this._isSourcePlaying()&&(this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0)}_onCanPlay(){this.resource.removeEventListener("canplay",this._onCanPlay),this._mediaReady()}_onCanPlayThrough(){this.resource.removeEventListener("canplaythrough",this._onCanPlay),this._preloadTimeout&&(clearTimeout(this._preloadTimeout),this._preloadTimeout=void 0),this._mediaReady()}_mediaReady(){let e=this.resource;this.isValid&&(this.isReady=!0,this.resize(e.videoWidth,e.videoHeight)),this._msToNextUpdate=0,this.updateFrame(),this._msToNextUpdate=0,this._resolve&&(this._resolve(this),this._resolve=null,this._reject=null),this._isSourcePlaying()?this._onPlayStart():this.autoPlay&&this.resource.play()}destroy(){this._configureAutoUpdate();let e=this.resource;e&&(e.removeEventListener("play",this._onPlayStart),e.removeEventListener("pause",this._onPlayStop),e.removeEventListener("seeked",this._onSeeked),e.removeEventListener("canplay",this._onCanPlay),e.removeEventListener("canplaythrough",this._onCanPlayThrough),e.removeEventListener("error",this._onError,!0),e.pause(),e.src="",e.load()),super.destroy()}get autoUpdate(){return this._autoUpdate}set autoUpdate(e){e!==this._autoUpdate&&(this._autoUpdate=e,this._configureAutoUpdate())}get updateFPS(){return this._updateFPS}set updateFPS(e){e!==this._updateFPS&&(this._updateFPS=e,this._configureAutoUpdate())}_configureAutoUpdate(){this._autoUpdate&&this._isSourcePlaying()?!this._updateFPS&&this.resource.requestVideoFrameCallback?(this._isConnectedToTicker&&(pt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0),this._videoFrameRequestCallbackHandle===null&&(this._videoFrameRequestCallbackHandle=this.resource.requestVideoFrameCallback(this._videoFrameRequestCallback))):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker||(pt.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(pt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};Ma.extension=A.TextureSource;Ma.defaultOptions={...we.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Ma.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};Gg=Ma});var Wu,ye,tn=b(()=>{ze();Ru();Wu=class{constructor(){this._parsers=[],this._cache=new Map,this._cacheMap=new Map}reset(){this._cacheMap.clear(),this._cache.clear()}has(e){return this._cache.has(e)}get(e){let t=this._cache.get(e);return t||q(`[Assets] Asset id ${e} was not found in the Cache`),t}set(e,t){let r=dr(e),s;for(let c=0;c<this.parsers.length;c++){let l=this.parsers[c];if(l.test(t)){s=l.getCacheableAssets(r,t);break}}let n=new Map(Object.entries(s||{}));s||r.forEach(c=>{n.set(c,t)});let o=[...n.keys()],a={cacheKeys:o,keys:r};r.forEach(c=>{this._cacheMap.set(c,a)}),o.forEach(c=>{let l=s?s[c]:t;this._cache.has(c)&&this._cache.get(c)!==l&&q("[Cache] already has key:",c),this._cache.set(c,n.get(c))})}remove(e){if(!this._cacheMap.has(e)){q(`[Assets] Asset id ${e} was not found in the Cache`);return}let t=this._cacheMap.get(e);t.cacheKeys.forEach(s=>{this._cache.delete(s)}),t.keys.forEach(s=>{this._cacheMap.delete(s)})}get parsers(){return this._parsers}},ye=new Wu});function Lg(i={}){let e=i&&i.resource,t=e?i.resource:i,r=e?i:{resource:i};for(let s=0;s<Hu.length;s++){let n=Hu[s];if(n.test(t))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function Vg(i={},e=!1){let t=i&&i.resource,r=t?i.resource:i,s=t?i:{resource:i};if(!e&&ye.has(r))return ye.get(r);let n=new O({source:Lg(s)});return n.on("destroy",()=>{ye.has(r)&&ye.remove(r)}),e||ye.set(r,n),n}function Wg(i,e=!1){return typeof i=="string"?ye.get(i):i instanceof we?new O({source:i}):Vg(i,e)}var Hu,ju=b(()=>{tn();G();qt();Te();Hu=[];L.handleByList(A.TextureSource,Hu);O.from=Wg;we.from=Lg});var Ba=b(()=>{G();Bg();Fg();Dg();fu();Rg();Ia();Ng();ju();L.add(Zs,Qs,Js,Gg,Pt,en,qr)});var rt,rn=b(()=>{"use strict";rt=class{constructor(e){this.resources=Object.create(null),this._dirty=!0;let t=0;for(let r in e){let s=e[r];this.setResource(s,t++)}this._updateKey()}_updateKey(){if(!this._dirty)return;this._dirty=!1;let e=[],t=0;for(let r in this.resources)e[t++]=this.resources[r]._resourceId;this._key=e.join("|")}setResource(e,t){let r=this.resources[t];e!==r&&(r&&e.off?.("change",this.onResourceChange,this),e.on?.("change",this.onResourceChange,this),this.resources[t]=e,this._dirty=!0)}getResource(e){return this.resources[e]}_touch(e){let t=this.resources;for(let r in t)t[r]._touched=e}destroy(){let e=this.resources;for(let t in e)e[t].off?.("change",this.onResourceChange,this);this.resources=null}onResourceChange(e){if(this._dirty=!0,e.destroyed){let t=this.resources;for(let r in t)t[r]===e&&(t[r]=null)}else this._updateKey()}}});function jg(i,e,t){let r=2166136261;for(let s=0;s<e;s++)r^=i[s].uid,r=Math.imul(r,16777619),r>>>=0;return Hg[r]||BS(i,e,r,t)}function BS(i,e,t,r){let s={},n=0;for(let a=0;a<r;a++){let c=a<e?i[a]:O.EMPTY.source;s[n++]=c.source,s[n++]=c.style}let o=new rt(s);return Hg[t]=o,o}var Hg,$g=b(()=>{rn();Te();Hg={}});var Ct,$u=b(()=>{"use strict";Ct=class{constructor(e){typeof e=="number"?this.rawBinaryData=new ArrayBuffer(e):e instanceof Uint8Array?this.rawBinaryData=e.buffer:this.rawBinaryData=e,this.uint32View=new Uint32Array(this.rawBinaryData),this.float32View=new Float32Array(this.rawBinaryData),this.size=this.rawBinaryData.byteLength}get int8View(){return this._int8View||(this._int8View=new Int8Array(this.rawBinaryData)),this._int8View}get uint8View(){return this._uint8View||(this._uint8View=new Uint8Array(this.rawBinaryData)),this._uint8View}get int16View(){return this._int16View||(this._int16View=new Int16Array(this.rawBinaryData)),this._int16View}get int32View(){return this._int32View||(this._int32View=new Int32Array(this.rawBinaryData)),this._int32View}get float64View(){return this._float64Array||(this._float64Array=new Float64Array(this.rawBinaryData)),this._float64Array}get bigUint64View(){return this._bigUint64Array||(this._bigUint64Array=new BigUint64Array(this.rawBinaryData)),this._bigUint64Array}view(e){return this[`${e}View`]}destroy(){this.rawBinaryData=null,this._int8View=null,this._uint8View=null,this._int16View=null,this.uint16View=null,this._int32View=null,this.uint32View=null,this.float32View=null}static sizeOf(e){switch(e){case"int8":case"uint8":return 1;case"int16":case"uint16":return 2;case"int32":case"uint32":case"float32":return 4;default:throw new Error(`${e} isn't a valid view type`)}}}});function qu(i,e){let t=i.byteLength/8|0,r=new Float64Array(i,0,t);new Float64Array(e,0,t).set(r);let n=i.byteLength-t*8;if(n>0){let o=new Uint8Array(i,t*8,n);new Uint8Array(e,t*8,n).set(o)}}var qg=b(()=>{"use strict"});var Xg,Yg=b(()=>{"use strict";Xg={normal:"normal-npm",add:"add-npm",screen:"screen-npm"}});function Kt(i,e){return e.alphaMode==="no-premultiply-alpha"&&Xg[i]||i}var sn=b(()=>{Yg()});function Da(){return(!Fa||Fa?.isContextLost())&&(Fa=xe.get().createCanvas().getContext("webgl",{})),Fa}var Fa,Xu=b(()=>{vt()});function DS(i){let e="";for(let t=0;t<i;++t)t>0&&(e+=`
|
|
20
|
+
else `),t<i-1&&(e+=`if(test == ${t}.0){}`);return e}function Kg(i,e){if(i===0)throw new Error("Invalid value of `0` passed to `checkMaxIfStatementsInShader`");let t=e.createShader(e.FRAGMENT_SHADER);try{for(;;){let r=FS.replace(/%forloop%/gi,DS(i));if(e.shaderSource(t,r),e.compileShader(t),!e.getShaderParameter(t,e.COMPILE_STATUS))i=i/2|0;else break}}finally{e.deleteShader(t)}return i}var FS,Zg=b(()=>{"use strict";FS=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
|
|
21
|
+
`)});function Qg(){if(Ri)return Ri;let i=Da();return Ri=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Ri=Kg(Ri,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Ri}var Ri,Jg=b(()=>{Xu();Zg();Ri=null});var Ra,ex=b(()=>{"use strict";Ra=class{constructor(){this.ids=Object.create(null),this.textures=[],this.count=0}clear(){for(let e=0;e<this.count;e++){let t=this.textures[e];this.textures[e]=null,this.ids[t.uid]=null}this.count=0}}});function tx(){return Ku>0?ix[--Ku]:new Yu}function rx(i){ix[Ku++]=i}var Yu,ix,Ku,nn,sx,ox,ax=b(()=>{Ue();$u();pe();qg();sn();Jg();ex();Yu=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new Ra,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null}},ix=[],Ku=0;nn=0,sx=class nx{constructor(e){this.uid=K("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...nx.defaultOptions,...e},e.maxTextures||(N("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=Qg());let{maxTextures:t,attributesInitialSize:r,indicesInitialSize:s}=e;this.attributeBuffer=new Ct(r*4),this.indexBuffer=new Uint16Array(s),this.maxTextures=t}begin(){this.elementSize=0,this.elementStart=0,this.indexSize=0,this.attributeSize=0;for(let e=0;e<this.batchIndex;e++)rx(this.batches[e]);this.batchIndex=0,this._batchIndexStart=0,this._batchIndexSize=0,this.dirty=!0}add(e){this._elements[this.elementSize++]=e,e._indexStart=this.indexSize,e._attributeStart=this.attributeSize,e._batcher=this,this.indexSize+=e.indexSize,this.attributeSize+=e.attributeSize*this.vertexSize}checkAndUpdateTexture(e,t){let r=e._batch.textures.ids[t._source.uid];return!r&&r!==0?!1:(e._textureId=r,e.texture=t,!0)}updateElement(e){this.dirty=!0;let t=this.attributeBuffer;e.packAsQuad?this.packQuadAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId):this.packAttributes(e,t.float32View,t.uint32View,e._attributeStart,e._textureId)}break(e){let t=this._elements;if(!t[this.elementStart])return;let r=tx(),s=r.textures;s.clear();let n=t[this.elementStart],o=Kt(n.blendMode,n.texture._source),a=n.topology;this.attributeSize*4>this.attributeBuffer.size&&this._resizeAttributeBuffer(this.attributeSize*4),this.indexSize>this.indexBuffer.length&&this._resizeIndexBuffer(this.indexSize);let c=this.attributeBuffer.float32View,l=this.attributeBuffer.uint32View,u=this.indexBuffer,h=this._batchIndexSize,d=this._batchIndexStart,f="startBatch",m=this.maxTextures;for(let p=this.elementStart;p<this.elementSize;++p){let g=t[p];t[p]=null;let x=g.texture._source,w=Kt(g.blendMode,x),_=o!==w||a!==g.topology;if(x._batchTick===nn&&!_){g._textureId=x._textureBindLocation,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,l,g._attributeStart,g._textureId),this.packQuadIndex(u,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,l,g._attributeStart,g._textureId),this.packIndex(g,u,g._indexStart,g._attributeStart/this.vertexSize)),g._batch=r;continue}x._batchTick=nn,(s.count>=m||_)&&(this._finishBatch(r,d,h-d,s,o,a,e,f),f="renderBatch",d=h,o=w,a=g.topology,r=tx(),s=r.textures,s.clear(),++nn),g._textureId=x._textureBindLocation=s.count,s.ids[x.uid]=s.count,s.textures[s.count++]=x,g._batch=r,h+=g.indexSize,g.packAsQuad?(this.packQuadAttributes(g,c,l,g._attributeStart,g._textureId),this.packQuadIndex(u,g._indexStart,g._attributeStart/this.vertexSize)):(this.packAttributes(g,c,l,g._attributeStart,g._textureId),this.packIndex(g,u,g._indexStart,g._attributeStart/this.vertexSize))}s.count>0&&(this._finishBatch(r,d,h-d,s,o,a,e,f),d=h,++nn),this.elementStart=this.elementSize,this._batchIndexStart=d,this._batchIndexSize=h}_finishBatch(e,t,r,s,n,o,a,c){e.gpuBindGroup=null,e.bindGroup=null,e.action=c,e.batcher=this,e.textures=s,e.blendMode=n,e.topology=o,e.start=t,e.size=r,++nn,this.batches[this.batchIndex++]=e,a.add(e)}finish(e){this.break(e)}ensureAttributeBuffer(e){e*4<=this.attributeBuffer.size||this._resizeAttributeBuffer(e*4)}ensureIndexBuffer(e){e<=this.indexBuffer.length||this._resizeIndexBuffer(e)}_resizeAttributeBuffer(e){let t=Math.max(e,this.attributeBuffer.size*2),r=new Ct(t);qu(this.attributeBuffer.rawBinaryData,r.rawBinaryData),this.attributeBuffer=r}_resizeIndexBuffer(e){let t=this.indexBuffer,r=Math.max(e,t.length*1.5);r+=r%2;let s=r>65535?new Uint32Array(r):new Uint16Array(r);if(s.BYTES_PER_ELEMENT!==t.BYTES_PER_ELEMENT)for(let n=0;n<t.length;n++)s[n]=t[n];else qu(t.buffer,s.buffer);this.indexBuffer=s}packQuadIndex(e,t,r){e[t]=r+0,e[t+1]=r+1,e[t+2]=r+2,e[t+3]=r+0,e[t+4]=r+2,e[t+5]=r+3}packIndex(e,t,r,s){let n=e.indices,o=e.indexSize,a=e.indexOffset,c=e.attributeOffset;for(let l=0;l<o;l++)t[r++]=s+n[l+a]-c}destroy(){for(let e=0;e<this.batches.length;e++)rx(this.batches[e]);this.batches=null;for(let e=0;e<this._elements.length;e++)this._elements[e]._batch=null;this._elements=null,this.indexBuffer=null,this.attributeBuffer.destroy(),this.attributeBuffer=null}};sx.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};ox=sx});var ee,Oi=b(()=>{"use strict";ee=(i=>(i[i.MAP_READ=1]="MAP_READ",i[i.MAP_WRITE=2]="MAP_WRITE",i[i.COPY_SRC=4]="COPY_SRC",i[i.COPY_DST=8]="COPY_DST",i[i.INDEX=16]="INDEX",i[i.VERTEX=32]="VERTEX",i[i.UNIFORM=64]="UNIFORM",i[i.STORAGE=128]="STORAGE",i[i.INDIRECT=256]="INDIRECT",i[i.QUERY_RESOLVE=512]="QUERY_RESOLVE",i[i.STATIC=1024]="STATIC",i))(ee||{})});var ke,Ui=b(()=>{He();Ue();Oi();ke=class extends ie{constructor(e){let{data:t,size:r}=e,{usage:s,label:n,shrinkToFit:o}=e;super(),this.uid=K("buffer"),this._resourceType="buffer",this._resourceId=K("resource"),this._touched=0,this._updateID=1,this._dataInt32=null,this.shrinkToFit=!0,this.destroyed=!1,t instanceof Array&&(t=new Float32Array(t)),this._data=t,r??(r=t?.byteLength);let a=!!t;this.descriptor={size:r,usage:s,mappedAtCreation:a,label:n},this.shrinkToFit=o??!0}get data(){return this._data}set data(e){this.setDataWithSize(e,e.length,!0)}get dataInt32(){return this._dataInt32||(this._dataInt32=new Int32Array(this.data.buffer)),this._dataInt32}get static(){return!!(this.descriptor.usage&ee.STATIC)}set static(e){e?this.descriptor.usage|=ee.STATIC:this.descriptor.usage&=~ee.STATIC}setDataWithSize(e,t,r){if(this._updateID++,this._updateSize=t*e.BYTES_PER_ELEMENT,this._data===e){r&&this.emit("update",this);return}let s=this._data;if(this._data=e,this._dataInt32=null,!s||s.length!==e.length){!this.shrinkToFit&&s&&e.byteLength<s.byteLength?r&&this.emit("update",this):(this.descriptor.size=e.byteLength,this._resourceId=K("resource"),this.emit("change",this));return}r&&this.emit("update",this)}update(e){this._updateSize=e??this._updateSize,this._updateID++,this.emit("update",this)}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this._data=null,this.descriptor=null,this.removeAllListeners()}}});function Zu(i,e){if(!(i instanceof ke)){let t=e?ee.INDEX:ee.VERTEX;i instanceof Array&&(e?(i=new Uint32Array(i),t=ee.INDEX|ee.COPY_DST):(i=new Float32Array(i),t=ee.VERTEX|ee.COPY_DST)),i=new ke({data:i,label:e?"index-mesh-buffer":"vertex-mesh-buffer",usage:t})}return i}var cx=b(()=>{Ui();Oi()});function lx(i,e,t){let r=i.getAttribute(e);if(!r)return t.minX=0,t.minY=0,t.maxX=0,t.maxY=0,t;let s=r.buffer.data,n=1/0,o=1/0,a=-1/0,c=-1/0,l=s.BYTES_PER_ELEMENT,u=(r.offset||0)/l,h=(r.stride||8)/l;for(let d=u;d<s.length;d+=h){let f=s[d],m=s[d+1];f>a&&(a=f),m>c&&(c=m),f<n&&(n=f),m<o&&(o=m)}return t.minX=n,t.minY=o,t.maxX=a,t.maxY=c,t}var ux=b(()=>{"use strict"});function RS(i){return(i instanceof ke||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=Zu(i.buffer,!1),i}var Et,on=b(()=>{He();ft();Ue();Ui();cx();ux();Et=class extends ie{constructor(e={}){super(),this.uid=K("geometry"),this._layoutKey=0,this.instanceCount=1,this._bounds=new le,this._boundsDirty=!0;let{attributes:t,indexBuffer:r,topology:s}=e;if(this.buffers=[],this.attributes={},t)for(let n in t)this.addAttribute(n,t[n]);this.instanceCount=e.instanceCount??1,r&&this.addIndex(r),this.topology=s||"triangle-list"}onBufferUpdate(){this._boundsDirty=!0,this.emit("update",this)}getAttribute(e){return this.attributes[e]}getIndex(){return this.indexBuffer}getBuffer(e){return this.getAttribute(e).buffer}getSize(){for(let e in this.attributes){let t=this.attributes[e];return t.buffer.data.length/(t.stride/4||t.size)}return 0}addAttribute(e,t){let r=RS(t);this.buffers.indexOf(r.buffer)===-1&&(this.buffers.push(r.buffer),r.buffer.on("update",this.onBufferUpdate,this),r.buffer.on("change",this.onBufferUpdate,this)),this.attributes[e]=r}addIndex(e){this.indexBuffer=Zu(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,lx(this,"aPosition",this._bounds)):this._bounds}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners(),e&&this.buffers.forEach(t=>t.destroy()),this.attributes=null,this.buffers=null,this.indexBuffer=null,this._bounds=null}}});var OS,US,Oa,hx=b(()=>{Ui();Oi();on();OS=new Float32Array(1),US=new Uint32Array(1),Oa=class extends Et{constructor(){let t=new ke({data:OS,label:"attribute-batch-buffer",usage:ee.VERTEX|ee.COPY_DST,shrinkToFit:!1}),r=new ke({data:US,label:"index-batch-buffer",usage:ee.INDEX|ee.COPY_DST,shrinkToFit:!1}),s=24;super({attributes:{aPosition:{buffer:t,format:"float32x2",stride:s,offset:0},aUV:{buffer:t,format:"float32x2",stride:s,offset:8},aColor:{buffer:t,format:"unorm8x4",stride:s,offset:16},aTextureIdAndRound:{buffer:t,format:"uint16x2",stride:s,offset:20}},indexBuffer:r})}}});function zi(i,e){let t=dx[i];return t===void 0&&(Qu[e]===void 0&&(Qu[e]=1),dx[i]=t=Qu[e]++),t}var Qu,dx,Ua=b(()=>{"use strict";Qu=Object.create(null),dx=Object.create(null)});function fx(){if(!za){za="mediump";let i=Da();i&&i.getShaderPrecisionFormat&&(za=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump")}return za}var za,mx=b(()=>{Xu()});function px(i,e,t){return e?i:t?(i=i.replace("out vec4 finalColor;",""),`
|
|
22
|
+
|
|
23
|
+
#ifdef GL_ES // This checks if it is WebGL1
|
|
24
|
+
#define in varying
|
|
25
|
+
#define finalColor gl_FragColor
|
|
26
|
+
#define texture texture2D
|
|
27
|
+
#endif
|
|
28
|
+
${i}
|
|
29
|
+
`):`
|
|
30
|
+
|
|
31
|
+
#ifdef GL_ES // This checks if it is WebGL1
|
|
32
|
+
#define in attribute
|
|
33
|
+
#define out varying
|
|
34
|
+
#endif
|
|
35
|
+
${i}
|
|
36
|
+
`}var gx=b(()=>{"use strict"});function xx(i,e,t){let r=t?e.maxSupportedFragmentPrecision:e.maxSupportedVertexPrecision;if(i.substring(0,9)!=="precision"){let s=t?e.requestedFragmentPrecision:e.requestedVertexPrecision;return s==="highp"&&r!=="highp"&&(s="mediump"),`precision ${s} float;
|
|
37
|
+
${i}`}else if(r!=="highp"&&i.substring(0,15)==="precision highp")return i.replace("precision highp","precision mediump");return i}var yx=b(()=>{"use strict"});function bx(i,e){return e?`#version 300 es
|
|
38
|
+
${i}`:i}var wx=b(()=>{"use strict"});function _x(i,{name:e="pixi-program"},t=!0){e=e.replace(/\s+/g,"-"),e+=t?"-fragment":"-vertex";let r=t?zS:GS;return r[e]?(r[e]++,e+=`-${r[e]}`):r[e]=1,i.indexOf("#define SHADER_NAME")!==-1?i:`${`#define SHADER_NAME ${e}`}
|
|
39
|
+
${i}`}var zS,GS,Sx=b(()=>{"use strict";zS={},GS={}});function Tx(i,e){return e?i.replace("#version 300 es",""):i}var kx=b(()=>{"use strict"});var Ju,eh,vx,Gi,Ga=b(()=>{Ua();mx();gx();yx();wx();Sx();kx();Ju={stripVersion:Tx,ensurePrecision:xx,addProgramDefines:px,setProgramName:_x,insertVersion:bx},eh=Object.create(null),vx=class th{constructor(e){e={...th.defaultOptions,...e};let t=e.fragment.indexOf("#version 300 es")!==-1,r={stripVersion:t,ensurePrecision:{requestedFragmentPrecision:e.preferredFragmentPrecision,requestedVertexPrecision:e.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:fx()},setProgramName:{name:e.name},addProgramDefines:t,insertVersion:t},s=e.fragment,n=e.vertex;Object.keys(Ju).forEach(o=>{let a=r[o];s=Ju[o](s,a,!0),n=Ju[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=e.transformFeedbackVaryings,this._key=zi(`${this.vertex}:${this.fragment}`,"gl-program")}destroy(){this.fragment=null,this.vertex=null,this._attributeData=null,this._uniformData=null,this._uniformBlockData=null,this.transformFeedbackVaryings=null}static from(e){let t=`${e.vertex}:${e.fragment}`;return eh[t]||(eh[t]=new th(e)),eh[t]}};vx.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};Gi=vx});function Yr(i){return Px[i]??Px.float32}var Px,Na=b(()=>{"use strict";Px={uint8x2:{size:2,stride:2,normalised:!1},uint8x4:{size:4,stride:4,normalised:!1},sint8x2:{size:2,stride:2,normalised:!1},sint8x4:{size:4,stride:4,normalised:!1},unorm8x2:{size:2,stride:2,normalised:!0},unorm8x4:{size:4,stride:4,normalised:!0},snorm8x2:{size:2,stride:2,normalised:!0},snorm8x4:{size:4,stride:4,normalised:!0},uint16x2:{size:2,stride:4,normalised:!1},uint16x4:{size:4,stride:8,normalised:!1},sint16x2:{size:2,stride:4,normalised:!1},sint16x4:{size:4,stride:8,normalised:!1},unorm16x2:{size:2,stride:4,normalised:!0},unorm16x4:{size:4,stride:8,normalised:!0},snorm16x2:{size:2,stride:4,normalised:!0},snorm16x4:{size:4,stride:8,normalised:!0},float16x2:{size:2,stride:4,normalised:!1},float16x4:{size:4,stride:8,normalised:!1},float32:{size:1,stride:4,normalised:!1},float32x2:{size:2,stride:8,normalised:!1},float32x3:{size:3,stride:12,normalised:!1},float32x4:{size:4,stride:16,normalised:!1},uint32:{size:1,stride:4,normalised:!1},uint32x2:{size:2,stride:8,normalised:!1},uint32x3:{size:3,stride:12,normalised:!1},uint32x4:{size:4,stride:16,normalised:!1},sint32:{size:1,stride:4,normalised:!1},sint32x2:{size:2,stride:8,normalised:!1},sint32x3:{size:3,stride:12,normalised:!1},sint32x4:{size:4,stride:16,normalised:!1}}});function Cx({source:i,entryPoint:e}){let t={},r=i.indexOf(`fn ${e}`);if(r!==-1){let s=i.indexOf("->",r);if(s!==-1){let n=i.substring(r,s),o=/@location\((\d+)\)\s+([a-zA-Z0-9_]+)\s*:\s*([a-zA-Z0-9_<>]+)(?:,|\s|$)/g,a;for(;(a=o.exec(n))!==null;){let c=NS[a[3]]??"float32";t[a[2]]={location:parseInt(a[1],10),format:c,stride:Yr(c).stride,offset:0,instance:!1,start:0}}}}return t}var NS,Ex=b(()=>{Na();NS={f32:"float32","vec2<f32>":"float32x2","vec3<f32>":"float32x3","vec4<f32>":"float32x4",vec2f:"float32x2",vec3f:"float32x3",vec4f:"float32x4",i32:"sint32","vec2<i32>":"sint32x2","vec3<i32>":"sint32x3","vec4<i32>":"sint32x4",u32:"uint32","vec2<u32>":"uint32x2","vec3<u32>":"uint32x3","vec4<u32>":"uint32x4",bool:"uint32","vec2<bool>":"uint32x2","vec3<bool>":"uint32x3","vec4<bool>":"uint32x4"}});function La(i){let e=/(^|[^/])@(group|binding)\(\d+\)[^;]+;/g,t=/@group\((\d+)\)/,r=/@binding\((\d+)\)/,s=/var(<[^>]+>)? (\w+)/,n=/:\s*(\w+)/,o=/struct\s+(\w+)\s*{([^}]+)}/g,a=/(\w+)\s*:\s*([\w\<\>]+)/g,c=/struct\s+(\w+)/,l=i.match(e)?.map(h=>({group:parseInt(h.match(t)[1],10),binding:parseInt(h.match(r)[1],10),name:h.match(s)[2],isUniform:h.match(s)[1]==="<uniform>",type:h.match(n)[1]}));if(!l)return{groups:[],structs:[]};let u=i.match(o)?.map(h=>{let d=h.match(c)[1],f=h.match(a).reduce((m,p)=>{let[g,y]=p.split(":");return m[g.trim()]=y.trim(),m},{});return f?{name:d,members:f}:null}).filter(({name:h})=>l.some(d=>d.type===h))??[];return{groups:l,structs:u}}var Ax=b(()=>{"use strict"});var Ni,Ix=b(()=>{"use strict";Ni=(i=>(i[i.VERTEX=1]="VERTEX",i[i.FRAGMENT=2]="FRAGMENT",i[i.COMPUTE=4]="COMPUTE",i))(Ni||{})});function Mx({groups:i}){let e=[];for(let t=0;t<i.length;t++){let r=i[t];e[r.group]||(e[r.group]=[]),r.isUniform?e[r.group].push({binding:r.binding,visibility:Ni.VERTEX|Ni.FRAGMENT,buffer:{type:"uniform"}}):r.type==="sampler"?e[r.group].push({binding:r.binding,visibility:Ni.FRAGMENT,sampler:{type:"filtering"}}):r.type==="texture_2d"&&e[r.group].push({binding:r.binding,visibility:Ni.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}})}return e}var Bx=b(()=>{Ix()});function Fx({groups:i}){let e=[];for(let t=0;t<i.length;t++){let r=i[t];e[r.group]||(e[r.group]={}),e[r.group][r.name]=r.binding}return e}var Dx=b(()=>{"use strict"});function Rx(i,e){let t=new Set,r=new Set,s=[...i.structs,...e.structs].filter(o=>t.has(o.name)?!1:(t.add(o.name),!0)),n=[...i.groups,...e.groups].filter(o=>{let a=`${o.name}-${o.binding}`;return r.has(a)?!1:(r.add(a),!0)});return{structs:s,groups:n}}var Ox=b(()=>{"use strict"});var rh,fr,Va=b(()=>{Ua();Ex();Ax();Bx();Dx();Ox();rh=Object.create(null),fr=class i{constructor(e){this._layoutKey=0,this._attributeLocationsKey=0;let{fragment:t,vertex:r,layout:s,gpuLayout:n,name:o}=e;if(this.name=o,this.fragment=t,this.vertex=r,t.source===r.source){let a=La(t.source);this.structsAndGroups=a}else{let a=La(r.source),c=La(t.source);this.structsAndGroups=Rx(a,c)}this.layout=s??Fx(this.structsAndGroups),this.gpuLayout=n??Mx(this.structsAndGroups),this.autoAssignGlobalUniforms=this.layout[0]?.globalUniforms!==void 0,this.autoAssignLocalUniforms=this.layout[1]?.localUniforms!==void 0,this._generateProgramKey()}_generateProgramKey(){let{vertex:e,fragment:t}=this,r=e.source+t.source+e.entryPoint+t.entryPoint;this._layoutKey=zi(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=Cx(this.vertex)),this._attributeData}destroy(){this.gpuLayout=null,this.layout=null,this.structsAndGroups=null,this.fragment=null,this.vertex=null}static from(e){let t=`${e.vertex.source}:${e.fragment.source}:${e.fragment.entryPoint}:${e.vertex.entryPoint}`;return rh[t]||(rh[t]=new i(e)),rh[t]}}});function ih(i,e,t){if(i)for(let r in i){let s=r.toLocaleLowerCase(),n=e[s];if(n){let o=i[r];r==="header"&&(o=o.replace(/@in\s+[^;]+;\s*/g,"").replace(/@out\s+[^;]+;\s*/g,"")),t&&n.push(`//----${t}----//`),n.push(o)}else q(`${r} placement hook does not exist in shader`)}}var Ux=b(()=>{ze()});function sh(i){let e={};return(i.match(LS)?.map(r=>r.replace(/[{()}]/g,""))??[]).forEach(r=>{e[r]=[]}),e}var LS,zx=b(()=>{"use strict";LS=/\{\{(.*?)\}\}/g});function Gx(i,e){let t,r=/@in\s+([^;]+);/g;for(;(t=r.exec(i))!==null;)e.push(t[1])}function nh(i,e,t=!1){let r=[];Gx(e,r),i.forEach(a=>{a.header&&Gx(a.header,r)});let s=r;t&&s.sort();let n=s.map((a,c)=>` @location(${c}) ${a},`).join(`
|
|
40
|
+
`),o=e.replace(/@in\s+[^;]+;\s*/g,"");return o=o.replace("{{in}}",`
|
|
41
|
+
${n}
|
|
42
|
+
`),o}var Nx=b(()=>{"use strict"});function Lx(i,e){let t,r=/@out\s+([^;]+);/g;for(;(t=r.exec(i))!==null;)e.push(t[1])}function VS(i){let t=/\b(\w+)\s*:/g.exec(i);return t?t[1]:""}function WS(i){let e=/@.*?\s+/g;return i.replace(e,"")}function Vx(i,e){let t=[];Lx(e,t),i.forEach(c=>{c.header&&Lx(c.header,t)});let r=0,s=t.sort().map(c=>c.indexOf("builtin")>-1?c:`@location(${r++}) ${c}`).join(`,
|
|
43
|
+
`),n=t.sort().map(c=>` var ${WS(c)};`).join(`
|
|
44
|
+
`),o=`return VSOutput(
|
|
45
|
+
${t.sort().map(c=>` ${VS(c)}`).join(`,
|
|
46
|
+
`)});`,a=e.replace(/@out\s+[^;]+;\s*/g,"");return a=a.replace("{{struct}}",`
|
|
47
|
+
${s}
|
|
48
|
+
`),a=a.replace("{{start}}",`
|
|
49
|
+
${n}
|
|
50
|
+
`),a=a.replace("{{return}}",`
|
|
51
|
+
${o}
|
|
52
|
+
`),a}var Wx=b(()=>{"use strict"});function oh(i,e){let t=i;for(let r in e){let s=e[r];s.join(`
|
|
53
|
+
`).length?t=t.replace(`{{${r}}}`,`//-----${r} START-----//
|
|
54
|
+
${s.join(`
|
|
55
|
+
`)}
|
|
56
|
+
//----${r} FINISH----//`):t=t.replace(`{{${r}}}`,"")}return t}var Hx=b(()=>{"use strict"});function jx({template:i,bits:e}){let t=qx(i,e);if(mr[t])return mr[t];let{vertex:r,fragment:s}=jS(i,e);return mr[t]=Xx(r,s,e),mr[t]}function $x({template:i,bits:e}){let t=qx(i,e);return mr[t]||(mr[t]=Xx(i.vertex,i.fragment,e)),mr[t]}function jS(i,e){let t=e.map(o=>o.vertex).filter(o=>!!o),r=e.map(o=>o.fragment).filter(o=>!!o),s=nh(t,i.vertex,!0);s=Vx(t,s);let n=nh(r,i.fragment,!0);return{vertex:s,fragment:n}}function qx(i,e){return e.map(t=>(ah.has(t)||ah.set(t,HS++),ah.get(t))).sort((t,r)=>t-r).join("-")+i.vertex+i.fragment}function Xx(i,e,t){let r=sh(i),s=sh(e);return t.forEach(n=>{ih(n.vertex,r,n.name),ih(n.fragment,s,n.name)}),{vertex:oh(i,r),fragment:oh(e,s)}}var mr,ah,HS,Yx=b(()=>{Ux();zx();Nx();Wx();Hx();mr=Object.create(null),ah=new Map,HS=0});var Kx,Zx,Qx,Jx,ey=b(()=>{"use strict";Kx=`
|
|
57
|
+
@in aPosition: vec2<f32>;
|
|
58
|
+
@in aUV: vec2<f32>;
|
|
59
|
+
|
|
60
|
+
@out @builtin(position) vPosition: vec4<f32>;
|
|
61
|
+
@out vUV : vec2<f32>;
|
|
62
|
+
@out vColor : vec4<f32>;
|
|
63
|
+
|
|
64
|
+
{{header}}
|
|
65
|
+
|
|
66
|
+
struct VSOutput {
|
|
67
|
+
{{struct}}
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
@vertex
|
|
71
|
+
fn main( {{in}} ) -> VSOutput {
|
|
72
|
+
|
|
73
|
+
var worldTransformMatrix = globalUniforms.uWorldTransformMatrix;
|
|
74
|
+
var modelMatrix = mat3x3<f32>(
|
|
75
|
+
1.0, 0.0, 0.0,
|
|
76
|
+
0.0, 1.0, 0.0,
|
|
77
|
+
0.0, 0.0, 1.0
|
|
78
|
+
);
|
|
79
|
+
var position = aPosition;
|
|
80
|
+
var uv = aUV;
|
|
81
|
+
|
|
82
|
+
{{start}}
|
|
83
|
+
|
|
84
|
+
vColor = vec4<f32>(1., 1., 1., 1.);
|
|
85
|
+
|
|
86
|
+
{{main}}
|
|
87
|
+
|
|
88
|
+
vUV = uv;
|
|
89
|
+
|
|
90
|
+
var modelViewProjectionMatrix = globalUniforms.uProjectionMatrix * worldTransformMatrix * modelMatrix;
|
|
91
|
+
|
|
92
|
+
vPosition = vec4<f32>((modelViewProjectionMatrix * vec3<f32>(position, 1.0)).xy, 0.0, 1.0);
|
|
93
|
+
|
|
94
|
+
vColor *= globalUniforms.uWorldColorAlpha;
|
|
95
|
+
|
|
96
|
+
{{end}}
|
|
97
|
+
|
|
98
|
+
{{return}}
|
|
99
|
+
};
|
|
100
|
+
`,Zx=`
|
|
101
|
+
@in vUV : vec2<f32>;
|
|
102
|
+
@in vColor : vec4<f32>;
|
|
103
|
+
|
|
104
|
+
{{header}}
|
|
105
|
+
|
|
106
|
+
@fragment
|
|
107
|
+
fn main(
|
|
108
|
+
{{in}}
|
|
109
|
+
) -> @location(0) vec4<f32> {
|
|
110
|
+
|
|
111
|
+
{{start}}
|
|
112
|
+
|
|
113
|
+
var outColor:vec4<f32>;
|
|
114
|
+
|
|
115
|
+
{{main}}
|
|
116
|
+
|
|
117
|
+
var finalColor:vec4<f32> = outColor * vColor;
|
|
118
|
+
|
|
119
|
+
{{end}}
|
|
120
|
+
|
|
121
|
+
return finalColor;
|
|
122
|
+
};
|
|
123
|
+
`,Qx=`
|
|
124
|
+
in vec2 aPosition;
|
|
125
|
+
in vec2 aUV;
|
|
126
|
+
|
|
127
|
+
out vec4 vColor;
|
|
128
|
+
out vec2 vUV;
|
|
129
|
+
|
|
130
|
+
{{header}}
|
|
131
|
+
|
|
132
|
+
void main(void){
|
|
133
|
+
|
|
134
|
+
mat3 worldTransformMatrix = uWorldTransformMatrix;
|
|
135
|
+
mat3 modelMatrix = mat3(
|
|
136
|
+
1.0, 0.0, 0.0,
|
|
137
|
+
0.0, 1.0, 0.0,
|
|
138
|
+
0.0, 0.0, 1.0
|
|
139
|
+
);
|
|
140
|
+
vec2 position = aPosition;
|
|
141
|
+
vec2 uv = aUV;
|
|
142
|
+
|
|
143
|
+
{{start}}
|
|
144
|
+
|
|
145
|
+
vColor = vec4(1.);
|
|
146
|
+
|
|
147
|
+
{{main}}
|
|
148
|
+
|
|
149
|
+
vUV = uv;
|
|
150
|
+
|
|
151
|
+
mat3 modelViewProjectionMatrix = uProjectionMatrix * worldTransformMatrix * modelMatrix;
|
|
152
|
+
|
|
153
|
+
gl_Position = vec4((modelViewProjectionMatrix * vec3(position, 1.0)).xy, 0.0, 1.0);
|
|
154
|
+
|
|
155
|
+
vColor *= uWorldColorAlpha;
|
|
156
|
+
|
|
157
|
+
{{end}}
|
|
158
|
+
}
|
|
159
|
+
`,Jx=`
|
|
160
|
+
|
|
161
|
+
in vec4 vColor;
|
|
162
|
+
in vec2 vUV;
|
|
163
|
+
|
|
164
|
+
out vec4 finalColor;
|
|
165
|
+
|
|
166
|
+
{{header}}
|
|
167
|
+
|
|
168
|
+
void main(void) {
|
|
169
|
+
|
|
170
|
+
{{start}}
|
|
171
|
+
|
|
172
|
+
vec4 outColor;
|
|
173
|
+
|
|
174
|
+
{{main}}
|
|
175
|
+
|
|
176
|
+
finalColor = outColor * vColor;
|
|
177
|
+
|
|
178
|
+
{{end}}
|
|
179
|
+
}
|
|
180
|
+
`});var ty,ry,iy=b(()=>{"use strict";ty={name:"global-uniforms-bit",vertex:{header:`
|
|
181
|
+
struct GlobalUniforms {
|
|
182
|
+
uProjectionMatrix:mat3x3<f32>,
|
|
183
|
+
uWorldTransformMatrix:mat3x3<f32>,
|
|
184
|
+
uWorldColorAlpha: vec4<f32>,
|
|
185
|
+
uResolution: vec2<f32>,
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
@group(0) @binding(0) var<uniform> globalUniforms : GlobalUniforms;
|
|
189
|
+
`}},ry={name:"global-uniforms-bit",vertex:{header:`
|
|
190
|
+
uniform mat3 uProjectionMatrix;
|
|
191
|
+
uniform mat3 uWorldTransformMatrix;
|
|
192
|
+
uniform vec4 uWorldColorAlpha;
|
|
193
|
+
uniform vec2 uResolution;
|
|
194
|
+
`}}});function Li({bits:i,name:e}){let t=jx({template:{fragment:Zx,vertex:Kx},bits:[ty,...i]});return fr.from({name:e,vertex:{source:t.vertex,entryPoint:"main"},fragment:{source:t.fragment,entryPoint:"main"}})}function Vi({bits:i,name:e}){return new Gi({name:e,...$x({template:{vertex:Qx,fragment:Jx},bits:[ry,...i]})})}var Wa=b(()=>{Ga();Va();Yx();ey();iy()});var Ha,ja,ch=b(()=>{"use strict";Ha={name:"color-bit",vertex:{header:`
|
|
195
|
+
@in aColor: vec4<f32>;
|
|
196
|
+
`,main:`
|
|
197
|
+
vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
|
|
198
|
+
`}},ja={name:"color-bit",vertex:{header:`
|
|
199
|
+
in vec4 aColor;
|
|
200
|
+
`,main:`
|
|
201
|
+
vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
|
|
202
|
+
`}}});function $S(i){let e=[];if(i===1)e.push("@group(1) @binding(0) var textureSource1: texture_2d<f32>;"),e.push("@group(1) @binding(1) var textureSampler1: sampler;");else{let t=0;for(let r=0;r<i;r++)e.push(`@group(1) @binding(${t++}) var textureSource${r+1}: texture_2d<f32>;`),e.push(`@group(1) @binding(${t++}) var textureSampler${r+1}: sampler;`)}return e.join(`
|
|
203
|
+
`)}function qS(i){let e=[];if(i===1)e.push("outColor = textureSampleGrad(textureSource1, textureSampler1, vUV, uvDx, uvDy);");else{e.push("switch vTextureId {");for(let t=0;t<i;t++)t===i-1?e.push(" default:{"):e.push(` case ${t}:{`),e.push(` outColor = textureSampleGrad(textureSource${t+1}, textureSampler${t+1}, vUV, uvDx, uvDy);`),e.push(" break;}");e.push("}")}return e.join(`
|
|
204
|
+
`)}function $a(i){return lh[i]||(lh[i]={name:"texture-batch-bit",vertex:{header:`
|
|
205
|
+
@in aTextureIdAndRound: vec2<u32>;
|
|
206
|
+
@out @interpolate(flat) vTextureId : u32;
|
|
207
|
+
`,main:`
|
|
208
|
+
vTextureId = aTextureIdAndRound.y;
|
|
209
|
+
`,end:`
|
|
210
|
+
if(aTextureIdAndRound.x == 1)
|
|
211
|
+
{
|
|
212
|
+
vPosition = vec4<f32>(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
|
|
213
|
+
}
|
|
214
|
+
`},fragment:{header:`
|
|
215
|
+
@in @interpolate(flat) vTextureId: u32;
|
|
216
|
+
|
|
217
|
+
${$S(i)}
|
|
218
|
+
`,main:`
|
|
219
|
+
var uvDx = dpdx(vUV);
|
|
220
|
+
var uvDy = dpdy(vUV);
|
|
221
|
+
|
|
222
|
+
${qS(i)}
|
|
223
|
+
`}}),lh[i]}function XS(i){let e=[];for(let t=0;t<i;t++)t>0&&e.push("else"),t<i-1&&e.push(`if(vTextureId < ${t}.5)`),e.push("{"),e.push(` outColor = texture(uTextures[${t}], vUV);`),e.push("}");return e.join(`
|
|
224
|
+
`)}function qa(i){return uh[i]||(uh[i]={name:"texture-batch-bit",vertex:{header:`
|
|
225
|
+
in vec2 aTextureIdAndRound;
|
|
226
|
+
out float vTextureId;
|
|
227
|
+
|
|
228
|
+
`,main:`
|
|
229
|
+
vTextureId = aTextureIdAndRound.y;
|
|
230
|
+
`,end:`
|
|
231
|
+
if(aTextureIdAndRound.x == 1.)
|
|
232
|
+
{
|
|
233
|
+
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
234
|
+
}
|
|
235
|
+
`},fragment:{header:`
|
|
236
|
+
in float vTextureId;
|
|
237
|
+
|
|
238
|
+
uniform sampler2D uTextures[${i}];
|
|
239
|
+
|
|
240
|
+
`,main:`
|
|
241
|
+
|
|
242
|
+
${XS(i)}
|
|
243
|
+
`}}),uh[i]}var lh,uh,hh=b(()=>{"use strict";lh={};uh={}});var Wi,Hi,Xa=b(()=>{"use strict";Wi={name:"round-pixels-bit",vertex:{header:`
|
|
244
|
+
fn roundPixels(position: vec2<f32>, targetSize: vec2<f32>) -> vec2<f32>
|
|
245
|
+
{
|
|
246
|
+
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
247
|
+
}
|
|
248
|
+
`}},Hi={name:"round-pixels-bit",vertex:{header:`
|
|
249
|
+
vec2 roundPixels(vec2 position, vec2 targetSize)
|
|
250
|
+
{
|
|
251
|
+
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
252
|
+
}
|
|
253
|
+
`}}});var dh,sy,ny=b(()=>{"use strict";dh=["f32","i32","vec2<f32>","vec3<f32>","vec4<f32>","mat2x2<f32>","mat3x3<f32>","mat4x4<f32>","mat3x2<f32>","mat4x2<f32>","mat2x3<f32>","mat4x3<f32>","mat2x4<f32>","mat3x4<f32>","vec2<i32>","vec3<i32>","vec4<i32>"],sy=dh.reduce((i,e)=>(i[e]=!0,i),{})});function oy(i,e){switch(i){case"f32":return 0;case"vec2<f32>":return new Float32Array(2*e);case"vec3<f32>":return new Float32Array(3*e);case"vec4<f32>":return new Float32Array(4*e);case"mat2x2<f32>":return new Float32Array([1,0,0,1]);case"mat3x3<f32>":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4x4<f32>":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}var ay=b(()=>{"use strict"});var cy,Ne,pr=b(()=>{Ue();Ua();ny();ay();cy=class ly{constructor(e,t){this._touched=0,this.uid=K("uniform"),this._resourceType="uniformGroup",this._resourceId=K("resource"),this.isUniformGroup=!0,this._dirtyId=0,this.destroyed=!1,t={...ly.defaultOptions,...t},this.uniformStructures=e;let r={};for(let s in e){let n=e[s];if(n.name=s,n.size=n.size??1,!sy[n.type])throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${dh.join(", ")}`);n.value??(n.value=oy(n.type,n.size)),r[s]=n.value}this.uniforms=r,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=zi(Object.keys(r).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}update(){this._dirtyId++}};cy.defaultOptions={ubo:!1,isStatic:!1};Ne=cy});function Ya(i){let e=uy[i];if(e)return e;let t=new Int32Array(i);for(let r=0;r<i;r++)t[r]=r;return e=uy[i]=new Ne({uTextures:{value:t,type:"i32",size:i}},{isStatic:!0}),e}var uy,fh=b(()=>{pr();uy={}});var At,an=b(()=>{"use strict";At=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.BOTH=3]="BOTH",i))(At||{})});var It,cn=b(()=>{He();Ue();Ga();rn();Va();an();pr();It=class i extends ie{constructor(e){super(),this.uid=K("shader"),this._uniformBindMap=Object.create(null),this._ownedBindGroups=[];let{gpuProgram:t,glProgram:r,groups:s,resources:n,compatibleRenderers:o,groupMap:a}=e;this.gpuProgram=t,this.glProgram=r,o===void 0&&(o=0,t&&(o|=At.WEBGPU),r&&(o|=At.WEBGL)),this.compatibleRenderers=o;let c={};if(!n&&!s&&(n={}),n&&s)throw new Error("[Shader] Cannot have both resources and groups");if(!t&&s&&!a)throw new Error("[Shader] No group map or WebGPU shader provided - consider using resources instead.");if(!t&&s&&a)for(let l in a)for(let u in a[l]){let h=a[l][u];c[h]={group:l,binding:u,name:h}}else if(t&&s&&!a){let l=t.structsAndGroups.groups;a={},l.forEach(u=>{a[u.group]=a[u.group]||{},a[u.group][u.binding]=u.name,c[u.name]=u})}else if(n){s={},a={},t&&t.structsAndGroups.groups.forEach(h=>{a[h.group]=a[h.group]||{},a[h.group][h.binding]=h.name,c[h.name]=h});let l=0;for(let u in n)c[u]||(s[99]||(s[99]=new rt,this._ownedBindGroups.push(s[99])),c[u]={group:99,binding:l,name:u},a[99]=a[99]||{},a[99][l]=u,l++);for(let u in n){let h=u,d=n[u];!d.source&&!d._resourceType&&(d=new Ne(d));let f=c[h];f&&(s[f.group]||(s[f.group]=new rt,this._ownedBindGroups.push(s[f.group])),s[f.group].setResource(d,f.binding))}}this.groups=s,this._uniformBindMap=a,this.resources=this._buildResourceAccessor(s,c)}addResource(e,t,r){var s,n;(s=this._uniformBindMap)[t]||(s[t]={}),(n=this._uniformBindMap[t])[r]||(n[r]=e),this.groups[t]||(this.groups[t]=new rt,this._ownedBindGroups.push(this.groups[t]))}_buildResourceAccessor(e,t){let r={};for(let s in t){let n=t[s];Object.defineProperty(r,n.name,{get(){return e[n.group].getResource(n.binding)},set(o){e[n.group].setResource(o,n.binding)}})}return r}destroy(e=!1){this.emit("destroy",this),e&&(this.gpuProgram?.destroy(),this.glProgram?.destroy()),this.gpuProgram=null,this.glProgram=null,this.removeAllListeners(),this._uniformBindMap=null,this._ownedBindGroups.forEach(t=>{t.destroy()}),this._ownedBindGroups=null,this.resources=null,this.groups=null}static from(e){let{gpu:t,gl:r,...s}=e,n,o;return t&&(n=fr.from(t)),r&&(o=Gi.from(r)),new i({gpuProgram:n,glProgram:o,...s})}}});var Ka,hy=b(()=>{Wa();ch();hh();Xa();fh();cn();Ka=class extends It{constructor(e){let t=Vi({name:"batch",bits:[ja,qa(e),Hi]}),r=Li({name:"batch",bits:[Ha,$a(e),Wi]});super({glProgram:t,gpuProgram:r,resources:{batchSamplers:Ya(e)}})}}});var mh,dy,my,py=b(()=>{G();ax();hx();hy();mh=null,dy=class fy extends ox{constructor(e){super(e),this.geometry=new Oa,this.name=fy.extension.name,this.vertexSize=6,mh??(mh=new Ka(e.maxTextures)),this.shader=mh}packAttributes(e,t,r,s,n){let o=n<<16|e.roundPixels&65535,a=e.transform,c=a.a,l=a.b,u=a.c,h=a.d,d=a.tx,f=a.ty,{positions:m,uvs:p}=e,g=e.color,y=e.attributeOffset,x=y+e.attributeSize;for(let w=y;w<x;w++){let _=w*2,S=m[_],T=m[_+1];t[s++]=c*S+u*T+d,t[s++]=h*T+l*S+f,t[s++]=p[_],t[s++]=p[_+1],r[s++]=g,r[s++]=o}}packQuadAttributes(e,t,r,s,n){let o=e.texture,a=e.transform,c=a.a,l=a.b,u=a.c,h=a.d,d=a.tx,f=a.ty,m=e.bounds,p=m.maxX,g=m.minX,y=m.maxY,x=m.minY,w=o.uvs,_=e.color,S=n<<16|e.roundPixels&65535;t[s+0]=c*g+u*x+d,t[s+1]=h*x+l*g+f,t[s+2]=w.x0,t[s+3]=w.y0,r[s+4]=_,r[s+5]=S,t[s+6]=c*p+u*x+d,t[s+7]=h*x+l*p+f,t[s+8]=w.x1,t[s+9]=w.y1,r[s+10]=_,r[s+11]=S,t[s+12]=c*p+u*y+d,t[s+13]=h*y+l*p+f,t[s+14]=w.x2,t[s+15]=w.y2,r[s+16]=_,r[s+17]=S,t[s+18]=c*g+u*y+d,t[s+19]=h*y+l*g+f,t[s+20]=w.x3,t[s+21]=w.y3,r[s+22]=_,r[s+23]=S}};dy.extension={type:[A.Batcher],name:"default"};my=dy});function gy(i,e,t,r,s,n,o,a=null){let c=0;t*=e,s*=n;let l=a.a,u=a.b,h=a.c,d=a.d,f=a.tx,m=a.ty;for(;c<o;){let p=i[t],g=i[t+1];r[s]=l*p+h*g+f,r[s+1]=u*p+d*g+m,s+=n,t+=e,c++}}function xy(i,e,t,r){let s=0;for(e*=t;s<r;)i[e]=0,i[e+1]=0,e+=t,s++}var yy=b(()=>{"use strict"});function ph(i,e,t,r,s){let n=e.a,o=e.b,a=e.c,c=e.d,l=e.tx,u=e.ty;t||(t=0),r||(r=2),s||(s=i.length/r-t);let h=t*r;for(let d=0;d<s;d++){let f=i[h],m=i[h+1];i[h]=n*f+a*m+l,i[h+1]=o*f+c*m+u,h+=r}}var by=b(()=>{"use strict"});var YS,Kr,gh=b(()=>{re();su();YS=new F,Kr=class{constructor(){this.packAsQuad=!1,this.batcherName="default",this.topology="triangle-list",this.applyTransform=!0,this.roundPixels=0,this._batcher=null,this._batch=null}get uvs(){return this.geometryData.uvs}get positions(){return this.geometryData.vertices}get indices(){return this.geometryData.indices}get blendMode(){return this.renderable&&this.applyTransform?this.renderable.groupBlendMode:"normal"}get color(){let e=this.baseColor,t=e>>16|e&65280|(e&255)<<16,r=this.renderable;return r?da(t,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||YS}copyTo(e){e.indexOffset=this.indexOffset,e.indexSize=this.indexSize,e.attributeOffset=this.attributeOffset,e.attributeSize=this.attributeSize,e.baseColor=this.baseColor,e.alpha=this.alpha,e.texture=this.texture,e.geometryData=this.geometryData,e.topology=this.topology}reset(){this.applyTransform=!0,this.renderable=null,this.topology="triangle-list"}}});var ji,wy,_y,Sy=b(()=>{G();ji={extension:{type:A.ShapeBuilder,name:"circle"},build(i,e){let t,r,s,n,o,a;if(i.type==="circle"){let _=i;if(o=a=_.radius,o<=0)return!1;t=_.x,r=_.y,s=n=0}else if(i.type==="ellipse"){let _=i;if(o=_.halfWidth,a=_.halfHeight,o<=0||a<=0)return!1;t=_.x,r=_.y,s=n=0}else{let _=i,S=_.width/2,T=_.height/2;t=_.x+S,r=_.y+T,o=a=Math.max(0,Math.min(_.radius,Math.min(S,T))),s=S-o,n=T-a}if(s<0||n<0)return!1;let c=Math.ceil(2.3*Math.sqrt(o+a)),l=c*8+(s?4:0)+(n?4:0);if(l===0)return!1;if(c===0)return e[0]=e[6]=t+s,e[1]=e[3]=r+n,e[2]=e[4]=t-s,e[5]=e[7]=r-n,!0;let u=0,h=c*4+(s?2:0)+2,d=h,f=l,m=s+o,p=n,g=t+m,y=t-m,x=r+p;if(e[u++]=g,e[u++]=x,e[--h]=x,e[--h]=y,n){let _=r-p;e[d++]=y,e[d++]=_,e[--f]=_,e[--f]=g}for(let _=1;_<c;_++){let S=Math.PI/2*(_/c),T=s+Math.cos(S)*o,v=n+Math.sin(S)*a,M=t+T,P=t-T,C=r+v,E=r-v;e[u++]=M,e[u++]=C,e[--h]=C,e[--h]=P,e[d++]=P,e[d++]=E,e[--f]=E,e[--f]=M}m=s,p=n+a,g=t+m,y=t-m,x=r+p;let w=r-p;return e[u++]=g,e[u++]=x,e[--f]=w,e[--f]=g,s&&(e[u++]=y,e[u++]=x,e[--f]=w,e[--f]=y),!0},triangulate(i,e,t,r,s,n){if(i.length===0)return;let o=0,a=0;for(let u=0;u<i.length;u+=2)o+=i[u],a+=i[u+1];o/=i.length/2,a/=i.length/2;let c=r;e[c*t]=o,e[c*t+1]=a;let l=c++;for(let u=0;u<i.length;u+=2)e[c*t]=i[u],e[c*t+1]=i[u+1],u>0&&(s[n++]=c,s[n++]=l,s[n++]=c-1),c++;s[n++]=l+1,s[n++]=l,s[n++]=c-1}},wy={...ji,extension:{...ji.extension,name:"ellipse"}},_y={...ji,extension:{...ji.extension,name:"roundedRectangle"}}});function Ty(i){let e=i.length;if(e<6)return 1;let t=0;for(let r=0,s=i[e-2],n=i[e-1];r<e;r+=2){let o=i[r],a=i[r+1];t+=(o-s)*(a+n),s=o,n=a}return t<0?-1:1}var ky=b(()=>{"use strict"});function vy(i,e,t,r,s,n,o,a){let c=i-t*s,l=e-r*s,u=i+t*n,h=e+r*n,d,f;o?(d=r,f=-t):(d=-r,f=t);let m=c+d,p=l+f,g=u+d,y=h+f;return a.push(m,p),a.push(g,y),2}function Zr(i,e,t,r,s,n,o,a){let c=t-i,l=r-e,u=Math.atan2(c,l),h=Math.atan2(s-i,n-e);a&&u<h?u+=Math.PI*2:!a&&u>h&&(h+=Math.PI*2);let d=u,f=h-u,m=Math.abs(f),p=Math.sqrt(c*c+l*l),g=(15*m*Math.sqrt(p)/Math.PI>>0)+1,y=f/g;if(d+=y,a){o.push(i,e),o.push(t,r);for(let x=1,w=d;x<g;x++,w+=y)o.push(i,e),o.push(i+Math.sin(w)*p,e+Math.cos(w)*p);o.push(i,e),o.push(s,n)}else{o.push(t,r),o.push(i,e);for(let x=1,w=d;x<g;x++,w+=y)o.push(i+Math.sin(w)*p,e+Math.cos(w)*p),o.push(i,e);o.push(s,n),o.push(i,e)}return g*2}function Py(i,e,t,r,s,n){let o=1e-4;if(i.length===0)return;let a=e,c=a.alignment;if(e.alignment!==.5){let te=Ty(i);t&&(te*=-1),c=(c-.5)*te+.5}let l=new Y(i[0],i[1]),u=new Y(i[i.length-2],i[i.length-1]),h=r,d=Math.abs(l.x-u.x)<o&&Math.abs(l.y-u.y)<o;if(h){i=i.slice(),d&&(i.pop(),i.pop(),u.set(i[i.length-2],i[i.length-1]));let te=(l.x+u.x)*.5,er=(u.y+l.y)*.5;i.unshift(te,er),i.push(te,er)}let f=s,m=i.length/2,p=i.length,g=f.length/2,y=a.width/2,x=y*y,w=a.miterLimit*a.miterLimit,_=i[0],S=i[1],T=i[2],v=i[3],M=0,P=0,C=-(S-v),E=_-T,D=0,j=0,he=Math.sqrt(C*C+E*E);C/=he,E/=he,C*=y,E*=y;let ns=c,V=(1-ns)*2,H=ns*2;h||(a.cap==="round"?p+=Zr(_-C*(V-H)*.5,S-E*(V-H)*.5,_-C*V,S-E*V,_+C*H,S+E*H,f,!0)+2:a.cap==="square"&&(p+=vy(_,S,C,E,V,H,!0,f))),f.push(_-C*V,S-E*V),f.push(_+C*H,S+E*H);for(let te=1;te<m-1;++te){_=i[(te-1)*2],S=i[(te-1)*2+1],T=i[te*2],v=i[te*2+1],M=i[(te+1)*2],P=i[(te+1)*2+1],C=-(S-v),E=_-T,he=Math.sqrt(C*C+E*E),C/=he,E/=he,C*=y,E*=y,D=-(v-P),j=T-M,he=Math.sqrt(D*D+j*j),D/=he,j/=he,D*=y,j*=y;let er=T-_,os=S-v,as=T-M,cs=P-v,Fd=er*as+os*cs,Dn=os*as-cs*er,ls=Dn<0;if(Math.abs(Dn)<.001*Math.abs(Fd)){f.push(T-C*V,v-E*V),f.push(T+C*H,v+E*H),Fd>=0&&(a.join==="round"?p+=Zr(T,v,T-C*V,v-E*V,T-D*V,v-j*V,f,!1)+4:p+=2,f.push(T-D*H,v-j*H),f.push(T+D*V,v+j*V));continue}let Dd=(-C+_)*(-E+v)-(-C+T)*(-E+S),Rd=(-D+M)*(-j+v)-(-D+T)*(-j+P),Rn=(er*Rd-as*Dd)/Dn,On=(cs*Dd-os*Rd)/Dn,Hc=(Rn-T)*(Rn-T)+(On-v)*(On-v),br=T+(Rn-T)*V,wr=v+(On-v)*V,_r=T-(Rn-T)*H,Sr=v-(On-v)*H,Zw=Math.min(er*er+os*os,as*as+cs*cs),Od=ls?V:H,Qw=Zw+Od*Od*x;Hc<=Qw?a.join==="bevel"||Hc/x>w?(ls?(f.push(br,wr),f.push(T+C*H,v+E*H),f.push(br,wr),f.push(T+D*H,v+j*H)):(f.push(T-C*V,v-E*V),f.push(_r,Sr),f.push(T-D*V,v-j*V),f.push(_r,Sr)),p+=2):a.join==="round"?ls?(f.push(br,wr),f.push(T+C*H,v+E*H),p+=Zr(T,v,T+C*H,v+E*H,T+D*H,v+j*H,f,!0)+4,f.push(br,wr),f.push(T+D*H,v+j*H)):(f.push(T-C*V,v-E*V),f.push(_r,Sr),p+=Zr(T,v,T-C*V,v-E*V,T-D*V,v-j*V,f,!1)+4,f.push(T-D*V,v-j*V),f.push(_r,Sr)):(f.push(br,wr),f.push(_r,Sr)):(f.push(T-C*V,v-E*V),f.push(T+C*H,v+E*H),a.join==="round"?ls?p+=Zr(T,v,T+C*H,v+E*H,T+D*H,v+j*H,f,!0)+2:p+=Zr(T,v,T-C*V,v-E*V,T-D*V,v-j*V,f,!1)+2:a.join==="miter"&&Hc/x<=w&&(ls?(f.push(_r,Sr),f.push(_r,Sr)):(f.push(br,wr),f.push(br,wr)),p+=2),f.push(T-D*V,v-j*V),f.push(T+D*H,v+j*H),p+=2)}_=i[(m-2)*2],S=i[(m-2)*2+1],T=i[(m-1)*2],v=i[(m-1)*2+1],C=-(S-v),E=_-T,he=Math.sqrt(C*C+E*E),C/=he,E/=he,C*=y,E*=y,f.push(T-C*V,v-E*V),f.push(T+C*H,v+E*H),h||(a.cap==="round"?p+=Zr(T-C*(V-H)*.5,v-E*(V-H)*.5,T-C*V,v-E*V,T+C*H,v+E*H,f,!1)+2:a.cap==="square"&&(p+=vy(T,v,C,E,V,H,!1,f)));let Kw=1e-4*1e-4;for(let te=g;te<p+g-2;++te)_=f[te*2],S=f[te*2+1],T=f[(te+1)*2],v=f[(te+1)*2+1],M=f[(te+2)*2],P=f[(te+2)*2+1],!(Math.abs(_*(v-P)+T*(P-S)+M*(S-v))<Kw)&&n.push(te,te+1,te+2)}var Cy=b(()=>{St();ky()});function Ey(i,e,t,r){let s=1e-4;if(i.length===0)return;let n=i[0],o=i[1],a=i[i.length-2],c=i[i.length-1],l=e||Math.abs(n-a)<s&&Math.abs(o-c)<s,u=t,h=i.length/2,d=u.length/2;for(let f=0;f<h;f++)u.push(i[f*2]),u.push(i[f*2+1]);for(let f=0;f<h-1;f++)r.push(d+f,d+f+1);l&&r.push(d+h-1,d)}var Ay=b(()=>{});function Ja(i,e,t=2){let r=e&&e.length,s=r?e[0]*t:i.length,n=My(i,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a,c,l;if(r&&(n=rT(i,e,n,t)),i.length>80*t){a=1/0,c=1/0;let u=-1/0,h=-1/0;for(let d=t;d<s;d+=t){let f=i[d],m=i[d+1];f<a&&(a=f),m<c&&(c=m),f>u&&(u=f),m>h&&(h=m)}l=Math.max(u-a,h-c),l=l!==0?32767/l:0}return un(n,o,t,a,c,l,0),o}function My(i,e,t,r,s){let n;if(s===fT(i,e,t,r)>0)for(let o=e;o<t;o+=r)n=Iy(o/r|0,i[o],i[o+1],n);else for(let o=t-r;o>=e;o-=r)n=Iy(o/r|0,i[o],i[o+1],n);return n&&$i(n,n.next)&&(dn(n),n=n.next),n}function Qr(i,e){if(!i)return i;e||(e=i);let t=i,r;do if(r=!1,!t.steiner&&($i(t,t.next)||ue(t.prev,t,t.next)===0)){if(dn(t),t=e=t.prev,t===t.next)break;r=!0}else t=t.next;while(r||t!==e);return e}function un(i,e,t,r,s,n,o){if(!i)return;!o&&n&&aT(i,r,s,n);let a=i;for(;i.prev!==i.next;){let c=i.prev,l=i.next;if(n?JS(i,r,s,n):QS(i)){e.push(c.i,i.i,l.i),dn(i),i=l.next,a=l.next;continue}if(i=l,i===a){o?o===1?(i=eT(Qr(i),e),un(i,e,t,r,s,n,2)):o===2&&tT(i,e,t,r,s,n):un(Qr(i),e,t,r,s,n,1);break}}}function QS(i){let e=i.prev,t=i,r=i.next;if(ue(e,t,r)>=0)return!1;let s=e.x,n=t.x,o=r.x,a=e.y,c=t.y,l=r.y,u=Math.min(s,n,o),h=Math.min(a,c,l),d=Math.max(s,n,o),f=Math.max(a,c,l),m=r.next;for(;m!==e;){if(m.x>=u&&m.x<=d&&m.y>=h&&m.y<=f&&ln(s,a,n,c,o,l,m.x,m.y)&&ue(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function JS(i,e,t,r){let s=i.prev,n=i,o=i.next;if(ue(s,n,o)>=0)return!1;let a=s.x,c=n.x,l=o.x,u=s.y,h=n.y,d=o.y,f=Math.min(a,c,l),m=Math.min(u,h,d),p=Math.max(a,c,l),g=Math.max(u,h,d),y=xh(f,m,e,t,r),x=xh(p,g,e,t,r),w=i.prevZ,_=i.nextZ;for(;w&&w.z>=y&&_&&_.z<=x;){if(w.x>=f&&w.x<=p&&w.y>=m&&w.y<=g&&w!==s&&w!==o&&ln(a,u,c,h,l,d,w.x,w.y)&&ue(w.prev,w,w.next)>=0||(w=w.prevZ,_.x>=f&&_.x<=p&&_.y>=m&&_.y<=g&&_!==s&&_!==o&&ln(a,u,c,h,l,d,_.x,_.y)&&ue(_.prev,_,_.next)>=0))return!1;_=_.nextZ}for(;w&&w.z>=y;){if(w.x>=f&&w.x<=p&&w.y>=m&&w.y<=g&&w!==s&&w!==o&&ln(a,u,c,h,l,d,w.x,w.y)&&ue(w.prev,w,w.next)>=0)return!1;w=w.prevZ}for(;_&&_.z<=x;){if(_.x>=f&&_.x<=p&&_.y>=m&&_.y<=g&&_!==s&&_!==o&&ln(a,u,c,h,l,d,_.x,_.y)&&ue(_.prev,_,_.next)>=0)return!1;_=_.nextZ}return!0}function eT(i,e){let t=i;do{let r=t.prev,s=t.next.next;!$i(r,s)&&Fy(r,t,t.next,s)&&hn(r,s)&&hn(s,r)&&(e.push(r.i,t.i,s.i),dn(t),dn(t.next),t=i=s),t=t.next}while(t!==i);return Qr(t)}function tT(i,e,t,r,s,n){let o=i;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&uT(o,a)){let c=Dy(o,a);o=Qr(o,o.next),c=Qr(c,c.next),un(o,e,t,r,s,n,0),un(c,e,t,r,s,n,0);return}a=a.next}o=o.next}while(o!==i)}function rT(i,e,t,r){let s=[];for(let n=0,o=e.length;n<o;n++){let a=e[n]*r,c=n<o-1?e[n+1]*r:i.length,l=My(i,a,c,r,!1);l===l.next&&(l.steiner=!0),s.push(lT(l))}s.sort(iT);for(let n=0;n<s.length;n++)t=sT(s[n],t);return t}function iT(i,e){let t=i.x-e.x;if(t===0&&(t=i.y-e.y,t===0)){let r=(i.next.y-i.y)/(i.next.x-i.x),s=(e.next.y-e.y)/(e.next.x-e.x);t=r-s}return t}function sT(i,e){let t=nT(i,e);if(!t)return e;let r=Dy(t,i);return Qr(r,r.next),Qr(t,t.next)}function nT(i,e){let t=e,r=i.x,s=i.y,n=-1/0,o;if($i(i,t))return t;do{if($i(i,t.next))return t.next;if(s<=t.y&&s>=t.next.y&&t.next.y!==t.y){let h=t.x+(s-t.y)*(t.next.x-t.x)/(t.next.y-t.y);if(h<=r&&h>n&&(n=h,o=t.x<t.next.x?t:t.next,h===r))return o}t=t.next}while(t!==e);if(!o)return null;let a=o,c=o.x,l=o.y,u=1/0;t=o;do{if(r>=t.x&&t.x>=c&&r!==t.x&&By(s<l?r:n,s,c,l,s<l?n:r,s,t.x,t.y)){let h=Math.abs(s-t.y)/(r-t.x);hn(t,i)&&(h<u||h===u&&(t.x>o.x||t.x===o.x&&oT(o,t)))&&(o=t,u=h)}t=t.next}while(t!==a);return o}function oT(i,e){return ue(i.prev,i,e.prev)<0&&ue(e.next,i,i.next)<0}function aT(i,e,t,r){let s=i;do s.z===0&&(s.z=xh(s.x,s.y,e,t,r)),s.prevZ=s.prev,s.nextZ=s.next,s=s.next;while(s!==i);s.prevZ.nextZ=null,s.prevZ=null,cT(s)}function cT(i){let e,t=1;do{let r=i,s;i=null;let n=null;for(e=0;r;){e++;let o=r,a=0;for(let l=0;l<t&&(a++,o=o.nextZ,!!o);l++);let c=t;for(;a>0||c>0&&o;)a!==0&&(c===0||!o||r.z<=o.z)?(s=r,r=r.nextZ,a--):(s=o,o=o.nextZ,c--),n?n.nextZ=s:i=s,s.prevZ=n,n=s;r=o}n.nextZ=null,t*=2}while(e>1);return i}function xh(i,e,t,r,s){return i=(i-t)*s|0,e=(e-r)*s|0,i=(i|i<<8)&16711935,i=(i|i<<4)&252645135,i=(i|i<<2)&858993459,i=(i|i<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,i|e<<1}function lT(i){let e=i,t=i;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==i);return t}function By(i,e,t,r,s,n,o,a){return(s-o)*(e-a)>=(i-o)*(n-a)&&(i-o)*(r-a)>=(t-o)*(e-a)&&(t-o)*(n-a)>=(s-o)*(r-a)}function ln(i,e,t,r,s,n,o,a){return!(i===o&&e===a)&&By(i,e,t,r,s,n,o,a)}function uT(i,e){return i.next.i!==e.i&&i.prev.i!==e.i&&!hT(i,e)&&(hn(i,e)&&hn(e,i)&&dT(i,e)&&(ue(i.prev,i,e.prev)||ue(i,e.prev,e))||$i(i,e)&&ue(i.prev,i,i.next)>0&&ue(e.prev,e,e.next)>0)}function ue(i,e,t){return(e.y-i.y)*(t.x-e.x)-(e.x-i.x)*(t.y-e.y)}function $i(i,e){return i.x===e.x&&i.y===e.y}function Fy(i,e,t,r){let s=Qa(ue(i,e,t)),n=Qa(ue(i,e,r)),o=Qa(ue(t,r,i)),a=Qa(ue(t,r,e));return!!(s!==n&&o!==a||s===0&&Za(i,t,e)||n===0&&Za(i,r,e)||o===0&&Za(t,i,r)||a===0&&Za(t,e,r))}function Za(i,e,t){return e.x<=Math.max(i.x,t.x)&&e.x>=Math.min(i.x,t.x)&&e.y<=Math.max(i.y,t.y)&&e.y>=Math.min(i.y,t.y)}function Qa(i){return i>0?1:i<0?-1:0}function hT(i,e){let t=i;do{if(t.i!==i.i&&t.next.i!==i.i&&t.i!==e.i&&t.next.i!==e.i&&Fy(t,t.next,i,e))return!0;t=t.next}while(t!==i);return!1}function hn(i,e){return ue(i.prev,i,i.next)<0?ue(i,e,i.next)>=0&&ue(i,i.prev,e)>=0:ue(i,e,i.prev)<0||ue(i,i.next,e)<0}function dT(i,e){let t=i,r=!1,s=(i.x+e.x)/2,n=(i.y+e.y)/2;do t.y>n!=t.next.y>n&&t.next.y!==t.y&&s<(t.next.x-t.x)*(n-t.y)/(t.next.y-t.y)+t.x&&(r=!r),t=t.next;while(t!==i);return r}function Dy(i,e){let t=yh(i.i,i.x,i.y),r=yh(e.i,e.x,e.y),s=i.next,n=e.prev;return i.next=e,e.prev=i,t.next=s,s.prev=t,r.next=t,t.prev=r,n.next=r,r.prev=n,r}function Iy(i,e,t,r){let s=yh(i,e,t);return r?(s.next=r.next,s.prev=r,r.next.prev=s,r.next=s):(s.prev=s,s.next=s),s}function dn(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function yh(i,e,t){return{i,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function fT(i,e,t,r){let s=0;for(let n=e,o=t-r;n<t;n+=r)s+=(i[o]-i[n])*(i[n+1]+i[o+1]),o=n;return s}var Ry=b(()=>{});var Oy,Uy=b(()=>{Ry();He();Oy=Ja.default||Ja});function ec(i,e,t,r,s,n,o){let a=Oy(i,e,2);if(!a)return;for(let l=0;l<a.length;l+=3)n[o++]=a[l]+s,n[o++]=a[l+1]+s,n[o++]=a[l+2]+s;let c=s*r;for(let l=0;l<i.length;l+=2)t[c]=i[l],t[c+1]=i[l+1],c+=r}var bh=b(()=>{Uy()});var mT,zy,Gy=b(()=>{G();bh();mT=[],zy={extension:{type:A.ShapeBuilder,name:"polygon"},build(i,e){for(let t=0;t<i.points.length;t++)e[t]=i.points[t];return!0},triangulate(i,e,t,r,s,n){ec(i,mT,e,t,r,s,n)}}});var Ny,Ly=b(()=>{G();Ny={extension:{type:A.ShapeBuilder,name:"rectangle"},build(i,e){let t=i,r=t.x,s=t.y,n=t.width,o=t.height;return n>0&&o>0?(e[0]=r,e[1]=s,e[2]=r+n,e[3]=s,e[4]=r+n,e[5]=s+o,e[6]=r,e[7]=s+o,!0):!1},triangulate(i,e,t,r,s,n){let o=0;r*=t,e[r+o]=i[0],e[r+o+1]=i[1],o+=t,e[r+o]=i[2],e[r+o+1]=i[3],o+=t,e[r+o]=i[6],e[r+o+1]=i[7],o+=t,e[r+o]=i[4],e[r+o+1]=i[5],o+=t;let a=r/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2,s[n++]=a+1,s[n++]=a+3,s[n++]=a+2}}});var Vy,Wy=b(()=>{G();Vy={extension:{type:A.ShapeBuilder,name:"triangle"},build(i,e){return e[0]=i.x,e[1]=i.y,e[2]=i.x2,e[3]=i.y2,e[4]=i.x3,e[5]=i.y3,!0},triangulate(i,e,t,r,s,n){let o=0;r*=t,e[r+o]=i[0],e[r+o+1]=i[1],o+=t,e[r+o]=i[2],e[r+o+1]=i[3],o+=t,e[r+o]=i[4],e[r+o+1]=i[5];let a=r/t;s[n++]=a,s[n++]=a+1,s[n++]=a+2}}});function jy(i,e){for(let t=0;t<e.length;t++){let r=e[t];i.addColorStop(r.offset,r.color)}}function $y(i,e){let t=xe.get().createCanvas(i,e),r=t.getContext("2d");return{canvas:t,context:r}}function pT(i){let e=i[0]??{};return(typeof e=="number"||i[1])&&(N("8.5.2","use options object instead"),e={type:"linear",start:{x:i[0],y:i[1]},end:{x:i[2],y:i[3]},textureSpace:i[4],textureSize:i[5]??qe.defaultLinearOptions.textureSize}),e}var Hy,_h,qe,qi=b(()=>{je();vt();re();Ia();Te();Ue();pe();uu();Hy=[{offset:0,color:"white"},{offset:1,color:"black"}],_h=class wh{constructor(...e){this.uid=K("fillGradient"),this.type="linear",this.colorStops=[];let t=pT(e);t={...t.type==="radial"?wh.defaultRadialOptions:wh.defaultLinearOptions,...ma(t)},this._textureSize=t.textureSize,this._wrapMode=t.wrapMode,t.type==="radial"?(this.center=t.center,this.outerCenter=t.outerCenter??this.center,this.innerRadius=t.innerRadius,this.outerRadius=t.outerRadius,this.scale=t.scale,this.rotation=t.rotation):(this.start=t.start,this.end=t.end),this.textureSpace=t.textureSpace,this.type=t.type,t.colorStops.forEach(s=>{this.addColorStop(s.offset,s.color)})}addColorStop(e,t){return this.colorStops.push({offset:e,color:X.shared.setValue(t).toHexa()}),this}buildLinearGradient(){if(this.texture)return;let{x:e,y:t}=this.start,{x:r,y:s}=this.end,n=r-e,o=s-t,a=n<0||o<0;if(this._wrapMode==="clamp-to-edge"){if(n<0){let g=e;e=r,r=g,n*=-1}if(o<0){let g=t;t=s,s=g,o*=-1}}let c=this.colorStops.length?this.colorStops:Hy,l=this._textureSize,{canvas:u,context:h}=$y(l,1),d=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);jy(d,c),h.fillStyle=d,h.fillRect(0,0,l,1),this.texture=new O({source:new Pt({resource:u,addressMode:this._wrapMode})});let f=Math.sqrt(n*n+o*o),m=Math.atan2(o,n),p=new F;p.scale(f/l,1),p.rotate(m),p.translate(e,t),this.textureSpace==="local"&&p.scale(l,l),this.transform=p}buildGradient(){this.type==="linear"?this.buildLinearGradient():this.buildRadialGradient()}buildRadialGradient(){if(this.texture)return;let e=this.colorStops.length?this.colorStops:Hy,t=this._textureSize,{canvas:r,context:s}=$y(t,t),{x:n,y:o}=this.center,{x:a,y:c}=this.outerCenter,l=this.innerRadius,u=this.outerRadius,h=a-u,d=c-u,f=t/(u*2),m=(n-h)*f,p=(o-d)*f,g=s.createRadialGradient(m,p,l*f,(a-h)*f,(c-d)*f,u*f);jy(g,e),s.fillStyle=e[e.length-1].color,s.fillRect(0,0,t,t),s.fillStyle=g,s.translate(m,p),s.rotate(this.rotation),s.scale(1,this.scale),s.translate(-m,-p),s.fillRect(0,0,t,t),this.texture=new O({source:new Pt({resource:r,addressMode:this._wrapMode})});let y=new F;y.scale(1/f,1/f),y.translate(h,d),this.textureSpace==="local"&&y.scale(t,t),this.transform=y}get styleKey(){return this.uid}destroy(){this.texture?.destroy(!0),this.texture=null}};_h.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};_h.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};qe=_h});function qy(i,e,t,r){let s=e.matrix?i.copyFrom(e.matrix).invert():i.identity();if(e.textureSpace==="local"){let o=t.getBounds(xT);e.width&&o.pad(e.width);let{x:a,y:c}=o,l=1/o.width,u=1/o.height,h=-a*l,d=-c*u,f=s.a,m=s.b,p=s.c,g=s.d;s.a*=l,s.b*=l,s.c*=u,s.d*=u,s.tx=h*f+d*p+s.tx,s.ty=h*m+d*g+s.ty}else s.translate(e.texture.frame.x,e.texture.frame.y),s.scale(1/e.texture.source.width,1/e.texture.source.height);let n=e.texture.source.style;return!(e.fill instanceof qe)&&n.addressMode==="clamp-to-edge"&&(n.addressMode="repeat",n.update()),r&&s.append(gT.copyFrom(r).invert()),s}var gT,xT,Xy=b(()=>{re();$e();qi();gT=new F,xT=new Z});function Ky(i,e){let{geometryData:t,batches:r}=e;r.length=0,t.indices.length=0,t.vertices.length=0,t.uvs.length=0;for(let s=0;s<i.instructions.length;s++){let n=i.instructions[s];if(n.action==="texture")wT(n.data,r,t);else if(n.action==="fill"||n.action==="stroke"){let o=n.action==="stroke",a=n.data.path.shapePath,c=n.data.style,l=n.data.hole;o&&l&&Yy(l.shapePath,c,!0,r,t),l&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=l.shapePath.shapePrimitives),Yy(a,c,o,r,t)}}}function wT(i,e,t){let r=[],s=tc.rectangle,n=yT;n.x=i.dx,n.y=i.dy,n.width=i.dw,n.height=i.dh;let o=i.transform;if(!s.build(n,r))return;let{vertices:a,uvs:c,indices:l}=t,u=l.length,h=a.length/2;o&&ph(r,o),s.triangulate(r,a,2,h,l,u);let d=i.image,f=d.uvs;c.push(f.x0,f.y0,f.x1,f.y1,f.x3,f.y3,f.x2,f.y2);let m=be.get(Kr);m.indexOffset=u,m.indexSize=l.length-u,m.attributeOffset=h,m.attributeSize=a.length/2-h,m.baseColor=i.style,m.alpha=i.alpha,m.texture=d,m.geometryData=t,e.push(m)}function Yy(i,e,t,r,s){let{vertices:n,uvs:o,indices:a}=s;i.shapePrimitives.forEach(({shape:c,transform:l,holes:u})=>{let h=[],d=tc[c.type];if(!d.build(c,h))return;let f=a.length,m=n.length/2,p="triangle-list";if(l&&ph(h,l),t){let w=c.closePath??!0,_=e;_.pixelLine?(Ey(h,w,n,a),p="line-list"):Py(h,_,!1,w,n,a)}else if(u){let w=[],_=h.slice();_T(u).forEach(T=>{w.push(_.length/2),_.push(...T)}),ec(_,w,n,2,m,a,f)}else d.triangulate(h,n,2,m,a,f);let g=o.length/2,y=e.texture;if(y!==O.WHITE){let w=qy(bT,e,c,l);gy(n,2,m,o,g,2,n.length/2-m,w)}else xy(o,g,2,n.length/2-m);let x=be.get(Kr);x.indexOffset=f,x.indexSize=a.length-f,x.attributeOffset=m,x.attributeSize=n.length/2-m,x.baseColor=e.color,x.alpha=e.alpha,x.texture=y,x.geometryData=s,x.topology=p,r.push(x)})}function _T(i){let e=[];for(let t=0;t<i.length;t++){let r=i[t].shape,s=[];tc[r.type].build(r,s)&&e.push(s)}return e}var tc,yT,bT,Zy=b(()=>{G();re();$e();yy();by();Te();Lr();gh();Sy();Cy();Ay();Gy();Ly();Wy();Xy();bh();tc={};L.handleByMap(A.ShapeBuilder,tc);L.add(Ny,zy,Vy,ji,wy,_y);yT=new Z,bT=new F});var Sh,Th,vh,Xi,rc=b(()=>{G();$g();py();cu();pe();Lr();Zy();Sh=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}},Th=class{constructor(){this.instructions=new Ai}init(e){this.batcher=new my({maxTextures:e}),this.instructions.reset()}get geometry(){return N(jm,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},vh=class kh{constructor(e){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuContextHash"),e.renderableGC.addManagedHash(this,"_graphicsDataContextHash")}init(e){kh.defaultOptions.bezierSmoothness=e?.bezierSmoothness??kh.defaultOptions.bezierSmoothness}getContextRenderData(e){return this._graphicsDataContextHash[e.uid]||this._initContextRenderData(e)}updateGpuContext(e){let t=this._gpuContextHash[e.uid]||this._initContext(e);if(e.dirty){t?this._cleanGraphicsContextData(e):t=this._initContext(e),Ky(e,t);let r=e.batchMode;e.customShader||r==="no-batch"?t.isBatchable=!1:r==="auto"?t.isBatchable=t.geometryData.vertices.length<400:t.isBatchable=!0,e.dirty=!1}return t}getGpuContext(e){return this._gpuContextHash[e.uid]||this._initContext(e)}_initContextRenderData(e){let t=be.get(Th,{maxTextures:this._renderer.limits.maxBatchableTextures}),{batches:r,geometryData:s}=this._gpuContextHash[e.uid],n=s.vertices.length,o=s.indices.length;for(let u=0;u<r.length;u++)r[u].applyTransform=!1;let a=t.batcher;a.ensureAttributeBuffer(n),a.ensureIndexBuffer(o),a.begin();for(let u=0;u<r.length;u++){let h=r[u];a.add(h)}a.finish(t.instructions);let c=a.geometry;c.indexBuffer.setDataWithSize(a.indexBuffer,a.indexSize,!0),c.buffers[0].setDataWithSize(a.attributeBuffer.float32View,a.attributeSize,!0);let l=a.batches;for(let u=0;u<l.length;u++){let h=l[u];h.bindGroup=jg(h.textures.textures,h.textures.count,this._renderer.limits.maxBatchableTextures)}return this._graphicsDataContextHash[e.uid]=t,t}_initContext(e){let t=new Sh;return t.context=e,this._gpuContextHash[e.uid]=t,e.on("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]}onGraphicsContextDestroy(e){this._cleanGraphicsContextData(e),e.off("destroy",this.onGraphicsContextDestroy,this),this._gpuContextHash[e.uid]=null}_cleanGraphicsContextData(e){let t=this._gpuContextHash[e.uid];t.isBatchable||this._graphicsDataContextHash[e.uid]&&(be.return(this.getContextRenderData(e)),this._graphicsDataContextHash[e.uid]=null),t.batches&&t.batches.forEach(r=>{be.return(r)})}destroy(){for(let e in this._gpuContextHash)this._gpuContextHash[e]&&this.onGraphicsContextDestroy(this._gpuContextHash[e].context)}};vh.extension={type:[A.WebGLSystem,A.WebGPUSystem,A.CanvasSystem],name:"graphicsContext"};vh.defaultOptions={bezierSmoothness:.5};Xi=vh});var ST,Ph,Ch,Eh,Ah,Ih,Mh,Bh,Jr,ic=b(()=>{"use strict";ST={normal:0,add:1,multiply:2,screen:3,overlay:4,erase:5,"normal-npm":6,"add-npm":7,"screen-npm":8,min:9,max:10},Ph=0,Ch=1,Eh=2,Ah=3,Ih=4,Mh=5,Bh=class Qy{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<Ph)}set blend(e){!!(this.data&1<<Ph)!==e&&(this.data^=1<<Ph)}get offsets(){return!!(this.data&1<<Ch)}set offsets(e){!!(this.data&1<<Ch)!==e&&(this.data^=1<<Ch)}set cullMode(e){if(e==="none"){this.culling=!1;return}this.culling=!0,this.clockwiseFrontFace=e==="front"}get cullMode(){return this.culling?this.clockwiseFrontFace?"front":"back":"none"}get culling(){return!!(this.data&1<<Eh)}set culling(e){!!(this.data&1<<Eh)!==e&&(this.data^=1<<Eh)}get depthTest(){return!!(this.data&1<<Ah)}set depthTest(e){!!(this.data&1<<Ah)!==e&&(this.data^=1<<Ah)}get depthMask(){return!!(this.data&1<<Mh)}set depthMask(e){!!(this.data&1<<Mh)!==e&&(this.data^=1<<Mh)}get clockwiseFrontFace(){return!!(this.data&1<<Ih)}set clockwiseFrontFace(e){!!(this.data&1<<Ih)!==e&&(this.data^=1<<Ih)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=ST[e]||0}get polygonOffset(){return this._polygonOffset}set polygonOffset(e){this.offsets=!!e,this._polygonOffset=e}toString(){return`[pixi.js/core:State blendMode=${this.blendMode} clockwiseFrontFace=${this.clockwiseFrontFace} culling=${this.culling} depthMask=${this.depthMask} polygonOffset=${this.polygonOffset}]`}static for2d(){let e=new Qy;return e.depthTest=!1,e.blend=!0,e}};Bh.default2d=Bh.for2d();Jr=Bh});function gr(i,e,t){let r=(i>>24&255)/255;e[t++]=(i&255)/255*r,e[t++]=(i>>8&255)/255*r,e[t++]=(i>>16&255)/255*r,e[t++]=r}var fn=b(()=>{"use strict"});var Fh,mn,Jy=b(()=>{G();ic();Lr();fn();gh();Fh=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{be.return(e)}),this.batches.length=0}},mn=class{constructor(e,t){this.state=Jr.for2d(),this.renderer=e,this._adaptor=t,this.renderer.runners.contextChange.add(this)}contextChange(){this._adaptor.contextChange(this.renderer)}validateRenderable(e){let t=e.context,r=!!e._gpuData,s=this.renderer.graphicsContext.updateGpuContext(t);return!!(s.isBatchable||r!==s.isBatchable)}addRenderable(e,t){let r=this.renderer.graphicsContext.updateGpuContext(e.context);e.didViewUpdate&&this._rebuild(e),r.isBatchable?this._addToBatcher(e,t):(this.renderer.renderPipes.batch.break(t),t.add(e))}updateRenderable(e){let r=this._getGpuDataForRenderable(e).batches;for(let s=0;s<r.length;s++){let n=r[s];n._batcher.updateElement(n)}}execute(e){if(!e.isRenderable)return;let t=this.renderer,r=e.context;if(!t.graphicsContext.getGpuContext(r).batches.length)return;let n=r.customShader||this._adaptor.shader;this.state.blendMode=e.groupBlendMode;let o=n.resources.localUniforms.uniforms;o.uTransformMatrix=e.groupTransform,o.uRound=t._roundPixels|e._roundPixels,gr(e.groupColorAlpha,o.uColor,0),this._adaptor.execute(this,e)}_rebuild(e){let t=this._getGpuDataForRenderable(e),r=this.renderer.graphicsContext.updateGpuContext(e.context);t.destroy(),r.isBatchable&&this._updateBatchesForRenderable(e,t)}_addToBatcher(e,t){let r=this.renderer.renderPipes.batch,s=this._getGpuDataForRenderable(e).batches;for(let n=0;n<s.length;n++){let o=s[n];r.addToBatch(o,t)}}_getGpuDataForRenderable(e){return e._gpuData[this.renderer.uid]||this._initGpuDataForRenderable(e)}_initGpuDataForRenderable(e){let t=new Fh;return e._gpuData[this.renderer.uid]=t,t}_updateBatchesForRenderable(e,t){let r=e.context,s=this.renderer.graphicsContext.getGpuContext(r),n=this.renderer._roundPixels|e._roundPixels;t.batches=s.batches.map(o=>{let a=be.get(Kr);return o.copyTo(a),a.renderable=e,a.roundPixels=n,a})}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};mn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"graphics"}});var Dh=b(()=>{G();rc();Jy();L.add(mn);L.add(Xi)});var xr,sc=b(()=>{"use strict";xr=class{constructor(){this.batcherName="default",this.packAsQuad=!1,this.indexOffset=0,this.attributeOffset=0,this.roundPixels=0,this._batcher=null,this._batch=null,this._textureMatrixUpdateId=-1,this._uvUpdateId=-1}get blendMode(){return this.renderable.groupBlendMode}get topology(){return this._topology||this.geometry.topology}set topology(e){this._topology=e}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.geometry=null,this._uvUpdateId=-1,this._textureMatrixUpdateId=-1}setTexture(e){this.texture!==e&&(this.texture=e,this._textureMatrixUpdateId=-1)}get uvs(){let t=this.geometry.getBuffer("aUV"),r=t.data,s=r,n=this.texture.textureMatrix;return n.isSimple||(s=this._transformedUvs,(this._textureMatrixUpdateId!==n._updateID||this._uvUpdateId!==t._updateID)&&((!s||s.length<r.length)&&(s=this._transformedUvs=new Float32Array(r.length)),this._textureMatrixUpdateId=n._updateID,this._uvUpdateId=t._updateID,n.multiplyUvs(r,s))),s}get positions(){return this.geometry.positions}get indices(){return this.geometry.indices}get color(){return this.renderable.groupColorAlpha}get groupTransform(){return this.renderable.groupTransform}get attributeSize(){return this.geometry.positions.length/2}get indexSize(){return this.geometry.indices.length}}});var nc,pn,eb=b(()=>{G();re();rn();pr();sn();fn();sc();nc=class{destroy(){}},pn=class{constructor(e,t){this.localUniforms=new Ne({uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),this.localUniformsBindGroup=new rt({0:this.localUniforms}),this.renderer=e,this._adaptor=t,this._adaptor.init()}validateRenderable(e){let t=this._getMeshData(e),r=t.batched,s=e.batched;if(t.batched=s,r!==s)return!0;if(s){let n=e._geometry;if(n.indices.length!==t.indexSize||n.positions.length!==t.vertexSize)return t.indexSize=n.indices.length,t.vertexSize=n.positions.length,!0;let o=this._getBatchableMesh(e);return o.texture.uid!==e._texture.uid&&(o._textureMatrixUpdateId=-1),!o._batcher.checkAndUpdateTexture(o,e._texture)}return!1}addRenderable(e,t){let r=this.renderer.renderPipes.batch,{batched:s}=this._getMeshData(e);if(s){let n=this._getBatchableMesh(e);n.setTexture(e._texture),n.geometry=e._geometry,r.addToBatch(n,t)}else r.break(t),t.add(e)}updateRenderable(e){if(e.batched){let t=this._getBatchableMesh(e);t.setTexture(e._texture),t.geometry=e._geometry,t._batcher.updateElement(t)}}execute(e){if(!e.isRenderable)return;e.state.blendMode=Kt(e.groupBlendMode,e.texture._source);let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),gr(e.groupColorAlpha,t.uniforms.uColor,0),this._adaptor.execute(this,e)}_getMeshData(e){var t,r;return(t=e._gpuData)[r=this.renderer.uid]||(t[r]=new nc),e._gpuData[this.renderer.uid].meshData||this._initMeshData(e)}_initMeshData(e){return e._gpuData[this.renderer.uid].meshData={batched:e.batched,indexSize:e._geometry.indices?.length,vertexSize:e._geometry.positions?.length},e._gpuData[this.renderer.uid].meshData}_getBatchableMesh(e){var t,r;return(t=e._gpuData)[r=this.renderer.uid]||(t[r]=new nc),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new xr;return t.renderable=e,t.setTexture(e._texture),t.transform=e.groupTransform,t.roundPixels=this.renderer._roundPixels|e._roundPixels,e._gpuData[this.renderer.uid].batchableMesh=t,t}destroy(){this.localUniforms=null,this.localUniformsBindGroup=null,this._adaptor.destroy(),this._adaptor=null,this.renderer=null}};pn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"mesh"}});var Rh=b(()=>{G();eb();L.add(pn)});var oc,tb=b(()=>{"use strict";oc=class{execute(e,t){let r=e.state,s=e.renderer,n=t.shader||e.defaultShader;n.resources.uTexture=t.texture._source,n.resources.uniforms=e.localUniforms;let o=s.gl,a=e.getBuffers(t);s.shader.bind(n),s.state.set(r),s.geometry.bind(a.geometry,n.glProgram);let l=a.geometry.indexBuffer.data.BYTES_PER_ELEMENT===2?o.UNSIGNED_SHORT:o.UNSIGNED_INT;o.drawElements(o.TRIANGLES,t.particleChildren.length*6,l,0)}}});function Oh(i,e=null){let t=i*6;if(t>65535?e||(e=new Uint32Array(t)):e||(e=new Uint16Array(t)),e.length!==t)throw new Error(`Out buffer length is incorrect, got ${e.length} and expected ${t}`);for(let r=0,s=0;r<t;r+=6,s+=4)e[r+0]=s+0,e[r+1]=s+1,e[r+2]=s+2,e[r+3]=s+0,e[r+4]=s+2,e[r+5]=s+3;return e}var rb=b(()=>{"use strict"});function sb(i){return{dynamicUpdate:ib(i,!0),staticUpdate:ib(i,!1)}}function ib(i,e){let t=[];t.push(`
|
|
254
|
+
|
|
255
|
+
var index = 0;
|
|
256
|
+
|
|
257
|
+
for (let i = 0; i < ps.length; ++i)
|
|
258
|
+
{
|
|
259
|
+
const p = ps[i];
|
|
260
|
+
|
|
261
|
+
`);let r=0;for(let n in i){let o=i[n];if(e!==o.dynamic)continue;t.push(`offset = index + ${r}`),t.push(o.code);let a=Yr(o.format);r+=a.stride/4}t.push(`
|
|
262
|
+
index += stride * 4;
|
|
263
|
+
}
|
|
264
|
+
`),t.unshift(`
|
|
265
|
+
var stride = ${r};
|
|
266
|
+
`);let s=t.join(`
|
|
267
|
+
`);return new Function("ps","f32v","u32v",s)}var nb=b(()=>{Na()});function TT(i){let e=[];for(let t in i){let r=i[t];e.push(t,r.code,r.dynamic?"d":"s")}return e.join("_")}var ac,ob=b(()=>{Ui();Oi();on();Na();$u();rb();nb();ac=class{constructor(e){this._size=0,this._generateParticleUpdateCache={};let t=this._size=e.size??1e3,r=e.properties,s=0,n=0;for(let u in r){let h=r[u],d=Yr(h.format);h.dynamic?n+=d.stride:s+=d.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new Ct(t*4*s),this.dynamicAttributeBuffer=new Ct(t*4*n),this.indexBuffer=Oh(t);let o=new Et,a=0,c=0;this._staticBuffer=new ke({data:new Float32Array(1),label:"static-particle-buffer",shrinkToFit:!1,usage:ee.VERTEX|ee.COPY_DST}),this._dynamicBuffer=new ke({data:new Float32Array(1),label:"dynamic-particle-buffer",shrinkToFit:!1,usage:ee.VERTEX|ee.COPY_DST});for(let u in r){let h=r[u],d=Yr(h.format);h.dynamic?(o.addAttribute(h.attributeName,{buffer:this._dynamicBuffer,stride:this._dynamicStride*4,offset:a*4,format:h.format}),a+=d.size):(o.addAttribute(h.attributeName,{buffer:this._staticBuffer,stride:this._staticStride*4,offset:c*4,format:h.format}),c+=d.size)}o.addIndex(this.indexBuffer);let l=this.getParticleUpdate(r);this._dynamicUpload=l.dynamicUpdate,this._staticUpload=l.staticUpdate,this.geometry=o}getParticleUpdate(e){let t=TT(e);return this._generateParticleUpdateCache[t]?this._generateParticleUpdateCache[t]:(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e),this._generateParticleUpdateCache[t])}generateParticleUpdate(e){return sb(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,this._size*1.5|0),this.staticAttributeBuffer=new Ct(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new Ct(this._size*this._dynamicStride*4*4),this.indexBuffer=Oh(this._size),this.geometry.indexBuffer.setDataWithSize(this.indexBuffer,this.indexBuffer.byteLength,!0));let r=this.dynamicAttributeBuffer;if(this._dynamicUpload(e,r.float32View,r.uint32View),this._dynamicBuffer.setDataWithSize(this.dynamicAttributeBuffer.float32View,e.length*this._dynamicStride*4,!0),t){let s=this.staticAttributeBuffer;this._staticUpload(e,s.float32View,s.uint32View),this._staticBuffer.setDataWithSize(s.float32View,e.length*this._staticStride*4,!0)}}destroy(){this._staticBuffer.destroy(),this._dynamicBuffer.destroy(),this.geometry.destroy()}}});var ab,cb=b(()=>{ab=`varying vec2 vUV;
|
|
268
|
+
varying vec4 vColor;
|
|
269
|
+
|
|
270
|
+
uniform sampler2D uTexture;
|
|
271
|
+
|
|
272
|
+
void main(void){
|
|
273
|
+
vec4 color = texture2D(uTexture, vUV) * vColor;
|
|
274
|
+
gl_FragColor = color;
|
|
275
|
+
}`});var lb,ub=b(()=>{lb=`attribute vec2 aVertex;
|
|
276
|
+
attribute vec2 aUV;
|
|
277
|
+
attribute vec4 aColor;
|
|
278
|
+
|
|
279
|
+
attribute vec2 aPosition;
|
|
280
|
+
attribute float aRotation;
|
|
281
|
+
|
|
282
|
+
uniform mat3 uTranslationMatrix;
|
|
283
|
+
uniform float uRound;
|
|
284
|
+
uniform vec2 uResolution;
|
|
285
|
+
uniform vec4 uColor;
|
|
286
|
+
|
|
287
|
+
varying vec2 vUV;
|
|
288
|
+
varying vec4 vColor;
|
|
289
|
+
|
|
290
|
+
vec2 roundPixels(vec2 position, vec2 targetSize)
|
|
291
|
+
{
|
|
292
|
+
return (floor(((position * 0.5 + 0.5) * targetSize) + 0.5) / targetSize) * 2.0 - 1.0;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
void main(void){
|
|
296
|
+
float cosRotation = cos(aRotation);
|
|
297
|
+
float sinRotation = sin(aRotation);
|
|
298
|
+
float x = aVertex.x * cosRotation - aVertex.y * sinRotation;
|
|
299
|
+
float y = aVertex.x * sinRotation + aVertex.y * cosRotation;
|
|
300
|
+
|
|
301
|
+
vec2 v = vec2(x, y);
|
|
302
|
+
v = v + aPosition;
|
|
303
|
+
|
|
304
|
+
gl_Position = vec4((uTranslationMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);
|
|
305
|
+
|
|
306
|
+
if(uRound == 1.0)
|
|
307
|
+
{
|
|
308
|
+
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
vUV = aUV;
|
|
312
|
+
vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uColor;
|
|
313
|
+
}
|
|
314
|
+
`});var Uh,hb=b(()=>{Uh=`
|
|
315
|
+
struct ParticleUniforms {
|
|
316
|
+
uProjectionMatrix:mat3x3<f32>,
|
|
317
|
+
uColor:vec4<f32>,
|
|
318
|
+
uResolution:vec2<f32>,
|
|
319
|
+
uRoundPixels:f32,
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
@group(0) @binding(0) var<uniform> uniforms: ParticleUniforms;
|
|
323
|
+
|
|
324
|
+
@group(1) @binding(0) var uTexture: texture_2d<f32>;
|
|
325
|
+
@group(1) @binding(1) var uSampler : sampler;
|
|
326
|
+
|
|
327
|
+
struct VSOutput {
|
|
328
|
+
@builtin(position) position: vec4<f32>,
|
|
329
|
+
@location(0) uv : vec2<f32>,
|
|
330
|
+
@location(1) color : vec4<f32>,
|
|
331
|
+
};
|
|
332
|
+
@vertex
|
|
333
|
+
fn mainVertex(
|
|
334
|
+
@location(0) aVertex: vec2<f32>,
|
|
335
|
+
@location(1) aPosition: vec2<f32>,
|
|
336
|
+
@location(2) aUV: vec2<f32>,
|
|
337
|
+
@location(3) aColor: vec4<f32>,
|
|
338
|
+
@location(4) aRotation: f32,
|
|
339
|
+
) -> VSOutput {
|
|
340
|
+
|
|
341
|
+
let v = vec2(
|
|
342
|
+
aVertex.x * cos(aRotation) - aVertex.y * sin(aRotation),
|
|
343
|
+
aVertex.x * sin(aRotation) + aVertex.y * cos(aRotation)
|
|
344
|
+
) + aPosition;
|
|
345
|
+
|
|
346
|
+
let position = vec4((uniforms.uProjectionMatrix * vec3(v, 1.0)).xy, 0.0, 1.0);
|
|
347
|
+
|
|
348
|
+
let vColor = vec4(aColor.rgb * aColor.a, aColor.a) * uniforms.uColor;
|
|
349
|
+
|
|
350
|
+
return VSOutput(
|
|
351
|
+
position,
|
|
352
|
+
aUV,
|
|
353
|
+
vColor,
|
|
354
|
+
);
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
@fragment
|
|
358
|
+
fn mainFragment(
|
|
359
|
+
@location(0) uv: vec2<f32>,
|
|
360
|
+
@location(1) color: vec4<f32>,
|
|
361
|
+
@builtin(position) position: vec4<f32>,
|
|
362
|
+
) -> @location(0) vec4<f32> {
|
|
363
|
+
|
|
364
|
+
var sample = textureSample(uTexture, uSampler, uv) * color;
|
|
365
|
+
|
|
366
|
+
return sample;
|
|
367
|
+
}`});var cc,db=b(()=>{je();re();Ga();Va();cn();Te();Ii();cb();ub();hb();cc=class extends It{constructor(){let e=Gi.from({vertex:lb,fragment:ab}),t=fr.from({fragment:{source:Uh,entryPoint:"mainFragment"},vertex:{source:Uh,entryPoint:"mainVertex"}});super({glProgram:e,gpuProgram:t,resources:{uTexture:O.WHITE.source,uSampler:new tt({}),uniforms:{uTranslationMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new X(16777215),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}}})}}});var Yi,zh=b(()=>{re();pr();sn();ic();fn();ob();db();Yi=class{constructor(e,t){this.state=Jr.for2d(),this.localUniforms=new Ne({uTranslationMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array(4),type:"vec4<f32>"},uRound:{value:1,type:"f32"},uResolution:{value:[0,0],type:"vec2<f32>"}}),this.renderer=e,this.adaptor=t,this.defaultShader=new cc,this.state=Jr.for2d()}validateRenderable(e){return!1}addRenderable(e,t){this.renderer.renderPipes.batch.break(t),t.add(e)}getBuffers(e){return e._gpuData[this.renderer.uid]||this._initBuffer(e)}_initBuffer(e){return e._gpuData[this.renderer.uid]=new ac({size:e.particleChildren.length,properties:e._properties}),e._gpuData[this.renderer.uid]}updateRenderable(e){}execute(e){let t=e.particleChildren;if(t.length===0)return;let r=this.renderer,s=this.getBuffers(e);e.texture||(e.texture=t[0].texture);let n=this.state;s.update(t,e._childrenDirty),e._childrenDirty=!1,n.blendMode=Kt(e.blendMode,e.texture._source);let o=this.localUniforms.uniforms,a=o.uTranslationMatrix;e.worldTransform.copyTo(a),a.prepend(r.globalUniforms.globalUniformData.projectionMatrix),o.uResolution=r.globalUniforms.globalUniformData.resolution,o.uRound=r._roundPixels|e._roundPixels,gr(e.groupColorAlpha,o.uColor,0),this.adaptor.execute(this,e)}destroy(){this.defaultShader&&(this.defaultShader.destroy(),this.defaultShader=null)}}});var gn,fb=b(()=>{G();tb();zh();gn=class extends Yi{constructor(e){super(e,new oc)}};gn.extension={type:[A.WebGLPipes],name:"particle"}});var lc,mb=b(()=>{"use strict";lc=class{execute(e,t){let r=e.renderer,s=t.shader||e.defaultShader;s.groups[0]=r.renderPipes.uniformBatch.getUniformBindGroup(e.localUniforms,!0),s.groups[1]=r.texture.getTextureBindGroup(t.texture);let n=e.state,o=e.getBuffers(t);r.encoder.draw({geometry:o.geometry,shader:t.shader||e.defaultShader,state:n,size:t.particleChildren.length*6})}}});var xn,pb=b(()=>{G();mb();zh();xn=class extends Yi{constructor(e){super(e,new lc)}};xn.extension={type:[A.WebGPUPipes],name:"particle"}});var Gh=b(()=>{G();fb();pb();L.add(gn);L.add(xn)});function yn(i,e){let{texture:t,bounds:r}=i;Ca(r,e._anchor,t);let s=e._style._getFinalPadding();r.minX-=s,r.minY-=s,r.maxX-=s,r.maxY-=s}var Nh=b(()=>{Gu()});var Ki,Lh=b(()=>{"use strict";Ki=class{constructor(){this.batcherName="default",this.topology="triangle-list",this.attributeSize=4,this.indexSize=6,this.packAsQuad=!0,this.roundPixels=0,this._attributeStart=0,this._batcher=null,this._batch=null}get blendMode(){return this.renderable.groupBlendMode}get color(){return this.renderable.groupColorAlpha}reset(){this.renderable=null,this.texture=null,this._batcher=null,this._batch=null,this.bounds=null}destroy(){}}});var uc,gb=b(()=>{Lh();uc=class extends Ki{constructor(e){super(),this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.canvasText.returnTexture(this.texture),this._renderer=null}}});var bn,xb=b(()=>{G();Nh();gb();bn=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let r=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e),e._didTextUpdate=!1),this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}_updateGpuText(e){let t=this._getGpuText(e);t.texture&&this._renderer.canvasText.returnTexture(t.texture),e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,t.texture=t.texture=this._renderer.canvasText.getTexture(e),yn(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new uc(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};bn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"text"}});var yb,Zt,hc=b(()=>{re();Ue();yb={repeat:{addressModeU:"repeat",addressModeV:"repeat"},"repeat-x":{addressModeU:"repeat",addressModeV:"clamp-to-edge"},"repeat-y":{addressModeU:"clamp-to-edge",addressModeV:"repeat"},"no-repeat":{addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},Zt=class{constructor(e,t){this.uid=K("fillPattern"),this.transform=new F,this._styleKey=null,this.texture=e,this.transform.scale(1/e.frame.width,1/e.frame.height),t&&(e.source.style.addressModeU=yb[t].addressModeU,e.source.style.addressModeV=yb[t].addressModeV)}setTransform(e){let t=this.texture;this.transform.copyFrom(e),this.transform.invert(),this.transform.scale(1/t.frame.width,1/t.frame.height),this._styleKey=null}get styleKey(){return this._styleKey?this._styleKey:(this._styleKey=`fill-pattern-${this.uid}-${this.texture.uid}-${this.transform.toArray().join("-")}`,this._styleKey)}}});var wb=zd((wL,bb)=>{bb.exports=vT;var Vh={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},kT=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function vT(i){var e=[];return i.replace(kT,function(t,r,s){var n=r.toLowerCase();for(s=CT(s),n=="m"&&s.length>2&&(e.push([r].concat(s.splice(0,2))),n="l",r=r=="m"?"l":"L");;){if(s.length==Vh[n])return s.unshift(r),e.push(s);if(s.length<Vh[n])throw new Error("malformed path data");e.push([r].concat(s.splice(0,Vh[n])))}}),e}var PT=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function CT(i){var e=i.match(PT);return e?e.map(Number):[]}});function Sb(i,e){let t=(0,_b.default)(i),r=[],s=null,n=0,o=0;for(let a=0;a<t.length;a++){let c=t[a],l=c[0],u=c;switch(l){case"M":n=u[1],o=u[2],e.moveTo(n,o);break;case"m":n+=u[1],o+=u[2],e.moveTo(n,o);break;case"H":n=u[1],e.lineTo(n,o);break;case"h":n+=u[1],e.lineTo(n,o);break;case"V":o=u[1],e.lineTo(n,o);break;case"v":o+=u[1],e.lineTo(n,o);break;case"L":n=u[1],o=u[2],e.lineTo(n,o);break;case"l":n+=u[1],o+=u[2],e.lineTo(n,o);break;case"C":n=u[5],o=u[6],e.bezierCurveTo(u[1],u[2],u[3],u[4],n,o);break;case"c":e.bezierCurveTo(n+u[1],o+u[2],n+u[3],o+u[4],n+u[5],o+u[6]),n+=u[5],o+=u[6];break;case"S":n=u[3],o=u[4],e.bezierCurveToShort(u[1],u[2],n,o);break;case"s":e.bezierCurveToShort(n+u[1],o+u[2],n+u[3],o+u[4]),n+=u[3],o+=u[4];break;case"Q":n=u[3],o=u[4],e.quadraticCurveTo(u[1],u[2],n,o);break;case"q":e.quadraticCurveTo(n+u[1],o+u[2],n+u[3],o+u[4]),n+=u[3],o+=u[4];break;case"T":n=u[1],o=u[2],e.quadraticCurveToShort(n,o);break;case"t":n+=u[1],o+=u[2],e.quadraticCurveToShort(n,o);break;case"A":n=u[6],o=u[7],e.arcToSvg(u[1],u[2],u[3],u[4],u[5],n,o);break;case"a":n+=u[6],o+=u[7],e.arcToSvg(u[1],u[2],u[3],u[4],u[5],n,o);break;case"Z":case"z":e.closePath(),r.length>0&&(s=r.pop(),s?(n=s.startX,o=s.startY):(n=0,o=0)),s=null;break;default:q(`Unknown SVG path command: ${l}`)}l!=="Z"&&l!=="z"&&s===null&&(s={startX:n,startY:o},r.push(s))}return e}var _b,Tb=b(()=>{_b=Gd(wb(),1);ze()});var dc,kb=b(()=>{$e();dc=class i{constructor(e=0,t=0,r=0){this.type="circle",this.x=e,this.y=t,this.radius=r}clone(){return new i(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;let r=this.radius*this.radius,s=this.x-e,n=this.y-t;return s*=s,n*=n,s+n<=r}strokeContains(e,t,r,s=.5){if(this.radius===0)return!1;let n=this.x-e,o=this.y-t,a=this.radius,c=(1-s)*r,l=Math.sqrt(n*n+o*o);return l<=a+c&&l>a-(r-c)}getBounds(e){return e||(e=new Z),e.x=this.x-this.radius,e.y=this.y-this.radius,e.width=this.radius*2,e.height=this.radius*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.radius=e.radius,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}}});var fc,vb=b(()=>{$e();fc=class i{constructor(e=0,t=0,r=0,s=0){this.type="ellipse",this.x=e,this.y=t,this.halfWidth=r,this.halfHeight=s}clone(){return new i(this.x,this.y,this.halfWidth,this.halfHeight)}contains(e,t){if(this.halfWidth<=0||this.halfHeight<=0)return!1;let r=(e-this.x)/this.halfWidth,s=(t-this.y)/this.halfHeight;return r*=r,s*=s,r+s<=1}strokeContains(e,t,r,s=.5){let{halfWidth:n,halfHeight:o}=this;if(n<=0||o<=0)return!1;let a=r*(1-s),c=r-a,l=n-c,u=o-c,h=n+a,d=o+a,f=e-this.x,m=t-this.y,p=f*f/(l*l)+m*m/(u*u),g=f*f/(h*h)+m*m/(d*d);return p>1&&g<=1}getBounds(e){return e||(e=new Z),e.x=this.x-this.halfWidth,e.y=this.y-this.halfHeight,e.width=this.halfWidth*2,e.height=this.halfHeight*2,e}copyFrom(e){return this.x=e.x,this.y=e.y,this.halfWidth=e.halfWidth,this.halfHeight=e.halfHeight,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:Ellipse x=${this.x} y=${this.y} halfWidth=${this.halfWidth} halfHeight=${this.halfHeight}]`}}});function Pb(i,e,t,r,s,n){let o=i-t,a=e-r,c=s-t,l=n-r,u=o*c+a*l,h=c*c+l*l,d=-1;h!==0&&(d=u/h);let f,m;d<0?(f=t,m=r):d>1?(f=s,m=n):(f=t+d*c,m=r+d*l);let p=i-f,g=e-m;return p*p+g*g}var Cb=b(()=>{"use strict"});var ET,AT,Zi,Eb=b(()=>{Cb();$e();Zi=class i{constructor(...e){this.type="polygon";let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){let r=[];for(let s=0,n=t.length;s<n;s++)r.push(t[s].x,t[s].y);t=r}this.points=t,this.closePath=!0}isClockwise(){let e=0,t=this.points,r=t.length;for(let s=0;s<r;s+=2){let n=t[s],o=t[s+1],a=t[(s+2)%r],c=t[(s+3)%r];e+=(a-n)*(c+o)}return e<0}containsPolygon(e){let t=this.getBounds(ET),r=e.getBounds(AT);if(!t.containsRect(r))return!1;let s=e.points;for(let n=0;n<s.length;n+=2){let o=s[n],a=s[n+1];if(!this.contains(o,a))return!1}return!0}clone(){let e=this.points.slice(),t=new i(e);return t.closePath=this.closePath,t}contains(e,t){let r=!1,s=this.points.length/2;for(let n=0,o=s-1;n<s;o=n++){let a=this.points[n*2],c=this.points[n*2+1],l=this.points[o*2],u=this.points[o*2+1];c>t!=u>t&&e<(l-a)*((t-c)/(u-c))+a&&(r=!r)}return r}strokeContains(e,t,r,s=.5){let n=r*r,o=n*(1-s),a=n-o,{points:c}=this,l=c.length-(this.closePath?0:2);for(let u=0;u<l;u+=2){let h=c[u],d=c[u+1],f=c[(u+2)%c.length],m=c[(u+3)%c.length],p=Pb(e,t,h,d,f,m),g=Math.sign((f-h)*(t-d)-(m-d)*(e-h));if(p<=(g<0?a:o))return!0}return!1}getBounds(e){e||(e=new Z);let t=this.points,r=1/0,s=-1/0,n=1/0,o=-1/0;for(let a=0,c=t.length;a<c;a+=2){let l=t[a],u=t[a+1];r=l<r?l:r,s=l>s?l:s,n=u<n?u:n,o=u>o?u:o}return e.x=r,e.width=s-r,e.y=n,e.height=o-n,e}copyFrom(e){return this.points=e.points.slice(),this.closePath=e.closePath,this}copyTo(e){return e.copyFrom(this),e}toString(){return`[pixi.js/math:PolygoncloseStroke=${this.closePath}points=${this.points.reduce((e,t)=>`${e}, ${t}`,"")}]`}get lastX(){return this.points[this.points.length-2]}get lastY(){return this.points[this.points.length-1]}get x(){return this.points[this.points.length-2]}get y(){return this.points[this.points.length-1]}}});var mc,pc,Ab=b(()=>{$e();mc=(i,e,t,r,s,n,o)=>{let a=i-t,c=e-r,l=Math.sqrt(a*a+c*c);return l>=s-n&&l<=s+o},pc=class i{constructor(e=0,t=0,r=0,s=0,n=20){this.type="roundedRectangle",this.x=e,this.y=t,this.width=r,this.height=s,this.radius=n}getBounds(e){return e||(e=new Z),e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}clone(){return new i(this.x,this.y,this.width,this.height,this.radius)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.copyFrom(this),e}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){let r=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+r&&t<=this.y+this.height-r||e>=this.x+r&&e<=this.x+this.width-r)return!0;let s=e-(this.x+r),n=t-(this.y+r),o=r*r;if(s*s+n*n<=o||(s=e-(this.x+this.width-r),s*s+n*n<=o)||(n=t-(this.y+this.height-r),s*s+n*n<=o)||(s=e-(this.x+r),s*s+n*n<=o))return!0}return!1}strokeContains(e,t,r,s=.5){let{x:n,y:o,width:a,height:c,radius:l}=this,u=r*(1-s),h=r-u,d=n+l,f=o+l,m=a-l*2,p=c-l*2,g=n+a,y=o+c;return(e>=n-u&&e<=n+h||e>=g-h&&e<=g+u)&&t>=f&&t<=f+p||(t>=o-u&&t<=o+h||t>=y-h&&t<=y+u)&&e>=d&&e<=d+m?!0:e<d&&t<f&&mc(e,t,d,f,l,h,u)||e>g-l&&t<f&&mc(e,t,g-l,f,l,h,u)||e>g-l&&t>y-l&&mc(e,t,g-l,y-l,l,h,u)||e<d&&t>y-l&&mc(e,t,d,y-l,l,h,u)}toString(){return`[pixi.js/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}}});function xc(i,e,t,r,s,n,o,a,c,l){let h=Math.min(.99,Math.max(0,l??Xi.defaultOptions.bezierSmoothness)),d=(MT-h)/1;return d*=d,BT(e,t,r,s,n,o,a,c,i,d),i}function BT(i,e,t,r,s,n,o,a,c,l){Hh(i,e,t,r,s,n,o,a,c,l,0),c.push(o,a)}function Hh(i,e,t,r,s,n,o,a,c,l,u){if(u>IT)return;let h=Math.PI,d=(i+t)/2,f=(e+r)/2,m=(t+s)/2,p=(r+n)/2,g=(s+o)/2,y=(n+a)/2,x=(d+m)/2,w=(f+p)/2,_=(m+g)/2,S=(p+y)/2,T=(x+_)/2,v=(w+S)/2;if(u>0){let M=o-i,P=a-e,C=Math.abs((t-o)*P-(r-a)*M),E=Math.abs((s-o)*P-(n-a)*M),D,j;if(C>gc&&E>gc){if((C+E)*(C+E)<=l*(M*M+P*P)){if(Qi<Wh){c.push(T,v);return}let he=Math.atan2(n-r,s-t);if(D=Math.abs(he-Math.atan2(r-e,t-i)),j=Math.abs(Math.atan2(a-n,o-s)-he),D>=h&&(D=2*h-D),j>=h&&(j=2*h-j),D+j<Qi){c.push(T,v);return}if(ei!==0){if(D>ei){c.push(t,r);return}if(j>ei){c.push(s,n);return}}}}else if(C>gc){if(C*C<=l*(M*M+P*P)){if(Qi<Wh){c.push(T,v);return}if(D=Math.abs(Math.atan2(n-r,s-t)-Math.atan2(r-e,t-i)),D>=h&&(D=2*h-D),D<Qi){c.push(t,r),c.push(s,n);return}if(ei!==0&&D>ei){c.push(t,r);return}}}else if(E>gc){if(E*E<=l*(M*M+P*P)){if(Qi<Wh){c.push(T,v);return}if(D=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-r,s-t)),D>=h&&(D=2*h-D),D<Qi){c.push(t,r),c.push(s,n);return}if(ei!==0&&D>ei){c.push(s,n);return}}}else if(M=T-(i+o)/2,P=v-(e+a)/2,M*M+P*P<=l){c.push(T,v);return}}Hh(i,e,d,f,x,w,T,v,c,l,u+1),Hh(T,v,_,S,g,y,o,a,c,l,u+1)}var IT,gc,MT,Wh,Qi,ei,jh=b(()=>{rc();IT=8,gc=11920929e-14,MT=1,Wh=.01,Qi=0,ei=0});function Mb(i,e,t,r,s,n,o,a){let l=Math.min(.99,Math.max(0,a??Xi.defaultOptions.bezierSmoothness)),u=(RT-l)/1;return u*=u,UT(e,t,r,s,n,o,i,u),i}function UT(i,e,t,r,s,n,o,a){$h(o,i,e,t,r,s,n,a,0),o.push(s,n)}function $h(i,e,t,r,s,n,o,a,c){if(c>FT)return;let l=Math.PI,u=(e+r)/2,h=(t+s)/2,d=(r+n)/2,f=(s+o)/2,m=(u+d)/2,p=(h+f)/2,g=n-e,y=o-t,x=Math.abs((r-n)*y-(s-o)*g);if(x>DT){if(x*x<=a*(g*g+y*y)){if(Ib<OT){i.push(m,p);return}let w=Math.abs(Math.atan2(o-s,n-r)-Math.atan2(s-t,r-e));if(w>=l&&(w=2*l-w),w<Ib){i.push(m,p);return}}}else if(g=m-(e+n)/2,y=p-(t+o)/2,g*g+y*y<=a){i.push(m,p);return}$h(i,e,t,u,h,m,p,a,c+1),$h(i,m,p,d,f,n,o,a,c+1)}var FT,DT,RT,OT,Ib,Bb=b(()=>{rc();FT=8,DT=11920929e-14,RT=1,OT=.01,Ib=0});function yc(i,e,t,r,s,n,o,a){let c=Math.abs(s-n);(!o&&s>n||o&&n>s)&&(c=2*Math.PI-c),a||(a=Math.max(6,Math.floor(6*Math.pow(r,1/3)*(c/Math.PI)))),a=Math.max(a,3);let l=c/a,u=s;l*=o?-1:1;for(let h=0;h<a+1;h++){let d=Math.cos(u),f=Math.sin(u),m=e+d*r,p=t+f*r;i.push(m,p),u+=l}}var qh=b(()=>{"use strict"});function Fb(i,e,t,r,s,n){let o=i[i.length-2],c=i[i.length-1]-t,l=o-e,u=s-t,h=r-e,d=Math.abs(c*h-l*u);if(d<1e-8||n===0){(i[i.length-2]!==e||i[i.length-1]!==t)&&i.push(e,t);return}let f=c*c+l*l,m=u*u+h*h,p=c*u+l*h,g=n*Math.sqrt(f)/d,y=n*Math.sqrt(m)/d,x=g*p/f,w=y*p/m,_=g*h+y*l,S=g*u+y*c,T=l*(y+x),v=c*(y+x),M=h*(g+w),P=u*(g+w),C=Math.atan2(v-S,T-_),E=Math.atan2(P-S,M-_);yc(i,_+e,S+t,n,C,E,l*u>h*c)}var Db=b(()=>{qh()});function zT(i,e){let t=e===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(e/4),r=e===1.5707963267948966?.551915024494:t,s=Math.cos(i),n=Math.sin(i),o=Math.cos(i+e),a=Math.sin(i+e);return[{x:s-n*r,y:n+s*r},{x:o+a*r,y:a-o*r},{x:o,y:a}]}function Ob(i,e,t,r,s,n,o,a=0,c=0,l=0){if(n===0||o===0)return;let u=Math.sin(a*wn/360),h=Math.cos(a*wn/360),d=h*(e-r)/2+u*(t-s)/2,f=-u*(e-r)/2+h*(t-s)/2;if(d===0&&f===0)return;n=Math.abs(n),o=Math.abs(o);let m=Math.pow(d,2)/Math.pow(n,2)+Math.pow(f,2)/Math.pow(o,2);m>1&&(n*=Math.sqrt(m),o*=Math.sqrt(m)),GT(e,t,r,s,n,o,c,l,u,h,d,f,Xh);let{ang1:p,ang2:g}=Xh,{centerX:y,centerY:x}=Xh,w=Math.abs(g)/(wn/4);Math.abs(1-w)<1e-7&&(w=1);let _=Math.max(Math.ceil(w),1);g/=_;let S=i[i.length-2],T=i[i.length-1],v={x:0,y:0};for(let M=0;M<_;M++){let P=zT(p,g),{x:C,y:E}=Yh(P[0],n,o,h,u,y,x,v),{x:D,y:j}=Yh(P[1],n,o,h,u,y,x,v),{x:he,y:ns}=Yh(P[2],n,o,h,u,y,x,v);xc(i,S,T,C,E,D,j,he,ns),S=he,T=ns,p+=g}}var wn,Xh,Yh,Rb,GT,Ub=b(()=>{jh();wn=Math.PI*2,Xh={centerX:0,centerY:0,ang1:0,ang2:0},Yh=({x:i,y:e},t,r,s,n,o,a,c)=>{i*=t,e*=r;let l=s*i-n*e,u=n*i+s*e;return c.x=l+o,c.y=u+a,c};Rb=(i,e,t,r)=>{let s=i*r-e*t<0?-1:1,n=i*t+e*r;return n>1&&(n=1),n<-1&&(n=-1),s*Math.acos(n)},GT=(i,e,t,r,s,n,o,a,c,l,u,h,d)=>{let f=Math.pow(s,2),m=Math.pow(n,2),p=Math.pow(u,2),g=Math.pow(h,2),y=f*m-f*g-m*p;y<0&&(y=0),y/=f*g+m*p,y=Math.sqrt(y)*(o===a?-1:1);let x=y*s/n*h,w=y*-n/s*u,_=l*x-c*w+(i+t)/2,S=c*x+l*w+(e+r)/2,T=(u-x)/s,v=(h-w)/n,M=(-u-x)/s,P=(-h-w)/n,C=Rb(1,0,T,v),E=Rb(T,v,M,P);a===0&&E>0&&(E-=wn),a===1&&E<0&&(E+=wn),d.centerX=_,d.centerY=S,d.ang1=C,d.ang2=E}});function zb(i,e,t){let r=(o,a)=>{let c=a.x-o.x,l=a.y-o.y,u=Math.sqrt(c*c+l*l),h=c/u,d=l/u;return{len:u,nx:h,ny:d}},s=(o,a)=>{o===0?i.moveTo(a.x,a.y):i.lineTo(a.x,a.y)},n=e[e.length-1];for(let o=0;o<e.length;o++){let a=e[o%e.length],c=a.radius??t;if(c<=0){s(o,a),n=a;continue}let l=e[(o+1)%e.length],u=r(a,n),h=r(a,l);if(u.len<1e-4||h.len<1e-4){s(o,a),n=a;continue}let d=Math.asin(u.nx*h.ny-u.ny*h.nx),f=1,m=!1;u.nx*h.nx-u.ny*-h.ny<0?d<0?d=Math.PI+d:(d=Math.PI-d,f=-1,m=!0):d>0&&(f=-1,m=!0);let p=d/2,g,y=Math.abs(Math.cos(p)*c/Math.sin(p));y>Math.min(u.len/2,h.len/2)?(y=Math.min(u.len/2,h.len/2),g=Math.abs(y*Math.sin(p)/Math.cos(p))):g=c;let x=a.x+h.nx*y+-h.ny*g*f,w=a.y+h.ny*y+h.nx*g*f,_=Math.atan2(u.ny,u.nx)+Math.PI/2*f,S=Math.atan2(h.ny,h.nx)-Math.PI/2*f;o===0&&i.moveTo(x+Math.cos(_)*g,w+Math.sin(_)*g),i.arc(x,w,g,_,S,m),n=a}}function Gb(i,e,t,r){let s=(a,c)=>Math.sqrt((a.x-c.x)**2+(a.y-c.y)**2),n=(a,c,l)=>({x:a.x+(c.x-a.x)*l,y:a.y+(c.y-a.y)*l}),o=e.length;for(let a=0;a<o;a++){let c=e[(a+1)%o],l=c.radius??t;if(l<=0){a===0?i.moveTo(c.x,c.y):i.lineTo(c.x,c.y);continue}let u=e[a],h=e[(a+2)%o],d=s(u,c),f;if(d<1e-4)f=c;else{let g=Math.min(d/2,l);f=n(c,u,g/d)}let m=s(h,c),p;if(m<1e-4)p=c;else{let g=Math.min(m/2,l);p=n(c,h,g/m)}a===0?i.moveTo(f.x,f.y):i.lineTo(f.x,f.y),i.quadraticCurveTo(c.x,c.y,p.x,p.y,r)}}var Nb=b(()=>{"use strict"});var NT,bc,Lb=b(()=>{kb();vb();Eb();$e();Ab();ft();jh();Bb();qh();Db();Ub();Nb();NT=new Z,bc=class{constructor(e){this.shapePrimitives=[],this._currentPoly=null,this._bounds=new le,this._graphicsPath2D=e,this.signed=e.checkForHoles}moveTo(e,t){return this.startPoly(e,t),this}lineTo(e,t){this._ensurePoly();let r=this._currentPoly.points,s=r[r.length-2],n=r[r.length-1];return(s!==e||n!==t)&&r.push(e,t),this}arc(e,t,r,s,n,o){this._ensurePoly(!1);let a=this._currentPoly.points;return yc(a,e,t,r,s,n,o),this}arcTo(e,t,r,s,n){this._ensurePoly();let o=this._currentPoly.points;return Fb(o,e,t,r,s,n),this}arcToSvg(e,t,r,s,n,o,a){let c=this._currentPoly.points;return Ob(c,this._currentPoly.lastX,this._currentPoly.lastY,o,a,e,t,r,s,n),this}bezierCurveTo(e,t,r,s,n,o,a){this._ensurePoly();let c=this._currentPoly;return xc(this._currentPoly.points,c.lastX,c.lastY,e,t,r,s,n,o,a),this}quadraticCurveTo(e,t,r,s,n){this._ensurePoly();let o=this._currentPoly;return Mb(this._currentPoly.points,o.lastX,o.lastY,e,t,r,s,n),this}closePath(){return this.endPoly(!0),this}addPath(e,t){this.endPoly(),t&&!t.isIdentity()&&(e=e.clone(!0),e.transform(t));let r=this.shapePrimitives,s=r.length;for(let n=0;n<e.instructions.length;n++){let o=e.instructions[n];this[o.action](...o.data)}if(e.checkForHoles&&r.length-s>1){let n=null;for(let o=s;o<r.length;o++){let a=r[o];if(a.shape.type==="polygon"){let c=a.shape,l=n?.shape;l&&l.containsPolygon(c)?(n.holes||(n.holes=[]),n.holes.push(a),r.copyWithin(o,o+1),r.length--,o--):n=a}}}return this}finish(e=!1){this.endPoly(e)}rect(e,t,r,s,n){return this.drawShape(new Z(e,t,r,s),n),this}circle(e,t,r,s){return this.drawShape(new dc(e,t,r),s),this}poly(e,t,r){let s=new Zi(e);return s.closePath=t,this.drawShape(s,r),this}regularPoly(e,t,r,s,n=0,o){s=Math.max(s|0,3);let a=-1*Math.PI/2+n,c=Math.PI*2/s,l=[];for(let u=0;u<s;u++){let h=a-u*c;l.push(e+r*Math.cos(h),t+r*Math.sin(h))}return this.poly(l,!0,o),this}roundPoly(e,t,r,s,n,o=0,a){if(s=Math.max(s|0,3),n<=0)return this.regularPoly(e,t,r,s,o);let c=r*Math.sin(Math.PI/s)-.001;n=Math.min(n,c);let l=-1*Math.PI/2+o,u=Math.PI*2/s,h=(s-2)*Math.PI/s/2;for(let d=0;d<s;d++){let f=d*u+l,m=e+r*Math.cos(f),p=t+r*Math.sin(f),g=f+Math.PI+h,y=f-Math.PI-h,x=m+n*Math.cos(g),w=p+n*Math.sin(g),_=m+n*Math.cos(y),S=p+n*Math.sin(y);d===0?this.moveTo(x,w):this.lineTo(x,w),this.quadraticCurveTo(m,p,_,S,a)}return this.closePath()}roundShape(e,t,r=!1,s){return e.length<3?this:(r?Gb(this,e,t,s):zb(this,e,t),this.closePath())}filletRect(e,t,r,s,n){if(n===0)return this.rect(e,t,r,s);let o=Math.min(r,s)/2,a=Math.min(o,Math.max(-o,n)),c=e+r,l=t+s,u=a<0?-a:0,h=Math.abs(a);return this.moveTo(e,t+h).arcTo(e+u,t+u,e+h,t,h).lineTo(c-h,t).arcTo(c-u,t+u,c,t+h,h).lineTo(c,l-h).arcTo(c-u,l-u,e+r-h,l,h).lineTo(e+h,l).arcTo(e+u,l-u,e,l-h,h).closePath()}chamferRect(e,t,r,s,n,o){if(n<=0)return this.rect(e,t,r,s);let a=Math.min(n,Math.min(r,s)/2),c=e+r,l=t+s,u=[e+a,t,c-a,t,c,t+a,c,l-a,c-a,l,e+a,l,e,l-a,e,t+a];for(let h=u.length-1;h>=2;h-=2)u[h]===u[h-2]&&u[h-1]===u[h-3]&&u.splice(h-1,2);return this.poly(u,!0,o)}ellipse(e,t,r,s,n){return this.drawShape(new fc(e,t,r,s),n),this}roundRect(e,t,r,s,n,o){return this.drawShape(new pc(e,t,r,s,n),o),this}drawShape(e,t){return this.endPoly(),this.shapePrimitives.push({shape:e,transform:t}),this}startPoly(e,t){let r=this._currentPoly;return r&&this.endPoly(),r=new Zi,r.points.push(e,t),this._currentPoly=r,this}endPoly(e=!1){let t=this._currentPoly;return t&&t.points.length>2&&(t.closePath=e,this.shapePrimitives.push({shape:t})),this._currentPoly=null,this}_ensurePoly(e=!0){if(!this._currentPoly&&(this._currentPoly=new Zi,e)){let t=this.shapePrimitives[this.shapePrimitives.length-1];if(t){let r=t.shape.x,s=t.shape.y;if(t.transform&&!t.transform.isIdentity()){let n=t.transform,o=r;r=n.a*r+n.c*s+n.tx,s=n.b*o+n.d*s+n.ty}this._currentPoly.points.push(r,s)}else this._currentPoly.points.push(0,0)}}buildPath(){let e=this._graphicsPath2D;this.shapePrimitives.length=0,this._currentPoly=null;for(let t=0;t<e.instructions.length;t++){let r=e.instructions[t];this[r.action](...r.data)}this.finish()}get bounds(){let e=this._bounds;e.clear();let t=this.shapePrimitives;for(let r=0;r<t.length;r++){let s=t[r],n=s.shape.getBounds(NT);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function _n(i,e){return i?i.prepend(e):e.clone()}var yr,Kh=b(()=>{St();Ue();ze();Tb();Lb();yr=class i{constructor(e,t=!1){this.instructions=[],this.uid=K("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?Sb(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new bc(this)),this._dirty&&(this._dirty=!1,this._shapePath.buildPath()),this._shapePath}addPath(e,t){return e=e.clone(),this.instructions.push({action:"addPath",data:[e,t]}),this._dirty=!0,this}arc(...e){return this.instructions.push({action:"arc",data:e}),this._dirty=!0,this}arcTo(...e){return this.instructions.push({action:"arcTo",data:e}),this._dirty=!0,this}arcToSvg(...e){return this.instructions.push({action:"arcToSvg",data:e}),this._dirty=!0,this}bezierCurveTo(...e){return this.instructions.push({action:"bezierCurveTo",data:e}),this._dirty=!0,this}bezierCurveToShort(e,t,r,s,n){let o=this.instructions[this.instructions.length-1],a=this.getLastPoint(Y.shared),c=0,l=0;if(!o||o.action!=="bezierCurveTo")c=a.x,l=a.y;else{c=o.data[2],l=o.data[3];let u=a.x,h=a.y;c=u+(u-c),l=h+(h-l)}return this.instructions.push({action:"bezierCurveTo",data:[c,l,e,t,r,s,n]}),this._dirty=!0,this}closePath(){return this.instructions.push({action:"closePath",data:[]}),this._dirty=!0,this}ellipse(...e){return this.instructions.push({action:"ellipse",data:e}),this._dirty=!0,this}lineTo(...e){return this.instructions.push({action:"lineTo",data:e}),this._dirty=!0,this}moveTo(...e){return this.instructions.push({action:"moveTo",data:e}),this}quadraticCurveTo(...e){return this.instructions.push({action:"quadraticCurveTo",data:e}),this._dirty=!0,this}quadraticCurveToShort(e,t,r){let s=this.instructions[this.instructions.length-1],n=this.getLastPoint(Y.shared),o=0,a=0;if(!s||s.action!=="quadraticCurveTo")o=n.x,a=n.y;else{o=s.data[0],a=s.data[1];let c=n.x,l=n.y;o=c+(c-o),a=l+(l-a)}return this.instructions.push({action:"quadraticCurveTo",data:[o,a,e,t,r]}),this._dirty=!0,this}rect(e,t,r,s,n){return this.instructions.push({action:"rect",data:[e,t,r,s,n]}),this._dirty=!0,this}circle(e,t,r,s){return this.instructions.push({action:"circle",data:[e,t,r,s]}),this._dirty=!0,this}roundRect(...e){return this.instructions.push({action:"roundRect",data:e}),this._dirty=!0,this}poly(...e){return this.instructions.push({action:"poly",data:e}),this._dirty=!0,this}regularPoly(...e){return this.instructions.push({action:"regularPoly",data:e}),this._dirty=!0,this}roundPoly(...e){return this.instructions.push({action:"roundPoly",data:e}),this._dirty=!0,this}roundShape(...e){return this.instructions.push({action:"roundShape",data:e}),this._dirty=!0,this}filletRect(...e){return this.instructions.push({action:"filletRect",data:e}),this._dirty=!0,this}chamferRect(...e){return this.instructions.push({action:"chamferRect",data:e}),this._dirty=!0,this}star(e,t,r,s,n,o,a){n||(n=s/2);let c=-1*Math.PI/2+o,l=r*2,u=Math.PI*2/l,h=[];for(let d=0;d<l;d++){let f=d%2?n:s,m=d*u+c;h.push(e+f*Math.cos(m),t+f*Math.sin(m))}return this.poly(h,!0,a),this}clone(e=!1){let t=new i;if(t.checkForHoles=this.checkForHoles,!e)t.instructions=this.instructions.slice();else for(let r=0;r<this.instructions.length;r++){let s=this.instructions[r];t.instructions.push({action:s.action,data:s.data.slice()})}return t}clear(){return this.instructions.length=0,this._dirty=!0,this}transform(e){if(e.isIdentity())return this;let t=e.a,r=e.b,s=e.c,n=e.d,o=e.tx,a=e.ty,c=0,l=0,u=0,h=0,d=0,f=0,m=0,p=0;for(let g=0;g<this.instructions.length;g++){let y=this.instructions[g],x=y.data;switch(y.action){case"moveTo":case"lineTo":c=x[0],l=x[1],x[0]=t*c+s*l+o,x[1]=r*c+n*l+a;break;case"bezierCurveTo":u=x[0],h=x[1],d=x[2],f=x[3],c=x[4],l=x[5],x[0]=t*u+s*h+o,x[1]=r*u+n*h+a,x[2]=t*d+s*f+o,x[3]=r*d+n*f+a,x[4]=t*c+s*l+o,x[5]=r*c+n*l+a;break;case"quadraticCurveTo":u=x[0],h=x[1],c=x[2],l=x[3],x[0]=t*u+s*h+o,x[1]=r*u+n*h+a,x[2]=t*c+s*l+o,x[3]=r*c+n*l+a;break;case"arcToSvg":c=x[5],l=x[6],m=x[0],p=x[1],x[0]=t*m+s*p,x[1]=r*m+n*p,x[5]=t*c+s*l+o,x[6]=r*c+n*l+a;break;case"circle":x[4]=_n(x[3],e);break;case"rect":x[4]=_n(x[4],e);break;case"ellipse":x[8]=_n(x[8],e);break;case"roundRect":x[5]=_n(x[5],e);break;case"addPath":x[0].transform(e);break;case"poly":x[2]=_n(x[2],e);break;default:q("unknown transform action",y.action);break}}return this._dirty=!0,this}get bounds(){return this.shapePath.bounds}getLastPoint(e){let t=this.instructions.length-1,r=this.instructions[t];if(!r)return e.x=0,e.y=0,e;for(;r.action==="closePath";){if(t--,t<0)return e.x=0,e.y=0,e;r=this.instructions[t]}switch(r.action){case"moveTo":case"lineTo":e.x=r.data[0],e.y=r.data[1];break;case"quadraticCurveTo":e.x=r.data[2],e.y=r.data[3];break;case"bezierCurveTo":e.x=r.data[4],e.y=r.data[5];break;case"arc":case"arcToSvg":e.x=r.data[5],e.y=r.data[6];break;case"addPath":r.data[0].getLastPoint(e);break}return e}}});function ne(i,e,t){let r=i.getAttribute(e);return r?Number(r):t}var Zh=b(()=>{"use strict"});function Vb(i,e){let t=i.querySelectorAll("defs");for(let r=0;r<t.length;r++){let s=t[r];for(let n=0;n<s.children.length;n++){let o=s.children[n];switch(o.nodeName.toLowerCase()){case"lineargradient":e.defs[o.id]=LT(o);break;case"radialgradient":e.defs[o.id]=VT(o);break;default:break}}}}function LT(i){let e=ne(i,"x1",0),t=ne(i,"y1",0),r=ne(i,"x2",1),s=ne(i,"y2",0),n=i.getAttribute("gradientUnits")||"objectBoundingBox",o=new qe(e,t,r,s,n==="objectBoundingBox"?"local":"global");for(let a=0;a<i.children.length;a++){let c=i.children[a],l=ne(c,"offset",0),u=X.shared.setValue(c.getAttribute("stop-color")).toNumber();o.addColorStop(l,u)}return o}function VT(i){return q("[SVG Parser] Radial gradients are not yet supported"),new qe(0,0,1,0)}var Wb=b(()=>{je();ze();qi();Zh()});function Qh(i){let e=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var Hb=b(()=>{"use strict"});function Jh(i,e){let t=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in jb){let a=i.getAttribute(o);a&&$b(e,n,o,a.trim())}if(t){let o=t.split(";");for(let a=0;a<o.length;a++){let c=o[a].trim(),[l,u]=c.split(":");jb[l]&&$b(e,n,l,u.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function $b(i,e,t,r){switch(t){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=Qh(r);e.strokeStyle.fill=i.defs[s]}else e.strokeStyle.color=X.shared.setValue(r).toNumber();e.useStroke=!0}break;case"stroke-width":e.strokeStyle.width=Number(r);break;case"fill":if(r!=="none"){if(r.startsWith("url(")){let s=Qh(r);e.fillStyle.fill=i.defs[s]}else e.fillStyle.color=X.shared.setValue(r).toNumber();e.useFill=!0}break;case"fill-opacity":e.fillStyle.alpha=Number(r);break;case"stroke-opacity":e.strokeStyle.alpha=Number(r);break;case"opacity":e.fillStyle.alpha=Number(r),e.strokeStyle.alpha=Number(r);break}}var jb,qb=b(()=>{je();Hb();jb={fill:{type:"paint",default:0},"fill-opacity":{type:"number",default:1},stroke:{type:"paint",default:0},"stroke-width":{type:"number",default:1},"stroke-opacity":{type:"number",default:1},"stroke-linecap":{type:"string",default:"butt"},"stroke-linejoin":{type:"string",default:"miter"},"stroke-miterlimit":{type:"number",default:10},"stroke-dasharray":{type:"string",default:"none"},"stroke-dashoffset":{type:"number",default:0},opacity:{type:"number",default:1}}});function Xb(i,e){if(typeof i=="string"){let o=document.createElement("div");o.innerHTML=i.trim(),i=o.querySelector("svg")}let t={context:e,defs:{},path:new yr};Vb(i,t);let r=i.children,{fillStyle:s,strokeStyle:n}=Jh(i,t);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&Yb(a,t,s,n)}return e}function Yb(i,e,t,r){let s=i.children,{fillStyle:n,strokeStyle:o}=Jh(i,e);n&&t?t={...t,...n}:n&&(t=n),o&&r?r={...r,...o}:o&&(r=o);let a=!t&&!r;a&&(t={color:0});let c,l,u,h,d,f,m,p,g,y,x,w,_,S,T,v,M;switch(i.nodeName.toLowerCase()){case"path":S=i.getAttribute("d"),i.getAttribute("fill-rule")==="evenodd"&&q("SVG Evenodd fill rule not supported, your svg may render incorrectly"),T=new yr(S,!0),e.context.path(T),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"circle":m=ne(i,"cx",0),p=ne(i,"cy",0),g=ne(i,"r",0),e.context.ellipse(m,p,g,g),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"rect":c=ne(i,"x",0),l=ne(i,"y",0),v=ne(i,"width",0),M=ne(i,"height",0),y=ne(i,"rx",0),x=ne(i,"ry",0),y||x?e.context.roundRect(c,l,v,M,y||x):e.context.rect(c,l,v,M),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"ellipse":m=ne(i,"cx",0),p=ne(i,"cy",0),y=ne(i,"rx",0),x=ne(i,"ry",0),e.context.beginPath(),e.context.ellipse(m,p,y,x),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"line":u=ne(i,"x1",0),h=ne(i,"y1",0),d=ne(i,"x2",0),f=ne(i,"y2",0),e.context.beginPath(),e.context.moveTo(u,h),e.context.lineTo(d,f),r&&e.context.stroke(r);break;case"polygon":_=i.getAttribute("points"),w=_.match(/\d+/g).map(P=>parseInt(P,10)),e.context.poly(w,!0),t&&e.context.fill(t),r&&e.context.stroke(r);break;case"polyline":_=i.getAttribute("points"),w=_.match(/\d+/g).map(P=>parseInt(P,10)),e.context.poly(w,!1),r&&e.context.stroke(r);break;case"g":case"svg":break;default:{q(`[SVG parser] <${i.nodeName}> elements unsupported`);break}}a&&(t=null);for(let P=0;P<s.length;P++)Yb(s[P],e,t,r)}var Kb=b(()=>{ze();Kh();Wb();Zh();qb()});function WT(i){return X.isColorLike(i)}function Zb(i){return i instanceof Zt}function Qb(i){return i instanceof qe}function HT(i){return i instanceof O}function jT(i,e,t){let r=X.shared.setValue(e??0);return i.color=r.toNumber(),i.alpha=r.alpha===1?t.alpha:r.alpha,i.texture=O.WHITE,{...t,...i}}function $T(i,e,t){return i.texture=e,{...t,...i}}function Jb(i,e,t){return i.fill=e,i.color=16777215,i.texture=e.texture,i.matrix=e.transform,{...t,...i}}function e0(i,e,t){return e.buildGradient(),i.fill=e,i.color=16777215,i.texture=e.texture,i.matrix=e.transform,i.textureSpace=e.textureSpace,{...t,...i}}function qT(i,e){let t={...e,...i},r=X.shared.setValue(t.color);return t.alpha*=r.alpha,t.color=r.toNumber(),t}function Qt(i,e){if(i==null)return null;let t={},r=i;return WT(i)?jT(t,i,e):HT(i)?$T(t,i,e):Zb(i)?Jb(t,i,e):Qb(i)?e0(t,i,e):r.fill&&Zb(r.fill)?Jb(r,r.fill,e):r.fill&&Qb(r.fill)?e0(r,r.fill,e):qT(r,e)}function Ji(i,e){let{width:t,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,l=Qt(i,c);return l?{width:t,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...l}:null}var ed=b(()=>{je();Te();qi();hc()});var XT,t0,td,Qe,rd=b(()=>{He();je();re();St();Te();Ue();pe();ft();Kh();Kb();ed();XT=new Y,t0=new F,td=class Mt extends ie{constructor(){super(...arguments),this.uid=K("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this._activePath=new yr,this._transform=new F,this._fillStyle={...Mt.defaultFillStyle},this._strokeStyle={...Mt.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new le,this._boundsDirty=!0}clone(){let e=new Mt;return e.batchMode=this.batchMode,e.instructions=this.instructions.slice(),e._activePath=this._activePath.clone(),e._transform=this._transform.clone(),e._fillStyle={...this._fillStyle},e._strokeStyle={...this._strokeStyle},e._stateStack=this._stateStack.slice(),e._bounds=this._bounds.clone(),e._boundsDirty=!0,e}get fillStyle(){return this._fillStyle}set fillStyle(e){this._fillStyle=Qt(e,Mt.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=Ji(e,Mt.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=Qt(e,Mt.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=Qt(e,Mt.defaultStrokeStyle),this}texture(e,t,r,s,n,o){return this.instructions.push({action:"texture",data:{image:e,dx:r||0,dy:s||0,dw:n||e.frame.width,dh:o||e.frame.height,transform:this._transform.clone(),alpha:this._fillStyle.alpha,style:t?X.shared.setValue(t).toNumber():16777215}}),this.onUpdate(),this}beginPath(){return this._activePath=new yr,this}fill(e,t){let r,s=this.instructions[this.instructions.length-1];return this._tick===0&&s&&s.action==="stroke"?r=s.data.path:r=this._activePath.clone(),r?(e!=null&&(t!==void 0&&typeof e=="number"&&(N($,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),e={color:e,alpha:t}),this._fillStyle=Qt(e,Mt.defaultFillStyle)),this.instructions.push({action:"fill",data:{style:this.fillStyle,path:r}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}_initNextPathLocation(){let{x:e,y:t}=this._activePath.getLastPoint(Y.shared);this._activePath.clear(),this._activePath.moveTo(e,t)}stroke(e){let t,r=this.instructions[this.instructions.length-1];return this._tick===0&&r&&r.action==="fill"?t=r.data.path:t=this._activePath.clone(),t?(e!=null&&(this._strokeStyle=Ji(e,Mt.defaultStrokeStyle)),this.instructions.push({action:"stroke",data:{style:this.strokeStyle,path:t}}),this.onUpdate(),this._initNextPathLocation(),this._tick=0,this):this}cut(){for(let e=0;e<2;e++){let t=this.instructions[this.instructions.length-1-e],r=this._activePath.clone();if(t&&(t.action==="stroke"||t.action==="fill"))if(t.data.hole)t.data.hole.addPath(r);else{t.data.hole=r;break}}return this._initNextPathLocation(),this}arc(e,t,r,s,n,o){this._tick++;let a=this._transform;return this._activePath.arc(a.a*e+a.c*t+a.tx,a.b*e+a.d*t+a.ty,r,s,n,o),this}arcTo(e,t,r,s,n){this._tick++;let o=this._transform;return this._activePath.arcTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}arcToSvg(e,t,r,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.arcToSvg(e,t,r,s,n,c.a*o+c.c*a+c.tx,c.b*o+c.d*a+c.ty),this}bezierCurveTo(e,t,r,s,n,o,a){this._tick++;let c=this._transform;return this._activePath.bezierCurveTo(c.a*e+c.c*t+c.tx,c.b*e+c.d*t+c.ty,c.a*r+c.c*s+c.tx,c.b*r+c.d*s+c.ty,c.a*n+c.c*o+c.tx,c.b*n+c.d*o+c.ty,a),this}closePath(){return this._tick++,this._activePath?.closePath(),this}ellipse(e,t,r,s){return this._tick++,this._activePath.ellipse(e,t,r,s,this._transform.clone()),this}circle(e,t,r){return this._tick++,this._activePath.circle(e,t,r,this._transform.clone()),this}path(e){return this._tick++,this._activePath.addPath(e,this._transform.clone()),this}lineTo(e,t){this._tick++;let r=this._transform;return this._activePath.lineTo(r.a*e+r.c*t+r.tx,r.b*e+r.d*t+r.ty),this}moveTo(e,t){this._tick++;let r=this._transform,s=this._activePath.instructions,n=r.a*e+r.c*t+r.tx,o=r.b*e+r.d*t+r.ty;return s.length===1&&s[0].action==="moveTo"?(s[0].data[0]=n,s[0].data[1]=o,this):(this._activePath.moveTo(n,o),this)}quadraticCurveTo(e,t,r,s,n){this._tick++;let o=this._transform;return this._activePath.quadraticCurveTo(o.a*e+o.c*t+o.tx,o.b*e+o.d*t+o.ty,o.a*r+o.c*s+o.tx,o.b*r+o.d*s+o.ty,n),this}rect(e,t,r,s){return this._tick++,this._activePath.rect(e,t,r,s,this._transform.clone()),this}roundRect(e,t,r,s,n){return this._tick++,this._activePath.roundRect(e,t,r,s,n,this._transform.clone()),this}poly(e,t){return this._tick++,this._activePath.poly(e,t,this._transform.clone()),this}regularPoly(e,t,r,s,n=0,o){return this._tick++,this._activePath.regularPoly(e,t,r,s,n,o),this}roundPoly(e,t,r,s,n,o){return this._tick++,this._activePath.roundPoly(e,t,r,s,n,o),this}roundShape(e,t,r,s){return this._tick++,this._activePath.roundShape(e,t,r,s),this}filletRect(e,t,r,s,n){return this._tick++,this._activePath.filletRect(e,t,r,s,n),this}chamferRect(e,t,r,s,n,o){return this._tick++,this._activePath.chamferRect(e,t,r,s,n,o),this}star(e,t,r,s,n=0,o=0){return this._tick++,this._activePath.star(e,t,r,s,n,o,this._transform.clone()),this}svg(e){return this._tick++,Xb(e,this),this}restore(){let e=this._stateStack.pop();return e&&(this._transform=e.transform,this._fillStyle=e.fillStyle,this._strokeStyle=e.strokeStyle),this}save(){return this._stateStack.push({transform:this._transform.clone(),fillStyle:{...this._fillStyle},strokeStyle:{...this._strokeStyle}}),this}getTransform(){return this._transform}resetTransform(){return this._transform.identity(),this}rotate(e){return this._transform.rotate(e),this}scale(e,t=e){return this._transform.scale(e,t),this}setTransform(e,t,r,s,n,o){return e instanceof F?(this._transform.set(e.a,e.b,e.c,e.d,e.tx,e.ty),this):(this._transform.set(e,t,r,s,n,o),this)}transform(e,t,r,s,n,o){return e instanceof F?(this._transform.append(e),this):(t0.set(e,t,r,s,n,o),this._transform.append(t0),this)}translate(e,t=e){return this._transform.translate(e,t),this}clear(){return this._activePath.clear(),this.instructions.length=0,this.resetTransform(),this.onUpdate(),this}onUpdate(){this.dirty||(this.emit("update",this,16),this.dirty=!0,this._boundsDirty=!0)}get bounds(){if(!this._boundsDirty)return this._bounds;let e=this._bounds;e.clear();for(let t=0;t<this.instructions.length;t++){let r=this.instructions[t],s=r.action;if(s==="fill"){let n=r.data;e.addBounds(n.path.bounds)}else if(s==="texture"){let n=r.data;e.addFrame(n.dx,n.dy,n.dx+n.dw,n.dy+n.dh,n.transform)}if(s==="stroke"){let n=r.data,o=n.style.alignment,a=n.style.width*(1-o),c=n.path.bounds;e.addFrame(c.minX-a,c.minY-a,c.maxX+a,c.maxY+a)}}return e}containsPoint(e){if(!this.bounds.containsPoint(e.x,e.y))return!1;let t=this.instructions,r=!1;for(let s=0;s<t.length;s++){let n=t[s],o=n.data,a=o.path;if(!n.action||!a)continue;let c=o.style,l=a.shapePath.shapePrimitives;for(let u=0;u<l.length;u++){let h=l[u].shape;if(!c||!h)continue;let d=l[u].transform,f=d?d.applyInverse(e,XT):e;if(n.action==="fill")r=h.contains(f.x,f.y);else{let p=c;r=h.strokeContains(f.x,f.y,p.width,p.alignment)}let m=o.hole;if(m){let p=m.shapePath?.shapePrimitives;if(p)for(let g=0;g<p.length;g++)p[g].shape.contains(f.x,f.y)&&(r=!1)}if(r)return!0}}return r}destroy(e=!1){if(this._stateStack.length=0,this._transform=null,this.emit("destroy",this),this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._fillStyle.texture&&this._fillStyle.texture.destroy(r),this._strokeStyle.texture&&this._strokeStyle.texture.destroy(r)}this._fillStyle=null,this._strokeStyle=null,this.instructions=null,this._activePath=null,this._bounds=null,this._stateStack=null,this.customShader=null,this._transform=null}};td.defaultFillStyle={color:16777215,alpha:1,texture:O.WHITE,matrix:null,fill:null,textureSpace:"local"};td.defaultStrokeStyle={width:1,color:16777215,alpha:1,alignment:.5,miterLimit:10,cap:"butt",join:"miter",texture:O.WHITE,matrix:null,fill:null,textureSpace:"local",pixelLine:!1};Qe=td});function i0(i){let e=[],t=0;for(let r=0;r<r0.length;r++){let s=`_${r0[r]}`;e[t++]=i[s]}return t=s0(i._fill,e,t),t=KT(i._stroke,e,t),t=ZT(i.dropShadow,e,t),t=YT(i.filters,e,t),e.join("-")}function YT(i,e,t){if(!i)return t;for(let r of i)e[t++]=r.uid;return t}function s0(i,e,t){return i&&(e[t++]=i.color,e[t++]=i.alpha,e[t++]=i.fill?.styleKey),t}function KT(i,e,t){return i&&(t=s0(i,e,t),e[t++]=i.width,e[t++]=i.alignment,e[t++]=i.cap,e[t++]=i.join,e[t++]=i.miterLimit),t}function ZT(i,e,t){return i&&(e[t++]=i.alpha,e[t++]=i.angle,e[t++]=i.blur,e[t++]=i.distance,e[t++]=X.shared.setValue(i.color).toNumber()),t}var r0,n0=b(()=>{je();r0=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"]});function QT(i){let e=i;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=it.defaultDropShadow;i.dropShadow={alpha:e.dropShadowAlpha??t.alpha,angle:e.dropShadowAngle??t.angle,blur:e.dropShadowBlur??t.blur,color:e.dropShadowColor??t.color,distance:e.dropShadowDistance??t.distance}}if(e.strokeThickness!==void 0){N($,"strokeThickness is now a part of stroke");let t=e.stroke,r={};if(X.isColorLike(t))r.color=t;else if(t instanceof qe||t instanceof Zt)r.fill=t;else if(Object.hasOwnProperty.call(t,"color")||Object.hasOwnProperty.call(t,"fill"))r=t;else throw new Error("Invalid stroke value.");i.stroke={...r,width:e.strokeThickness}}if(Array.isArray(e.fillGradientStops)){N($,"gradient fill is now a fill pattern: `new FillGradient(...)`");let t;i.fontSize==null?i.fontSize=it.defaultTextStyle.fontSize:typeof i.fontSize=="string"?t=parseInt(i.fontSize,10):t=i.fontSize;let r=new qe({start:{x:0,y:0},end:{x:0,y:(t||0)*1.7}}),s=e.fillGradientStops.map(n=>X.shared.setValue(n).toNumber());s.forEach((n,o)=>{let a=o/(s.length-1);r.addColorStop(a,n)}),i.fill={fill:r}}}var id,it,Sn=b(()=>{He();je();pe();qi();hc();rd();ed();n0();id=class es extends ie{constructor(e={}){super(),QT(e);let t={...es.defaultTextStyle,...e};for(let r in t){let s=r;this[s]=t[r]}this.update()}get align(){return this._align}set align(e){this._align=e,this.update()}get breakWords(){return this._breakWords}set breakWords(e){this._breakWords=e,this.update()}get dropShadow(){return this._dropShadow}set dropShadow(e){e!==null&&typeof e=="object"?this._dropShadow=this._createProxy({...es.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...es.defaultDropShadow}):null,this.update()}get fontFamily(){return this._fontFamily}set fontFamily(e){this._fontFamily=e,this.update()}get fontSize(){return this._fontSize}set fontSize(e){typeof e=="string"?this._fontSize=parseInt(e,10):this._fontSize=e,this.update()}get fontStyle(){return this._fontStyle}set fontStyle(e){this._fontStyle=e.toLowerCase(),this.update()}get fontVariant(){return this._fontVariant}set fontVariant(e){this._fontVariant=e,this.update()}get fontWeight(){return this._fontWeight}set fontWeight(e){this._fontWeight=e,this.update()}get leading(){return this._leading}set leading(e){this._leading=e,this.update()}get letterSpacing(){return this._letterSpacing}set letterSpacing(e){this._letterSpacing=e,this.update()}get lineHeight(){return this._lineHeight}set lineHeight(e){this._lineHeight=e,this.update()}get padding(){return this._padding}set padding(e){this._padding=e,this.update()}get filters(){return this._filters}set filters(e){this._filters=e,this.update()}get trim(){return this._trim}set trim(e){this._trim=e,this.update()}get textBaseline(){return this._textBaseline}set textBaseline(e){this._textBaseline=e,this.update()}get whiteSpace(){return this._whiteSpace}set whiteSpace(e){this._whiteSpace=e,this.update()}get wordWrap(){return this._wordWrap}set wordWrap(e){this._wordWrap=e,this.update()}get wordWrapWidth(){return this._wordWrapWidth}set wordWrapWidth(e){this._wordWrapWidth=e,this.update()}get fill(){return this._originalFill}set fill(e){e!==this._originalFill&&(this._originalFill=e,this._isFillStyle(e)&&(this._originalFill=this._createProxy({...Qe.defaultFillStyle,...e},()=>{this._fill=Qt({...this._originalFill},Qe.defaultFillStyle)})),this._fill=Qt(e===0?"black":e,Qe.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({...Qe.defaultStrokeStyle,...e},()=>{this._stroke=Ji({...this._originalStroke},Qe.defaultStrokeStyle)})),this._stroke=Ji(e,Qe.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=i0(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){let e=es.defaultTextStyle;for(let t in e)this[t]=e[t]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new es({align:this.align,breakWords:this.breakWords,dropShadow:this._dropShadow?{...this._dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,leading:this.leading,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,textBaseline:this.textBaseline,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,filters:this._filters?[...this._filters]:void 0})}_getFinalPadding(){let e=0;if(this._filters)for(let t=0;t<this._filters.length;t++)e+=this._filters[t].padding;return Math.max(this._padding,e)}destroy(e=!1){if(this.removeAllListeners(),typeof e=="boolean"?e:e?.texture){let r=typeof e=="boolean"?e:e?.textureSource;this._fill?.texture&&this._fill.texture.destroy(r),this._originalFill?.texture&&this._originalFill.texture.destroy(r),this._stroke?.texture&&this._stroke.texture.destroy(r),this._originalStroke?.texture&&this._originalStroke.texture.destroy(r)}this._fill=null,this._stroke=null,this.dropShadow=null,this._originalStroke=null,this._originalFill=null}_createProxy(e,t){return new Proxy(e,{set:(r,s,n)=>(r[s]=n,t?.(s,n),this.update(),!0)})}_isFillStyle(e){return(e??null)!==null&&!(X.isColorLike(e)||e instanceof qe||e instanceof Zt)}};id.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};id.defaultTextStyle={align:"left",breakWords:!1,dropShadow:null,fill:"black",fontFamily:"Arial",fontSize:26,fontStyle:"normal",fontVariant:"normal",fontWeight:"normal",leading:0,letterSpacing:0,lineHeight:0,padding:0,stroke:null,textBaseline:"alphabetic",trim:!1,whiteSpace:"pre",wordWrap:!1,wordWrapWidth:100};it=id});function wc(i,e,t,r){let s=JT;s.minX=0,s.minY=0,s.maxX=i.width/r|0,s.maxY=i.height/r|0;let n=Me.getOptimalTexture(s.width,s.height,r,!1);return n.source.uploadMethodId="image",n.source.resource=i,n.source.alphaMode="premultiply-alpha-on-upload",n.frame.width=e/r,n.frame.height=t/r,n.source.emit("update",n.source),n.updateUvs(),n}var JT,sd=b(()=>{Mi();ft();JT=new le});var nd,Bt,Tn=b(()=>{vt();Ns();nd=class{constructor(e){this._canvasPool=Object.create(null),this.canvasOptions=e||{},this.enableFullScreen=!1}_createCanvasAndContext(e,t){let r=xe.get().createCanvas();r.width=e,r.height=t;let s=r.getContext("2d");return{canvas:r,context:s}}getOptimalCanvasAndContext(e,t,r=1){e=Math.ceil(e*r-1e-6),t=Math.ceil(t*r-1e-6),e=$t(e),t=$t(t);let s=(e<<17)+(t<<1);this._canvasPool[s]||(this._canvasPool[s]=[]);let n=this._canvasPool[s].pop();return n||(n=this._createCanvasAndContext(e,t)),n}returnCanvasAndContext(e){let t=e.canvas,{width:r,height:s}=t,n=(r<<17)+(s<<1);e.context.clearRect(0,0,r,s),this._canvasPool[n].push(e)}clear(){this._canvasPool={}}},Bt=new nd});function ek(i,e){ti||(ti=xe.get().createCanvas(256,128),Jt=ti.getContext("2d",{willReadFrequently:!0}),Jt.globalCompositeOperation="copy",Jt.globalAlpha=1),(ti.width<i||ti.height<e)&&(ti.width=$t(i),ti.height=$t(e))}function o0(i,e,t){for(let r=0,s=4*t*e;r<e;++r,s+=4)if(i[s+3]!==0)return!1;return!0}function a0(i,e,t,r,s){let n=4*e;for(let o=r,a=r*n+4*t;o<=s;++o,a+=n)if(i[a+3]!==0)return!1;return!0}function c0(...i){let e=i[0];e.canvas||(e={canvas:i[0],resolution:i[1]});let{canvas:t}=e,r=Math.min(e.resolution??1,1),s=e.width??t.width,n=e.height??t.height,o=e.output;if(ek(s,n),!Jt)throw new TypeError("Failed to get canvas 2D context");Jt.drawImage(t,0,0,s,n,0,0,s*r,n*r);let c=Jt.getImageData(0,0,s,n).data,l=0,u=0,h=s-1,d=n-1;for(;u<n&&o0(c,s,u);)++u;if(u===n)return Z.EMPTY;for(;o0(c,s,d);)--d;for(;a0(c,s,l,u,d);)++l;for(;a0(c,s,h,u,d);)--h;return++h,++d,Jt.globalCompositeOperation="source-over",Jt.strokeRect(l,u,h-l,d-u),Jt.globalCompositeOperation="copy",o??(o=new Z),o.set(l/r,u/r,(h-l)/r,(d-u)/r),o}var ti,Jt,l0=b(()=>{vt();Ns();$e();ti=null,Jt=null});function ri(i){let e=typeof i.fontSize=="number"?`${i.fontSize}px`:i.fontSize,t=i.fontFamily;Array.isArray(i.fontFamily)||(t=i.fontFamily.split(","));for(let r=t.length-1;r>=0;r--){let s=t[r].trim();!/([\"\'])[^\'\"]+\1/.test(s)&&!tk.includes(s)&&(s=`"${s}"`),t[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${e} ${t.join(",")}`}var tk,_c=b(()=>{"use strict";tk=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});var od,Ft,Xe,kn=b(()=>{vt();_c();od={willReadFrequently:!0},Ft=class U{static get experimentalLetterSpacingSupported(){let e=U._experimentalLetterSpacingSupported;if(e===void 0){let t=xe.get().getCanvasRenderingContext2D().prototype;e=U._experimentalLetterSpacingSupported="letterSpacing"in t||"textLetterSpacing"in t}return e}constructor(e,t,r,s,n,o,a,c,l){this.text=e,this.style=t,this.width=r,this.height=s,this.lines=n,this.lineWidths=o,this.lineHeight=a,this.maxLineWidth=c,this.fontProperties=l}static measureText(e=" ",t,r=U._canvas,s=t.wordWrap){let n=ri(t),o=U.measureFont(n);o.fontSize===0&&(o.fontSize=t.fontSize,o.ascent=t.fontSize);let a=U.__context;a.font=n;let l=(s?U._wordWrap(e,t,r):e).split(/(?:\r\n|\r|\n)/),u=new Array(l.length),h=0;for(let y=0;y<l.length;y++){let x=U._measureText(l[y],t.letterSpacing,a);u[y]=x,h=Math.max(h,x)}let d=t._stroke?.width||0,f=h+d;t.dropShadow&&(f+=t.dropShadow.distance);let m=t.lineHeight||o.fontSize,p=Math.max(m,o.fontSize+d)+(l.length-1)*(m+t.leading);return t.dropShadow&&(p+=t.dropShadow.distance),new U(e,t,f,p,l,u,m+t.leading,h,o)}static _measureText(e,t,r){let s=!1;U.experimentalLetterSpacingSupported&&(U.experimentalLetterSpacing?(r.letterSpacing=`${t}px`,r.textLetterSpacing=`${t}px`,s=!0):(r.letterSpacing="0px",r.textLetterSpacing="0px"));let n=r.measureText(e),o=n.width,a=-n.actualBoundingBoxLeft,l=n.actualBoundingBoxRight-a;if(o>0)if(s)o-=t,l-=t;else{let u=(U.graphemeSegmenter(e).length-1)*t;o+=u,l+=u}return Math.max(o,l)}static _wordWrap(e,t,r=U._canvas){let s=r.getContext("2d",od),n=0,o="",a="",c=Object.create(null),{letterSpacing:l,whiteSpace:u}=t,h=U._collapseSpaces(u),d=U._collapseNewlines(u),f=!h,m=t.wordWrapWidth+l,p=U._tokenize(e);for(let g=0;g<p.length;g++){let y=p[g];if(U._isNewline(y)){if(!d){a+=U._addLine(o),f=!h,o="",n=0;continue}y=" "}if(h){let w=U.isBreakingSpace(y),_=U.isBreakingSpace(o[o.length-1]);if(w&&_)continue}let x=U._getFromCache(y,l,c,s);if(x>m)if(o!==""&&(a+=U._addLine(o),o="",n=0),U.canBreakWords(y,t.breakWords)){let w=U.wordWrapSplit(y);for(let _=0;_<w.length;_++){let S=w[_],T=S,v=1;for(;w[_+v];){let P=w[_+v];if(!U.canBreakChars(T,P,y,_,t.breakWords))S+=P;else break;T=P,v++}_+=v-1;let M=U._getFromCache(S,l,c,s);M+n>m&&(a+=U._addLine(o),f=!1,o="",n=0),o+=S,n+=M}}else{o.length>0&&(a+=U._addLine(o),o="",n=0);let w=g===p.length-1;a+=U._addLine(y,!w),f=!1,o="",n=0}else x+n>m&&(f=!1,a+=U._addLine(o),o="",n=0),(o.length>0||!U.isBreakingSpace(y)||f)&&(o+=y,n+=x)}return a+=U._addLine(o,!1),a}static _addLine(e,t=!0){return e=U._trimRight(e),e=t?`${e}
|
|
368
|
+
`:e,e}static _getFromCache(e,t,r,s){let n=r[e];return typeof n!="number"&&(n=U._measureText(e,t,s)+t,r[e]=n),n}static _collapseSpaces(e){return e==="normal"||e==="pre-line"}static _collapseNewlines(e){return e==="normal"}static _trimRight(e){if(typeof e!="string")return"";for(let t=e.length-1;t>=0;t--){let r=e[t];if(!U.isBreakingSpace(r))break;e=e.slice(0,-1)}return e}static _isNewline(e){return typeof e!="string"?!1:U._newlines.includes(e.charCodeAt(0))}static isBreakingSpace(e,t){return typeof e!="string"?!1:U._breakingSpaces.includes(e.charCodeAt(0))}static _tokenize(e){let t=[],r="";if(typeof e!="string")return t;for(let s=0;s<e.length;s++){let n=e[s],o=e[s+1];if(U.isBreakingSpace(n,o)||U._isNewline(n)){r!==""&&(t.push(r),r=""),t.push(n);continue}r+=n}return r!==""&&t.push(r),t}static canBreakWords(e,t){return t}static canBreakChars(e,t,r,s,n){return!0}static wordWrapSplit(e){return U.graphemeSegmenter(e)}static measureFont(e){if(U._fonts[e])return U._fonts[e];let t=U._context;t.font=e;let r=t.measureText(U.METRICS_STRING+U.BASELINE_SYMBOL),s={ascent:r.actualBoundingBoxAscent,descent:r.actualBoundingBoxDescent,fontSize:r.actualBoundingBoxAscent+r.actualBoundingBoxDescent};return U._fonts[e]=s,s}static clearMetrics(e=""){e?delete U._fonts[e]:U._fonts={}}static get _canvas(){if(!U.__canvas){let e;try{let t=new OffscreenCanvas(0,0);if(t.getContext("2d",od)?.measureText)return U.__canvas=t,t;e=xe.get().createCanvas()}catch{e=xe.get().createCanvas()}e.width=e.height=10,U.__canvas=e}return U.__canvas}static get _context(){return U.__context||(U.__context=U._canvas.getContext("2d",od)),U.__context}};Ft.METRICS_STRING="|\xC9q\xC5";Ft.BASELINE_SYMBOL="M";Ft.BASELINE_MULTIPLIER=1.4;Ft.HEIGHT_MULTIPLIER=2;Ft.graphemeSegmenter=(()=>{if(typeof Intl?.Segmenter=="function"){let i=new Intl.Segmenter;return e=>{let t=i.segment(e),r=[],s=0;for(let n of t)r[s++]=n.segment;return r}}return i=>[...i]})();Ft.experimentalLetterSpacing=!1;Ft._fonts={};Ft._newlines=[10,13];Ft._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];Xe=Ft});function ts(i,e,t,r=0){if(i.texture===O.WHITE&&!i.fill)return X.shared.setValue(i.color).setAlpha(i.alpha??1).toHexa();if(i.fill){if(i.fill instanceof Zt){let s=i.fill,n=e.createPattern(s.texture.source.resource,"repeat"),o=s.transform.copyTo(F.shared);return o.scale(s.texture.frame.width,s.texture.frame.height),n.setTransform(o),n}else if(i.fill instanceof qe){let s=i.fill,n=s.type==="linear",o=s.textureSpace==="local",a=1,c=1;o&&t&&(a=t.width+r,c=t.height+r);let l,u=!1;if(n){let{start:h,end:d}=s;l=e.createLinearGradient(h.x*a,h.y*c,d.x*a,d.y*c),u=Math.abs(d.x-h.x)<Math.abs((d.y-h.y)*.1)}else{let{center:h,innerRadius:d,outerCenter:f,outerRadius:m}=s;l=e.createRadialGradient(h.x*a,h.y*c,d*a,f.x*a,f.y*c,m*a)}if(u&&o&&t){let h=t.lineHeight/c;for(let d=0;d<t.lines.length;d++){let f=(d*t.lineHeight+r/2)/c;s.colorStops.forEach(m=>{let p=f+m.offset*h;l.addColorStop(Math.floor(p*u0)/u0,X.shared.setValue(m.color).toHex())})}}else s.colorStops.forEach(h=>{l.addColorStop(h.offset,X.shared.setValue(h.color).toHex())});return l}}else{let s=e.createPattern(i.texture.source.resource,"repeat"),n=i.matrix.copyTo(F.shared);return n.scale(i.texture.frame.width,i.texture.frame.height),s.setTransform(n),s}return q("FillStyle not recognised",i),"red"}var u0,ad=b(()=>{je();re();Te();ze();qi();hc();u0=1e5});var h0,cd,Sc,d0=b(()=>{je();$e();Tn();l0();kn();_c();ad();h0=new Z,cd=class{getCanvasAndContext(e){let{text:t,style:r,resolution:s=1}=e,n=r._getFinalPadding(),o=Xe.measureText(t||" ",r),a=Math.ceil(Math.ceil(Math.max(1,o.width)+n*2)*s),c=Math.ceil(Math.ceil(Math.max(1,o.height)+n*2)*s),l=Bt.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(t,r,n,s,l);let u=r.trim?c0({canvas:l.canvas,width:a,height:c,resolution:1,output:h0}):h0.set(0,0,a,c);return{canvasAndContext:l,frame:u}}returnCanvasAndContext(e){Bt.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,r,s,n){let{canvas:o,context:a}=n,c=ri(t),l=Xe.measureText(e||" ",t),u=l.lines,h=l.lineHeight,d=l.lineWidths,f=l.maxLineWidth,m=l.fontProperties,p=o.height;if(a.resetTransform(),a.scale(s,s),a.textBaseline=t.textBaseline,t._stroke?.width){let w=t._stroke;a.lineWidth=w.width,a.miterLimit=w.miterLimit,a.lineJoin=w.join,a.lineCap=w.cap}a.font=c;let g,y,x=t.dropShadow?2:1;for(let w=0;w<x;++w){let _=t.dropShadow&&w===0,S=_?Math.ceil(Math.max(1,p)+r*2):0,T=S*s;if(_){a.fillStyle="black",a.strokeStyle="black";let P=t.dropShadow,C=P.color,E=P.alpha;a.shadowColor=X.shared.setValue(C).setAlpha(E).toRgbaString();let D=P.blur*s,j=P.distance*s;a.shadowBlur=D,a.shadowOffsetX=Math.cos(P.angle)*j,a.shadowOffsetY=Math.sin(P.angle)*j+T}else{if(a.fillStyle=t._fill?ts(t._fill,a,l):null,t._stroke?.width){let P=t._stroke.width*t._stroke.alignment;a.strokeStyle=ts(t._stroke,a,l,P)}a.shadowColor="black"}let v=(h-m.fontSize)/2;h-m.fontSize<0&&(v=0);let M=t._stroke?.width??0;for(let P=0;P<u.length;P++)g=M/2,y=M/2+P*h+m.ascent+v,t.align==="right"?g+=f-d[P]:t.align==="center"&&(g+=(f-d[P])/2),t._stroke?.width&&this._drawLetterSpacing(u[P],t,n,g+r,y+r-S,!0),t._fill!==void 0&&this._drawLetterSpacing(u[P],t,n,g+r,y+r-S)}}_drawLetterSpacing(e,t,r,s,n,o=!1){let{context:a}=r,c=t.letterSpacing,l=!1;if(Xe.experimentalLetterSpacingSupported&&(Xe.experimentalLetterSpacing?(a.letterSpacing=`${c}px`,a.textLetterSpacing=`${c}px`,l=!0):(a.letterSpacing="0px",a.textLetterSpacing="0px")),c===0||l){o?a.strokeText(e,s,n):a.fillText(e,s,n);return}let u=s,h=Xe.graphemeSegmenter(e),d=a.measureText(e).width,f=0;for(let m=0;m<h.length;++m){let p=h[m];o?a.strokeText(p,u,n):a.fillText(p,u,n);let g="";for(let y=m+1;y<h.length;++y)g+=h[y];f=a.measureText(g).width,u+=d-f+c,d=f}}},Sc=new cd});var vn,f0=b(()=>{G();Mi();Ii();pe();Sn();sd();d0();vn=class{constructor(e){this._renderer=e}getTexture(e,t,r,s){typeof e=="string"&&(N("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:r,resolution:t}),e.style instanceof it||(e.style=new it(e.style)),e.textureStyle instanceof tt||(e.textureStyle=new tt(e.textureStyle)),typeof e.text!="string"&&(e.text=e.text.toString());let{text:n,style:o,textureStyle:a}=e,c=e.resolution??this._renderer.resolution,{frame:l,canvasAndContext:u}=Sc.getCanvasAndContext({text:n,style:o,resolution:c}),h=wc(u.canvas,l.width,l.height,c);if(a&&(h.source.style=a),o.trim&&(l.pad(o.padding),h.frame.copyFrom(l),h.updateUvs()),o.filters){let d=this._applyFilters(h,o.filters);return this.returnTexture(h),Sc.returnCanvasAndContext(u),d}return this._renderer.texture.initSource(h._source),Sc.returnCanvasAndContext(u),h}returnTexture(e){let t=e.source;t.resource=null,t.uploadMethodId="unknown",t.alphaMode="no-premultiply-alpha",Me.returnTexture(e,!0)}renderTextToCanvas(){N("8.10.0","CanvasTextSystem.renderTextToCanvas: no longer supported, use CanvasTextSystem.getTexture instead")}_applyFilters(e,t){let r=this._renderer.renderTarget.renderTarget,s=this._renderer.filter.generateFilteredTexture({texture:e,filters:t});return this._renderer.renderTarget.bind(r,!1),s}destroy(){this._renderer=null}};vn.extension={type:[A.WebGLSystem,A.WebGPUSystem,A.CanvasSystem],name:"canvasText"}});var ld=b(()=>{G();xb();f0();L.add(vn);L.add(bn)});var Tc,m0=b(()=>{pe();Bu();rd();Tc=class i extends Di{constructor(e){e instanceof Qe&&(e={context:e});let{context:t,roundPixels:r,...s}=e||{};super({label:"Graphics",...s}),this.renderPipeId="graphics",t?this._context=t:this._context=this._ownedContext=new Qe,this._context.on("update",this.onViewUpdate,this),this.didViewUpdate=!0,this.allowChildren=!1,this.roundPixels=r??!1}set context(e){e!==this._context&&(this._context.off("update",this.onViewUpdate,this),this._context=e,this._context.on("update",this.onViewUpdate,this),this.onViewUpdate())}get context(){return this._context}get bounds(){return this._context.bounds}updateBounds(){}containsPoint(e){return this._context.containsPoint(e)}destroy(e){this._ownedContext&&!e?this._ownedContext.destroy(e):(e===!0||e?.context===!0)&&this._context.destroy(e),this._ownedContext=null,this._context=null,super.destroy(e)}_callContextMethod(e,t){return this.context[e](...t),this}setFillStyle(...e){return this._callContextMethod("setFillStyle",e)}setStrokeStyle(...e){return this._callContextMethod("setStrokeStyle",e)}fill(...e){return this._callContextMethod("fill",e)}stroke(...e){return this._callContextMethod("stroke",e)}texture(...e){return this._callContextMethod("texture",e)}beginPath(){return this._callContextMethod("beginPath",[])}cut(){return this._callContextMethod("cut",[])}arc(...e){return this._callContextMethod("arc",e)}arcTo(...e){return this._callContextMethod("arcTo",e)}arcToSvg(...e){return this._callContextMethod("arcToSvg",e)}bezierCurveTo(...e){return this._callContextMethod("bezierCurveTo",e)}closePath(){return this._callContextMethod("closePath",[])}ellipse(...e){return this._callContextMethod("ellipse",e)}circle(...e){return this._callContextMethod("circle",e)}path(...e){return this._callContextMethod("path",e)}lineTo(...e){return this._callContextMethod("lineTo",e)}moveTo(...e){return this._callContextMethod("moveTo",e)}quadraticCurveTo(...e){return this._callContextMethod("quadraticCurveTo",e)}rect(...e){return this._callContextMethod("rect",e)}roundRect(...e){return this._callContextMethod("roundRect",e)}poly(...e){return this._callContextMethod("poly",e)}regularPoly(...e){return this._callContextMethod("regularPoly",e)}roundPoly(...e){return this._callContextMethod("roundPoly",e)}roundShape(...e){return this._callContextMethod("roundShape",e)}filletRect(...e){return this._callContextMethod("filletRect",e)}chamferRect(...e){return this._callContextMethod("chamferRect",e)}star(...e){return this._callContextMethod("star",e)}svg(...e){return this._callContextMethod("svg",e)}restore(...e){return this._callContextMethod("restore",e)}save(){return this._callContextMethod("save",[])}getTransform(){return this.context.getTransform()}resetTransform(){return this._callContextMethod("resetTransform",[])}rotateTransform(...e){return this._callContextMethod("rotate",e)}scaleTransform(...e){return this._callContextMethod("scale",e)}setTransform(...e){return this._callContextMethod("setTransform",e)}transform(...e){return this._callContextMethod("transform",e)}translateTransform(...e){return this._callContextMethod("translate",e)}clear(){return this._callContextMethod("clear",[])}get fillStyle(){return this._context.fillStyle}set fillStyle(e){this._context.fillStyle=e}get strokeStyle(){return this._context.strokeStyle}set strokeStyle(e){this._context.strokeStyle=e}clone(e=!1){return e?new i(this._context.clone()):(this._ownedContext=null,new i(this._context))}lineStyle(e,t,r){N($,"Graphics#lineStyle is no longer needed. Use Graphics#setStrokeStyle to set the stroke style.");let s={};return e&&(s.width=e),t&&(s.color=t),r&&(s.alpha=r),this.context.strokeStyle=s,this}beginFill(e,t){N($,"Graphics#beginFill is no longer needed. Use Graphics#fill to fill the shape with the desired style.");let r={};return e!==void 0&&(r.color=e),t!==void 0&&(r.alpha=t),this.context.fillStyle=r,this}endFill(){N($,"Graphics#endFill is no longer needed. Use Graphics#fill to fill the shape with the desired style."),this.context.fill();let e=this.context.strokeStyle;return(e.width!==Qe.defaultStrokeStyle.width||e.color!==Qe.defaultStrokeStyle.color||e.alpha!==Qe.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return N($,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return N($,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return N($,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return N($,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return N($,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return N($,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});var p0,g0,x0=b(()=>{"use strict";p0={name:"local-uniform-msdf-bit",vertex:{header:`
|
|
369
|
+
struct LocalUniforms {
|
|
370
|
+
uColor:vec4<f32>,
|
|
371
|
+
uTransformMatrix:mat3x3<f32>,
|
|
372
|
+
uDistance: f32,
|
|
373
|
+
uRound:f32,
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
@group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
|
|
377
|
+
`,main:`
|
|
378
|
+
vColor *= localUniforms.uColor;
|
|
379
|
+
modelMatrix *= localUniforms.uTransformMatrix;
|
|
380
|
+
`,end:`
|
|
381
|
+
if(localUniforms.uRound == 1)
|
|
382
|
+
{
|
|
383
|
+
vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
|
|
384
|
+
}
|
|
385
|
+
`},fragment:{header:`
|
|
386
|
+
struct LocalUniforms {
|
|
387
|
+
uColor:vec4<f32>,
|
|
388
|
+
uTransformMatrix:mat3x3<f32>,
|
|
389
|
+
uDistance: f32
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
@group(2) @binding(0) var<uniform> localUniforms : LocalUniforms;
|
|
393
|
+
`,main:`
|
|
394
|
+
outColor = vec4<f32>(calculateMSDFAlpha(outColor, localUniforms.uColor, localUniforms.uDistance));
|
|
395
|
+
`}},g0={name:"local-uniform-msdf-bit",vertex:{header:`
|
|
396
|
+
uniform mat3 uTransformMatrix;
|
|
397
|
+
uniform vec4 uColor;
|
|
398
|
+
uniform float uRound;
|
|
399
|
+
`,main:`
|
|
400
|
+
vColor *= uColor;
|
|
401
|
+
modelMatrix *= uTransformMatrix;
|
|
402
|
+
`,end:`
|
|
403
|
+
if(uRound == 1.)
|
|
404
|
+
{
|
|
405
|
+
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
406
|
+
}
|
|
407
|
+
`},fragment:{header:`
|
|
408
|
+
uniform float uDistance;
|
|
409
|
+
`,main:`
|
|
410
|
+
outColor = vec4(calculateMSDFAlpha(outColor, vColor, uDistance));
|
|
411
|
+
`}}});var y0,b0,w0=b(()=>{"use strict";y0={name:"msdf-bit",fragment:{header:`
|
|
412
|
+
fn calculateMSDFAlpha(msdfColor:vec4<f32>, shapeColor:vec4<f32>, distance:f32) -> f32 {
|
|
413
|
+
|
|
414
|
+
// MSDF
|
|
415
|
+
var median = msdfColor.r + msdfColor.g + msdfColor.b -
|
|
416
|
+
min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -
|
|
417
|
+
max(msdfColor.r, max(msdfColor.g, msdfColor.b));
|
|
418
|
+
|
|
419
|
+
// SDF
|
|
420
|
+
median = min(median, msdfColor.a);
|
|
421
|
+
|
|
422
|
+
var screenPxDistance = distance * (median - 0.5);
|
|
423
|
+
var alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);
|
|
424
|
+
if (median < 0.01) {
|
|
425
|
+
alpha = 0.0;
|
|
426
|
+
} else if (median > 0.99) {
|
|
427
|
+
alpha = 1.0;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
// Gamma correction for coverage-like alpha
|
|
431
|
+
var luma: f32 = dot(shapeColor.rgb, vec3<f32>(0.299, 0.587, 0.114));
|
|
432
|
+
var gamma: f32 = mix(1.0, 1.0 / 2.2, luma);
|
|
433
|
+
var coverage: f32 = pow(shapeColor.a * alpha, gamma);
|
|
434
|
+
|
|
435
|
+
return coverage;
|
|
436
|
+
|
|
437
|
+
}
|
|
438
|
+
`}},b0={name:"msdf-bit",fragment:{header:`
|
|
439
|
+
float calculateMSDFAlpha(vec4 msdfColor, vec4 shapeColor, float distance) {
|
|
440
|
+
|
|
441
|
+
// MSDF
|
|
442
|
+
float median = msdfColor.r + msdfColor.g + msdfColor.b -
|
|
443
|
+
min(msdfColor.r, min(msdfColor.g, msdfColor.b)) -
|
|
444
|
+
max(msdfColor.r, max(msdfColor.g, msdfColor.b));
|
|
445
|
+
|
|
446
|
+
// SDF
|
|
447
|
+
median = min(median, msdfColor.a);
|
|
448
|
+
|
|
449
|
+
float screenPxDistance = distance * (median - 0.5);
|
|
450
|
+
float alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);
|
|
451
|
+
|
|
452
|
+
if (median < 0.01) {
|
|
453
|
+
alpha = 0.0;
|
|
454
|
+
} else if (median > 0.99) {
|
|
455
|
+
alpha = 1.0;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
// Gamma correction for coverage-like alpha
|
|
459
|
+
float luma = dot(shapeColor.rgb, vec3(0.299, 0.587, 0.114));
|
|
460
|
+
float gamma = mix(1.0, 1.0 / 2.2, luma);
|
|
461
|
+
float coverage = pow(shapeColor.a * alpha, gamma);
|
|
462
|
+
|
|
463
|
+
return coverage;
|
|
464
|
+
}
|
|
465
|
+
`}}});var ud,hd,kc,_0=b(()=>{re();Wa();ch();hh();Xa();fh();cn();pr();x0();w0();kc=class extends It{constructor(e){let t=new Ne({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uDistance:{value:4,type:"f32"},uRound:{value:0,type:"f32"}});ud??(ud=Li({name:"sdf-shader",bits:[Ha,$a(e),p0,y0,Wi]})),hd??(hd=Vi({name:"sdf-shader",bits:[ja,qa(e),g0,b0,Hi]})),super({glProgram:hd,gpuProgram:ud,resources:{localUniforms:t,batchSamplers:Ya(e)}})}}});var vc,S0=b(()=>{He();pe();vc=class extends ie{constructor(){super(...arguments),this.chars=Object.create(null),this.lineHeight=0,this.fontFamily="",this.fontMetrics={fontSize:0,ascent:0,descent:0},this.baseLineOffset=0,this.distanceField={type:"none",range:0},this.pages=[],this.applyFillAsTint=!0,this.baseMeasurementFontSize=100,this.baseRenderedFontSize=100}get font(){return N($,"BitmapFont.font is deprecated, please use BitmapFont.fontFamily instead."),this.fontFamily}get pageTextures(){return N($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}get size(){return N($,"BitmapFont.size is deprecated, please use BitmapFont.fontMetrics.fontSize instead."),this.fontMetrics.fontSize}get distanceFieldRange(){return N($,"BitmapFont.distanceFieldRange is deprecated, please use BitmapFont.distanceField.range instead."),this.distanceField.range}get distanceFieldType(){return N($,"BitmapFont.distanceFieldType is deprecated, please use BitmapFont.distanceField.type instead."),this.distanceField.type}destroy(e=!1){this.emit("destroy",this),this.removeAllListeners();for(let t in this.chars)this.chars[t].texture?.destroy();this.chars=null,e&&(this.pages.forEach(t=>t.texture.destroy(!0)),this.pages=null)}}});var T0,dd,v0=b(()=>{je();$e();Tn();Ia();Te();Ii();pe();kn();_c();ad();Sn();S0();T0=class k0 extends vc{constructor(e){super(),this.resolution=1,this.pages=[],this._padding=0,this._measureCache=Object.create(null),this._currentChars=[],this._currentX=0,this._currentY=0,this._currentMaxCharHeight=0,this._currentPageIndex=-1,this._skipKerning=!1;let t={...k0.defaultOptions,...e};this._textureSize=t.textureSize,this._mipmap=t.mipmap;let r=t.style.clone();t.overrideFill&&(r._fill.color=16777215,r._fill.alpha=1,r._fill.texture=O.WHITE,r._fill.fill=null),this.applyFillAsTint=t.overrideFill;let s=r.fontSize;r.fontSize=this.baseMeasurementFontSize;let n=ri(r);t.overrideSize?r._stroke&&(r._stroke.width*=this.baseRenderedFontSize/s):r.fontSize=this.baseRenderedFontSize=s,this._style=r,this._skipKerning=t.skipKerning??!1,this.resolution=t.resolution??1,this._padding=t.padding??4,t.textureStyle&&(this._textureStyle=t.textureStyle instanceof tt?t.textureStyle:new tt(t.textureStyle)),this.fontMetrics=Xe.measureFont(n),this.lineHeight=r.lineHeight||this.fontMetrics.fontSize||r.fontSize}ensureCharacters(e){let t=Xe.graphemeSegmenter(e).filter(g=>!this._currentChars.includes(g)).filter((g,y,x)=>x.indexOf(g)===y);if(!t.length)return;this._currentChars=[...this._currentChars,...t];let r;this._currentPageIndex===-1?r=this._nextPage():r=this.pages[this._currentPageIndex];let{canvas:s,context:n}=r.canvasAndContext,o=r.texture.source,a=this._style,c=this._currentX,l=this._currentY,u=this._currentMaxCharHeight,h=this.baseRenderedFontSize/this.baseMeasurementFontSize,d=this._padding*h,f=!1,m=s.width/this.resolution,p=s.height/this.resolution;for(let g=0;g<t.length;g++){let y=t[g],x=Xe.measureText(y,a,s,!1);x.lineHeight=x.height;let w=x.width*h,_=Math.ceil((a.fontStyle==="italic"?2:1)*w),S=x.height*h,T=_+d*2,v=S+d*2;if(f=!1,y!==`
|
|
466
|
+
`&&y!=="\r"&&y!==" "&&y!==" "&&(f=!0,u=Math.ceil(Math.max(v,u))),c+T>m&&(l+=u,u=v,c=0,l+u>p)){o.update();let P=this._nextPage();s=P.canvasAndContext.canvas,n=P.canvasAndContext.context,o=P.texture.source,c=0,l=0,u=0}let M=w/h-(a.dropShadow?.distance??0)-(a._stroke?.width??0);if(this.chars[y]={id:y.codePointAt(0),xOffset:-this._padding,yOffset:-this._padding,xAdvance:M,kerning:{}},f){this._drawGlyph(n,x,c+d,l+d,h,a);let P=o.width*h,C=o.height*h,E=new Z(c/P*o.width,l/C*o.height,T/P*o.width,v/C*o.height);this.chars[y].texture=new O({source:o,frame:E}),c+=Math.ceil(T)}}o.update(),this._currentX=c,this._currentY=l,this._currentMaxCharHeight=u,this._skipKerning&&this._applyKerning(t,n)}get pageTextures(){return N($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}_applyKerning(e,t){let r=this._measureCache;for(let s=0;s<e.length;s++){let n=e[s];for(let o=0;o<this._currentChars.length;o++){let a=this._currentChars[o],c=r[n];c||(c=r[n]=t.measureText(n).width);let l=r[a];l||(l=r[a]=t.measureText(a).width);let u=t.measureText(n+a).width,h=u-(c+l);h&&(this.chars[n].kerning[a]=h),u=t.measureText(n+a).width,h=u-(c+l),h&&(this.chars[a].kerning[n]=h)}}}_nextPage(){this._currentPageIndex++;let e=this.resolution,t=Bt.getOptimalCanvasAndContext(this._textureSize,this._textureSize,e);this._setupContext(t.context,this._style,e);let r=e*(this.baseRenderedFontSize/this.baseMeasurementFontSize),s=new O({source:new Pt({resource:t.canvas,resolution:r,alphaMode:"premultiply-alpha-on-upload",autoGenerateMipmaps:this._mipmap})});this._textureStyle&&(s.source.style=this._textureStyle);let n={canvasAndContext:t,texture:s};return this.pages[this._currentPageIndex]=n,n}_setupContext(e,t,r){t.fontSize=this.baseRenderedFontSize,e.scale(r,r),e.font=ri(t),t.fontSize=this.baseMeasurementFontSize,e.textBaseline=t.textBaseline;let s=t._stroke,n=s?.width??0;if(s&&(e.lineWidth=n,e.lineJoin=s.join,e.miterLimit=s.miterLimit,e.strokeStyle=ts(s,e)),t._fill&&(e.fillStyle=ts(t._fill,e)),t.dropShadow){let o=t.dropShadow,a=X.shared.setValue(o.color).toArray(),c=o.blur*r,l=o.distance*r;e.shadowColor=`rgba(${a[0]*255},${a[1]*255},${a[2]*255},${o.alpha})`,e.shadowBlur=c,e.shadowOffsetX=Math.cos(o.angle)*l,e.shadowOffsetY=Math.sin(o.angle)*l}else e.shadowColor="black",e.shadowBlur=0,e.shadowOffsetX=0,e.shadowOffsetY=0}_drawGlyph(e,t,r,s,n,o){let a=t.text,c=t.fontProperties,u=(o._stroke?.width??0)*n,h=r+u/2,d=s-u/2,f=c.descent*n,m=t.lineHeight*n;o.stroke&&u&&e.strokeText(a,h,d+m-f),o._fill&&e.fillText(a,h,d+m-f)}destroy(){super.destroy();for(let e=0;e<this.pages.length;e++){let{canvasAndContext:t,texture:r}=this.pages[e];Bt.returnCanvasAndContext(t),r.destroy(!0)}this.pages=null}};T0.defaultOptions={textureSize:512,style:new it,mipmap:!0};dd=T0});function Pc(i,e,t,r){let s={width:0,height:0,offsetY:0,scale:e.fontSize/t.baseMeasurementFontSize,lines:[{width:0,charPositions:[],spaceWidth:0,spacesIndex:[],chars:[]}]};s.offsetY=t.baseLineOffset;let n=s.lines[0],o=null,a=!0,c={spaceWord:!1,width:0,start:0,index:0,positions:[],chars:[]},l=m=>{let p=n.width;for(let g=0;g<c.index;g++){let y=m.positions[g];n.chars.push(m.chars[g]),n.charPositions.push(y+p)}n.width+=m.width,a=!1,c.width=0,c.index=0,c.chars.length=0},u=()=>{let m=n.chars.length-1;if(r){let p=n.chars[m];for(;p===" ";)n.width-=t.chars[p].xAdvance,p=n.chars[--m]}s.width=Math.max(s.width,n.width),n={width:0,charPositions:[],chars:[],spaceWidth:0,spacesIndex:[]},a=!0,s.lines.push(n),s.height+=t.lineHeight},h=t.baseMeasurementFontSize/e.fontSize,d=e.letterSpacing*h,f=e.wordWrapWidth*h;for(let m=0;m<i.length+1;m++){let p,g=m===i.length;g||(p=i[m]);let y=t.chars[p]||t.chars[" "];if(/(?:\s)/.test(p)||p==="\r"||p===`
|
|
467
|
+
`||g){if(!a&&e.wordWrap&&n.width+c.width-d>f?(u(),l(c),g||n.charPositions.push(0)):(c.start=n.width,l(c),g||n.charPositions.push(0)),p==="\r"||p===`
|
|
468
|
+
`)n.width!==0&&u();else if(!g){let S=y.xAdvance+(y.kerning[o]||0)+d;n.width+=S,n.spaceWidth=S,n.spacesIndex.push(n.charPositions.length),n.chars.push(p)}}else{let _=y.kerning[o]||0,S=y.xAdvance+_+d;c.positions[c.index++]=c.width+_,c.chars.push(p),c.width+=S}o=p}return u(),e.align==="center"?rk(s):e.align==="right"?ik(s):e.align==="justify"&&sk(s),s}function rk(i){for(let e=0;e<i.lines.length;e++){let t=i.lines[e],r=i.width/2-t.width/2;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=r}}function ik(i){for(let e=0;e<i.lines.length;e++){let t=i.lines[e],r=i.width-t.width;for(let s=0;s<t.charPositions.length;s++)t.charPositions[s]+=r}}function sk(i){let e=i.width;for(let t=0;t<i.lines.length;t++){let r=i.lines[t],s=0,n=r.spacesIndex[s++],o=0,a=r.spacesIndex.length,l=(e-r.width)/a;for(let u=0;u<r.charPositions.length;u++)u===n&&(n=r.spacesIndex[s++],o+=l),r.charPositions[u]+=o}}var fd=b(()=>{"use strict"});function P0(i){if(i==="")return[];typeof i=="string"&&(i=[i]);let e=[];for(let t=0,r=i.length;t<r;t++){let s=i[t];if(Array.isArray(s)){if(s.length!==2)throw new Error(`[BitmapFont]: Invalid character range length, expecting 2 got ${s.length}.`);if(s[0].length===0||s[1].length===0)throw new Error("[BitmapFont]: Invalid character delimiter.");let n=s[0].charCodeAt(0),o=s[1].charCodeAt(0);if(o<n)throw new Error("[BitmapFont]: Invalid character range.");for(let a=n,c=o;a<=c;a++)e.push(String.fromCharCode(a))}else e.push(...Array.from(s))}if(e.length===0)throw new Error("[BitmapFont]: Empty set when resolving characters.");return e}var C0=b(()=>{"use strict"});var Cc,md,E0,A0=b(()=>{tn();pe();ze();kn();Sn();v0();fd();C0();Cc=0,md=class{constructor(){this.ALPHA=[["a","z"],["A","Z"]," "],this.NUMERIC=[["0","9"]],this.ALPHANUMERIC=[["a","z"],["A","Z"],["0","9"]," "],this.ASCII=[[" ","~"]],this.defaultOptions={chars:this.ALPHANUMERIC,resolution:1,padding:4,skipKerning:!1,textureStyle:null}}getFont(e,t){let r=`${t.fontFamily}-bitmap`,s=!0;if(t._fill.fill&&!t._stroke)r+=t._fill.fill.styleKey,s=!1;else if(t._stroke||t.dropShadow){let o=t.styleKey;o=o.substring(0,o.lastIndexOf("-")),r=`${o}-bitmap`,s=!1}if(!ye.has(r)){let o=new dd({style:t,overrideFill:s,overrideSize:!0,...this.defaultOptions});Cc++,Cc>50&&q("BitmapText",`You have dynamically created ${Cc} bitmap fonts, this can be inefficient. Try pre installing your font styles using \`BitmapFont.install({name:"style1", style})\``),o.once("destroy",()=>{Cc--,ye.remove(r)}),ye.set(r,o)}let n=ye.get(r);return n.ensureCharacters?.(e),n}getLayout(e,t,r=!0){let s=this.getFont(e,t),n=Xe.graphemeSegmenter(e);return Pc(n,t,s,r)}measureText(e,t,r=!0){return this.getLayout(e,t,r)}install(...e){let t=e[0];typeof t=="string"&&(t={name:t,style:e[1],chars:e[2]?.chars,resolution:e[2]?.resolution,padding:e[2]?.padding,skipKerning:e[2]?.skipKerning},N($,"BitmapFontManager.install(name, style, options) is deprecated, use BitmapFontManager.install({name, style, ...options})"));let r=t?.name;if(!r)throw new Error("[BitmapFontManager] Property `name` is required.");t={...this.defaultOptions,...t};let s=t.style,n=s instanceof it?s:new it(s),o=n._fill.fill!==null&&n._fill.fill!==void 0,a=new dd({style:n,overrideFill:o,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1,textureStyle:t.textureStyle}),c=P0(t.chars);return a.ensureCharacters(c.join("")),ye.set(`${r}-bitmap`,a),a.once("destroy",()=>ye.remove(`${r}-bitmap`)),a}uninstall(e){let t=`${e}-bitmap`,r=ye.get(t);r&&r.destroy()}},E0=new md});function I0(i,e){e.groupTransform=i.groupTransform,e.groupColorAlpha=i.groupColorAlpha,e.groupColor=i.groupColor,e.groupBlendMode=i.groupBlendMode,e.globalDisplayStatus=i.globalDisplayStatus,e.groupTransform=i.groupTransform,e.localDisplayStatus=i.localDisplayStatus,e.groupAlpha=i.groupAlpha,e._roundPixels=i._roundPixels}var pd,Pn,M0=b(()=>{tn();G();m0();kn();_0();A0();fd();pd=class extends Tc{destroy(){this.context.customShader&&this.context.customShader.destroy(),super.destroy()}},Pn=class{constructor(e){this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBitmapText")}validateRenderable(e){let t=this._getGpuBitmapText(e);return e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,t)),this._renderer.renderPipes.graphics.validateRenderable(t)}addRenderable(e,t){let r=this._getGpuBitmapText(e);I0(e,r),e._didTextUpdate&&(e._didTextUpdate=!1,this._updateContext(e,r)),this._renderer.renderPipes.graphics.addRenderable(r,t),r.context.customShader&&this._updateDistanceField(e)}updateRenderable(e){let t=this._getGpuBitmapText(e);I0(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:r}=t,s=E0.getFont(e.text,e._style);r.clear(),s.distanceField.type!=="none"&&(r.customShader||(r.customShader=new kc(this._renderer.limits.maxBatchableTextures)));let n=Xe.graphemeSegmenter(e.text),o=e._style,a=s.baseLineOffset,c=Pc(n,o,s,!0),l=0,u=o.padding,h=c.scale,d=c.width,f=c.height+c.offsetY;o._stroke&&(d+=o._stroke.width/h,f+=o._stroke.width/h),r.translate(-e._anchor._x*d-u,-e._anchor._y*f-u).scale(h,h);let m=s.applyFillAsTint?o._fill.color:16777215;for(let p=0;p<c.lines.length;p++){let g=c.lines[p];for(let y=0;y<g.charPositions.length;y++){let x=n[l++],w=s.chars[x];w?.texture&&r.texture(w.texture,m||"black",Math.round(g.charPositions[y]+w.xOffset),Math.round(a+w.yOffset))}a+=s.lineHeight}}_getGpuBitmapText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new pd;return e._gpuData[this._renderer.uid]=t,this._updateContext(e,t),t}_updateDistanceField(e){let t=this._getGpuBitmapText(e).context,r=e._style.fontFamily,s=ye.get(`${r}-bitmap`),{a:n,b:o,c:a,d:c}=e.groupTransform,l=Math.sqrt(n*n+o*o),u=Math.sqrt(a*a+c*c),h=(Math.abs(l)+Math.abs(u))/2,d=s.baseRenderedFontSize/e._style.fontSize,f=h*s.distanceField.range*(1/d);t.customShader.resources.localUniforms.uniforms.uDistance=f}destroy(){this._renderer=null}};Pn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"bitmapText"}});var gd=b(()=>{G();M0();L.add(Pn)});var Ec,B0=b(()=>{Lh();Ec=class extends Ki{constructor(e){super(),this.generatingTexture=!1,this._renderer=e,e.runners.resolutionChange.add(this)}resolutionChange(){let e=this.renderable;e._autoResolution&&e.onViewUpdate()}destroy(){this._renderer.htmlText.returnTexturePromise(this.texturePromise),this.texturePromise=null,this._renderer=null}}});var Cn,F0=b(()=>{G();Te();Nh();B0();Cn=class{constructor(e){this._renderer=e}validateRenderable(e){return e._didTextUpdate}addRenderable(e,t){let r=this._getGpuText(e);e._didTextUpdate&&(this._updateGpuText(e).catch(s=>{console.error(s)}),e._didTextUpdate=!1,yn(r,e)),this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuText(e);t._batcher.updateElement(t)}async _updateGpuText(e){e._didTextUpdate=!1;let t=this._getGpuText(e);if(t.generatingTexture)return;t.texturePromise&&(this._renderer.htmlText.returnTexturePromise(t.texturePromise),t.texturePromise=null),t.generatingTexture=!0,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution;let r=this._renderer.htmlText.getTexturePromise(e);t.texturePromise=r,t.texture=await r;let s=e.renderGroup||e.parentRenderGroup;s&&(s.structureDidChange=!0),t.generatingTexture=!1,yn(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new Ec(this._renderer);return t.renderable=e,t.transform=e.groupTransform,t.texture=O.EMPTY,t.bounds={minX:0,maxX:1,minY:0,maxY:0},t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._resolution=e._autoResolution?this._renderer.resolution:e.resolution,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};Cn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"htmlText"}});function D0(){let{userAgent:i}=xe.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var R0=b(()=>{vt()});var O0,U0,rs,xd=b(()=>{"use strict";O0="http://www.w3.org/2000/svg",U0="http://www.w3.org/1999/xhtml",rs=class{constructor(){this.svgRoot=document.createElementNS(O0,"svg"),this.foreignObject=document.createElementNS(O0,"foreignObject"),this.domElement=document.createElementNS(U0,"div"),this.styleElement=document.createElementNS(U0,"style"),this.image=new Image;let{foreignObject:e,svgRoot:t,styleElement:r,domElement:s}=this;e.setAttribute("width","10000"),e.setAttribute("height","10000"),e.style.overflow="hidden",t.appendChild(e),e.appendChild(r),e.appendChild(s)}}});function N0(i){let e=i._stroke,t=i._fill,s=[`div { ${[`color: ${X.shared.setValue(t.color).toHex()}`,`font-size: ${i.fontSize}px`,`font-family: ${i.fontFamily}`,`font-weight: ${i.fontWeight}`,`font-style: ${i.fontStyle}`,`font-variant: ${i.fontVariant}`,`letter-spacing: ${i.letterSpacing}px`,`text-align: ${i.align}`,`padding: ${i.padding}px`,`white-space: ${i.whiteSpace==="pre"&&i.wordWrap?"pre-wrap":i.whiteSpace}`,...i.lineHeight?[`line-height: ${i.lineHeight}px`]:[],...i.wordWrap?[`word-wrap: ${i.breakWords?"break-all":"break-word"}`,`max-width: ${i.wordWrapWidth}px`]:[],...e?[V0(e)]:[],...i.dropShadow?[L0(i.dropShadow)]:[],...i.cssOverrides].join(";")} }`];return nk(i.tagStyles,s),s.join(" ")}function L0(i){let e=X.shared.setValue(i.color).setAlpha(i.alpha).toHexa(),t=Math.round(Math.cos(i.angle)*i.distance),r=Math.round(Math.sin(i.angle)*i.distance),s=`${t}px ${r}px`;return i.blur>0?`text-shadow: ${s} ${i.blur}px ${e}`:`text-shadow: ${s} ${e}`}function V0(i){return[`-webkit-text-stroke-width: ${i.width}px`,`-webkit-text-stroke-color: ${X.shared.setValue(i.color).toHex()}`,`text-stroke-width: ${i.width}px`,`text-stroke-color: ${X.shared.setValue(i.color).toHex()}`,"paint-order: stroke"].join(";")}function nk(i,e){for(let t in i){let r=i[t],s=[];for(let n in r)G0[n]?s.push(G0[n](r[n])):z0[n]&&s.push(z0[n].replace("{{VALUE}}",r[n]));e.push(`${t} { ${s.join(";")} }`)}}var z0,G0,W0=b(()=>{je();z0={fontSize:"font-size: {{VALUE}}px",fontFamily:"font-family: {{VALUE}}",fontWeight:"font-weight: {{VALUE}}",fontStyle:"font-style: {{VALUE}}",fontVariant:"font-variant: {{VALUE}}",letterSpacing:"letter-spacing: {{VALUE}}px",align:"text-align: {{VALUE}}",padding:"padding: {{VALUE}}px",whiteSpace:"white-space: {{VALUE}}",lineHeight:"line-height: {{VALUE}}px",wordWrapWidth:"max-width: {{VALUE}}px"},G0={fill:i=>`color: ${X.shared.setValue(i).toHex()}`,breakWords:i=>`word-wrap: ${i?"break-all":"break-word"}`,stroke:V0,dropShadow:L0}});var Ac,H0=b(()=>{ze();Sn();W0();Ac=class i extends it{constructor(e={}){super(e),this._cssOverrides=[],this.cssOverrides=e.cssOverrides??[],this.tagStyles=e.tagStyles??{}}set cssOverrides(e){this._cssOverrides=e instanceof Array?e:[e],this.update()}get cssOverrides(){return this._cssOverrides}update(){this._cssStyle=null,super.update()}clone(){return new i({align:this.align,breakWords:this.breakWords,dropShadow:this.dropShadow?{...this.dropShadow}:null,fill:this._fill,fontFamily:this.fontFamily,fontSize:this.fontSize,fontStyle:this.fontStyle,fontVariant:this.fontVariant,fontWeight:this.fontWeight,letterSpacing:this.letterSpacing,lineHeight:this.lineHeight,padding:this.padding,stroke:this._stroke,whiteSpace:this.whiteSpace,wordWrap:this.wordWrap,wordWrapWidth:this.wordWrapWidth,cssOverrides:this.cssOverrides,tagStyles:{...this.tagStyles}})}get cssStyle(){return this._cssStyle||(this._cssStyle=N0(this)),this._cssStyle}addOverride(...e){let t=e.filter(r=>!this.cssOverrides.includes(r));t.length>0&&(this.cssOverrides.push(...t),this.update())}removeOverride(...e){let t=e.filter(r=>this.cssOverrides.includes(r));t.length>0&&(this.cssOverrides=this.cssOverrides.filter(r=>!t.includes(r)),this.update())}set fill(e){typeof e!="string"&&typeof e!="number"&&q("[HTMLTextStyle] only color fill is not supported by HTMLText"),super.fill=e}set stroke(e){e&&typeof e!="string"&&typeof e!="number"&&q("[HTMLTextStyle] only color stroke is not supported by HTMLText"),super.stroke=e}}});function j0(i,e){let t=e.fontFamily,r=[],s={},n=/font-family:([^;"\s]+)/g,o=i.match(n);function a(c){s[c]||(r.push(c),s[c]=!0)}if(Array.isArray(t))for(let c=0;c<t.length;c++)a(t[c]);else a(t);o&&o.forEach(c=>{let l=c.split(":")[1].trim();a(l)});for(let c in e.tagStyles){let l=e.tagStyles[c].fontFamily;a(l)}return r}var $0=b(()=>{"use strict"});async function q0(i){let t=await(await xe.get().fetch(i)).blob(),r=new FileReader;return await new Promise((n,o)=>{r.onloadend=()=>n(r.result),r.onerror=o,r.readAsDataURL(t)})}var X0=b(()=>{vt()});async function yd(i,e){let t=await q0(e);return`@font-face {
|
|
469
|
+
font-family: "${i.fontFamily}";
|
|
470
|
+
src: url('${t}');
|
|
471
|
+
font-weight: ${i.fontWeight};
|
|
472
|
+
font-style: ${i.fontStyle};
|
|
473
|
+
}`}var Y0=b(()=>{X0()});async function K0(i,e,t){let r=i.filter(s=>ye.has(`${s}-and-url`)).map((s,n)=>{if(!Ic.has(s)){let{url:o}=ye.get(`${s}-and-url`);n===0?Ic.set(s,yd({fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:s},o)):Ic.set(s,yd({fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:s},o))}return Ic.get(s)});return(await Promise.all(r)).join(`
|
|
474
|
+
`)}var Ic,Z0=b(()=>{tn();Y0();Ic=new Map});function Q0(i,e,t,r,s){let{domElement:n,styleElement:o,svgRoot:a}=s;n.innerHTML=`<style>${e.cssStyle}</style><div style='padding:0;'>${i}</div>`,n.setAttribute("style",`transform: scale(${t});transform-origin: top left; display: inline-block`),o.textContent=r;let{width:c,height:l}=s.image;return a.setAttribute("width",c.toString()),a.setAttribute("height",l.toString()),new XMLSerializer().serializeToString(a)}var J0=b(()=>{"use strict"});function ew(i,e){let t=Bt.getOptimalCanvasAndContext(i.width,i.height,e),{context:r}=t;return r.clearRect(0,0,i.width,i.height),r.drawImage(i,0,0),t}var tw=b(()=>{Tn()});function rw(i,e,t){return new Promise(async r=>{t&&await new Promise(s=>setTimeout(s,100)),i.onload=()=>{r()},i.src=`data:image/svg+xml;charset=utf8,${encodeURIComponent(e)}`,i.crossOrigin="anonymous"})}var iw=b(()=>{"use strict"});function nw(i,e,t,r){r||(r=sw||(sw=new rs));let{domElement:s,styleElement:n,svgRoot:o}=r;s.innerHTML=`<style>${e.cssStyle};</style><div style='padding:0'>${i}</div>`,s.setAttribute("style","transform-origin: top left; display: inline-block"),t&&(n.textContent=t),document.body.appendChild(o);let a=s.getBoundingClientRect();o.remove();let c=e.padding*2;return{width:a.width-c,height:a.height-c}}var sw,ow=b(()=>{xd()});var En,aw=b(()=>{G();Tn();Mi();an();R0();ze();Lr();sd();xd();H0();$0();Z0();J0();tw();iw();ow();En=class{constructor(e){this._renderer=e,this._createCanvas=e.type===At.WEBGPU}getTexture(e){return this.getTexturePromise(e)}getTexturePromise(e){return this._buildTexturePromise(e)}async _buildTexturePromise(e){let{text:t,style:r,resolution:s,textureStyle:n}=e,o=be.get(rs),a=j0(t,r),c=await K0(a,r,Ac.defaultTextStyle),l=nw(t,r,c,o),u=Math.ceil(Math.ceil(Math.max(1,l.width)+r.padding*2)*s),h=Math.ceil(Math.ceil(Math.max(1,l.height)+r.padding*2)*s),d=o.image,f=2;d.width=(u|0)+f,d.height=(h|0)+f;let m=Q0(t,r,s,c,o);await rw(d,m,D0()&&a.length>0);let p=d,g;this._createCanvas&&(g=ew(d,s));let y=wc(g?g.canvas:p,d.width-f,d.height-f,s);return n&&(y.source.style=n),this._createCanvas&&(this._renderer.texture.initSource(y.source),Bt.returnCanvasAndContext(g)),be.return(o),y}returnTexturePromise(e){e.then(t=>{this._cleanUp(t)}).catch(()=>{q("HTMLTextSystem: Failed to clean texture")})}_cleanUp(e){Me.returnTexture(e,!0),e.source.resource=null,e.source.uploadMethodId="unknown"}destroy(){this._renderer=null}};En.extension={type:[A.WebGLSystem,A.WebGPUSystem,A.CanvasSystem],name:"htmlText"}});var bd=b(()=>{G();F0();aw();L.add(En);L.add(Cn)});var cw,is,Mc=b(()=>{Ui();Oi();on();pe();cw=class lw extends Et{constructor(...e){let t=e[0]??{};t instanceof Float32Array&&(N($,"use new MeshGeometry({ positions, uvs, indices }) instead"),t={positions:t,uvs:e[1],indices:e[2]}),t={...lw.defaultOptions,...t};let r=t.positions||new Float32Array([0,0,1,0,1,1,0,1]),s=t.uvs;s||(t.positions?s=new Float32Array(r.length):s=new Float32Array([0,0,1,0,1,1,0,1]));let n=t.indices||new Uint32Array([0,1,2,0,2,3]),o=t.shrinkBuffersToFit,a=new ke({data:r,label:"attribute-mesh-positions",shrinkToFit:o,usage:ee.VERTEX|ee.COPY_DST}),c=new ke({data:s,label:"attribute-mesh-uvs",shrinkToFit:o,usage:ee.VERTEX|ee.COPY_DST}),l=new ke({data:n,label:"index-mesh-buffer",shrinkToFit:o,usage:ee.INDEX|ee.COPY_DST});super({attributes:{aPosition:{buffer:a,format:"float32x2",stride:8,offset:0},aUV:{buffer:c,format:"float32x2",stride:8,offset:0}},indexBuffer:l,topology:t.topology}),this.batchMode="auto"}get positions(){return this.attributes.aPosition.buffer.data}set positions(e){this.attributes.aPosition.buffer.data=e}get uvs(){return this.attributes.aUV.buffer.data}set uvs(e){this.attributes.aUV.buffer.data=e}get indices(){return this.indexBuffer.data}set indices(e){this.indexBuffer.data=e}};cw.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};is=cw});var An,GW,uw,hw=b(()=>{"use strict";An={name:"local-uniform-bit",vertex:{header:`
|
|
475
|
+
|
|
476
|
+
struct LocalUniforms {
|
|
477
|
+
uTransformMatrix:mat3x3<f32>,
|
|
478
|
+
uColor:vec4<f32>,
|
|
479
|
+
uRound:f32,
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
@group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;
|
|
483
|
+
`,main:`
|
|
484
|
+
vColor *= localUniforms.uColor;
|
|
485
|
+
modelMatrix *= localUniforms.uTransformMatrix;
|
|
486
|
+
`,end:`
|
|
487
|
+
if(localUniforms.uRound == 1)
|
|
488
|
+
{
|
|
489
|
+
vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
|
|
490
|
+
}
|
|
491
|
+
`}},GW={...An,vertex:{...An.vertex,header:An.vertex.header.replace("group(1)","group(2)")}},uw={name:"local-uniform-bit",vertex:{header:`
|
|
492
|
+
|
|
493
|
+
uniform mat3 uTransformMatrix;
|
|
494
|
+
uniform vec4 uColor;
|
|
495
|
+
uniform float uRound;
|
|
496
|
+
`,main:`
|
|
497
|
+
vColor *= uColor;
|
|
498
|
+
modelMatrix = uTransformMatrix;
|
|
499
|
+
`,end:`
|
|
500
|
+
if(uRound == 1.)
|
|
501
|
+
{
|
|
502
|
+
gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
|
|
503
|
+
}
|
|
504
|
+
`}}});var dw,fw,mw=b(()=>{"use strict";dw={name:"tiling-bit",vertex:{header:`
|
|
505
|
+
struct TilingUniforms {
|
|
506
|
+
uMapCoord:mat3x3<f32>,
|
|
507
|
+
uClampFrame:vec4<f32>,
|
|
508
|
+
uClampOffset:vec2<f32>,
|
|
509
|
+
uTextureTransform:mat3x3<f32>,
|
|
510
|
+
uSizeAnchor:vec4<f32>
|
|
511
|
+
};
|
|
512
|
+
|
|
513
|
+
@group(2) @binding(0) var<uniform> tilingUniforms: TilingUniforms;
|
|
514
|
+
@group(2) @binding(1) var uTexture: texture_2d<f32>;
|
|
515
|
+
@group(2) @binding(2) var uSampler: sampler;
|
|
516
|
+
`,main:`
|
|
517
|
+
uv = (tilingUniforms.uTextureTransform * vec3(uv, 1.0)).xy;
|
|
518
|
+
|
|
519
|
+
position = (position - tilingUniforms.uSizeAnchor.zw) * tilingUniforms.uSizeAnchor.xy;
|
|
520
|
+
`},fragment:{header:`
|
|
521
|
+
struct TilingUniforms {
|
|
522
|
+
uMapCoord:mat3x3<f32>,
|
|
523
|
+
uClampFrame:vec4<f32>,
|
|
524
|
+
uClampOffset:vec2<f32>,
|
|
525
|
+
uTextureTransform:mat3x3<f32>,
|
|
526
|
+
uSizeAnchor:vec4<f32>
|
|
527
|
+
};
|
|
528
|
+
|
|
529
|
+
@group(2) @binding(0) var<uniform> tilingUniforms: TilingUniforms;
|
|
530
|
+
@group(2) @binding(1) var uTexture: texture_2d<f32>;
|
|
531
|
+
@group(2) @binding(2) var uSampler: sampler;
|
|
532
|
+
`,main:`
|
|
533
|
+
|
|
534
|
+
var coord = vUV + ceil(tilingUniforms.uClampOffset - vUV);
|
|
535
|
+
coord = (tilingUniforms.uMapCoord * vec3(coord, 1.0)).xy;
|
|
536
|
+
var unclamped = coord;
|
|
537
|
+
coord = clamp(coord, tilingUniforms.uClampFrame.xy, tilingUniforms.uClampFrame.zw);
|
|
538
|
+
|
|
539
|
+
var bias = 0.;
|
|
540
|
+
|
|
541
|
+
if(unclamped.x == coord.x && unclamped.y == coord.y)
|
|
542
|
+
{
|
|
543
|
+
bias = -32.;
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
outColor = textureSampleBias(uTexture, uSampler, coord, bias);
|
|
547
|
+
`}},fw={name:"tiling-bit",vertex:{header:`
|
|
548
|
+
uniform mat3 uTextureTransform;
|
|
549
|
+
uniform vec4 uSizeAnchor;
|
|
550
|
+
|
|
551
|
+
`,main:`
|
|
552
|
+
uv = (uTextureTransform * vec3(aUV, 1.0)).xy;
|
|
553
|
+
|
|
554
|
+
position = (position - uSizeAnchor.zw) * uSizeAnchor.xy;
|
|
555
|
+
`},fragment:{header:`
|
|
556
|
+
uniform sampler2D uTexture;
|
|
557
|
+
uniform mat3 uMapCoord;
|
|
558
|
+
uniform vec4 uClampFrame;
|
|
559
|
+
uniform vec2 uClampOffset;
|
|
560
|
+
`,main:`
|
|
561
|
+
|
|
562
|
+
vec2 coord = vUV + ceil(uClampOffset - vUV);
|
|
563
|
+
coord = (uMapCoord * vec3(coord, 1.0)).xy;
|
|
564
|
+
vec2 unclamped = coord;
|
|
565
|
+
coord = clamp(coord, uClampFrame.xy, uClampFrame.zw);
|
|
566
|
+
|
|
567
|
+
outColor = texture(uTexture, coord, unclamped == coord ? 0.0 : -32.0);// lod-bias very negative to force lod 0
|
|
568
|
+
|
|
569
|
+
`}}});var wd,_d,Bc,pw=b(()=>{re();Wa();hw();Xa();cn();pr();Te();mw();Bc=class extends It{constructor(){wd??(wd=Li({name:"tiling-sprite-shader",bits:[An,dw,Wi]})),_d??(_d=Vi({name:"tiling-sprite-shader",bits:[uw,fw,Hi]}));let e=new Ne({uMapCoord:{value:new F,type:"mat3x3<f32>"},uClampFrame:{value:new Float32Array([0,0,1,1]),type:"vec4<f32>"},uClampOffset:{value:new Float32Array([0,0]),type:"vec2<f32>"},uTextureTransform:{value:new F,type:"mat3x3<f32>"},uSizeAnchor:{value:new Float32Array([100,100,.5,.5]),type:"vec4<f32>"}});super({glProgram:_d,gpuProgram:wd,resources:{localUniforms:new Ne({uTransformMatrix:{value:new F,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}}),tilingUniforms:e,uTexture:O.EMPTY.source,uSampler:O.EMPTY.source.style}})}updateUniforms(e,t,r,s,n,o){let a=this.resources.tilingUniforms,c=o.width,l=o.height,u=o.textureMatrix,h=a.uniforms.uTextureTransform;h.set(r.a*c/e,r.b*c/t,r.c*l/e,r.d*l/t,r.tx/e,r.ty/t),h.invert(),a.uniforms.uMapCoord=u.mapCoord,a.uniforms.uClampFrame=u.uClampFrame,a.uniforms.uClampOffset=u.uClampOffset,a.uniforms.uTextureTransform=h,a.uniforms.uSizeAnchor[0]=e,a.uniforms.uSizeAnchor[1]=t,a.uniforms.uSizeAnchor[2]=s,a.uniforms.uSizeAnchor[3]=n,o&&(this.resources.uTexture=o.source,this.resources.uSampler=o.source.style)}}});var Fc,gw=b(()=>{Mc();Fc=class extends is{constructor(){super({positions:new Float32Array([0,0,1,0,1,1,0,1]),uvs:new Float32Array([0,0,1,0,1,1,0,1]),indices:new Uint32Array([0,1,2,0,2,3])})}}});function xw(i,e){let t=i.anchor.x,r=i.anchor.y;e[0]=-t*i.width,e[1]=-r*i.height,e[2]=(1-t)*i.width,e[3]=-r*i.height,e[4]=(1-t)*i.width,e[5]=(1-r)*i.height,e[6]=-t*i.width,e[7]=(1-r)*i.height}var yw=b(()=>{"use strict"});function bw(i,e,t,r){let s=0,n=i.length/(e||2),o=r.a,a=r.b,c=r.c,l=r.d,u=r.tx,h=r.ty;for(t*=e;s<n;){let d=i[t],f=i[t+1];i[t]=o*d+c*f+u,i[t+1]=a*d+l*f+h,t+=e,s++}}var ww=b(()=>{"use strict"});function _w(i,e){let t=i.texture,r=t.frame.width,s=t.frame.height,n=0,o=0;i.applyAnchorToTexture&&(n=i.anchor.x,o=i.anchor.y),e[0]=e[6]=-n,e[2]=e[4]=1-n,e[1]=e[3]=-o,e[5]=e[7]=1-o;let a=F.shared;a.copyFrom(i._tileTransform.matrix),a.tx/=i.width,a.ty/=i.height,a.invert(),a.scale(i.width/r,i.height/s),bw(e,2,0,a)}var Sw=b(()=>{re();ww()});var Dc,Sd,In,Tw=b(()=>{G();sn();ic();an();fn();sc();Mc();pw();gw();yw();Sw();Dc=new Fc,Sd=class{constructor(){this.canBatch=!0,this.geometry=new is({indices:Dc.indices.slice(),positions:Dc.positions.slice(),uvs:Dc.uvs.slice()})}destroy(){this.geometry.destroy(),this.shader?.destroy()}},In=class{constructor(e){this._state=Jr.default2d,this._renderer=e}validateRenderable(e){let t=this._getTilingSpriteData(e),r=t.canBatch;this._updateCanBatch(e);let s=t.canBatch;if(s&&s===r){let{batchableMesh:n}=t;return!n._batcher.checkAndUpdateTexture(n,e.texture)}return r!==s}addRenderable(e,t){let r=this._renderer.renderPipes.batch;this._updateCanBatch(e);let s=this._getTilingSpriteData(e),{geometry:n,canBatch:o}=s;if(o){s.batchableMesh||(s.batchableMesh=new xr);let a=s.batchableMesh;e.didViewUpdate&&(this._updateBatchableMesh(e),a.geometry=n,a.renderable=e,a.transform=e.groupTransform,a.setTexture(e._texture)),a.roundPixels=this._renderer._roundPixels|e._roundPixels,r.addToBatch(a,t)}else r.break(t),s.shader||(s.shader=new Bc),this.updateRenderable(e),t.add(e)}execute(e){let{shader:t}=this._getTilingSpriteData(e);t.groups[0]=this._renderer.globalUniforms.bindGroup;let r=t.resources.localUniforms.uniforms;r.uTransformMatrix=e.groupTransform,r.uRound=this._renderer._roundPixels|e._roundPixels,gr(e.groupColorAlpha,r.uColor,0),this._state.blendMode=Kt(e.groupBlendMode,e.texture._source),this._renderer.encoder.draw({geometry:Dc,shader:t,state:this._state})}updateRenderable(e){let t=this._getTilingSpriteData(e),{canBatch:r}=t;if(r){let{batchableMesh:s}=t;e.didViewUpdate&&this._updateBatchableMesh(e),s._batcher.updateElement(s)}else if(e.didViewUpdate){let{shader:s}=t;s.updateUniforms(e.width,e.height,e._tileTransform.matrix,e.anchor.x,e.anchor.y,e.texture)}}_getTilingSpriteData(e){return e._gpuData[this._renderer.uid]||this._initTilingSpriteData(e)}_initTilingSpriteData(e){let t=new Sd;return t.renderable=e,e._gpuData[this._renderer.uid]=t,t}_updateBatchableMesh(e){let t=this._getTilingSpriteData(e),{geometry:r}=t,s=e.texture.source.style;s.addressMode!=="repeat"&&(s.addressMode="repeat",s.update()),_w(e,r.uvs),xw(e,r.positions)}destroy(){this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),r=e.texture,s=!0;return this._renderer.type===At.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=r.textureMatrix.isSimple&&(s||r.source.isPowerOfTwo),t.canBatch}};In.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"tilingSprite"}});var Td=b(()=>{G();Tw();L.add(In)});var kw,Pw,Cw=b(()=>{pe();Mc();kw=class vw extends is{constructor(...e){super({});let t=e[0]??{};typeof t=="number"&&(N($,"PlaneGeometry constructor changed please use { width, height, verticesX, verticesY } instead"),t={width:t,height:e[1],verticesX:e[2],verticesY:e[3]}),this.build(t)}build(e){e={...vw.defaultOptions,...e},this.verticesX=this.verticesX??e.verticesX,this.verticesY=this.verticesY??e.verticesY,this.width=this.width??e.width,this.height=this.height??e.height;let t=this.verticesX*this.verticesY,r=[],s=[],n=[],o=this.verticesX-1,a=this.verticesY-1,c=this.width/o,l=this.height/a;for(let h=0;h<t;h++){let d=h%this.verticesX,f=h/this.verticesX|0;r.push(d*c,f*l),s.push(d/o,f/a)}let u=o*a;for(let h=0;h<u;h++){let d=h%o,f=h/o|0,m=f*this.verticesX+d,p=f*this.verticesX+d+1,g=(f+1)*this.verticesX+d,y=(f+1)*this.verticesX+d+1;n.push(m,p,g,p,y,g)}this.buffers[0].data=new Float32Array(r),this.buffers[1].data=new Float32Array(s),this.indexBuffer.data=new Uint32Array(n),this.buffers[0].update(),this.buffers[1].update(),this.indexBuffer.update()}};kw.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};Pw=kw});var Ew,Iw,Mw=b(()=>{Cw();Ew=class Aw extends Pw{constructor(e={}){e={...Aw.defaultOptions,...e},super({width:e.width,height:e.height,verticesX:4,verticesY:4}),this.update(e)}update(e){this.width=e.width??this.width,this.height=e.height??this.height,this._originalWidth=e.originalWidth??this._originalWidth,this._originalHeight=e.originalHeight??this._originalHeight,this._leftWidth=e.leftWidth??this._leftWidth,this._rightWidth=e.rightWidth??this._rightWidth,this._topHeight=e.topHeight??this._topHeight,this._bottomHeight=e.bottomHeight??this._bottomHeight,this._anchorX=e.anchor?.x,this._anchorY=e.anchor?.y,this.updateUvs(),this.updatePositions()}updatePositions(){let e=this.positions,{width:t,height:r,_leftWidth:s,_rightWidth:n,_topHeight:o,_bottomHeight:a,_anchorX:c,_anchorY:l}=this,u=s+n,h=t>u?1:t/u,d=o+a,f=r>d?1:r/d,m=Math.min(h,f),p=c*t,g=l*r;e[0]=e[8]=e[16]=e[24]=-p,e[2]=e[10]=e[18]=e[26]=s*m-p,e[4]=e[12]=e[20]=e[28]=t-n*m-p,e[6]=e[14]=e[22]=e[30]=t-p,e[1]=e[3]=e[5]=e[7]=-g,e[9]=e[11]=e[13]=e[15]=o*m-g,e[17]=e[19]=e[21]=e[23]=r-a*m-g,e[25]=e[27]=e[29]=e[31]=r-g,this.getBuffer("aPosition").update()}updateUvs(){let e=this.uvs;e[0]=e[8]=e[16]=e[24]=0,e[1]=e[3]=e[5]=e[7]=0,e[6]=e[14]=e[22]=e[30]=1,e[25]=e[27]=e[29]=e[31]=1;let t=1/this._originalWidth,r=1/this._originalHeight;e[2]=e[10]=e[18]=e[26]=t*this._leftWidth,e[9]=e[11]=e[13]=e[15]=r*this._topHeight,e[4]=e[12]=e[20]=e[28]=1-t*this._rightWidth,e[17]=e[19]=e[21]=e[23]=1-r*this._bottomHeight,this.getBuffer("aUV").update()}};Ew.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};Iw=Ew});var kd,Mn,Bw=b(()=>{G();sc();Mw();kd=class extends xr{constructor(){super(),this.geometry=new Iw}destroy(){this.geometry.destroy()}},Mn=class{constructor(e){this._renderer=e}addRenderable(e,t){let r=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.geometry.update(e),t.setTexture(e._texture)}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=e._gpuData[this._renderer.uid]=new kd,r=t;return r.renderable=e,r.transform=e.groupTransform,r.texture=e._texture,r.roundPixels=this._renderer._roundPixels|e._roundPixels,e.didViewUpdate||this._updateBatchableSprite(e,r),t}destroy(){this._renderer=null}};Mn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"nineSliceSprite"}});var vd=b(()=>{G();Bw();L.add(Mn)});var Bn,Fw=b(()=>{G();Bn=class{constructor(e){this._renderer=e}push(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",canBundle:!1,action:"pushFilter",container:t,filterEffect:e})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}execute(e){e.action==="pushFilter"?this._renderer.filter.push(e):e.action==="popFilter"&&this._renderer.filter.pop()}destroy(){this._renderer=null}};Bn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"filter"}});function Dw(i,e){e.clear();let t=e.matrix;for(let r=0;r<i.length;r++){let s=i[r];s.globalDisplayStatus<7||(e.matrix=s.worldTransform,e.addBounds(s.bounds))}return e.matrix=t,e}var Rw=b(()=>{"use strict"});var ok,Pd,Fn,Ow=b(()=>{G();re();rn();on();pr();Te();Mi();an();ft();Rw();ze();ok=new Et({attributes:{aPosition:{buffer:new Float32Array([0,0,1,0,1,1,0,1]),format:"float32x2",stride:8,offset:0}},indexBuffer:new Uint32Array([0,1,2,0,2,3])}),Pd=class{constructor(){this.skip=!1,this.inputTexture=null,this.backTexture=null,this.filters=null,this.bounds=new le,this.container=null,this.blendRequired=!1,this.outputRenderSurface=null,this.outputOffset={x:0,y:0},this.globalFrame={x:0,y:0,width:0,height:0}}},Fn=class{constructor(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new Ne({uInputSize:{value:new Float32Array(4),type:"vec4<f32>"},uInputPixel:{value:new Float32Array(4),type:"vec4<f32>"},uInputClamp:{value:new Float32Array(4),type:"vec4<f32>"},uOutputFrame:{value:new Float32Array(4),type:"vec4<f32>"},uGlobalFrame:{value:new Float32Array(4),type:"vec4<f32>"},uOutputTexture:{value:new Float32Array(4),type:"vec4<f32>"}}),this._globalFilterBindGroup=new rt({}),this.renderer=e}get activeBackTexture(){return this._activeFilterData?.backTexture}push(e){let t=this.renderer,r=e.filterEffect.filters,s=this._pushFilterData();s.skip=!1,s.filters=r,s.container=e.container,s.outputRenderSurface=t.renderTarget.renderSurface;let n=t.renderTarget.renderTarget.colorTexture.source,o=n.resolution,a=n.antialias;if(r.length===0){s.skip=!0;return}let c=s.bounds;if(e.renderables?Dw(e.renderables,c):e.filterEffect.filterArea?(c.clear(),c.addRect(e.filterEffect.filterArea),c.applyMatrix(e.container.worldTransform)):e.container.getFastGlobalBounds(!0,c),e.container){let p=(e.container.renderGroup||e.container.parentRenderGroup).cacheToLocalTransform;p&&c.applyMatrix(p)}if(this._calculateFilterBounds(s,t.renderTarget.rootViewPort,a,o,1),s.skip)return;let l=this._getPreviousFilterData(),u=o,h=0,d=0;l&&(h=l.bounds.minX,d=l.bounds.minY,u=l.inputTexture.source._resolution),s.outputOffset.x=c.minX-h,s.outputOffset.y=c.minY-d;let f=s.globalFrame;if(f.x=h*u,f.y=d*u,f.width=n.width*u,f.height=n.height*u,s.backTexture=O.EMPTY,s.blendRequired){t.renderTarget.finishRenderPass();let m=t.renderTarget.getRenderTarget(s.outputRenderSurface);s.backTexture=this.getBackTexture(m,c,l?.bounds)}s.inputTexture=Me.getOptimalTexture(c.width,c.height,s.resolution,s.antialias),t.renderTarget.bind(s.inputTexture,!0),t.globalUniforms.push({offset:c})}generateFilteredTexture({texture:e,filters:t}){let r=this._pushFilterData();this._activeFilterData=r,r.skip=!1,r.filters=t;let s=e.source,n=s.resolution,o=s.antialias;if(t.length===0)return r.skip=!0,e;let a=r.bounds;if(a.addRect(e.frame),this._calculateFilterBounds(r,a.rectangle,o,n,0),r.skip)return e;let c=n,l=0,u=0;r.outputOffset.x=-a.minX,r.outputOffset.y=-a.minY;let h=r.globalFrame;h.x=l*c,h.y=u*c,h.width=s.width*c,h.height=s.height*c,r.outputRenderSurface=Me.getOptimalTexture(a.width,a.height,r.resolution,r.antialias),r.backTexture=O.EMPTY,r.inputTexture=e,this.renderer.renderTarget.finishRenderPass(),this._applyFiltersToTexture(r,!0);let f=r.outputRenderSurface;return f.source.alphaMode="premultiplied-alpha",f}pop(){let e=this.renderer,t=this._popFilterData();t.skip||(e.globalUniforms.pop(),e.renderTarget.finishRenderPass(),this._activeFilterData=t,this._applyFiltersToTexture(t,!1),t.blendRequired&&Me.returnTexture(t.backTexture),Me.returnTexture(t.inputTexture))}getBackTexture(e,t,r){let s=e.colorTexture.source._resolution,n=Me.getOptimalTexture(t.width,t.height,s,!1),o=t.minX,a=t.minY;r&&(o-=r.minX,a-=r.minY),o=Math.floor(o*s),a=Math.floor(a*s);let c=Math.ceil(t.width*s),l=Math.ceil(t.height*s);return this.renderer.renderTarget.copyToTexture(e,n,{x:o,y:a},{width:c,height:l},{x:0,y:0}),n}applyFilter(e,t,r,s){let n=this.renderer,o=this._activeFilterData,a=o.outputRenderSurface,c=this._filterGlobalUniforms,l=c.uniforms,u=l.uOutputFrame,h=l.uInputSize,d=l.uInputPixel,f=l.uInputClamp,m=l.uGlobalFrame,p=l.uOutputTexture;a===r?(u[0]=o.outputOffset.x,u[1]=o.outputOffset.y):(u[0]=0,u[1]=0),u[2]=t.frame.width,u[3]=t.frame.height,h[0]=t.source.width,h[1]=t.source.height,h[2]=1/h[0],h[3]=1/h[1],d[0]=t.source.pixelWidth,d[1]=t.source.pixelHeight,d[2]=1/d[0],d[3]=1/d[1],f[0]=.5*d[2],f[1]=.5*d[3],f[2]=t.frame.width*h[2]-.5*d[2],f[3]=t.frame.height*h[3]-.5*d[3],m[0]=o.globalFrame.x,m[1]=o.globalFrame.y,m[2]=o.globalFrame.width,m[3]=o.globalFrame.height,r instanceof O&&(r.source.resource=null);let g=this.renderer.renderTarget.getRenderTarget(r);if(n.renderTarget.bind(r,!!s),r instanceof O?(p[0]=r.frame.width,p[1]=r.frame.height):(p[0]=g.width,p[1]=g.height),p[2]=g.isRoot?-1:1,c.update(),n.renderPipes.uniformBatch){let y=n.renderPipes.uniformBatch.getUboResource(c);this._globalFilterBindGroup.setResource(y,0)}else this._globalFilterBindGroup.setResource(c,0);this._globalFilterBindGroup.setResource(t.source,1),this._globalFilterBindGroup.setResource(t.source.style,2),e.groups[0]=this._globalFilterBindGroup,n.encoder.draw({geometry:ok,shader:e,state:e._state,topology:"triangle-list"}),n.type===At.WEBGL&&n.renderTarget.finishRenderPass()}calculateSpriteMatrix(e,t){let r=this._activeFilterData,s=e.set(r.inputTexture._source.width,0,0,r.inputTexture._source.height,r.bounds.minX,r.bounds.minY),n=t.worldTransform.copyTo(F.shared),o=t.renderGroup||t.parentRenderGroup;return o&&o.cacheToLocalTransform&&n.prepend(o.cacheToLocalTransform),n.invert(),s.prepend(n),s.scale(1/t.texture.frame.width,1/t.texture.frame.height),s.translate(t.anchor.x,t.anchor.y),s}destroy(){}_applyFiltersToTexture(e,t){let r=e.inputTexture,s=e.bounds,n=e.filters;if(this._globalFilterBindGroup.setResource(r.source.style,2),this._globalFilterBindGroup.setResource(e.backTexture.source,3),n.length===1)n[0].apply(this,r,e.outputRenderSurface,t);else{let o=e.inputTexture,a=Me.getOptimalTexture(s.width,s.height,o.source._resolution,!1),c=a,l=0;for(l=0;l<n.length-1;++l){n[l].apply(this,o,c,!0);let h=o;o=c,c=h}n[l].apply(this,o,e.outputRenderSurface,t),Me.returnTexture(a)}}_calculateFilterBounds(e,t,r,s,n){let o=this.renderer,a=e.bounds,c=e.filters,l=1/0,u=0,h=!0,d=!1,f=!1,m=!0;for(let p=0;p<c.length;p++){let g=c[p];if(l=Math.min(l,g.resolution==="inherit"?s:g.resolution),u+=g.padding,g.antialias==="off"?h=!1:g.antialias==="inherit"&&h&&(h=r),g.clipToViewport||(m=!1),!!!(g.compatibleRenderers&o.type)){f=!1;break}if(g.blendRequired&&!(o.backBuffer?.useBackBuffer??!0)){q("Blend filter requires backBuffer on WebGL renderer to be enabled. Set `useBackBuffer: true` in the renderer options."),f=!1;break}f=g.enabled||f,d||(d=g.blendRequired)}if(!f){e.skip=!0;return}if(m&&a.fitBounds(0,t.width/s,0,t.height/s),a.scale(l).ceil().scale(1/l).pad((u|0)*n),!a.isPositive){e.skip=!0;return}e.antialias=h,e.resolution=l,e.blendRequired=d}_popFilterData(){return this._filterStackIndex--,this._filterStack[this._filterStackIndex]}_getPreviousFilterData(){let e,t=this._filterStackIndex-1;for(;t>1&&(t--,e=this._filterStack[t],!!e.skip););return e}_pushFilterData(){let e=this._filterStack[this._filterStackIndex];return e||(e=this._filterStack[this._filterStackIndex]=new Pd),this._filterStackIndex++,e}};Fn.extension={type:[A.WebGLSystem,A.WebGPUSystem],name:"filter"}});var Cd=b(()=>{G();Fw();Ow();L.add(Fn);L.add(Bn)});var ak={};var Uw=b(()=>{ig();Tu();dg();mg();Pa();Ba();Dh();Rh();Gh();ld();gd();bd();Td();vd();Cd()});var ck={};var Gw=b(()=>{Tu();Pa();Ba();Dh();Rh();Gh();ld();gd();bd();Td();vd();Cd()});function jc(i,e){return{error:t=>i.error({...e,...t}),rpcRequest:t=>i.rpcRequest({...e,...t}),rpcError:t=>i.rpcError({...e,...t})}}var Un=()=>i=>({plain:i.none,errMessage:i.mix(i.brightRed,i.bold),errName:i.red,errStack:i.mix(i.red,i.dim),timestamp:i.blue,timestampErr:i.red});function Nd(){return Un()}var tr=Object.freeze({black:"\x1B[30m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",brightBlack:"\x1B[90m",brightRed:"\x1B[91m",brightGreen:"\x1B[92m",brightYellow:"\x1B[93m",brightBlue:"\x1B[94m",brightMagenta:"\x1B[95m",brightCyan:"\x1B[96m",brightWhite:"\x1B[97m",bgBlack:"\x1B[40m",bgRed:"\x1B[41m",bgGreen:"\x1B[42m",bgYellow:"\x1B[43m",bgBlue:"\x1B[44m",bgMagenta:"\x1B[45m",bgCyan:"\x1B[46m",bgWhite:"\x1B[47m",bgBrightBlack:"\x1B[100m",bgBrightRed:"\x1B[101m",bgBrightGreen:"\x1B[102m",bgBrightYellow:"\x1B[103m",bgBrightBlue:"\x1B[104m",bgBrightMagenta:"\x1B[105m",bgBrightCyan:"\x1B[106m",bgBrightWhite:"\x1B[107m",bold:"\x1B[1m",dim:"\x1B[2m",italic:"\x1B[3m",underline:"\x1B[4m",inverse:"\x1B[7m",hidden:"\x1B[8m",strikethrough:"\x1B[9m",reset:"\x1B[0m"});var zn=()=>({none:i=>i,uncolor:o_,mix:a_,hex:c_,rgb:Ld,bgRgb:l_});function o_(i){return i.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function a_(...i){return e=>{for(let t of i)e=t(e);return e}}function c_(i){i=i.replace(/^#/,"");let e,t,r,s;if(i.length===3)e=parseInt(i.split("").map(n=>n+n).join(""),16);else if(i.length===6)e=parseInt(i,16);else throw new Error("Invalid hex color");return t=e>>16&255,r=e>>8&255,s=e&255,Ld(t,r,s)}function Ld(i,e,t){let r=`\x1B[38;2;${i};${e};${t}m`;return s=>`${r}${s}${tr.reset}`}function l_(i,e,t){let r=`\x1B[48;2;${i};${e};${t}m`;return s=>`${r}${s}${tr.reset}`}var us={...Object.fromEntries(Object.entries(tr).map(([i])=>[i,e=>e])),...zn()};var hs={...Object.fromEntries(Object.entries(tr).map(([i,e])=>[i,t=>`${e}${t}${tr.reset}`])),...zn()};function $c(){return typeof Deno<"u"&&typeof Deno.version<"u"}function qc(){return typeof process<"u"&&process.versions&&process.versions.node}function Vd(){return qc()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":$c()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var Xc=()=>Vd()?hs:us;var Gn=()=>({colors:i,theme:e})=>{let t=e(i);function r(o){let a=o.stack?`
|
|
570
|
+
`+o.stack+`
|
|
571
|
+
`:"";return[t.errName(o.name+":"),t.errMessage(o.message)].join(" ")+t.errStack(a)}function s(o){return o&&o instanceof Error?r(o):o}function n(o){return o&&o instanceof Error?r(o):t.errMessage(o)}return{stdout:o=>o.map(s),stderr:o=>o.map(n)}};function ds(...i){return e=>({stdout:t=>{for(let r of i)t=r(e).stdout(t);return t},stderr:t=>{for(let r of i)t=r(e).stderr(t);return t}})}function u_(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var Nn=i=>({colors:e,theme:t})=>{let r={...u_(),...i},s=t(e),n=new Date(r.now()),o=n.getUTCFullYear().toString().padStart(4,"0"),a=(n.getUTCMonth()+1).toString().padStart(2,"0"),c=n.getUTCDate().toString().padStart(2,"0"),l=`${o}-${a}-${c}`,u=n.getUTCHours().toString().padStart(2,"0"),h=n.getUTCMinutes().toString().padStart(2,"0"),d=n.getUTCSeconds().toString().padStart(2,"0"),f=n.getUTCMilliseconds().toString().padStart(3,"0"),m=`${u}:${h}:${d}.${f}`,p=`${l}::${m}`;return{stdout:g=>[s.timestamp(p),...g],stderr:g=>[s.timestampErr(p),...[r.icon].filter(Boolean),...g]}};function Wd(){return ds(Gn(),Nn())}var Ln=()=>({stdout:async i=>{await Deno.stdout.write(new TextEncoder().encode(i+`
|
|
572
|
+
`))},stderr:async i=>{await Deno.stderr.write(new TextEncoder().encode(i+`
|
|
573
|
+
`))}});var Vn=()=>({stdout:async i=>void process.stdout.write(i+`
|
|
574
|
+
`),stderr:async i=>void process.stderr.write(i+`
|
|
575
|
+
`)});var Wn=()=>({stdout:async i=>console.log(i),stderr:async i=>console.error(i)});var Hd=()=>$c()?Ln():qc()?Vn():Wn();var jd=()=>({stdout:async()=>{},stderr:async()=>{}});function $d(){return()=>({stdout:i=>i,stderr:i=>i})}var si=class i{static writers={auto:Hd,void:jd,deno:Ln,node:Vn,console:Wn};static colors={auto:Xc,colorful:()=>hs,colorless:()=>us};static themes={auto:Nd,basic:Un};static shapers={auto:Wd,none:$d,errors:Gn,timestamp:Nn};writer=i.writers.auto();colors=i.colors.auto();theme=i.themes.auto();shaper=i.shapers.auto();async log(...e){await this.writer.stdout(this.shaper(this).stdout(e).join(" "))}async error(...e){await this.writer.stderr(this.shaper(this).stderr(e).join(" "))}setWriter(e){return this.writer=e,this}setColors(e){return this.colors=e,this}setTheme(e){return this.theme=e,this}setShaper(...e){return this.shaper=ds(...e),this}};var fs=class extends si{static dummy(){return new this().setWriter(si.writers.void())}rpcRequest=async({request:e,...t})=>{let r=this.colors.none;this.log(...this.#e(t),r(`${e.method}()`))};rpcError=async({request:e,error:t,...r})=>{this.error(...this.#e(r),`${e.method}()`,t)};#e({meta:e,label:t,remote:r}){let s=this.colors.mix(this.colors.blue,this.colors.dim),n=this.colors.mix(this.colors.cyan,this.colors.dim);return[e?this.#t(e):void 0,t||void 0,r===void 0?void 0:r?s("<-"):n("->")].filter(Boolean)}#t(e){let{headers:t}=e.request;return[this.colors.yellow(`[${e.ip}]`),this.colors.green(t.origin?t.origin:"(no-origin)")].join(" ")}};var xt=class extends fs{rpcRequest=async()=>{}};var yt=Object.freeze({eq(i,e){if(i.length!==e.length)return!1;for(let t=0;t<=i.length;t++)if(i.at(t)!==e.at(t))return!1;return!0},random(i){return crypto.getRandomValues(new Uint8Array(i))}});var Tr=Object.freeze({fromBytes(i){return[...i].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(i){if(i.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(i.length/2);for(let t=0;t<i.length;t+=2)e[t/2]=parseInt(i.slice(t,t+2),16);return e},random(i=32){return this.fromBytes(yt.random(i))},string(i){return Tr.fromBytes(i)},bytes(i){return Tr.toBytes(i)}});var Yc=58,Hn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",Kc=Object.freeze({fromBytes(i){let e=BigInt("0x"+Tr.fromBytes(i)),t="";for(;e>0;){let r=e%BigInt(Yc);e=e/BigInt(Yc),t=Hn[Number(r)]+t}for(let r of i)if(r===0)t=Hn[0]+t;else break;return t},toBytes(i){let e=BigInt(0);for(let o of i){let a=Hn.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(Yc)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let r=Tr.toBytes(t),s=0;for(let o of i)if(o===Hn[0])s++;else break;let n=new Uint8Array(s+r.length);return n.set(r,s),n},random(i=32){return this.fromBytes(yt.random(i))},string(i){return Kc.fromBytes(i)},bytes(i){return Kc.toBytes(i)}});var qd=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,r)=>[t,r])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,c=0,l=[];for(let u of e){if(u===this.lexicon.padding?.character)continue;let h=this.lookup[u];if(h===void 0)throw new Error(`Invalid character: ${u}`);for(a=a<<t|h,c+=t;c>=8;)c-=8,l.push(a>>c&255)}return new Uint8Array(l)}let r=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let c=this.lookup[a];if(c===void 0)throw new Error(`Invalid character: ${a}`);r=r*s+BigInt(c)}let o=[];for(;r>0n;)o.unshift(Number(r%256n)),r=r/256n;return new Uint8Array(o)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,a=0,c="";for(let l of e)for(o=o<<8|l,a+=8;a>=t;){a-=t;let u=o>>a&(1<<t)-1;c+=this.lexicon.characters[u]}if(a>0){let l=o<<t-a&(1<<t)-1;c+=this.lexicon.characters[l]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let r=0n;for(let o of e)r=(r<<8n)+BigInt(o);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;r>0n;)n=this.lexicon.characters[Number(r%s)]+n,r=r/s;return n}toInteger(e){if(!e)return 0;let t=0n,r=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),r=!0);for(let n of e){let o=this.lookup[n];if(o===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(o)}return Number(r?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,r=BigInt(t?-e:e);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;r>0n;)n=this.lexicon.characters[Number(r%s)]+n,r=r/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(yt.random(e))}};var Zc=Object.freeze({fromBytes(i){return typeof btoa=="function"?btoa(String.fromCharCode(...i)):Buffer.from(i).toString("base64")},toBytes(i){return typeof atob=="function"?Uint8Array.from(atob(i),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(i,"base64"))},random(i=32){return this.fromBytes(yt.random(i))},string(i){return Zc.fromBytes(i)},bytes(i){return Zc.toBytes(i)}});var Xd=Object.freeze({fromBytes(i){return new TextDecoder().decode(i)},toBytes(i){return new TextEncoder().encode(i)},string(i){return Xd.fromBytes(i)},bytes(i){return Xd.toBytes(i)}});var jn=Object.freeze({set:i=>i!=null,unset:i=>i==null,boolean:i=>typeof i=="boolean",number:i=>typeof i=="number",string:i=>typeof i=="string",bigint:i=>typeof i=="bigint",object:i=>typeof i=="object"&&i!==null,array:i=>Array.isArray(i),fn:i=>typeof i=="function",symbol:i=>typeof i=="symbol"});var ms=class extends Error{milliseconds;name=this.constructor.name;constructor(e){super(`deadline exceeded (${(e/1e3).toFixed(1)} seconds)`),this.milliseconds=e}};function $n(i,e){return i<=0||i===1/0?e():new Promise((t,r)=>{let s=setTimeout(()=>r(new ms(i)),i);e().then(t).catch(r).finally(()=>clearTimeout(s))})}function kr(){let i,e,t=new Promise((s,n)=>{i=s,e=n});function r(s){return s.then(i).catch(e),t}return{promise:t,resolve:i,reject:e,entangle:r}}function Yd(i,e){let t=i;for(let r of e)if(t=t[r],jn.unset(t))break;return t}function h_(i){return{map:e=>Kd(i,e),filter:e=>Zd(i,e)}}h_.pipe=Object.freeze({map:i=>e=>Kd(e,i),filter:i=>e=>Zd(e,i)});var Kd=(i,e)=>Object.fromEntries(Object.entries(i).map(([t,r])=>[t,e(r,t)])),Zd=(i,e)=>Object.fromEntries(Object.entries(i).filter(([t,r])=>e(r,t)));function d_(){let i=new Set;function e(n){return i.add(n),()=>{i.delete(n)}}async function t(...n){await Promise.all([...i].map(o=>o(...n)))}async function r(){let{promise:n,resolve:o}=kr(),a=e((...c)=>{o(c),a()});return n}function s(){i.clear()}return e.pub=t,e.sub=e,e.on=e,e.next=r,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.next=r,t.clear=s,[t,e]}function qn(i){let e=d_()[0];return i&&e.sub(i),e}var Dt=class{#e=[];add(...e){return this.#e.push(...e),this}disposable(e){return this.bag(e,()=>e.dispose())}bag(e,t){return this.add(()=>t(e)),e}dispose(){for(let e of this.#e.reverse())e();this.#e=[]}};var rr;(function(i){i.version="2.0";function e(t){return"id"in t?t.id:null}i.getId=e,i.errorCodes={serverError:-32e3,unexposedError:-32001}})(rr||(rr={}));var Xn=class extends Error{name=this.constructor.name},vr=class extends Error{name=this.constructor.name};async function Qd({tap:i,request:e,action:t}){let r=rr.getId(e);try{let s=await t();return r===null?null:{id:r,result:s,jsonrpc:rr.version}}catch(s){return i.rpcError({request:e,error:s}),r===null?null:{id:r,jsonrpc:rr.version,error:s instanceof Xn?{code:rr.errorCodes.serverError,message:s.message}:{code:rr.errorCodes.unexposedError,message:"unexposed error"}}}}function Yn(i){let e=i.tap??new xt;return async t=>{let r=t.method.split("."),s=Yd(i.fns,r),n=async()=>await s(...t.params);return e.rpcRequest({request:t}),await Qd({tap:e,request:t,action:n})}}var Pr=Symbol("tune"),f_=Symbol("query"),m_=Symbol("notify"),p_=Symbol("settings");function Jd(i){function e(t){let r={notify:void 0};return new Proxy(()=>{},{apply:(s,n,o)=>i(t,o,r),get:(s,n)=>{if(n!=="then")return n===Pr?o=>(...a)=>i(t,a,{...r,...o}):n===m_?(...o)=>i(t,o,{...r,notify:!0}):n===f_?(...o)=>i(t,o,{...r,notify:!1}):n===p_?r:(s[n]||(s[n]=e([...t,n])),s[n])},set:(s,n,o)=>(s[n]=o,!0)})}return e([])}function Cr(i){let{endpoint:e,tap:t=new xt}=i,r=1;return Jd(async(s,n,o)=>{let a=o.notify??i.notify??!1,c=o.transfer,l={jsonrpc:"2.0",method:s.join("."),params:n},u=a?l:{...l,id:r++};t.rpcRequest({request:u});let h=await e(u,{transfer:c});if(a&&!h)return null;if(!h)throw new vr("response was null, but shouldn't be, because the request was not a notification");if("error"in h)throw new vr(i.label?`${i.label}: ${h.error.message}`:h.error.message);return h.result})}function ps(i){return Cr({endpoint:Yn(i),tap:i.tap})}var Er=class{recv=qn();sendRequest=qn();sendResponse=qn();static makeEntangledPair({origin:e="example.e280.org"}={}){let t=new this,r=new this,s=[t.sendRequest.sub(o=>r.recv(o,{origin:e})),t.sendResponse.sub(o=>r.recv(o,{origin:e})),r.sendRequest.sub(o=>t.recv(o,{origin:e})),r.sendResponse.sub(o=>t.recv(o,{origin:e}))];return[t,r,()=>s.forEach(o=>o())]}};function Kn(i,e){return i.addEventListener("message",e),()=>i.removeEventListener("message",e)}function ef(i,e){return async(t,{transfer:r}={})=>{if("id"in t){let s=kr();return e(t,r,s.promise),i.wait(t.id,t.method).then(n=>(s.resolve(n),n))}else{let s=Promise.resolve(null);return e(t,r,s),s}}}function tf(i){let e=[],t=[];for(let r of Array.isArray(i)?i:[i])"method"in r?e.push(r):t.push(r);return{requests:e,responses:t}}async function rf(i,e){let t=(await Promise.all(e.map(async r=>i(r)))).filter(r=>r!==null);return t.length===0?null:t.length===1?t[0]:t}var ni=class extends Er{#e=new Dt;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,r)=>e.postMessage(t,r)),this.sendResponse.sub((t,r)=>e.postMessage(t,r)),Kn(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var Zn=class{remote;transfer;constructor(e){this.remote=e}};var Qc=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var Qn=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let r=kr();return this.pending.set(e,{method:t,deferred:r}),await $n(this.timeout,()=>r.promise).catch(s=>{throw s instanceof ms&&(s.message=`request #${e} ${t}(), ${s.message}`),s})}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new vr(e.error.message)):t.deferred.resolve(e))}};var Ar=class{options;remote;remoteEndpoint;#e;#t=new Dt;constructor(e){this.options=e;let{conduit:t,tap:r}=e;this.#e=new Qn(e.timeout??Qc.timeout),this.remoteEndpoint=ef(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Cr({endpoint:this.remoteEndpoint,tap:r&&jc(r,{remote:!0})}),this.#t.add(t.recv.sub(s=>this.recv(s)))}async recv(e){let t=new Zn(this.remote),{conduit:r,rpc:s,tap:n}=this.options,{requests:o,responses:a}=tf(e);for(let h of a)this.#e.deliverResponse(h);if(!s)return;let c=await s(t),l=Yn({fns:c,tap:n&&jc(n,{remote:!1})}),u=await rf(l,o);u&&await r.sendResponse(u,t.transfer)}dispose(){this.#t.dispose()}};var Rt={derive:{host:i=>({host:i.remote.host,get transfer(){return i.transfer},set transfer(e){i.transfer=e}}),work:i=>({work:i.remote,get transfer(){return i.transfer},set transfer(e){i.transfer=e}})},mock:{host:()=>({host:void 0,transfer:void 0}),work:()=>({work:void 0,transfer:void 0})}};var Ot=new xt;async function sf(i,e,t={}){let r=t.tap??Ot,s=new Ar({tap:r,timeout:t.timeout??1/0,conduit:new ni(i.getSelf()),rpc:async n=>e(Rt.derive.host(n))});return await s.remote.infra.ready(),s.remote.host}var st=Object.freeze({eq(i,e){if(i.length!==e.length)return!1;for(let t=0;t<=i.length;t++)if(i.at(t)!==e.at(t))return!1;return!0},random(i){return crypto.getRandomValues(new Uint8Array(i))}});var Le=Object.freeze({fromBytes(i){return[...i].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(i){if(i.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(i.length/2);for(let t=0;t<i.length;t+=2)e[t/2]=parseInt(i.slice(t,t+2),16);return e},random(i=32){return this.fromBytes(st.random(i))},string(i){return Le.fromBytes(i)},bytes(i){return Le.toBytes(i)}});var Jc=["doz","mar","bin","wan","sam","lit","sig","hid","fid","lis","sog","dir","wac","sab","wis","sib","rig","sol","dop","mod","fog","lid","hop","dar","dor","lor","hod","fol","rin","tog","sil","mir","hol","pas","lac","rov","liv","dal","sat","lib","tab","han","tic","pid","tor","bol","fos","dot","los","dil","for","pil","ram","tir","win","tad","bic","dif","roc","wid","bis","das","mid","lop","ril","nar","dap","mol","san","loc","nov","sit","nid","tip","sic","rop","wit","nat","pan","min","rit","pod","mot","tam","tol","sav","pos","nap","nop","som","fin","fon","ban","mor","wor","sip","ron","nor","bot","wic","soc","wat","dol","mag","pic","dav","bid","bal","tim","tas","mal","lig","siv","tag","pad","sal","div","dac","tan","sid","fab","tar","mon","ran","nis","wol","mis","pal","las","dis","map","rab","tob","rol","lat","lon","nod","nav","fig","nom","nib","pag","sop","ral","bil","had","doc","rid","moc","pac","rav","rip","fal","tod","til","tin","hap","mic","fan","pat","tac","lab","mog","sim","son","pin","lom","ric","tap","fir","has","bos","bat","poc","hac","tid","hav","sap","lin","dib","hos","dab","bit","bar","rac","par","lod","dos","bor","toc","hil","mac","tom","dig","fil","fas","mit","hob","har","mig","hin","rad","mas","hal","rag","lag","fad","top","mop","hab","nil","nos","mil","fop","fam","dat","nol","din","hat","nac","ris","fot","rib","hoc","nim","lar","fit","wal","rap","sar","nal","mos","lan","don","dan","lad","dov","riv","bac","pol","lap","tal","pit","nam","bon","ros","ton","fod","pon","sov","noc","sor","lav","mat","mip","fip"];var el=["zod","nec","bud","wes","sev","per","sut","let","ful","pen","syt","dur","wep","ser","wyl","sun","ryp","syx","dyr","nup","heb","peg","lup","dep","dys","put","lug","hec","ryt","tyv","syd","nex","lun","mep","lut","sep","pes","del","sul","ped","tem","led","tul","met","wen","byn","hex","feb","pyl","dul","het","mev","rut","tyl","wyd","tep","bes","dex","sef","wyc","bur","der","nep","pur","rys","reb","den","nut","sub","pet","rul","syn","reg","tyd","sup","sem","wyn","rec","meg","net","sec","mul","nym","tev","web","sum","mut","nyx","rex","teb","fus","hep","ben","mus","wyx","sym","sel","ruc","dec","wex","syr","wet","dyl","myn","mes","det","bet","bel","tux","tug","myr","pel","syp","ter","meb","set","dut","deg","tex","sur","fel","tud","nux","rux","ren","wyt","nub","med","lyt","dus","neb","rum","tyn","seg","lyx","pun","res","red","fun","rev","ref","mec","ted","rus","bex","leb","dux","ryn","num","pyx","ryg","ryx","fep","tyr","tus","tyc","leg","nem","fer","mer","ten","lus","nus","syl","tec","mex","pub","rym","tuc","fyl","lep","deb","ber","mug","hut","tun","byl","sud","pem","dev","lur","def","bus","bep","run","mel","pex","dyt","byt","typ","lev","myl","wed","duc","fur","fex","nul","luc","len","ner","lex","rup","ned","lec","ryd","lyd","fen","wel","nyd","hus","rel","rud","nes","hes","fet","des","ret","dun","ler","nyr","seb","hul","ryl","lud","rem","lys","fyn","wer","ryc","sug","nys","nyl","lyn","dyn","dem","lux","fed","sed","bec","mun","lyr","tes","mud","nyt","byr","sen","weg","fyr","mur","tel","rep","teg","pec","nel","nev","fes"];var Ut={defaults:{groupSize:4,wordSeparator:".",groupSeparator:" "},random(i,e){let t=st.random(i);return this.fromBytes(t,e)},fromBytes(i,e={}){let{groupSize:t=Ut.defaults.groupSize,wordSeparator:r=Ut.defaults.wordSeparator,groupSeparator:s=Ut.defaults.groupSeparator}=e,n=[],o=[];i.forEach((c,l)=>{let u=l%2===0?Jc:el;o.push(u[c]),o.length===2&&(n.push(o.join("")),o=[])}),o.length&&n.push(o.join(""));let a=[];for(let c=0;c<n.length;c+=t)a.push(n.slice(c,c+t).join(r));return a.join(s)},toBytes(i){let e=i.toLowerCase().replace(/[^a-z]/g,"");if(e.length/3%1!==0)throw new Error(`invalid triplet count, ${e.length} does not divide into triplets`);let r=[];for(let s=0;s<e.length;s+=3)r.push(e.slice(s,s+3));return new Uint8Array(r.map((s,n)=>{let a=(n%2===0?Jc:el).findIndex(c=>c===s);if(a===-1)throw new Error(`unknown triplet ${s}`);return a}))},toHex(i){return Le.fromBytes(Ut.toBytes(i))},fromHex(i,e){return Ut.fromBytes(Le.toBytes(i),e)}};var tl=58,Jn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",gs=Object.freeze({fromBytes(i){let e=BigInt("0x"+Le.fromBytes(i)),t="";for(;e>0;){let r=e%BigInt(tl);e=e/BigInt(tl),t=Jn[Number(r)]+t}for(let r of i)if(r===0)t=Jn[0]+t;else break;return t},toBytes(i){let e=BigInt(0);for(let o of i){let a=Jn.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(tl)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let r=Le.toBytes(t),s=0;for(let o of i)if(o===Jn[0])s++;else break;let n=new Uint8Array(s+r.length);return n.set(r,s),n},random(i=32){return this.fromBytes(st.random(i))},string(i){return gs.fromBytes(i)},bytes(i){return gs.toBytes(i)}});var nt={defaults:{delimiter:".",sigilBytes:4,previewBytes:8},toBytes(i){i=i.trim();let e=i.split(/[^a-zA-Z0-9]+/m).filter(Boolean).map(s=>s.trim());if(e.length<2)return Ut.toBytes(e.join(""));let t=e.pop(),r=e.join("");return new Uint8Array([...Ut.toBytes(r),...gs.toBytes(t)])},parse(i,e){let t=nt.toBytes(i);return nt.build.fromBytes(t,e)},build:{fromBytes(i,e={}){let{delimiter:t,previewBytes:r,sigilBytes:s}={...nt.defaults,...e},n=u=>i.length>0?Ut.fromBytes(i.slice(0,u),{wordSeparator:t,groupSeparator:t}):"",o=n(s),a=n(r),c=i.length>r?gs.fromBytes(i.slice(r)):"",l=[a,c].filter(u=>u.length>0).join(t);return{bytes:i,thumbprint:l,preview:a,bulk:c,sigil:o}},fromHex(i,e){let t=Le.toBytes(i);return nt.build.fromBytes(t,e)}},toHex(i){let e=nt.toBytes(i);return Le.fromBytes(e)},fromBytes(i,e){return nt.build.fromBytes(i,e).thumbprint},fromHex(i,e){return nt.fromBytes(Le.toBytes(i),e)},sigil:{fromHex(i,e){return nt.build.fromHex(i,e).sigil},fromBytes(i,e){return nt.build.fromBytes(i,e).sigil}}};var nf=class{lexicon;static lexicons=Object.freeze({base2:{characters:"01"},hex:{characters:"0123456789abcdef"},base36:{characters:"0123456789abcdefghijklmnopqrstuvwxyz"},base58:{characters:"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"},base62:{characters:"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"},base64url:{negativePrefix:"~",characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_"},base64:{characters:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",padding:{character:"=",size:4}}});lookup;negativePrefix;constructor(e){this.lexicon=e,this.lookup=Object.fromEntries([...e.characters].map((t,r)=>[t,r])),this.negativePrefix=e.negativePrefix??"-"}toBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,c=0,l=[];for(let u of e){if(u===this.lexicon.padding?.character)continue;let h=this.lookup[u];if(h===void 0)throw new Error(`Invalid character: ${u}`);for(a=a<<t|h,c+=t;c>=8;)c-=8,l.push(a>>c&255)}return new Uint8Array(l)}let r=0n,s=BigInt(this.lexicon.characters.length),n=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),n=!0);for(let a of e){let c=this.lookup[a];if(c===void 0)throw new Error(`Invalid character: ${a}`);r=r*s+BigInt(c)}let o=[];for(;r>0n;)o.unshift(Number(r%256n)),r=r/256n;return new Uint8Array(o)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let o=0,a=0,c="";for(let l of e)for(o=o<<8|l,a+=8;a>=t;){a-=t;let u=o>>a&(1<<t)-1;c+=this.lexicon.characters[u]}if(a>0){let l=o<<t-a&(1<<t)-1;c+=this.lexicon.characters[l]}if(this.lexicon.padding)for(;c.length%this.lexicon.padding.size!==0;)c+=this.lexicon.padding.character;return c}let r=0n;for(let o of e)r=(r<<8n)+BigInt(o);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;r>0n;)n=this.lexicon.characters[Number(r%s)]+n,r=r/s;return n}toInteger(e){if(!e)return 0;let t=0n,r=!1,s=BigInt(this.lexicon.characters.length);e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),r=!0);for(let n of e){let o=this.lookup[n];if(o===void 0)throw new Error(`Invalid character: ${n}`);t=t*s+BigInt(o)}return Number(r?-t:t)}fromInteger(e){e=Math.floor(e);let t=e<0,r=BigInt(t?-e:e);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),n="";for(;r>0n;)n=this.lexicon.characters[Number(r%s)]+n,r=r/s;return t?`${this.negativePrefix}${n}`:n}random(e=32){return this.fromBytes(st.random(e))}};var rl=Object.freeze({fromBytes(i){return typeof btoa=="function"?btoa(String.fromCharCode(...i)):Buffer.from(i).toString("base64")},toBytes(i){return typeof atob=="function"?Uint8Array.from(atob(i),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(i,"base64"))},random(i=32){return this.fromBytes(st.random(i))},string(i){return rl.fromBytes(i)},bytes(i){return rl.toBytes(i)}});var of=Object.freeze({fromBytes(i){return new TextDecoder().decode(i)},toBytes(i){return new TextEncoder().encode(i)},string(i){return of.fromBytes(i)},bytes(i){return of.toBytes(i)}});var il=Object.freeze({set:i=>i!=null,unset:i=>i==null,boolean:i=>typeof i=="boolean",number:i=>typeof i=="number",string:i=>typeof i=="string",bigint:i=>typeof i=="bigint",object:i=>typeof i=="object"&&i!==null,array:i=>Array.isArray(i),fn:i=>typeof i=="function",symbol:i=>typeof i=="symbol"});function xs(){let i,e,t=new Promise((s,n)=>{i=s,e=n});function r(s){return s.then(i).catch(e),t}return{promise:t,resolve:i,reject:e,entangle:r}}var eo=class i extends Map{static require(e,t){if(e.has(t))return e.get(t);throw new Error(`required key not found: "${t}"`)}static guarantee(e,t,r){if(e.has(t))return e.get(t);{let s=r();return e.set(t,s),s}}array(){return[...this]}require(e){return i.require(this,e)}guarantee(e,t){return i.guarantee(this,e,t)}};function b_(i){return{map:e=>af(i,e),filter:e=>cf(i,e)}}b_.pipe=Object.freeze({map:i=>e=>af(e,i),filter:i=>e=>cf(e,i)});var af=(i,e)=>Object.fromEntries(Object.entries(i).map(([t,r])=>[t,e(r,t)])),cf=(i,e)=>Object.fromEntries(Object.entries(i).filter(([t,r])=>e(r,t)));var oi=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let r=t.tap??Ot,s=t.label??"comrade",n=e.loadWorker(t.workerUrl,s),o=xs(),a={async ready(){o.resolve()}},c=new Ar({tap:r,timeout:t.timeout??1/0,conduit:new ni(n),rpc:async l=>({infra:a,host:t.setupHost(Rt.derive.work(l))})});return await o.promise,new this(n,c)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var to=class{threads;static async make(e,t){let r=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(r)].map(async(n,o)=>oi.make(e,{...t,label:t.label??`${t.label??"comrade"}_${o+1}`})));return new this(s,{tap:t.tap})}work;#e=new Set;#t=[];constructor(e,t={}){this.threads=e;let r=t.tap??Ot,s=async(n,o)=>this.#r({request:n,prom:xs(),transfer:o?.transfer});this.work=Cr({tap:r,endpoint:s}),e.forEach(n=>this.#e.add(n))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#r(e){return this.#t.push(e),this.#i(),e.prom.promise}#i(){for(;this.#e.size>0&&this.#t.length>0;){let e=[...this.#e].pop();this.#e.delete(e);let t=this.#t.shift();this.#e.delete(e);let r=e.messenger.remoteEndpoint(t.request,{transfer:t.transfer});t.prom.entangle(r).finally(()=>{this.#e.add(e),this.#i()})}}};var lf=i=>({thread:e=>oi.make(i,e),cluster:e=>to.make(i,e),worker:(e,t={})=>sf(i,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:r,tap:s=Ot}=e,n=Rt.mock.host(),o=Rt.mock.work();return o.work=ps({tap:s,fns:t(n)}),n.host=ps({tap:s,fns:r(o)}),{workShell:o,hostShell:n,work:o.work,host:n.host}},mockWork(e,t=Ot){let r=Rt.mock.host(),s=Rt.mock.work();return s.work=ps({tap:t,fns:e(r)}),{workShell:s,hostShell:r,work:s.work,mockHost:n=>(r.host=ps({tap:t,fns:n(s)}),{workShell:s,hostShell:r,work:s.work,host:r.host})}}});var uf=()=>({getSelf(){return self},guessOptimalThreadCount(){let i=navigator.hardwareConcurrency??1;return Math.max(1,i-1)},loadWorker(i,e){return new window.Worker(i,{name:e,type:"module"})},async loadWasm(i){return WebAssembly.instantiateStreaming(fetch(i))}});var w_=uf(),ro=lf(w_);function k(i){if(!i)throw new Error("Assertion failed.")}var so=i=>{let e=(i%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${i}.`)},ve=i=>i&&i[i.length-1];var fe=class i{constructor(e){this.bytes=e,this.pos=0}seekToByte(e){this.pos=8*e}readBit(){let e=Math.floor(this.pos/8),t=this.bytes[e]??0,r=7-(this.pos&7),s=(t&1<<r)>>r;return this.pos++,s}readBits(e){if(e===1)return this.readBit();let t=0;for(let r=0;r<e;r++)t<<=1,t|=this.readBit();return t}writeBits(e,t){let r=this.pos+e;for(let s=this.pos;s<r;s++){let n=Math.floor(s/8),o=this.bytes[n],a=7-(s&7);o&=~(1<<a),o|=(t&1<<r-s-1)>>r-s-1<<a,this.bytes[n]=o}this.pos=r}readAlignedByte(){if(this.pos%8!==0)throw new Error("Bitstream is not byte-aligned.");let e=this.pos/8,t=this.bytes[e]??0;return this.pos+=8,t}skipBits(e){this.pos+=e}getBitsLeft(){return this.bytes.length*8-this.pos}clone(){let e=new i(this.bytes);return e.pos=this.pos,e}},R=i=>{let e=0;for(;i.readBits(1)===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+i.readBits(e)},ai=i=>{let e=R(i);return(e&1)===0?-(e>>1):e+1>>1};var ir=i=>i instanceof Uint8Array?i:i instanceof ArrayBuffer?new Uint8Array(i):new Uint8Array(i.buffer,i.byteOffset,i.byteLength),oe=i=>i instanceof DataView?i:i instanceof ArrayBuffer?new DataView(i):new DataView(i.buffer,i.byteOffset,i.byteLength),Be=new TextDecoder,__=new TextEncoder;var nl=i=>Object.fromEntries(Object.entries(i).map(([e,t])=>[t,e])),ol={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},no=nl(ol),al={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},oo=nl(al),cl={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},ao=nl(cl);var ll=i=>i instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&i instanceof SharedArrayBuffer||ArrayBuffer.isView(i),Je=class{constructor(){this.currentPromise=Promise.resolve()}async acquire(){let e,t=new Promise(s=>{e=s}),r=this.currentPromise;return this.currentPromise=t,await r,e}},ul=i=>[...i].map(e=>e.toString(16).padStart(2,"0")).join(""),hl=i=>(i=i>>1&1431655765|(i&1431655765)<<1,i=i>>2&858993459|(i&858993459)<<2,i=i>>4&252645135|(i&252645135)<<4,i=i>>8&16711935|(i&16711935)<<8,i=i>>16&65535|(i&65535)<<16,i>>>0),ae=(i,e,t)=>{let r=0,s=i.length-1,n=-1;for(;r<=s;){let o=r+s>>1,a=t(i[o]);a===e?(n=o,s=o-1):a<e?r=o+1:s=o-1}return n},Q=(i,e,t)=>{let r=0,s=i.length-1,n=-1;for(;r<=s;){let o=r+(s-r+1)/2|0;t(i[o])<=e?(n=o,r=o+1):s=o-1}return n},ot=(i,e,t)=>{let r=Q(i,t(e),t);i.splice(r+1,0,e)},Fe=()=>{let i,e;return{promise:new Promise((r,s)=>{i=r,e=s}),resolve:i,reject:e}};var dl=(i,e)=>{for(let t=i.length-1;t>=0;t--)if(e(i[t]))return i[t]},co=(i,e)=>{for(let t=i.length-1;t>=0;t--)if(e(i[t]))return t;return-1},hf=async function*(i){Symbol.iterator in i?yield*i[Symbol.iterator]():yield*i[Symbol.asyncIterator]()},df=i=>{if(!(Symbol.iterator in i)&&!(Symbol.asyncIterator in i))throw new TypeError("Argument must be an iterable or async iterable.")},ys=i=>{throw new Error(`Unexpected value: ${i}`)};var fl=(i,e)=>({async next(){let t=await i.next();return t.done?{value:void 0,done:!0}:{value:e(t.value),done:!1}},return(){return i.return()},throw(t){return i.throw(t)},[Symbol.asyncIterator](){return this}}),lo=(i,e,t)=>Math.max(e,Math.min(t,i)),Pe="und",Ir=(i,e)=>{let t=10**e;return Math.round(i*t)/t},ff=(i,e)=>Math.round(i/e)*e,mf=i=>{let e=0;for(;i;)e++,i>>=1;return e},S_=/^[a-z]{3}$/,uo=i=>S_.test(i),sr=1e6*(1+Number.EPSILON),ho=(i,e)=>{let t={...i};for(let r in e)typeof i[r]=="object"&&i[r]!==null&&typeof e[r]=="object"&&e[r]!==null?t[r]=ho(i[r],e[r]):t[r]=e[r];return t},ml=async(i,e,t)=>{let r=0;for(;;)try{return await fetch(i,e)}catch(s){r++;let n=t(r);if(n===null)throw s;if(console.error("Retrying failed fetch. Error:",s),!Number.isFinite(n)||n<0)throw new TypeError("Retry delay must be a non-negative finite number.");n>0&&await new Promise(o=>setTimeout(o,1e3*n))}};var io=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}},sl=null,fo=()=>{if(sl!==null)return sl;let i=!!(typeof navigator<"u"&&navigator.vendor?.match(/apple/i)&&!navigator.userAgent?.match(/crios/i)&&!navigator.userAgent?.match(/fxios/i)&&!navigator.userAgent?.match(/Opera|OPT\//));return sl=i,i},Mr=(i,e)=>i!==-1?i:e,mo=(i,e,t,r)=>i<=r&&t<=e;var pf=i=>{let e=atob(i),t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t};var nr=class{constructor(e,t){this.data=e,this.mimeType=t}};var ws=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],T_=["aac","opus","mp3","vorbis","flac"],NI=[...T_,...ws];var Br=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}];var gf=".01.01.01.01.00",xf=".0.110.01.01.01.0";var po=i=>{let{codec:e,codecDescription:t,colorSpace:r,avcCodecInfo:s,hevcCodecInfo:n,vp9CodecInfo:o,av1CodecInfo:a}=i;if(e==="avc"){if(s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc1.${ul(c)}`}if(!t||t.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc1.${ul(t.subarray(1,4))}`}else if(e==="hevc"){let c,l,u,h,d,f;if(n)c=n.generalProfileSpace,l=n.generalProfileIdc,u=hl(n.generalProfileCompatibilityFlags),h=n.generalTierFlag,d=n.generalLevelIdc,f=[...n.generalConstraintIndicatorFlags];else{if(!t||t.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");let p=oe(t),g=p.getUint8(1);c=g>>6&3,l=g&31,u=hl(p.getUint32(2)),h=g>>5&1,d=p.getUint8(12),f=[];for(let y=0;y<6;y++)f.push(p.getUint8(6+y))}let m="hev1.";for(m+=["","A","B","C"][c]+l,m+=".",m+=u.toString(16).toUpperCase(),m+=".",m+=h===0?"L":"H",m+=d;f.length>0&&f[f.length-1]===0;)f.pop();return f.length>0&&(m+=".",m+=f.map(p=>p.toString(16).toUpperCase()).join(".")),m}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!o){let y=i.width*i.height,x=ve(Br).level;for(let w of Br)if(y<=w.maxPictureSize){x=w.level;break}return`vp09.00.${x.toString().padStart(2,"0")}.08`}let c=o.profile.toString().padStart(2,"0"),l=o.level.toString().padStart(2,"0"),u=o.bitDepth.toString().padStart(2,"0"),h=o.chromaSubsampling.toString().padStart(2,"0"),d=o.colourPrimaries.toString().padStart(2,"0"),f=o.transferCharacteristics.toString().padStart(2,"0"),m=o.matrixCoefficients.toString().padStart(2,"0"),p=o.videoFullRangeFlag.toString().padStart(2,"0"),g=`vp09.${c}.${l}.${u}.${h}`;return g+=`.${d}.${f}.${m}.${p}`,g.endsWith(gf)&&(g=g.slice(0,-gf.length)),g}else if(e==="av1"){if(!a){let w=i.width*i.height,_=ve(Br).level;for(let S of Br)if(w<=S.maxPictureSize){_=S.level;break}return`av01.0.${_.toString().padStart(2,"0")}M.08`}let c=a.profile,l=a.level.toString().padStart(2,"0"),u=a.tier?"H":"M",h=a.bitDepth.toString().padStart(2,"0"),d=a.monochrome?"1":"0",f=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),m=r?.primaries?ol[r.primaries]:1,p=r?.transfer?al[r.transfer]:1,g=r?.matrix?cl[r.matrix]:1,y=r?.fullRange?1:0,x=`av01.${c}.${l}${u}.${h}`;return x+=`.${d}.${f.toString().padStart(3,"0")}`,x+=`.${m.toString().padStart(2,"0")}`,x+=`.${p.toString().padStart(2,"0")}`,x+=`.${g.toString().padStart(2,"0")}`,x+=`.${y}`,x.endsWith(xf)&&(x=x.slice(0,-xf.length)),x}}throw new TypeError(`Unhandled codec '${e}'.`)};var go=i=>{let{codec:e,codecDescription:t,aacCodecInfo:r}=i;if(e==="aac"){if(!r)throw new TypeError("AAC codec info must be provided.");return r.isMpeg2?"mp4a.67":`mp4a.40.${gl(t).objectType}`}else{if(e==="mp3")return"mp3";if(e==="opus")return"opus";if(e==="vorbis")return"vorbis";if(e==="flac")return"flac";if(e&&ws.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},bs=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],pl=[-1,1,2,3,4,5,6,8],gl=i=>{if(!i||i.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new fe(i),t=e.readBits(5);t===31&&(t=32+e.readBits(6));let r=e.readBits(4),s=null;r===15?s=e.readBits(24):r<bs.length&&(s=bs[r]);let n=e.readBits(4),o=null;return n>=1&&n<=7&&(o=pl[n]),{objectType:t,frequencyIndex:r,sampleRate:s,channelConfiguration:n,numberOfChannels:o}},yf=48e3,k_=/^pcm-([usf])(\d+)+(be)?$/,bf=i=>{if(k(ws.includes(i)),i==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(i==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=k_.exec(i);k(e);let t;e[1]==="u"?t="unsigned":e[1]==="s"?t="signed":t="float";let r=Number(e[2])/8,s=e[3]!=="be",n=i==="pcm-u8"?2**7:0;return{dataType:t,sampleSize:r,littleEndian:s,silentValue:n}};var ci;(function(i){i[i.IDR=5]="IDR",i[i.SPS=7]="SPS",i[i.PPS=8]="PPS",i[i.SPS_EXT=13]="SPS_EXT"})(ci||(ci={}));var De;(function(i){i[i.RASL_N=8]="RASL_N",i[i.RASL_R=9]="RASL_R",i[i.BLA_W_LP=16]="BLA_W_LP",i[i.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",i[i.VPS_NUT=32]="VPS_NUT",i[i.SPS_NUT=33]="SPS_NUT",i[i.PPS_NUT=34]="PPS_NUT",i[i.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",i[i.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT"})(De||(De={}));var yo=i=>{let e=[],t=0;for(;t<i.length;){let r=-1,s=0;for(let n=t;n<i.length-3;n++){if(i[n]===0&&i[n+1]===0&&i[n+2]===1){r=n,s=3;break}if(n<i.length-4&&i[n]===0&&i[n+1]===0&&i[n+2]===0&&i[n+3]===1){r=n,s=4;break}}if(r===-1)break;if(t>0&&r>t){let n=i.subarray(t,r);n.length>0&&e.push(n)}t=r+s}if(t<i.length){let r=i.subarray(t);r.length>0&&e.push(r)}return e},_f=(i,e)=>{let t=[],r=0,s=new DataView(i.buffer,i.byteOffset,i.byteLength);for(;r+e<=i.length;){let n;e===1?n=s.getUint8(r):e===2?n=s.getUint16(r,!1):e===3?n=(s.getUint16(r,!1)<<8)+s.getUint8(r+2):e===4?n=s.getUint32(r,!1):(ys(e),k(!1)),r+=e;let o=i.subarray(r,r+n);t.push(o),r+=n}return t},xl=i=>{let e=[],t=i.length;for(let r=0;r<t;r++)r+2<t&&i[r]===0&&i[r+1]===0&&i[r+2]===3?(e.push(0,0),r+=2):e.push(i[r]);return new Uint8Array(e)};var v_=(i,e)=>{if(e.description){let s=(ir(e.description)[4]&3)+1;return _f(i,s)}else return yo(i)},xo=i=>i[0]&31,Sf=i=>{try{let e=yo(i),t=e.filter(d=>xo(d)===ci.SPS),r=e.filter(d=>xo(d)===ci.PPS),s=e.filter(d=>xo(d)===ci.SPS_EXT);if(t.length===0||r.length===0)return null;let n=t[0],o=new fe(xl(n));if(o.skipBits(1),o.skipBits(2),o.readBits(5)!==7)return console.error("Invalid SPS NAL unit type"),null;let c=o.readAlignedByte(),l=o.readAlignedByte(),u=o.readAlignedByte(),h={configurationVersion:1,avcProfileIndication:c,profileCompatibility:l,avcLevelIndication:u,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:r,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if(c===100||c===110||c===122||c===144){R(o);let d=R(o);d===3&&o.skipBits(1);let f=R(o),m=R(o);h.chromaFormat=d,h.bitDepthLumaMinus8=f,h.bitDepthChromaMinus8=m,h.sequenceParameterSetExt=s}return h}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}};var yl=(i,e)=>{if(e.description){let s=(ir(e.description)[21]&3)+1;return _f(i,s)}else return yo(i)},zt=i=>i[0]>>1&63,Tf=i=>{try{let e=yo(i),t=e.filter(C=>zt(C)===De.VPS_NUT),r=e.filter(C=>zt(C)===De.SPS_NUT),s=e.filter(C=>zt(C)===De.PPS_NUT),n=e.filter(C=>zt(C)===De.PREFIX_SEI_NUT||zt(C)===De.SUFFIX_SEI_NUT);if(r.length===0||s.length===0)return null;let o=r[0],a=new fe(xl(o));a.skipBits(16),a.readBits(4);let c=a.readBits(3),l=a.readBits(1),{general_profile_space:u,general_tier_flag:h,general_profile_idc:d,general_profile_compatibility_flags:f,general_constraint_indicator_flags:m,general_level_idc:p}=P_(a,c);R(a);let g=R(a);g===3&&a.skipBits(1),R(a),R(a),a.readBits(1)&&(R(a),R(a),R(a),R(a));let y=R(a),x=R(a);R(a);let _=a.readBits(1)?0:c;for(let C=_;C<=c;C++)R(a),R(a),R(a);R(a),R(a),R(a),R(a),R(a),R(a),a.readBits(1)&&a.readBits(1)&&C_(a),a.skipBits(1),a.skipBits(1),a.readBits(1)&&(a.skipBits(4),a.skipBits(4),R(a),R(a),a.skipBits(1));let S=R(a);if(E_(a,S),a.readBits(1)){let C=R(a);for(let E=0;E<C;E++)R(a),a.skipBits(1)}a.skipBits(1),a.skipBits(1);let T=0;a.readBits(1)&&(T=I_(a,c));let v=0;if(s.length>0){let C=s[0],E=new fe(xl(C));E.skipBits(16),R(E),R(E),E.skipBits(1),E.skipBits(1),E.skipBits(3),E.skipBits(1),E.skipBits(1),R(E),R(E),ai(E),E.skipBits(1),E.skipBits(1),E.readBits(1)&&R(E),ai(E),ai(E),E.skipBits(1),E.skipBits(1),E.skipBits(1),E.skipBits(1);let D=E.readBits(1),j=E.readBits(1);!D&&!j?v=0:D&&!j?v=2:!D&&j?v=3:v=0}let M=[...t.length?[{arrayCompleteness:1,nalUnitType:De.VPS_NUT,nalUnits:t}]:[],...r.length?[{arrayCompleteness:1,nalUnitType:De.SPS_NUT,nalUnits:r}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:De.PPS_NUT,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:zt(n[0]),nalUnits:n}]:[]];return{configurationVersion:1,generalProfileSpace:u,generalTierFlag:h,generalProfileIdc:d,generalProfileCompatibilityFlags:f,generalConstraintIndicatorFlags:m,generalLevelIdc:p,minSpatialSegmentationIdc:T,parallelismType:v,chromaFormatIdc:g,bitDepthLumaMinus8:y,bitDepthChromaMinus8:x,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:l,lengthSizeMinusOne:3,arrays:M}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},P_=(i,e)=>{let t=i.readBits(2),r=i.readBits(1),s=i.readBits(5),n=0;for(let u=0;u<32;u++)n=n<<1|i.readBits(1);let o=new Uint8Array(6);for(let u=0;u<6;u++)o[u]=i.readBits(8);let a=i.readBits(8),c=[],l=[];for(let u=0;u<e;u++)c.push(i.readBits(1)),l.push(i.readBits(1));if(e>0)for(let u=e;u<8;u++)i.skipBits(2);for(let u=0;u<e;u++)c[u]&&i.skipBits(88),l[u]&&i.skipBits(8);return{general_profile_space:t,general_tier_flag:r,general_profile_idc:s,general_profile_compatibility_flags:n,general_constraint_indicator_flags:o,general_level_idc:a}},C_=i=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!i.readBits(1))R(i);else{let s=Math.min(64,1<<4+(e<<1));e>1&&ai(i);for(let n=0;n<s;n++)ai(i)}},E_=(i,e)=>{let t=[];for(let r=0;r<e;r++)t[r]=A_(i,r,e,t)},A_=(i,e,t,r)=>{let s=0,n=0,o=0;if(e!==0&&(n=i.readBits(1)),n){if(e===t){let c=R(i);o=e-(c+1)}else o=e-1;i.readBits(1),R(i);let a=r[o]??0;for(let c=0;c<=a;c++)i.readBits(1)||i.readBits(1);s=r[o]}else{let a=R(i),c=R(i);for(let l=0;l<a;l++)R(i),i.readBits(1);for(let l=0;l<c;l++)R(i),i.readBits(1);s=a+c}return s},I_=(i,e)=>{if(i.readBits(1)&&i.readBits(8)===255&&(i.readBits(16),i.readBits(16)),i.readBits(1)&&i.readBits(1),i.readBits(1)&&(i.readBits(3),i.readBits(1),i.readBits(1)&&(i.readBits(8),i.readBits(8),i.readBits(8))),i.readBits(1)&&(R(i),R(i)),i.readBits(1),i.readBits(1),i.readBits(1),i.readBits(1)&&(R(i),R(i),R(i),R(i)),i.readBits(1)&&(i.readBits(32),i.readBits(32),i.readBits(1)&&R(i),i.readBits(1)&&M_(i,!0,e)),i.readBits(1)){i.readBits(1),i.readBits(1),i.readBits(1);let t=R(i);return R(i),R(i),R(i),R(i),t}return 0},M_=(i,e,t)=>{let r=!1,s=!1,n=!1;e&&(r=i.readBits(1)===1,s=i.readBits(1)===1,(r||s)&&(n=i.readBits(1)===1,n&&(i.readBits(8),i.readBits(5),i.readBits(1),i.readBits(5)),i.readBits(4),i.readBits(4),n&&i.readBits(4),i.readBits(5),i.readBits(5),i.readBits(5)));for(let o=0;o<=t;o++){let a=i.readBits(1)===1,c=!0;a||(c=i.readBits(1)===1);let l=!1;c?R(i):l=i.readBits(1)===1;let u=1;l||(u=R(i)+1),r&&wf(i,u,n),s&&wf(i,u,n)}},wf=(i,e,t)=>{for(let r=0;r<e;r++)R(i),R(i),t&&(R(i),R(i)),i.readBits(1)};var bo=i=>{let e=new fe(i);if(e.readBits(2)!==2)return null;let r=e.readBits(1),n=(e.readBits(1)<<1)+r;if(n===3&&e.skipBits(1),e.readBits(1)===1||e.readBits(1)!==0||(e.skipBits(2),e.readBits(24)!==4817730))return null;let l=8;n>=2&&(l=e.readBits(1)?12:10);let u=e.readBits(3),h=0,d=0;if(u!==7)if(d=e.readBits(1),n===1||n===3){let v=e.readBits(1),M=e.readBits(1);h=!v&&!M?3:v&&!M?2:1,e.skipBits(1)}else h=1;else h=3,d=1;let f=e.readBits(16),m=e.readBits(16),p=f+1,g=m+1,y=p*g,x=ve(Br).level;for(let T of Br)if(y<=T.maxPictureSize){x=T.level;break}return{profile:n,level:x,bitDepth:l,chromaSubsampling:h,videoFullRangeFlag:d,colourPrimaries:u===2?1:u===1?6:2,transferCharacteristics:u===2?1:u===1?6:2,matrixCoefficients:u===7?0:u===2?1:u===1?6:2}},kf=function*(i){let e=new fe(i),t=()=>{let r=0;for(let s=0;s<8;s++){let n=e.readAlignedByte();if(r|=(n&127)<<s*7,!(n&128))break;if(s===7&&n&128)return null}return r>=2**32-1?null:r};for(;e.getBitsLeft()>=8;){e.skipBits(1);let r=e.readBits(4),s=e.readBits(1),n=e.readBits(1);e.skipBits(1),s&&e.skipBits(8);let o;if(n){let a=t();if(a===null)return;o=a}else o=Math.floor(e.getBitsLeft()/8);k(e.pos%8===0),yield{type:r,data:i.subarray(e.pos/8,e.pos/8+o)},e.skipBits(o*8)}},wo=i=>{for(let{type:e,data:t}of kf(i)){if(e!==1)continue;let r=new fe(t),s=r.readBits(3),n=r.readBits(1),o=r.readBits(1),a=0,c=0,l=0;if(o)a=r.readBits(5);else{if(r.readBits(1)&&(r.skipBits(32),r.skipBits(32),r.readBits(1)))return null;let y=r.readBits(1);y&&(l=r.readBits(5),r.skipBits(32),r.skipBits(5),r.skipBits(5));let x=r.readBits(5);for(let w=0;w<=x;w++){r.skipBits(12);let _=r.readBits(5);if(w===0&&(a=_),_>7){let T=r.readBits(1);w===0&&(c=T)}if(y&&r.readBits(1)){let v=l+1;r.skipBits(v),r.skipBits(v),r.skipBits(1)}r.readBits(1)&&r.skipBits(4)}}let u=r.readBits(1),h=8;s===2&&u?h=r.readBits(1)?12:10:s<=2&&(h=u?10:8);let d=0;s!==1&&(d=r.readBits(1));let f=1,m=1,p=0;return d||(s===0?(f=1,m=1):s===1?(f=0,m=0):h===12&&(f=r.readBits(1),f&&(m=r.readBits(1))),f&&m&&(p=r.readBits(2))),{profile:s,level:a,tier:c,bitDepth:h,monochrome:d,chromaSubsamplingX:f,chromaSubsamplingY:m,chromaSamplePosition:p}}return null},vf=i=>{let e=oe(i),t=e.getUint8(9),r=e.getUint16(10,!0),s=e.getUint32(12,!0),n=e.getInt16(16,!0),o=e.getUint8(18),a=null;return o&&(a=i.subarray(19,21+t)),{outputChannelCount:t,preSkip:r,inputSampleRate:s,outputGain:n,channelMappingFamily:o,channelMappingTable:a}},B_=[480,960,1920,2880,480,960,1920,2880,480,960,1920,2880,480,960,480,960,120,240,480,960,120,240,480,960,120,240,480,960,120,240,480,960],Pf=i=>{let e=i[0]>>3;return{durationInSamples:B_[e]}},Cf=i=>{if(i.length<7)throw new Error("Setup header is too short.");if(i[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...i.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let t=i.length,r=new Uint8Array(t);for(let h=0;h<t;h++)r[h]=i[t-1-h];let s=new fe(r),n=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){n=s.pos;break}if(n===0)throw new Error("Invalid Setup header: framing bit not found.");let o=0,a=!1,c=0;for(;s.getBitsLeft()>=97;){let h=s.pos,d=s.readBits(8),f=s.readBits(16),m=s.readBits(16);if(d>63||f!==0||m!==0){s.pos=h;break}if(s.skipBits(1),o++,o>64)break;s.clone().readBits(6)+1===o&&(a=!0,c=o)}if(!a)throw new Error("Invalid Setup header: mode header not found.");if(c>63)throw new Error(`Unsupported mode count: ${c}.`);let l=c;s.pos=0,s.skipBits(n);let u=Array(l).fill(0);for(let h=l-1;h>=0;h--)s.skipBits(40),u[h]=s.readBits(1);return{modeBlockflags:u}},Ef=async(i,e)=>{switch(k(i.codec),i.codec){case"avc":{let t=await i.getDecoderConfig();return k(t),v_(e.data,t).some(n=>xo(n)===ci.IDR)?"key":"delta"}case"hevc":{let t=await i.getDecoderConfig();return k(t),yl(e.data,t).some(n=>{let o=zt(n);return De.BLA_W_LP<=o&&o<=De.RSV_IRAP_VCL23})?"key":"delta"}case"vp8":return(e.data[0]&1)===0?"key":"delta";case"vp9":{let t=new fe(e.data);if(t.readBits(2)!==2)return null;let r=t.readBits(1);return(t.readBits(1)<<1)+r===3&&t.skipBits(1),t.readBits(1)?null:t.readBits(1)===0?"key":"delta"}case"av1":{let t=!1;for(let{type:r,data:s}of kf(e.data))if(r===1){let n=new fe(s);n.skipBits(4),t=!!n.readBits(1)}else if(r===3||r===6||r===7){if(t)return"key";let n=new fe(s);return n.readBits(1)?null:n.readBits(2)===0?"key":"delta"}return null}default:ys(i.codec),k(!1)}};var Af=i=>{let t=(i.hasVideo?"video/":i.hasAudio?"audio/":"application/")+(i.isQuickTime?"quicktime":"mp4");if(i.codecStrings.length>0){let r=[...new Set(i.codecStrings)];t+=`; codecs="${r.join(", ")}"`}return t};var _o=class{constructor(e){this.source=e}requestSlice(e,t){if(this.fileSize!==null&&e+t>this.fileSize)return null;let r=e+t,s=this.source._read(e,r);return s instanceof Promise?s.then(n=>n?new li(n.bytes,n.view,n.offset,e,r):null):s?new li(s.bytes,s.view,s.offset,e,r):null}requestSliceRange(e,t,r){if(this.fileSize!==null)return this.requestSlice(e,lo(this.fileSize-e,t,r));{let s=this.requestSlice(e,r),n=o=>{if(o)return o;let a=l=>(k(l!==null),this.requestSlice(e,lo(l-e,t,r))),c=this.source._retrieveSize();return c instanceof Promise?c.then(a):a(c)};return s instanceof Promise?s.then(n):n(s)}}},li=class i{constructor(e,t,r,s,n){this.bytes=e,this.view=t,this.offset=r,this.start=s,this.end=n,this.bufferPos=s-r}static tempFromBytes(e){return new i(e,oe(e),0,0,e.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(e){this.bufferPos=e-this.offset}skip(e){this.bufferPos+=e}slice(e,t=this.end-e){if(e<this.start||e+t>this.end)throw new RangeError("Slicing outside of original slice.");return new i(this.bytes,this.view,this.offset,e,e+t)}},W=(i,e)=>{let t=i.bytes.subarray(i.bufferPos,i.bufferPos+e);return i.bufferPos+=e,t},z=i=>i.view.getUint8(i.bufferPos++),ui=(i,e)=>{let t=i.view.getUint16(i.bufferPos,e);return i.bufferPos+=2,t},Ce=i=>{let e=i.view.getUint16(i.bufferPos,!1);return i.bufferPos+=2,e},hi=i=>{let e=Ce(i),t=z(i);return e*256+t},_s=i=>{let e=i.view.getInt16(i.bufferPos,!1);return i.bufferPos+=2,e},Gt=(i,e)=>{let t=i.view.getUint32(i.bufferPos,e);return i.bufferPos+=4,t},B=i=>{let e=i.view.getUint32(i.bufferPos,!1);return i.bufferPos+=4,e},Fr=i=>{let e=i.view.getUint32(i.bufferPos,!0);return i.bufferPos+=4,e},Nt=i=>{let e=i.view.getInt32(i.bufferPos,!1);return i.bufferPos+=4,e},F_=i=>{let e=i.view.getInt32(i.bufferPos,!0);return i.bufferPos+=4,e},bl=(i,e)=>{let t,r;return e?(t=Gt(i,!0),r=Gt(i,!0)):(r=Gt(i,!1),t=Gt(i,!1)),r*4294967296+t},Ye=i=>{let e=B(i),t=B(i);return e*4294967296+t},If=i=>{let e=Nt(i),t=B(i);return e*4294967296+t},Mf=i=>{let e=Fr(i);return F_(i)*4294967296+e},Bf=i=>{let e=i.view.getFloat32(i.bufferPos,!1);return i.bufferPos+=4,e},So=i=>{let e=i.view.getFloat64(i.bufferPos,!1);return i.bufferPos+=8,e},de=(i,e)=>{if(i.bufferPos+e>i.bytes.length)throw new RangeError("Reading past end of slice.");let t="";for(let r=0;r<e;r++)t+=String.fromCharCode(i.bytes[i.bufferPos++]);return t};var Lt=8,Dr=16,bt=i=>{let e=B(i),t=de(i,4),r=8;e===1&&(e=Ye(i),r=16);let n=e-r;return n<0?null:{name:t,totalSize:e,headerSize:r,contentSize:n}},or=i=>Nt(i)/65536,To=i=>Nt(i)/1073741824,ko=i=>{let e=0;for(let t=0;t<4;t++){e<<=7;let r=z(i);if(e|=r&127,(r&128)===0)break}return e},at=i=>{let e=Ce(i);return i.skip(2),Be.decode(W(i,e))},Ff=i=>{let e=bt(i);if(!e||e.name!=="data")return null;let t=B(i);i.skip(4);let r=W(i,e.contentSize-8);switch(t){case 1:return Be.decode(r);case 2:return new TextDecoder("utf-16be").decode(r);case 13:return new nr(r,"image/jpeg");case 14:return new nr(r,"image/png");case 27:return new nr(r,"image/bmp");default:return r}};var I;(function(i){i[i.EBML=440786851]="EBML",i[i.EBMLVersion=17030]="EBMLVersion",i[i.EBMLReadVersion=17143]="EBMLReadVersion",i[i.EBMLMaxIDLength=17138]="EBMLMaxIDLength",i[i.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",i[i.DocType=17026]="DocType",i[i.DocTypeVersion=17031]="DocTypeVersion",i[i.DocTypeReadVersion=17029]="DocTypeReadVersion",i[i.Void=236]="Void",i[i.Segment=408125543]="Segment",i[i.SeekHead=290298740]="SeekHead",i[i.Seek=19899]="Seek",i[i.SeekID=21419]="SeekID",i[i.SeekPosition=21420]="SeekPosition",i[i.Duration=17545]="Duration",i[i.Info=357149030]="Info",i[i.TimestampScale=2807729]="TimestampScale",i[i.MuxingApp=19840]="MuxingApp",i[i.WritingApp=22337]="WritingApp",i[i.Tracks=374648427]="Tracks",i[i.TrackEntry=174]="TrackEntry",i[i.TrackNumber=215]="TrackNumber",i[i.TrackUID=29637]="TrackUID",i[i.TrackType=131]="TrackType",i[i.FlagEnabled=185]="FlagEnabled",i[i.FlagDefault=136]="FlagDefault",i[i.FlagForced=21930]="FlagForced",i[i.FlagLacing=156]="FlagLacing",i[i.Name=21358]="Name",i[i.Language=2274716]="Language",i[i.LanguageBCP47=2274717]="LanguageBCP47",i[i.CodecID=134]="CodecID",i[i.CodecPrivate=25506]="CodecPrivate",i[i.CodecDelay=22186]="CodecDelay",i[i.SeekPreRoll=22203]="SeekPreRoll",i[i.DefaultDuration=2352003]="DefaultDuration",i[i.Video=224]="Video",i[i.PixelWidth=176]="PixelWidth",i[i.PixelHeight=186]="PixelHeight",i[i.Audio=225]="Audio",i[i.SamplingFrequency=181]="SamplingFrequency",i[i.Channels=159]="Channels",i[i.BitDepth=25188]="BitDepth",i[i.SimpleBlock=163]="SimpleBlock",i[i.BlockGroup=160]="BlockGroup",i[i.Block=161]="Block",i[i.BlockAdditions=30113]="BlockAdditions",i[i.BlockMore=166]="BlockMore",i[i.BlockAdditional=165]="BlockAdditional",i[i.BlockAddID=238]="BlockAddID",i[i.BlockDuration=155]="BlockDuration",i[i.ReferenceBlock=251]="ReferenceBlock",i[i.Cluster=524531317]="Cluster",i[i.Timestamp=231]="Timestamp",i[i.Cues=475249515]="Cues",i[i.CuePoint=187]="CuePoint",i[i.CueTime=179]="CueTime",i[i.CueTrackPositions=183]="CueTrackPositions",i[i.CueTrack=247]="CueTrack",i[i.CueClusterPosition=241]="CueClusterPosition",i[i.Colour=21936]="Colour",i[i.MatrixCoefficients=21937]="MatrixCoefficients",i[i.TransferCharacteristics=21946]="TransferCharacteristics",i[i.Primaries=21947]="Primaries",i[i.Range=21945]="Range",i[i.Projection=30320]="Projection",i[i.ProjectionType=30321]="ProjectionType",i[i.ProjectionPoseRoll=30325]="ProjectionPoseRoll",i[i.Attachments=423732329]="Attachments",i[i.AttachedFile=24999]="AttachedFile",i[i.FileDescription=18046]="FileDescription",i[i.FileName=18030]="FileName",i[i.FileMediaType=18016]="FileMediaType",i[i.FileData=18012]="FileData",i[i.FileUID=18094]="FileUID",i[i.Chapters=272869232]="Chapters",i[i.Tags=307544935]="Tags",i[i.Tag=29555]="Tag",i[i.Targets=25536]="Targets",i[i.TargetTypeValue=26826]="TargetTypeValue",i[i.TargetType=25546]="TargetType",i[i.TagTrackUID=25541]="TagTrackUID",i[i.TagEditionUID=25545]="TagEditionUID",i[i.TagChapterUID=25540]="TagChapterUID",i[i.TagAttachmentUID=25542]="TagAttachmentUID",i[i.SimpleTag=26568]="SimpleTag",i[i.TagName=17827]="TagName",i[i.TagLanguage=17530]="TagLanguage",i[i.TagString=17543]="TagString",i[i.TagBinary=17541]="TagBinary"})(I||(I={}));var D_=[I.EBML,I.Segment],di=[I.SeekHead,I.Info,I.Cluster,I.Tracks,I.Cues,I.Attachments,I.Chapters,I.Tags],vo=[...D_,...di];var wl=8,Ve=2,ct=2*wl,_l=i=>{let e=z(i);if(i.skip(-1),e===0)return null;let t=1,r=128;for(;(e&r)===0;)t++,r>>=1;return t},fi=i=>{let e=z(i);if(e===0)return null;let t=1,r=128;for(;(e&r)===0;)t++,r>>=1;let s=e&r-1;for(let n=1;n<t;n++)s*=256,s+=z(i);return s},J=(i,e)=>{if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let t=0;for(let r=0;r<e;r++)t*=256,t+=z(i);return t},Df=(i,e)=>{let t=J(i,e);return t&1<<e*8-1&&(t-=2**(e*8)),t},Po=i=>{let e=_l(i);return e===null?null:J(i,e)},Sl=i=>{let e=z(i);return e===255?e=null:(i.skip(-1),e=fi(i),e===72057594037927940&&(e=null)),e},lt=i=>{let e=Po(i);if(e===null)return null;let t=Sl(i);return{id:e,size:t}},ar=(i,e)=>{let t=W(i,e),r=0;for(;r<e&&t[r]!==0;)r+=1;return String.fromCharCode(...t.subarray(0,r))},mi=(i,e)=>{let t=W(i,e),r=0;for(;r<e&&t[r]!==0;)r+=1;return Be.decode(t.subarray(0,r))},Co=(i,e)=>{if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);return e===4?Bf(i):So(i)},Eo=async(i,e,t,r)=>{let s=new Set(t),n=e;for(;r===null||n<r;){let o=i.requestSliceRange(n,Ve,ct);if(o instanceof Promise&&(o=await o),!o)break;let a=lt(o);if(!a)break;if(s.has(a.id))return{pos:n,found:!0};Vt(a.size),n=o.filePos+a.size}return{pos:r!==null&&r>n?r:n,found:!1}},Tl=async(i,e,t,r)=>{let n=new Set(t),o=e;for(;o<r;){let a=i.requestSliceRange(o,0,Math.min(65536,r-o));if(a instanceof Promise&&(a=await a),!a||a.length<wl)break;for(let c=0;c<a.length-wl;c++){a.filePos=o;let l=Po(a);if(l!==null&&n.has(l))return o;o++}}return null},ut={avc:"V_MPEG4/ISO/AVC",hevc:"V_MPEGH/ISO/HEVC",vp8:"V_VP8",vp9:"V_VP9",av1:"V_AV1",aac:"A_AAC",mp3:"A_MPEG/L3",opus:"A_OPUS",vorbis:"A_VORBIS",flac:"A_FLAC","pcm-u8":"A_PCM/INT/LIT","pcm-s16":"A_PCM/INT/LIT","pcm-s16be":"A_PCM/INT/BIG","pcm-s24":"A_PCM/INT/LIT","pcm-s24be":"A_PCM/INT/BIG","pcm-s32":"A_PCM/INT/LIT","pcm-s32be":"A_PCM/INT/BIG","pcm-f32":"A_PCM/FLOAT/IEEE","pcm-f64":"A_PCM/FLOAT/IEEE",webvtt:"S_TEXT/WEBVTT"};function Vt(i){if(i===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var Rf=i=>{let t=(i.hasVideo?"video/":i.hasAudio?"audio/":"application/")+(i.isWebM?"webm":"x-matroska");if(i.codecStrings.length>0){let r=[...new Set(i.codecStrings.filter(Boolean))];t+=`; codecs="${r.join(", ")}"`}return t};var R_={1:[-1,32,40,48,56,64,80,96,112,128,160,192,224,256,320,-1],2:[-1,32,48,56,64,80,96,112,128,160,192,224,256,320,384,-1],3:[-1,32,64,96,128,160,192,224,256,288,320,352,384,416,448,-1]},O_={1:[-1,32,48,56,64,80,96,112,128,144,160,176,192,224,256,-1],2:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1],3:[-1,8,16,24,32,40,48,56,64,80,96,112,128,144,160,-1]},U_={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},Of=1483304551,Uf=1231971951,z_=(i,e,t,r)=>Math.floor(i===3?(12*e/t+r)*4:144*e/t+r),zf=(i,e)=>i===3?e===3?21:36:e===3?13:21,Gf=(i,e)=>{let t=i>>>24,r=i>>>16&255,s=i>>>8&255,n=i&255;if(t!==255&&r!==255&&s!==255&&n!==255)return{header:null,bytesAdvanced:4};if(t!==255)return{header:null,bytesAdvanced:1};if((r&224)!==224)return{header:null,bytesAdvanced:1};let o=r>>3&3,a=r>>1&3,c=s>>4&15,l=s>>2&3,u=s>>1&1,h=n>>6&3,d=n>>4&3,f=n>>3&1,m=n>>2&1,p=n&3,g=o===3?R_[a]?.[c]:O_[a]?.[c];if(!g||g===-1)return{header:null,bytesAdvanced:1};let y=g*1e3,x=U_[o]?.[l];if(!x||x===-1)return{header:null,bytesAdvanced:1};let w=z_(a,y,x,u);if(e!==null&&e<w)return{header:null,bytesAdvanced:1};let _;return o===3?_=a===3?384:1152:a===3?_=384:a===2?_=1152:_=576,{header:{totalSize:w,mpegVersionId:o,layer:a,bitrate:y,frequencyIndex:l,sampleRate:x,channel:h,modeExtension:d,copyright:f,original:m,emphasis:p,audioSamplesInFrame:_},bytesAdvanced:1}};var Ao=i=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=i&e,e>>=8;return t};var gi;(function(i){i[i.Unsynchronisation=128]="Unsynchronisation",i[i.ExtendedHeader=64]="ExtendedHeader",i[i.ExperimentalIndicator=32]="ExperimentalIndicator",i[i.Footer=16]="Footer"})(gi||(gi={}));var xi;(function(i){i[i.ISO_8859_1=0]="ISO_8859_1",i[i.UTF_16_WITH_BOM=1]="UTF_16_WITH_BOM",i[i.UTF_16_BE_NO_BOM=2]="UTF_16_BE_NO_BOM",i[i.UTF_8=3]="UTF_8"})(xi||(xi={}));var Ss=128,bi=10,yi=["Blues","Classic rock","Country","Dance","Disco","Funk","Grunge","Hip-hop","Jazz","Metal","New age","Oldies","Other","Pop","Rhythm and blues","Rap","Reggae","Rock","Techno","Industrial","Alternative","Ska","Death metal","Pranks","Soundtrack","Euro-techno","Ambient","Trip-hop","Vocal","Jazz & funk","Fusion","Trance","Classical","Instrumental","Acid","House","Game","Sound clip","Gospel","Noise","Alternative rock","Bass","Soul","Punk","Space","Meditative","Instrumental pop","Instrumental rock","Ethnic","Gothic","Darkwave","Techno-industrial","Electronic","Pop-folk","Eurodance","Dream","Southern rock","Comedy","Cult","Gangsta","Top 40","Christian rap","Pop/funk","Jungle music","Native US","Cabaret","New wave","Psychedelic","Rave","Showtunes","Trailer","Lo-fi","Tribal","Acid punk","Acid jazz","Polka","Retro","Musical","Rock 'n' roll","Hard rock","Folk","Folk rock","National folk","Swing","Fast fusion","Bebop","Latin","Revival","Celtic","Bluegrass","Avantgarde","Gothic rock","Progressive rock","Psychedelic rock","Symphonic rock","Slow rock","Big band","Chorus","Easy listening","Acoustic","Humour","Speech","Chanson","Opera","Chamber music","Sonata","Symphony","Booty bass","Primus","Porn groove","Satire","Slow jam","Club","Tango","Samba","Folklore","Ballad","Power ballad","Rhythmic Soul","Freestyle","Duet","Punk rock","Drum solo","A cappella","Euro-house","Dance hall","Goa music","Drum & bass","Club-house","Hardcore techno","Terror","Indie","Britpop","Negerpunk","Polsk punk","Beat","Christian gangsta rap","Heavy metal","Black metal","Crossover","Contemporary Christian","Christian rock","Merengue","Salsa","Thrash metal","Anime","Jpop","Synthpop","Christmas","Art rock","Baroque","Bhangra","Big beat","Breakbeat","Chillout","Downtempo","Dub","EBM","Eclectic","Electro","Electroclash","Emo","Experimental","Garage","Global","IDM","Illbient","Industro-Goth","Jam Band","Krautrock","Leftfield","Lounge","Math rock","New romantic","Nu-breakz","Post-punk","Post-rock","Psytrance","Shoegaze","Space rock","Trop rock","World music","Neoclassical","Audiobook","Audio theatre","Neue Deutsche Welle","Podcast","Indie rock","G-Funk","Dubstep","Garage rock","Psybient"],Ts=async(i,e,t)=>{let r=e;for(;t===null||r<t;){let s=i.requestSlice(r,4);if(s instanceof Promise&&(s=await s),!s)break;let n=B(s),o=Gf(n,i.fileSize!==null?i.fileSize-r:null);if(o.header)return{header:o.header,startPos:r};r+=o.bytesAdvanced}return null},Lf=(i,e)=>{let t=i.filePos;e.raw??={},e.raw.TAG??=W(i,Ss-3),i.filePos=t;let r=pi(i,30);r&&(e.title??=r);let s=pi(i,30);s&&(e.artist??=s);let n=pi(i,30);n&&(e.album??=n);let o=pi(i,4),a=Number.parseInt(o,10);Number.isInteger(a)&&a>0&&(e.date??=new Date(a,0,1));let c=W(i,30),l;if(c[28]===0&&c[29]!==0){let h=c[29];h>0&&(e.trackNumber??=h),i.skip(-30),l=pi(i,28),i.skip(2)}else i.skip(-30),l=pi(i,30);l&&(e.comment??=l);let u=z(i);u<yi.length&&(e.genre??=yi[u])},pi=(i,e)=>{let t=W(i,e),r=Mr(t.indexOf(0),t.length),s=t.subarray(0,r),n="";for(let o=0;o<s.length;o++)n+=String.fromCharCode(s[o]);return n.trimEnd()},ks=i=>{let e=i.filePos,t=de(i,3),r=z(i),s=z(i),n=z(i),o=B(i);if(t!=="ID3"||r===255||s===255||(o&2155905152)!==0)return i.filePos=e,null;let a=Ao(o);return{majorVersion:r,revision:s,flags:n,size:a}},Vf=(i,e,t)=>{if(![2,3,4].includes(e.majorVersion)){console.warn(`Unsupported ID3v2 major version: ${e.majorVersion}`);return}let r=W(i,e.size),s=new kl(e,r);if(e.flags&gi.Footer&&s.removeFooter(),e.flags&gi.Unsynchronisation&&e.majorVersion===3&&s.ununsynchronizeAll(),e.flags&gi.ExtendedHeader){let n=s.readU32();e.majorVersion===3?s.pos+=n:s.pos+=n-4}for(;s.pos<=s.bytes.length-s.frameHeaderSize();){let n=s.readId3V2Frame();if(!n)break;let o=s.pos,a=s.pos+n.size,c=!1,l=!1,u=!1;if(e.majorVersion===3?(c=!!(n.flags&64),l=!!(n.flags&128)):e.majorVersion===4&&(c=!!(n.flags&4),l=!!(n.flags&8),u=!!(n.flags&2)||!!(e.flags&gi.Unsynchronisation)),c){console.warn(`Skipping encrypted ID3v2 frame ${n.id}`),s.pos=a;continue}if(l){console.warn(`Skipping compressed ID3v2 frame ${n.id}`),s.pos=a;continue}switch(u&&s.ununsynchronizeRegion(s.pos,a),t.raw??={},n.id[0]==="T"?t.raw[n.id]??=s.readId3V2EncodingAndText(a):t.raw[n.id]??=s.readBytes(n.size),s.pos=o,n.id){case"TIT2":case"TT2":t.title??=s.readId3V2EncodingAndText(a);break;case"TIT3":case"TT3":t.description??=s.readId3V2EncodingAndText(a);break;case"TPE1":case"TP1":t.artist??=s.readId3V2EncodingAndText(a);break;case"TALB":case"TAL":t.album??=s.readId3V2EncodingAndText(a);break;case"TPE2":case"TP2":t.albumArtist??=s.readId3V2EncodingAndText(a);break;case"TRCK":case"TRK":{let d=s.readId3V2EncodingAndText(a).split("/"),f=Number.parseInt(d[0],10),m=d[1]&&Number.parseInt(d[1],10);Number.isInteger(f)&&f>0&&(t.trackNumber??=f),m&&Number.isInteger(m)&&m>0&&(t.tracksTotal??=m)}break;case"TPOS":case"TPA":{let d=s.readId3V2EncodingAndText(a).split("/"),f=Number.parseInt(d[0],10),m=d[1]&&Number.parseInt(d[1],10);Number.isInteger(f)&&f>0&&(t.discNumber??=f),m&&Number.isInteger(m)&&m>0&&(t.discsTotal??=m)}break;case"TCON":case"TCO":{let h=s.readId3V2EncodingAndText(a),d=/^\((\d+)\)/.exec(h);if(d){let f=Number.parseInt(d[1]);if(yi[f]!==void 0){t.genre??=yi[f];break}}if(d=/^\d+$/.exec(h),d){let f=Number.parseInt(d[0]);if(yi[f]!==void 0){t.genre??=yi[f];break}}t.genre??=h}break;case"TDRC":case"TDAT":{let h=s.readId3V2EncodingAndText(a),d=new Date(h);Number.isNaN(d.getTime())||(t.date??=d)}break;case"TYER":case"TYE":{let h=s.readId3V2EncodingAndText(a),d=Number.parseInt(h,10);Number.isInteger(d)&&(t.date??=new Date(d,0,1))}break;case"USLT":case"ULT":{let h=s.readU8();s.pos+=3,s.readId3V2Text(h,a),t.lyrics??=s.readId3V2Text(h,a)}break;case"COMM":case"COM":{let h=s.readU8();s.pos+=3,s.readId3V2Text(h,a),t.comment??=s.readId3V2Text(h,a)}break;case"APIC":case"PIC":{let h=s.readId3V2TextEncoding(),d;if(e.majorVersion===2){let g=s.readAscii(3);d=g==="PNG"?"image/png":g==="JPG"?"image/jpeg":"image/*"}else d=s.readId3V2Text(h,a);let f=s.readU8(),m=s.readId3V2Text(h,a).trimEnd(),p=a-s.pos;if(p>=0){let g=s.readBytes(p);t.images||(t.images=[]),t.images.push({data:g,mimeType:d,kind:f===3?"coverFront":f===4?"coverBack":"unknown",description:m})}}break;default:s.pos+=n.size;break}s.pos=a}},kl=class{constructor(e,t){this.header=e,this.bytes=t,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength)}frameHeaderSize(){return this.header.majorVersion===2?6:10}ununsynchronizeAll(){let e=[];for(let t=0;t<this.bytes.length;t++){let r=this.bytes[t];e.push(r),r===255&&t!==this.bytes.length-1&&this.bytes[t]===0&&t++}this.bytes=new Uint8Array(e),this.view=new DataView(this.bytes.buffer)}ununsynchronizeRegion(e,t){let r=[];for(let o=e;o<t;o++){let a=this.bytes[o];r.push(a),a===255&&o!==t-1&&this.bytes[o+1]===0&&o++}let s=this.bytes.subarray(0,e),n=this.bytes.subarray(t);this.bytes=new Uint8Array(s.length+r.length+n.length),this.bytes.set(s,0),this.bytes.set(r,s.length),this.bytes.set(n,s.length+r.length),this.view=new DataView(this.bytes.buffer)}removeFooter(){this.bytes=this.bytes.subarray(0,this.bytes.length-bi),this.view=new DataView(this.bytes.buffer)}readBytes(e){let t=this.bytes.subarray(this.pos,this.pos+e);return this.pos+=e,t}readU8(){let e=this.view.getUint8(this.pos);return this.pos+=1,e}readU16(){let e=this.view.getUint16(this.pos,!1);return this.pos+=2,e}readU24(){let e=this.view.getUint16(this.pos,!1),t=this.view.getUint8(this.pos+1);return this.pos+=3,e*256+t}readU32(){let e=this.view.getUint32(this.pos,!1);return this.pos+=4,e}readAscii(e){let t="";for(let r=0;r<e;r++)t+=String.fromCharCode(this.view.getUint8(this.pos+r));return this.pos+=e,t}readId3V2Frame(){if(this.header.majorVersion===2){let e=this.readAscii(3);if(e==="\0\0\0")return null;let t=this.readU24();return{id:e,size:t,flags:0}}else{let e=this.readAscii(4);if(e==="\0\0\0\0")return null;let t=this.readU32(),r=this.header.majorVersion===4?Ao(t):t,s=this.readU16(),n=this.pos,o=a=>{let c=this.pos+a;if(c>this.bytes.length)return!1;if(c<=this.bytes.length-this.frameHeaderSize()){this.pos+=a;let l=this.readAscii(4);if(l!=="\0\0\0\0"&&!/[0-9A-Z]{4}/.test(l))return!1}return!0};if(!o(r)){let a=this.header.majorVersion===4?t:Ao(t);o(a)&&(r=a)}return this.pos=n,{id:e,size:r,flags:s}}}readId3V2TextEncoding(){let e=this.readU8();if(e>3)throw new Error(`Unsupported text encoding: ${e}`);return e}readId3V2Text(e,t){let r=this.pos,s=this.readBytes(t);switch(e){case xi.ISO_8859_1:{let n="";for(let o=0;o<s.length;o++){let a=s[o];if(a===0){this.pos=r+o+1;break}n+=String.fromCharCode(a)}return n}case xi.UTF_16_WITH_BOM:if(s[0]===255&&s[1]===254){let n=new TextDecoder("utf-16le"),o=Mr(s.findIndex((a,c)=>a===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=r+Math.min(o+2,s.length),n.decode(s.subarray(2,o))}else if(s[0]===254&&s[1]===255){let n=new TextDecoder("utf-16be"),o=Mr(s.findIndex((a,c)=>a===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=r+Math.min(o+2,s.length),n.decode(s.subarray(2,o))}else{let n=Mr(s.findIndex(o=>o===0),s.length);return this.pos=r+Math.min(n+1,s.length),Be.decode(s.subarray(0,n))}case xi.UTF_16_BE_NO_BOM:{let n=new TextDecoder("utf-16be"),o=Mr(s.findIndex((a,c)=>a===0&&s[c+1]===0&&c%2===0),s.length);return this.pos=r+Math.min(o+2,s.length),n.decode(s.subarray(0,o))}case xi.UTF_8:{let n=Mr(s.findIndex(o=>o===0),s.length);return this.pos=r+Math.min(n+1,s.length),Be.decode(s.subarray(0,n))}}}readId3V2EncodingAndText(e){if(this.pos>=e)return"";let t=this.readId3V2TextEncoding();return this.readId3V2Text(t,e)}};var vl=1399285583,G_=79764919,Wf=new Uint32Array(256);for(let i=0;i<256;i++){let e=i<<24;for(let t=0;t<8;t++)e=e&2147483648?e<<1^G_:e<<1;Wf[i]=e>>>0&4294967295}var Hf=i=>{let e=oe(i),t=e.getUint32(22,!0);e.setUint32(22,0,!0);let r=0;for(let s=0;s<i.length;s++){let n=i[s];r=(r<<8^Wf[r>>>24^n])>>>0}return e.setUint32(22,t,!0),r},jf=(i,e,t)=>{let r=0,s=null;if(i.length>0)if(e.codec==="vorbis"){k(e.vorbisInfo);let n=e.vorbisInfo.modeBlockflags.length,a=(1<<mf(n-1))-1<<1,c=(i[0]&a)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let l=t,u=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[u],u===1){let h=(a|1)+1,d=i[0]&h?1:0;l=e.vorbisInfo.blocksizes[d]}r=l!==null?l+s>>2:0}else e.codec==="opus"&&(r=Pf(i).durationInSamples);return{durationInSamples:r,vorbisBlockSize:s}},$f=i=>{let e="audio/ogg";if(i.codecStrings){let t=[...new Set(i.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var cr=27,Rr=282,qf=Rr+65025,wi=i=>{let e=i.filePos;if(Fr(i)!==vl)return null;i.skip(1);let r=z(i),s=Mf(i),n=Fr(i),o=Fr(i),a=Fr(i),c=z(i),l=new Uint8Array(c);for(let f=0;f<c;f++)l[f]=z(i);let u=27+c,h=l.reduce((f,m)=>f+m,0),d=u+h;return{headerStartPos:e,totalSize:d,dataStartPos:e+u,dataSize:h,headerType:r,granulePosition:s,serialNumber:n,sequenceNumber:o,checksum:a,lacingValues:l}},Xf=(i,e)=>{for(;i.filePos<e-3;){let t=Fr(i),r=t&255,s=t>>>8&255,n=t>>>16&255,o=t>>>24&255,a=79;if(!(r!==a&&s!==a&&n!==a&&o!==a)){if(i.skip(-4),t===vl)return!0;i.skip(1)}}return!1};var We=class{constructor(e){this.input=e}};var Io=[],Pl=[];var Ee=new Uint8Array(0),ce=class i{constructor(e,t,r,s,n=-1,o){if(this.data=e,this.type=t,this.timestamp=r,this.duration=s,this.sequenceNumber=n,e===Ee&&o===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(o===void 0&&(o=e.byteLength),!(e instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if(t!=="key"&&t!=="delta")throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(r))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(s)||s<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(n))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");this.byteLength=o}get isMetadataOnly(){return this.data===Ee}get microsecondTimestamp(){return Math.trunc(sr*this.timestamp)}get microsecondDuration(){return Math.trunc(sr*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if(typeof EncodedVideoChunk>"u")throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if(typeof EncodedAudioChunk>"u")throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(e){if(!(e instanceof EncodedVideoChunk||e instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");let t=new Uint8Array(e.byteLength);return e.copyTo(t),new i(t,e.type,e.timestamp/1e6,(e.duration??0)/1e6)}clone(e){if(e!==void 0&&(typeof e!="object"||e===null))throw new TypeError("options, when provided, must be an object.");if(e?.timestamp!==void 0&&!Number.isFinite(e.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(e?.duration!==void 0&&!Number.isFinite(e.duration))throw new TypeError("options.duration, when provided, must be a number.");return new i(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}};var Ps=class i{get displayWidth(){return this.rotation%180===0?this.codedWidth:this.codedHeight}get displayHeight(){return this.rotation%180===0?this.codedHeight:this.codedWidth}get microsecondTimestamp(){return Math.trunc(sr*this.timestamp)}get microsecondDuration(){return Math.trunc(sr*this.duration)}constructor(e,t){if(this._closed=!1,e instanceof ArrayBuffer||ArrayBuffer.isView(e)){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(!("format"in t)||typeof t.format!="string")throw new TypeError("init.format must be a string.");if(!Number.isInteger(t.codedWidth)||t.codedWidth<=0)throw new TypeError("init.codedWidth must be a positive integer.");if(!Number.isInteger(t.codedHeight)||t.codedHeight<=0)throw new TypeError("init.codedHeight must be a positive integer.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=ir(e).slice(),this.format=t.format,this.codedWidth=t.codedWidth,this.codedHeight=t.codedHeight,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace(t.colorSpace)}else if(typeof VideoFrame<"u"&&e instanceof VideoFrame){if(t?.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(t?.timestamp!==void 0&&!Number.isFinite(t?.timestamp))throw new TypeError("init.timestamp, when provided, must be a number.");if(t?.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");this._data=e,this.format=e.format,this.codedWidth=e.displayWidth,this.codedHeight=e.displayHeight,this.rotation=t?.rotation??0,this.timestamp=t?.timestamp??e.timestamp/1e6,this.duration=t?.duration??(e.duration??0)/1e6,this.colorSpace=e.colorSpace}else if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof SVGImageElement<"u"&&e instanceof SVGImageElement||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas){if(!t||typeof t!="object")throw new TypeError("init must be an object.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("init.rotation, when provided, must be 0, 90, 180, or 270.");if(!Number.isFinite(t.timestamp))throw new TypeError("init.timestamp must be a number.");if(t.duration!==void 0&&(!Number.isFinite(t.duration)||t.duration<0))throw new TypeError("init.duration, when provided, must be a non-negative number.");if(typeof VideoFrame<"u")return new i(new VideoFrame(e,{timestamp:Math.trunc(t.timestamp*sr),duration:Math.trunc((t.duration??0)*sr)}),t);let r=0,s=0;if("naturalWidth"in e?(r=e.naturalWidth,s=e.naturalHeight):"videoWidth"in e?(r=e.videoWidth,s=e.videoHeight):"width"in e&&(r=Number(e.width),s=Number(e.height)),!r||!s)throw new TypeError("Could not determine dimensions.");let n=new OffscreenCanvas(r,s),o=n.getContext("2d",{alpha:!1,willReadFrequently:!0});k(o),o.drawImage(e,0,0),this._data=n,this.format="RGBX",this.codedWidth=r,this.codedHeight=s,this.rotation=t.rotation??0,this.timestamp=t.timestamp,this.duration=t.duration??0,this.colorSpace=new VideoColorSpace({matrix:"rgb",primaries:"bt709",transfer:"iec61966-2-1",fullRange:!0})}else throw new TypeError("Invalid data type: Must be a BufferSource or CanvasImageSource.")}clone(){if(this._closed)throw new Error("VideoSample is closed.");return k(this._data!==null),vs(this._data)?new i(this._data.clone(),{timestamp:this.timestamp,duration:this.duration,rotation:this.rotation}):this._data instanceof Uint8Array?new i(this._data.slice(),{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation}):new i(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace,rotation:this.rotation})}close(){this._closed||(vs(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(){if(this._closed)throw new Error("VideoSample is closed.");return k(this._data!==null),vs(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!ll(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw new Error("VideoSample is closed.");if(k(this._data!==null),vs(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)ir(e).set(this._data);else{let r=this._data.getContext("2d",{alpha:!1});k(r);let s=r.getImageData(0,0,this.codedWidth,this.codedHeight);ir(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return k(this._data!==null),vs(this._data)?new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration||void 0}):this._data instanceof Uint8Array?new VideoFrame(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration,colorSpace:this.colorSpace}):new VideoFrame(this._data,{timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}draw(e,t,r,s,n,o,a,c,l){let u=0,h=0,d=this.displayWidth,f=this.displayHeight,m=0,p=0,g=this.displayWidth,y=this.displayHeight;if(o!==void 0?(u=t,h=r,d=s,f=n,m=o,p=a,c!==void 0?(g=c,y=l):(g=d,y=f)):(m=t,p=r,s!==void 0&&(g=s,y=n)),!(typeof CanvasRenderingContext2D<"u"&&e instanceof CanvasRenderingContext2D||typeof OffscreenCanvasRenderingContext2D<"u"&&e instanceof OffscreenCanvasRenderingContext2D))throw new TypeError("context must be a CanvasRenderingContext2D or OffscreenCanvasRenderingContext2D.");if(!Number.isFinite(u))throw new TypeError("sx must be a number.");if(!Number.isFinite(h))throw new TypeError("sy must be a number.");if(!Number.isFinite(d)||d<0)throw new TypeError("sWidth must be a non-negative number.");if(!Number.isFinite(f)||f<0)throw new TypeError("sHeight must be a non-negative number.");if(!Number.isFinite(m))throw new TypeError("dx must be a number.");if(!Number.isFinite(p))throw new TypeError("dy must be a number.");if(!Number.isFinite(g)||g<0)throw new TypeError("dWidth must be a non-negative number.");if(!Number.isFinite(y)||y<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");this.rotation===90?[u,h,d,f]=[h,this.codedHeight-u-d,f,d]:this.rotation===180?[u,h]=[this.codedWidth-u-d,this.codedHeight-h-f]:this.rotation===270&&([u,h,d,f]=[this.codedWidth-h-f,u,f,d]);let x=this.toCanvasImageSource();e.save();let w=m+g/2,_=p+y/2;e.translate(w,_),e.rotate(this.rotation*Math.PI/180);let S=this.rotation%180===0?1:g/y;e.scale(1/S,S),e.drawImage(x,u,h,d,f,-g/2,-y/2,g,y),e.restore()}drawWithFit(e,t){let r=e.canvas.width,s=e.canvas.height,n=t.rotation??this.rotation,o,a,c,l;if(t.fit==="fill")o=0,a=0,c=r,l=s;else{let[h,d]=n%180===0?[this.codedWidth,this.codedHeight]:[this.codedHeight,this.codedWidth],f=t.fit==="contain"?Math.min(r/h,s/d):Math.max(r/h,s/d);c=h*f,l=d*f,o=(r-c)/2,a=(s-l)/2}let u=n%180===0?1:c/l;e.translate(r/2,s/2),e.rotate(n*Math.PI/180),e.scale(1/u,u),e.translate(-r/2,-s/2),e.drawImage(this.toCanvasImageSource(),o,a,c,l)}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(k(this._data!==null),this._data instanceof Uint8Array){let e=this.toVideoFrame();return queueMicrotask(()=>e.close()),e}else return this._data}setRotation(e){if(![0,90,180,270].includes(e))throw new TypeError("newRotation must be 0, 90, 180, or 270.");this.rotation=e}setTimestamp(e){if(!Number.isFinite(e))throw new TypeError("newTimestamp must be a number.");this.timestamp=e}setDuration(e){if(!Number.isFinite(e)||e<0)throw new TypeError("newDuration must be a non-negative number.");this.duration=e}},vs=i=>typeof VideoFrame<"u"&&i instanceof VideoFrame;var _i=i=>{if(!i||typeof i!="object")throw new TypeError("options must be an object.");if(i.metadataOnly!==void 0&&typeof i.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(i.verifyKeyPackets!==void 0&&typeof i.verifyKeyPackets!="boolean")throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(i.verifyKeyPackets&&i.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},Or=i=>{if(typeof i!="number"||Number.isNaN(i))throw new TypeError("timestamp must be a number.")},Cl=(i,e,t)=>t.verifyKeyPackets?e.then(async r=>{if(!r||r.type==="delta")return r;let s=await i.determinePacketType(r);return s&&(r.type=s),r}):e,Si=class{constructor(e){if(!(e instanceof Ti))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return _i(e),Cl(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,t={}){return Or(e),_i(t),Cl(this._track,this._track._backing.getPacket(e,t),t)}getNextPacket(e,t={}){if(!(e instanceof ce))throw new TypeError("packet must be an EncodedPacket.");return _i(t),Cl(this._track,this._track._backing.getNextPacket(e,t),t)}async getKeyPacket(e,t={}){if(Or(e),_i(t),!t.verifyKeyPackets)return this._track._backing.getKeyPacket(e,t);let r=await this._track._backing.getKeyPacket(e,t);return!r||r.type==="delta"?r:await this._track.determinePacketType(r)==="delta"?this.getKeyPacket(r.timestamp-1/this._track.timeResolution,t):r}async getNextKeyPacket(e,t={}){if(!(e instanceof ce))throw new TypeError("packet must be an EncodedPacket.");if(_i(t),!t.verifyKeyPackets)return this._track._backing.getNextKeyPacket(e,t);let r=await this._track._backing.getNextKeyPacket(e,t);return!r||r.type==="delta"?r:await this._track.determinePacketType(r)==="delta"?this.getNextKeyPacket(r,t):r}packets(e,t,r={}){if(e!==void 0&&!(e instanceof ce))throw new TypeError("startPacket must be an EncodedPacket.");if(e!==void 0&&e.isMetadataOnly&&!r?.metadataOnly)throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(t!==void 0&&!(t instanceof ce))throw new TypeError("endPacket must be an EncodedPacket.");_i(r);let s=[],{promise:n,resolve:o}=Fe(),{promise:a,resolve:c}=Fe(),l=!1,u=!1,h=null,d=[],f=()=>Math.max(2,d.length);return(async()=>{let m=e??await this.getFirstPacket(r);for(;m&&!u&&!(t&&m.sequenceNumber>=t?.sequenceNumber);){if(s.length>f()){({promise:a,resolve:c}=Fe()),await a;continue}s.push(m),o(),{promise:n,resolve:o}=Fe(),m=await this.getNextPacket(m,r)}l=!0,o()})().catch(m=>{h||(h=m,o())}),{async next(){for(;;){if(u)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let m=s.shift(),p=performance.now();for(d.push(p);d.length>0&&p-d[0]>=1e3;)d.shift();return c(),{value:m,done:!1}}else{if(l)return{value:void 0,done:!0};await n}}},async return(){return u=!0,c(),o(),{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}},El=class{constructor(e,t){this.onSample=e,this.onError=t}},Mo=class{mediaSamplesInRange(e=0,t=1/0){Or(e),Or(t);let r=[],s=!1,n=null,{promise:o,resolve:a}=Fe(),{promise:c,resolve:l}=Fe(),u=!1,h=!1,d=!1,f=null;return(async()=>{let m=new Error,p=await this._createDecoder(S=>{if(l(),S.timestamp>=t&&(h=!0),h){S.close();return}n&&(S.timestamp>e?(r.push(n),s=!0):n.close()),S.timestamp>=e&&(r.push(S),s=!0),n=s?null:S,r.length>0&&(a(),{promise:o,resolve:a}=Fe())},S=>{f||(S.stack=m.stack,f=S,a())}),g=this._createPacketSink(),y=await g.getKeyPacket(e,{verifyKeyPackets:!0})??await g.getFirstPacket();if(!y)return;let x=y,w;if(t<1/0){let S=await g.getPacket(t),T=S?S.type==="key"&&S.timestamp===t?S:await g.getNextKeyPacket(S,{verifyKeyPackets:!0}):null;T&&(w=T)}let _=g.packets(y,w);for(await _.next();x&&!h;){let S=Yf(r.length);if(r.length+p.getDecodeQueueSize()>S){({promise:c,resolve:l}=Fe()),await c;continue}p.decode(x);let T=await _.next();if(T.done)break;x=T.value}await _.return(),d||await p.flush(),p.close(),!s&&n&&r.push(n),u=!0,a()})().catch(m=>{f||(f=m,a())}),{async next(){for(;;){if(d)return{value:void 0,done:!0};if(f)throw f;if(r.length>0){let m=r.shift();return l(),{value:m,done:!1}}else if(!u)await o;else return{value:void 0,done:!0}}},async return(){d=!0,h=!0,l(),a(),n?.close();for(let m of r)m.close();return{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){df(e);let t=hf(e),r=[],s=[],{promise:n,resolve:o}=Fe(),{promise:a,resolve:c}=Fe(),l=!1,u=!1,h=null,d=f=>{s.push(f),o(),{promise:n,resolve:o}=Fe()};return(async()=>{let f=new Error,m=await this._createDecoder(S=>{if(c(),u){S.close();return}let T=0;for(;r.length>0&&S.timestamp-r[0]>-1e-10;)T++,r.shift();if(T>0)for(let v=0;v<T;v++)d(v<T-1?S.clone():S);else S.close()},S=>{h||(S.stack=f.stack,h=S,o())}),p=this._createPacketSink(),g=null,y=null,x=-1,w=async()=>{k(y);let S=y;for(m.decode(S);S.sequenceNumber<x;){let T=Yf(s.length);for(;s.length+m.getDecodeQueueSize()>T&&!u;)({promise:a,resolve:c}=Fe()),await a;if(u)break;let v=await p.getNextPacket(S);k(v),m.decode(v),S=v}x=-1},_=async()=>{await m.flush();for(let S=0;S<r.length;S++)d(null);r.length=0};for await(let S of t){if(Or(S),u)break;let T=await p.getPacket(S),v=T&&await p.getKeyPacket(S,{verifyKeyPackets:!0});if(!v){x!==-1&&(await w(),await _()),d(null),g=null;continue}g&&(v.sequenceNumber!==y.sequenceNumber||T.timestamp<g.timestamp)&&(await w(),await _()),r.push(T.timestamp),x=Math.max(T.sequenceNumber,x),g=T,y=v}u||(x!==-1&&await w(),await _()),m.close(),l=!0,o()})().catch(f=>{h||(h=f,o())}),{async next(){for(;;){if(u)return{value:void 0,done:!0};if(h)throw h;if(s.length>0){let f=s.shift();return k(f!==void 0),c(),{value:f,done:!1}}else if(!l)await n;else return{value:void 0,done:!0}}},async return(){u=!0,c(),o();for(let f of s)f?.close();return{value:void 0,done:!0}},async throw(f){throw f},[Symbol.asyncIterator](){return this}}}},Yf=i=>i===0?40:8,Al=class extends El{constructor(e,t,r,s,n,o){super(e,t),this.codec=r,this.decoderConfig=s,this.rotation=n,this.timeResolution=o,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new io,this.customDecoderQueueSize=0,this.inputTimestamps=[],this.sampleQueue=[],this.currentPacketIndex=0,this.raslSkipped=!1;let a=Io.find(c=>c.supports(r,s));if(a)this.customDecoder=new a,this.customDecoder.codec=r,this.customDecoder.config=s,this.customDecoder.onSample=c=>{if(!(c instanceof Ps))throw new TypeError("The argument passed to onSample must be a VideoSample.");this.finalizeAndEmitSample(c)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init());else{let c=l=>{if(fo()){if(this.sampleQueue.length>0&&l.timestamp>=ve(this.sampleQueue).timestamp){for(let u of this.sampleQueue)this.finalizeAndEmitSample(u);this.sampleQueue.length=0}ot(this.sampleQueue,l,u=>u.timestamp)}else{let u=this.inputTimestamps.shift();k(u!==void 0),l.setTimestamp(u),this.finalizeAndEmitSample(l)}};this.decoder=new VideoDecoder({output:l=>c(new Ps(l)),error:t}),this.decoder.configure(s)}}finalizeAndEmitSample(e){e.setTimestamp(Math.round(e.timestamp*this.timeResolution)/this.timeResolution),e.setDuration(Math.round(e.duration*this.timeResolution)/this.timeResolution),e.setRotation(this.rotation),this.onSample(e)}getDecodeQueueSize(){return this.customDecoder?this.customDecoderQueueSize:(k(this.decoder),this.decoder.decodeQueueSize)}decode(e){if(this.codec==="hevc"&&this.currentPacketIndex>0&&!this.raslSkipped){if(yl(e.data,this.decoderConfig).some(s=>{let n=zt(s);return n===De.RASL_N||n===De.RASL_R}))return;this.raslSkipped=!0}this.currentPacketIndex++,this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(k(this.decoder),fo()||ot(this.inputTimestamps,e.timestamp,t=>t),this.decoder.decode(e.toEncodedVideoChunk()))}async flush(){if(this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(k(this.decoder),await this.decoder.flush()),fo()){for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}this.currentPacketIndex=0,this.raslSkipped=!1}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(k(this.decoder),this.decoder.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},Bo=class extends Mo{constructor(e){if(!(e instanceof wt))throw new TypeError("videoTrack must be an InputVideoTrack.");super(),this._videoTrack=e}async _createDecoder(e,t){if(!await this._videoTrack.canDecode())throw new Error("This video track cannot be decoded by this browser. Make sure to check decodability before using a track.");let r=this._videoTrack.codec,s=this._videoTrack.rotation,n=await this._videoTrack.getDecoderConfig(),o=this._videoTrack.timeResolution;return k(r&&n),new Al(e,t,r,n,s,o)}_createPacketSink(){return new Si(this._videoTrack)}async getSample(e){Or(e);for await(let t of this.mediaSamplesAtTimestamps([e]))return t;throw new Error("Internal error: Iterator returned nothing.")}samples(e=0,t=1/0){return this.mediaSamplesInRange(e,t)}samplesAtTimestamps(e){return this.mediaSamplesAtTimestamps(e)}},Cs=class{constructor(e,t={}){if(this._nextCanvasIndex=0,!(e instanceof wt))throw new TypeError("videoTrack must be an InputVideoTrack.");if(t&&typeof t!="object")throw new TypeError("options must be an object.");if(t.width!==void 0&&(!Number.isInteger(t.width)||t.width<=0))throw new TypeError("options.width, when defined, must be a positive integer.");if(t.height!==void 0&&(!Number.isInteger(t.height)||t.height<=0))throw new TypeError("options.height, when defined, must be a positive integer.");if(t.fit!==void 0&&!["fill","contain","cover"].includes(t.fit))throw new TypeError('options.fit, when provided, must be one of "fill", "contain", or "cover".');if(t.width!==void 0&&t.height!==void 0&&t.fit===void 0)throw new TypeError("When both options.width and options.height are provided, options.fit must also be provided.");if(t.rotation!==void 0&&![0,90,180,270].includes(t.rotation))throw new TypeError("options.rotation, when provided, must be 0, 90, 180 or 270.");if(t.poolSize!==void 0&&(typeof t.poolSize!="number"||!Number.isInteger(t.poolSize)||t.poolSize<0))throw new TypeError("poolSize must be a non-negative integer.");let r=t.rotation??e.rotation,[s,n]=r%180===0?[e.codedWidth,e.codedHeight]:[e.codedHeight,e.codedWidth],o=s/n;t.width!==void 0&&t.height===void 0?(s=t.width,n=Math.round(s/o)):t.width===void 0&&t.height!==void 0?(n=t.height,s=Math.round(n*o)):t.width!==void 0&&t.height!==void 0&&(s=t.width,n=t.height),this._videoTrack=e,this._width=s,this._height=n,this._rotation=r,this._fit=t.fit??"fill",this._videoSampleSink=new Bo(e),this._canvasPool=Array.from({length:t.poolSize??0},()=>null)}_videoSampleToWrappedCanvas(e){let t=this._canvasPool[this._nextCanvasIndex],r=!1;t||(typeof document<"u"?(t=document.createElement("canvas"),t.width=this._width,t.height=this._height):t=new OffscreenCanvas(this._width,this._height),this._canvasPool.length>0&&(this._canvasPool[this._nextCanvasIndex]=t),r=!0),this._canvasPool.length>0&&(this._nextCanvasIndex=(this._nextCanvasIndex+1)%this._canvasPool.length);let s=t.getContext("2d",{alpha:!1});k(s),s.resetTransform(),r||s.clearRect(0,0,this._width,this._height),e.drawWithFit(s,{fit:this._fit,rotation:this._rotation});let n={canvas:t,timestamp:e.timestamp,duration:e.duration};return e.close(),n}async getCanvas(e){Or(e);let t=await this._videoSampleSink.getSample(e);return t&&this._videoSampleToWrappedCanvas(t)}canvases(e=0,t=1/0){return fl(this._videoSampleSink.samples(e,t),r=>this._videoSampleToWrappedCanvas(r))}canvasesAtTimestamps(e){return fl(this._videoSampleSink.samplesAtTimestamps(e),t=>t&&this._videoSampleToWrappedCanvas(t))}};var Ti=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof wt}isAudioTrack(){return this instanceof Ae}get id(){return this._backing.getId()}get internalCodecId(){return this._backing.getInternalCodecId()}get languageCode(){return this._backing.getLanguageCode()}get name(){return this._backing.getName()}get timeResolution(){return this._backing.getTimeResolution()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let t=new Si(this),r=1/0,s=-1/0,n=0,o=0;for await(let a of t.packets(void 0,void 0,{metadataOnly:!0})){if(n>=e&&a.timestamp>=s)break;r=Math.min(r,a.timestamp),s=Math.max(s,a.timestamp+a.duration),n++,o+=a.byteLength}return{packetCount:n,averagePacketRate:n?Number((n/(s-r)).toPrecision(16)):0,averageBitrate:n?Number((8*o/(s-r)).toPrecision(16)):0}}},wt=class extends Ti{constructor(e){super(e),this._backing=e}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get displayWidth(){return this._backing.getRotation()%180===0?this._backing.getCodedWidth():this._backing.getCodedHeight()}get displayHeight(){return this._backing.getRotation()%180===0?this._backing.getCodedHeight():this._backing.getCodedWidth()}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){let e=await this._backing.getColorSpace();return e.primaries==="bt2020"||e.primaries==="smpte432"||e.transfer==="pg"||e.transfer==="hlg"||e.matrix==="bt2020-ncl"}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return k(t!==null),Io.some(s=>s.supports(t,e))?!0:typeof VideoDecoder>"u"?!1:(await VideoDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof ce))throw new TypeError("packet must be an EncodedPacket.");if(e.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");return this.codec===null?null:Ef(this,e)}},Ae=class extends Ti{constructor(e){super(e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){return(await this._backing.getDecoderConfig())?.codec??null}async canDecode(){try{let e=await this._backing.getDecoderConfig();if(!e)return!1;let t=this._backing.getCodec();return k(t!==null),Pl.some(r=>r.supports(t,e))||e.codec.startsWith("pcm-")?!0:typeof AudioDecoder>"u"?!1:(await AudioDecoder.isConfigSupported(e)).supported===!0}catch(e){return console.error("Error during decodability check:",e),!1}}async determinePacketType(e){if(!(e instanceof ce))throw new TypeError("packet must be an EncodedPacket.");return this.codec===null?null:"key"}};var Wt;(function(i){i[i.PCM=1]="PCM",i[i.IEEE_FLOAT=3]="IEEE_FLOAT",i[i.ALAW=6]="ALAW",i[i.MULAW=7]="MULAW",i[i.EXTENSIBLE=65534]="EXTENSIBLE"})(Wt||(Wt={}));var Fo=class extends We{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.lastKnownPacketIndex=0,this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=this.reader.requestSlice(0,12);e instanceof Promise&&(e=await e),k(e);let t=de(e,4),r=t!=="RIFX",s=t==="RF64",n=Gt(e,r),o=s?this.reader.fileSize:Math.min(n+8,this.reader.fileSize??1/0);if(de(e,4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");let c=0,l=null,u=e.filePos;for(;o===null||u<o;){let d=this.reader.requestSlice(u,8);if(d instanceof Promise&&(d=await d),!d)break;let f=de(d,4),m=Gt(d,r),p=d.filePos;if(s&&c===0&&f!=="ds64")throw new Error('Invalid RF64 file: First chunk must be "ds64".');if(f==="fmt ")await this.parseFmtChunk(p,m,r);else if(f==="data"){if(l??=m,this.dataStart=d.filePos,this.dataSize=Math.min(l,(o??1/0)-this.dataStart),this.reader.fileSize===null)break}else if(f==="ds64"){let g=bl(d,r);l=bl(d,r),o=Math.min(g+8,this.reader.fileSize??1/0)}else f==="LIST"&&await this.parseListChunk(p,m,r);u=p+m+(m&1),c++}if(!this.audioInfo)throw new Error('Invalid WAVE file - missing "fmt " chunk');if(this.dataStart===-1)throw new Error('Invalid WAVE file - missing "data" chunk');let h=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/h)*h,this.tracks.push(new Ae(new Il(this)))})()}async parseFmtChunk(e,t,r){let s=this.reader.requestSlice(e,t);if(s instanceof Promise&&(s=await s),!s)return;let n=ui(s,r),o=ui(s,r),a=Gt(s,r);s.skip(4);let c=ui(s,r),l;if(t===14?l=8:l=ui(s,r),t>=18&&n!==357){let u=ui(s,r),h=t-18;if(Math.min(h,u)>=22&&n===Wt.EXTENSIBLE){s.skip(6);let f=W(s,16);n=f[0]|f[1]<<8}}(n===Wt.MULAW||n===Wt.ALAW)&&(l=8),this.audioInfo={format:n,numberOfChannels:o,sampleRate:a,sampleSizeInBytes:Math.ceil(l/8),blockSizeInBytes:c}}async parseListChunk(e,t,r){let s=this.reader.requestSlice(e,t);if(s instanceof Promise&&(s=await s),!s)return;let n=de(s,4);if(n!=="INFO"&&n!=="INF0")return;let o=s.filePos;for(;o<=e+t-8;){s.filePos=o;let a=de(s,4),c=Gt(s,r),l=W(s,c),u=0;for(let d=0;d<l.length&&l[d]!==0;d++)u++;let h=String.fromCharCode(...l.subarray(0,u));switch(this.metadataTags.raw??={},this.metadataTags.raw[a]=h,a){case"INAM":case"TITL":this.metadataTags.title??=h;break;case"TIT3":this.metadataTags.description??=h;break;case"IART":this.metadataTags.artist??=h;break;case"IPRD":this.metadataTags.album??=h;break;case"IPRT":case"ITRK":case"TRCK":{let d=h.split("/"),f=Number.parseInt(d[0],10),m=d[1]&&Number.parseInt(d[1],10);Number.isInteger(f)&&f>0&&(this.metadataTags.trackNumber??=f),m&&Number.isInteger(m)&&m>0&&(this.metadataTags.tracksTotal??=m)}break;case"ICRD":case"IDIT":{let d=new Date(h);Number.isNaN(d.getTime())||(this.metadataTags.date??=d)}break;case"YEAR":{let d=Number.parseInt(h,10);Number.isInteger(d)&&d>0&&(this.metadataTags.date??=new Date(d,0,1))}break;case"IGNR":case"GENR":this.metadataTags.genre??=h;break;case"ICMT":case"CMNT":case"COMM":this.metadataTags.comment??=h;break}o+=8+c+(c&1)}}getCodec(){if(k(this.audioInfo),this.audioInfo.format===Wt.MULAW)return"ulaw";if(this.audioInfo.format===Wt.ALAW)return"alaw";if(this.audioInfo.format===Wt.PCM){if(this.audioInfo.sampleSizeInBytes===1)return"pcm-u8";if(this.audioInfo.sampleSizeInBytes===2)return"pcm-s16";if(this.audioInfo.sampleSizeInBytes===3)return"pcm-s24";if(this.audioInfo.sampleSizeInBytes===4)return"pcm-s32"}return this.audioInfo.format===Wt.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return k(e),e.computeDuration()}async getTracks(){return await this.readMetadata(),this.tracks}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},ki=2048,Il=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}getInternalCodecId(){return k(this.demuxer.audioInfo),this.demuxer.audioInfo.format}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(k(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getNumberOfChannels(){return k(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return k(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return k(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getName(){return null}getLanguageCode(){return Pe}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){k(this.demuxer.audioInfo);let r=e*ki*this.demuxer.audioInfo.blockSizeInBytes;if(r>=this.demuxer.dataSize)return null;let s=Math.min(ki*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-r);if(this.demuxer.reader.fileSize===null){let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,s);if(c instanceof Promise&&(c=await c),!c)return null}let n;if(t.metadataOnly)n=Ee;else{let c=this.demuxer.reader.requestSlice(this.demuxer.dataStart+r,s);c instanceof Promise&&(c=await c),k(c),n=W(c,s)}let o=e*ki/this.demuxer.audioInfo.sampleRate,a=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return this.demuxer.lastKnownPacketIndex=Math.max(e,o),new ce(n,"key",o,a,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getPacket(e,t){k(this.demuxer.audioInfo);let r=Math.floor(Math.min(e*this.demuxer.audioInfo.sampleRate/ki,(this.demuxer.dataSize-1)/(ki*this.demuxer.audioInfo.blockSizeInBytes))),s=await this.getPacketAtIndex(r,t);if(s)return s;if(r===0)return null;k(this.demuxer.reader.fileSize===null);let n=await this.getPacketAtIndex(this.demuxer.lastKnownPacketIndex,t);for(;n;){let o=await this.getNextPacket(n,t);if(!o)break;n=o}return n}getNextPacket(e,t){k(this.demuxer.audioInfo);let r=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/ki);return this.getPacketAtIndex(r+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var Ur=class{constructor(){this._sizePromise=null,this.onread=null}async getSizeOrNull(){return this._sizePromise??=Promise.resolve(this._retrieveSize())}async getSize(){let e=await this.getSizeOrNull();if(e===null)throw new Error("Cannot determine the size of an unsized source.");return e}};var Es=class extends Ur{constructor(e,t={}){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.maxCacheSize!==void 0&&(!Number.isInteger(t.maxCacheSize)||t.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative integer.");super(),this._readers=new WeakMap,this._blob=e,this._orchestrator=new Do({maxCacheSize:t.maxCacheSize??8*2**20,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:Zf.fileSystem})}_retrieveSize(){let e=this._blob.size;return this._orchestrator.fileSize=e,e}_read(e,t){return this._orchestrator.read(e,t)}async _runWorker(e){let t=this._readers.get(e);for(t||(t=this._blob.slice(e.currentPos).stream().getReader(),this._readers.set(e,t));e.currentPos<e.targetPos&&!e.aborted;){let{done:r,value:s}=await t.read();if(r){if(this._orchestrator.forgetWorker(e),e.currentPos<e.targetPos)throw new Error("Blob reader stopped unexpectedly before all requested data was read.");break}this.onread?.(e.currentPos,e.currentPos+s.length),this._orchestrator.supplyWorkerData(e,s)}e.running=!1}get _supportsRandomAccess(){return!0}},Kf=.5*2**20,As=class extends Ur{constructor(e,t={}){if(typeof e!="string"&&!(e instanceof URL))throw new TypeError("url must be a string or URL.");if(!t||typeof t!="object")throw new TypeError("options must be an object.");if(t.requestInit!==void 0&&(!t.requestInit||typeof t.requestInit!="object"))throw new TypeError("options.requestInit, when provided, must be an object.");if(t.getRetryDelay!==void 0&&typeof t.getRetryDelay!="function")throw new TypeError("options.getRetryDelay, when provided, must be a function.");if(t.maxCacheSize!==void 0&&(!Number.isInteger(t.maxCacheSize)||t.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative integer.");super(),this._existingResponses=new WeakMap,this._url=e instanceof URL?e:new URL(e,typeof location<"u"?location.href:void 0),this._options=t,this._getRetryDelay=t.getRetryDelay??(r=>Math.min(2**(r-2),8)),this._orchestrator=new Do({maxCacheSize:t.maxCacheSize??64*2**20,maxWorkerCount:2,runWorker:this._runWorker.bind(this),prefetchProfile:Zf.network})}async _retrieveSize(){let e=new AbortController,t=await ml(this._url,ho(this._options.requestInit??{},{headers:{Range:"bytes=0-"},signal:e.signal}),this._getRetryDelay);if(!t.ok)throw new Error(`Error fetching ${this._url}: ${t.status} ${t.statusText}`);let r,s;if(t.status===206)s=this._getPartialLengthFromRangeResponse(t),r=this._orchestrator.createWorker(0,Math.min(s,Kf));else{let n=t.headers.get("Content-Length");if(n)s=Number(n),r=this._orchestrator.createWorker(0,s),this._orchestrator.options.maxCacheSize=1/0,console.warn("HTTP server did not respond with 206 Partial Content, meaning the entire remote resource now has to be downloaded. For efficient media file streaming across a network, please make sure your server supports range requests.");else throw new Error(`HTTP response (status ${t.status}) must surface Content-Length header.`)}return this._orchestrator.fileSize=s,this._existingResponses.set(r,{response:t,abortController:e}),this._orchestrator.runWorker(r),s}_read(e,t){return this._orchestrator.read(e,t)}async _runWorker(e){for(;!e.aborted;){let t=this._existingResponses.get(e);this._existingResponses.delete(e);let r=t?.abortController,s=t?.response;if(r||(r=new AbortController,s=await ml(this._url,ho(this._options.requestInit??{},{headers:{Range:`bytes=${e.currentPos}-`},signal:r.signal}),this._getRetryDelay)),k(s),!s.ok)throw new Error(`Error fetching ${this._url}: ${s.status} ${s.statusText}`);if(e.currentPos>0&&s.status!==206)throw new Error("HTTP server did not respond with 206 Partial Content to a range request. To enable efficient media file streaming across a network, please make sure your server supports range requests.");let n=this._getPartialLengthFromRangeResponse(s),o=e.targetPos-e.currentPos;if(n<o)throw new Error(`HTTP response unexpectedly too short: Needed at least ${o} bytes, got only ${n}.`);if(!s.body)throw new Error("Missing HTTP response body.");let a=s.body.getReader();for(;;){let c;try{c=await a.read()}catch(h){let d=this._getRetryDelay(1);if(d!==null){console.error("Error while reading response stream. Attempting to resume.",h),await new Promise(f=>setTimeout(f,1e3*d));break}else throw h}let{done:l,value:u}=c;if(l){if(this._orchestrator.forgetWorker(e),e.currentPos<e.targetPos)throw new Error("Response stream reader stopped unexpectedly before all requested data was read.");e.running=!1;return}if(this.onread?.(e.currentPos,e.currentPos+u.length),this._orchestrator.supplyWorkerData(e,u),e.currentPos>=e.targetPos||e.aborted){r.abort(),e.running=!1;return}}}e.running=!1}_getPartialLengthFromRangeResponse(e){let t=e.headers.get("Content-Range");if(t){let r=/\/(\d+)/.exec(t);if(r)return Number(r[1]);throw new Error(`Invalid Content-Range header: ${t}`)}else{let r=e.headers.get("Content-Length");if(r)return Number(r);throw new Error("Partial HTTP response (status 206) must surface either Content-Range or Content-Length header.")}}get _supportsRandomAccess(){return!0}};var Zf={none:(i,e)=>({start:i,end:e}),fileSystem:(i,e)=>(i=Math.floor((i-65536)/65536)*65536,e=Math.ceil((e+65536)/65536)*65536,{start:i,end:e}),network:(i,e,t)=>{i=Math.max(0,Math.floor((i-65536)/65536)*65536);for(let s of t){let o=Math.max((s.startPos+s.targetPos)/2,s.targetPos-8388608);if(mo(i,e,o,s.targetPos)){let a=s.targetPos-s.startPos,c=Math.ceil((a+1)/8388608)*8388608,l=2**Math.ceil(Math.log2(a+1)),u=Math.min(l,c);e=Math.max(e,s.startPos+u)}}return e=Math.max(e,i+Kf),{start:i,end:e}}},Do=class{constructor(e){this.options=e,this.fileSize=null,this.nextAge=0,this.workers=[],this.cache=[],this.currentCacheSize=0}read(e,t){k(this.fileSize!==null);let r=this.options.prefetchProfile(e,t,this.workers),s=Math.max(r.start,0),n=Math.min(r.end,this.fileSize);k(s<=e&&t<=n);let o=null,a=Q(this.cache,e,x=>x.start),c=a!==-1?this.cache[a]:null;c&&c.start<=e&&t<=c.end&&(c.age=this.nextAge++,o={bytes:c.bytes,view:c.view,offset:c.start});let l=Q(this.cache,s,x=>x.start),u=o?null:new Uint8Array(t-e),h=0,d=s,f=[];if(l!==-1){for(let x=l;x<this.cache.length;x++){let w=this.cache[x];if(w.start>=n)break;if(w.end<=s)continue;let _=Math.max(s,w.start),S=Math.min(n,w.end);if(k(_<=S),d<_&&f.push({start:d,end:_}),d=S,u){let T=Math.max(e,w.start),v=Math.min(t,w.end);if(T<v){let M=T-e;u.set(w.bytes.subarray(T-w.start,v-w.start),M),M===h&&(h=v-e)}}w.age=this.nextAge++}d<n&&f.push({start:d,end:n})}else f.push({start:s,end:n});if(u&&h>=u.length&&(o={bytes:u,view:oe(u),offset:e}),f.length===0)return k(o),o;let{promise:m,resolve:p,reject:g}=Fe(),y=[];for(let x of f){let w=Math.max(e,x.start),_=Math.min(t,x.end);w===x.start&&_===x.end?y.push(x):w<_&&y.push({start:w,end:_})}for(let x of f){let w=u&&{start:e,bytes:u,holes:y,resolve:p,reject:g},_=!1;for(let S of this.workers)if(mo(x.start-131072,x.start,S.currentPos,S.targetPos)){S.targetPos=Math.max(S.targetPos,x.end),_=!0,w&&!S.pendingSlices.includes(w)&&S.pendingSlices.push(w),S.running||this.runWorker(S);break}if(!_){let S=this.createWorker(x.start,x.end);w&&(S.pendingSlices=[w]),this.runWorker(S)}}return o||(k(u),o=m.then(x=>({bytes:x,view:oe(x),offset:e}))),o}createWorker(e,t){let r={startPos:e,currentPos:e,targetPos:t,running:!1,aborted:!1,pendingSlices:[],age:this.nextAge++};for(this.workers.push(r);this.workers.length>this.options.maxWorkerCount;){let s=0,n=this.workers[0];for(let o=1;o<this.workers.length;o++){let a=this.workers[o];a.age<n.age&&(s=o,n=a)}if(n.running&&n.pendingSlices.length>0)break;n.aborted=!0,this.workers.splice(s,1)}return r}runWorker(e){k(!e.running),k(e.currentPos<e.targetPos),e.running=!0,e.age=this.nextAge++,this.options.runWorker(e).catch(t=>{if(e.running=!1,e.pendingSlices.length>0)e.pendingSlices.forEach(r=>r.reject(t)),e.pendingSlices.length=0;else throw t})}supplyWorkerData(e,t){let r=e.currentPos,s=r+t.length;this.insertIntoCache({start:r,end:s,bytes:t,view:oe(t),age:this.nextAge++}),e.currentPos+=t.length,e.targetPos=Math.max(e.targetPos,e.currentPos);for(let n=0;n<e.pendingSlices.length;n++){let o=e.pendingSlices[n],a=Math.max(r,o.start),c=Math.min(s,o.start+o.bytes.length);a<c&&o.bytes.set(t.subarray(a-r,c-r),a-o.start);for(let l=0;l<o.holes.length;l++){let u=o.holes[l];r<=u.start&&s>u.start&&(u.start=s),u.end<=u.start&&(o.holes.splice(l,1),l--)}o.holes.length===0&&(o.resolve(o.bytes),e.pendingSlices.splice(n,1),n--)}for(let n=0;n<this.workers.length;n++){let o=this.workers[n];e===o||o.running||mo(r,s,o.currentPos,o.targetPos)&&(this.workers.splice(n,1),n--)}}forgetWorker(e){let t=this.workers.indexOf(e);k(t!==-1),this.workers.splice(t,1)}insertIntoCache(e){if(this.options.maxCacheSize===0)return;let t=Q(this.cache,e.start,r=>r.start)+1;if(t>0){let r=this.cache[t-1];if(r.end>=e.end)return;if(r.end>e.start){let s=new Uint8Array(e.end-r.start);s.set(r.bytes,0),s.set(e.bytes,e.start-r.start),this.currentCacheSize+=e.end-r.end,r.bytes=s,r.view=oe(s),r.end=e.end,t--,e=r}else this.cache.splice(t,0,e),this.currentCacheSize+=e.bytes.length}else this.cache.splice(t,0,e),this.currentCacheSize+=e.bytes.length;for(let r=t+1;r<this.cache.length;r++){let s=this.cache[r];if(e.end<=s.start)break;if(e.end>=s.end){this.cache.splice(r,1),this.currentCacheSize-=s.bytes.length,r--;continue}let n=new Uint8Array(s.end-e.start);n.set(e.bytes,0),n.set(s.bytes,s.start-e.start),this.currentCacheSize-=e.end-s.start,e.bytes=n,e.view=oe(n),e.end=s.end,this.cache.splice(r,1);break}for(;this.currentCacheSize>this.options.maxCacheSize;){let r=0,s=this.cache[0];for(let n=1;n<this.cache.length;n++){let o=this.cache[n];o.age<s.age&&(r=n,s=o)}if(this.currentCacheSize-s.bytes.length<=this.options.maxCacheSize)break;this.cache.splice(r,1),this.currentCacheSize-=s.bytes.length}}};var N_=new Set(["@day","@mak","@mod","@swr","@xyz","CAME","CNCV","CNFV","CNMN","FIRM","FOV\0","GoPr","LENS","PXMN","SIGM","SNum","TAGS","albm","albr","angl","auth","ccid","cdis","clfn","clid","clsf","cmid","cmnm","coll","cprt","cver","cvru","date","dscp","fsid","gnre","hinv","icnu","info","infu","kgtt","loci","lrcu","mcvr","name","perf","pmcc","reel","rtng","scen","shot","slno","thmb","titl","tnam","urat","uuid","vndr","yrrc","\xA9ART","\xA9TIM","\xA9TSC","\xA9TSZ","\xA9alb","\xA9arg","\xA9ark","\xA9cmt","\xA9cok","\xA9com","\xA9cpy","\xA9day","\xA9dir","\xA9ed1","\xA9ed2","\xA9ed3","\xA9ed4","\xA9ed5","\xA9ed6","\xA9ed7","\xA9ed8","\xA9ed9","\xA9enc","\xA9fmt","\xA9fpt","\xA9frl","\xA9fyw","\xA9gen","\xA9gpt","\xA9grl","\xA9grp","\xA9gyw","\xA9inf","\xA9isr","\xA9lab","\xA9lal","\xA9lyr","\xA9mak","\xA9mal","\xA9mdl","\xA9mod","\xA9nam","\xA9pdk","\xA9phg","\xA9prd","\xA9prf","\xA9prk","\xA9prl","\xA9req","\xA9snk","\xA9snm","\xA9src","\xA9swf","\xA9swk","\xA9swr","\xA9too","\xA9trk","\xA9wrt","\xA9xsp","\xA9xyz","\xA9ysp","\xA9zsp"]),Ro=class extends We{constructor(e){super(e),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.fragments=[],this.currentFragment=null,this.fragmentLookupMutex=new Je,this.reader=e._reader}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(r=>r.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.tracks.map(e=>e.inputTrack)}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.inputTrack.getCodecParameterString()));return Af({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some(t=>t.info?.type==="video"),hasAudio:this.tracks.some(t=>t.info?.type==="audio"),codecStrings:e.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let t=this.reader.requestSliceRange(e,Lt,Dr);if(t instanceof Promise&&(t=await t),!t)break;let r=e,s=bt(t);if(!s)break;if(s.name==="ftyp"){let n=de(t,4);this.isQuickTime=n==="qt "}else if(s.name==="moov"){let n=this.reader.requestSlice(t.filePos,s.contentSize);if(n instanceof Promise&&(n=await n),!n)break;this.moovSlice=n,this.readContiguousBoxes(this.moovSlice);for(let o of this.tracks){let a=o.editListPreviousSegmentDurations/this.movieTimescale;o.editListOffset-=Math.round(a*o.timescale)}break}e=r+s.totalSize}if(this.isFragmented&&this.reader.fileSize!==null){let t=this.reader.requestSlice(this.reader.fileSize-4,4);t instanceof Promise&&(t=await t),k(t);let r=B(t),s=this.reader.fileSize-r;if(s>=0&&s<=this.reader.fileSize-Dr){let n=this.reader.requestSliceRange(s,Lt,Dr);if(n instanceof Promise&&(n=await n),n){let o=bt(n);if(o&&o.name==="mfra"){let a=this.reader.requestSlice(n.filePos,o.contentSize);a instanceof Promise&&(a=await a),a&&this.readContiguousBoxes(a)}}}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};e.sampleTable=t,k(this.moovSlice);let r=this.moovSlice.slice(e.sampleTableByteOffset);if(this.currentTrack=e,this.traverseBox(r),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&ws.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){k(e.info?.type==="audio");let n=bf(e.info.codec),o=[],a=[];for(let c=0;c<t.sampleToChunk.length;c++){let l=t.sampleToChunk[c],u=t.sampleToChunk[c+1],h=(u?u.startChunkIndex:t.chunkOffsets.length)-l.startChunkIndex;for(let d=0;d<h;d++){let f=l.startSampleIndex+d*l.samplesPerChunk,m=f+l.samplesPerChunk,p=Q(t.sampleTimingEntries,f,M=>M.startIndex),g=t.sampleTimingEntries[p],y=Q(t.sampleTimingEntries,m,M=>M.startIndex),x=t.sampleTimingEntries[y],w=g.startDecodeTimestamp+(f-g.startIndex)*g.delta,S=x.startDecodeTimestamp+(m-x.startIndex)*x.delta-w,T=ve(o);T&&T.delta===S?T.count++:o.push({startIndex:l.startChunkIndex+d,startDecodeTimestamp:w,count:1,delta:S});let v=l.samplesPerChunk*n.sampleSize*e.info.numberOfChannels;a.push(v)}l.startSampleIndex=l.startChunkIndex,l.samplesPerChunk=1}t.sampleTimingEntries=o,t.sampleSizes=a}if(t.sampleCompositionTimeOffsets.length>0){t.presentationTimestamps=[];for(let n of t.sampleTimingEntries)for(let o=0;o<n.count;o++)t.presentationTimestamps.push({presentationTimestamp:n.startDecodeTimestamp+o*n.delta,sampleIndex:n.startIndex+o});for(let n of t.sampleCompositionTimeOffsets)for(let o=0;o<n.count;o++){let a=n.startIndex+o,c=t.presentationTimestamps[a];c&&(c.presentationTimestamp+=n.offset)}t.presentationTimestamps.sort((n,o)=>n.presentationTimestamp-o.presentationTimestamp),t.presentationTimestampIndexMap=Array(t.presentationTimestamps.length).fill(-1);for(let n=0;n<t.presentationTimestamps.length;n++)t.presentationTimestampIndexMap[t.presentationTimestamps[n].sampleIndex]=n}return t}async readFragment(e){let t=this.reader.requestSliceRange(e,Lt,Dr);t instanceof Promise&&(t=await t),k(t);let r=bt(t);k(r?.name==="moof");let s=this.reader.requestSlice(e,r.totalSize);s instanceof Promise&&(s=await s),k(s),this.traverseBox(s);let n=ae(this.fragments,e,a=>a.moofOffset);k(n!==-1);let o=this.fragments[n];k(o.moofOffset===e);for(let[a,c]of o.trackData){if(c.startTimestampIsFinal)continue;let l=this.tracks.find(p=>p.id===a),u=0,h=null,d=null,f=Q(l.fragments,e-1,p=>p.moofOffset);f!==-1&&(h=l.fragments[f],d=h,u=h.moofOffset+h.moofSize);let m=u===0;for(;u<=e-Lt;){if(h?.nextFragment)h=h.nextFragment,u=h.moofOffset+h.moofSize;else{let p=this.reader.requestSliceRange(u,Lt,Dr);if(p instanceof Promise&&(p=await p),!p)break;let g=u,y=bt(p);if(!y)break;if(y.name==="moof"){let x=ae(this.fragments,g,_=>_.moofOffset),w;x===-1?w=await this.readFragment(g):w=this.fragments[x],h&&(h.nextFragment=w),h=w,m&&(w.isKnownToBeFirstFragment=!0,m=!1)}u=g+y.totalSize}h&&h.trackData.has(a)&&(d=h)}if(d){let p=d.trackData.get(a);k(p.startTimestampIsFinal),Jf(c,p.endTimestamp)}c.startTimestampIsFinal=!0}return o}readContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-Lt&&this.traverseBox(e););}*iterateContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-Lt;){let r=e.filePos,s=bt(e);if(!s)break;yield{boxInfo:s,slice:e},e.filePos=r+s.totalSize}}traverseBox(e){let t=e.filePos,r=bt(e);if(!r)return!1;let s=e.filePos,n=t+r.totalSize;switch(r.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(e.slice(s,r.contentSize));break;case"mvhd":{let o=z(e);e.skip(3),o===1?(e.skip(16),this.movieTimescale=B(e),this.movieDurationInTimescale=Ye(e)):(e.skip(8),this.movieTimescale=B(e),this.movieDurationInTimescale=B(e))}break;case"trak":{let o={id:-1,demuxer:this,inputTrack:null,info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:Pe,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:null,currentFragmentState:null,fragments:[],fragmentsWithKeyFrame:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=o,this.readContiguousBoxes(e.slice(s,r.contentSize)),o.id!==-1&&o.timescale!==-1&&o.info!==null){if(o.info.type==="video"&&o.info.width!==-1){let a=o;o.inputTrack=new wt(new Ml(a)),this.tracks.push(o)}else if(o.info.type==="audio"&&o.info.numberOfChannels!==-1){let a=o;o.inputTrack=new Ae(new Bl(a)),this.tracks.push(o)}}this.currentTrack=null}break;case"tkhd":{let o=this.currentTrack;if(!o)break;let a=z(e);if(!((hi(e)&1)!==0))break;if(a===0)e.skip(8),o.id=B(e),e.skip(4),o.durationInMovieTimescale=B(e);else if(a===1)e.skip(16),o.id=B(e),e.skip(4),o.durationInMovieTimescale=Ye(e);else throw new Error(`Incorrect track header version ${a}.`);e.skip(16);let u=[or(e),or(e),To(e),or(e),or(e),To(e),or(e),or(e),To(e)],h=so(ff(H_(u),90));k(h===0||h===90||h===180||h===270),o.rotation=h}break;case"elst":{let o=this.currentTrack;if(!o)break;let a=z(e);e.skip(3);let c=!1,l=0,u=B(e);for(let h=0;h<u;h++){let d=a===1?Ye(e):B(e),f=a===1?If(e):Nt(e),m=or(e);if(d!==0){if(c){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(f===-1){l+=d;continue}if(m!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}o.editListPreviousSegmentDurations=l,o.editListOffset=f,c=!0}}}break;case"mdhd":{let o=this.currentTrack;if(!o)break;let a=z(e);e.skip(3),a===0?(e.skip(8),o.timescale=B(e),o.durationInMediaTimescale=B(e)):a===1&&(e.skip(16),o.timescale=B(e),o.durationInMediaTimescale=Ye(e));let c=Ce(e);if(c>0){o.languageCode="";for(let l=0;l<3;l++)o.languageCode=String.fromCharCode(96+(c&31))+o.languageCode,c>>=5;uo(o.languageCode)||(o.languageCode=Pe)}}break;case"hdlr":{let o=this.currentTrack;if(!o)break;e.skip(8);let a=de(e,4);a==="vide"?o.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:a==="soun"&&(o.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let o=this.currentTrack;if(!o)break;o.sampleTableByteOffset=t,this.readContiguousBoxes(e.slice(s,r.contentSize))}break;case"stsd":{let o=this.currentTrack;if(!o||o.info===null||o.sampleTable)break;let a=z(e);e.skip(3);let c=B(e);for(let l=0;l<c;l++){let u=e.filePos,h=bt(e);if(!h)break;o.internalCodecId=h.name;let d=h.name.toLowerCase();if(o.info.type==="video")d==="avc1"?o.info.codec="avc":d==="hvc1"||d==="hev1"?o.info.codec="hevc":d==="vp08"?o.info.codec="vp8":d==="vp09"?o.info.codec="vp9":d==="av01"?o.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${h.name}').`),e.skip(24),o.info.width=Ce(e),o.info.height=Ce(e),e.skip(50),this.readContiguousBoxes(e.slice(e.filePos,u+h.totalSize-e.filePos));else{d==="mp4a"||(d==="opus"?o.info.codec="opus":d==="flac"?o.info.codec="flac":d==="twos"||d==="sowt"||d==="raw "||d==="in24"||d==="in32"||d==="fl32"||d==="fl64"||d==="lpcm"||d==="ipcm"||d==="fpcm"||(d==="ulaw"?o.info.codec="ulaw":d==="alaw"?o.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${h.name}').`))),e.skip(8);let f=Ce(e);e.skip(6);let m=Ce(e),p=Ce(e);e.skip(4);let g=B(e)/65536;if(a===0&&f>0){if(f===1)e.skip(4),p=8*B(e),e.skip(8);else if(f===2){e.skip(4),g=So(e),m=B(e),e.skip(4),p=B(e);let y=B(e);if(e.skip(8),d==="lpcm"){let x=p+7>>3,w=!!(y&1),_=!!(y&2),S=y&4?-1:0;p>0&&p<=64&&(w?p===32&&(o.info.codec=_?"pcm-f32be":"pcm-f32"):S&1<<x-1?x===1?o.info.codec="pcm-s8":x===2?o.info.codec=_?"pcm-s16be":"pcm-s16":x===3?o.info.codec=_?"pcm-s24be":"pcm-s24":x===4&&(o.info.codec=_?"pcm-s32be":"pcm-s32"):x===1&&(o.info.codec="pcm-u8")),o.info.codec===null&&console.warn("Unsupported PCM format.")}}}o.info.numberOfChannels=m,o.info.sampleRate=g,d==="twos"?p===8?o.info.codec="pcm-s8":p===16?o.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${p} for codec 'twos'.`),o.info.codec=null):d==="sowt"?p===8?o.info.codec="pcm-s8":p===16?o.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${p} for codec 'sowt'.`),o.info.codec=null):d==="raw "?o.info.codec="pcm-u8":d==="in24"?o.info.codec="pcm-s24be":d==="in32"?o.info.codec="pcm-s32be":d==="fl32"?o.info.codec="pcm-f32be":d==="fl64"?o.info.codec="pcm-f64be":d==="ipcm"?o.info.codec="pcm-s16be":d==="fpcm"&&(o.info.codec="pcm-f32be"),this.readContiguousBoxes(e.slice(e.filePos,u+h.totalSize-e.filePos))}}}break;case"avcC":{let o=this.currentTrack;if(!o)break;k(o.info),o.info.codecDescription=W(e,r.contentSize)}break;case"hvcC":{let o=this.currentTrack;if(!o)break;k(o.info),o.info.codecDescription=W(e,r.contentSize)}break;case"vpcC":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="video"),e.skip(4);let a=z(e),c=z(e),l=z(e),u=l>>4,h=l>>1&7,d=l&1,f=z(e),m=z(e),p=z(e);o.info.vp9CodecInfo={profile:a,level:c,bitDepth:u,chromaSubsampling:h,videoFullRangeFlag:d,colourPrimaries:f,transferCharacteristics:m,matrixCoefficients:p}}break;case"av1C":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="video"),e.skip(1);let a=z(e),c=a>>5,l=a&31,u=z(e),h=u>>7,d=u>>6&1,f=u>>5&1,m=u>>4&1,p=u>>3&1,g=u>>2&1,y=u&3,x=c===2&&d?f?12:10:d?10:8;o.info.av1CodecInfo={profile:c,level:l,tier:h,bitDepth:x,monochrome:m,chromaSubsamplingX:p,chromaSubsamplingY:g,chromaSamplePosition:y}}break;case"colr":{let o=this.currentTrack;if(!o||(k(o.info?.type==="video"),de(e,4)!=="nclx"))break;let c=Ce(e),l=Ce(e),u=Ce(e),h=!!(z(e)&128);o.info.colorSpace={primaries:no[c],transfer:oo[l],matrix:ao[u],fullRange:h}}break;case"wave":this.readContiguousBoxes(e.slice(s,r.contentSize));break;case"esds":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="audio"),e.skip(4);let a=z(e);k(a===3),ko(e),e.skip(2);let c=z(e),l=(c&128)!==0,u=(c&64)!==0,h=(c&32)!==0;if(l&&e.skip(2),u){let g=z(e);e.skip(g)}h&&e.skip(2);let d=z(e);k(d===4);let f=ko(e),m=e.filePos,p=z(e);if(p===64||p===103?(o.info.codec="aac",o.info.aacCodecInfo={isMpeg2:p===103}):p===105||p===107?o.info.codec="mp3":p===221?o.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${p}) - discarding track.`),e.skip(12),f>e.filePos-m){let g=z(e);k(g===5);let y=ko(e);if(o.info.codecDescription=W(e,y),o.info.codec==="aac"){let x=gl(o.info.codecDescription);x.numberOfChannels!==null&&(o.info.numberOfChannels=x.numberOfChannels),x.sampleRate!==null&&(o.info.sampleRate=x.sampleRate)}}}break;case"enda":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="audio"),Ce(e)&255&&(o.info.codec==="pcm-s16be"?o.info.codec="pcm-s16":o.info.codec==="pcm-s24be"?o.info.codec="pcm-s24":o.info.codec==="pcm-s32be"?o.info.codec="pcm-s32":o.info.codec==="pcm-f32be"?o.info.codec="pcm-f32":o.info.codec==="pcm-f64be"&&(o.info.codec="pcm-f64"))}break;case"pcmC":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="audio"),e.skip(4);let c=!!(z(e)&1),l=z(e);o.info.codec==="pcm-s16be"?c?l===16?o.info.codec="pcm-s16":l===24?o.info.codec="pcm-s24":l===32?o.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${l}.`),o.info.codec=null):l===16?o.info.codec="pcm-s16be":l===24?o.info.codec="pcm-s24be":l===32?o.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${l}.`),o.info.codec=null):o.info.codec==="pcm-f32be"&&(c?l===32?o.info.codec="pcm-f32":l===64?o.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${l}.`),o.info.codec=null):l===32?o.info.codec="pcm-f32be":l===64?o.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${l}.`),o.info.codec=null));break}case"dOps":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="audio"),e.skip(1);let a=z(e),c=Ce(e),l=B(e),u=_s(e),h=z(e),d;h!==0?d=W(e,2+a):d=new Uint8Array(0);let f=new Uint8Array(19+d.byteLength),m=new DataView(f.buffer);m.setUint32(0,1332770163,!1),m.setUint32(4,1214603620,!1),m.setUint8(8,1),m.setUint8(9,a),m.setUint16(10,c,!0),m.setUint32(12,l,!0),m.setInt16(16,u,!0),m.setUint8(18,h),f.set(d,19),o.info.codecDescription=f,o.info.numberOfChannels=a,o.info.sampleRate=l}break;case"dfLa":{let o=this.currentTrack;if(!o)break;k(o.info?.type==="audio"),e.skip(4);let a=127,c=128,l=e.filePos;for(;e.filePos<n;){let m=z(e),p=hi(e);if((m&a)===0){e.skip(10);let y=B(e),x=y>>>12,w=(y>>9&7)+1;o.info.sampleRate=x,o.info.numberOfChannels=w,e.skip(20)}else e.skip(p);if(m&c)break}let u=e.filePos;e.filePos=l;let h=W(e,u-l),d=new Uint8Array(4+h.byteLength);new DataView(d.buffer).setUint32(0,1716281667,!1),d.set(h,4),o.info.codecDescription=d}break;case"stts":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e),c=0,l=0;for(let u=0;u<a;u++){let h=B(e),d=B(e);o.sampleTable.sampleTimingEntries.push({startIndex:c,startDecodeTimestamp:l,count:h,delta:d}),c+=h,l+=h*d}}break;case"ctts":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e),c=0;for(let l=0;l<a;l++){let u=B(e),h=Nt(e);o.sampleTable.sampleCompositionTimeOffsets.push({startIndex:c,count:u,offset:h}),c+=u}}break;case"stsz":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e),c=B(e);if(a===0)for(let l=0;l<c;l++){let u=B(e);o.sampleTable.sampleSizes.push(u)}else o.sampleTable.sampleSizes.push(a)}break;case"stz2":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4),e.skip(3);let a=z(e),c=B(e),l=W(e,Math.ceil(c*a/8)),u=new fe(l);for(let h=0;h<c;h++){let d=u.readBits(a);o.sampleTable.sampleSizes.push(d)}}break;case"stss":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4),o.sampleTable.keySampleIndices=[];let a=B(e);for(let c=0;c<a;c++){let l=B(e)-1;o.sampleTable.keySampleIndices.push(l)}o.sampleTable.keySampleIndices[0]!==0&&o.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e);for(let l=0;l<a;l++){let u=B(e)-1,h=B(e),d=B(e);o.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:u,samplesPerChunk:h,sampleDescriptionIndex:d})}let c=0;for(let l=0;l<o.sampleTable.sampleToChunk.length;l++)if(o.sampleTable.sampleToChunk[l].startSampleIndex=c,l<o.sampleTable.sampleToChunk.length-1){let h=o.sampleTable.sampleToChunk[l+1].startChunkIndex-o.sampleTable.sampleToChunk[l].startChunkIndex;c+=h*o.sampleTable.sampleToChunk[l].samplesPerChunk}}break;case"stco":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e);for(let c=0;c<a;c++){let l=B(e);o.sampleTable.chunkOffsets.push(l)}}break;case"co64":{let o=this.currentTrack;if(!o||!o.sampleTable)break;e.skip(4);let a=B(e);for(let c=0;c<a;c++){let l=Ye(e);o.sampleTable.chunkOffsets.push(l)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(e.slice(s,r.contentSize));break;case"mehd":{let o=z(e);e.skip(3);let a=o===1?Ye(e):B(e);this.movieDurationInTimescale=a}break;case"trex":{e.skip(4);let o=B(e),a=B(e),c=B(e),l=B(e),u=B(e);this.fragmentTrackDefaults.push({trackId:o,defaultSampleDescriptionIndex:a,defaultSampleDuration:c,defaultSampleSize:l,defaultSampleFlags:u})}break;case"tfra":{let o=z(e);e.skip(3);let a=B(e),c=this.tracks.find(x=>x.id===a);if(!c)break;c.fragmentLookupTable=[];let l=B(e),u=(l&48)>>4,h=(l&12)>>2,d=l&3,f=[z,Ce,hi,B],m=f[u],p=f[h],g=f[d],y=B(e);for(let x=0;x<y;x++){let w=o===1?Ye(e):B(e),_=o===1?Ye(e):B(e);m(e),p(e),g(e),c.fragmentLookupTable.push({timestamp:w,moofOffset:_})}}break;case"moof":{this.currentFragment={moofOffset:t,moofSize:r.totalSize,implicitBaseDataOffset:t,trackData:new Map,dataStart:1/0,dataEnd:0,nextFragment:null,isKnownToBeFirstFragment:!1},this.readContiguousBoxes(e.slice(s,r.contentSize)),ot(this.fragments,this.currentFragment,o=>o.moofOffset);for(let[,o]of this.currentFragment.trackData){let a=o.samples[0],c=ve(o.samples);this.currentFragment.dataStart=Math.min(this.currentFragment.dataStart,a.byteOffset),this.currentFragment.dataEnd=Math.max(this.currentFragment.dataEnd,c.byteOffset+c.byteSize)}this.currentFragment=null}break;case"traf":if(k(this.currentFragment),this.readContiguousBoxes(e.slice(s,r.contentSize)),this.currentTrack){let o=this.currentFragment.trackData.get(this.currentTrack.id);if(o){ot(this.currentTrack.fragments,this.currentFragment,l=>l.moofOffset),o.firstKeyFrameTimestamp!==null&&ot(this.currentTrack.fragmentsWithKeyFrame,this.currentFragment,l=>l.moofOffset);let{currentFragmentState:c}=this.currentTrack;k(c),c.startTimestamp!==null&&(Jf(o,c.startTimestamp),o.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{k(this.currentFragment),e.skip(1);let o=hi(e),a=!!(o&1),c=!!(o&2),l=!!(o&8),u=!!(o&16),h=!!(o&32),d=!!(o&65536),f=!!(o&131072),m=B(e),p=this.tracks.find(y=>y.id===m);if(!p)break;let g=this.fragmentTrackDefaults.find(y=>y.trackId===m);this.currentTrack=p,p.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:g?.defaultSampleDescriptionIndex??null,defaultSampleDuration:g?.defaultSampleDuration??null,defaultSampleSize:g?.defaultSampleSize??null,defaultSampleFlags:g?.defaultSampleFlags??null,startTimestamp:null},a?p.currentFragmentState.baseDataOffset=Ye(e):f&&(p.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),c&&(p.currentFragmentState.sampleDescriptionIndex=B(e)),l&&(p.currentFragmentState.defaultSampleDuration=B(e)),u&&(p.currentFragmentState.defaultSampleSize=B(e)),h&&(p.currentFragmentState.defaultSampleFlags=B(e)),d&&(p.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let o=this.currentTrack;if(!o)break;k(o.currentFragmentState);let a=z(e);e.skip(3);let c=a===0?B(e):Ye(e);o.currentFragmentState.startTimestamp=c}break;case"trun":{let o=this.currentTrack;if(!o)break;if(k(this.currentFragment),k(o.currentFragmentState),this.currentFragment.trackData.has(o.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let a=z(e),c=hi(e),l=!!(c&1),u=!!(c&4),h=!!(c&256),d=!!(c&512),f=!!(c&1024),m=!!(c&2048),p=B(e),g=o.currentFragmentState.baseDataOffset;l&&(g+=Nt(e));let y=null;u&&(y=B(e));let x=g;if(p===0){this.currentFragment.implicitBaseDataOffset=x;break}let w=0,_={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(o.id,_);for(let v=0;v<p;v++){let M;h?M=B(e):(k(o.currentFragmentState.defaultSampleDuration!==null),M=o.currentFragmentState.defaultSampleDuration);let P;d?P=B(e):(k(o.currentFragmentState.defaultSampleSize!==null),P=o.currentFragmentState.defaultSampleSize);let C;f?C=B(e):(k(o.currentFragmentState.defaultSampleFlags!==null),C=o.currentFragmentState.defaultSampleFlags),v===0&&y!==null&&(C=y);let E=0;m&&(a===0?E=B(e):E=Nt(e));let D=!(C&65536);_.samples.push({presentationTimestamp:w+E,duration:M,byteOffset:x,byteSize:P,isKeyFrame:D}),x+=P,w+=M}_.presentationTimestamps=_.samples.map((v,M)=>({presentationTimestamp:v.presentationTimestamp,sampleIndex:M})).sort((v,M)=>v.presentationTimestamp-M.presentationTimestamp);for(let v=0;v<_.presentationTimestamps.length;v++){let M=_.presentationTimestamps[v],P=_.samples[M.sampleIndex];if(_.firstKeyFrameTimestamp===null&&P.isKeyFrame&&(_.firstKeyFrameTimestamp=P.presentationTimestamp),v<_.presentationTimestamps.length-1){let C=_.presentationTimestamps[v+1];P.duration=C.presentationTimestamp-M.presentationTimestamp}}let S=_.samples[_.presentationTimestamps[0].sampleIndex],T=_.samples[ve(_.presentationTimestamps).sampleIndex];_.startTimestamp=S.presentationTimestamp,_.endTimestamp=T.presentationTimestamp+T.duration,this.currentFragment.implicitBaseDataOffset=x}break;case"udta":{let o=this.iterateContiguousBoxes(e.slice(s,r.contentSize));for(let{boxInfo:a,slice:c}of o){if(a.name!=="meta"&&!this.currentTrack){let l=c.filePos;this.metadataTags.raw??={},N_.has(a.name)?this.metadataTags.raw[a.name]??=at(c):this.metadataTags.raw[a.name]??=W(c,a.contentSize),c.filePos=l}switch(a.name){case"meta":c.skip(-a.headerSize),this.traverseBox(c);break;case"\xA9nam":case"name":this.currentTrack?this.currentTrack.name=Be.decode(W(c,a.contentSize)):this.metadataTags.title??=at(c);break;case"\xA9des":this.currentTrack||(this.metadataTags.description??=at(c));break;case"\xA9ART":this.currentTrack||(this.metadataTags.artist??=at(c));break;case"\xA9alb":this.currentTrack||(this.metadataTags.album??=at(c));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=at(c));break;case"\xA9gen":this.currentTrack||(this.metadataTags.genre??=at(c));break;case"\xA9day":if(!this.currentTrack){let l=new Date(at(c));Number.isNaN(l.getTime())||(this.metadataTags.date??=l)}break;case"\xA9cmt":this.currentTrack||(this.metadataTags.comment??=at(c));break;case"\xA9lyr":this.currentTrack||(this.metadataTags.lyrics??=at(c));break}}}break;case"meta":{if(this.currentTrack)break;let a=B(e)!==0;this.currentMetadataKeys=new Map,a?this.readContiguousBoxes(e.slice(s,r.contentSize)):this.readContiguousBoxes(e.slice(s+4,r.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;e.skip(4);let o=B(e);for(let a=0;a<o;a++){let c=B(e);e.skip(4);let l=Be.decode(W(e,c-8));this.currentMetadataKeys.set(a+1,l)}}break;case"ilst":{if(!this.currentMetadataKeys)break;let o=this.iterateContiguousBoxes(e.slice(s,r.contentSize));for(let{boxInfo:a,slice:c}of o){let l=a.name,u=(l.charCodeAt(0)<<24)+(l.charCodeAt(1)<<16)+(l.charCodeAt(2)<<8)+l.charCodeAt(3);this.currentMetadataKeys.has(u)&&(l=this.currentMetadataKeys.get(u));let h=Ff(c);switch(this.metadataTags.raw??={},this.metadataTags.raw[l]??=h,l){case"\xA9nam":case"titl":case"com.apple.quicktime.title":case"title":typeof h=="string"&&(this.metadataTags.title??=h);break;case"\xA9des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":typeof h=="string"&&(this.metadataTags.description??=h);break;case"\xA9ART":case"com.apple.quicktime.artist":case"artist":typeof h=="string"&&(this.metadataTags.artist??=h);break;case"\xA9alb":case"albm":case"com.apple.quicktime.album":case"album":typeof h=="string"&&(this.metadataTags.album??=h);break;case"aART":case"album_artist":typeof h=="string"&&(this.metadataTags.albumArtist??=h);break;case"\xA9cmt":case"com.apple.quicktime.comment":case"comment":typeof h=="string"&&(this.metadataTags.comment??=h);break;case"\xA9gen":case"gnre":case"com.apple.quicktime.genre":case"genre":typeof h=="string"&&(this.metadataTags.genre??=h);break;case"\xA9lyr":case"lyrics":typeof h=="string"&&(this.metadataTags.lyrics??=h);break;case"\xA9day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if(typeof h=="string"){let d=new Date(h);Number.isNaN(d.getTime())||(this.metadataTags.date??=d)}break;case"covr":case"com.apple.quicktime.artwork":h instanceof nr?(this.metadataTags.images??=[],this.metadataTags.images.push({data:h.data,kind:"coverFront",mimeType:h.mimeType})):h instanceof Uint8Array&&(this.metadataTags.images??=[],this.metadataTags.images.push({data:h,kind:"coverFront",mimeType:"image/*"}));break;case"trkn":if(h instanceof Uint8Array){let d=oe(h),f=d.getUint16(2,!1),m=d.getUint16(4,!1);f>0&&(this.metadataTags.trackNumber??=f),m>0&&(this.metadataTags.tracksTotal??=m)}break;case"disc":case"disk":if(h instanceof Uint8Array){let d=oe(h),f=d.getUint16(2,!1),m=d.getUint16(4,!1);f>0&&(this.metadataTags.discNumber??=f),m>0&&(this.metadataTags.discsTotal??=m)}break}}}break}return e.filePos=n,!0}},Oo=class{constructor(e){this.internalTrack=e,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}async getFirstPacket(e){let t=await this.fetchPacketForSampleIndex(0,e);return t||!this.internalTrack.demuxer.isFragmented?t:this.performFragmentedLookup(()=>{let r=this.internalTrack.demuxer.fragments[0]??null;if(r?.isKnownToBeFirstFragment){let s=r;for(;s;){if(s.trackData.get(this.internalTrack.id))return{fragmentIndex:ae(this.internalTrack.fragments,s.moofOffset,o=>o.moofOffset),sampleIndex:0,correctSampleFound:!0};s=s.nextFragment}}return{fragmentIndex:-1,sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,e)}mapTimestampIntoTimescale(e){return Ir(e*this.internalTrack.timescale,14)+this.internalTrack.editListOffset}async getPacket(e,t){let r=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=Qf(s,r),o=await this.fetchPacketForSampleIndex(n,t);return!em(s)||!this.internalTrack.demuxer.isFragmented?o:this.performFragmentedLookup(()=>this.findSampleInFragmentsForTimestamp(r),r,r,t)}async getNextPacket(e,t){let r=this.packetToSampleIndex.get(e);if(r!==void 0)return this.fetchPacketForSampleIndex(r+1,t);let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=ae(this.internalTrack.fragments,s.fragment.moofOffset,a=>a.moofOffset);return k(o!==-1),this.performFragmentedLookup(()=>{if(s.sampleIndex+1<n.samples.length)return{fragmentIndex:o,sampleIndex:s.sampleIndex+1,correctSampleFound:!0};{let a=s.fragment;for(;a.nextFragment;)if(a=a.nextFragment,a.trackData.get(this.internalTrack.id)){let l=ae(this.internalTrack.fragments,a.moofOffset,u=>u.moofOffset);return k(l!==-1),{fragmentIndex:l,sampleIndex:0,correctSampleFound:!0}}return{fragmentIndex:o,sampleIndex:-1,correctSampleFound:!1}}},-1/0,1/0,t)}async getKeyPacket(e,t){let r=this.mapTimestampIntoTimescale(e),s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),n=Qf(s,r),o=n===-1?-1:V_(s,n),a=await this.fetchPacketForSampleIndex(o,t);return!em(s)||!this.internalTrack.demuxer.isFragmented?a:this.performFragmentedLookup(()=>this.findKeySampleInFragmentsForTimestamp(r),r,r,t)}async getNextKeyPacket(e,t){let r=this.packetToSampleIndex.get(e);if(r!==void 0){let a=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),c=W_(a,r);return this.fetchPacketForSampleIndex(c,t)}let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let n=s.fragment.trackData.get(this.internalTrack.id),o=ae(this.internalTrack.fragments,s.fragment.moofOffset,a=>a.moofOffset);return k(o!==-1),this.performFragmentedLookup(()=>{let a=n.samples.findIndex((c,l)=>c.isKeyFrame&&l>s.sampleIndex);if(a!==-1)return{fragmentIndex:o,sampleIndex:a,correctSampleFound:!0};{let c=s.fragment;for(;c.nextFragment;){c=c.nextFragment;let l=c.trackData.get(this.internalTrack.id);if(l&&l.firstKeyFrameTimestamp!==null){let u=ae(this.internalTrack.fragments,c.moofOffset,d=>d.moofOffset);k(u!==-1);let h=l.samples.findIndex(d=>d.isKeyFrame);return k(h!==-1),{fragmentIndex:u,sampleIndex:h,correctSampleFound:!0}}}return{fragmentIndex:o,sampleIndex:-1,correctSampleFound:!1}}},-1/0,1/0,t)}async fetchPacketForSampleIndex(e,t){if(e===-1)return null;let r=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=L_(r,e);if(!s)return null;let n;if(t.metadataOnly)n=Ee;else{let l=this.internalTrack.demuxer.reader.requestSlice(s.sampleOffset,s.sampleSize);l instanceof Promise&&(l=await l),k(l),n=W(l,s.sampleSize)}let o=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,a=s.duration/this.internalTrack.timescale,c=new ce(n,s.isKeyFrame?"key":"delta",o,a,e,s.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,t,r){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).samples[t];k(n);let o;if(r.metadataOnly)o=Ee;else{let u=this.internalTrack.demuxer.reader.requestSlice(n.byteOffset,n.byteSize);u instanceof Promise&&(u=await u),k(u),o=W(u,n.byteSize)}let a=(n.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=n.duration/this.internalTrack.timescale,l=new ce(o,n.isKeyFrame?"key":"delta",a,c,e.moofOffset+t,n.byteSize);return this.packetToFragmentLocation.set(l,{fragment:e,sampleIndex:t}),l}findSampleInFragmentsForTimestamp(e){let t=Q(this.internalTrack.fragments,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),r=-1,s=!1;if(t!==-1){let o=this.internalTrack.fragments[t].trackData.get(this.internalTrack.id),a=Q(o.presentationTimestamps,e,c=>c.presentationTimestamp);k(a!==-1),r=o.presentationTimestamps[a].sampleIndex,s=e<o.endTimestamp}return{fragmentIndex:t,sampleIndex:r,correctSampleFound:s}}findKeySampleInFragmentsForTimestamp(e){let t=Q(this.internalTrack.fragmentsWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).startTimestamp),r=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.fragmentsWithKeyFrame[t];r=ae(this.internalTrack.fragments,o.moofOffset,u=>u.moofOffset),k(r!==-1);let a=o.trackData.get(this.internalTrack.id),c=co(a.presentationTimestamps,u=>a.samples[u.sampleIndex].isKeyFrame&&u.presentationTimestamp<=e);k(c!==-1),s=a.presentationTimestamps[c].sampleIndex,n=e<a.endTimestamp}return{fragmentIndex:r,sampleIndex:s,correctSampleFound:n}}async performFragmentedLookup(e,t,r,s){let n=this.internalTrack.demuxer,o=await n.fragmentLookupMutex.acquire();try{let{fragmentIndex:a,sampleIndex:c,correctSampleFound:l}=e();if(l){let x=this.internalTrack.fragments[a];return this.fetchPacketInFragment(x,c,s)}let u=null,h=a,d=c,f=this.internalTrack.fragmentLookupTable?Q(this.internalTrack.fragmentLookupTable,t,x=>x.timestamp):-1,m=f!==-1?this.internalTrack.fragmentLookupTable[f]:null,p,g=!1;if(a===-1)p=m?.moofOffset??0,g=p===0;else{let x=this.internalTrack.fragments[a];!m||x.moofOffset>=m.moofOffset?(p=x.moofOffset+x.moofSize,u=x):p=m.moofOffset}for(;;){if(u){let S=u.trackData.get(this.internalTrack.id);if(S&&S.startTimestamp>r)break;if(u.nextFragment){p=u.nextFragment.moofOffset+u.nextFragment.moofSize,u=u.nextFragment;continue}}let x=n.reader.requestSliceRange(p,Lt,Dr);if(x instanceof Promise&&(x=await x),!x)break;let w=p,_=bt(x);if(!_)break;if(_.name==="moof"){let S=ae(n.fragments,w,C=>C.moofOffset),T;S===-1?T=await n.readFragment(w):T=n.fragments[S],u&&(u.nextFragment=T),u=T,g&&(T.isKnownToBeFirstFragment=!0,g=!1);let{fragmentIndex:v,sampleIndex:M,correctSampleFound:P}=e();if(P){let C=this.internalTrack.fragments[v];return this.fetchPacketInFragment(C,M,s)}v!==-1&&(h=v,d=M)}p=w+_.totalSize}let y=h!==-1?this.internalTrack.fragments[h]:null;if(m&&(!y||y.moofOffset<m.moofOffset)){let w=this.internalTrack.fragmentLookupTable[f-1]?.timestamp??-1/0;return this.performFragmentedLookup(e,w,r,s)}return y?this.fetchPacketInFragment(y,d,s):null}finally{o()}}},Ml=class extends Oo{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{if(this.internalTrack.info.codec==="vp9"&&!this.internalTrack.info.vp9CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=e&&bo(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&wo(e.data)}return{codec:po(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},Bl=class extends Oo{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:go(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},Qf=(i,e)=>{if(i.presentationTimestamps){let t=Q(i.presentationTimestamps,e,r=>r.presentationTimestamp);return t===-1?-1:i.presentationTimestamps[t].sampleIndex}else{let t=Q(i.sampleTimingEntries,e,s=>s.startDecodeTimestamp);if(t===-1)return-1;let r=i.sampleTimingEntries[t];return r.startIndex+Math.min(Math.floor((e-r.startDecodeTimestamp)/r.delta),r.count-1)}},L_=(i,e)=>{let t=Q(i.sampleTimingEntries,e,y=>y.startIndex),r=i.sampleTimingEntries[t];if(!r||r.startIndex+r.count<=e)return null;let n=r.startDecodeTimestamp+(e-r.startIndex)*r.delta,o=Q(i.sampleCompositionTimeOffsets,e,y=>y.startIndex),a=i.sampleCompositionTimeOffsets[o];a&&e-a.startIndex<a.count&&(n+=a.offset);let c=i.sampleSizes[Math.min(e,i.sampleSizes.length-1)],l=Q(i.sampleToChunk,e,y=>y.startSampleIndex),u=i.sampleToChunk[l];k(u);let h=u.startChunkIndex+Math.floor((e-u.startSampleIndex)/u.samplesPerChunk),d=i.chunkOffsets[h],f=u.startSampleIndex+(h-u.startChunkIndex)*u.samplesPerChunk,m=0,p=d;if(i.sampleSizes.length===1)p+=c*(e-f),m+=c*u.samplesPerChunk;else for(let y=f;y<f+u.samplesPerChunk;y++){let x=i.sampleSizes[y];y<e&&(p+=x),m+=x}let g=r.delta;if(i.presentationTimestamps){let y=i.presentationTimestampIndexMap[e];k(y!==void 0),y<i.presentationTimestamps.length-1&&(g=i.presentationTimestamps[y+1].presentationTimestamp-n)}return{presentationTimestamp:n,duration:g,sampleOffset:p,sampleSize:c,chunkOffset:d,chunkSize:m,isKeyFrame:i.keySampleIndices?ae(i.keySampleIndices,e,y=>y)!==-1:!0}},V_=(i,e)=>{if(!i.keySampleIndices)return e;let t=Q(i.keySampleIndices,e,r=>r);return i.keySampleIndices[t]??-1},W_=(i,e)=>{if(!i.keySampleIndices)return e+1;let t=Q(i.keySampleIndices,e,r=>r);return i.keySampleIndices[t+1]??-1},Jf=(i,e)=>{i.startTimestamp+=e,i.endTimestamp+=e;for(let t of i.samples)t.presentationTimestamp+=e;for(let t of i.presentationTimestamps)t.presentationTimestamp+=e},H_=i=>{let[e,,,t]=i,r=Math.hypot(e,t),s=e/r,n=t/r,o=-Math.atan2(n,s)*(180/Math.PI);return Number.isFinite(o)?o:0},em=i=>i.sampleSizes.length===0;var Ht;(function(i){i[i.None=0]="None",i[i.Xiph=1]="Xiph",i[i.FixedSize=2]="FixedSize",i[i.Ebml=3]="Ebml"})(Ht||(Ht={}));var Fl=[{id:I.SeekHead,flag:"seekHeadSeen"},{id:I.Info,flag:"infoSeen"},{id:I.Tracks,flag:"tracksSeen"},{id:I.Cues,flag:"cuesSeen"}],tm=10*2**20,Uo=class extends We{constructor(e){super(e),this.readMetadataPromise=null,this.segments=[],this.currentSegment=null,this.currentTrack=null,this.currentCluster=null,this.currentBlock=null,this.currentCueTime=null,this.currentTagTargetIsMovie=!0,this.currentSimpleTagName=null,this.currentAttachedFile=null,this.isWebM=!1,this.reader=e._reader}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(r=>r.computeDuration()));return Math.max(0,...t)}async getTracks(){return await this.readMetadata(),this.segments.flatMap(e=>e.tracks.map(t=>t.inputTrack))}async getMimeType(){await this.readMetadata();let e=await this.getTracks(),t=await Promise.all(e.map(r=>r.getCodecParameterString()));return Rf({isWebM:this.isWebM,hasVideo:this.segments.some(r=>r.tracks.some(s=>s.info?.type==="video")),hasAudio:this.segments.some(r=>r.tracks.some(s=>s.info?.type==="audio")),codecStrings:t.filter(Boolean)})}async getMetadataTags(){await this.readMetadata();for(let t of this.segments)t.metadataTagsCollected||(this.reader.fileSize!==null&&await this.loadSegmentMetadata(t),t.metadataTagsCollected=!0);let e={};for(let t of this.segments)e={...e,...t.metadataTags};return e}readMetadata(){return this.readMetadataPromise??=(async()=>{let e=0;for(;;){let t=this.reader.requestSliceRange(e,Ve,ct);if(t instanceof Promise&&(t=await t),!t)break;let r=lt(t);if(!r)break;let s=r.id,n=r.size,o=t.filePos;if(s===I.EBML){Vt(n);let a=this.reader.requestSlice(o,n);if(a instanceof Promise&&(a=await a),!a)break;this.readContiguousElements(a)}else if(s===I.Segment){if(await this.readSegment(o,n),n===null||this.reader.fileSize===null)break}else if(s===I.Cluster){if(this.reader.fileSize===null)break;n===null&&(n=(await Eo(this.reader,o,vo,this.reader.fileSize)).pos-o);let a=ve(this.segments);a&&(a.elementEndPos=o+n)}Vt(n),e=o+n}})()}async readSegment(e,t){this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,tagsSeen:!1,attachmentsSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:e,elementEndPos:t===null?null:e+t,clusterSeekStartPos:e,clusters:[],clusterLookupMutex:new Je,metadataTags:{},metadataTagsCollected:!1},this.segments.push(this.currentSegment);let r=e;for(;this.currentSegment.elementEndPos===null||r<this.currentSegment.elementEndPos;){let c=this.reader.requestSliceRange(r,Ve,ct);if(c instanceof Promise&&(c=await c),!c)break;let l=r,u=lt(c);if(!u||!di.includes(u.id)&&u.id!==I.Void){let p=await Tl(this.reader,l,di,Math.min(this.currentSegment.elementEndPos??1/0,l+tm));if(p){r=p;continue}else break}let{id:h,size:d}=u,f=c.filePos,m=Fl.findIndex(p=>p.id===h);if(m!==-1){let p=Fl[m].flag;this.currentSegment[p]=!0,Vt(d);let g=this.reader.requestSlice(f,d);g instanceof Promise&&(g=await g),g&&this.readContiguousElements(g)}else if(h===I.Tags||h===I.Attachments){h===I.Tags?this.currentSegment.tagsSeen=!0:this.currentSegment.attachmentsSeen=!0,Vt(d);let p=this.reader.requestSlice(f,d);p instanceof Promise&&(p=await p),p&&this.readContiguousElements(p)}else if(h===I.Cluster){this.currentSegment.clusterSeekStartPos=l;break}if(d===null)break;r=f+d}if(this.currentSegment.seekEntries.sort((c,l)=>c.segmentPosition-l.segmentPosition),this.reader.fileSize!==null)for(let c of this.currentSegment.seekEntries){let l=Fl.find(p=>p.id===c.id);if(!l||this.currentSegment[l.flag])continue;let u=this.reader.requestSliceRange(e+c.segmentPosition,Ve,ct);if(u instanceof Promise&&(u=await u),!u)continue;let h=lt(u);if(!h)continue;let{id:d,size:f}=h;if(d!==l.id)continue;Vt(f),this.currentSegment[l.flag]=!0;let m=this.reader.requestSlice(u.filePos,f);m instanceof Promise&&(m=await m),m&&this.readContiguousElements(m)}this.currentSegment.timestampScale===-1&&(this.currentSegment.timestampScale=1e6,this.currentSegment.timestampFactor=1e9/1e6),this.currentSegment.tracks.sort((c,l)=>Number(l.isDefault)-Number(c.isDefault)),this.currentSegment.cuePoints.sort((c,l)=>c.clusterPosition-l.clusterPosition);let s=this.currentSegment.tracks.map(c=>c.id),n=new Set,o=null,a=null;for(let c of this.currentSegment.cuePoints){if(c.clusterPosition!==o){for(let u of n)k(a),this.currentSegment.tracks.find(d=>d.id===u).cuePoints.push(a);for(let u of s)n.add(u)}if(a=c,!n.has(c.trackId))continue;this.currentSegment.tracks.find(u=>u.id===c.trackId).cuePoints.push(c),n.delete(c.trackId),o=c.clusterPosition}for(let c of n)k(a),this.currentSegment.tracks.find(u=>u.id===c).cuePoints.push(a);for(let c of this.currentSegment.tracks)c.cuePoints.sort((l,u)=>l.time-u.time);this.currentSegment=null}async readCluster(e,t){let r=this.reader.requestSliceRange(e,Ve,ct);r instanceof Promise&&(r=await r),k(r);let s=e,n=lt(r);k(n);let o=n.id,a=n.size,c=r.filePos;a===null&&(a=(await Eo(this.reader,c,vo,t.elementEndPos)).pos-c),k(o===I.Cluster);let l=this.reader.requestSlice(c,a);l instanceof Promise&&(l=await l);let u={elementStartPos:s,elementEndPos:c+a,dataStartPos:c,timestamp:-1,trackData:new Map,nextCluster:null,isKnownToBeFirstCluster:!1};this.currentCluster=u,l&&this.readContiguousElements(l);for(let[h,d]of u.trackData){let f=t.tracks.find(x=>x.id===h)??null;k(d.blocks.length>0);let m=!1,p=!1;for(let x=0;x<d.blocks.length;x++){let w=d.blocks[x];w.timestamp+=u.timestamp,m||=w.referencedTimestamps.length>0,p||=w.lacing!==Ht.None}m&&(d.blocks=j_(d.blocks)),d.presentationTimestamps=d.blocks.map((x,w)=>({timestamp:x.timestamp,blockIndex:w})).sort((x,w)=>x.timestamp-w.timestamp);for(let x=0;x<d.presentationTimestamps.length;x++){let w=d.presentationTimestamps[x],_=d.blocks[w.blockIndex];if(d.firstKeyFrameTimestamp===null&&_.isKeyFrame&&(d.firstKeyFrameTimestamp=_.timestamp),x<d.presentationTimestamps.length-1){let S=d.presentationTimestamps[x+1];_.duration=S.timestamp-_.timestamp}else _.duration===0&&f?.defaultDuration!=null&&_.lacing===Ht.None&&(_.duration=f.defaultDuration)}p&&(this.expandLacedBlocks(d.blocks,f),d.presentationTimestamps=d.blocks.map((x,w)=>({timestamp:x.timestamp,blockIndex:w})).sort((x,w)=>x.timestamp-w.timestamp));let g=d.blocks[d.presentationTimestamps[0].blockIndex],y=d.blocks[ve(d.presentationTimestamps).blockIndex];d.startTimestamp=g.timestamp,d.endTimestamp=y.timestamp+y.duration,f&&(ot(f.clusters,u,w=>w.elementStartPos),d.firstKeyFrameTimestamp!==null&&ot(f.clustersWithKeyFrame,u,w=>w.elementStartPos))}return ot(t.clusters,u,h=>h.elementStartPos),this.currentCluster=null,u}getTrackDataInCluster(e,t){let r=e.trackData.get(t);return r||(r={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,blocks:[],presentationTimestamps:[]},e.trackData.set(t,r)),r}expandLacedBlocks(e,t){for(let r=0;r<e.length;r++){let s=e[r];if(s.lacing===Ht.None)continue;let n=li.tempFromBytes(s.data),o=[],a=z(n)+1;switch(s.lacing){case Ht.Xiph:{let c=0;for(let l=0;l<a-1;l++){let u=0;for(;n.bufferPos<n.length;){let h=z(n);if(u+=h,h<255){o.push(u),c+=u;break}}}o.push(n.length-(n.bufferPos+c))}break;case Ht.FixedSize:{let c=n.length-1,l=Math.floor(c/a);for(let u=0;u<a;u++)o.push(l)}break;case Ht.Ebml:{let c=fi(n);k(c!==null);let l=c;o.push(l);let u=l;for(let h=1;h<a-1;h++){let d=n.bufferPos,f=fi(n);k(f!==null);let m=f,g=(1<<(n.bufferPos-d)*7-1)-1,y=m-g;l+=y,o.push(l),u+=l}o.push(n.length-(n.bufferPos+u))}break;default:k(!1)}k(o.length===a),e.splice(r,1);for(let c=0;c<a;c++){let l=o[c],u=W(n,l),h=s.duration||a*(t?.defaultDuration??0),d=s.timestamp+h*c/a,f=h/a;e.splice(r+c,0,{timestamp:d,duration:f,isKeyFrame:s.isKeyFrame,referencedTimestamps:s.referencedTimestamps,data:u,lacing:Ht.None})}r+=a,r--}}async loadSegmentMetadata(e){for(let t of e.seekEntries){if(!(t.id===I.Tags&&!e.tagsSeen)){if(!(t.id===I.Attachments&&!e.attachmentsSeen))continue}let r=this.reader.requestSliceRange(e.dataStartPos+t.segmentPosition,Ve,ct);if(r instanceof Promise&&(r=await r),!r)continue;let s=lt(r);if(!s||s.id!==t.id)continue;let{size:n}=s;Vt(n),k(!this.currentSegment),this.currentSegment=e;let o=this.reader.requestSlice(r.filePos,n);o instanceof Promise&&(o=await o),o&&this.readContiguousElements(o),this.currentSegment=null,t.id===I.Tags?e.tagsSeen=!0:t.id===I.Attachments&&(e.attachmentsSeen=!0)}}readContiguousElements(e){let t=e.filePos;for(;e.filePos-t<=e.length-Ve&&this.traverseElement(e););}traverseElement(e){let t=lt(e);if(!t)return!1;let{id:r,size:s}=t,n=e.filePos;switch(Vt(s),r){case I.DocType:this.isWebM=ar(e,s)==="webm";break;case I.Seek:{if(!this.currentSegment)break;let o={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(o),this.readContiguousElements(e.slice(n,s)),(o.id===-1||o.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case I.SeekID:{let o=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!o)break;o.id=J(e,s)}break;case I.SeekPosition:{let o=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!o)break;o.segmentPosition=J(e,s)}break;case I.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=J(e,s),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case I.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=Co(e,s)}break;case I.TrackEntry:{if(!this.currentSegment)break;if(this.currentTrack={id:-1,segment:this.currentSegment,demuxer:this,clusters:[],clustersWithKeyFrame:[],cuePoints:[],isDefault:!1,inputTrack:null,codecId:null,codecPrivate:null,defaultDuration:null,name:null,languageCode:Pe,info:null},this.readContiguousElements(e.slice(n,s)),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let o=this.currentTrack.codecId.indexOf("/"),a=o===-1?this.currentTrack.codecId:this.currentTrack.codecId.slice(0,o);if(this.currentTrack.info.type==="video"&&this.currentTrack.info.width!==-1&&this.currentTrack.info.height!==-1){this.currentTrack.codecId===ut.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===ut.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===ut.vp8?this.currentTrack.info.codec="vp8":a===ut.vp9?this.currentTrack.info.codec="vp9":a===ut.av1&&(this.currentTrack.info.codec="av1");let c=this.currentTrack,l=new wt(new Dl(c));this.currentTrack.inputTrack=l,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){a===ut.aac?(this.currentTrack.info.codec="aac",this.currentTrack.info.aacCodecInfo={isMpeg2:this.currentTrack.codecId.includes("MPEG2")},this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===ut.mp3?this.currentTrack.info.codec="mp3":a===ut.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===ut.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===ut.flac?(this.currentTrack.info.codec="flac",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId==="A_PCM/INT/LIT"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32"):this.currentTrack.codecId==="A_PCM/INT/BIG"?this.currentTrack.info.bitDepth===8?this.currentTrack.info.codec="pcm-u8":this.currentTrack.info.bitDepth===16?this.currentTrack.info.codec="pcm-s16be":this.currentTrack.info.bitDepth===24?this.currentTrack.info.codec="pcm-s24be":this.currentTrack.info.bitDepth===32&&(this.currentTrack.info.codec="pcm-s32be"):this.currentTrack.codecId==="A_PCM/FLOAT/IEEE"&&(this.currentTrack.info.bitDepth===32?this.currentTrack.info.codec="pcm-f32":this.currentTrack.info.bitDepth===64&&(this.currentTrack.info.codec="pcm-f64"));let c=this.currentTrack,l=new Ae(new Rl(c));this.currentTrack.inputTrack=l,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case I.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=J(e,s)}break;case I.TrackType:{if(!this.currentTrack)break;let o=J(e,s);o===1?this.currentTrack.info={type:"video",width:-1,height:-1,rotation:0,codec:null,codecDescription:null,colorSpace:null}:o===2&&(this.currentTrack.info={type:"audio",numberOfChannels:-1,sampleRate:-1,bitDepth:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case I.FlagEnabled:{if(!this.currentTrack)break;J(e,s)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case I.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.isDefault=!!J(e,s)}break;case I.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=ar(e,s)}break;case I.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=W(e,s)}break;case I.DefaultDuration:{if(!this.currentTrack)break;this.currentTrack.defaultDuration=this.currentTrack.segment.timestampFactor*J(e,s)/1e9}break;case I.Name:{if(!this.currentTrack)break;this.currentTrack.name=mi(e,s)}break;case I.Language:{if(!this.currentTrack||this.currentTrack.languageCode!==Pe)break;this.currentTrack.languageCode=ar(e,s),uo(this.currentTrack.languageCode)||(this.currentTrack.languageCode=Pe)}break;case I.LanguageBCP47:{if(!this.currentTrack)break;let a=ar(e,s).split("-")[0];a?this.currentTrack.languageCode=a:this.currentTrack.languageCode=Pe}break;case I.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(n,s))}break;case I.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=J(e,s)}break;case I.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=J(e,s)}break;case I.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e.slice(n,s))}break;case I.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let o=J(e,s),a=ao[o]??null;this.currentTrack.info.colorSpace.matrix=a}break;case I.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=J(e,s)===2}break;case I.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let o=J(e,s),a=oo[o]??null;this.currentTrack.info.colorSpace.transfer=a}break;case I.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let o=J(e,s),a=no[o]??null;this.currentTrack.info.colorSpace.primaries=a}break;case I.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e.slice(n,s))}break;case I.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let a=-Co(e,s);try{this.currentTrack.info.rotation=so(a)}catch{}}break;case I.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e.slice(n,s))}break;case I.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=Co(e,s)}break;case I.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=J(e,s)}break;case I.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=J(e,s)}break;case I.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e.slice(n,s)),this.currentCueTime=null}break;case I.CueTime:this.currentCueTime=J(e,s);break;case I.CueTrackPositions:{if(this.currentCueTime===null)break;k(this.currentSegment);let o={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(o),this.readContiguousElements(e.slice(n,s)),(o.trackId===-1||o.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case I.CueTrack:{let o=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!o)break;o.trackId=J(e,s)}break;case I.CueClusterPosition:{let o=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!o)break;k(this.currentSegment),o.clusterPosition=this.currentSegment.dataStartPos+J(e,s)}break;case I.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=J(e,s)}break;case I.SimpleBlock:{if(!this.currentCluster)break;let o=fi(e);if(o===null)break;let a=_s(e),c=z(e),l=!!(c&128),u=c>>1&3;this.getTrackDataInCluster(this.currentCluster,o).blocks.push({timestamp:a,duration:0,isKeyFrame:l,referencedTimestamps:[],data:W(e,s-(e.filePos-n)),lacing:u})}break;case I.BlockGroup:{if(!this.currentCluster)break;if(this.readContiguousElements(e.slice(n,s)),this.currentBlock){for(let o=0;o<this.currentBlock.referencedTimestamps.length;o++)this.currentBlock.referencedTimestamps[o]+=this.currentBlock.timestamp;this.currentBlock=null}}break;case I.Block:{if(!this.currentCluster)break;let o=fi(e);if(o===null)break;let a=_s(e),l=z(e)>>1&3,u=this.getTrackDataInCluster(this.currentCluster,o);this.currentBlock={timestamp:a,duration:0,isKeyFrame:!0,referencedTimestamps:[],data:W(e,s-(e.filePos-n)),lacing:l},u.blocks.push(this.currentBlock)}break;case I.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=J(e,s)}break;case I.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;let o=Df(e,s);this.currentBlock.referencedTimestamps.push(o)}break;case I.Tag:this.currentTagTargetIsMovie=!0,this.readContiguousElements(e.slice(n,s));break;case I.Targets:this.readContiguousElements(e.slice(n,s));break;case I.TargetTypeValue:J(e,s)!==50&&(this.currentTagTargetIsMovie=!1);break;case I.TagTrackUID:case I.TagEditionUID:case I.TagChapterUID:case I.TagAttachmentUID:this.currentTagTargetIsMovie=!1;break;case I.SimpleTag:{if(!this.currentTagTargetIsMovie)break;this.currentSimpleTagName=null,this.readContiguousElements(e.slice(n,s))}break;case I.TagName:this.currentSimpleTagName=mi(e,s);break;case I.TagString:{if(!this.currentSimpleTagName)break;let o=mi(e,s);this.processTagValue(this.currentSimpleTagName,o)}break;case I.TagBinary:{if(!this.currentSimpleTagName)break;let o=W(e,s);this.processTagValue(this.currentSimpleTagName,o)}break;case I.AttachedFile:{if(!this.currentSegment)break;if(this.currentAttachedFile={fileName:null,fileMediaType:null,fileData:null,fileDescription:null},this.readContiguousElements(e.slice(n,s)),this.currentAttachedFile.fileMediaType?.startsWith("image/")&&this.currentAttachedFile.fileData){let o=this.currentAttachedFile.fileName,a="unknown";if(o){let c=o.toLowerCase();c.startsWith("cover.")?a="coverFront":c.startsWith("back.")&&(a="coverBack")}this.currentSegment.metadataTags.images??=[],this.currentSegment.metadataTags.images.push({data:this.currentAttachedFile.fileData,mimeType:this.currentAttachedFile.fileMediaType,kind:a,name:this.currentAttachedFile.fileName??void 0,description:this.currentAttachedFile.fileDescription??void 0})}this.currentAttachedFile=null}break;case I.FileName:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileName=mi(e,s)}break;case I.FileMediaType:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=ar(e,s)}break;case I.FileData:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileData=W(e,s)}break;case I.FileDescription:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileDescription=mi(e,s)}break}return e.filePos=n+s,!0}processTagValue(e,t){if(!this.currentSegment?.metadataTags)return;let r=this.currentSegment.metadataTags;if(r.raw??={},r.raw[e]??=t,typeof t=="string")switch(e.toLowerCase()){case"title":r.title??=t;break;case"description":r.description??=t;break;case"artist":r.artist??=t;break;case"album":r.album??=t;break;case"album_artist":r.albumArtist??=t;break;case"genre":r.genre??=t;break;case"comment":r.comment??=t;break;case"lyrics":r.lyrics??=t;break;case"date":{let s=new Date(t);Number.isNaN(s.getTime())||(r.date??=s)}break;case"track_number":case"part_number":{let s=t.split("/"),n=Number.parseInt(s[0],10),o=s[1]&&Number.parseInt(s[1],10);Number.isInteger(n)&&n>0&&(r.trackNumber??=n),o&&Number.isInteger(o)&&o>0&&(r.tracksTotal??=o)}break;case"disc_number":case"disc":{let s=t.split("/"),n=Number.parseInt(s[0],10),o=s[1]&&Number.parseInt(s[1],10);Number.isInteger(n)&&n>0&&(r.discNumber??=n),o&&Number.isInteger(o)&&o>0&&(r.discsTotal??=o)}break}}},zo=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.codecId}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}async getFirstTimestamp(){return(await this.getFirstPacket({metadataOnly:!0}))?.timestamp??0}getTimeResolution(){return this.internalTrack.segment.timestampFactor}async getFirstPacket(e){return this.performClusterLookup(()=>{let t=this.internalTrack.segment.clusters[0]??null;if(t?.isKnownToBeFirstCluster){let r=t;for(;r;){if(r.trackData.get(this.internalTrack.id))return{clusterIndex:ae(this.internalTrack.clusters,r.elementStartPos,n=>n.elementStartPos),blockIndex:0,correctBlockFound:!0};r=r.nextCluster}}return{clusterIndex:-1,blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,e)}intoTimescale(e){return Ir(e*this.internalTrack.segment.timestampFactor,14)}async getPacket(e,t){let r=this.intoTimescale(e);return this.performClusterLookup(()=>this.findBlockInClustersForTimestamp(r),r,r,t)}async getNextPacket(e,t){let r=this.packetToClusterLocation.get(e);if(r===void 0)throw new Error("Packet was not created from this track.");let s=r.cluster.trackData.get(this.internalTrack.id),n=ae(this.internalTrack.clusters,r.cluster.elementStartPos,o=>o.elementStartPos);return k(n!==-1),this.performClusterLookup(()=>{if(r.blockIndex+1<s.blocks.length)return{clusterIndex:n,blockIndex:r.blockIndex+1,correctBlockFound:!0};{let o=r.cluster;for(;o.nextCluster;)if(o=o.nextCluster,o.trackData.get(this.internalTrack.id)){let c=ae(this.internalTrack.clusters,o.elementStartPos,l=>l.elementStartPos);return k(c!==-1),{clusterIndex:c,blockIndex:0,correctBlockFound:!0}}return{clusterIndex:n,blockIndex:-1,correctBlockFound:!1}}},-1/0,1/0,t)}async getKeyPacket(e,t){let r=this.intoTimescale(e);return this.performClusterLookup(()=>this.findKeyBlockInClustersForTimestamp(r),r,r,t)}async getNextKeyPacket(e,t){let r=this.packetToClusterLocation.get(e);if(r===void 0)throw new Error("Packet was not created from this track.");let s=r.cluster.trackData.get(this.internalTrack.id),n=ae(this.internalTrack.clusters,r.cluster.elementStartPos,o=>o.elementStartPos);return k(n!==-1),this.performClusterLookup(()=>{let o=s.blocks.findIndex((a,c)=>a.isKeyFrame&&c>r.blockIndex);if(o!==-1)return{clusterIndex:n,blockIndex:o,correctBlockFound:!0};{let a=r.cluster;for(;a.nextCluster;){a=a.nextCluster;let c=a.trackData.get(this.internalTrack.id);if(c&&c.firstKeyFrameTimestamp!==null){let l=ae(this.internalTrack.clusters,a.elementStartPos,h=>h.elementStartPos);k(l!==-1);let u=c.blocks.findIndex(h=>h.isKeyFrame);return k(u!==-1),{clusterIndex:l,blockIndex:u,correctBlockFound:!0}}}return{clusterIndex:n,blockIndex:-1,correctBlockFound:!1}}},-1/0,1/0,t)}async fetchPacketInCluster(e,t,r){if(t===-1)return null;let n=e.trackData.get(this.internalTrack.id).blocks[t];k(n);let o=r.metadataOnly?Ee:n.data,a=n.timestamp/this.internalTrack.segment.timestampFactor,c=n.duration/this.internalTrack.segment.timestampFactor,l=new ce(o,n.isKeyFrame?"key":"delta",a,c,e.dataStartPos+t,n.data.byteLength);return this.packetToClusterLocation.set(l,{cluster:e,blockIndex:t}),l}findBlockInClustersForTimestamp(e){let t=Q(this.internalTrack.clusters,e,n=>n.trackData.get(this.internalTrack.id).startTimestamp),r=-1,s=!1;if(t!==-1){let o=this.internalTrack.clusters[t].trackData.get(this.internalTrack.id),a=Q(o.presentationTimestamps,e,c=>c.timestamp);k(a!==-1),r=o.presentationTimestamps[a].blockIndex,s=e<o.endTimestamp}return{clusterIndex:t,blockIndex:r,correctBlockFound:s}}findKeyBlockInClustersForTimestamp(e){let t=Q(this.internalTrack.clustersWithKeyFrame,e,o=>o.trackData.get(this.internalTrack.id).firstKeyFrameTimestamp),r=-1,s=-1,n=!1;if(t!==-1){let o=this.internalTrack.clustersWithKeyFrame[t];r=ae(this.internalTrack.clusters,o.elementStartPos,u=>u.elementStartPos),k(r!==-1);let a=o.trackData.get(this.internalTrack.id),c=co(a.presentationTimestamps,u=>a.blocks[u.blockIndex].isKeyFrame&&u.timestamp<=e);k(c!==-1),s=a.presentationTimestamps[c].blockIndex,n=e<a.endTimestamp}return{clusterIndex:r,blockIndex:s,correctBlockFound:n}}async performClusterLookup(e,t,r,s){let{demuxer:n,segment:o}=this.internalTrack,a=await o.clusterLookupMutex.acquire();try{let{clusterIndex:c,blockIndex:l,correctBlockFound:u}=e();if(u){let w=this.internalTrack.clusters[c];return this.fetchPacketInCluster(w,l,s)}let h=null,d=c,f=l,m=Q(this.internalTrack.cuePoints,t,w=>w.time),p=m!==-1?this.internalTrack.cuePoints[m]:null,g,y=!1;if(c===-1)g=p?.clusterPosition??o.clusterSeekStartPos,y=g===o.clusterSeekStartPos;else{let w=this.internalTrack.clusters[c];!p||w.elementStartPos>=p.clusterPosition?(g=w.elementEndPos,h=w):g=p.clusterPosition}for(;o.elementEndPos===null||g<=o.elementEndPos-Ve;){if(h){let P=h.trackData.get(this.internalTrack.id);if(P&&P.startTimestamp>r)break;if(h.nextCluster){g=h.nextCluster.elementEndPos,h=h.nextCluster;continue}}let w=n.reader.requestSliceRange(g,Ve,ct);if(w instanceof Promise&&(w=await w),!w)break;let _=g,S=lt(w);if(!S||!di.includes(S.id)&&S.id!==I.Void){let P=await Tl(n.reader,_,di,Math.min(o.elementEndPos??1/0,_+tm));if(P){g=P;continue}else break}let T=S.id,v=S.size,M=w.filePos;if(T===I.Cluster){let P=ae(o.clusters,_,he=>he.elementStartPos),C;P===-1?C=await n.readCluster(_,o):C=o.clusters[P],h&&(h.nextCluster=C),h=C,y&&(C.isKnownToBeFirstCluster=!0,y=!1);let{clusterIndex:E,blockIndex:D,correctBlockFound:j}=e();if(j){let he=this.internalTrack.clusters[E];return this.fetchPacketInCluster(he,D,s)}E!==-1&&(d=E,f=D)}if(v===null){T===I.Cluster?(k(h),v=h.elementEndPos-M):v=(await Eo(n.reader,M,vo,o.elementEndPos)).pos-M;let P=M+v;if(o.elementEndPos!==null&&P>o.elementEndPos-Ve)break;{let C=n.reader.requestSliceRange(P,Ve,ct);if(C instanceof Promise&&(C=await C),!C)break;if(Po(C)===I.Segment){o.elementEndPos=P;break}}}g=M+v}let x=d!==-1?this.internalTrack.clusters[d]:null;if(p&&(!x||x.elementStartPos<p.clusterPosition)){let _=this.internalTrack.cuePoints[m-1]?.time??-1/0;return this.performClusterLookup(e,_,r,s)}return x?this.fetchPacketInCluster(x,f,s):null}finally{a()}}},Dl=class extends zo{constructor(e){super(e),this.decoderConfigPromise=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getRotation(){return this.internalTrack.info.rotation}async getColorSpace(){return{primaries:this.internalTrack.info.colorSpace?.primaries,transfer:this.internalTrack.info.colorSpace?.transfer,matrix:this.internalTrack.info.colorSpace?.matrix,fullRange:this.internalTrack.info.colorSpace?.fullRange}}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfigPromise??=(async()=>{let e=null;return(this.internalTrack.info.codec==="vp9"||this.internalTrack.info.codec==="av1"||this.internalTrack.info.codec==="avc"&&!this.internalTrack.info.codecDescription||this.internalTrack.info.codec==="hevc"&&!this.internalTrack.info.codecDescription)&&(e=await this.getFirstPacket({})),{codec:po({width:this.internalTrack.info.width,height:this.internalTrack.info.height,codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,colorSpace:this.internalTrack.info.colorSpace,avcCodecInfo:this.internalTrack.info.codec==="avc"&&e?Sf(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Tf(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?bo(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?wo(e.data):null}),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,description:this.internalTrack.info.codecDescription??void 0,colorSpace:this.internalTrack.info.colorSpace??void 0}})():null}},Rl=class extends zo{constructor(e){super(e),this.decoderConfig=null,this.internalTrack=e}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){return this.internalTrack.info.codec?this.decoderConfig??={codec:go({codec:this.internalTrack.info.codec,codecDescription:this.internalTrack.info.codecDescription,aacCodecInfo:this.internalTrack.info.aacCodecInfo}),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},j_=i=>{let e=new Map;for(let n=0;n<i.length;n++){let o=i[n];e.set(o.timestamp,o)}let t=new Set,r=[],s=n=>{if(!t.has(n)){t.add(n);for(let o=0;o<n.referencedTimestamps.length;o++){let a=n.referencedTimestamps[o],c=e.get(a);c&&s(c)}r.push(n)}};for(let n=0;n<i.length;n++)s(i[n]);return r};var Go=class extends We{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.tracks=[],this.readingMutex=new Je,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();if(!this.firstFrameHeader)throw new Error("No valid MP3 frame found.");this.tracks=[new Ae(new Ol(this))]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let a=this.reader.requestSlice(this.lastLoadedPos,bi);if(a instanceof Promise&&(a=await a),!a){this.lastSampleLoaded=!0;return}let c=ks(a);if(!c)break;this.lastLoadedPos=a.filePos+c.size}let e=await Ts(this.reader,this.lastLoadedPos,this.reader.fileSize);if(!e){this.lastSampleLoaded=!0;return}let t=e.header;this.lastLoadedPos=e.startPos+t.totalSize-1;let r=zf(t.mpegVersionId,t.channel),s=this.reader.requestSlice(e.startPos+r,4);if(s instanceof Promise&&(s=await s),s){let a=B(s);if(a===Of||a===Uf)return}this.firstFrameHeader||(this.firstFrameHeader=t);let n=t.audioSamplesInFrame/t.sampleRate,o={timestamp:this.nextTimestampInSamples/t.sampleRate,duration:n,dataStart:e.startPos,dataSize:t.totalSize};this.loadedSamples.push(o),this.nextTimestampInSamples+=t.audioSamplesInFrame}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return k(e),e.computeDuration()}async getMetadataTags(){let e=await this.readingMutex.acquire();try{if(await this.readMetadata(),this.metadataTags)return this.metadataTags;this.metadataTags={};let t=0,r=!1;for(;;){let s=this.reader.requestSlice(t,bi);if(s instanceof Promise&&(s=await s),!s)break;let n=ks(s);if(!n)break;r=!0;let o=this.reader.requestSlice(s.filePos,n.size);if(o instanceof Promise&&(o=await o),!o)break;Vf(o,n,this.metadataTags),t=s.filePos+n.size}if(!r&&this.reader.fileSize!==null&&this.reader.fileSize>=Ss){let s=this.reader.requestSlice(this.reader.fileSize-Ss,Ss);s instanceof Promise&&(s=await s),k(s),de(s,3)==="TAG"&&Lf(s,this.metadataTags)}return this.metadataTags}finally{e()}}},Ol=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return k(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return Pe}getCodec(){return"mp3"}getInternalCodecId(){return null}getNumberOfChannels(){return k(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return k(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}async getDecoderConfig(){return k(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:this.demuxer.firstFrameHeader.channel===3?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}async getPacketAtIndex(e,t){if(e===-1)return null;let r=this.demuxer.loadedSamples[e];if(!r)return null;let s;if(t.metadataOnly)s=Ee;else{let n=this.demuxer.reader.requestSlice(r.dataStart,r.dataSize);if(n instanceof Promise&&(n=await n),!n)return null;s=W(n,r.dataSize)}return new ce(s,"key",r.timestamp,r.duration,e,r.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let r=await this.demuxer.readingMutex.acquire();try{let s=ae(this.demuxer.loadedSamples,e.timestamp,o=>o.timestamp);if(s===-1)throw new Error("Packet was not created from this track.");let n=s+1;for(;n>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(n,t)}finally{r()}}async getPacket(e,t){let r=await this.demuxer.readingMutex.acquire();try{for(;;){let s=Q(this.demuxer.loadedSamples,e,n=>n.timestamp);if(s===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(s,t);if(s>=0&&s+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(s,t);await this.demuxer.advanceReader()}}finally{r()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var No=class extends We{constructor(e){super(e),this.metadataPromise=null,this.bitstreams=[],this.tracks=[],this.metadataTags={},this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{let e=0;for(;;){let t=this.reader.requestSliceRange(e,cr,Rr);if(t instanceof Promise&&(t=await t),!t)break;let r=wi(t);if(!r||!!!(r.headerType&2))break;this.bitstreams.push({serialNumber:r.serialNumber,bosPage:r,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),e=r.headerStartPos+r.totalSize}for(let t of this.bitstreams){let r=await this.readPacket(t.bosPage,0);r&&(r.data.byteLength>=7&&r.data[0]===1&&r.data[1]===118&&r.data[2]===111&&r.data[3]===114&&r.data[4]===98&&r.data[5]===105&&r.data[6]===115?await this.readVorbisMetadata(r,t):r.data.byteLength>=8&&r.data[0]===79&&r.data[1]===112&&r.data[2]===117&&r.data[3]===115&&r.data[4]===72&&r.data[5]===101&&r.data[6]===97&&r.data[7]===100&&await this.readOpusMetadata(r,t),t.codecInfo.codec!==null&&this.tracks.push(new Ae(new Ul(t,this))))}})()}async readVorbisMetadata(e,t){let r=await this.findNextPacketStart(e);if(!r)return;let s=await this.readPacket(r.startPage,r.startSegmentIndex);if(!s||(r=await this.findNextPacketStart(s),!r))return;let n=await this.readPacket(r.startPage,r.startSegmentIndex);if(!n||s.data[0]!==3||n.data[0]!==5)return;let o=[],a=h=>{for(;o.push(Math.min(255,h)),!(h<255);)h-=255};a(e.data.length),a(s.data.length);let c=new Uint8Array(1+o.length+e.data.length+s.data.length+n.data.length);c[0]=o.length,c.set(o,1),c.set(e.data,1+o.length),c.set(s.data,1+o.length+e.data.length),c.set(n.data,1+o.length+e.data.length+s.data.length),t.codecInfo.codec="vorbis",t.description=c,t.lastMetadataPacket=n;let l=oe(e.data);t.numberOfChannels=l.getUint8(11),t.sampleRate=l.getUint32(12,!0);let u=l.getUint8(28);t.codecInfo.vorbisInfo={blocksizes:[1<<(u&15),1<<(u>>4)],modeBlockflags:Cf(n.data).modeBlockflags},this.readVorbisComments(s.data.subarray(7))}async readOpusMetadata(e,t){let r=await this.findNextPacketStart(e);if(!r)return;let s=await this.readPacket(r.startPage,r.startSegmentIndex);if(!s)return;t.codecInfo.codec="opus",t.description=e.data,t.lastMetadataPacket=s;let n=vf(e.data);t.numberOfChannels=n.outputChannelCount,t.sampleRate=n.inputSampleRate,t.codecInfo.opusInfo={preSkip:n.preSkip},this.readVorbisComments(s.data.subarray(8))}readVorbisComments(e){let t=oe(e),r=0,s=t.getUint32(r,!0);r+=4;let n=Be.decode(e.subarray(r,r+s));r+=s,s>0&&(this.metadataTags.raw??={},this.metadataTags.raw.vendor??=n);let o=t.getUint32(r,!0);r+=4;for(let a=0;a<o;a++){let c=t.getUint32(r,!0);r+=4;let l=Be.decode(e.subarray(r,r+c));r+=c;let u=l.indexOf("=");if(u===-1)continue;let h=l.slice(0,u).toUpperCase(),d=l.slice(u+1);switch(this.metadataTags.raw??={},this.metadataTags.raw[h]??=d,h){case"TITLE":this.metadataTags.title??=d;break;case"DESCRIPTION":this.metadataTags.description??=d;break;case"ARTIST":this.metadataTags.artist??=d;break;case"ALBUM":this.metadataTags.album??=d;break;case"ALBUMARTIST":this.metadataTags.albumArtist??=d;break;case"COMMENT":this.metadataTags.comment??=d;break;case"LYRICS":this.metadataTags.lyrics??=d;break;case"TRACKNUMBER":{let f=d.split("/"),m=Number.parseInt(f[0],10),p=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(this.metadataTags.trackNumber??=m),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.tracksTotal??=p)}break;case"TRACKTOTAL":{let f=Number.parseInt(d,10);Number.isInteger(f)&&f>0&&(this.metadataTags.tracksTotal??=f)}break;case"DISCNUMBER":{let f=d.split("/"),m=Number.parseInt(f[0],10),p=f[1]&&Number.parseInt(f[1],10);Number.isInteger(m)&&m>0&&(this.metadataTags.discNumber??=m),p&&Number.isInteger(p)&&p>0&&(this.metadataTags.discsTotal??=p)}break;case"DISCTOTAL":{let f=Number.parseInt(d,10);Number.isInteger(f)&&f>0&&(this.metadataTags.discsTotal??=f)}break;case"DATE":{let f=new Date(d);Number.isNaN(f.getTime())||(this.metadataTags.date??=f)}break;case"GENRE":this.metadataTags.genre??=d;break;case"METADATA_BLOCK_PICTURE":{let f=pf(d),m=oe(f),p=m.getUint32(0,!1),g=m.getUint32(4,!1),y=String.fromCharCode(...f.subarray(8,8+g)),x=m.getUint32(8+g,!1),w=Be.decode(f.subarray(12+g,12+g+x)),_=m.getUint32(g+x+28),S=f.subarray(g+x+32,g+x+32+_);this.metadataTags.images??=[],this.metadataTags.images.push({data:S,mimeType:y,kind:p===3?"coverFront":p===4?"coverBack":"unknown",name:void 0,description:w||void 0})}break}}}async readPacket(e,t){k(t<e.lacingValues.length);let r=0;for(let h=0;h<t;h++)r+=e.lacingValues[h];let s=e,n=r,o=t,a=[];e:for(;;){let h=this.reader.requestSlice(s.dataStartPos,s.dataSize);h instanceof Promise&&(h=await h),k(h);let d=W(h,s.dataSize);for(;;){if(o===s.lacingValues.length){a.push(d.subarray(r,n));break}let m=s.lacingValues[o];if(n+=m,m<255){a.push(d.subarray(r,n));break e}o++}let f=s.headerStartPos+s.totalSize;for(;;){let m=this.reader.requestSliceRange(f,cr,Rr);if(m instanceof Promise&&(m=await m),!m)return null;let p=wi(m);if(!p)return null;if(s=p,s.serialNumber===e.serialNumber)break;f=s.headerStartPos+s.totalSize}r=0,n=0,o=0}let c=a.reduce((h,d)=>h+d.length,0),l=new Uint8Array(c),u=0;for(let h=0;h<a.length;h++){let d=a[h];l.set(d,u),u+=d.length}return{data:l,endPage:s,endSegmentIndex:o}}async findNextPacketStart(e){if(e.endSegmentIndex<e.endPage.lacingValues.length-1)return{startPage:e.endPage,startSegmentIndex:e.endSegmentIndex+1};if(!!(e.endPage.headerType&4))return null;let r=e.endPage.headerStartPos+e.endPage.totalSize;for(;;){let s=this.reader.requestSliceRange(r,cr,Rr);if(s instanceof Promise&&(s=await s),!s)return null;let n=wi(s);if(!n)return null;if(n.serialNumber===e.endPage.serialNumber)return{startPage:n,startSegmentIndex:0};r=n.headerStartPos+n.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.getCodecParameterString()));return $f({codecStrings:e.filter(Boolean)})}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){let e=await this.getTracks(),t=await Promise.all(e.map(r=>r.computeDuration()));return Math.max(0,...t)}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}},Ul=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new Je,this.internalSampleRate=e.codecInfo.codec==="opus"?yf:e.sampleRate}getId(){return this.bitstream.serialNumber}getNumberOfChannels(){return this.bitstream.numberOfChannels}getSampleRate(){return this.bitstream.sampleRate}getTimeResolution(){return this.bitstream.sampleRate}getCodec(){return this.bitstream.codecInfo.codec}getInternalCodecId(){return null}async getDecoderConfig(){return k(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getName(){return null}getLanguageCode(){return Pe}async getFirstTimestamp(){return 0}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}granulePositionToTimestampInSamples(e){return this.bitstream.codecInfo.codec==="opus"?(k(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,r){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:n}=jf(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),o=new ce(r.metadataOnly?Ee:e.data,"key",Math.max(0,t.timestampInSamples)/this.internalSampleRate,s/this.internalSampleRate,e.endPage.headerStartPos+e.endSegmentIndex,e.data.byteLength);return this.encodedPacketToMetadata.set(o,{packet:e,timestampInSamples:t.timestampInSamples,durationInSamples:s,vorbisLastBlockSize:t.vorbisLastBlocksize,vorbisBlockSize:n}),o}async getFirstPacket(e){k(this.bitstream.lastMetadataPacket);let t=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!t)return null;let r=0;this.bitstream.codecInfo.codec==="opus"&&(k(this.bitstream.codecInfo.opusInfo),r-=this.bitstream.codecInfo.opusInfo.preSkip);let s=await this.demuxer.readPacket(t.startPage,t.startSegmentIndex);return this.createEncodedPacketFromOggPacket(s,{timestampInSamples:r,vorbisLastBlocksize:null},e)}async getNextPacket(e,t){let r=this.encodedPacketToMetadata.get(e);if(!r)throw new Error("Packet was not created from this track.");let s=await this.demuxer.findNextPacketStart(r.packet);if(!s)return null;let n=r.timestampInSamples+r.durationInSamples,o=await this.demuxer.readPacket(s.startPage,s.startSegmentIndex);return this.createEncodedPacketFromOggPacket(o,{timestampInSamples:n,vorbisLastBlocksize:r.vorbisBlockSize},t)}async getPacket(e,t){if(this.demuxer.reader.fileSize===null)return this.getPacketSequential(e,t);let r=Ir(e*this.internalSampleRate,14);if(r===0)return this.getFirstPacket(t);if(r<0)return null;k(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.bitstream.lastMetadataPacket);if(!s)return null;let n=s.startPage,o=this.demuxer.reader.fileSize,a=[n];e:for(;n.headerStartPos+n.totalSize<o;){let x=n.headerStartPos,w=Math.floor((x+o)/2),_=w;for(;;){let S=Math.min(_+qf,o-cr),T=this.demuxer.reader.requestSlice(_,S-_);if(T instanceof Promise&&(T=await T),k(T),!Xf(T,S)){o=w+cr;continue e}let M=this.demuxer.reader.requestSliceRange(T.filePos,cr,Rr);M instanceof Promise&&(M=await M),k(M);let P=wi(M);k(P);let C=!1;if(P.serialNumber===this.bitstream.serialNumber)C=!0;else{let D=this.demuxer.reader.requestSlice(P.headerStartPos,P.totalSize);D instanceof Promise&&(D=await D),k(D);let j=W(D,P.totalSize);C=Hf(j)===P.checksum}if(!C){_=P.headerStartPos+4;continue}if(C&&P.serialNumber!==this.bitstream.serialNumber){_=P.headerStartPos+P.totalSize;continue}if(P.granulePosition===-1){_=P.headerStartPos+P.totalSize;continue}this.granulePositionToTimestampInSamples(P.granulePosition)>r?o=P.headerStartPos:(n=P,a.push(P));continue e}}let c=s.startPage;for(let x of a){if(x.granulePosition===n.granulePosition)break;(!c||x.headerStartPos>c.headerStartPos)&&(c=x)}let l=c,u=[l];for(;!(l.serialNumber===this.bitstream.serialNumber&&l.granulePosition===n.granulePosition);){let x=l.headerStartPos+l.totalSize,w=this.demuxer.reader.requestSliceRange(x,cr,Rr);w instanceof Promise&&(w=await w),k(w);let _=wi(w);k(_),l=_,l.serialNumber===this.bitstream.serialNumber&&u.push(l)}k(l.granulePosition!==-1);let h=null,d,f,m=l,p=0;if(l.headerStartPos===s.startPage.headerStartPos)d=this.granulePositionToTimestampInSamples(0),f=!0,h=0;else{d=0,f=!1;for(let _=l.lacingValues.length-1;_>=0;_--)if(l.lacingValues[_]<255){h=_+1;break}if(h===null)throw new Error("Invalid page with granule position: no packets end on this page.");p=h-1;let x={data:Ee,endPage:m,endSegmentIndex:p};if(await this.demuxer.findNextPacketStart(x)){let _=im(u,l,h);k(_);let S=rm(u,_.page,_.segmentIndex);S&&(l=S.page,h=S.segmentIndex)}else for(;;){let _=im(u,l,h);if(!_)break;let S=rm(u,_.page,_.segmentIndex);if(!S)break;if(l=S.page,h=S.segmentIndex,_.page.headerStartPos!==m.headerStartPos){m=_.page,p=_.segmentIndex;break}}}let g=null,y=null;for(;l!==null;){k(h!==null);let x=await this.demuxer.readPacket(l,h);if(!x)break;if(!(l.headerStartPos===s.startPage.headerStartPos&&h<s.startSegmentIndex)){let S=this.createEncodedPacketFromOggPacket(x,{timestampInSamples:d,vorbisLastBlocksize:y?.vorbisBlockSize??null},t);k(S);let T=this.encodedPacketToMetadata.get(S);if(k(T),!f&&x.endPage.headerStartPos===m.headerStartPos&&x.endSegmentIndex===p?(d=this.granulePositionToTimestampInSamples(l.granulePosition),f=!0,S=this.createEncodedPacketFromOggPacket(x,{timestampInSamples:d-T.durationInSamples,vorbisLastBlocksize:y?.vorbisBlockSize??null},t),k(S),T=this.encodedPacketToMetadata.get(S),k(T)):d+=T.durationInSamples,g=S,y=T,f&&(Math.max(d,0)>r||Math.max(T.timestampInSamples,0)===r))break}let _=await this.demuxer.findNextPacketStart(x);if(!_)break;l=_.startPage,h=_.startSegmentIndex}return g}async getPacketSequential(e,t){let r=await this.sequentialScanMutex.acquire();try{let s=Ir(e*this.internalSampleRate,14);e=s/this.internalSampleRate;let n=Q(this.sequentialScanCache,s,c=>c.timestampInSamples),o;if(n!==-1){let c=this.sequentialScanCache[n];o=this.createEncodedPacketFromOggPacket(c.packet,{timestampInSamples:c.timestampInSamples,vorbisLastBlocksize:c.vorbisLastBlockSize},t)}else o=await this.getFirstPacket(t);let a=0;for(;o&&o.timestamp<e;){let c=await this.getNextPacket(o,t);if(!c||c.timestamp>e)break;if(o=c,a++,a===100){a=0;let l=this.encodedPacketToMetadata.get(o);k(l),this.sequentialScanCache.length>0&&k(ve(this.sequentialScanCache).timestampInSamples<=l.timestampInSamples),this.sequentialScanCache.push(l)}}return o}finally{r()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}},rm=(i,e,t)=>{let r=e,s=t;e:for(;;){for(s--,s;s>=0;s--)if(r.lacingValues[s]<255){s++;break e}if(k(s===-1),!(r.headerType&1)){s=0;break}let o=dl(i,a=>a.headerStartPos<r.headerStartPos);if(!o)return null;r=o,s=r.lacingValues.length}if(k(s!==-1),s===r.lacingValues.length){let n=i[i.indexOf(r)+1];k(n),r=n,s=0}return{page:r,segmentIndex:s}},im=(i,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let r=dl(i,s=>s.headerStartPos<e.headerStartPos);return r?{page:r,segmentIndex:r.lacingValues.length-1}:null};var vi=7,Pi=9,Is=i=>{let e=i.filePos,t=W(i,9),r=new fe(t);if(r.readBits(12)!==4095||(r.skipBits(1),r.readBits(2)!==0))return null;let o=r.readBits(1),a=r.readBits(2)+1,c=r.readBits(4);if(c===15)return null;r.skipBits(1);let l=r.readBits(3);if(l===0)throw new Error("ADTS frames with channel configuration 0 are not supported.");r.skipBits(1),r.skipBits(1),r.skipBits(1),r.skipBits(1);let u=r.readBits(13);r.skipBits(11);let h=r.readBits(2)+1;if(h!==1)throw new Error("ADTS frames with more than one AAC frame are not supported.");let d=null;return o===1?i.filePos-=2:d=r.readBits(16),{objectType:a,samplingFrequencyIndex:c,channelConfiguration:l,frameLength:u,numberOfAacFrames:h,crcCheck:d,startPos:e}};var zl=1024,Lo=class extends We{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.tracks=[],this.readingMutex=new Je,this.lastSampleLoaded=!1,this.lastLoadedPos=0,this.nextTimestampInSamples=0,this.reader=e._reader}async readMetadata(){return this.metadataPromise??=(async()=>{for(;!this.firstFrameHeader&&!this.lastSampleLoaded;)await this.advanceReader();k(this.firstFrameHeader),this.tracks=[new Ae(new Gl(this))]})()}async advanceReader(){let e=this.reader.requestSliceRange(this.lastLoadedPos,vi,Pi);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let t=Is(e);if(!t){this.lastSampleLoaded=!0;return}if(this.reader.fileSize!==null&&t.startPos+t.frameLength>this.reader.fileSize){this.lastSampleLoaded=!0;return}this.firstFrameHeader||(this.firstFrameHeader=t);let r=bs[t.samplingFrequencyIndex];k(r!==void 0);let s=zl/r,n=t.crcCheck?Pi:vi,o={timestamp:this.nextTimestampInSamples/r,duration:s,dataStart:t.startPos+n,dataSize:t.frameLength-n};this.loadedSamples.push(o),this.nextTimestampInSamples+=zl,this.lastLoadedPos=t.startPos+t.frameLength}async getMimeType(){return"audio/aac"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=this.tracks[0];return k(e),e.computeDuration()}async getMetadataTags(){return{}}},Gl=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return this.getSampleRate()/zl}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}getName(){return null}getLanguageCode(){return Pe}getCodec(){return"aac"}getInternalCodecId(){return k(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.objectType}getNumberOfChannels(){k(this.demuxer.firstFrameHeader);let e=pl[this.demuxer.firstFrameHeader.channelConfiguration];return k(e!==void 0),e}getSampleRate(){k(this.demuxer.firstFrameHeader);let e=bs[this.demuxer.firstFrameHeader.samplingFrequencyIndex];return k(e!==void 0),e}async getDecoderConfig(){k(this.demuxer.firstFrameHeader);let e=new Uint8Array(3),t=new fe(e),{objectType:r,samplingFrequencyIndex:s,channelConfiguration:n}=this.demuxer.firstFrameHeader;return r>31?(t.writeBits(5,31),t.writeBits(6,r-32)):t.writeBits(5,r),t.writeBits(4,s),t.writeBits(4,n),{codec:`mp4a.40.${this.demuxer.firstFrameHeader.objectType}`,numberOfChannels:this.getNumberOfChannels(),sampleRate:this.getSampleRate(),description:e.subarray(0,Math.ceil((t.pos-1)/8))}}async getPacketAtIndex(e,t){if(e===-1)return null;let r=this.demuxer.loadedSamples[e];if(!r)return null;let s;if(t.metadataOnly)s=Ee;else{let n=this.demuxer.reader.requestSlice(r.dataStart,r.dataSize);if(n instanceof Promise&&(n=await n),!n)return null;s=W(n,r.dataSize)}return new ce(s,"key",r.timestamp,r.duration,e,r.dataSize)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let r=await this.demuxer.readingMutex.acquire();try{let s=ae(this.demuxer.loadedSamples,e.timestamp,o=>o.timestamp);if(s===-1)throw new Error("Packet was not created from this track.");let n=s+1;for(;n>=this.demuxer.loadedSamples.length&&!this.demuxer.lastSampleLoaded;)await this.demuxer.advanceReader();return this.getPacketAtIndex(n,t)}finally{r()}}async getPacket(e,t){let r=await this.demuxer.readingMutex.acquire();try{for(;;){let s=Q(this.demuxer.loadedSamples,e,n=>n.timestamp);if(s===-1&&this.demuxer.loadedSamples.length>0)return null;if(this.demuxer.lastSampleLoaded)return this.getPacketAtIndex(s,t);if(s>=0&&s+1<this.demuxer.loadedSamples.length)return this.getPacketAtIndex(s,t);await this.demuxer.advanceReader()}}finally{r()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var ht=class{},Ms=class extends ht{async _getMajorBrand(e){let t=e._reader.requestSlice(0,12);return t instanceof Promise&&(t=await t),!t||(t.skip(4),de(t,4)!=="ftyp")?null:de(t,4)}_createDemuxer(e){return new Ro(e)}},Vo=class extends Ms{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},Wo=class extends Ms{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},Bs=class extends ht{async isSupportedEBMLOfDocType(e,t){let r=e._reader.requestSlice(0,ct);if(r instanceof Promise&&(r=await r),!r)return!1;let s=_l(r);if(s===null||s<1||s>8||J(r,s)!==I.EBML)return!1;let o=Sl(r);if(o===null)return!1;let a=e._reader.requestSlice(r.filePos,o);if(a instanceof Promise&&(a=await a),!a)return!1;let c=r.filePos;for(;a.filePos<=c+o-Ve;){let l=lt(a);if(!l)break;let{id:u,size:h}=l,d=a.filePos;if(h===null)return!1;switch(u){case I.EBMLVersion:if(J(a,h)!==1)return!1;break;case I.EBMLReadVersion:if(J(a,h)!==1)return!1;break;case I.DocType:if(ar(a,h)!==t)return!1;break;case I.DocTypeVersion:if(J(a,h)>4)return!1;break}a.filePos=d+h}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new Uo(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},Ho=class extends Bs{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},jo=class extends ht{async _canReadInput(e){let t=e._reader.requestSlice(0,10);if(t instanceof Promise&&(t=await t),!t)return!1;let r=0,s=!1;for(;;){let l=e._reader.requestSlice(r,bi);if(l instanceof Promise&&(l=await l),!l)break;let u=ks(l);if(!u)break;s=!0,r=l.filePos+u.size}let n=await Ts(e._reader,r,r+4096);if(!n)return!1;if(s)return!0;r=n.startPos+=n.header.totalSize;let o=await Ts(e._reader,r,r+4);if(!o)return!1;let a=n.header,c=o.header;return!(a.channel!==c.channel||a.sampleRate!==c.sampleRate)}_createDemuxer(e){return new Go(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},$o=class extends ht{async _canReadInput(e){let t=e._reader.requestSlice(0,12);if(t instanceof Promise&&(t=await t),!t)return!1;let r=de(t,4);return r!=="RIFF"&&r!=="RIFX"&&r!=="RF64"?!1:(t.skip(4),de(t,4)==="WAVE")}_createDemuxer(e){return new Fo(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},qo=class extends ht{async _canReadInput(e){let t=e._reader.requestSlice(0,4);return t instanceof Promise&&(t=await t),t?de(t,4)==="OggS":!1}_createDemuxer(e){return new No(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},Xo=class extends ht{async _canReadInput(e){let t=e._reader.requestSliceRange(0,vi,Pi);if(t instanceof Promise&&(t=await t),!t)return!1;let r=Is(t);if(!r||(t=e._reader.requestSliceRange(r.frameLength,vi,Pi),t instanceof Promise&&(t=await t),!t))return!1;let s=Is(t);return s?r.objectType===s.objectType&&r.samplingFrequencyIndex===s.samplingFrequencyIndex&&r.channelConfiguration===s.channelConfiguration:!1}_createDemuxer(e){return new Lo(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}},sm=new Vo,nm=new Wo,om=new Bs,am=new Ho,cm=new jo,lm=new $o,um=new qo,hm=new Xo,lr=[sm,nm,om,am,lm,um,cm,hm];var _t=class{constructor(e){if(this._demuxerPromise=null,this._format=null,!e||typeof e!="object")throw new TypeError("options must be an object.");if(!Array.isArray(e.formats)||e.formats.some(t=>!(t instanceof ht)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof Ur))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._reader=new _o(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{this._reader.fileSize=await this._source.getSizeOrNull();for(let e of this._formats)if(await e._canReadInput(this))return this._format=e,e._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),k(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter(t=>t.isVideoTrack())}async getAudioTracks(){return(await this.getTracks()).filter(t=>t.isAudioTrack())}async getPrimaryVideoTrack(){return(await this.getTracks()).find(t=>t.isVideoTrack())??null}async getPrimaryAudioTrack(){return(await this.getTracks()).find(t=>t.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}};var Yo=class{count=0;#e=new Map;register(e,t){this.#e.set(e,t)}unregister(e){this.#e.delete(e)}dispatch(e,t){this.#e.get(e)?.(t)}};var dm=i=>ro.host(e=>({async world(){i.count++}}));async function zr(i){return i instanceof Blob?new Es(i):new As(i)}var Ko=class{machina;thread;static async setup(e){let t=new Yo,r=await ro.thread({label:"OmnitoolDriver",workerUrl:e?.workerUrl??"/node_modules/@omnimedia/omnitool/x/driver/driver.bundle.min.js",setupHost:dm(t)});return new this(t,r)}constructor(e,t){this.machina=e,this.thread=t}async hello(){return this.thread.work.hello()}async getAudioDuration(e){return await(await new _t({source:await zr(e),formats:lr}).getPrimaryAudioTrack())?.computeDuration()}async getVideoDuration(e){return await(await new _t({source:await zr(e),formats:lr}).getPrimaryVideoTrack())?.computeDuration()}decodeVideo(e){let t=null,r=new TransformStream({async transform(s,n){let o=await e.onFrame?.(s)??s;t?.close(),n.enqueue(o),t=o}});return this.thread.work.decodeVideo[Pr]({transfer:[r.writable]})({source:e.source,video:r.writable,start:e.start,end:e.end}),r.readable}decodeAudio(e){let t=new TransformStream;return this.thread.work.decodeAudio[Pr]({transfer:[t.writable]})({source:e.source,audio:t.writable,start:e.start,end:e.end}),t.readable}async encode({video:e,audio:t,config:r}){let n=await(await window.showSaveFilePicker()).createWritable(),o=new WritableStream({async write(a){await n.write(a)},async close(){await n.close()}});return await this.thread.work.encode[Pr]({transfer:[t??[],e??[],o]})({video:e,audio:t,config:r,bridge:o})}async composite(e){let t=this.#e(e);return await this.thread.work.composite[Pr]({transfer:t})(e)}#e(e){let t=[],r=s=>{if(Array.isArray(s))for(let n of s)r(n);else s&&typeof s=="object"&&"kind"in s&&s.kind==="image"&&s.frame instanceof VideoFrame&&t.push(s.frame)};return r(e),t}};function Se(i,e,t,r){return new(t||(t=Promise))(function(s,n){function o(l){try{c(r.next(l))}catch(u){n(u)}}function a(l){try{c(r.throw(l))}catch(u){n(u)}}function c(l){var u;l.done?s(l.value):(u=l.value,u instanceof t?u:new t(function(h){h(u)})).then(o,a)}c((r=r.apply(i,e||[])).next())})}var Gr=class{constructor(){this.listeners={}}on(e,t,r){if(this.listeners[e]||(this.listeners[e]=new Set),this.listeners[e].add(t),r?.once){let s=()=>{this.un(e,s),this.un(e,t)};return this.on(e,s),s}return()=>this.un(e,t)}un(e,t){var r;(r=this.listeners[e])===null||r===void 0||r.delete(t)}once(e,t){return this.on(e,t,{once:!0})}unAll(){this.listeners={}}emit(e,...t){this.listeners[e]&&this.listeners[e].forEach(r=>r(...t))}},Zo={decode:function(i,e){return Se(this,void 0,void 0,function*(){let t=new AudioContext({sampleRate:e});return t.decodeAudioData(i).finally(()=>t.close())})},createBuffer:function(i,e){return typeof i[0]=="number"&&(i=[i]),function(t){let r=t[0];if(r.some(s=>s>1||s<-1)){let s=r.length,n=0;for(let o=0;o<s;o++){let a=Math.abs(r[o]);a>n&&(n=a)}for(let o of t)for(let a=0;a<s;a++)o[a]/=n}}(i),{duration:e,length:i[0].length,sampleRate:i[0].length/e,numberOfChannels:i.length,getChannelData:t=>i?.[t],copyFromChannel:AudioBuffer.prototype.copyFromChannel,copyToChannel:AudioBuffer.prototype.copyToChannel}}};function mm(i,e){let t=e.xmlns?document.createElementNS(e.xmlns,i):document.createElement(i);for(let[r,s]of Object.entries(e))if(r==="children"&&s)for(let[n,o]of Object.entries(s))o instanceof Node?t.appendChild(o):typeof o=="string"?t.appendChild(document.createTextNode(o)):t.appendChild(mm(n,o));else r==="style"?Object.assign(t.style,s):r==="textContent"?t.textContent=s:t.setAttribute(r,s.toString());return t}function fm(i,e,t){let r=mm(i,e||{});return t?.appendChild(r),r}var $_=Object.freeze({__proto__:null,createElement:fm,default:fm}),q_={fetchBlob:function(i,e,t){return Se(this,void 0,void 0,function*(){let r=yield fetch(i,t);if(r.status>=400)throw new Error(`Failed to fetch ${i}: ${r.status} (${r.statusText})`);return function(s,n){Se(this,void 0,void 0,function*(){if(!s.body||!s.headers)return;let o=s.body.getReader(),a=Number(s.headers.get("Content-Length"))||0,c=0,l=h=>Se(this,void 0,void 0,function*(){c+=h?.length||0;let d=Math.round(c/a*100);n(d)}),u=()=>Se(this,void 0,void 0,function*(){let h;try{h=yield o.read()}catch{return}h.done||(l(h.value),yield u())});u()})}(r.clone(),e),r.blob()})}},Nl=class extends Gr{constructor(e){super(),this.isExternalMedia=!1,e.media?(this.media=e.media,this.isExternalMedia=!0):this.media=document.createElement("audio"),e.mediaControls&&(this.media.controls=!0),e.autoplay&&(this.media.autoplay=!0),e.playbackRate!=null&&this.onMediaEvent("canplay",()=>{e.playbackRate!=null&&(this.media.playbackRate=e.playbackRate)},{once:!0})}onMediaEvent(e,t,r){return this.media.addEventListener(e,t,r),()=>this.media.removeEventListener(e,t,r)}getSrc(){return this.media.currentSrc||this.media.src||""}revokeSrc(){let e=this.getSrc();e.startsWith("blob:")&&URL.revokeObjectURL(e)}canPlayType(e){return this.media.canPlayType(e)!==""}setSrc(e,t){let r=this.getSrc();if(e&&r===e)return;this.revokeSrc();let s=t instanceof Blob&&(this.canPlayType(t.type)||!e)?URL.createObjectURL(t):e;if(r&&this.media.removeAttribute("src"),s||e)try{this.media.src=s}catch{this.media.src=e}}destroy(){this.isExternalMedia||(this.media.pause(),this.media.remove(),this.revokeSrc(),this.media.removeAttribute("src"),this.media.load())}setMediaElement(e){this.media=e}play(){return Se(this,void 0,void 0,function*(){return this.media.play()})}pause(){this.media.pause()}isPlaying(){return!this.media.paused&&!this.media.ended}setTime(e){this.media.currentTime=Math.max(0,Math.min(e,this.getDuration()))}getDuration(){return this.media.duration}getCurrentTime(){return this.media.currentTime}getVolume(){return this.media.volume}setVolume(e){this.media.volume=e}getMuted(){return this.media.muted}setMuted(e){this.media.muted=e}getPlaybackRate(){return this.media.playbackRate}isSeeking(){return this.media.seeking}setPlaybackRate(e,t){t!=null&&(this.media.preservesPitch=t),this.media.playbackRate=e}getMediaElement(){return this.media}setSinkId(e){return this.media.setSinkId(e)}},Ds=class i extends Gr{constructor(e,t){super(),this.timeouts=[],this.isScrollable=!1,this.audioData=null,this.resizeObserver=null,this.lastContainerWidth=0,this.isDragging=!1,this.subscriptions=[],this.unsubscribeOnScroll=[],this.subscriptions=[],this.options=e;let r=this.parentFromOptionsContainer(e.container);this.parent=r;let[s,n]=this.initHtml();r.appendChild(s),this.container=s,this.scrollContainer=n.querySelector(".scroll"),this.wrapper=n.querySelector(".wrapper"),this.canvasWrapper=n.querySelector(".canvases"),this.progressWrapper=n.querySelector(".progress"),this.cursor=n.querySelector(".cursor"),t&&n.appendChild(t),this.initEvents()}parentFromOptionsContainer(e){let t;if(typeof e=="string"?t=document.querySelector(e):e instanceof HTMLElement&&(t=e),!t)throw new Error("Container not found");return t}initEvents(){let e=t=>{let r=this.wrapper.getBoundingClientRect(),s=t.clientX-r.left,n=t.clientY-r.top;return[s/r.width,n/r.height]};if(this.wrapper.addEventListener("click",t=>{let[r,s]=e(t);this.emit("click",r,s)}),this.wrapper.addEventListener("dblclick",t=>{let[r,s]=e(t);this.emit("dblclick",r,s)}),this.options.dragToSeek!==!0&&typeof this.options.dragToSeek!="object"||this.initDrag(),this.scrollContainer.addEventListener("scroll",()=>{let{scrollLeft:t,scrollWidth:r,clientWidth:s}=this.scrollContainer,n=t/r,o=(t+s)/r;this.emit("scroll",n,o,t,t+s)}),typeof ResizeObserver=="function"){let t=this.createDelay(100);this.resizeObserver=new ResizeObserver(()=>{t().then(()=>this.onContainerResize()).catch(()=>{})}),this.resizeObserver.observe(this.scrollContainer)}}onContainerResize(){let e=this.parent.clientWidth;e===this.lastContainerWidth&&this.options.height!=="auto"||(this.lastContainerWidth=e,this.reRender())}initDrag(){this.subscriptions.push(function(e,t,r,s,n=3,o=0,a=100){if(!e)return()=>{};let c=matchMedia("(pointer: coarse)").matches,l=()=>{},u=h=>{if(h.button!==o)return;h.preventDefault(),h.stopPropagation();let d=h.clientX,f=h.clientY,m=!1,p=Date.now(),g=S=>{if(S.preventDefault(),S.stopPropagation(),c&&Date.now()-p<a)return;let T=S.clientX,v=S.clientY,M=T-d,P=v-f;if(m||Math.abs(M)>n||Math.abs(P)>n){let C=e.getBoundingClientRect(),{left:E,top:D}=C;m||(r?.(d-E,f-D),m=!0),t(M,P,T-E,v-D),d=T,f=v}},y=S=>{if(m){let T=S.clientX,v=S.clientY,M=e.getBoundingClientRect(),{left:P,top:C}=M;s?.(T-P,v-C)}l()},x=S=>{S.relatedTarget&&S.relatedTarget!==document.documentElement||y(S)},w=S=>{m&&(S.stopPropagation(),S.preventDefault())},_=S=>{m&&S.preventDefault()};document.addEventListener("pointermove",g),document.addEventListener("pointerup",y),document.addEventListener("pointerout",x),document.addEventListener("pointercancel",x),document.addEventListener("touchmove",_,{passive:!1}),document.addEventListener("click",w,{capture:!0}),l=()=>{document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",y),document.removeEventListener("pointerout",x),document.removeEventListener("pointercancel",x),document.removeEventListener("touchmove",_),setTimeout(()=>{document.removeEventListener("click",w,{capture:!0})},10)}};return e.addEventListener("pointerdown",u),()=>{l(),e.removeEventListener("pointerdown",u)}}(this.wrapper,(e,t,r)=>{this.emit("drag",Math.max(0,Math.min(1,r/this.wrapper.getBoundingClientRect().width)))},e=>{this.isDragging=!0,this.emit("dragstart",Math.max(0,Math.min(1,e/this.wrapper.getBoundingClientRect().width)))},e=>{this.isDragging=!1,this.emit("dragend",Math.max(0,Math.min(1,e/this.wrapper.getBoundingClientRect().width)))}))}getHeight(e,t){var r;let s=((r=this.audioData)===null||r===void 0?void 0:r.numberOfChannels)||1;if(e==null)return 128;if(!isNaN(Number(e)))return Number(e);if(e==="auto"){let n=this.parent.clientHeight||128;return t?.every(o=>!o.overlay)?n/s:n}return 128}initHtml(){let e=document.createElement("div"),t=e.attachShadow({mode:"open"}),r=this.options.cspNonce&&typeof this.options.cspNonce=="string"?this.options.cspNonce.replace(/"/g,""):"";return t.innerHTML=`
|
|
576
|
+
<style${r?` nonce="${r}"`:""}>
|
|
9
577
|
:host {
|
|
10
578
|
user-select: none;
|
|
11
579
|
min-width: 1px;
|
|
@@ -76,7 +644,7 @@ function un(r,e){return{error:t=>r.error({...e,...t}),rpcRequest:t=>r.rpcRequest
|
|
|
76
644
|
<div class="cursor" part="cursor"></div>
|
|
77
645
|
</div>
|
|
78
646
|
</div>
|
|
79
|
-
`,[e,t]}setOptions(e){if(this.options.container!==e.container){let t=this.parentFromOptionsContainer(e.container);t.appendChild(this.container),this.parent=t}e.dragToSeek!==!0&&typeof this.options.dragToSeek!="object"||this.initDrag(),this.options=e,this.reRender()}getWrapper(){return this.wrapper}getWidth(){return this.scrollContainer.clientWidth}getScroll(){return this.scrollContainer.scrollLeft}setScroll(e){this.scrollContainer.scrollLeft=e}setScrollPercentage(e){let{scrollWidth:t}=this.scrollContainer,n=t*e;this.setScroll(n)}destroy(){var e,t;this.subscriptions.forEach(n=>n()),this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.unsubscribeOnScroll)===null||t===void 0||t.forEach(n=>n()),this.unsubscribeOnScroll=[]}createDelay(e=10){let t,n,s=()=>{t&&clearTimeout(t),n&&n()};return this.timeouts.push(s),()=>new Promise((a,i)=>{s(),n=i,t=setTimeout(()=>{t=void 0,n=void 0,a()},e)})}convertColorValues(e){if(!Array.isArray(e))return e||"";if(e.length<2)return e[0]||"";let t=document.createElement("canvas"),n=t.getContext("2d"),s=t.height*(window.devicePixelRatio||1),a=n.createLinearGradient(0,0,0,s),i=1/(e.length-1);return e.forEach((o,c)=>{let l=c*i;a.addColorStop(l,o)}),a}getPixelRatio(){return Math.max(1,window.devicePixelRatio||1)}renderBarWaveform(e,t,n,s){let a=e[0],i=e[1]||e[0],o=a.length,{width:c,height:l}=n.canvas,u=l/2,d=this.getPixelRatio(),f=t.barWidth?t.barWidth*d:1,m=t.barGap?t.barGap*d:t.barWidth?f/2:0,h=t.barRadius||0,g=c/(f+m)/o,y=h&&"roundRect"in n?"roundRect":"rect";n.beginPath();let S=0,p=0,w=0;for(let k=0;k<=o;k++){let x=Math.round(k*g);if(x>S){let F=Math.round(p*u*s),A=F+Math.round(w*u*s)||1,_=u-F;t.barAlign==="top"?_=0:t.barAlign==="bottom"&&(_=l-A),n[y](S*(f+m),_,f,A,h),S=x,p=0,w=0}let C=Math.abs(a[k]||0),v=Math.abs(i[k]||0);C>p&&(p=C),v>w&&(w=v)}n.fill(),n.closePath()}renderLineWaveform(e,t,n,s){let a=i=>{let o=e[i]||e[0],c=o.length,{height:l}=n.canvas,u=l/2,d=n.canvas.width/c;n.moveTo(0,u);let f=0,m=0;for(let h=0;h<=c;h++){let g=Math.round(h*d);if(g>f){let S=u+(Math.round(m*u*s)||1)*(i===0?-1:1);n.lineTo(f,S),f=g,m=0}let y=Math.abs(o[h]||0);y>m&&(m=y)}n.lineTo(f,u)};n.beginPath(),a(0),a(1),n.fill(),n.closePath()}renderWaveform(e,t,n){if(n.fillStyle=this.convertColorValues(t.waveColor),t.renderFunction)return void t.renderFunction(e,n);let s=t.barHeight||1;if(t.normalize){let a=Array.from(e[0]).reduce((i,o)=>Math.max(i,Math.abs(o)),0);s=a?1/a:1}t.barWidth||t.barGap||t.barAlign?this.renderBarWaveform(e,t,n,s):this.renderLineWaveform(e,t,n,s)}renderSingleCanvas(e,t,n,s,a,i,o){let c=this.getPixelRatio(),l=document.createElement("canvas");l.width=Math.round(n*c),l.height=Math.round(s*c),l.style.width=`${n}px`,l.style.height=`${s}px`,l.style.left=`${Math.round(a)}px`,i.appendChild(l);let u=l.getContext("2d");if(this.renderWaveform(e,t,u),l.width>0&&l.height>0){let d=l.cloneNode(),f=d.getContext("2d");f.drawImage(l,0,0),f.globalCompositeOperation="source-in",f.fillStyle=this.convertColorValues(t.progressColor),f.fillRect(0,0,l.width,l.height),o.appendChild(d)}}renderMultiCanvas(e,t,n,s,a,i){let o=this.getPixelRatio(),{clientWidth:c}=this.scrollContainer,l=n/o,u=Math.min(r.MAX_CANVAS_WIDTH,c,l),d={};if(t.barWidth||t.barGap){let y=t.barWidth||.5,S=y+(t.barGap||y/2);u%S!=0&&(u=Math.floor(u/S)*S)}if(u===0)return;let f=y=>{if(y<0||y>=m||d[y])return;d[y]=!0;let S=y*u,p=Math.min(l-S,u);if(t.barWidth||t.barGap){let k=t.barWidth||.5,x=k+(t.barGap||k/2);p=Math.floor(p/x)*x}if(p<=0)return;let w=e.map(k=>{let x=Math.floor(S/l*k.length),C=Math.floor((S+p)/l*k.length);return k.slice(x,C)});this.renderSingleCanvas(w,t,p,s,S,a,i)},m=Math.ceil(l/u);if(!this.isScrollable){for(let y=0;y<m;y++)f(y);return}let h=this.scrollContainer.scrollLeft/l,g=Math.floor(h*m);if(f(g-1),f(g),f(g+1),m>1){let y=this.on("scroll",()=>{let{scrollLeft:S}=this.scrollContainer,p=Math.floor(S/l*m);Object.keys(d).length>r.MAX_NODES&&(a.innerHTML="",i.innerHTML="",d={}),f(p-1),f(p),f(p+1)});this.unsubscribeOnScroll.push(y)}}renderChannel(e,t,n,s){var{overlay:a}=t,i=function(u,d){var f={};for(var m in u)Object.prototype.hasOwnProperty.call(u,m)&&d.indexOf(m)<0&&(f[m]=u[m]);if(u!=null&&typeof Object.getOwnPropertySymbols=="function"){var h=0;for(m=Object.getOwnPropertySymbols(u);h<m.length;h++)d.indexOf(m[h])<0&&Object.prototype.propertyIsEnumerable.call(u,m[h])&&(f[m[h]]=u[m[h]])}return f}(t,["overlay"]);let o=document.createElement("div"),c=this.getHeight(i.height,i.splitChannels);o.style.height=`${c}px`,a&&s>0&&(o.style.marginTop=`-${c}px`),this.canvasWrapper.style.minHeight=`${c}px`,this.canvasWrapper.appendChild(o);let l=o.cloneNode();this.progressWrapper.appendChild(l),this.renderMultiCanvas(e,i,n,c,o,l)}render(e){return H(this,void 0,void 0,function*(){var t;this.timeouts.forEach(c=>c()),this.timeouts=[],this.canvasWrapper.innerHTML="",this.progressWrapper.innerHTML="",this.options.width!=null&&(this.scrollContainer.style.width=typeof this.options.width=="number"?`${this.options.width}px`:this.options.width);let n=this.getPixelRatio(),s=this.scrollContainer.clientWidth,a=Math.ceil(e.duration*(this.options.minPxPerSec||0));this.isScrollable=a>s;let i=this.options.fillParent&&!this.isScrollable,o=(i?s:a)*n;if(this.wrapper.style.width=i?"100%":`${a}px`,this.scrollContainer.style.overflowX=this.isScrollable?"auto":"hidden",this.scrollContainer.classList.toggle("noScrollbar",!!this.options.hideScrollbar),this.cursor.style.backgroundColor=`${this.options.cursorColor||this.options.progressColor}`,this.cursor.style.width=`${this.options.cursorWidth}px`,this.audioData=e,this.emit("render"),this.options.splitChannels)for(let c=0;c<e.numberOfChannels;c++){let l=Object.assign(Object.assign({},this.options),(t=this.options.splitChannels)===null||t===void 0?void 0:t[c]);this.renderChannel([e.getChannelData(c)],l,o,c)}else{let c=[e.getChannelData(0)];e.numberOfChannels>1&&c.push(e.getChannelData(1)),this.renderChannel(c,this.options,o,0)}Promise.resolve().then(()=>this.emit("rendered"))})}reRender(){if(this.unsubscribeOnScroll.forEach(n=>n()),this.unsubscribeOnScroll=[],!this.audioData)return;let{scrollWidth:e}=this.scrollContainer,{right:t}=this.progressWrapper.getBoundingClientRect();if(this.render(this.audioData),this.isScrollable&&e!==this.scrollContainer.scrollWidth){let{right:n}=this.progressWrapper.getBoundingClientRect(),s=n-t;s*=2,s=s<0?Math.floor(s):Math.ceil(s),s/=2,this.scrollContainer.scrollLeft+=s}}zoom(e){this.options.minPxPerSec=e,this.reRender()}scrollIntoView(e,t=!1){let{scrollLeft:n,scrollWidth:s,clientWidth:a}=this.scrollContainer,i=e*s,o=n,c=n+a,l=a/2;if(this.isDragging)i+30>c?this.scrollContainer.scrollLeft+=30:i-30<o&&(this.scrollContainer.scrollLeft-=30);else{(i<o||i>c)&&(this.scrollContainer.scrollLeft=i-(this.options.autoCenter?l:0));let u=i-n-l;t&&this.options.autoCenter&&u>0&&(this.scrollContainer.scrollLeft+=Math.min(u,10))}{let u=this.scrollContainer.scrollLeft,d=u/s,f=(u+a)/s;this.emit("scroll",d,f,u,u+a)}}renderProgress(e,t){if(isNaN(e))return;let n=100*e;this.canvasWrapper.style.clipPath=`polygon(${n}% 0%, 100% 0%, 100% 100%, ${n}% 100%)`,this.progressWrapper.style.width=`${n}%`,this.cursor.style.left=`${n}%`,this.cursor.style.transform=`translateX(-${Math.round(n)===100?this.options.cursorWidth:0}px)`,this.isScrollable&&this.options.autoScroll&&this.scrollIntoView(e,t)}exportImage(e,t,n){return H(this,void 0,void 0,function*(){let s=this.canvasWrapper.querySelectorAll("canvas");if(!s.length)throw new Error("No waveform data");if(n==="dataURL"){let a=Array.from(s).map(i=>i.toDataURL(e,t));return Promise.resolve(a)}return Promise.all(Array.from(s).map(a=>new Promise((i,o)=>{a.toBlob(c=>{c?i(c):o(new Error("Could not export image"))},e,t)})))})}};jt.MAX_CANVAS_WIDTH=8e3,jt.MAX_NODES=10;var as=class extends Ge{constructor(){super(...arguments),this.unsubscribe=()=>{}}start(){this.unsubscribe=this.on("tick",()=>{requestAnimationFrame(()=>{this.emit("tick")})}),this.emit("tick")}stop(){this.unsubscribe()}destroy(){this.unsubscribe()}},qt=class extends Ge{constructor(e=new AudioContext){super(),this.bufferNode=null,this.playStartTime=0,this.playedDuration=0,this._muted=!1,this._playbackRate=1,this._duration=void 0,this.buffer=null,this.currentSrc="",this.paused=!0,this.crossOrigin=null,this.seeking=!1,this.autoplay=!1,this.addEventListener=this.on,this.removeEventListener=this.un,this.audioContext=e,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}load(){return H(this,void 0,void 0,function*(){})}get src(){return this.currentSrc}set src(e){if(this.currentSrc=e,this._duration=void 0,!e)return this.buffer=null,void this.emit("emptied");fetch(e).then(t=>{if(t.status>=400)throw new Error(`Failed to fetch ${e}: ${t.status} (${t.statusText})`);return t.arrayBuffer()}).then(t=>this.currentSrc!==e?null:this.audioContext.decodeAudioData(t)).then(t=>{this.currentSrc===e&&(this.buffer=t,this.emit("loadedmetadata"),this.emit("canplay"),this.autoplay&&this.play())})}_play(){var e;if(!this.paused)return;this.paused=!1,(e=this.bufferNode)===null||e===void 0||e.disconnect(),this.bufferNode=this.audioContext.createBufferSource(),this.buffer&&(this.bufferNode.buffer=this.buffer),this.bufferNode.playbackRate.value=this._playbackRate,this.bufferNode.connect(this.gainNode);let t=this.playedDuration*this._playbackRate;(t>=this.duration||t<0)&&(t=0,this.playedDuration=0),this.bufferNode.start(this.audioContext.currentTime,t),this.playStartTime=this.audioContext.currentTime,this.bufferNode.onended=()=>{this.currentTime>=this.duration&&(this.pause(),this.emit("ended"))}}_pause(){var e;this.paused=!0,(e=this.bufferNode)===null||e===void 0||e.stop(),this.playedDuration+=this.audioContext.currentTime-this.playStartTime}play(){return H(this,void 0,void 0,function*(){this.paused&&(this._play(),this.emit("play"))})}pause(){this.paused||(this._pause(),this.emit("pause"))}stopAt(e){let t=e-this.currentTime,n=this.bufferNode;n?.stop(this.audioContext.currentTime+t),n?.addEventListener("ended",()=>{n===this.bufferNode&&(this.bufferNode=null,this.pause())},{once:!0})}setSinkId(e){return H(this,void 0,void 0,function*(){return this.audioContext.setSinkId(e)})}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this.bufferNode&&(this.bufferNode.playbackRate.value=e)}get currentTime(){return(this.paused?this.playedDuration:this.playedDuration+(this.audioContext.currentTime-this.playStartTime))*this._playbackRate}set currentTime(e){let t=!this.paused;t&&this._pause(),this.playedDuration=e/this._playbackRate,t&&this._play(),this.emit("seeking"),this.emit("timeupdate")}get duration(){var e,t;return(e=this._duration)!==null&&e!==void 0?e:((t=this.buffer)===null||t===void 0?void 0:t.duration)||0}set duration(e){this._duration=e}get volume(){return this.gainNode.gain.value}set volume(e){this.gainNode.gain.value=e,this.emit("volumechange")}get muted(){return this._muted}set muted(e){this._muted!==e&&(this._muted=e,this._muted?this.gainNode.disconnect():this.gainNode.connect(this.audioContext.destination))}canPlayType(e){return/^(audio|video)\//.test(e)}getGainNode(){return this.gainNode}getChannelData(){let e=[];if(!this.buffer)return e;let t=this.buffer.numberOfChannels;for(let n=0;n<t;n++)e.push(this.buffer.getChannelData(n));return e}},Oa={waveColor:"#999",progressColor:"#555",cursorWidth:1,minPxPerSec:0,fillParent:!0,interact:!0,dragToSeek:!1,autoScroll:!0,autoCenter:!0,sampleRate:8e3},wt=class r extends is{static create(e){return new r(e)}constructor(e){let t=e.media||(e.backend==="WebAudio"?new qt:void 0);super({media:t,mediaControls:e.mediaControls,autoplay:e.autoplay,playbackRate:e.audioRate}),this.plugins=[],this.decodedData=null,this.stopAtPosition=null,this.subscriptions=[],this.mediaSubscriptions=[],this.abortController=null,this.options=Object.assign({},Oa,e),this.timer=new as;let n=t?void 0:this.getMediaElement();this.renderer=new jt(this.options,n),this.initPlayerEvents(),this.initRendererEvents(),this.initTimerEvents(),this.initPlugins();let s=this.options.url||this.getSrc()||"";Promise.resolve().then(()=>{this.emit("init");let{peaks:a,duration:i}=this.options;(s||a&&i)&&this.load(s,a,i).catch(()=>null)})}updateProgress(e=this.getCurrentTime()){return this.renderer.renderProgress(e/this.getDuration(),this.isPlaying()),e}initTimerEvents(){this.subscriptions.push(this.timer.on("tick",()=>{if(!this.isSeeking()){let e=this.updateProgress();this.emit("timeupdate",e),this.emit("audioprocess",e),this.stopAtPosition!=null&&this.isPlaying()&&e>=this.stopAtPosition&&this.pause()}}))}initPlayerEvents(){this.isPlaying()&&(this.emit("play"),this.timer.start()),this.mediaSubscriptions.push(this.onMediaEvent("timeupdate",()=>{let e=this.updateProgress();this.emit("timeupdate",e)}),this.onMediaEvent("play",()=>{this.emit("play"),this.timer.start()}),this.onMediaEvent("pause",()=>{this.emit("pause"),this.timer.stop(),this.stopAtPosition=null}),this.onMediaEvent("emptied",()=>{this.timer.stop(),this.stopAtPosition=null}),this.onMediaEvent("ended",()=>{this.emit("timeupdate",this.getDuration()),this.emit("finish"),this.stopAtPosition=null}),this.onMediaEvent("seeking",()=>{this.emit("seeking",this.getCurrentTime())}),this.onMediaEvent("error",()=>{var e;this.emit("error",(e=this.getMediaElement().error)!==null&&e!==void 0?e:new Error("Media error")),this.stopAtPosition=null}))}initRendererEvents(){this.subscriptions.push(this.renderer.on("click",(e,t)=>{this.options.interact&&(this.seekTo(e),this.emit("interaction",e*this.getDuration()),this.emit("click",e,t))}),this.renderer.on("dblclick",(e,t)=>{this.emit("dblclick",e,t)}),this.renderer.on("scroll",(e,t,n,s)=>{let a=this.getDuration();this.emit("scroll",e*a,t*a,n,s)}),this.renderer.on("render",()=>{this.emit("redraw")}),this.renderer.on("rendered",()=>{this.emit("redrawcomplete")}),this.renderer.on("dragstart",e=>{this.emit("dragstart",e)}),this.renderer.on("dragend",e=>{this.emit("dragend",e)}));{let e;this.subscriptions.push(this.renderer.on("drag",t=>{if(!this.options.interact)return;let n;this.renderer.renderProgress(t),clearTimeout(e),this.isPlaying()?n=0:this.options.dragToSeek===!0?n=200:typeof this.options.dragToSeek=="object"&&this.options.dragToSeek!==void 0&&(n=this.options.dragToSeek.debounceTime),e=setTimeout(()=>{this.seekTo(t)},n),this.emit("interaction",t*this.getDuration()),this.emit("drag",t)}))}}initPlugins(){var e;!((e=this.options.plugins)===null||e===void 0)&&e.length&&this.options.plugins.forEach(t=>{this.registerPlugin(t)})}unsubscribePlayerEvents(){this.mediaSubscriptions.forEach(e=>e()),this.mediaSubscriptions=[]}setOptions(e){this.options=Object.assign({},this.options,e),e.duration&&!e.peaks&&(this.decodedData=on.createBuffer(this.exportPeaks(),e.duration)),e.peaks&&e.duration&&(this.decodedData=on.createBuffer(e.peaks,e.duration)),this.renderer.setOptions(this.options),e.audioRate&&this.setPlaybackRate(e.audioRate),e.mediaControls!=null&&(this.getMediaElement().controls=e.mediaControls)}registerPlugin(e){if(this.plugins.includes(e))return e;e._init(this),this.plugins.push(e);let t=e.once("destroy",()=>{this.plugins=this.plugins.filter(n=>n!==e),this.subscriptions=this.subscriptions.filter(n=>n!==t)});return this.subscriptions.push(t),e}unregisterPlugin(e){this.plugins=this.plugins.filter(t=>t!==e),e.destroy()}getWrapper(){return this.renderer.getWrapper()}getWidth(){return this.renderer.getWidth()}getScroll(){return this.renderer.getScroll()}setScroll(e){return this.renderer.setScroll(e)}setScrollTime(e){let t=e/this.getDuration();this.renderer.setScrollPercentage(t)}getActivePlugins(){return this.plugins}loadAudio(e,t,n,s){return H(this,void 0,void 0,function*(){var a;if(this.emit("load",e),!this.options.media&&this.isPlaying()&&this.pause(),this.decodedData=null,this.stopAtPosition=null,!t&&!n){let o=this.options.fetchParams||{};window.AbortController&&!o.signal&&(this.abortController=new AbortController,o.signal=(a=this.abortController)===null||a===void 0?void 0:a.signal);let c=u=>this.emit("loading",u);t=yield Ra.fetchBlob(e,c,o);let l=this.options.blobMimeType;l&&(t=new Blob([t],{type:l}))}this.setSrc(e,t);let i=yield new Promise(o=>{let c=s||this.getDuration();c?o(c):this.mediaSubscriptions.push(this.onMediaEvent("loadedmetadata",()=>o(this.getDuration()),{once:!0}))});if(!e&&!t){let o=this.getMediaElement();o instanceof qt&&(o.duration=i)}if(n)this.decodedData=on.createBuffer(n,i||0);else if(t){let o=yield t.arrayBuffer();this.decodedData=yield on.decode(o,this.options.sampleRate)}this.decodedData&&(this.emit("decode",this.getDuration()),this.renderer.render(this.decodedData)),this.emit("ready",this.getDuration())})}load(e,t,n){return H(this,void 0,void 0,function*(){try{return yield this.loadAudio(e,void 0,t,n)}catch(s){throw this.emit("error",s),s}})}loadBlob(e,t,n){return H(this,void 0,void 0,function*(){try{return yield this.loadAudio("",e,t,n)}catch(s){throw this.emit("error",s),s}})}zoom(e){if(!this.decodedData)throw new Error("No audio loaded");this.renderer.zoom(e),this.emit("zoom",e)}getDecodedData(){return this.decodedData}exportPeaks({channels:e=2,maxLength:t=8e3,precision:n=1e4}={}){if(!this.decodedData)throw new Error("The audio has not been decoded yet");let s=Math.min(e,this.decodedData.numberOfChannels),a=[];for(let i=0;i<s;i++){let o=this.decodedData.getChannelData(i),c=[],l=o.length/t;for(let u=0;u<t;u++){let d=o.slice(Math.floor(u*l),Math.ceil((u+1)*l)),f=0;for(let m=0;m<d.length;m++){let h=d[m];Math.abs(h)>Math.abs(f)&&(f=h)}c.push(Math.round(f*n)/n)}a.push(c)}return a}getDuration(){let e=super.getDuration()||0;return e!==0&&e!==1/0||!this.decodedData||(e=this.decodedData.duration),e}toggleInteraction(e){this.options.interact=e}setTime(e){this.stopAtPosition=null,super.setTime(e),this.updateProgress(e),this.emit("timeupdate",e)}seekTo(e){let t=this.getDuration()*e;this.setTime(t)}play(e,t){let n=Object.create(null,{play:{get:()=>super.play}});return H(this,void 0,void 0,function*(){e!=null&&this.setTime(e);let s=yield n.play.call(this);return t!=null&&(this.media instanceof qt?this.media.stopAt(t):this.stopAtPosition=t),s})}playPause(){return H(this,void 0,void 0,function*(){return this.isPlaying()?this.pause():this.play()})}stop(){this.pause(),this.setTime(0)}skip(e){this.setTime(this.getCurrentTime()+e)}empty(){this.load("",[[0]],.001)}setMediaElement(e){this.unsubscribePlayerEvents(),super.setMediaElement(e),this.initPlayerEvents()}exportImage(){return H(this,arguments,void 0,function*(e="image/png",t=1,n="dataURL"){return this.renderer.exportImage(e,t,n)})}destroy(){var e;this.emit("destroy"),(e=this.abortController)===null||e===void 0||e.abort(),this.plugins.forEach(t=>t.destroy()),this.subscriptions.forEach(t=>t()),this.unsubscribePlayerEvents(),this.timer.destroy(),this.renderer.destroy(),super.destroy()}};wt.BasePlugin=class extends Ge{constructor(r){super(),this.subscriptions=[],this.isDestroyed=!1,this.options=r}onInit(){}_init(r){this.isDestroyed&&(this.subscriptions=[],this.isDestroyed=!1),this.wavesurfer=r,this.onInit()}destroy(){this.emit("destroy"),this.subscriptions.forEach(r=>r()),this.subscriptions=[],this.isDestroyed=!0,this.wavesurfer=void 0}},wt.dom=Ba;var cn=class r{wavesurfer;constructor(e,t,n){this.wavesurfer=wt.create({container:t,waveColor:"rgb(200, 0, 200)",progressColor:"rgb(100, 0, 100)",barWidth:10,barRadius:10,barGap:2,peaks:[e],duration:n})}static async init(e,t){let n=await an.driver,s=n.decodeAudio({source:e}).getReader(),a=[],i=[],o=1024,c=await n.getAudioDuration(e);for(;;){let{done:l,value:u}=await s.read();if(l)break;let d=u.numberOfFrames,f=new Float32Array(d);u.copyTo(f,{planeIndex:0});for(let m=0;m<f.length;m++)if(i.push(f[m]),i.length>=o){let h=i.splice(0,o),g=Math.min(...h),y=Math.max(...h);a.push(g,y)}u.close()}return new r(a,t,c??0)}set width(e){this.wavesurfer.setOptions({width:e})}};async function Ni(){let r=document.querySelector(".waveform-demo"),e=document.querySelector(".width"),t=await cn.init("/assets/temp/gl.mp4",r);e.addEventListener("change",()=>{let n=+e.value;t.width=n})}var ln=class r{videoTrack;options;#e;#t=new Map;#r=[0,0];constructor(e,t){this.videoTrack=e,this.options=t,this.#e=new Mt(e,t.canvasSinkOptions)}static async init(e,t){let s=await new Ae({formats:xt,source:await Wt(e)}).getPrimaryVideoTrack();if(s)return new r(s,{frequency:t.frequency??1,canvasSinkOptions:t.canvasSinkOptions??{width:80,height:50,fit:"fill"},onChange:t.onChange});throw new Error("Source has no video track")}set frequency(e){e!==this.options.frequency&&(this.options.frequency=e,this.#a())}get frequency(){return this.options.frequency}#n([e,t]){let n=t-e;return[e-n,t+n]}async#o(){let[e,t]=this.#r,n=new Set,s=await this.videoTrack.computeDuration();for(let c=e;c<=t;c+=this.options.frequency)c>=0&&c<=s&&n.add(+c.toFixed(3));let a=[...n].filter(c=>!this.#t.has(c)),i=0;for await(let c of this.#e.canvasesAtTimestamps(a))if(c){let l=a[i++];this.#t.set(l,c)}for(let c of this.#t.keys())n.has(c)||this.#t.delete(c);let o=[...this.#t.entries()].map(([c,l])=>({time:c,canvas:l}));this.options.onChange(o)}set range(e){let t=this.#n(e);this.#r[0]===t[0]&&this.#r[1]===t[1]||(this.#r=t,this.#a())}#s=null;#i=!1;async#a(){if(this.#s){this.#i=!0;return}this.#s=this.#o(),await this.#s,this.#s=null,this.#i&&(this.#i=!1,await this.#a())}getThumbnail(e){return this.#t.get(e)}};async function Vi(r){let e=document.querySelector(".range"),t=document.querySelector(".range-view"),n=document.querySelector(".range-size"),s=document.querySelector(".frequency"),a=document.querySelector(".frequency-view"),i=document.querySelector("#filmstrip"),o=1e3/10/1e3,c=.5,l=await ln.init(r,{onChange(u){let d=u.sort((f,m)=>f.time-m.time);i.replaceChildren(...d.map(({time:f,canvas:m})=>za(f,m.canvas)))},frequency:o,canvasSinkOptions:{width:80,height:50,fit:"fill"}});n.addEventListener("change",()=>{c=+n.value;let[u,d]=[+e.value,+e.value+c];l.range=[u,d],t.textContent=`visible time range: [${u}, ${d}]`}),e.addEventListener("change",()=>{let[u,d]=[+e.value,+e.value+c];l.range=[u,d],t.textContent=`visible time range: [${u}, ${d}]`}),s.addEventListener("change",()=>{l.frequency=1e3/+s.value/1e3,a.textContent=`frame every ${l.frequency.toFixed(3)} second (${s.value} frames per second)`}),l.range=[10,10.5]}function za(r,e){let t=document.createElement("div");t.style.position="relative",t.style.display="inline-block",t.style.marginRight="4px",t.appendChild(e);let n=document.createElement("div");return n.textContent=`${r.toFixed(2)}s`,n.style.position="absolute",n.style.top="2px",n.style.right="4px",n.style.fontSize="10px",n.style.color="white",n.style.background="rgba(0,0,0,0.6)",n.style.padding="2px 4px",n.style.borderRadius="4px",n.style.pointerEvents="none",t.appendChild(n),t}async function Ui(r,e){let t=await e.arrayBuffer(),s=await new AudioContext({sampleRate:16e3}).decodeAudioData(t),a;if(s.numberOfChannels===2){let o=Math.sqrt(2),c=s.getChannelData(0),l=s.getChannelData(1);a=new Float32Array(c.length);for(let u=0;u<s.length;++u)a[u]=o*(c[u]+l[u])/2}else a=s.getChannelData(0);let i=await r.getAudioDuration(e);return{audio:a,duration:i}}async function Li({driver:r,spec:e,workerUrl:t,onLoading:n}){let s=Sn(),a=Sn(),i=await Je.thread({label:"OmnitoolSpeechTranscriber",workerUrl:t,setupHost:()=>({loading:async o=>n(o),deliverReport:async o=>s.pub(o),deliverTranscription:async o=>a.pub(o)})});return await i.work.prepare(e),{transcribe:Es(async o=>{let{source:c,language:l}=o,{audio:u,duration:d}=await Ui(r,c),f=_s(s(o.onReport),a(o.onTranscription)),m=await i.work.transcribe({duration:d,language:l,audio:u.buffer});return f(),m}),dispose:i.terminate()}}async function Hi(r){let e=await Li({driver:r,spec:{model:"onnx-community/whisper-tiny_timestamped",device:"webgpu",strideLength:5,chunkLength:30,dtype:"fp32"},workerUrl:new URL("/features/speech/transcribe/worker.bundle.min.js",import.meta.url),onLoading({progress:t,total:n}){console.log(t,n,"total")}});return{transcribe:async t=>{let n=await e.transcribe({source:t,language:"english",onReport(s){console.log("report",s)},onTranscription(s){console.log("transcript",s)}});console.log(n,"transcript result")}}}function os(r,e){let t={width:1920,height:1080},n=document.createElement("canvas");n.width=t.width,n.height=t.height;let s=n.getContext("2d");async function a(){let i=r.decodeVideo({source:e,async onFrame(c){let l=await r.composite([{kind:"image",frame:c},{kind:"text",content:"omnitool",fontSize:50,color:"green"}]);return c.close(),s?.drawImage(l,0,0),l}}),o=r.decodeAudio({source:e});await r.encode({video:i,audio:o,config:{audio:{codec:"opus",bitrate:128e3},video:{codec:"vp9",bitrate:1e6}}})}return{canvas:n,run:a}}var $t=await an.driver,Ma=document.querySelector(".results"),Na=document.querySelector(".fetch"),Va=document.querySelector(".import");Na?.addEventListener("click",Ha);Va?.addEventListener("click",La);Ni();var Ua=await Hi($t);await $t.thread.work.hello(),$t.machina.count===1?console.log("\u2705 driver works"):console.error("\u274C FAIL driver call didn't work");async function La(){let[r]=await window.showOpenFilePicker(),e=await r.getFile(),t=os($t,e);await Vi(e),Wi(t,r.name),await Ua.transcribe(e)}async function Ha(){let r=["/assets/temp/gl.mp4"];for(let e of r){let t=os($t,"/assets/temp/gl.mp4");Wi(t,e)}}async function Wi(r,e){let t=document.createElement("div");Ma.append(t);let n=document.createElement("p");n.textContent=e,t.append(n),t.append(r.canvas),await r.run()}
|
|
647
|
+
`,[e,t]}setOptions(e){if(this.options.container!==e.container){let t=this.parentFromOptionsContainer(e.container);t.appendChild(this.container),this.parent=t}e.dragToSeek!==!0&&typeof this.options.dragToSeek!="object"||this.initDrag(),this.options=e,this.reRender()}getWrapper(){return this.wrapper}getWidth(){return this.scrollContainer.clientWidth}getScroll(){return this.scrollContainer.scrollLeft}setScroll(e){this.scrollContainer.scrollLeft=e}setScrollPercentage(e){let{scrollWidth:t}=this.scrollContainer,r=t*e;this.setScroll(r)}destroy(){var e,t;this.subscriptions.forEach(r=>r()),this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.unsubscribeOnScroll)===null||t===void 0||t.forEach(r=>r()),this.unsubscribeOnScroll=[]}createDelay(e=10){let t,r,s=()=>{t&&clearTimeout(t),r&&r()};return this.timeouts.push(s),()=>new Promise((n,o)=>{s(),r=o,t=setTimeout(()=>{t=void 0,r=void 0,n()},e)})}convertColorValues(e){if(!Array.isArray(e))return e||"";if(e.length<2)return e[0]||"";let t=document.createElement("canvas"),r=t.getContext("2d"),s=t.height*(window.devicePixelRatio||1),n=r.createLinearGradient(0,0,0,s),o=1/(e.length-1);return e.forEach((a,c)=>{let l=c*o;n.addColorStop(l,a)}),n}getPixelRatio(){return Math.max(1,window.devicePixelRatio||1)}renderBarWaveform(e,t,r,s){let n=e[0],o=e[1]||e[0],a=n.length,{width:c,height:l}=r.canvas,u=l/2,h=this.getPixelRatio(),d=t.barWidth?t.barWidth*h:1,f=t.barGap?t.barGap*h:t.barWidth?d/2:0,m=t.barRadius||0,p=c/(d+f)/a,g=m&&"roundRect"in r?"roundRect":"rect";r.beginPath();let y=0,x=0,w=0;for(let _=0;_<=a;_++){let S=Math.round(_*p);if(S>y){let M=Math.round(x*u*s),P=M+Math.round(w*u*s)||1,C=u-M;t.barAlign==="top"?C=0:t.barAlign==="bottom"&&(C=l-P),r[g](y*(d+f),C,d,P,m),y=S,x=0,w=0}let T=Math.abs(n[_]||0),v=Math.abs(o[_]||0);T>x&&(x=T),v>w&&(w=v)}r.fill(),r.closePath()}renderLineWaveform(e,t,r,s){let n=o=>{let a=e[o]||e[0],c=a.length,{height:l}=r.canvas,u=l/2,h=r.canvas.width/c;r.moveTo(0,u);let d=0,f=0;for(let m=0;m<=c;m++){let p=Math.round(m*h);if(p>d){let y=u+(Math.round(f*u*s)||1)*(o===0?-1:1);r.lineTo(d,y),d=p,f=0}let g=Math.abs(a[m]||0);g>f&&(f=g)}r.lineTo(d,u)};r.beginPath(),n(0),n(1),r.fill(),r.closePath()}renderWaveform(e,t,r){if(r.fillStyle=this.convertColorValues(t.waveColor),t.renderFunction)return void t.renderFunction(e,r);let s=t.barHeight||1;if(t.normalize){let n=Array.from(e[0]).reduce((o,a)=>Math.max(o,Math.abs(a)),0);s=n?1/n:1}t.barWidth||t.barGap||t.barAlign?this.renderBarWaveform(e,t,r,s):this.renderLineWaveform(e,t,r,s)}renderSingleCanvas(e,t,r,s,n,o,a){let c=this.getPixelRatio(),l=document.createElement("canvas");l.width=Math.round(r*c),l.height=Math.round(s*c),l.style.width=`${r}px`,l.style.height=`${s}px`,l.style.left=`${Math.round(n)}px`,o.appendChild(l);let u=l.getContext("2d");if(this.renderWaveform(e,t,u),l.width>0&&l.height>0){let h=l.cloneNode(),d=h.getContext("2d");d.drawImage(l,0,0),d.globalCompositeOperation="source-in",d.fillStyle=this.convertColorValues(t.progressColor),d.fillRect(0,0,l.width,l.height),a.appendChild(h)}}renderMultiCanvas(e,t,r,s,n,o){let a=this.getPixelRatio(),{clientWidth:c}=this.scrollContainer,l=r/a,u=Math.min(i.MAX_CANVAS_WIDTH,c,l),h={};if(t.barWidth||t.barGap){let g=t.barWidth||.5,y=g+(t.barGap||g/2);u%y!=0&&(u=Math.floor(u/y)*y)}if(u===0)return;let d=g=>{if(g<0||g>=f||h[g])return;h[g]=!0;let y=g*u,x=Math.min(l-y,u);if(t.barWidth||t.barGap){let _=t.barWidth||.5,S=_+(t.barGap||_/2);x=Math.floor(x/S)*S}if(x<=0)return;let w=e.map(_=>{let S=Math.floor(y/l*_.length),T=Math.floor((y+x)/l*_.length);return _.slice(S,T)});this.renderSingleCanvas(w,t,x,s,y,n,o)},f=Math.ceil(l/u);if(!this.isScrollable){for(let g=0;g<f;g++)d(g);return}let m=this.scrollContainer.scrollLeft/l,p=Math.floor(m*f);if(d(p-1),d(p),d(p+1),f>1){let g=this.on("scroll",()=>{let{scrollLeft:y}=this.scrollContainer,x=Math.floor(y/l*f);Object.keys(h).length>i.MAX_NODES&&(n.innerHTML="",o.innerHTML="",h={}),d(x-1),d(x),d(x+1)});this.unsubscribeOnScroll.push(g)}}renderChannel(e,t,r,s){var{overlay:n}=t,o=function(u,h){var d={};for(var f in u)Object.prototype.hasOwnProperty.call(u,f)&&h.indexOf(f)<0&&(d[f]=u[f]);if(u!=null&&typeof Object.getOwnPropertySymbols=="function"){var m=0;for(f=Object.getOwnPropertySymbols(u);m<f.length;m++)h.indexOf(f[m])<0&&Object.prototype.propertyIsEnumerable.call(u,f[m])&&(d[f[m]]=u[f[m]])}return d}(t,["overlay"]);let a=document.createElement("div"),c=this.getHeight(o.height,o.splitChannels);a.style.height=`${c}px`,n&&s>0&&(a.style.marginTop=`-${c}px`),this.canvasWrapper.style.minHeight=`${c}px`,this.canvasWrapper.appendChild(a);let l=a.cloneNode();this.progressWrapper.appendChild(l),this.renderMultiCanvas(e,o,r,c,a,l)}render(e){return Se(this,void 0,void 0,function*(){var t;this.timeouts.forEach(c=>c()),this.timeouts=[],this.canvasWrapper.innerHTML="",this.progressWrapper.innerHTML="",this.options.width!=null&&(this.scrollContainer.style.width=typeof this.options.width=="number"?`${this.options.width}px`:this.options.width);let r=this.getPixelRatio(),s=this.scrollContainer.clientWidth,n=Math.ceil(e.duration*(this.options.minPxPerSec||0));this.isScrollable=n>s;let o=this.options.fillParent&&!this.isScrollable,a=(o?s:n)*r;if(this.wrapper.style.width=o?"100%":`${n}px`,this.scrollContainer.style.overflowX=this.isScrollable?"auto":"hidden",this.scrollContainer.classList.toggle("noScrollbar",!!this.options.hideScrollbar),this.cursor.style.backgroundColor=`${this.options.cursorColor||this.options.progressColor}`,this.cursor.style.width=`${this.options.cursorWidth}px`,this.audioData=e,this.emit("render"),this.options.splitChannels)for(let c=0;c<e.numberOfChannels;c++){let l=Object.assign(Object.assign({},this.options),(t=this.options.splitChannels)===null||t===void 0?void 0:t[c]);this.renderChannel([e.getChannelData(c)],l,a,c)}else{let c=[e.getChannelData(0)];e.numberOfChannels>1&&c.push(e.getChannelData(1)),this.renderChannel(c,this.options,a,0)}Promise.resolve().then(()=>this.emit("rendered"))})}reRender(){if(this.unsubscribeOnScroll.forEach(r=>r()),this.unsubscribeOnScroll=[],!this.audioData)return;let{scrollWidth:e}=this.scrollContainer,{right:t}=this.progressWrapper.getBoundingClientRect();if(this.render(this.audioData),this.isScrollable&&e!==this.scrollContainer.scrollWidth){let{right:r}=this.progressWrapper.getBoundingClientRect(),s=r-t;s*=2,s=s<0?Math.floor(s):Math.ceil(s),s/=2,this.scrollContainer.scrollLeft+=s}}zoom(e){this.options.minPxPerSec=e,this.reRender()}scrollIntoView(e,t=!1){let{scrollLeft:r,scrollWidth:s,clientWidth:n}=this.scrollContainer,o=e*s,a=r,c=r+n,l=n/2;if(this.isDragging)o+30>c?this.scrollContainer.scrollLeft+=30:o-30<a&&(this.scrollContainer.scrollLeft-=30);else{(o<a||o>c)&&(this.scrollContainer.scrollLeft=o-(this.options.autoCenter?l:0));let u=o-r-l;t&&this.options.autoCenter&&u>0&&(this.scrollContainer.scrollLeft+=Math.min(u,10))}{let u=this.scrollContainer.scrollLeft,h=u/s,d=(u+n)/s;this.emit("scroll",h,d,u,u+n)}}renderProgress(e,t){if(isNaN(e))return;let r=100*e;this.canvasWrapper.style.clipPath=`polygon(${r}% 0%, 100% 0%, 100% 100%, ${r}% 100%)`,this.progressWrapper.style.width=`${r}%`,this.cursor.style.left=`${r}%`,this.cursor.style.transform=`translateX(-${Math.round(r)===100?this.options.cursorWidth:0}px)`,this.isScrollable&&this.options.autoScroll&&this.scrollIntoView(e,t)}exportImage(e,t,r){return Se(this,void 0,void 0,function*(){let s=this.canvasWrapper.querySelectorAll("canvas");if(!s.length)throw new Error("No waveform data");if(r==="dataURL"){let n=Array.from(s).map(o=>o.toDataURL(e,t));return Promise.resolve(n)}return Promise.all(Array.from(s).map(n=>new Promise((o,a)=>{n.toBlob(c=>{c?o(c):a(new Error("Could not export image"))},e,t)})))})}};Ds.MAX_CANVAS_WIDTH=8e3,Ds.MAX_NODES=10;var Ll=class extends Gr{constructor(){super(...arguments),this.unsubscribe=()=>{}}start(){this.unsubscribe=this.on("tick",()=>{requestAnimationFrame(()=>{this.emit("tick")})}),this.emit("tick")}stop(){this.unsubscribe()}destroy(){this.unsubscribe()}},Fs=class extends Gr{constructor(e=new AudioContext){super(),this.bufferNode=null,this.playStartTime=0,this.playedDuration=0,this._muted=!1,this._playbackRate=1,this._duration=void 0,this.buffer=null,this.currentSrc="",this.paused=!0,this.crossOrigin=null,this.seeking=!1,this.autoplay=!1,this.addEventListener=this.on,this.removeEventListener=this.un,this.audioContext=e,this.gainNode=this.audioContext.createGain(),this.gainNode.connect(this.audioContext.destination)}load(){return Se(this,void 0,void 0,function*(){})}get src(){return this.currentSrc}set src(e){if(this.currentSrc=e,this._duration=void 0,!e)return this.buffer=null,void this.emit("emptied");fetch(e).then(t=>{if(t.status>=400)throw new Error(`Failed to fetch ${e}: ${t.status} (${t.statusText})`);return t.arrayBuffer()}).then(t=>this.currentSrc!==e?null:this.audioContext.decodeAudioData(t)).then(t=>{this.currentSrc===e&&(this.buffer=t,this.emit("loadedmetadata"),this.emit("canplay"),this.autoplay&&this.play())})}_play(){var e;if(!this.paused)return;this.paused=!1,(e=this.bufferNode)===null||e===void 0||e.disconnect(),this.bufferNode=this.audioContext.createBufferSource(),this.buffer&&(this.bufferNode.buffer=this.buffer),this.bufferNode.playbackRate.value=this._playbackRate,this.bufferNode.connect(this.gainNode);let t=this.playedDuration*this._playbackRate;(t>=this.duration||t<0)&&(t=0,this.playedDuration=0),this.bufferNode.start(this.audioContext.currentTime,t),this.playStartTime=this.audioContext.currentTime,this.bufferNode.onended=()=>{this.currentTime>=this.duration&&(this.pause(),this.emit("ended"))}}_pause(){var e;this.paused=!0,(e=this.bufferNode)===null||e===void 0||e.stop(),this.playedDuration+=this.audioContext.currentTime-this.playStartTime}play(){return Se(this,void 0,void 0,function*(){this.paused&&(this._play(),this.emit("play"))})}pause(){this.paused||(this._pause(),this.emit("pause"))}stopAt(e){let t=e-this.currentTime,r=this.bufferNode;r?.stop(this.audioContext.currentTime+t),r?.addEventListener("ended",()=>{r===this.bufferNode&&(this.bufferNode=null,this.pause())},{once:!0})}setSinkId(e){return Se(this,void 0,void 0,function*(){return this.audioContext.setSinkId(e)})}get playbackRate(){return this._playbackRate}set playbackRate(e){this._playbackRate=e,this.bufferNode&&(this.bufferNode.playbackRate.value=e)}get currentTime(){return(this.paused?this.playedDuration:this.playedDuration+(this.audioContext.currentTime-this.playStartTime))*this._playbackRate}set currentTime(e){let t=!this.paused;t&&this._pause(),this.playedDuration=e/this._playbackRate,t&&this._play(),this.emit("seeking"),this.emit("timeupdate")}get duration(){var e,t;return(e=this._duration)!==null&&e!==void 0?e:((t=this.buffer)===null||t===void 0?void 0:t.duration)||0}set duration(e){this._duration=e}get volume(){return this.gainNode.gain.value}set volume(e){this.gainNode.gain.value=e,this.emit("volumechange")}get muted(){return this._muted}set muted(e){this._muted!==e&&(this._muted=e,this._muted?this.gainNode.disconnect():this.gainNode.connect(this.audioContext.destination))}canPlayType(e){return/^(audio|video)\//.test(e)}getGainNode(){return this.gainNode}getChannelData(){let e=[];if(!this.buffer)return e;let t=this.buffer.numberOfChannels;for(let r=0;r<t;r++)e.push(this.buffer.getChannelData(r));return e}},X_={waveColor:"#999",progressColor:"#555",cursorWidth:1,minPxPerSec:0,fillParent:!0,interact:!0,dragToSeek:!1,autoScroll:!0,autoCenter:!0,sampleRate:8e3},Ci=class i extends Nl{static create(e){return new i(e)}constructor(e){let t=e.media||(e.backend==="WebAudio"?new Fs:void 0);super({media:t,mediaControls:e.mediaControls,autoplay:e.autoplay,playbackRate:e.audioRate}),this.plugins=[],this.decodedData=null,this.stopAtPosition=null,this.subscriptions=[],this.mediaSubscriptions=[],this.abortController=null,this.options=Object.assign({},X_,e),this.timer=new Ll;let r=t?void 0:this.getMediaElement();this.renderer=new Ds(this.options,r),this.initPlayerEvents(),this.initRendererEvents(),this.initTimerEvents(),this.initPlugins();let s=this.options.url||this.getSrc()||"";Promise.resolve().then(()=>{this.emit("init");let{peaks:n,duration:o}=this.options;(s||n&&o)&&this.load(s,n,o).catch(()=>null)})}updateProgress(e=this.getCurrentTime()){return this.renderer.renderProgress(e/this.getDuration(),this.isPlaying()),e}initTimerEvents(){this.subscriptions.push(this.timer.on("tick",()=>{if(!this.isSeeking()){let e=this.updateProgress();this.emit("timeupdate",e),this.emit("audioprocess",e),this.stopAtPosition!=null&&this.isPlaying()&&e>=this.stopAtPosition&&this.pause()}}))}initPlayerEvents(){this.isPlaying()&&(this.emit("play"),this.timer.start()),this.mediaSubscriptions.push(this.onMediaEvent("timeupdate",()=>{let e=this.updateProgress();this.emit("timeupdate",e)}),this.onMediaEvent("play",()=>{this.emit("play"),this.timer.start()}),this.onMediaEvent("pause",()=>{this.emit("pause"),this.timer.stop(),this.stopAtPosition=null}),this.onMediaEvent("emptied",()=>{this.timer.stop(),this.stopAtPosition=null}),this.onMediaEvent("ended",()=>{this.emit("timeupdate",this.getDuration()),this.emit("finish"),this.stopAtPosition=null}),this.onMediaEvent("seeking",()=>{this.emit("seeking",this.getCurrentTime())}),this.onMediaEvent("error",()=>{var e;this.emit("error",(e=this.getMediaElement().error)!==null&&e!==void 0?e:new Error("Media error")),this.stopAtPosition=null}))}initRendererEvents(){this.subscriptions.push(this.renderer.on("click",(e,t)=>{this.options.interact&&(this.seekTo(e),this.emit("interaction",e*this.getDuration()),this.emit("click",e,t))}),this.renderer.on("dblclick",(e,t)=>{this.emit("dblclick",e,t)}),this.renderer.on("scroll",(e,t,r,s)=>{let n=this.getDuration();this.emit("scroll",e*n,t*n,r,s)}),this.renderer.on("render",()=>{this.emit("redraw")}),this.renderer.on("rendered",()=>{this.emit("redrawcomplete")}),this.renderer.on("dragstart",e=>{this.emit("dragstart",e)}),this.renderer.on("dragend",e=>{this.emit("dragend",e)}));{let e;this.subscriptions.push(this.renderer.on("drag",t=>{if(!this.options.interact)return;let r;this.renderer.renderProgress(t),clearTimeout(e),this.isPlaying()?r=0:this.options.dragToSeek===!0?r=200:typeof this.options.dragToSeek=="object"&&this.options.dragToSeek!==void 0&&(r=this.options.dragToSeek.debounceTime),e=setTimeout(()=>{this.seekTo(t)},r),this.emit("interaction",t*this.getDuration()),this.emit("drag",t)}))}}initPlugins(){var e;!((e=this.options.plugins)===null||e===void 0)&&e.length&&this.options.plugins.forEach(t=>{this.registerPlugin(t)})}unsubscribePlayerEvents(){this.mediaSubscriptions.forEach(e=>e()),this.mediaSubscriptions=[]}setOptions(e){this.options=Object.assign({},this.options,e),e.duration&&!e.peaks&&(this.decodedData=Zo.createBuffer(this.exportPeaks(),e.duration)),e.peaks&&e.duration&&(this.decodedData=Zo.createBuffer(e.peaks,e.duration)),this.renderer.setOptions(this.options),e.audioRate&&this.setPlaybackRate(e.audioRate),e.mediaControls!=null&&(this.getMediaElement().controls=e.mediaControls)}registerPlugin(e){if(this.plugins.includes(e))return e;e._init(this),this.plugins.push(e);let t=e.once("destroy",()=>{this.plugins=this.plugins.filter(r=>r!==e),this.subscriptions=this.subscriptions.filter(r=>r!==t)});return this.subscriptions.push(t),e}unregisterPlugin(e){this.plugins=this.plugins.filter(t=>t!==e),e.destroy()}getWrapper(){return this.renderer.getWrapper()}getWidth(){return this.renderer.getWidth()}getScroll(){return this.renderer.getScroll()}setScroll(e){return this.renderer.setScroll(e)}setScrollTime(e){let t=e/this.getDuration();this.renderer.setScrollPercentage(t)}getActivePlugins(){return this.plugins}loadAudio(e,t,r,s){return Se(this,void 0,void 0,function*(){var n;if(this.emit("load",e),!this.options.media&&this.isPlaying()&&this.pause(),this.decodedData=null,this.stopAtPosition=null,!t&&!r){let a=this.options.fetchParams||{};window.AbortController&&!a.signal&&(this.abortController=new AbortController,a.signal=(n=this.abortController)===null||n===void 0?void 0:n.signal);let c=u=>this.emit("loading",u);t=yield q_.fetchBlob(e,c,a);let l=this.options.blobMimeType;l&&(t=new Blob([t],{type:l}))}this.setSrc(e,t);let o=yield new Promise(a=>{let c=s||this.getDuration();c?a(c):this.mediaSubscriptions.push(this.onMediaEvent("loadedmetadata",()=>a(this.getDuration()),{once:!0}))});if(!e&&!t){let a=this.getMediaElement();a instanceof Fs&&(a.duration=o)}if(r)this.decodedData=Zo.createBuffer(r,o||0);else if(t){let a=yield t.arrayBuffer();this.decodedData=yield Zo.decode(a,this.options.sampleRate)}this.decodedData&&(this.emit("decode",this.getDuration()),this.renderer.render(this.decodedData)),this.emit("ready",this.getDuration())})}load(e,t,r){return Se(this,void 0,void 0,function*(){try{return yield this.loadAudio(e,void 0,t,r)}catch(s){throw this.emit("error",s),s}})}loadBlob(e,t,r){return Se(this,void 0,void 0,function*(){try{return yield this.loadAudio("",e,t,r)}catch(s){throw this.emit("error",s),s}})}zoom(e){if(!this.decodedData)throw new Error("No audio loaded");this.renderer.zoom(e),this.emit("zoom",e)}getDecodedData(){return this.decodedData}exportPeaks({channels:e=2,maxLength:t=8e3,precision:r=1e4}={}){if(!this.decodedData)throw new Error("The audio has not been decoded yet");let s=Math.min(e,this.decodedData.numberOfChannels),n=[];for(let o=0;o<s;o++){let a=this.decodedData.getChannelData(o),c=[],l=a.length/t;for(let u=0;u<t;u++){let h=a.slice(Math.floor(u*l),Math.ceil((u+1)*l)),d=0;for(let f=0;f<h.length;f++){let m=h[f];Math.abs(m)>Math.abs(d)&&(d=m)}c.push(Math.round(d*r)/r)}n.push(c)}return n}getDuration(){let e=super.getDuration()||0;return e!==0&&e!==1/0||!this.decodedData||(e=this.decodedData.duration),e}toggleInteraction(e){this.options.interact=e}setTime(e){this.stopAtPosition=null,super.setTime(e),this.updateProgress(e),this.emit("timeupdate",e)}seekTo(e){let t=this.getDuration()*e;this.setTime(t)}play(e,t){let r=Object.create(null,{play:{get:()=>super.play}});return Se(this,void 0,void 0,function*(){e!=null&&this.setTime(e);let s=yield r.play.call(this);return t!=null&&(this.media instanceof Fs?this.media.stopAt(t):this.stopAtPosition=t),s})}playPause(){return Se(this,void 0,void 0,function*(){return this.isPlaying()?this.pause():this.play()})}stop(){this.pause(),this.setTime(0)}skip(e){this.setTime(this.getCurrentTime()+e)}empty(){this.load("",[[0]],.001)}setMediaElement(e){this.unsubscribePlayerEvents(),super.setMediaElement(e),this.initPlayerEvents()}exportImage(){return Se(this,arguments,void 0,function*(e="image/png",t=1,r="dataURL"){return this.renderer.exportImage(e,t,r)})}destroy(){var e;this.emit("destroy"),(e=this.abortController)===null||e===void 0||e.abort(),this.plugins.forEach(t=>t.destroy()),this.subscriptions.forEach(t=>t()),this.unsubscribePlayerEvents(),this.timer.destroy(),this.renderer.destroy(),super.destroy()}};Ci.BasePlugin=class extends Gr{constructor(i){super(),this.subscriptions=[],this.isDestroyed=!1,this.options=i}onInit(){}_init(i){this.isDestroyed&&(this.subscriptions=[],this.isDestroyed=!1),this.wavesurfer=i,this.onInit()}destroy(){this.emit("destroy"),this.subscriptions.forEach(i=>i()),this.subscriptions=[],this.isDestroyed=!0,this.wavesurfer=void 0}},Ci.dom=$_;var Qo=class i{wavesurfer;constructor(e,t,r){this.wavesurfer=Ci.create({container:t,waveColor:"rgb(200, 0, 200)",progressColor:"rgb(100, 0, 100)",barWidth:10,barRadius:10,barGap:2,peaks:[e],duration:r})}static async init(e,t,r){let s=e.decodeAudio({source:t}).getReader(),n=[],o=[],a=1024,c=await e.getAudioDuration(t);for(;;){let{done:l,value:u}=await s.read();if(l)break;let h=u.numberOfFrames,d=new Float32Array(h);u.copyTo(d,{planeIndex:0});for(let f=0;f<d.length;f++)if(o.push(d[f]),o.length>=a){let m=o.splice(0,a),p=Math.min(...m),g=Math.max(...m);n.push(p,g)}u.close()}return new i(n,r,c??0)}set width(e){this.wavesurfer.setOptions({width:e})}};async function pm(i){let e=document.querySelector(".waveform-demo"),t=document.querySelector(".width"),r=await Qo.init(i,"/assets/temp/gl.mp4",e);t.addEventListener("change",()=>{let s=+t.value;r.width=s})}var Jo=class i{videoTrack;options;#e;#t=new Map;#r=[0,0];constructor(e,t){this.videoTrack=e,this.options=t,this.#e=new Cs(e,t.canvasSinkOptions)}static async init(e,t){let s=await new _t({formats:lr,source:await zr(e)}).getPrimaryVideoTrack();if(s)return new i(s,{frequency:t.frequency??1,canvasSinkOptions:t.canvasSinkOptions??{width:80,height:50,fit:"fill"},onChange:t.onChange});throw new Error("Source has no video track")}set frequency(e){e!==this.options.frequency&&(this.options.frequency=e,this.#a())}get frequency(){return this.options.frequency}#i([e,t]){let r=t-e;return[e-r,t+r]}async#n(){let[e,t]=this.#r,r=new Set,s=await this.videoTrack.computeDuration();for(let c=e;c<=t;c+=this.options.frequency)c>=0&&c<=s&&r.add(+c.toFixed(3));let n=[...r].filter(c=>!this.#t.has(c)),o=0;for await(let c of this.#e.canvasesAtTimestamps(n))if(c){let l=n[o++];this.#t.set(l,c)}for(let c of this.#t.keys())r.has(c)||this.#t.delete(c);let a=[...this.#t.entries()].map(([c,l])=>({time:c,canvas:l}));this.options.onChange(a)}set range(e){let t=this.#i(e);this.#r[0]===t[0]&&this.#r[1]===t[1]||(this.#r=t,this.#a())}#s=null;#o=!1;async#a(){if(this.#s){this.#o=!0;return}this.#s=this.#n(),await this.#s,this.#s=null,this.#o&&(this.#o=!1,await this.#a())}getThumbnail(e){return this.#t.get(e)}};async function gm(i){let e=document.querySelector(".range"),t=document.querySelector(".range-view"),r=document.querySelector(".range-size"),s=document.querySelector(".frequency"),n=document.querySelector(".frequency-view"),o=document.querySelector("#filmstrip"),a=1e3/10/1e3,c=.5,l=await Jo.init(i,{onChange(u){let h=u.sort((d,f)=>d.time-f.time);o.replaceChildren(...h.map(({time:d,canvas:f})=>Y_(d,f.canvas)))},frequency:a,canvasSinkOptions:{width:80,height:50,fit:"fill"}});r.addEventListener("change",()=>{c=+r.value;let[u,h]=[+e.value,+e.value+c];l.range=[u,h],t.textContent=`visible time range: [${u}, ${h}]`}),e.addEventListener("change",()=>{let[u,h]=[+e.value,+e.value+c];l.range=[u,h],t.textContent=`visible time range: [${u}, ${h}]`}),s.addEventListener("change",()=>{l.frequency=1e3/+s.value/1e3,n.textContent=`frame every ${l.frequency.toFixed(3)} second (${s.value} frames per second)`}),l.range=[10,10.5]}function Y_(i,e){let t=document.createElement("div");t.style.position="relative",t.style.display="inline-block",t.style.marginRight="4px",t.appendChild(e);let r=document.createElement("div");return r.textContent=`${i.toFixed(2)}s`,r.style.position="absolute",r.style.top="2px",r.style.right="4px",r.style.fontSize="10px",r.style.color="white",r.style.background="rgba(0,0,0,0.6)",r.style.padding="2px 4px",r.style.borderRadius="4px",r.style.pointerEvents="none",t.appendChild(r),t}function Vl(i,e){let t={width:1920,height:1080},r=document.createElement("canvas");r.width=t.width,r.height=t.height;let s=r.getContext("2d");async function n(){let o=i.decodeVideo({source:e,async onFrame(c){let l=await i.composite([{kind:"image",frame:c},{kind:"text",content:"omnitool",fontSize:50,color:"green"}]);return c.close(),s?.drawImage(l,0,0),l}}),a=i.decodeAudio({source:e});await i.encode({video:o,audio:a,config:{audio:{codec:"opus",bitrate:128e3},video:{codec:"vp9",bitrate:1e6}}})}return{canvas:r,run:n}}var me;(function(i){i[i.Sequence=0]="Sequence",i[i.Stack=1]="Stack",i[i.Video=2]="Video",i[i.Audio=3]="Audio",i[i.Text=4]="Text",i[i.Gap=5]="Gap",i[i.Spatial=6]="Spatial",i[i.Transition=7]="Transition"})(me||(me={}));var ea;(function(i){i[i.Crossfade=0]="Crossfade"})(ea||(ea={}));var ta=class{datafile;duration=0;hasVideo=!1;hasAudio=!1;constructor(e){this.datafile=e}static async analyze(e){let t=new this(e);t.duration=10;let{video:r,audio:s}=await this.#e("/assets/temp/gl.mp4");return t.hasAudio=s,t.hasVideo=r,t}static async#e(e){let t=new _t({formats:lr,source:await zr(e)});return{audio:!!await t.getPrimaryAudioTrack(),video:!!await t.getPrimaryVideoTrack()}}};var ra=class{#e=new eo;async store(e){let t=await ta.analyze(e),{hash:r}=t.datafile.checksum,{filename:s,bytes:n}=t.datafile;if(this.#e.has(r)){let o=this.#e.require(r);o.filename=s}else this.#e.set(r,{kind:"media",filename:s,bytes:n});return t}};var xm=i=>{let e=!1,t=null,r=60,s=1e3/r,n=0,o=0,a=0,c=l=>{if(!e)return;let u=l-o;for(o=l,a+=u;a>=s;)i(n),n+=s/1e3,a-=s;t=requestAnimationFrame(c)};return{play(){e||(e=!0,o=performance.now(),t=requestAnimationFrame(c))},pause(){e&&(e=!1,t!==null&&cancelAnimationFrame(t),t=null)},seek(l){n=Math.max(0,l),a=0},dispose(){this.pause()},isPlaying(){return e},setFPS(l){r=l,s=1e3/r}}},ym=async(i,e)=>{let t=1/i.fps,r=Math.ceil(i.duration*i.fps);for(let s=0;s<r&&!i.abort?.aborted;s++){let n=s*t;await e(n,s)}};var bm=i=>i instanceof Blob?URL.createObjectURL(i):String(i);function _m(i){let e=new Map,t=new Map;function r(o){let a=e.get(o.id);return a||(a=document.createElement("video"),a.playsInline=!0,a.muted=!0,a.preload="auto",a.crossOrigin="anonymous",a.src=bm(i(o.mediaHash)),e.set(o.id,a)),a}function s(o){let a=t.get(o.id);return a||(a=document.createElement("audio"),a.preload="auto",a.crossOrigin="anonymous",a.src=bm(i(o.mediaHash)),a.volume=.2,t.set(o.id,a)),a}let n=!0;return{async video(o,a){let c=r(o);return{duration:o.duration,visuals:{sampleAt:async l=>{if(l<0||l>=o.duration)return[];c.paused&&n&&await wm(c,l),c.paused&&!n&&await c.play();let u=new VideoFrame(c);return u?[{kind:"image",frame:u,matrix:a}]:[]}}}},async audio(o){let a=s(o);return{duration:o.duration,audio:{onTimeUpdate:async c=>{let l=o.start+c;return a.paused&&n&&await wm(a,l),a.paused&&!n&&await a.play(),[]}}}},async dispose(){let o=[...e.values(),...t.values()];for(let a of o)a.pause(),a.src.startsWith("blob:")&&URL.revokeObjectURL(a.src),a.remove();e.clear(),t.clear()},async setPaused(o){n=o;let a=[...e.values(),...t.values()];for(let c of a)o&&c.pause()}}}function wm(i,e){return new Promise(t=>{let r=()=>{i.removeEventListener("seeked",r),t()};i.addEventListener("seeked",r),i.fastSeek?i.fastSeek(e):i.currentTime=e})}G();var zw={extension:{type:A.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(Uw(),ak))}};G();var Nw={extension:{type:A.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(Gw(),ck))}};G();Ba();Pa();ju();He();L.add(zw,Nw);var Lw=i=>{let[e,t,r]=i,[s,n]=e,[o,a]=t,c=r*Math.PI/180,l=Math.cos(c),u=Math.sin(c);return[l*o,u*o,-u*a,l*a,s,n]};var Vw=(i,e)=>{let[t,r,s,n,o,a]=i,[c,l,u,h,d,f]=e;return[t*c+s*l,r*c+n*l,t*u+s*h,r*u+n*h,t*d+s*f+o,r*d+n*f+a]},Ww=[1,0,0,1,0,0];var Ed=(i,e)=>i.get(e),Rc=(i,e,t)=>{let r=t??Ww;if(e.spatialId){let s=Ed(i,e.spatialId),n=Lw(s.transform);r=Vw(n,r)}return r},ss=class{items;sampler;constructor(e,t){this.items=e,this.sampler=t}async build(e,t){switch(e.kind){case me.Video:return this.sampler.video(e,Rc(this.items,e,t));case me.Audio:return this.sampler.audio(e);case me.Text:{let r=Rc(this.items,e,t);return{duration:1/0,visuals:{sampleAt:async()=>[{kind:"text",content:e.content,color:"white",fontSize:48,matrix:r}]}}}case me.Gap:return{duration:e.duration,visuals:{sampleAt:async()=>[]}};case me.Stack:{let r=Rc(this.items,e,t),s=await Promise.all(e.childrenIds.map(n=>this.build(Ed(this.items,n),r)));return this.#r(s)}case me.Sequence:{let r=Rc(this.items,e,t);return this.#i(e,r)}default:return{duration:0}}}#e(e){return{sampleAt:async t=>(await Promise.all(e.map(s=>s.visuals?s.visuals.sampleAt(t):Promise.resolve([])))).flat()}}#t(e){return{sampleAt:async t=>{let r=t;for(let s of e){if(r<s.duration)return s.visuals?s.visuals.sampleAt(r):[];r-=s.duration}return[]}}}#r(e){return{duration:Math.max(0,...e.map(r=>Number.isFinite(r.duration)?r.duration:0)),visuals:this.#e(e),audio:this.composeAudio_Stack(e)}}async#i(e,t){let r=e.childrenIds.map(o=>Ed(this.items,o)),s=await this.#n(r,t);return{duration:s.reduce((o,a)=>o+a.duration,0),visuals:this.#t(s),audio:this.composeAudio_Sequence(s)}}async#n(e,t){let r=[];for(let s=0;s<e.length;s++){let n=e[s];if(n.kind!==me.Transition){r.push(await this.build(n,t));continue}let o=r.pop(),a=e[s+1];if(!o||!a||a.kind===me.Transition){o&&r.push(o);continue}let c=await this.build(a,t),l=await this.#s(n,o,c);r.push(l),s++}return r}async#s(e,t,r){let s=Math.max(0,Math.min(e.duration,t.duration,r.duration)),n=Math.max(0,t.duration-s);return{duration:t.duration+r.duration-s,visuals:{sampleAt:async a=>{if(!t.visuals||!r.visuals)return[];if(a<n)return t.visuals.sampleAt(a);if(a<t.duration){let c=a-n,l=s>0?c/s:1,u=await t.visuals.sampleAt(a),h=await r.visuals.sampleAt(c);return!u[0]?.frame||!h[0]?.frame?[]:[{kind:"transition",name:"circle",progress:l,from:u[0].frame,to:h[0].frame}]}return r.visuals.sampleAt(a-t.duration+s)}},audio:this.composeAudio_Sequence([t,r])}}};var Ad=class extends ss{items;sampler;constructor(e,t){super(e,t),this.items=e,this.sampler=t}composeAudio_Stack(e){return{onTimeUpdate:t=>{for(let r of e)r.audio&&r.audio.onTimeUpdate(t)}}}composeAudio_Sequence(e){return{onTimeUpdate:t=>{let r=t;for(let s of e){if(r<s.duration){s.audio&&s.audio.onTimeUpdate(r);break}r-=s.duration}}}}};function Hw(i,e,t){return new Ad(e,t).build(i)}var Oc=class{driver;canvas;root;sampler;resolveMedia;#e=xm(e=>this.#t(e));constructor(e,t,r,s,n=o=>"/assets/temp/gl.mp4"){this.driver=e,this.canvas=t,this.root=r,this.sampler=s,this.resolveMedia=n,this.#e.setFPS(30)}get context(){return this.canvas.getContext("2d")}static async create(e,t){let r=new Map(t.items.map(c=>[c.id,c])).get(t.rootId),s=new Map(t.items.map(c=>[c.id,c])),n=_m(()=>"/assets/temp/gl.mp4"),o=await Hw(r,s,n),a=document.createElement("canvas");return a.width=1920,a.height=1080,new this(e,a,o,n)}async#t(e){let t=this.root.duration,r=e>t?t:e;this.root.audio?.onTimeUpdate(r);for(let s of await this.root.visuals?.sampleAt(r)??[]){let n=await this.driver.composite(s);this.context.drawImage(n,0,0),n.close()}e>=t&&this.pause()}async play(){this.#e.isPlaying()||(this.sampler.setPaused(!1),this.#e.play())}pause(){this.#e.isPlaying()&&(this.#e.pause(),this.sampler.setPaused(!0))}async seek(e){this.pause(),this.#e.seek(e),this.root.audio?.onTimeUpdate(e);for(let t of await this.root.visuals?.sampleAt(e)??[]){let r=await this.driver.composite(t);this.context.drawImage(r,0,0),r.close()}}setFPS(e){this.#e.setFPS(e)}};var Uc=class{state;#e=0;constructor(e){this.state=e}require(e){return this.state.project.items.find(r=>r.id===e)}#t(){return this.#e++}#r(e){this.state.project=e(this.state.project)}spatial=e=>({id:this.#t(),kind:me.Spatial,transform:e});sequence=(...e)=>{let t={id:this.#t(),kind:me.Sequence,childrenIds:e.map(r=>r.id)};return this.#r(r=>(r.items.push(t,...e),r)),t};stack=(...e)=>{let t={kind:me.Stack,id:this.#t(),childrenIds:e.map(r=>r.id)};return this.#r(r=>(r.items.push(t,...e),r)),t};video=(e,t)=>{if(!e.hasVideo)throw new Error(`Video clip error: media "${e.datafile.filename}" has no video track.`);return{kind:me.Video,id:this.#t(),mediaHash:e.datafile.checksum.hash,start:t?.start??0,duration:t?.duration??e.duration}};audio=(e,t)=>{if(!e.hasAudio)throw new Error(`Audio clip error: media "${e.datafile.filename}" has no audio track.`);return{kind:me.Audio,id:this.#t(),mediaHash:e.datafile.checksum.hash,start:t?.start??0,duration:t?.duration??e.duration}};text=e=>({id:this.#t(),content:e,kind:me.Text,color:"#FFFFF"});gap=e=>({id:this.#t(),kind:me.Gap,duration:e});transition={crossfade:e=>({id:this.#t(),kind:me.Transition,effect:ea.Crossfade,duration:e})};transform=e=>{let t=[e?.position?.[0]??0,e?.position?.[1]??0],r=[e?.scale?.[0]??1,e?.scale?.[1]??1],s=e?.rotation??0;return[t,r,s]};addChildren(e,...t){this.#r(r=>(r.items.find(({id:n})=>n===e.id).childrenIds.push(...t.map(n=>n.id)),r.items.push(...t),r))}};var zc=class{reader;constructor(e){this.reader=e}async atOrNear(e){let t=null;for(;;){let{done:r,value:s}=await this.reader.read();if(r){let o=t?new VideoFrame(t):void 0;return t?.close(),o}let n=s.timestamp??0;if(n>=e){let o=t?.timestamp??Number.NEGATIVE_INFINITY,a=!!t&&Math.abs(o-e)<Math.abs(n-e),c=a?t:s,l=a?s:t,u=new VideoFrame(c);return c.close(),l?.close(),u}t?.close(),t=s}}cancel=async()=>await this.reader.cancel()};var Gc=class{reader;constructor(e){this.reader=e}async*stream(){for(;;){let{done:e,value:t}=await this.reader.read();if(e)break;yield t}}cancel=async()=>await this.reader.cancel()};var jw=i=>Math.round(i*1e6);function $w(i,e){let t=new Map;async function r(s){let n=t.get(s.id);if(n)return n;let o=e(s.mediaHash),a=i.decodeVideo({source:o}),c=new zc(a.getReader());return t.set(s.id,c),c}return{async video(s,n){let o=await r(s),a=jw(s.start??0);return{duration:s.duration,visuals:{sampleAt:async c=>{let l=await o.atOrNear(a+jw(c));return l?[{kind:"image",frame:l,matrix:n}]:[]}}}},async audio(s){return{duration:s.duration,audio:{getStream:async function*(){let n=e(s.mediaHash),o=s.start,a=s.start+s.duration,c=i.decodeAudio({source:n,start:o,end:a});yield*new Gc(c.getReader()).stream()}}}},async dispose(){let s=Array.from([...t.values()],n=>n.cancel());t.clear(),await Promise.all(s)}}}var Id=class extends ss{composeAudio_Stack(e){return{getStream:async function*(){for(let t of e)t.audio&&(yield*t.audio.getStream())}}}composeAudio_Sequence(e){return{getStream:async function*(){for(let t of e)t.audio&&(yield*t.audio.getStream())}}}};function qw(i,e,t){return new Id(e,t).build(i)}var Nc=class{driver;framerate;resolveMedia;#e;constructor(e,t=30,r=s=>"/assets/temp/gl.mp4"){this.driver=e,this.framerate=t,this.resolveMedia=r,this.#e=$w(this.driver,this.resolveMedia)}async#t(e){let t=new Map(e.items.map(s=>[s.id,s])).get(e.rootId),r=new Map(e.items.map(s=>[s.id,s]));return await qw(t,r,this.#e)}async render(e){let t=await this.#t(e),r=new TransformStream,s=new TransformStream,n=this.driver.encode({video:r.readable,audio:s.readable,config:{audio:{codec:"opus",bitrate:128e3},video:{codec:"vp9",bitrate:1e6}}}),o=r.writable.getWriter(),a=s.writable.getWriter(),c=(async()=>{if(t.audio)for await(let u of t.audio.getStream())await a.write(u);await a.close()})(),l=(async()=>{let u=0,h=1/this.framerate;await ym({fps:this.framerate,duration:t.duration??0},async d=>{let f=await t.visuals?.sampleAt(d)??[],m=await this.driver.composite(f),p=new VideoFrame(m,{timestamp:Math.round(u*h*1e6),duration:Math.round(h*1e6)});await o.write(p),m.close(),u++}),await o.close()})();await c,await l,await n}};var Lc=class{driver;resources=new ra;#e;constructor(e){this.driver=e,this.#e=new Nc(e)}load=async e=>Object.fromEntries(await Promise.all(Object.entries(e).map(async([t,r])=>[t,await this.resources.store(await r)])));timeline=e=>{let t=new Uc({project:{format:"timeline",info:"https://omniclip.app/",version:0,items:[],rootId:0}}),r=e(t);return t.state.project.rootId=r.id,t.state.project};render=async(e,t)=>{await this.#e.render(e)}};var Vc=class{data;bytes;hash;nickname;constructor(e,t,r,s){this.data=e,this.bytes=t,this.hash=r,this.nickname=s}static async make(e){let t=new Uint8Array(e),r=new Uint8Array(await crypto.subtle.digest("SHA-256",t)),s=Le.fromBytes(r),n=nt.sigil.fromBytes(r);return new this(e,r,s,n)}};var Wc=class{bytes;filename;checksum;constructor(e,t,r){this.bytes=e,this.filename=t,this.checksum=r}static async make(e,t){let r=await Vc.make(e),s=t??r.nickname;return new this(e,s,r)}static async load(e){throw new Error("TODO implement")}};var ii=await Ko.setup(),lk=document.querySelector(".results"),uk=document.querySelector(".fetch"),hk=document.querySelector(".import"),dk=document.querySelector(".play"),fk=document.querySelector(".stop");uk?.addEventListener("click",bk);hk?.addEventListener("click",yk);var Xw=new Lc(ii),mk=await fetch("/assets/temp/gl.mp4"),pk=await mk.arrayBuffer(),gk=new Uint8Array(pk),{videoA:Md}=await Xw.load({videoA:Wc.make(gk)}),xk=Xw.timeline(i=>i.sequence(i.stack(i.video(Md,{duration:5e3}),i.audio(Md,{duration:8e3})),i.video(Md,{duration:7e3}))),Bd=await Oc.create(ii,xk);document.body.appendChild(Bd.canvas);dk.addEventListener("click",()=>Bd.play());fk.addEventListener("click",()=>Bd.pause());pm(ii);await ii.thread.work.hello(),ii.machina.count===1?console.log("\u2705 driver works"):console.error("\u274C FAIL driver call didn't work");async function yk(){let[i]=await window.showOpenFilePicker(),e=await i.getFile(),t=Vl(ii,e);await gm(e),Yw(t,i.name)}async function bk(){let i=["/assets/temp/gl.mp4"];for(let e of i){let t=Vl(ii,"/assets/temp/gl.mp4");Yw(t,e)}}async function Yw(i,e){let t=document.createElement("div");lk.append(t);let r=document.createElement("p");r.textContent=e,t.append(r),t.append(i.canvas),await i.run()}
|
|
80
648
|
/*! Bundled license information:
|
|
81
649
|
|
|
82
650
|
mediabunny/dist/modules/src/misc.js:
|