@omnimedia/omnitool 1.1.0-3 → 1.1.0-30

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.
Files changed (189) hide show
  1. package/package.json +15 -10
  2. package/s/context.ts +0 -7
  3. package/s/demo/demo.bundle.ts +39 -5
  4. package/s/demo/demo.css +5 -0
  5. package/s/demo/routines/filmstrip-test.ts +2 -2
  6. package/s/demo/routines/transcode-test.ts +8 -4
  7. package/s/demo/routines/transcriber-test.ts +34 -0
  8. package/s/demo/routines/transitions-test.ts +43 -0
  9. package/s/demo/routines/waveform-test.ts +3 -2
  10. package/s/driver/driver.ts +19 -11
  11. package/s/driver/fns/host.ts +7 -6
  12. package/s/driver/fns/schematic.ts +47 -24
  13. package/s/driver/fns/work.ts +165 -156
  14. package/s/driver/utils/load-decoder-source.ts +3 -4
  15. package/s/features/speech/transcribe/default-spec.ts +11 -0
  16. package/s/features/speech/transcribe/parts/load-pipe.ts +19 -0
  17. package/s/features/speech/transcribe/parts/prep-audio.ts +23 -0
  18. package/s/features/speech/transcribe/parts/transcribe.ts +70 -0
  19. package/s/features/speech/transcribe/transcriber.ts +46 -0
  20. package/s/features/speech/transcribe/types.ts +82 -0
  21. package/s/features/speech/transcribe/worker.bundle.ts +40 -0
  22. package/s/features/transition/parts/fragment.ts +24 -0
  23. package/s/features/transition/parts/types.ts +94 -0
  24. package/s/features/transition/parts/uniforms.ts +29 -0
  25. package/s/features/transition/parts/vertex.ts +31 -0
  26. package/s/features/transition/transition.ts +60 -0
  27. package/s/index.html.ts +6 -1
  28. package/s/timeline/index.ts +1 -0
  29. package/s/timeline/parts/basics.ts +1 -1
  30. package/s/timeline/parts/compositor/export.ts +77 -0
  31. package/s/timeline/parts/compositor/parts/html-tree.ts +37 -0
  32. package/s/timeline/parts/compositor/parts/schedulers.ts +94 -0
  33. package/s/timeline/parts/compositor/parts/tree-builder.ts +196 -0
  34. package/s/timeline/parts/compositor/parts/webcodecs-tree.ts +30 -0
  35. package/s/timeline/parts/compositor/playback.ts +94 -0
  36. package/s/timeline/parts/compositor/samplers/html.ts +115 -0
  37. package/s/timeline/parts/compositor/samplers/webcodecs.ts +61 -0
  38. package/s/timeline/parts/item.ts +48 -6
  39. package/s/timeline/parts/media.ts +21 -0
  40. package/s/timeline/parts/waveform.ts +3 -4
  41. package/s/timeline/sugar/builders.ts +102 -0
  42. package/s/timeline/sugar/o.ts +162 -36
  43. package/s/timeline/sugar/omni-test.ts +5 -3
  44. package/s/timeline/sugar/omni.ts +26 -11
  45. package/s/timeline/types.ts +29 -0
  46. package/s/timeline/utils/audio-stream.ts +15 -0
  47. package/s/timeline/utils/checksum.ts +2 -1
  48. package/s/timeline/utils/matrix.ts +33 -0
  49. package/s/timeline/utils/video-cursor.ts +40 -0
  50. package/x/context.d.ts +1 -4
  51. package/x/context.js +1 -5
  52. package/x/context.js.map +1 -1
  53. package/x/demo/demo.bundle.js +26 -5
  54. package/x/demo/demo.bundle.js.map +1 -1
  55. package/x/demo/demo.bundle.min.js +606 -36
  56. package/x/demo/demo.bundle.min.js.map +4 -4
  57. package/x/demo/demo.css +5 -0
  58. package/x/demo/routines/filmstrip-test.d.ts +1 -1
  59. package/x/demo/routines/filmstrip-test.js +2 -2
  60. package/x/demo/routines/filmstrip-test.js.map +1 -1
  61. package/x/demo/routines/transcode-test.js +8 -4
  62. package/x/demo/routines/transcode-test.js.map +1 -1
  63. package/x/demo/routines/transcriber-test.d.ts +4 -0
  64. package/x/demo/routines/transcriber-test.js +33 -0
  65. package/x/demo/routines/transcriber-test.js.map +1 -0
  66. package/x/demo/routines/transitions-test.d.ts +5 -0
  67. package/x/demo/routines/transitions-test.js +35 -0
  68. package/x/demo/routines/transitions-test.js.map +1 -0
  69. package/x/demo/routines/waveform-test.d.ts +2 -1
  70. package/x/demo/routines/waveform-test.js +2 -2
  71. package/x/demo/routines/waveform-test.js.map +1 -1
  72. package/x/driver/driver.d.ts +4 -6
  73. package/x/driver/driver.js +17 -10
  74. package/x/driver/driver.js.map +1 -1
  75. package/x/driver/driver.worker.bundle.min.js +2537 -148
  76. package/x/driver/driver.worker.bundle.min.js.map +4 -4
  77. package/x/driver/fns/host.d.ts +9 -2
  78. package/x/driver/fns/host.js +3 -3
  79. package/x/driver/fns/host.js.map +1 -1
  80. package/x/driver/fns/schematic.d.ts +41 -23
  81. package/x/driver/fns/work.d.ts +11 -4
  82. package/x/driver/fns/work.js +113 -107
  83. package/x/driver/fns/work.js.map +1 -1
  84. package/x/driver/utils/load-decoder-source.d.ts +2 -1
  85. package/x/driver/utils/load-decoder-source.js +2 -3
  86. package/x/driver/utils/load-decoder-source.js.map +1 -1
  87. package/x/features/speech/transcribe/default-spec.d.ts +2 -0
  88. package/x/features/speech/transcribe/default-spec.js +8 -0
  89. package/x/features/speech/transcribe/default-spec.js.map +1 -0
  90. package/x/features/speech/transcribe/parts/load-pipe.d.ts +2 -0
  91. package/x/features/speech/transcribe/parts/load-pipe.js +13 -0
  92. package/x/features/speech/transcribe/parts/load-pipe.js.map +1 -0
  93. package/x/features/speech/transcribe/parts/prep-audio.d.ts +5 -0
  94. package/x/features/speech/transcribe/parts/prep-audio.js +21 -0
  95. package/x/features/speech/transcribe/parts/prep-audio.js.map +1 -0
  96. package/x/features/speech/transcribe/parts/transcribe.d.ts +5 -0
  97. package/x/features/speech/transcribe/parts/transcribe.js +56 -0
  98. package/x/features/speech/transcribe/parts/transcribe.js.map +1 -0
  99. package/x/features/speech/transcribe/transcriber.d.ts +5 -0
  100. package/x/features/speech/transcribe/transcriber.js +33 -0
  101. package/x/features/speech/transcribe/transcriber.js.map +1 -0
  102. package/x/features/speech/transcribe/types.d.ts +66 -0
  103. package/x/features/speech/transcribe/types.js +2 -0
  104. package/x/features/speech/transcribe/types.js.map +1 -0
  105. package/x/features/speech/transcribe/worker.bundle.d.ts +1 -0
  106. package/x/features/speech/transcribe/worker.bundle.js +33 -0
  107. package/x/features/speech/transcribe/worker.bundle.js.map +1 -0
  108. package/x/features/speech/transcribe/worker.bundle.min.js +2916 -0
  109. package/x/features/speech/transcribe/worker.bundle.min.js.map +7 -0
  110. package/x/features/transition/parts/fragment.d.ts +1 -0
  111. package/x/features/transition/parts/fragment.js +25 -0
  112. package/x/features/transition/parts/fragment.js.map +1 -0
  113. package/x/features/transition/parts/types.d.ts +23 -0
  114. package/x/features/transition/parts/types.js +2 -0
  115. package/x/features/transition/parts/types.js.map +1 -0
  116. package/x/features/transition/parts/uniforms.d.ts +31 -0
  117. package/x/features/transition/parts/uniforms.js +27 -0
  118. package/x/features/transition/parts/uniforms.js.map +1 -0
  119. package/x/features/transition/parts/vertex.d.ts +1 -0
  120. package/x/features/transition/parts/vertex.js +32 -0
  121. package/x/features/transition/parts/vertex.js.map +1 -0
  122. package/x/features/transition/transition.d.ts +5 -0
  123. package/x/features/transition/transition.js +50 -0
  124. package/x/features/transition/transition.js.map +1 -0
  125. package/x/index.html +13 -3
  126. package/x/index.html.js +6 -1
  127. package/x/index.html.js.map +1 -1
  128. package/x/timeline/index.d.ts +1 -0
  129. package/x/timeline/index.js +1 -0
  130. package/x/timeline/index.js.map +1 -1
  131. package/x/timeline/parts/basics.d.ts +1 -1
  132. package/x/timeline/parts/compositor/export.d.ts +11 -0
  133. package/x/timeline/parts/compositor/export.js +64 -0
  134. package/x/timeline/parts/compositor/export.js.map +1 -0
  135. package/x/timeline/parts/compositor/parts/html-tree.d.ts +3 -0
  136. package/x/timeline/parts/compositor/parts/html-tree.js +40 -0
  137. package/x/timeline/parts/compositor/parts/html-tree.js.map +1 -0
  138. package/x/timeline/parts/compositor/parts/schedulers.d.ts +15 -0
  139. package/x/timeline/parts/compositor/parts/schedulers.js +69 -0
  140. package/x/timeline/parts/compositor/parts/schedulers.js.map +1 -0
  141. package/x/timeline/parts/compositor/parts/tree-builder.d.ts +37 -0
  142. package/x/timeline/parts/compositor/parts/tree-builder.js +160 -0
  143. package/x/timeline/parts/compositor/parts/tree-builder.js.map +1 -0
  144. package/x/timeline/parts/compositor/parts/webcodecs-tree.d.ts +3 -0
  145. package/x/timeline/parts/compositor/parts/webcodecs-tree.js +28 -0
  146. package/x/timeline/parts/compositor/parts/webcodecs-tree.js.map +1 -0
  147. package/x/timeline/parts/compositor/playback.d.ts +26 -0
  148. package/x/timeline/parts/compositor/playback.js +79 -0
  149. package/x/timeline/parts/compositor/playback.js.map +1 -0
  150. package/x/timeline/parts/compositor/samplers/html.d.ts +3 -0
  151. package/x/timeline/parts/compositor/samplers/html.js +106 -0
  152. package/x/timeline/parts/compositor/samplers/html.js.map +1 -0
  153. package/x/timeline/parts/compositor/samplers/webcodecs.d.ts +3 -0
  154. package/x/timeline/parts/compositor/samplers/webcodecs.js +52 -0
  155. package/x/timeline/parts/compositor/samplers/webcodecs.js.map +1 -0
  156. package/x/timeline/parts/item.d.ts +42 -8
  157. package/x/timeline/parts/item.js +7 -3
  158. package/x/timeline/parts/item.js.map +1 -1
  159. package/x/timeline/parts/media.d.ts +3 -0
  160. package/x/timeline/parts/media.js +17 -0
  161. package/x/timeline/parts/media.js.map +1 -1
  162. package/x/timeline/parts/waveform.d.ts +2 -1
  163. package/x/timeline/parts/waveform.js +2 -4
  164. package/x/timeline/parts/waveform.js.map +1 -1
  165. package/x/timeline/sugar/builders.d.ts +1 -0
  166. package/x/timeline/sugar/builders.js +104 -0
  167. package/x/timeline/sugar/builders.js.map +1 -0
  168. package/x/timeline/sugar/o.d.ts +27 -5
  169. package/x/timeline/sugar/o.js +135 -36
  170. package/x/timeline/sugar/o.js.map +1 -1
  171. package/x/timeline/sugar/omni-test.js +4 -2
  172. package/x/timeline/sugar/omni-test.js.map +1 -1
  173. package/x/timeline/sugar/omni.d.ts +8 -2
  174. package/x/timeline/sugar/omni.js +22 -9
  175. package/x/timeline/sugar/omni.js.map +1 -1
  176. package/x/timeline/types.d.ts +24 -0
  177. package/x/timeline/types.js +2 -0
  178. package/x/timeline/types.js.map +1 -0
  179. package/x/timeline/utils/audio-stream.d.ts +6 -0
  180. package/x/timeline/utils/audio-stream.js +17 -0
  181. package/x/timeline/utils/audio-stream.js.map +1 -0
  182. package/x/timeline/utils/checksum.js +2 -1
  183. package/x/timeline/utils/checksum.js.map +1 -1
  184. package/x/timeline/utils/matrix.d.ts +8 -0
  185. package/x/timeline/utils/matrix.js +26 -0
  186. package/x/timeline/utils/matrix.js.map +1 -0
  187. package/x/timeline/utils/video-cursor.d.ts +10 -0
  188. package/x/timeline/utils/video-cursor.js +36 -0
  189. package/x/timeline/utils/video-cursor.js.map +1 -0
@@ -1,10 +1,578 @@
1
- var J;(function(n){n.version="2.0";function e(t){return"id"in t?t.id:null}n.getId=e,n.errorCodes={serverError:-32e3,unexposedError:-32001}})(J||(J={}));var at=class extends Error{name=this.constructor.name},ae=class extends Error{name=this.constructor.name};async function qr({tap:n,request:e,action:t}){let r=J.getId(e);try{let s=await t();return r===null?null:{id:r,result:s,jsonrpc:J.version}}catch(s){return n.rpcError({request:e,error:s}),r===null?null:{id:r,jsonrpc:J.version,error:s instanceof at?{code:J.errorCodes.serverError,message:s.message}:{code:J.errorCodes.unexposedError,message:"unexposed error"}}}}var ot=()=>n=>({plain:n.none,errMessage:n.mix(n.brightRed,n.bold),errName:n.red,errStack:n.mix(n.red,n.dim),timestamp:n.blue,timestampErr:n.red});function Gr(){return ot()}var ee=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 ct=()=>({none:n=>n,uncolor:ln,mix:un,hex:mn,rgb:Kr,bgRgb:hn});function ln(n){return n.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function un(...n){return e=>{for(let t of n)e=t(e);return e}}function mn(n){n=n.replace(/^#/,"");let e,t,r,s;if(n.length===3)e=parseInt(n.split("").map(i=>i+i).join(""),16);else if(n.length===6)e=parseInt(n,16);else throw new Error("Invalid hex color");return t=e>>16&255,r=e>>8&255,s=e&255,Kr(t,r,s)}function Kr(n,e,t){let r=`\x1B[38;2;${n};${e};${t}m`;return s=>`${r}${s}${ee.reset}`}function hn(n,e,t){let r=`\x1B[48;2;${n};${e};${t}m`;return s=>`${r}${s}${ee.reset}`}var We={...Object.fromEntries(Object.entries(ee).map(([n])=>[n,e=>e])),...ct()};var je={...Object.fromEntries(Object.entries(ee).map(([n,e])=>[n,t=>`${e}${t}${ee.reset}`])),...ct()};function or(){return typeof Deno<"u"&&typeof Deno.version<"u"}function cr(){return typeof process<"u"&&process.versions&&process.versions.node}function Qr(){return cr()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":or()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var dr=()=>Qr()?je:We;var dt=()=>({colors:n,theme:e})=>{let t=e(n);function r(a){let o=a.stack?`
2
- `+a.stack+`
3
- `:"";return[t.errName(a.name+":"),t.errMessage(a.message)].join(" ")+t.errStack(o)}function s(a){return a&&a instanceof Error?r(a):a}function i(a){return a&&a instanceof Error?r(a):t.errMessage(a)}return{stdout:a=>a.map(s),stderr:a=>a.map(i)}};function $e(...n){return e=>({stdout:t=>{for(let r of n)t=r(e).stdout(t);return t},stderr:t=>{for(let r of n)t=r(e).stderr(t);return t}})}function fn(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var lt=n=>({colors:e,theme:t})=>{let r={...fn(),...n},s=t(e),i=new Date(r.now()),a=i.getUTCFullYear().toString().padStart(4,"0"),o=(i.getUTCMonth()+1).toString().padStart(2,"0"),c=i.getUTCDate().toString().padStart(2,"0"),l=`${a}-${o}-${c}`,d=i.getUTCHours().toString().padStart(2,"0"),u=i.getUTCMinutes().toString().padStart(2,"0"),h=i.getUTCSeconds().toString().padStart(2,"0"),m=i.getUTCMilliseconds().toString().padStart(3,"0"),f=`${d}:${u}:${h}.${m}`,w=`${l}::${f}`;return{stdout:g=>[s.timestamp(w),...g],stderr:g=>[s.timestampErr(w),...[r.icon].filter(Boolean),...g]}};function Xr(){return $e(dt(),lt())}var ut=()=>({stdout:async n=>{await Deno.stdout.write(new TextEncoder().encode(n+`
4
- `))},stderr:async n=>{await Deno.stderr.write(new TextEncoder().encode(n+`
5
- `))}});var mt=()=>({stdout:async n=>void process.stdout.write(n+`
6
- `),stderr:async n=>void process.stderr.write(n+`
7
- `)});var ht=()=>({stdout:async n=>console.log(n),stderr:async n=>console.error(n)});var Yr=()=>or()?ut():cr()?mt():ht();var Zr=()=>({stdout:async()=>{},stderr:async()=>{}});function Jr(){return()=>({stdout:n=>n,stderr:n=>n})}var oe=class n{static writers={auto:Yr,void:Zr,deno:ut,node:mt,console:ht};static colors={auto:dr,colorful:()=>je,colorless:()=>We};static themes={auto:Gr,basic:ot};static shapers={auto:Xr,none:Jr,errors:dt,timestamp:lt};writer=n.writers.auto();colors=n.colors.auto();theme=n.themes.auto();shaper=n.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=$e(...e),this}};var q=Object.freeze({eq(n,e){if(n.length!==e.length)return!1;for(let t=0;t<=n.length;t++)if(n.at(t)!==e.at(t))return!1;return!0},random(n){return crypto.getRandomValues(new Uint8Array(n))}});var ce=Object.freeze({fromBytes(n){return[...n].map(e=>e.toString(16).padStart(2,"0")).join("")},toBytes(n){if(n.length%2!==0)throw new Error("must have even number of hex characters");let e=new Uint8Array(n.length/2);for(let t=0;t<n.length;t+=2)e[t/2]=parseInt(n.slice(t,t+2),16);return e},random(n=32){return this.fromBytes(q.random(n))},string(n){return ce.fromBytes(n)},bytes(n){return ce.toBytes(n)}});var lr=58,ft="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",ur=Object.freeze({fromBytes(n){let e=BigInt("0x"+ce.fromBytes(n)),t="";for(;e>0;){let r=e%BigInt(lr);e=e/BigInt(lr),t=ft[Number(r)]+t}for(let r of n)if(r===0)t=ft[0]+t;else break;return t},toBytes(n){let e=BigInt(0);for(let a of n){let o=ft.indexOf(a);if(o===-1)throw new Error(`Invalid character '${a}' in base58 string`);e=e*BigInt(lr)+BigInt(o)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let r=ce.toBytes(t),s=0;for(let a of n)if(a===ft[0])s++;else break;let i=new Uint8Array(s+r.length);return i.set(r,s),i},random(n=32){return this.fromBytes(q.random(n))},string(n){return ur.fromBytes(n)},bytes(n){return ur.toBytes(n)}});var es=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 o=0,c=0,l=[];for(let d of e){if(d===this.lexicon.padding?.character)continue;let u=this.lookup[d];if(u===void 0)throw new Error(`Invalid character: ${d}`);for(o=o<<t|u,c+=t;c>=8;)c-=8,l.push(o>>c&255)}return new Uint8Array(l)}let r=0n,s=BigInt(this.lexicon.characters.length),i=!1;e.startsWith(this.negativePrefix)&&(e=e.slice(this.negativePrefix.length),i=!0);for(let o of e){let c=this.lookup[o];if(c===void 0)throw new Error(`Invalid character: ${o}`);r=r*s+BigInt(c)}let a=[];for(;r>0n;)a.unshift(Number(r%256n)),r=r/256n;return new Uint8Array(a)}fromBytes(e){let t=Math.log2(this.lexicon.characters.length);if(Number.isInteger(t)){let a=0,o=0,c="";for(let l of e)for(a=a<<8|l,o+=8;o>=t;){o-=t;let d=a>>o&(1<<t)-1;c+=this.lexicon.characters[d]}if(o>0){let l=a<<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 r=0n;for(let a of e)r=(r<<8n)+BigInt(a);if(r===0n)return this.lexicon.characters[0];let s=BigInt(this.lexicon.characters.length),i="";for(;r>0n;)i=this.lexicon.characters[Number(r%s)]+i,r=r/s;return i}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 i of e){let a=this.lookup[i];if(a===void 0)throw new Error(`Invalid character: ${i}`);t=t*s+BigInt(a)}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),i="";for(;r>0n;)i=this.lexicon.characters[Number(r%s)]+i,r=r/s;return t?`${this.negativePrefix}${i}`:i}random(e=32){return this.fromBytes(q.random(e))}};var mr=Object.freeze({fromBytes(n){return typeof btoa=="function"?btoa(String.fromCharCode(...n)):Buffer.from(n).toString("base64")},toBytes(n){return typeof atob=="function"?Uint8Array.from(atob(n),e=>e.charCodeAt(0)):Uint8Array.from(Buffer.from(n,"base64"))},random(n=32){return this.fromBytes(q.random(n))},string(n){return mr.fromBytes(n)},bytes(n){return mr.toBytes(n)}});var ts=Object.freeze({fromBytes(n){return new TextDecoder().decode(n)},toBytes(n){return new TextEncoder().encode(n)},string(n){return ts.fromBytes(n)},bytes(n){return ts.toBytes(n)}});var pt=Object.freeze({set:n=>n!=null,unset:n=>n==null,boolean:n=>typeof n=="boolean",number:n=>typeof n=="number",string:n=>typeof n=="string",bigint:n=>typeof n=="bigint",object:n=>typeof n=="object"&&n!==null,array:n=>Array.isArray(n),fn:n=>typeof n=="function",symbol:n=>typeof n=="symbol"});var hr=class extends Error{milliseconds;name=this.constructor.name;constructor(e,t){super(`${t}, timed out in ${(e/1e3).toFixed(1)} seconds`),this.milliseconds=e}};function fr(n,e,t){return n<=0||n===1/0?t():new Promise((r,s)=>{let i=setTimeout(()=>s(new hr(n,e)),n);t().then(r).catch(s).finally(()=>clearTimeout(i))})}function j(){let n,e,t=new Promise((s,i)=>{n=s,e=i});function r(s){return s.then(n).catch(e),t}return{promise:t,resolve:n,reject:e,entangle:r}}function rs(n,e){let t=n;for(let r of e)if(t=t[r],pt.unset(t))break;return t}var gt=class{items;#e=[];constructor(e){this.items=e,this.#e=[...e]}pull(){this.#e.length===0&&(this.#e=[...this.items]);let e=Math.floor(Math.random()*this.#e.length),[t]=this.#e.splice(e,1);return t}};function pn(n){return{map:e=>ss(n,e),filter:e=>ns(n,e)}}pn.pipe=Object.freeze({map:n=>e=>ss(e,n),filter:n=>e=>ns(e,n)});var ss=(n,e)=>Object.fromEntries(Object.entries(n).map(([t,r])=>[t,e(r,t)])),ns=(n,e)=>Object.fromEntries(Object.entries(n).filter(([t,r])=>e(r,t)));function gn(){let n=new Set;function e(i){return n.add(i),()=>{n.delete(i)}}async function t(...i){await Promise.all([...n].map(a=>a(...i)))}async function r(){let{promise:i,resolve:a}=j(),o=e((...c)=>{a(c),o()});return i}function s(){n.clear()}return e.pub=t,e.sub=e,e.on=e,e.once=r,e.clear=s,t.pub=t,t.sub=e,t.on=e,t.once=r,t.clear=s,[t,e]}function wt(n){let e=gn()[0];return n&&e.sub(n),e}var de=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 bt=class extends gt{constructor(){super(["\u{1F436}","\u{1F415}","\u{1F429}","\u{1F43A}","\u{1F98A}","\u{1F99D}","\u{1F431}","\u{1F408}","\u{1F42F}","\u{1F405}","\u{1F406}","\u{1F434}","\u{1F40E}","\u{1F984}","\u{1F993}","\u{1F98D}","\u{1F9A7}","\u{1F9A3}","\u{1F418}","\u{1F98F}","\u{1F99B}","\u{1F42D}","\u{1F401}","\u{1F400}","\u{1F439}","\u{1F430}","\u{1F407}","\u{1F9A8}","\u{1F9A1}","\u{1F998}","\u{1F999}","\u{1F43F}\uFE0F","\u{1F9A6}","\u{1F9A5}","\u{1F43B}","\u{1F428}","\u{1F43C}","\u{1F9AB}","\u{1F437}","\u{1F43D}","\u{1F416}","\u{1F417}","\u{1F42E}","\u{1F404}","\u{1F403}","\u{1F402}","\u{1F98C}","\u{1F410}","\u{1F40F}","\u{1F411}","\u{1F42A}","\u{1F42B}","\u{1F426}","\u{1F427}","\u{1F985}","\u{1F986}","\u{1F9A2}","\u{1F989}","\u{1F9A9}","\u{1F9A4}","\u{1F438}","\u{1F98E}","\u{1F422}","\u{1F40D}","\u{1F40A}","\u{1F420}","\u{1F41F}","\u{1F988}","\u{1F421}","\u{1F42C}","\u{1F40B}","\u{1F433}","\u{1F41E}","\u{1F41C}","\u{1F41D}","\u{1F98B}","\u{1F40C}","\u{1F997}","\u{1FAB2}","\u{1F99F}","\u{1F9A0}","\u{1FAC3}"])}};var qe=class extends oe{static dummy(){return new this().setWriter(oe.writers.void())}request=async({request:e,label:t})=>{let r=this.colors.none;this.log(...[t].filter(Boolean),r(`${e.method}()`))};rpcError=async({request:e,error:t,label:r})=>{this.error(...[r].filter(Boolean),`${e.method}()`,t)};#e=new bt;#t(e){return[this.colors.yellow(`[${e.ip}]`),this.colors.green(e.headers.origin?e.headers.origin:"(no-origin)")].join(" ")}http(e){let t=this.#t(e);return{error:this.error.bind(this),request:r=>this.request({...r,label:t}),rpcError:r=>this.rpcError({...r,label:t})}}webSocket(e){let t=this.#t(e),r=this.#e.pull(),s=this.colors.yellow,i=a=>{let o=t+" "+(a?r+s(" <-"):r+s(" ->"));return{error:this.error.bind(this),request:c=>this.request({...c,label:o}),rpcError:c=>this.rpcError({...c,label:o})}};return{remote:i(!0),local:i(!1)}}};var le=class extends qe{request=async()=>{}};var Ge=new le;function Ce({fns:n,tap:e=Ge}){return async t=>{let r=t.method.split("."),s=rs(n,r),i=async()=>await s(...t.params);return e.request({request:t}),await qr({tap:e,request:t,action:i})}}var Ie=Symbol("tune"),wn=Symbol("query"),bn=Symbol("notify"),kn=Symbol("settings");function is(n){function e(t){let r={notify:void 0};return new Proxy(()=>{},{apply:(s,i,a)=>n(t,a,r),get:(s,i)=>{if(i!=="then")return i===Ie?a=>(...o)=>n(t,o,{...r,...a}):i===bn?(...a)=>n(t,a,{...r,notify:!0}):i===wn?(...a)=>n(t,a,{...r,notify:!1}):i===kn?r:(s[i]||(s[i]=e([...t,i])),s[i])},set:(s,i,a)=>(s[i]=a,!0)})}return e([])}function te(n){let{endpoint:e,tap:t=Ge}=n,r=1;return is(async(s,i,a)=>{let o=a.notify??n.notify??!1,c=a.transfer,l={jsonrpc:"2.0",method:s.join("."),params:i},d=o?l:{...l,id:r++};t.request({request:d});let u=await e(d,{transfer:c});if(o&&!u)return null;if(!u)throw new ae("response was null, but shouldn't be, because the request was not a notification");if("error"in u)throw new ae(n.label?`${n.label}: ${u.error.message}`:u.error.message);return u.result})}function Ke(n){return te({endpoint:Ce(n),tap:n.tap})}var ue=class{recv=wt();sendRequest=wt();sendResponse=wt();static makeEntangledPair({origin:e="example.e280.org"}={}){let t=new this,r=new this,s=[t.sendRequest.sub(a=>r.recv(a,{origin:e})),t.sendResponse.sub(a=>r.recv(a,{origin:e})),r.sendRequest.sub(a=>t.recv(a,{origin:e})),r.sendResponse.sub(a=>t.recv(a,{origin:e}))];return[t,r,()=>s.forEach(a=>a())]}};var X=class{transfer=void 0};function kt(n,e){return n.addEventListener("message",e),()=>n.removeEventListener("message",e)}function as(n,e){return async(t,{transfer:r}={})=>{if("id"in t){let s=j();return e(t,r,s.promise),n.wait(t.id,t.method).then(i=>(s.resolve(i),i))}else{let s=Promise.resolve(null);return e(t,r,s),s}}}function os(n){let e=[],t=[];for(let r of Array.isArray(n)?n:[n])"method"in r?e.push(r):t.push(r);return{requests:e,responses:t}}async function cs(n,e){let t=(await Promise.all(e.map(async r=>n(r)))).filter(r=>r!==null);return t.length===0?null:t.length===1?t[0]:t}var Pe=class extends ue{#e=new de;constructor(e){super(),this.#e.add(this.sendRequest.sub((t,r)=>e.postMessage(t,r)),this.sendResponse.sub((t,r)=>e.postMessage(t,r)),kt(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var pr=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var Qe=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let r=j();return this.pending.set(e,{method:t,deferred:r}),await fr(this.timeout,`request #${e} ${t}()`,()=>r.promise)}deliverResponse(e){let t=this.pending.get(e.id);t&&("error"in e?t.deferred.reject(new ae(e.error.message)):t.deferred.resolve(e))}};var Re=class{options;waiter;remoteEndpoint;remote;constructor(e){this.options=e;let{conduit:t}=e;this.waiter=new Qe(e.timeout??pr.timeout),this.remoteEndpoint=as(this.waiter,t.sendRequest.pub.bind(t.sendRequest)),this.remote=te({endpoint:this.remoteEndpoint,tap:e.tap}),t.recv.sub(r=>this.recv(r))}async recv(e){let t=new X,{conduit:r,getLocalEndpoint:s}=this.options,{requests:i,responses:a}=os(e);for(let c of a)this.waiter.deliverResponse(c);if(!s)return;let o=await cs(s(this.remote,t),i);o&&await r.sendResponse(o,t.transfer)}};var me=class{host;constructor(e){this.host=e}},he=class{work;constructor(e){this.work=e}};var Y=new le;async function ds(n,e,t={}){let r=t.tap??Y,s=new Re({tap:r,timeout:t.timeout??1/0,conduit:new Pe(n.getSelf()),getLocalEndpoint:(i,a)=>Ce({tap:r,fns:e(new me(i.host),a)})});return await s.remote.meta.ready(),s.remote.host}var Ee=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let r=t.tap??Y,s=e.loadWorker(t.workerUrl,t.label),i=j(),a={async ready(){i.resolve()}},o=new Re({tap:r,timeout:t.timeout??1/0,conduit:new Pe(s),getLocalEndpoint:(c,l)=>Ce({tap:r,fns:{meta:a,host:t.setupHost(new he(c),l)}})});return await i.promise,new this(s,o)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var yt=class{threads;static async make(e,t){let r=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(r)].map(async(i,a)=>Ee.make(e,{...t,label:t.label??`${t.label??"comrade"}_${a+1}`})));return new this(s,{tap:t.tap})}work;#e=new Set;#t=[];constructor(e,t={}){this.threads=e;let r=t.tap??Y,s=async(i,a)=>this.#r({request:i,prom:j(),transfer:a?.transfer});this.work=te({tap:r,endpoint:s}),e.forEach(i=>this.#e.add(i))}get threadCount(){return this.threads.length}terminate(){for(let e of this.threads)e.terminate()}#r(e){return this.#t.push(e),this.#s(),e.prom.promise}#s(){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.#s()})}}};var ls=n=>({thread:e=>Ee.make(n,e),cluster:e=>yt.make(n,e),worker:(e,t={})=>ds(n,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:r,tap:s=Y}=e,i=new me,a=new he;return a.work=Ke({tap:s,fns:t(i,new X)}),i.host=Ke({tap:s,fns:r(a,new X)}),{workShell:a,hostShell:i,work:a.work,host:i.host}},mockWork(e,t=Y){let r=new me,s=new he;return s.work=Ke({tap:t,fns:e(r,new X)}),{workShell:s,hostShell:r,work:s.work,mockHost:i=>(r.host=Ke({tap:t,fns:i(s,new X)}),{workShell:s,hostShell:r,work:s.work,host:r.host})}}});var us=()=>({getSelf(){return self},guessOptimalThreadCount(){let n=navigator.hardwareConcurrency??1;return Math.max(1,n-1)},loadWorker(n,e){return new window.Worker(n,{name:e,type:"module"})},async loadWasm(n){return WebAssembly.instantiateStreaming(fetch(n))}});var xn=us(),xt=ls(xn);function p(n){if(!n)throw new Error("Assertion failed.")}var Tt=n=>{let e=(n%360+360)%360;if(e===0||e===90||e===180||e===270)return e;throw new Error(`Invalid rotation ${n}.`)},U=n=>n&&n[n.length-1];var V=class n{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){let t=0;for(let r=0;r<e;r++)t<<=1,t|=this.readBit();return t}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 n(this.bytes);return e.pos=this.pos,e}},C=n=>{let e=0;for(;n.readBit()===0&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+n.readBits(e)},_e=n=>{let e=C(n);return(e&1)===0?-(e>>1):e+1>>1};var vt=n=>n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength),G=n=>n instanceof DataView?n:n instanceof ArrayBuffer?new DataView(n):new DataView(n.buffer,n.byteOffset,n.byteLength),tu=new TextEncoder,gr=n=>Object.fromEntries(Object.entries(n).map(([e,t])=>[t,e])),wr={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Ct=gr(wr),br={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},It=gr(br),kr={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},Pt=gr(kr);var yr=n=>n instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&n instanceof SharedArrayBuffer||ArrayBuffer.isView(n),re=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}},xr=n=>[...n].map(e=>e.toString(16).padStart(2,"0")).join(""),Sr=n=>(n=n>>1&1431655765|(n&1431655765)<<1,n=n>>2&858993459|(n&858993459)<<2,n=n>>4&252645135|(n&252645135)<<4,n=n>>8&16711935|(n&16711935)<<8,n=n>>16&65535|(n&65535)<<16,n>>>0),D=(n,e,t)=>{let r=0,s=n.length-1,i=-1;for(;r<=s;){let a=r+s>>1,o=t(n[a]);o===e?(i=a,s=a-1):o<e?r=a+1:s=a-1}return i},F=(n,e,t)=>{let r=0,s=n.length-1,i=-1;for(;r<=s;){let a=r+(s-r+1)/2|0;t(n[a])<=e?(i=a,r=a+1):s=a-1}return i},N=()=>{let n,e;return{promise:new Promise((r,s)=>{n=r,e=s}),resolve:n,reject:e}},ms=(n,e)=>{let t=n.indexOf(e);t!==-1&&n.splice(t,1)},Tr=(n,e)=>{for(let t=n.length-1;t>=0;t--)if(e(n[t]))return n[t]},Rt=(n,e)=>{for(let t=n.length-1;t>=0;t--)if(e(n[t]))return t;return-1},hs=async function*(n){Symbol.iterator in n?yield*n[Symbol.iterator]():yield*n[Symbol.asyncIterator]()},fs=n=>{if(!(Symbol.iterator in n)&&!(Symbol.asyncIterator in n))throw new TypeError("Argument must be an iterable or async iterable.")};var vr=(n,e)=>({async next(){let t=await n.next();return t.done?{value:void 0,done:!0}:{value:e(t.value),done:!1}},return(){return n.return()},throw(t){return n.throw(t)},[Symbol.asyncIterator](){return this}});var L="und",Fe=(n,e)=>{let t=10**e;return Math.round(n*t)/t},ps=(n,e)=>Math.round(n/e)*e,gs=n=>{let e=0;for(;n;)e++,n>>=1;return e},Sn=/^[a-z]{3}$/,Et=n=>Sn.test(n),se=1e6*(1+Number.EPSILON),_t=(n,e)=>{let t={...n};for(let r in e)typeof n[r]=="object"&&n[r]!==null&&typeof e[r]=="object"&&e[r]!==null?t[r]=_t(n[r],e[r]):t[r]=e[r];return t},Cr=async(n,e,t)=>{let r=0;for(;;)try{return await fetch(n,e)}catch(s){console.error("Retrying failed fetch. Error:",s),r++;let i=t(r);if(i===null)throw s;if(!Number.isFinite(i)||i<0)throw new TypeError("Retry delay must be a non-negative finite number.");i>0&&await new Promise(a=>setTimeout(a,1e3*i))}};var St=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}};var Ft=[],Ir=[];var De=["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"],Tn=["aac","opus","mp3","vorbis","flac"],iu=[...Tn,...De];var fe=[{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 ws=".01.01.01.01.00",bs=".0.110.01.01.01.0";var Dt=n=>{let{codec:e,codecDescription:t,colorSpace:r,avcCodecInfo:s,hevcCodecInfo:i,vp9CodecInfo:a,av1CodecInfo:o}=n;if(e==="avc"){if(s){let c=new Uint8Array([s.avcProfileIndication,s.profileCompatibility,s.avcLevelIndication]);return`avc1.${xr(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.${xr(t.subarray(1,4))}`}else if(e==="hevc"){let c,l,d,u,h,m;if(i)c=i.generalProfileSpace,l=i.generalProfileIdc,d=Sr(i.generalProfileCompatibilityFlags),u=i.generalTierFlag,h=i.generalLevelIdc,m=[...i.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 w=G(t),g=w.getUint8(1);c=g>>6&3,l=g&31,d=Sr(w.getUint32(2)),u=g>>5&1,h=w.getUint8(12),m=[];for(let b=0;b<6;b++)m.push(w.getUint8(6+b))}let f="hev1.";for(f+=["","A","B","C"][c]+l,f+=".",f+=d.toString(16).toUpperCase(),f+=".",f+=u===0?"L":"H",f+=h;m.length>0&&m[m.length-1]===0;)m.pop();return m.length>0&&(f+=".",f+=m.map(w=>w.toString(16).toUpperCase()).join(".")),f}else{if(e==="vp8")return"vp8";if(e==="vp9"){if(!a){let b=n.width*n.height,y=U(fe).level;for(let I of fe)if(b<=I.maxPictureSize){y=I.level;break}return`vp09.00.${y.toString().padStart(2,"0")}.08`}let c=a.profile.toString().padStart(2,"0"),l=a.level.toString().padStart(2,"0"),d=a.bitDepth.toString().padStart(2,"0"),u=a.chromaSubsampling.toString().padStart(2,"0"),h=a.colourPrimaries.toString().padStart(2,"0"),m=a.transferCharacteristics.toString().padStart(2,"0"),f=a.matrixCoefficients.toString().padStart(2,"0"),w=a.videoFullRangeFlag.toString().padStart(2,"0"),g=`vp09.${c}.${l}.${d}.${u}`;return g+=`.${h}.${m}.${f}.${w}`,g.endsWith(ws)&&(g=g.slice(0,-ws.length)),g}else if(e==="av1"){if(!o){let I=n.width*n.height,T=U(fe).level;for(let k of fe)if(I<=k.maxPictureSize){T=k.level;break}return`av01.0.${T.toString().padStart(2,"0")}M.08`}let c=o.profile,l=o.level.toString().padStart(2,"0"),d=o.tier?"H":"M",u=o.bitDepth.toString().padStart(2,"0"),h=o.monochrome?"1":"0",m=100*o.chromaSubsamplingX+10*o.chromaSubsamplingY+1*(o.chromaSubsamplingX&&o.chromaSubsamplingY?o.chromaSamplePosition:0),f=r?.primaries?wr[r.primaries]:1,w=r?.transfer?br[r.transfer]:1,g=r?.matrix?kr[r.matrix]:1,b=r?.fullRange?1:0,y=`av01.${c}.${l}${d}.${u}`;return y+=`.${h}.${m.toString().padStart(3,"0")}`,y+=`.${f.toString().padStart(2,"0")}`,y+=`.${w.toString().padStart(2,"0")}`,y+=`.${g.toString().padStart(2,"0")}`,y+=`.${b}`,y.endsWith(bs)&&(y=y.slice(0,-bs.length)),y}}throw new TypeError(`Unhandled codec '${e}'.`)};var At=n=>{let{codec:e,codecDescription:t,aacCodecInfo:r}=n;if(e==="aac"){if(!r)throw new TypeError("AAC codec info must be provided.");return r.isMpeg2?"mp4a.67":`mp4a.40.${Pr(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&&De.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Pr=n=>{if(!n||n.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");let e=new V(n),t=e.readBits(5);t===31&&(t=32+e.readBits(6));let r=e.readBits(4),s=null;if(r===15)s=e.readBits(24);else{let o=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];r<o.length&&(s=o[r])}let i=e.readBits(4),a=null;return i>=1&&i<=7&&(a={1:1,2:2,3:3,4:4,5:5,6:6,7:8}[i]),{objectType:t,frequencyIndex:r,sampleRate:s,channelConfiguration:i,numberOfChannels:a}},ks=48e3,vn=/^pcm-([usf])(\d+)+(be)?$/,ys=n=>{if(p(De.includes(n)),n==="ulaw")return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if(n==="alaw")return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};let e=vn.exec(n);p(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",i=n==="pcm-u8"?2**7:0;return{dataType:t,sampleSize:r,littleEndian:s,silentValue:i}};var pe=class{constructor(e){this._factor=e}_toVideoBitrate(e,t,r){let s=t*r,i={avc:1,hevc:.6,vp9:.6,av1:.4,vp8:1.2},a=1920*1080,o=3e6,c=Math.pow(s/a,.95),u=o*c*i[e]*this._factor;return Math.ceil(u/1e3)*1e3}_toAudioBitrate(e){if(De.includes(e)||e==="flac")return;let r={aac:128e3,opus:64e3,mp3:16e4,vorbis:64e3}[e];if(!r)throw new Error(`Unhandled codec: ${e}`);let s=r*this._factor;return e==="aac"?s=[96e3,128e3,16e4,192e3].reduce((a,o)=>Math.abs(o-s)<Math.abs(a-s)?o:a):e==="opus"||e==="vorbis"?s=Math.max(6e3,s):e==="mp3"&&(s=[8e3,16e3,24e3,32e3,4e4,48e3,64e3,8e4,96e3,112e3,128e3,16e4,192e3,224e3,256e3,32e4].reduce((a,o)=>Math.abs(o-s)<Math.abs(a-s)?o:a)),Math.round(s/1e3)*1e3}},au=new pe(.3),ou=new pe(.6),cu=new pe(1),du=new pe(2),lu=new pe(4);var Cs=n=>{let e=[],t=0;for(;t<n.length;){let r=-1,s=0;for(let i=t;i<n.length-3;i++){if(n[i]===0&&n[i+1]===0&&n[i+2]===1){r=i,s=3;break}if(i<n.length-4&&n[i]===0&&n[i+1]===0&&n[i+2]===0&&n[i+3]===1){r=i,s=4;break}}if(r===-1)break;if(t>0&&r>t){let i=n.subarray(t,r);i.length>0&&e.push(i)}t=r+s}if(t<n.length){let r=n.subarray(t);r.length>0&&e.push(r)}return e},Er=n=>{let e=[],t=n.length;for(let r=0;r<t;r++)r+2<t&&n[r]===0&&n[r+1]===0&&n[r+2]===3?(e.push(0,0),r+=2):e.push(n[r]);return new Uint8Array(e)};var Rr=n=>n[0]&31,Is=n=>{try{let e=Cs(n),t=e.filter(h=>Rr(h)===7),r=e.filter(h=>Rr(h)===8),s=e.filter(h=>Rr(h)===13);if(t.length===0||r.length===0)return null;let i=t[0],a=new V(Er(i));if(a.skipBits(1),a.skipBits(2),a.readBits(5)!==7)return console.error("Invalid SPS NAL unit type"),null;let c=a.readAlignedByte(),l=a.readAlignedByte(),d=a.readAlignedByte(),u={configurationVersion:1,avcProfileIndication:c,profileCompatibility:l,avcLevelIndication:d,lengthSizeMinusOne:3,sequenceParameterSets:t,pictureParameterSets:r,chromaFormat:null,bitDepthLumaMinus8:null,bitDepthChromaMinus8:null,sequenceParameterSetExt:null};if(c===100||c===110||c===122||c===144){C(a);let h=C(a);h===3&&a.skipBits(1);let m=C(a),f=C(a);u.chromaFormat=h,u.bitDepthLumaMinus8=m,u.bitDepthChromaMinus8=f,u.sequenceParameterSetExt=s}return u}catch(e){return console.error("Error building AVC Decoder Configuration Record:",e),null}};var xs=32,Ss=33,Ts=34,Cn=39,In=40,Ae=n=>n[0]>>1&63,Ps=n=>{try{let e=Cs(n),t=e.filter(R=>Ae(R)===xs),r=e.filter(R=>Ae(R)===Ss),s=e.filter(R=>Ae(R)===Ts),i=e.filter(R=>Ae(R)===Cn||Ae(R)===In);if(r.length===0||s.length===0)return null;let a=r[0],o=new V(Er(a));o.skipBits(16),o.readBits(4);let c=o.readBits(3),l=o.readBits(1),{general_profile_space:d,general_tier_flag:u,general_profile_idc:h,general_profile_compatibility_flags:m,general_constraint_indicator_flags:f,general_level_idc:w}=Pn(o,c);C(o);let g=C(o);g===3&&o.skipBits(1),C(o),C(o),o.readBits(1)&&(C(o),C(o),C(o),C(o));let b=C(o),y=C(o);C(o);let T=o.readBits(1)?0:c;for(let R=T;R<=c;R++)C(o),C(o),C(o);C(o),C(o),C(o),C(o),C(o),C(o),o.readBits(1)&&o.readBits(1)&&Rn(o),o.skipBits(1),o.skipBits(1),o.readBits(1)&&(o.skipBits(4),o.skipBits(4),C(o),C(o),o.skipBits(1));let k=C(o);if(En(o,k),o.readBits(1)){let R=C(o);for(let E=0;E<R;E++)C(o),o.skipBits(1)}o.skipBits(1),o.skipBits(1);let x=0;o.readBits(1)&&(x=Fn(o,c));let S=0;if(s.length>0){let R=s[0],E=new V(Er(R));E.skipBits(16),C(E),C(E),E.skipBits(1),E.skipBits(1),E.skipBits(3),E.skipBits(1),E.skipBits(1),C(E),C(E),_e(E),E.skipBits(1),E.skipBits(1),E.readBits(1)&&C(E),_e(E),_e(E),E.skipBits(1),E.skipBits(1),E.skipBits(1),E.skipBits(1);let A=E.readBits(1),ie=E.readBits(1);!A&&!ie?S=0:A&&!ie?S=2:!A&&ie?S=3:S=0}let _=[...t.length?[{arrayCompleteness:1,nalUnitType:xs,nalUnits:t}]:[],...r.length?[{arrayCompleteness:1,nalUnitType:Ss,nalUnits:r}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:Ts,nalUnits:s}]:[],...i.length?[{arrayCompleteness:1,nalUnitType:Ae(i[0]),nalUnits:i}]:[]];return{configurationVersion:1,generalProfileSpace:d,generalTierFlag:u,generalProfileIdc:h,generalProfileCompatibilityFlags:m,generalConstraintIndicatorFlags:f,generalLevelIdc:w,minSpatialSegmentationIdc:x,parallelismType:S,chromaFormatIdc:g,bitDepthLumaMinus8:b,bitDepthChromaMinus8:y,avgFrameRate:0,constantFrameRate:0,numTemporalLayers:c+1,temporalIdNested:l,lengthSizeMinusOne:3,arrays:_}}catch(e){return console.error("Error building HEVC Decoder Configuration Record:",e),null}},Pn=(n,e)=>{let t=n.readBits(2),r=n.readBits(1),s=n.readBits(5),i=0;for(let d=0;d<32;d++)i=i<<1|n.readBits(1);let a=new Uint8Array(6);for(let d=0;d<6;d++)a[d]=n.readBits(8);let o=n.readBits(8),c=[],l=[];for(let d=0;d<e;d++)c.push(n.readBits(1)),l.push(n.readBits(1));if(e>0)for(let d=e;d<8;d++)n.skipBits(2);for(let d=0;d<e;d++)c[d]&&n.skipBits(88),l[d]&&n.skipBits(8);return{general_profile_space:t,general_tier_flag:r,general_profile_idc:s,general_profile_compatibility_flags:i,general_constraint_indicator_flags:a,general_level_idc:o}},Rn=n=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!n.readBits(1))C(n);else{let s=Math.min(64,1<<4+(e<<1));e>1&&_e(n);for(let i=0;i<s;i++)_e(n)}},En=(n,e)=>{let t=[];for(let r=0;r<e;r++)t[r]=_n(n,r,e,t)},_n=(n,e,t,r)=>{let s=0,i=0,a=0;if(e!==0&&(i=n.readBits(1)),i){if(e===t){let c=C(n);a=e-(c+1)}else a=e-1;n.readBits(1),C(n);let o=r[a]??0;for(let c=0;c<=o;c++)n.readBits(1)||n.readBits(1);s=r[a]}else{let o=C(n),c=C(n);for(let l=0;l<o;l++)C(n),n.readBits(1);for(let l=0;l<c;l++)C(n),n.readBits(1);s=o+c}return s},Fn=(n,e)=>{if(n.readBits(1)&&n.readBits(8)===255&&(n.readBits(16),n.readBits(16)),n.readBits(1)&&n.readBits(1),n.readBits(1)&&(n.readBits(3),n.readBits(1),n.readBits(1)&&(n.readBits(8),n.readBits(8),n.readBits(8))),n.readBits(1)&&(C(n),C(n)),n.readBits(1),n.readBits(1),n.readBits(1),n.readBits(1)&&(C(n),C(n),C(n),C(n)),n.readBits(1)&&(n.readBits(32),n.readBits(32),n.readBits(1)&&C(n),n.readBits(1)&&Dn(n,!0,e)),n.readBits(1)){n.readBits(1),n.readBits(1),n.readBits(1);let t=C(n);return C(n),C(n),C(n),C(n),t}return 0},Dn=(n,e,t)=>{let r=!1,s=!1,i=!1;e&&(r=n.readBits(1)===1,s=n.readBits(1)===1,(r||s)&&(i=n.readBits(1)===1,i&&(n.readBits(8),n.readBits(5),n.readBits(1),n.readBits(5)),n.readBits(4),n.readBits(4),i&&n.readBits(4),n.readBits(5),n.readBits(5),n.readBits(5)));for(let a=0;a<=t;a++){let o=n.readBits(1)===1,c=!0;o||(c=n.readBits(1)===1);let l=!1;c?C(n):l=n.readBits(1)===1;let d=1;l||(d=C(n)+1),r&&vs(n,d,i),s&&vs(n,d,i)}},vs=(n,e,t)=>{for(let r=0;r<e;r++)C(n),C(n),t&&(C(n),C(n)),n.readBits(1)};var Bt=n=>{let e=n[n.length-1];if(e&&(e&224)===192){let S=((e&24)>>3)+1,P=2+((e&7)+1)*S;if(n[n.length-P]!==e)return null;let R=0,E=n.length-P+1;for(let A=0;A<S;A++){if(!n[E+A])return null;R|=n[E+A]<<8*A}n=n.subarray(0,R)}let t=new V(n);if(t.readBits(2)!==2)return null;let s=t.readBits(1),a=(t.readBits(1)<<1)+s;if(a===3&&t.skipBits(1),t.readBits(1)===1||t.readBits(1)!==0||(t.skipBits(2),t.readBits(24)!==4817730))return null;let d=8;a>=2&&(d=t.readBits(1)?12:10);let u=t.readBits(3),h=0,m=0;if(u!==7)if(m=t.readBits(1),a===1||a===3){let _=t.readBits(1),P=t.readBits(1);h=!_&&!P?3:_&&!P?2:1,t.skipBits(1)}else h=1;else h=3,m=1;let f=t.readBits(16),w=t.readBits(16),g=f+1,b=w+1,y=g*b,I=U(fe).level;for(let S of fe)if(y<=S.maxPictureSize){I=S.level;break}return{profile:a,level:I,bitDepth:d,chromaSubsampling:h,videoFullRangeFlag:m,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}},Ot=n=>{let e=new V(n),t=()=>{let r=0;for(let s=0;s<8;s++){let i=e.readAlignedByte();if(i===void 0)return 0;if(r|=(i&127)<<s*7,!(i&128))break;if(s===7&&i&128)return null}return r>=2**32-1?null:r};for(;e.getBitsLeft()>=8;){let r=e.readBits(8),s=r>>3&15,i=r>>2&1,a=r>>1&1;i&&e.skipBits(8);let o;if(a){let c=t();if(c===null)return null;o=c}else o=Math.floor(e.getBitsLeft()/8);if(s===1){let c=e.readBits(3),l=e.readBits(1),d=e.readBits(1),u=0,h=0,m=0;if(d)u=e.readBits(5);else{if(e.readBits(1)&&(e.skipBits(32),e.skipBits(32),e.readBits(1)))return null;let k=e.readBits(1);k&&(m=e.readBits(5),e.skipBits(32),e.skipBits(5),e.skipBits(5));let x=e.readBits(5);for(let S=0;S<=x;S++){e.skipBits(12);let _=e.readBits(5);if(S===0&&(u=_),_>7){let R=e.readBits(1);S===0&&(h=R)}if(k&&e.readBits(1)){let E=m+1;e.skipBits(E),e.skipBits(E),e.skipBits(1)}e.readBits(1)&&e.skipBits(4)}}let f=e.readBits(1),w=8;c===2&&f?w=e.readBits(1)?12:10:c<=2&&(w=f?10:8);let g=0;c!==1&&(g=e.readBits(1));let b=1,y=1,I=0;return g||(c===0?(b=1,y=1):c===1?(b=0,y=0):w===12&&(b=e.readBits(1),b&&(y=e.readBits(1))),b&&y&&(I=e.readBits(2))),{profile:c,level:u,tier:h,bitDepth:w,monochrome:g,chromaSubsamplingX:b,chromaSubsamplingY:y,chromaSamplePosition:I}}e.skipBits(o*8)}return null},Rs=n=>{let e=G(n),t=e.getUint8(9),r=e.getUint16(10,!0),s=e.getUint32(12,!0),i=e.getInt16(16,!0),a=e.getUint8(18),o=null;return a&&(o=n.subarray(19,21+t)),{outputChannelCount:t,preSkip:r,inputSampleRate:s,outputGain:i,channelMappingFamily:a,channelMappingTable:o}},An=[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],Es=n=>{let e=n[0]>>3;return{durationInSamples:An[e]}},_s=n=>{if(n.length<7)throw new Error("Setup header is too short.");if(n[0]!==5)throw new Error("Wrong packet type in Setup header.");if(String.fromCharCode(...n.slice(1,7))!=="vorbis")throw new Error("Invalid packet signature in Setup header.");let t=n.length,r=new Uint8Array(t);for(let u=0;u<t;u++)r[u]=n[t-1-u];let s=new V(r),i=0;for(;s.getBitsLeft()>97;)if(s.readBits(1)===1){i=s.pos;break}if(i===0)throw new Error("Invalid Setup header: framing bit not found.");let a=0,o=!1,c=0;for(;s.getBitsLeft()>=97;){let u=s.pos,h=s.readBits(8),m=s.readBits(16),f=s.readBits(16);if(h>63||m!==0||f!==0){s.pos=u;break}if(s.skipBits(1),a++,a>64)break;s.clone().readBits(6)+1===a&&(o=!0,c=a)}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(i);let d=Array(l).fill(0);for(let u=l-1;u>=0;u--)s.skipBits(40),d[u]=s.readBits(1);return{modeBlockflags:d}};var Fs=n=>{let t=(n.hasVideo?"video/":n.hasAudio?"audio/":"application/")+(n.isQuickTime?"quicktime":"mp4");if(n.codecStrings.length>0){let r=[...new Set(n.codecStrings)];t+=`; codecs="${r.join(", ")}"`}return t};var v;(function(n){n[n.EBML=440786851]="EBML",n[n.EBMLVersion=17030]="EBMLVersion",n[n.EBMLReadVersion=17143]="EBMLReadVersion",n[n.EBMLMaxIDLength=17138]="EBMLMaxIDLength",n[n.EBMLMaxSizeLength=17139]="EBMLMaxSizeLength",n[n.DocType=17026]="DocType",n[n.DocTypeVersion=17031]="DocTypeVersion",n[n.DocTypeReadVersion=17029]="DocTypeReadVersion",n[n.SeekHead=290298740]="SeekHead",n[n.Seek=19899]="Seek",n[n.SeekID=21419]="SeekID",n[n.SeekPosition=21420]="SeekPosition",n[n.Duration=17545]="Duration",n[n.Info=357149030]="Info",n[n.TimestampScale=2807729]="TimestampScale",n[n.MuxingApp=19840]="MuxingApp",n[n.WritingApp=22337]="WritingApp",n[n.Tracks=374648427]="Tracks",n[n.TrackEntry=174]="TrackEntry",n[n.TrackNumber=215]="TrackNumber",n[n.TrackUID=29637]="TrackUID",n[n.TrackType=131]="TrackType",n[n.FlagEnabled=185]="FlagEnabled",n[n.FlagDefault=136]="FlagDefault",n[n.FlagForced=21930]="FlagForced",n[n.FlagLacing=156]="FlagLacing",n[n.Language=2274716]="Language",n[n.CodecID=134]="CodecID",n[n.CodecPrivate=25506]="CodecPrivate",n[n.CodecDelay=22186]="CodecDelay",n[n.SeekPreRoll=22203]="SeekPreRoll",n[n.DefaultDuration=2352003]="DefaultDuration",n[n.Video=224]="Video",n[n.PixelWidth=176]="PixelWidth",n[n.PixelHeight=186]="PixelHeight",n[n.Audio=225]="Audio",n[n.SamplingFrequency=181]="SamplingFrequency",n[n.Channels=159]="Channels",n[n.BitDepth=25188]="BitDepth",n[n.Segment=408125543]="Segment",n[n.SimpleBlock=163]="SimpleBlock",n[n.BlockGroup=160]="BlockGroup",n[n.Block=161]="Block",n[n.BlockAdditions=30113]="BlockAdditions",n[n.BlockMore=166]="BlockMore",n[n.BlockAdditional=165]="BlockAdditional",n[n.BlockAddID=238]="BlockAddID",n[n.BlockDuration=155]="BlockDuration",n[n.ReferenceBlock=251]="ReferenceBlock",n[n.Cluster=524531317]="Cluster",n[n.Timestamp=231]="Timestamp",n[n.Cues=475249515]="Cues",n[n.CuePoint=187]="CuePoint",n[n.CueTime=179]="CueTime",n[n.CueTrackPositions=183]="CueTrackPositions",n[n.CueTrack=247]="CueTrack",n[n.CueClusterPosition=241]="CueClusterPosition",n[n.Colour=21936]="Colour",n[n.MatrixCoefficients=21937]="MatrixCoefficients",n[n.TransferCharacteristics=21946]="TransferCharacteristics",n[n.Primaries=21947]="Primaries",n[n.Range=21945]="Range",n[n.Projection=30320]="Projection",n[n.ProjectionType=30321]="ProjectionType",n[n.ProjectionPoseRoll=30325]="ProjectionPoseRoll",n[n.Attachments=423732329]="Attachments",n[n.Chapters=272869232]="Chapters",n[n.Tags=307544935]="Tags"})(v||(v={}));var Bn=[v.EBML,v.Segment],On=[v.EBMLMaxIDLength,v.EBMLMaxSizeLength,v.SeekHead,v.Info,v.Cluster,v.Tracks,v.Cues,v.Attachments,v.Chapters,v.Tags],_r=[...Bn,...On];var Ds=8,Ut=2,ge=4+Ds,we=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,r,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readS16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readVarIntSize(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),r=e.getUint8(t),s=1,i=128;for(;(r&i)===0&&s<8;)s++,i>>=1;return s}readVarInt(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1),r=e.getUint8(t),s=1,i=128;for(;(r&i)===0&&s<Ds;)s++,i>>=1;let{view:a,offset:o}=this.reader.getViewAndOffset(this.pos,this.pos+s),c=r&i-1;for(let l=1;l<s;l++)c*=256,c+=a.getUint8(o+l);return this.pos+=s,c}readUnsignedInt(e){if(e<1||e>8)throw new Error("Bad unsigned int size "+e);let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=0;for(let i=0;i<e;i++)s*=256,s+=t.getUint8(r+i);return this.pos+=e,s}readSignedInt(e){let t=this.readUnsignedInt(e);return t&1<<e*8-1&&(t-=2**(e*8)),t}readFloat(e){if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e),s=e===4?t.getFloat32(r,!1):t.getFloat64(r,!1);return this.pos+=e,s}readString(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,String.fromCharCode(...new Uint8Array(t.buffer,r,e))}readElementId(){let e=this.readVarIntSize();return this.readUnsignedInt(e)}readElementSize(){let e=this.readU8();return e===255?e=null:(this.pos--,e=this.readVarInt(),e===72057594037927940&&(e=null)),e}readElementHeader(){let e=this.readElementId(),t=this.readElementSize();return{id:e,size:t}}async searchForNextElementId(e,t){let s=new Set(e);for(;this.pos<t-ge;){this.reader.rangeIsLoaded(this.pos,this.pos+ge)||await this.reader.loadRange(this.pos,Math.min(this.pos+1048576,t));let i=this.pos,a=this.readElementHeader();if(s.has(a.id))return i;be(a.size),this.pos+=a.size}return null}},$={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 be(n){if(n===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var As=n=>{let t=(n.hasVideo?"video/":n.hasAudio?"audio/":"application/")+(n.isWebM?"webm":"x-matroska");if(n.codecStrings.length>0){let r=[...new Set(n.codecStrings.filter(Boolean))];t+=`; codecs="${r.join(", ")}"`}return t};var Un={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]},zn={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]},Mn={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},Bs=1483304551,Os=1231971951,Vn=(n,e,t,r)=>Math.floor(n===3?(12*e/t+r)*4:144*e/t+r),Us=(n,e)=>n===3?e===3?21:36:e===3?13:21,zs=(n,e)=>{let t=e.pos,r=n>>>24,s=n>>>16&255,i=n>>>8&255,a=n&255;if(r!==255&&s!==255&&i!==255&&a!==255)return e.pos+=4,null;if(e.pos+=1,r!==255||(s&224)!==224)return null;let o=s>>3&3,c=s>>1&3,l=i>>4&15,d=i>>2&3,u=i>>1&1,h=a>>6&3,m=a>>4&3,f=a>>3&1,w=a>>2&1,g=a&3,b=o===3?Un[c]?.[l]:zn[c]?.[l];if(!b||b===-1)return null;let y=b*1e3,I=Mn[o]?.[d];if(!I||I===-1)return null;let T=Vn(c,y,I,u);if(e.fileSize!==null&&e.fileSize-t<T)return null;let k;return o===3?k=c===3?384:1152:c===3?k=384:c===2?k=1152:k=576,{startPos:t,totalSize:T,mpegVersionId:o,layer:c,bitrate:y,frequencyIndex:d,sampleRate:I,channel:h,modeExtension:m,copyright:f,original:w,emphasis:g,audioSamplesInFrame:k}};var Fr=1399285583,Nn=79764919,Ms=new Uint32Array(256);for(let n=0;n<256;n++){let e=n<<24;for(let t=0;t<8;t++)e=e&2147483648?e<<1^Nn:e<<1;Ms[n]=e>>>0&4294967295}var Vs=n=>{let e=G(n),t=e.getUint32(22,!0);e.setUint32(22,0,!0);let r=0;for(let s=0;s<n.length;s++){let i=n[s];r=(r<<8^Ms[r>>>24^i])>>>0}return e.setUint32(22,t,!0),r},Ns=(n,e,t)=>{let r=0,s=null;if(n.length>0)if(e.codec==="vorbis"){p(e.vorbisInfo);let i=e.vorbisInfo.modeBlockflags.length,o=(1<<gs(i-1))-1<<1,c=(n[0]&o)>>1;if(c>=e.vorbisInfo.modeBlockflags.length)throw new Error("Invalid mode number.");let l=t,d=e.vorbisInfo.modeBlockflags[c];if(s=e.vorbisInfo.blocksizes[d],d===1){let u=(o|1)+1,h=n[0]&u?1:0;l=e.vorbisInfo.blocksizes[h]}r=l!==null?l+s>>2:0}else e.codec==="opus"&&(r=Es(n).durationInSamples);return{durationInSamples:r,vorbisBlockSize:s}},Ls=n=>{let e="audio/ogg";if(n.codecStrings){let t=[...new Set(n.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var Oe=27,ke=282,Hs=ke+255*255,Be=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,r,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos+=1,e.getUint8(t)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!0)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!0)}readI64(){let e=this.readU32();return this.readI32()*4294967296+e}readAscii(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let i=0;i<e;i++)s+=String.fromCharCode(t.getUint8(r+i));return s}readPageHeader(){let e=this.pos;if(this.readU32()!==Fr)return null;this.pos+=1;let r=this.readU8(),s=this.readI64(),i=this.readU32(),a=this.readU32(),o=this.readU32(),c=this.readU8(),l=new Uint8Array(c);for(let m=0;m<c;m++)l[m]=this.readU8();let d=27+c,u=l.reduce((m,f)=>m+f,0),h=d+u;return{headerStartPos:e,totalSize:h,dataStartPos:e+d,dataSize:u,headerType:r,granulePosition:s,serialNumber:i,sequenceNumber:a,checksum:o,lacingValues:l}}findNextPageHeader(e){for(;this.pos<e-3;){let t=this.readU32(),r=t&255,s=t>>>8&255,i=t>>>16&255,a=t>>>24&255,o=79;if(!(r!==o&&s!==o&&i!==o&&a!==o)){if(this.pos-=4,t===Fr)return!0;this.pos+=1}}return!1}};var H=class{constructor(e){this.input=e}};var z=new Uint8Array(0),B=class n{constructor(e,t,r,s,i=-1,a){if(this.data=e,this.type=t,this.timestamp=r,this.duration=s,this.sequenceNumber=i,e===z&&a===void 0)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(a===void 0&&(a=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(i))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(a)||a<0)throw new TypeError("byteLength must be a non-negative integer.");this.byteLength=a}get isMetadataOnly(){return this.data===z}get microsecondTimestamp(){return Math.trunc(se*this.timestamp)}get microsecondDuration(){return Math.trunc(se*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 n(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 n(this.data,this.type,e?.timestamp??this.timestamp,e?.duration??this.duration,this.sequenceNumber,this.byteLength)}};var Ye=class n{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(se*this.timestamp)}get microsecondDuration(){return Math.trunc(se*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=vt(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.codedWidth,this.codedHeight=e.codedHeight,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 n(new VideoFrame(e,{timestamp:Math.trunc(t.timestamp*se),duration:Math.trunc((t.duration??0)*se)}),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 i=new OffscreenCanvas(r,s),a=i.getContext("2d",{alpha:!1,willReadFrequently:!0});p(a),a.drawImage(e,0,0),this._data=i,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 p(this._data!==null),Xe(this._data)?new n(this._data.clone(),{timestamp:this.timestamp,duration:this.duration}):this._data instanceof Uint8Array?new n(this._data.slice(),{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace}):new n(this._data,{format:this.format,codedWidth:this.codedWidth,codedHeight:this.codedHeight,timestamp:this.timestamp,duration:this.duration,colorSpace:this.colorSpace})}close(){this._closed||(Xe(this._data)?this._data.close():this._data=null,this._closed=!0)}allocationSize(){if(this._closed)throw new Error("VideoSample is closed.");return p(this._data!==null),Xe(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!yr(e))throw new TypeError("destination must be an ArrayBuffer or an ArrayBuffer view.");if(this._closed)throw new Error("VideoSample is closed.");if(p(this._data!==null),Xe(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)vt(e).set(this._data);else{let r=this._data.getContext("2d",{alpha:!1});p(r);let s=r.getImageData(0,0,this.codedWidth,this.codedHeight);vt(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return p(this._data!==null),Xe(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,i,a,o,c,l){let d=0,u=0,h=this.displayWidth,m=this.displayHeight,f=0,w=0,g=this.displayWidth,b=this.displayHeight;if(a!==void 0?(d=t,u=r,h=s,m=i,f=a,w=o,c!==void 0?(g=c,b=l):(g=h,b=m)):(f=t,w=r,s!==void 0&&(g=s,b=i)),!(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(d))throw new TypeError("sx must be a number.");if(!Number.isFinite(u))throw new TypeError("sy must be a number.");if(!Number.isFinite(h)||h<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(f))throw new TypeError("dx must be a number.");if(!Number.isFinite(w))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(b)||b<0)throw new TypeError("dHeight must be a non-negative number.");if(this._closed)throw new Error("VideoSample is closed.");this.rotation===90?[d,u,h,m]=[u,this.codedHeight-d-h,m,h]:this.rotation===180?[d,u]=[this.codedWidth-d-h,this.codedHeight-u-m]:this.rotation===270&&([d,u,h,m]=[this.codedWidth-u-m,d,m,h]);let y=this.toCanvasImageSource();e.save();let I=f+g/2,T=w+b/2;e.translate(I,T),e.rotate(this.rotation*Math.PI/180);let k=this.rotation%180===0?1:g/b;e.scale(1/k,k),e.drawImage(y,d,u,h,m,-g/2,-b/2,g,b),e.restore()}toCanvasImageSource(){if(this._closed)throw new Error("VideoSample is closed.");if(p(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}},Xe=n=>typeof VideoFrame<"u"&&n instanceof VideoFrame;var Ue=n=>{if(!n||typeof n!="object")throw new TypeError("options must be an object.");if(n.metadataOnly!==void 0&&typeof n.metadataOnly!="boolean")throw new TypeError("options.metadataOnly, when defined, must be a boolean.")},ye=n=>{if(typeof n!="number"||Number.isNaN(n))throw new TypeError("timestamp must be a number.")},ze=class{constructor(e){if(!(e instanceof Me))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return Ue(e),this._track._backing.getFirstPacket(e)}getPacket(e,t={}){return ye(e),Ue(t),this._track._backing.getPacket(e,t)}getNextPacket(e,t={}){if(!(e instanceof B))throw new TypeError("packet must be an EncodedPacket.");return Ue(t),this._track._backing.getNextPacket(e,t)}getKeyPacket(e,t={}){return ye(e),Ue(t),this._track._backing.getKeyPacket(e,t)}getNextKeyPacket(e,t={}){if(!(e instanceof B))throw new TypeError("packet must be an EncodedPacket.");return Ue(t),this._track._backing.getNextKeyPacket(e,t)}packets(e,t,r={}){if(e!==void 0&&!(e instanceof B))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 B))throw new TypeError("endPacket must be an EncodedPacket.");Ue(r);let s=[],{promise:i,resolve:a}=N(),{promise:o,resolve:c}=N(),l=!1,d=!1,u=null,h=[],m=()=>Math.max(2,h.length);return(async()=>{let f=e??await this.getFirstPacket(r);for(;f&&!d&&!(t&&f.sequenceNumber>=t?.sequenceNumber);){if(s.length>m()){({promise:o,resolve:c}=N()),await o;continue}s.push(f),a(),{promise:i,resolve:a}=N(),f=await this.getNextPacket(f,r)}l=!0,a()})().catch(f=>{u||(u=f,a())}),{async next(){for(;;){if(d)return{value:void 0,done:!0};if(u)throw u;if(s.length>0){let f=s.shift(),w=performance.now();for(h.push(w);h.length>0&&w-h[0]>=1e3;)h.shift();return c(),{value:f,done:!1}}else{if(l)return{value:void 0,done:!0};await i}}},async return(){return d=!0,c(),a(),{value:void 0,done:!0}},async throw(f){throw f},[Symbol.asyncIterator](){return this}}}},Dr=class{constructor(e,t){this.onSample=e,this.onError=t}},zt=class{mediaSamplesInRange(e=0,t=1/0){ye(e),ye(t);let r=[],s=!1,i=null,{promise:a,resolve:o}=N(),{promise:c,resolve:l}=N(),d=!1,u=!1,h=!1,m=null;return(async()=>{let f=new Error,w=await this._createDecoder(k=>{if(l(),k.timestamp>=t&&(u=!0),u){k.close();return}i&&(k.timestamp>e?(r.push(i),s=!0):i.close()),k.timestamp>=e&&(r.push(k),s=!0),i=s?null:k,r.length>0&&(o(),{promise:a,resolve:o}=N())},k=>{m||(k.stack=f.stack,m=k,o())}),g=this._createPacketSink(),b=await g.getKeyPacket(e)??await g.getFirstPacket();if(!b)return;let y=b,I;if(t<1/0){let k=await g.getPacket(t),x=k?k.type==="key"&&k.timestamp===t?k:await g.getNextKeyPacket(k):null;x&&(I=x)}let T=g.packets(b,I);for(await T.next();y&&!u;){let k=Ws(r.length);if(r.length+w.getDecodeQueueSize()>k){({promise:c,resolve:l}=N()),await c;continue}w.decode(y);let x=await T.next();if(x.done)break;y=x.value}await T.return(),h||await w.flush(),w.close(),!s&&i&&r.push(i),d=!0,o()})().catch(f=>{m||(m=f,o())}),{async next(){for(;;){if(h)return{value:void 0,done:!0};if(m)throw m;if(r.length>0){let f=r.shift();return l(),{value:f,done:!1}}else if(!d)await a;else return{value:void 0,done:!0}}},async return(){h=!0,u=!0,l(),o(),i?.close();for(let f of r)f.close();return{value:void 0,done:!0}},async throw(f){throw f},[Symbol.asyncIterator](){return this}}}mediaSamplesAtTimestamps(e){fs(e);let t=hs(e),r=[],s=[],{promise:i,resolve:a}=N(),{promise:o,resolve:c}=N(),l=!1,d=!1,u=null,h=m=>{s.push(m),a(),{promise:i,resolve:a}=N()};return(async()=>{let m=new Error,f=await this._createDecoder(k=>{if(c(),d){k.close();return}let x=0;for(;r.length>0&&k.timestamp-r[0]>-1e-10;)x++,r.shift();if(x>0)for(let S=0;S<x;S++)h(S<x-1?k.clone():k);else k.close()},k=>{u||(k.stack=m.stack,u=k,a())}),w=this._createPacketSink(),g=null,b=null,y=-1,I=async()=>{p(b);let k=b;for(f.decode(k);k.sequenceNumber<y;){let x=Ws(s.length);for(;s.length+f.getDecodeQueueSize()>x&&!d;)({promise:o,resolve:c}=N()),await o;if(d)break;let S=await w.getNextPacket(k);p(S),k=S,f.decode(S)}y=-1},T=async()=>{await f.flush();for(let k=0;k<r.length;k++)h(null);r.length=0};for await(let k of t){if(ye(k),d)break;let x=await w.getPacket(k),S=x&&await w.getKeyPacket(k);if(!S){y!==-1&&(await I(),await T()),h(null),g=null;continue}g&&(S.sequenceNumber!==b.sequenceNumber||x.timestamp<g.timestamp)&&(await I(),await T()),r.push(x.timestamp),y=Math.max(x.sequenceNumber,y),g=x,b=S}d||(y!==-1&&await I(),await T()),f.close(),l=!0,a()})().catch(m=>{u||(u=m,a())}),{async next(){for(;;){if(d)return{value:void 0,done:!0};if(u)throw u;if(s.length>0){let m=s.shift();return p(m!==void 0),c(),{value:m,done:!1}}else if(!l)await i;else return{value:void 0,done:!0}}},async return(){d=!0,c(),a();for(let m of s)m?.close();return{value:void 0,done:!0}},async throw(m){throw m},[Symbol.asyncIterator](){return this}}}},Ws=n=>n===0?40:8,Ar=class extends Dr{constructor(e,t,r,s,i,a){super(e,t),this.rotation=i,this.timeResolution=a,this.decoder=null,this.customDecoder=null,this.customDecoderCallSerializer=new St,this.customDecoderQueueSize=0,this.sampleQueue=[];let o=l=>{if(this.sampleQueue.length>0&&l.timestamp>=U(this.sampleQueue).timestamp){for(let u of this.sampleQueue)this.finalizeAndEmitSample(u);this.sampleQueue.length=0}let d=F(this.sampleQueue,l.timestamp,u=>u.timestamp);this.sampleQueue.splice(d+1,0,l)},c=Ft.find(l=>l.supports(r,s));c?(this.customDecoder=new c,this.customDecoder.codec=r,this.customDecoder.config=s,this.customDecoder.onSample=l=>{if(!(l instanceof Ye))throw new TypeError("The argument passed to onSample must be a VideoSample.");o(l)},this.customDecoderCallSerializer.call(()=>this.customDecoder.init())):(this.decoder=new VideoDecoder({output:l=>o(new Ye(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:(p(this.decoder),this.decoder.decodeQueueSize)}decode(e){this.customDecoder?(this.customDecoderQueueSize++,this.customDecoderCallSerializer.call(()=>this.customDecoder.decode(e)).then(()=>this.customDecoderQueueSize--)):(p(this.decoder),this.decoder.decode(e.toEncodedVideoChunk()))}async flush(){this.customDecoder?await this.customDecoderCallSerializer.call(()=>this.customDecoder.flush()):(p(this.decoder),await this.decoder.flush());for(let e of this.sampleQueue)this.finalizeAndEmitSample(e);this.sampleQueue.length=0}close(){this.customDecoder?this.customDecoderCallSerializer.call(()=>this.customDecoder.close()):(p(this.decoder),this.decoder.close());for(let e of this.sampleQueue)e.close();this.sampleQueue.length=0}},Mt=class extends zt{constructor(e){if(!(e instanceof K))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,i=await this._videoTrack.getDecoderConfig(),a=this._videoTrack.timeResolution;return p(r&&i),new Ar(e,t,r,i,s,a)}_createPacketSink(){return new ze(this._videoTrack)}async getSample(e){ye(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)}},Ze=class{constructor(e,t={}){if(this._nextCanvasIndex=0,!(e instanceof K))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,i]=r%180===0?[e.codedWidth,e.codedHeight]:[e.codedHeight,e.codedWidth],a=s/i;t.width!==void 0&&t.height===void 0?(s=t.width,i=Math.round(s/a)):t.width===void 0&&t.height!==void 0?(i=t.height,s=Math.round(i*a)):t.width!==void 0&&t.height!==void 0&&(s=t.width,i=t.height),this._videoTrack=e,this._width=s,this._height=i,this._rotation=r,this._fit=t.fit??"fill",this._videoSampleSink=new Mt(e),this._canvasPool=Array.from({length:t.poolSize??0},()=>null)}_videoSampleToWrappedCanvas(e){let t=this._canvasPool[this._nextCanvasIndex];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)),this._canvasPool.length>0&&(this._nextCanvasIndex=(this._nextCanvasIndex+1)%this._canvasPool.length);let r=t.getContext("2d",{alpha:!1});p(r),r.resetTransform();let s,i,a,o;if(this._fit==="fill")s=0,i=0,a=this._width,o=this._height;else{let[d,u]=this._rotation%180===0?[e.codedWidth,e.codedHeight]:[e.codedHeight,e.codedWidth],h=this._fit==="contain"?Math.min(this._width/d,this._height/u):Math.max(this._width/d,this._height/u);a=d*h,o=u*h,s=(this._width-a)/2,i=(this._height-o)/2}let c=this._rotation%180===0?1:a/o;r.translate(this._width/2,this._height/2),r.rotate(this._rotation*Math.PI/180),r.scale(1/c,c),r.translate(-this._width/2,-this._height/2),r.drawImage(e.toCanvasImageSource(),s,i,a,o);let l={canvas:t,timestamp:e.timestamp,duration:e.duration};return e.close(),l}async getCanvas(e){ye(e);let t=await this._videoSampleSink.getSample(e);return t&&this._videoSampleToWrappedCanvas(t)}canvases(e=0,t=1/0){return vr(this._videoSampleSink.samples(e,t),r=>this._videoSampleToWrappedCanvas(r))}canvasesAtTimestamps(e){return vr(this._videoSampleSink.samplesAtTimestamps(e),t=>t&&this._videoSampleToWrappedCanvas(t))}};var Me=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof K}isAudioTrack(){return this instanceof M}get id(){return this._backing.getId()}get languageCode(){return this._backing.getLanguageCode()}get timeResolution(){return this._backing.getTimeResolution()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(e=1/0){let t=new ze(this),r=1/0,s=-1/0,i=0,a=0;for await(let o of t.packets(void 0,void 0,{metadataOnly:!0})){if(i>=e&&o.timestamp>=s)break;r=Math.min(r,o.timestamp),s=Math.max(s,o.timestamp+o.duration),i++,a+=o.byteLength}return{packetCount:i,averagePacketRate:i?Number((i/(s-r)).toPrecision(16)):0,averageBitrate:i?Number((8*a/(s-r)).toPrecision(16)):0}}},K=class extends Me{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 p(t!==null),Ft.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}}},M=class extends Me{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 p(t!==null),Ir.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}}};var W=class{constructor(e,t=1/0){this.source=e,this.maxStorableBytes=t,this.loadedSegments=[],this.loadingSegments=[],this.sourceSizePromise=null,this.nextAge=0,this.totalStoredBytes=0}async loadRange(e,t){if(t=Math.min(t,await this.source.getSize()),e>=t)return;let r=this.loadingSegments.find(c=>c.start<=e&&c.end>=t);if(r){await r.promise;return}let s=F(this.loadedSegments,e,c=>c.start);if(s!==-1)for(let c=s;c<this.loadedSegments.length;c++){let l=this.loadedSegments[c];if(l.start>e)break;if(l.end>=t)return}this.source.onread?.(e,t);let i=this.source._read(e,t),a={start:e,end:t,promise:i};this.loadingSegments.push(a);let o=await i;ms(this.loadingSegments,a),this.insertIntoLoadedSegments(e,o)}rangeIsLoaded(e,t){if(t<=e)return!0;let r=F(this.loadedSegments,e,s=>s.start);if(r===-1)return!1;for(let s=r;s<this.loadedSegments.length;s++){let i=this.loadedSegments[s];if(i.start>e)break;if(i.end>=t)return!0}return!1}insertIntoLoadedSegments(e,t){let r={start:e,end:e+t.byteLength,bytes:t,view:new DataView(t.buffer),age:this.nextAge++},s=F(this.loadedSegments,e,i=>i.start);(s===-1||this.loadedSegments[s].start<r.start)&&s++,this.loadedSegments.splice(s,0,r),this.totalStoredBytes+=t.byteLength;for(let i=s+1;i<this.loadedSegments.length;i++){let a=this.loadedSegments[i];if(a.start>=r.end)break;r.start<=a.start&&a.end<=r.end&&(this.loadedSegments.splice(i,1),i--)}for(;this.totalStoredBytes>this.maxStorableBytes&&this.loadedSegments.length>1;){let i=null,a=-1;for(let o=0;o<this.loadedSegments.length;o++){let c=this.loadedSegments[o];(!i||c.age<i.age)&&(i=c,a=o)}p(i),this.totalStoredBytes-=i.bytes.byteLength,this.loadedSegments.splice(a,1)}}getViewAndOffset(e,t){let r=F(this.loadedSegments,e,i=>i.start),s=null;if(r!==-1)for(let i=r;i<this.loadedSegments.length;i++){let a=this.loadedSegments[i];if(a.start>e)break;if(t<=a.end){s=a;break}}if(!s)throw new Error(`No segment loaded for range [${e}, ${t}).`);return s.age=this.nextAge++,{view:s.view,offset:s.bytes.byteOffset+e-s.start}}forgetRange(e,t){if(t<=e)return;let r=F(this.loadedSegments,e,i=>i.start);if(r===-1)return;let s=this.loadedSegments[r];s.start!==e||s.end!==t||(this.loadedSegments.splice(r,1),this.totalStoredBytes-=s.bytes.byteLength)}};var xe=class{constructor(e){this.reader=e,this.pos=0,this.littleEndian=!0}readBytes(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,r,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,this.littleEndian)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,this.littleEndian)}readAscii(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let i=0;i<e;i++)s+=String.fromCharCode(t.getUint8(r+i));return s}};var Z;(function(n){n[n.PCM=1]="PCM",n[n.IEEE_FLOAT=3]="IEEE_FLOAT",n[n.ALAW=6]="ALAW",n[n.MULAW=7]="MULAW",n[n.EXTENSIBLE=65534]="EXTENSIBLE"})(Z||(Z={}));var Vt=class extends H{constructor(e){super(e),this.metadataPromise=null,this.dataStart=-1,this.dataSize=-1,this.audioInfo=null,this.tracks=[],this.metadataReader=new xe(e._mainReader),this.chunkReader=new xe(new W(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize(),t=this.metadataReader.readAscii(4);this.metadataReader.littleEndian=t==="RIFF";let r=Math.min(this.metadataReader.readU32()+8,e);if(this.metadataReader.readAscii(4)!=="WAVE")throw new Error("Invalid WAVE file - wrong format");for(this.metadataReader.pos=12;this.metadataReader.pos<r;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+8);let a=this.metadataReader.readAscii(4),o=this.metadataReader.readU32(),c=this.metadataReader.pos;a==="fmt "?await this.parseFmtChunk(o):a==="data"&&(this.dataStart=this.metadataReader.pos,this.dataSize=Math.min(o,r-this.dataStart)),this.metadataReader.pos=c+o+(o&1)}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 i=this.audioInfo.blockSizeInBytes;this.dataSize=Math.floor(this.dataSize/i)*i,this.tracks.push(new M(new Br(this)))})()}async parseFmtChunk(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+e);let t=this.metadataReader.readU16(),r=this.metadataReader.readU16(),s=this.metadataReader.readU32();this.metadataReader.pos+=4;let i=this.metadataReader.readU16(),a;if(e===14?a=8:a=this.metadataReader.readU16(),e>=18&&t!==357){let o=this.metadataReader.readU16(),c=e-18;if(Math.min(c,o)>=22&&t===Z.EXTENSIBLE){this.metadataReader.pos+=6;let d=this.metadataReader.readBytes(16);t=d[0]|d[1]<<8}}(t===Z.MULAW||t===Z.ALAW)&&(a=8),this.audioInfo={format:t,numberOfChannels:r,sampleRate:s,sampleSizeInBytes:Math.ceil(a/8),blockSizeInBytes:i}}getCodec(){if(p(this.audioInfo),this.audioInfo.format===Z.MULAW)return"ulaw";if(this.audioInfo.format===Z.ALAW)return"alaw";if(this.audioInfo.format===Z.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===Z.IEEE_FLOAT&&this.audioInfo.sampleSizeInBytes===4?"pcm-f32":null}async getMimeType(){return"audio/wav"}async computeDuration(){return await this.readMetadata(),p(this.audioInfo),this.dataSize/this.audioInfo.blockSizeInBytes/this.audioInfo.sampleRate}async getTracks(){return await this.readMetadata(),this.tracks}},Ve=2048,Br=class{constructor(e){this.demuxer=e}getId(){return 1}getCodec(){return this.demuxer.getCodec()}async getDecoderConfig(){let e=this.demuxer.getCodec();return e?(p(this.demuxer.audioInfo),{codec:e,numberOfChannels:this.demuxer.audioInfo.numberOfChannels,sampleRate:this.demuxer.audioInfo.sampleRate}):null}computeDuration(){return this.demuxer.computeDuration()}getNumberOfChannels(){return p(this.demuxer.audioInfo),this.demuxer.audioInfo.numberOfChannels}getSampleRate(){return p(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getTimeResolution(){return p(this.demuxer.audioInfo),this.demuxer.audioInfo.sampleRate}getLanguageCode(){return L}async getFirstTimestamp(){return 0}async getPacketAtIndex(e,t){p(this.demuxer.audioInfo);let r=e*Ve*this.demuxer.audioInfo.blockSizeInBytes;if(r>=this.demuxer.dataSize)return null;let s=Math.min(Ve*this.demuxer.audioInfo.blockSizeInBytes,this.demuxer.dataSize-r),i;if(t.metadataOnly)i=z;else{let c=Ve*this.demuxer.audioInfo.blockSizeInBytes,l=Math.ceil(2**19/c)*c,d=Math.floor(r/l)*l,u=d+l;await this.demuxer.chunkReader.reader.loadRange(this.demuxer.dataStart+d,this.demuxer.dataStart+u),this.demuxer.chunkReader.pos=this.demuxer.dataStart+r,i=this.demuxer.chunkReader.readBytes(s)}let a=e*Ve/this.demuxer.audioInfo.sampleRate,o=s/this.demuxer.audioInfo.blockSizeInBytes/this.demuxer.audioInfo.sampleRate;return new B(i,"key",a,o,e,s)}getFirstPacket(e){return this.getPacketAtIndex(0,e)}getPacket(e,t){p(this.demuxer.audioInfo);let r=Math.floor(e*this.demuxer.audioInfo.sampleRate/Ve);return this.getPacketAtIndex(r,t)}getNextPacket(e,t){p(this.demuxer.audioInfo);let r=Math.round(e.timestamp*this.demuxer.audioInfo.sampleRate/Ve);return this.getPacketAtIndex(r+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var Se=class{constructor(){this._sizePromise=null,this.onread=null}getSize(){return this._sizePromise??=this._retrieveSize()}};var Je=class extends Se{constructor(e){if(!(e instanceof Blob))throw new TypeError("blob must be a Blob.");super(),this._blob=e}async _read(e,t){let s=await this._blob.slice(e,t).arrayBuffer();return new Uint8Array(s)}async _retrieveSize(){return this._blob.size}},et=class extends Se{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.");super(),this._fullData=null,this._url=e,this._options=t}async _makeRequest(e){let t={};e&&(t.Range=`bytes=${e.start}-${e.end-1}`);let r=await Cr(this._url,_t(this._options.requestInit??{},{method:"GET",headers:t}),this._options.getRetryDelay??(()=>null));if(!r.ok)throw new Error(`Error fetching ${this._url}: ${r.status} ${r.statusText}`);let s=await r.arrayBuffer();return e||(this._fullData=s),{response:s,statusCode:r.status}}async _read(e,t){if(this._fullData)return new Uint8Array(this._fullData,e,t-e);let{response:r,statusCode:s}=await this._makeRequest({start:e,end:t});return s===200?new Uint8Array(r).subarray(e,t):new Uint8Array(r)}async _retrieveSize(){if(this._fullData)return this._fullData.byteLength;let e=await Cr(this._url,_t(this._options.requestInit??{},{method:"GET",headers:{Range:"bytes=0-0"}}),this._options.getRetryDelay??(()=>null));if(e.status===206){let r=e.headers.get("Content-Range");if(r){let s=r.match(/bytes \d+-\d+\/(\d+)/);if(s&&s[1])return parseInt(s[1],10)}}let{response:t}=await this._makeRequest();return t.byteLength}};var Te=class{constructor(e){this.reader=e,this.pos=0}readBytes(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,r,e)}readU8(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+1);return this.pos++,e.getUint8(t)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readI16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getInt16(t,!1)}readU24(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+3);this.pos+=3;let r=e.getUint16(t,!1),s=e.getUint8(t+2);return r*256+s}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readI32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getInt32(t,!1)}readU64(){let e=this.readU32(),t=this.readU32();return e*4294967296+t}readI64(){let e=this.readI32(),t=this.readU32();return e*4294967296+t}readF64(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+8);return this.pos+=8,e.getFloat64(t,!1)}readFixed_16_16(){return this.readI32()/65536}readFixed_2_30(){return this.readI32()/1073741824}readAscii(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let i=0;i<e;i++)s+=String.fromCharCode(t.getUint8(r+i));return s}readIsomVariableInteger(){let e=0;for(let t=0;t<4;t++){e<<=7;let r=this.readU8();if(e|=r&127,(r&128)===0)break}return e}readBoxHeader(){let e=this.readU32(),t=this.readAscii(4),r=8;return e===1&&(e=this.readU64(),r=16),{name:t,totalSize:e,headerSize:r,contentSize:e-r}}};var Lt=class extends H{constructor(e){super(e),this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.fragments=[],this.currentFragment=null,this.fragmentLookupMutex=new re,this.metadataReader=new Te(e._mainReader),this.chunkReader=new Te(new W(e.source,64*2**20))}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 Fs({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)})}readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.metadataReader.reader.source.getSize();for(;this.metadataReader.pos<e;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.pos,r=this.metadataReader.readBoxHeader();if(r.name==="ftyp"){let s=this.metadataReader.readAscii(4);this.isQuickTime=s==="qt "}else if(r.name==="moov"){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+r.contentSize),this.readContiguousBoxes(r.contentSize);for(let s of this.tracks){let i=s.editListPreviousSegmentDurations/this.movieTimescale;s.editListOffset-=Math.round(i*s.timescale)}break}this.metadataReader.pos=t+r.totalSize}if(this.isFragmented){await this.metadataReader.reader.loadRange(e-4,e),this.metadataReader.pos=e-4;let t=this.metadataReader.readU32(),r=e-t;if(r>=0&&r<e){await this.metadataReader.reader.loadRange(r,e),this.metadataReader.pos=r;let s=this.metadataReader.readBoxHeader();s.name==="mfra"&&this.readContiguousBoxes(s.contentSize)}}})()}getSampleTableForTrack(e){if(e.sampleTable)return e.sampleTable;let t={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};if(e.sampleTable=t,this.metadataReader.pos=e.sampleTableByteOffset,this.currentTrack=e,this.traverseBox(),this.currentTrack=null,e.info?.type==="audio"&&e.info.codec&&De.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){p(e.info?.type==="audio");let s=ys(e.info.codec),i=[],a=[];for(let o=0;o<t.sampleToChunk.length;o++){let c=t.sampleToChunk[o],l=t.sampleToChunk[o+1],d=(l?l.startChunkIndex:t.chunkOffsets.length)-c.startChunkIndex;for(let u=0;u<d;u++){let h=c.startSampleIndex+u*c.samplesPerChunk,m=h+c.samplesPerChunk,f=F(t.sampleTimingEntries,h,S=>S.startIndex),w=t.sampleTimingEntries[f],g=F(t.sampleTimingEntries,m,S=>S.startIndex),b=t.sampleTimingEntries[g],y=w.startDecodeTimestamp+(h-w.startIndex)*w.delta,T=b.startDecodeTimestamp+(m-b.startIndex)*b.delta-y,k=U(i);k&&k.delta===T?k.count++:i.push({startIndex:c.startChunkIndex+u,startDecodeTimestamp:y,count:1,delta:T});let x=c.samplesPerChunk*s.sampleSize*e.info.numberOfChannels;a.push(x)}c.startSampleIndex=c.startChunkIndex,c.samplesPerChunk=1}t.sampleTimingEntries=i,t.sampleSizes=a}if(t.sampleCompositionTimeOffsets.length>0){t.presentationTimestamps=[];for(let s of t.sampleTimingEntries)for(let i=0;i<s.count;i++)t.presentationTimestamps.push({presentationTimestamp:s.startDecodeTimestamp+i*s.delta,sampleIndex:s.startIndex+i});for(let s of t.sampleCompositionTimeOffsets)for(let i=0;i<s.count;i++){let a=s.startIndex+i,o=t.presentationTimestamps[a];o&&(o.presentationTimestamp+=s.offset)}t.presentationTimestamps.sort((s,i)=>s.presentationTimestamp-i.presentationTimestamp),t.presentationTimestampIndexMap=Array(t.presentationTimestamps.length).fill(-1);for(let s=0;s<t.presentationTimestamps.length;s++)t.presentationTimestampIndexMap[t.presentationTimestamps[s].sampleIndex]=s}return t}async readFragment(){let e=this.metadataReader.pos;await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let t=this.metadataReader.readBoxHeader();p(t.name==="moof");let r=this.metadataReader.pos;await this.metadataReader.reader.loadRange(r,r+t.contentSize),this.metadataReader.pos=e,this.traverseBox();let s=D(this.fragments,e,a=>a.moofOffset);p(s!==-1);let i=this.fragments[s];p(i.moofOffset===e),this.metadataReader.reader.forgetRange(r,r+t.contentSize);for(let[a,o]of i.trackData){if(o.startTimestampIsFinal)continue;let c=this.tracks.find(m=>m.id===a);this.metadataReader.pos=0;let l=null,d=null,u=F(c.fragments,e-1,m=>m.moofOffset);u!==-1&&(l=c.fragments[u],d=l,this.metadataReader.pos=l.moofOffset+l.moofSize);let h=this.metadataReader.pos===0;for(;this.metadataReader.pos<e;){if(l?.nextFragment)l=l.nextFragment,this.metadataReader.pos=l.moofOffset+l.moofSize;else{await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+16);let m=this.metadataReader.pos,f=this.metadataReader.readBoxHeader();if(f.name==="moof"){let w=D(this.fragments,m,b=>b.moofOffset),g;w===-1?(this.metadataReader.pos=m,g=await this.readFragment()):g=this.fragments[w],l&&(l.nextFragment=g),l=g,h&&(g.isKnownToBeFirstFragment=!0,h=!1)}this.metadataReader.pos=m+f.totalSize}l&&l.trackData.has(a)&&(d=l)}if(d){let m=d.trackData.get(a);p(m.startTimestampIsFinal),$s(o,m.endTimestamp)}o.startTimestampIsFinal=!0}return i}readContiguousBoxes(e){let t=this.metadataReader.pos;for(;this.metadataReader.pos-t<=e-8;)this.traverseBox()}traverseBox(){let e=this.metadataReader.pos,t=this.metadataReader.readBoxHeader(),r=e+t.totalSize;switch(t.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":this.readContiguousBoxes(t.contentSize);break;case"mvhd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3,s===1?(this.metadataReader.pos+=16,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU64()):(this.metadataReader.pos+=8,this.movieTimescale=this.metadataReader.readU32(),this.movieDurationInTimescale=this.metadataReader.readU32())}break;case"trak":{let s={id:-1,demuxer:this,inputTrack:null,info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,languageCode:L,sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:null,currentFragmentState:null,fragments:[],fragmentsWithKeyFrame:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=s,this.readContiguousBoxes(t.contentSize),s.id!==-1&&s.timescale!==-1&&s.info!==null){if(s.info.type==="video"&&s.info.width!==-1){let i=s;s.inputTrack=new K(new Or(i)),this.tracks.push(s)}else if(s.info.type==="audio"&&s.info.numberOfChannels!==-1){let i=s;s.inputTrack=new M(new Ur(i)),this.tracks.push(s)}}this.currentTrack=null}break;case"tkhd":{let s=this.currentTrack;p(s);let i=this.metadataReader.readU8();if(!((this.metadataReader.readU24()&1)!==0))break;if(i===0)this.metadataReader.pos+=8,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU32();else if(i===1)this.metadataReader.pos+=16,s.id=this.metadataReader.readU32(),this.metadataReader.pos+=4,s.durationInMovieTimescale=this.metadataReader.readU64();else throw new Error(`Incorrect track header version ${i}.`);this.metadataReader.pos+=2*4+2+2+2+2;let c=[this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_16_16(),this.metadataReader.readFixed_2_30()],l=Tt(ps($n(c),90));p(l===0||l===90||l===180||l===270),s.rotation=l}break;case"elst":{let s=this.currentTrack;p(s);let i=this.metadataReader.readU8();this.metadataReader.pos+=3;let a=!1,o=0,c=this.metadataReader.readU32();for(let l=0;l<c;l++){let d=i===1?this.metadataReader.readU64():this.metadataReader.readU32(),u=i===1?this.metadataReader.readI64():this.metadataReader.readI32(),h=this.metadataReader.readFixed_16_16();if(d!==0){if(a){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(u===-1){o+=d;continue}if(h!==1){console.warn("Unsupported edit list entry: media rate must be 1.");break}s.editListPreviousSegmentDurations=o,s.editListOffset=u,a=!0}}}break;case"mdhd":{let s=this.currentTrack;p(s);let i=this.metadataReader.readU8();this.metadataReader.pos+=3,i===0?(this.metadataReader.pos+=8,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU32()):i===1&&(this.metadataReader.pos+=16,s.timescale=this.metadataReader.readU32(),s.durationInMediaTimescale=this.metadataReader.readU64());let a=this.metadataReader.readU16();if(a>0){s.languageCode="";for(let o=0;o<3;o++)s.languageCode=String.fromCharCode(96+(a&31))+s.languageCode,a>>=5;Et(s.languageCode)||(s.languageCode=L)}}break;case"hdlr":{let s=this.currentTrack;p(s),this.metadataReader.pos+=8;let i=this.metadataReader.readAscii(4);i==="vide"?s.info={type:"video",width:-1,height:-1,codec:null,codecDescription:null,colorSpace:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:i==="soun"&&(s.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{let s=this.currentTrack;p(s),s.sampleTableByteOffset=e,this.readContiguousBoxes(t.contentSize)}break;case"stsd":{let s=this.currentTrack;if(p(s),s.info===null||s.sampleTable)break;let i=this.metadataReader.readU8();this.metadataReader.pos+=3;let a=this.metadataReader.readU32();for(let o=0;o<a;o++){let c=this.metadataReader.pos,l=this.metadataReader.readBoxHeader(),d=l.name.toLowerCase();if(s.info.type==="video")d==="avc1"?s.info.codec="avc":d==="hvc1"||d==="hev1"?s.info.codec="hevc":d==="vp08"?s.info.codec="vp8":d==="vp09"?s.info.codec="vp9":d==="av01"?s.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${l.name}').`),this.metadataReader.pos+=6*1+2+2+2+3*4,s.info.width=this.metadataReader.readU16(),s.info.height=this.metadataReader.readU16(),this.metadataReader.pos+=50,this.readContiguousBoxes(c+l.totalSize-this.metadataReader.pos);else{d==="mp4a"||(d==="opus"?s.info.codec="opus":d==="flac"?s.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"?s.info.codec="ulaw":d==="alaw"?s.info.codec="alaw":console.warn(`Unsupported audio codec (sample entry type '${l.name}').`))),this.metadataReader.pos+=6*1+2;let u=this.metadataReader.readU16();this.metadataReader.pos+=3*2;let h=this.metadataReader.readU16(),m=this.metadataReader.readU16();this.metadataReader.pos+=2*2;let f=this.metadataReader.readU32()/65536;if(i===0&&u>0){if(u===1)this.metadataReader.pos+=4,m=8*this.metadataReader.readU32(),this.metadataReader.pos+=2*4;else if(u===2){this.metadataReader.pos+=4,f=this.metadataReader.readF64(),h=this.metadataReader.readU32(),this.metadataReader.pos+=4,m=this.metadataReader.readU32();let w=this.metadataReader.readU32();if(this.metadataReader.pos+=2*4,d==="lpcm"){let g=m+7>>3,b=!!(w&1),y=!!(w&2),I=w&4?-1:0;m>0&&m<=64&&(b?m===32&&(s.info.codec=y?"pcm-f32be":"pcm-f32"):I&1<<g-1?g===1?s.info.codec="pcm-s8":g===2?s.info.codec=y?"pcm-s16be":"pcm-s16":g===3?s.info.codec=y?"pcm-s24be":"pcm-s24":g===4&&(s.info.codec=y?"pcm-s32be":"pcm-s32"):g===1&&(s.info.codec="pcm-u8")),s.info.codec===null&&console.warn("Unsupported PCM format.")}}}s.info.numberOfChannels=h,s.info.sampleRate=f,d==="twos"?m===8?s.info.codec="pcm-s8":m===16?s.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${m} for codec 'twos'.`),s.info.codec=null):d==="sowt"?m===8?s.info.codec="pcm-s8":m===16?s.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${m} for codec 'sowt'.`),s.info.codec=null):d==="raw "?s.info.codec="pcm-u8":d==="in24"?s.info.codec="pcm-s24be":d==="in32"?s.info.codec="pcm-s32be":d==="fl32"?s.info.codec="pcm-f32be":d==="fl64"?s.info.codec="pcm-f64be":d==="ipcm"?s.info.codec="pcm-s16be":d==="fpcm"&&(s.info.codec="pcm-f32be"),this.readContiguousBoxes(c+l.totalSize-this.metadataReader.pos)}}}break;case"avcC":{let s=this.currentTrack;p(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"hvcC":{let s=this.currentTrack;p(s&&s.info),s.info.codecDescription=this.metadataReader.readBytes(t.contentSize)}break;case"vpcC":{let s=this.currentTrack;p(s&&s.info?.type==="video"),this.metadataReader.pos+=4;let i=this.metadataReader.readU8(),a=this.metadataReader.readU8(),o=this.metadataReader.readU8(),c=o>>4,l=o>>1&7,d=o&1,u=this.metadataReader.readU8(),h=this.metadataReader.readU8(),m=this.metadataReader.readU8();s.info.vp9CodecInfo={profile:i,level:a,bitDepth:c,chromaSubsampling:l,videoFullRangeFlag:d,colourPrimaries:u,transferCharacteristics:h,matrixCoefficients:m}}break;case"av1C":{let s=this.currentTrack;p(s&&s.info?.type==="video"),this.metadataReader.pos+=1;let i=this.metadataReader.readU8(),a=i>>5,o=i&31,c=this.metadataReader.readU8(),l=c>>7,d=c>>6&1,u=c>>5&1,h=c>>4&1,m=c>>3&1,f=c>>2&1,w=c&3,g=a==2&&d?u?12:10:d?10:8;s.info.av1CodecInfo={profile:a,level:o,tier:l,bitDepth:g,monochrome:h,chromaSubsamplingX:m,chromaSubsamplingY:f,chromaSamplePosition:w}}break;case"colr":{let s=this.currentTrack;if(p(s&&s.info?.type==="video"),this.metadataReader.readAscii(4)!=="nclx")break;let a=this.metadataReader.readU16(),o=this.metadataReader.readU16(),c=this.metadataReader.readU16(),l=!!(this.metadataReader.readU8()&128);s.info.colorSpace={primaries:Ct[a],transfer:It[o],matrix:Pt[c],fullRange:l}}break;case"wave":this.readContiguousBoxes(t.contentSize);break;case"esds":{let s=this.currentTrack;p(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let i=this.metadataReader.readU8();p(i===3),this.metadataReader.readIsomVariableInteger(),this.metadataReader.pos+=2;let a=this.metadataReader.readU8(),o=(a&128)!==0,c=(a&64)!==0,l=(a&32)!==0;if(o&&(this.metadataReader.pos+=2),c){let f=this.metadataReader.readU8();this.metadataReader.pos+=f}l&&(this.metadataReader.pos+=2);let d=this.metadataReader.readU8();p(d===4);let u=this.metadataReader.readIsomVariableInteger(),h=this.metadataReader.pos,m=this.metadataReader.readU8();if(m===64||m===103?(s.info.codec="aac",s.info.aacCodecInfo={isMpeg2:m===103}):m===105||m===107?s.info.codec="mp3":m===221?s.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${m}) - discarding track.`),this.metadataReader.pos+=12,u>this.metadataReader.pos-h){let f=this.metadataReader.readU8();p(f===5);let w=this.metadataReader.readIsomVariableInteger();if(s.info.codecDescription=this.metadataReader.readBytes(w),s.info.codec==="aac"){let g=Pr(s.info.codecDescription);g.numberOfChannels!==null&&(s.info.numberOfChannels=g.numberOfChannels),g.sampleRate!==null&&(s.info.sampleRate=g.sampleRate)}}}break;case"enda":{let s=this.currentTrack;p(s&&s.info?.type==="audio"),this.metadataReader.readU16()&255&&(s.info.codec==="pcm-s16be"?s.info.codec="pcm-s16":s.info.codec==="pcm-s24be"?s.info.codec="pcm-s24":s.info.codec==="pcm-s32be"?s.info.codec="pcm-s32":s.info.codec==="pcm-f32be"?s.info.codec="pcm-f32":s.info.codec==="pcm-f64be"&&(s.info.codec="pcm-f64"))}break;case"pcmC":{let s=this.currentTrack;p(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let a=!!(this.metadataReader.readU8()&1),o=this.metadataReader.readU8();s.info.codec==="pcm-s16be"?a?o===16?s.info.codec="pcm-s16":o===24?s.info.codec="pcm-s24":o===32?s.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${o}.`),s.info.codec=null):o===16?s.info.codec="pcm-s16be":o===24?s.info.codec="pcm-s24be":o===32?s.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${o}.`),s.info.codec=null):s.info.codec==="pcm-f32be"&&(a?o===32?s.info.codec="pcm-f32":o===64?s.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${o}.`),s.info.codec=null):o===32?s.info.codec="pcm-f32be":o===64?s.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${o}.`),s.info.codec=null));break}case"dOps":{let s=this.currentTrack;p(s&&s.info?.type==="audio"),this.metadataReader.pos+=1;let i=this.metadataReader.readU8(),a=this.metadataReader.readU16(),o=this.metadataReader.readU32(),c=this.metadataReader.readI16(),l=this.metadataReader.readU8(),d;l!==0?d=this.metadataReader.readBytes(2+i):d=new Uint8Array(0);let u=new Uint8Array(19+d.byteLength),h=new DataView(u.buffer);h.setUint32(0,1332770163,!1),h.setUint32(4,1214603620,!1),h.setUint8(8,1),h.setUint8(9,i),h.setUint16(10,a,!0),h.setUint32(12,o,!0),h.setInt16(16,c,!0),h.setUint8(18,l),u.set(d,19),s.info.codecDescription=u,s.info.numberOfChannels=i,s.info.sampleRate=o}break;case"dfLa":{let s=this.currentTrack;p(s&&s.info?.type==="audio"),this.metadataReader.pos+=4;let i=127,a=128,o=this.metadataReader.pos;for(;this.metadataReader.pos<r;){let h=this.metadataReader.readU8(),m=this.metadataReader.readU24();if((h&i)===0){this.metadataReader.pos+=10;let w=this.metadataReader.readU32(),g=w>>>12,b=(w>>9&7)+1;s.info.sampleRate=g,s.info.numberOfChannels=b,this.metadataReader.pos+=20}else this.metadataReader.pos+=m;if(h&a)break}let c=this.metadataReader.pos;this.metadataReader.pos=o;let l=this.metadataReader.readBytes(c-o),d=new Uint8Array(4+l.byteLength);new DataView(d.buffer).setUint32(0,1716281667,!1),d.set(l,4),s.info.codecDescription=d}break;case"stts":{let s=this.currentTrack;if(p(s),!s.sampleTable)break;this.metadataReader.pos+=4;let i=this.metadataReader.readU32(),a=0,o=0;for(let c=0;c<i;c++){let l=this.metadataReader.readU32(),d=this.metadataReader.readU32();s.sampleTable.sampleTimingEntries.push({startIndex:a,startDecodeTimestamp:o,count:l,delta:d}),a+=l,o+=l*d}}break;case"ctts":{let s=this.currentTrack;if(p(s),!s.sampleTable)break;this.metadataReader.pos+=4;let i=this.metadataReader.readU32(),a=0;for(let o=0;o<i;o++){let c=this.metadataReader.readU32(),l=this.metadataReader.readI32();s.sampleTable.sampleCompositionTimeOffsets.push({startIndex:a,count:c,offset:l}),a+=c}}break;case"stsz":{let s=this.currentTrack;if(p(s),!s.sampleTable)break;this.metadataReader.pos+=4;let i=this.metadataReader.readU32(),a=this.metadataReader.readU32();if(i===0)for(let o=0;o<a;o++){let c=this.metadataReader.readU32();s.sampleTable.sampleSizes.push(c)}else s.sampleTable.sampleSizes.push(i)}break;case"stz2":{let s=this.currentTrack;if(p(s),!s.sampleTable)break;this.metadataReader.pos+=4,this.metadataReader.pos+=3;let i=this.metadataReader.readU8(),a=this.metadataReader.readU32(),o=this.metadataReader.readBytes(Math.ceil(a*i/8)),c=new V(o);for(let l=0;l<a;l++){let d=c.readBits(i);s.sampleTable.sampleSizes.push(d)}}break;case"stss":{let s=this.currentTrack;if(p(s),!s.sampleTable)break;this.metadataReader.pos+=4,s.sampleTable.keySampleIndices=[];let i=this.metadataReader.readU32();for(let a=0;a<i;a++){let o=this.metadataReader.readU32()-1;s.sampleTable.keySampleIndices.push(o)}}break;case"stsc":{let s=this.currentTrack;if(p(s),!s.sampleTable)break;this.metadataReader.pos+=4;let i=this.metadataReader.readU32();for(let o=0;o<i;o++){let c=this.metadataReader.readU32()-1,l=this.metadataReader.readU32(),d=this.metadataReader.readU32();s.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:c,samplesPerChunk:l,sampleDescriptionIndex:d})}let a=0;for(let o=0;o<s.sampleTable.sampleToChunk.length;o++)if(s.sampleTable.sampleToChunk[o].startSampleIndex=a,o<s.sampleTable.sampleToChunk.length-1){let l=s.sampleTable.sampleToChunk[o+1].startChunkIndex-s.sampleTable.sampleToChunk[o].startChunkIndex;a+=l*s.sampleTable.sampleToChunk[o].samplesPerChunk}}break;case"stco":{let s=this.currentTrack;if(p(s),!s.sampleTable)break;this.metadataReader.pos+=4;let i=this.metadataReader.readU32();for(let a=0;a<i;a++){let o=this.metadataReader.readU32();s.sampleTable.chunkOffsets.push(o)}}break;case"co64":{let s=this.currentTrack;if(p(s),!s.sampleTable)break;this.metadataReader.pos+=4;let i=this.metadataReader.readU32();for(let a=0;a<i;a++){let o=this.metadataReader.readU64();s.sampleTable.chunkOffsets.push(o)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.contentSize);break;case"mehd":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let i=s===1?this.metadataReader.readU64():this.metadataReader.readU32();this.movieDurationInTimescale=i}break;case"trex":{this.metadataReader.pos+=4;let s=this.metadataReader.readU32(),i=this.metadataReader.readU32(),a=this.metadataReader.readU32(),o=this.metadataReader.readU32(),c=this.metadataReader.readU32();this.fragmentTrackDefaults.push({trackId:s,defaultSampleDescriptionIndex:i,defaultSampleDuration:a,defaultSampleSize:o,defaultSampleFlags:c})}break;case"tfra":{let s=this.metadataReader.readU8();this.metadataReader.pos+=3;let i=this.metadataReader.readU32(),a=this.tracks.find(b=>b.id===i);if(!a)break;a.fragmentLookupTable=[];let o=this.metadataReader.readU32(),c=(o&48)>>4,l=(o&12)>>2,d=o&3,u=this.metadataReader,h=[u.readU8.bind(u),u.readU16.bind(u),u.readU24.bind(u),u.readU32.bind(u)],m=h[c],f=h[l],w=h[d],g=this.metadataReader.readU32();for(let b=0;b<g;b++){let y=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),I=s===1?this.metadataReader.readU64():this.metadataReader.readU32(),T=m(),k=f(),x=w();a.fragmentLookupTable.push({timestamp:y,moofOffset:I})}}break;case"moof":{this.currentFragment={moofOffset:e,moofSize:t.totalSize,implicitBaseDataOffset:e,trackData:new Map,dataStart:1/0,dataEnd:0,nextFragment:null,isKnownToBeFirstFragment:!1},this.readContiguousBoxes(t.contentSize);let s=F(this.fragments,this.currentFragment.moofOffset,i=>i.moofOffset);this.fragments.splice(s+1,0,this.currentFragment);for(let[,i]of this.currentFragment.trackData){let a=i.samples[0],o=U(i.samples);this.currentFragment.dataStart=Math.min(this.currentFragment.dataStart,a.byteOffset),this.currentFragment.dataEnd=Math.max(this.currentFragment.dataEnd,o.byteOffset+o.byteSize)}this.currentFragment=null}break;case"traf":if(p(this.currentFragment),this.readContiguousBoxes(t.contentSize),this.currentTrack){let s=this.currentFragment.trackData.get(this.currentTrack.id);if(s){let i=F(this.currentTrack.fragments,this.currentFragment.moofOffset,c=>c.moofOffset);if(this.currentTrack.fragments.splice(i+1,0,this.currentFragment),s.firstKeyFrameTimestamp!==null){let c=F(this.currentTrack.fragmentsWithKeyFrame,this.currentFragment.moofOffset,l=>l.moofOffset);this.currentTrack.fragmentsWithKeyFrame.splice(c+1,0,this.currentFragment)}let{currentFragmentState:o}=this.currentTrack;p(o),o.startTimestamp!==null&&($s(s,o.startTimestamp),s.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{p(this.currentFragment),this.metadataReader.pos+=1;let s=this.metadataReader.readU24(),i=!!(s&1),a=!!(s&2),o=!!(s&8),c=!!(s&16),l=!!(s&32),d=!!(s&65536),u=!!(s&131072),h=this.metadataReader.readU32(),m=this.tracks.find(w=>w.id===h);if(!m)break;let f=this.fragmentTrackDefaults.find(w=>w.trackId===h);this.currentTrack=m,m.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:f?.defaultSampleDescriptionIndex??null,defaultSampleDuration:f?.defaultSampleDuration??null,defaultSampleSize:f?.defaultSampleSize??null,defaultSampleFlags:f?.defaultSampleFlags??null,startTimestamp:null},i?m.currentFragmentState.baseDataOffset=this.metadataReader.readU64():u&&(m.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),a&&(m.currentFragmentState.sampleDescriptionIndex=this.metadataReader.readU32()),o&&(m.currentFragmentState.defaultSampleDuration=this.metadataReader.readU32()),c&&(m.currentFragmentState.defaultSampleSize=this.metadataReader.readU32()),l&&(m.currentFragmentState.defaultSampleFlags=this.metadataReader.readU32()),d&&(m.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{let s=this.currentTrack;if(!s)break;p(s.currentFragmentState);let i=this.metadataReader.readU8();this.metadataReader.pos+=3;let a=i===0?this.metadataReader.readU32():this.metadataReader.readU64();s.currentFragmentState.startTimestamp=a}break;case"trun":{let s=this.currentTrack;if(!s)break;if(p(this.currentFragment),p(s.currentFragmentState),this.currentFragment.trackData.has(s.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}let i=this.metadataReader.readU8(),a=this.metadataReader.readU24(),o=!!(a&1),c=!!(a&4),l=!!(a&256),d=!!(a&512),u=!!(a&1024),h=!!(a&2048),m=this.metadataReader.readU32(),f=s.currentFragmentState.baseDataOffset;o&&(f+=this.metadataReader.readI32());let w=null;c&&(w=this.metadataReader.readU32());let g=f;if(m===0){this.currentFragment.implicitBaseDataOffset=g;break}let b=0,y={startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(s.id,y);for(let k=0;k<m;k++){let x;l?x=this.metadataReader.readU32():(p(s.currentFragmentState.defaultSampleDuration!==null),x=s.currentFragmentState.defaultSampleDuration);let S;d?S=this.metadataReader.readU32():(p(s.currentFragmentState.defaultSampleSize!==null),S=s.currentFragmentState.defaultSampleSize);let _;u?_=this.metadataReader.readU32():(p(s.currentFragmentState.defaultSampleFlags!==null),_=s.currentFragmentState.defaultSampleFlags),k===0&&w!==null&&(_=w);let P=0;h&&(i===0?P=this.metadataReader.readU32():P=this.metadataReader.readI32());let R=!(_&65536);y.samples.push({presentationTimestamp:b+P,duration:x,byteOffset:g,byteSize:S,isKeyFrame:R}),g+=S,b+=x}y.presentationTimestamps=y.samples.map((k,x)=>({presentationTimestamp:k.presentationTimestamp,sampleIndex:x})).sort((k,x)=>k.presentationTimestamp-x.presentationTimestamp);for(let k=0;k<y.presentationTimestamps.length;k++){let x=y.presentationTimestamps[k],S=y.samples[x.sampleIndex];if(y.firstKeyFrameTimestamp===null&&S.isKeyFrame&&(y.firstKeyFrameTimestamp=S.presentationTimestamp),k<y.presentationTimestamps.length-1){let _=y.presentationTimestamps[k+1];S.duration=_.presentationTimestamp-x.presentationTimestamp}}let I=y.samples[y.presentationTimestamps[0].sampleIndex],T=y.samples[U(y.presentationTimestamps).sampleIndex];y.startTimestamp=I.presentationTimestamp,y.endTimestamp=T.presentationTimestamp+T.duration,this.currentFragment.implicitBaseDataOffset=g}break}this.metadataReader.pos=r}},Ht=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.")}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){return this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(()=>{let t=this.internalTrack.demuxer.fragments[0]??null;if(t?.isKnownToBeFirstFragment){let r=t;for(;r;){if(r.trackData.get(this.internalTrack.id))return{fragmentIndex:D(this.internalTrack.fragments,r.moofOffset,i=>i.moofOffset),sampleIndex:0,correctSampleFound:!0};r=r.nextFragment}}return{fragmentIndex:-1,sampleIndex:-1,correctSampleFound:!1}},-1/0,1/0,e):this.fetchPacketForSampleIndex(0,e)}mapTimestampIntoTimescale(e){return Fe(e*this.internalTrack.timescale,14)+this.internalTrack.editListOffset}async getPacket(e,t){let r=this.mapTimestampIntoTimescale(e);if(this.internalTrack.demuxer.isFragmented)return this.performFragmentedLookup(()=>this.findSampleInFragmentsForTimestamp(r),r,r,t);{let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=js(s,r);return this.fetchPacketForSampleIndex(i,t)}}async getNextPacket(e,t){if(this.internalTrack.demuxer.isFragmented){let s=this.packetToFragmentLocation.get(e);if(s===void 0)throw new Error("Packet was not created from this track.");let i=s.fragment.trackData.get(this.internalTrack.id),a=i.samples[s.sampleIndex],o=D(this.internalTrack.fragments,s.fragment.moofOffset,c=>c.moofOffset);return p(o!==-1),this.performFragmentedLookup(()=>{if(s.sampleIndex+1<i.samples.length)return{fragmentIndex:o,sampleIndex:s.sampleIndex+1,correctSampleFound:!0};{let c=s.fragment;for(;c.nextFragment;)if(c=c.nextFragment,c.trackData.get(this.internalTrack.id)){let d=D(this.internalTrack.fragments,c.moofOffset,u=>u.moofOffset);return p(d!==-1),{fragmentIndex:d,sampleIndex:0,correctSampleFound:!0}}return{fragmentIndex:o,sampleIndex:-1,correctSampleFound:!1}}},a.presentationTimestamp,1/0,t)}let r=this.packetToSampleIndex.get(e);if(r===void 0)throw new Error("Packet was not created from this track.");return this.fetchPacketForSampleIndex(r+1,t)}async getKeyPacket(e,t){let r=this.mapTimestampIntoTimescale(e);if(this.internalTrack.demuxer.isFragmented)return this.performFragmentedLookup(()=>this.findKeySampleInFragmentsForTimestamp(r),r,r,t);let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=js(s,r),a=i===-1?-1:Wn(s,i);return this.fetchPacketForSampleIndex(a,t)}async getNextKeyPacket(e,t){if(this.internalTrack.demuxer.isFragmented){let a=this.packetToFragmentLocation.get(e);if(a===void 0)throw new Error("Packet was not created from this track.");let o=a.fragment.trackData.get(this.internalTrack.id),c=o.samples[a.sampleIndex],l=D(this.internalTrack.fragments,a.fragment.moofOffset,d=>d.moofOffset);return p(l!==-1),this.performFragmentedLookup(()=>{let d=o.samples.findIndex((u,h)=>u.isKeyFrame&&h>a.sampleIndex);if(d!==-1)return{fragmentIndex:l,sampleIndex:d,correctSampleFound:!0};{let u=a.fragment;for(;u.nextFragment;){u=u.nextFragment;let h=u.trackData.get(this.internalTrack.id);if(h&&h.firstKeyFrameTimestamp!==null){let m=D(this.internalTrack.fragments,u.moofOffset,w=>w.moofOffset);p(m!==-1);let f=h.samples.findIndex(w=>w.isKeyFrame);return p(f!==-1),{fragmentIndex:m,sampleIndex:f,correctSampleFound:!0}}}return{fragmentIndex:l,sampleIndex:-1,correctSampleFound:!1}}},c.presentationTimestamp,1/0,t)}let r=this.packetToSampleIndex.get(e);if(r===void 0)throw new Error("Packet was not created from this track.");let s=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=jn(s,r);return this.fetchPacketForSampleIndex(i,t)}async fetchPacketForSampleIndex(e,t){if(e===-1)return null;let r=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),s=Hn(r,e);if(!s)return null;let i;t.metadataOnly?i=z:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(s.chunkOffset,s.chunkOffset+s.chunkSize),this.internalTrack.demuxer.chunkReader.pos=s.sampleOffset,i=this.internalTrack.demuxer.chunkReader.readBytes(s.sampleSize));let a=(s.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,o=s.duration/this.internalTrack.timescale,c=new B(i,s.isKeyFrame?"key":"delta",a,o,e,s.sampleSize);return this.packetToSampleIndex.set(c,e),c}async fetchPacketInFragment(e,t,r){if(t===-1)return null;let i=e.trackData.get(this.internalTrack.id).samples[t];p(i);let a;r.metadataOnly?a=z:(await this.internalTrack.demuxer.chunkReader.reader.loadRange(e.dataStart,e.dataEnd),this.internalTrack.demuxer.chunkReader.pos=i.byteOffset,a=this.internalTrack.demuxer.chunkReader.readBytes(i.byteSize));let o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,c=i.duration/this.internalTrack.timescale,l=new B(a,i.isKeyFrame?"key":"delta",o,c,e.moofOffset+t,i.byteSize);return this.packetToFragmentLocation.set(l,{fragment:e,sampleIndex:t}),l}findSampleInFragmentsForTimestamp(e){let t=F(this.internalTrack.fragments,e,i=>i.trackData.get(this.internalTrack.id).startTimestamp),r=-1,s=!1;if(t!==-1){let a=this.internalTrack.fragments[t].trackData.get(this.internalTrack.id),o=F(a.presentationTimestamps,e,c=>c.presentationTimestamp);p(o!==-1),r=a.presentationTimestamps[o].sampleIndex,s=e<a.endTimestamp}return{fragmentIndex:t,sampleIndex:r,correctSampleFound:s}}findKeySampleInFragmentsForTimestamp(e){let t=F(this.internalTrack.fragmentsWithKeyFrame,e,a=>a.trackData.get(this.internalTrack.id).startTimestamp),r=-1,s=-1,i=!1;if(t!==-1){let a=this.internalTrack.fragmentsWithKeyFrame[t];r=D(this.internalTrack.fragments,a.moofOffset,d=>d.moofOffset),p(r!==-1);let o=a.trackData.get(this.internalTrack.id),c=Rt(o.presentationTimestamps,d=>o.samples[d.sampleIndex].isKeyFrame&&d.presentationTimestamp<=e);p(c!==-1),s=o.presentationTimestamps[c].sampleIndex,i=e<o.endTimestamp}return{fragmentIndex:r,sampleIndex:s,correctSampleFound:i}}async performFragmentedLookup(e,t,r,s){let i=this.internalTrack.demuxer,a=await i.fragmentLookupMutex.acquire();try{let{fragmentIndex:o,sampleIndex:c,correctSampleFound:l}=e();if(l){let T=this.internalTrack.fragments[o];return this.fetchPacketInFragment(T,c,s)}let d=i.metadataReader,u=await d.reader.source.getSize(),h=null,m=o,f=c,w=this.internalTrack.fragmentLookupTable?F(this.internalTrack.fragmentLookupTable,t,T=>T.timestamp):-1,g=w!==-1?this.internalTrack.fragmentLookupTable[w]:null,b=!1;if(o===-1)d.pos=g?.moofOffset??0,b=d.pos===0;else{let T=this.internalTrack.fragments[o];!g||T.moofOffset>=g.moofOffset?(d.pos=T.moofOffset+T.moofSize,h=T):d.pos=g.moofOffset}for(;d.pos<u;){if(h){let x=h.trackData.get(this.internalTrack.id);if(x&&x.startTimestamp>r)break;if(h.nextFragment){d.pos=h.nextFragment.moofOffset+h.nextFragment.moofSize,h=h.nextFragment;continue}}await d.reader.loadRange(d.pos,d.pos+16);let T=d.pos,k=d.readBoxHeader();if(k.name==="moof"){let x=D(i.fragments,T,E=>E.moofOffset),S;x===-1?(d.pos=T,S=await i.readFragment()):S=i.fragments[x],h&&(h.nextFragment=S),h=S,b&&(S.isKnownToBeFirstFragment=!0,b=!1);let{fragmentIndex:_,sampleIndex:P,correctSampleFound:R}=e();if(R){let E=this.internalTrack.fragments[_];return this.fetchPacketInFragment(E,P,s)}_!==-1&&(m=_,f=P)}d.pos=T+k.totalSize}let y=null,I=m!==-1?this.internalTrack.fragments[m]:null;if(I&&(y=await this.fetchPacketInFragment(I,f,s)),!y&&g&&(!I||I.moofOffset<g.moofOffset)){let k=this.internalTrack.fragmentLookupTable[w-1]?.timestamp??-1/0;return this.performFragmentedLookup(e,k,r,s)}return y}finally{a()}}},Or=class extends Ht{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&&Bt(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&Ot(e.data)}return{codec:Dt(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}},Ur=class extends Ht{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:At(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},js=(n,e)=>{if(n.presentationTimestamps){let t=F(n.presentationTimestamps,e,r=>r.presentationTimestamp);return t===-1?-1:n.presentationTimestamps[t].sampleIndex}else{let t=F(n.sampleTimingEntries,e,s=>s.startDecodeTimestamp);if(t===-1)return-1;let r=n.sampleTimingEntries[t];return r.startIndex+Math.min(Math.floor((e-r.startDecodeTimestamp)/r.delta),r.count-1)}},Hn=(n,e)=>{let t=F(n.sampleTimingEntries,e,b=>b.startIndex),r=n.sampleTimingEntries[t];if(!r||r.startIndex+r.count<=e)return null;let i=r.startDecodeTimestamp+(e-r.startIndex)*r.delta,a=F(n.sampleCompositionTimeOffsets,e,b=>b.startIndex),o=n.sampleCompositionTimeOffsets[a];o&&e-o.startIndex<o.count&&(i+=o.offset);let c=n.sampleSizes[Math.min(e,n.sampleSizes.length-1)],l=F(n.sampleToChunk,e,b=>b.startSampleIndex),d=n.sampleToChunk[l];p(d);let u=d.startChunkIndex+Math.floor((e-d.startSampleIndex)/d.samplesPerChunk),h=n.chunkOffsets[u],m=d.startSampleIndex+(u-d.startChunkIndex)*d.samplesPerChunk,f=0,w=h;if(n.sampleSizes.length===1)w+=c*(e-m),f+=c*d.samplesPerChunk;else for(let b=m;b<m+d.samplesPerChunk;b++){let y=n.sampleSizes[b];b<e&&(w+=y),f+=y}let g=r.delta;if(n.presentationTimestamps){let b=n.presentationTimestampIndexMap[e];p(b!==void 0),b<n.presentationTimestamps.length-1&&(g=n.presentationTimestamps[b+1].presentationTimestamp-i)}return{presentationTimestamp:i,duration:g,sampleOffset:w,sampleSize:c,chunkOffset:h,chunkSize:f,isKeyFrame:n.keySampleIndices?D(n.keySampleIndices,e,b=>b)!==-1:!0}},Wn=(n,e)=>{if(!n.keySampleIndices)return e;let t=F(n.keySampleIndices,e,r=>r);return n.keySampleIndices[t]??-1},jn=(n,e)=>{if(!n.keySampleIndices)return e+1;let t=F(n.keySampleIndices,e,r=>r);return n.keySampleIndices[t+1]??-1},$s=(n,e)=>{n.startTimestamp+=e,n.endTimestamp+=e;for(let t of n.samples)t.presentationTimestamp+=e;for(let t of n.presentationTimestamps)t.presentationTimestamp+=e},$n=n=>{let[e,,,t]=n,r=Math.hypot(e,t),s=e/r,i=t/r;return-Math.atan2(i,s)*(180/Math.PI)};var zr=[{id:v.SeekHead,flag:"seekHeadSeen"},{id:v.Info,flag:"infoSeen"},{id:v.Tracks,flag:"tracksSeen"},{id:v.Cues,flag:"cuesSeen"}],Wt=class extends H{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.isWebM=!1,this.metadataReader=new we(e._mainReader),this.clusterReader=new we(new W(e.source,64*2**20))}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 As({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)})}readMetadata(){return this.readMetadataPromise??=(async()=>{this.metadataReader.pos=0;let e=await this.input.source.getSize();for(;this.metadataReader.pos<=e-Ut;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+ge);let{id:t,size:r}=this.metadataReader.readElementHeader(),s=this.metadataReader.pos;if(t===v.EBML)be(r),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+r),this.readContiguousElements(this.metadataReader,r);else if(t===v.Segment&&(await this.readSegment(r),r===null))break;be(r),this.metadataReader.pos=s+r}})()}async readSegment(e){let t=this.metadataReader.pos;this.currentSegment={seekHeadSeen:!1,infoSeen:!1,tracksSeen:!1,cuesSeen:!1,timestampScale:-1,timestampFactor:-1,duration:-1,seekEntries:[],tracks:[],cuePoints:[],dataStartPos:t,elementEndPos:e===null?await this.input.source.getSize():t+e,clusterSeekStartPos:t,clusters:[],clusterLookupMutex:new re},this.segments.push(this.currentSegment),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**14);let r=!1;for(;this.metadataReader.pos<this.currentSegment.elementEndPos;){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+ge);let c=this.metadataReader.pos,{id:l,size:d}=this.metadataReader.readElementHeader(),u=this.metadataReader.pos,h=zr.findIndex(m=>m.id===l);if(h!==-1){let m=zr[h].flag;this.currentSegment[m]=!0,be(d),await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+d),this.readContiguousElements(this.metadataReader,d)}else l===v.Cluster&&(r||(r=!0,this.currentSegment.clusterSeekStartPos=c));if(this.currentSegment.infoSeen&&this.currentSegment.tracksSeen&&this.currentSegment.cuesSeen)break;if(this.currentSegment.seekHeadSeen){let m=this.currentSegment.infoSeen,f=this.currentSegment.tracksSeen,w=this.currentSegment.cuesSeen;for(let g of this.currentSegment.seekEntries)g.id===v.Info?m=!0:g.id===v.Tracks?f=!0:g.id===v.Cues&&(w=!0);if(m&&f&&w)break}if(d===null)break;this.metadataReader.pos=u+d,r||(this.currentSegment.clusterSeekStartPos=this.metadataReader.pos)}for(let c of zr){if(this.currentSegment[c.flag])continue;let l=this.currentSegment.seekEntries.find(h=>h.id===c.id);if(!l)continue;this.metadataReader.pos=t+l.segmentPosition,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+2**12);let{id:d,size:u}=this.metadataReader.readElementHeader();d===c.id&&(be(u),this.currentSegment[c.flag]=!0,await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+u),this.readContiguousElements(this.metadataReader,u))}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),i=new Set,a=null,o=null;for(let c of this.currentSegment.cuePoints){if(c.clusterPosition!==a){for(let d of i)p(o),this.currentSegment.tracks.find(h=>h.id===d).cuePoints.push(o);for(let d of s)i.add(d)}if(o=c,!i.has(c.trackId))continue;this.currentSegment.tracks.find(d=>d.id===c.trackId).cuePoints.push(c),i.delete(c.trackId),a=c.clusterPosition}for(let c of i)p(o),this.currentSegment.tracks.find(d=>d.id===c).cuePoints.push(o);for(let c of this.currentSegment.tracks)c.cuePoints.sort((l,d)=>l.time-d.time);this.currentSegment=null}async readCluster(e){await this.metadataReader.reader.loadRange(this.metadataReader.pos,this.metadataReader.pos+ge);let t=this.metadataReader.pos,r=this.metadataReader.readElementHeader(),s=r.id,i=r.size,a=this.metadataReader.pos;i===null&&(this.clusterReader.pos=a,i=(await this.clusterReader.searchForNextElementId(_r,e.elementEndPos)??e.elementEndPos)-a),p(s===v.Cluster),this.clusterReader.pos=a,await this.clusterReader.reader.loadRange(this.clusterReader.pos,this.clusterReader.pos+i);let o={elementStartPos:t,elementEndPos:a+i,dataStartPos:a,timestamp:-1,trackData:new Map,nextCluster:null,isKnownToBeFirstCluster:!1};this.currentCluster=o,this.readContiguousElements(this.clusterReader,i);for(let[l,d]of o.trackData){let u=!1;p(d.blocks.length>0);for(let w=0;w<d.blocks.length;w++){let g=d.blocks[w];g.timestamp+=o.timestamp,u||=g.referencedTimestamps.length>0}u&&(d.blocks=qn(d.blocks)),d.presentationTimestamps=d.blocks.map((w,g)=>({timestamp:w.timestamp,blockIndex:g})).sort((w,g)=>w.timestamp-g.timestamp);for(let w=0;w<d.presentationTimestamps.length;w++){let g=d.presentationTimestamps[w],b=d.blocks[g.blockIndex];if(d.firstKeyFrameTimestamp===null&&b.isKeyFrame&&(d.firstKeyFrameTimestamp=b.timestamp),w<d.presentationTimestamps.length-1){let y=d.presentationTimestamps[w+1];b.duration=y.timestamp-b.timestamp}}let h=d.blocks[d.presentationTimestamps[0].blockIndex],m=d.blocks[U(d.presentationTimestamps).blockIndex];d.startTimestamp=h.timestamp,d.endTimestamp=m.timestamp+m.duration;let f=e.tracks.find(w=>w.id===l);if(f){let w=F(f.clusters,o.elementStartPos,b=>b.elementStartPos);if(f.clusters.splice(w+1,0,o),d.firstKeyFrameTimestamp!==null){let b=F(f.clustersWithKeyFrame,o.elementStartPos,y=>y.elementStartPos);f.clustersWithKeyFrame.splice(b+1,0,o)}}}let c=F(e.clusters,t,l=>l.elementStartPos);return e.clusters.splice(c+1,0,o),this.currentCluster=null,o}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}readContiguousElements(e,t){let r=e.pos;for(;e.pos-r<=t-Ut;)this.traverseElement(e)}traverseElement(e){let{id:t,size:r}=e.readElementHeader(),s=e.pos;switch(be(r),t){case v.DocType:this.isWebM=e.readString(r)==="webm";break;case v.Seek:{if(!this.currentSegment)break;let i={id:-1,segmentPosition:-1};this.currentSegment.seekEntries.push(i),this.readContiguousElements(e,r),(i.id===-1||i.segmentPosition===-1)&&this.currentSegment.seekEntries.pop()}break;case v.SeekID:{let i=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!i)break;i.id=e.readUnsignedInt(r)}break;case v.SeekPosition:{let i=this.currentSegment?.seekEntries[this.currentSegment.seekEntries.length-1];if(!i)break;i.segmentPosition=e.readUnsignedInt(r)}break;case v.TimestampScale:{if(!this.currentSegment)break;this.currentSegment.timestampScale=e.readUnsignedInt(r),this.currentSegment.timestampFactor=1e9/this.currentSegment.timestampScale}break;case v.Duration:{if(!this.currentSegment)break;this.currentSegment.duration=e.readFloat(r)}break;case v.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,languageCode:L,info:null},this.readContiguousElements(e,r),this.currentTrack&&this.currentTrack.id!==-1&&this.currentTrack.codecId&&this.currentTrack.info){let i=this.currentTrack.codecId.indexOf("/"),a=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===$.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===$.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===$.vp8?this.currentTrack.info.codec="vp8":a===$.vp9?this.currentTrack.info.codec="vp9":a===$.av1&&(this.currentTrack.info.codec="av1");let o=this.currentTrack,c=new K(new Mr(o));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}else if(this.currentTrack.info.type==="audio"&&this.currentTrack.info.numberOfChannels!==-1&&this.currentTrack.info.sampleRate!==-1){a===$.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===$.mp3?this.currentTrack.info.codec="mp3":a===$.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===$.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===$.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 o=this.currentTrack,c=new M(new Vr(o));this.currentTrack.inputTrack=c,this.currentSegment.tracks.push(this.currentTrack)}}this.currentTrack=null}break;case v.TrackNumber:{if(!this.currentTrack)break;this.currentTrack.id=e.readUnsignedInt(r)}break;case v.TrackType:{if(!this.currentTrack)break;let i=e.readUnsignedInt(r);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 v.FlagEnabled:{if(!this.currentTrack)break;e.readUnsignedInt(r)||(this.currentSegment.tracks.pop(),this.currentTrack=null)}break;case v.FlagDefault:{if(!this.currentTrack)break;this.currentTrack.isDefault=!!e.readUnsignedInt(r)}break;case v.CodecID:{if(!this.currentTrack)break;this.currentTrack.codecId=e.readString(r)}break;case v.CodecPrivate:{if(!this.currentTrack)break;this.currentTrack.codecPrivate=e.readBytes(r)}break;case v.Language:{if(!this.currentTrack)break;this.currentTrack.languageCode=e.readString(r),Et(this.currentTrack.languageCode)||(this.currentTrack.languageCode=L)}break;case v.Video:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,r)}break;case v.PixelWidth:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.width=e.readUnsignedInt(r)}break;case v.PixelHeight:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.height=e.readUnsignedInt(r)}break;case v.Colour:{if(this.currentTrack?.info?.type!=="video")break;this.currentTrack.info.colorSpace={},this.readContiguousElements(e,r)}break;case v.MatrixCoefficients:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let i=e.readUnsignedInt(r),a=Pt[i]??null;this.currentTrack.info.colorSpace.matrix=a}break;case v.Range:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;this.currentTrack.info.colorSpace.fullRange=e.readUnsignedInt(r)===2}break;case v.TransferCharacteristics:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let i=e.readUnsignedInt(r),a=It[i]??null;this.currentTrack.info.colorSpace.transfer=a}break;case v.Primaries:{if(this.currentTrack?.info?.type!=="video"||!this.currentTrack.info.colorSpace)break;let i=e.readUnsignedInt(r),a=Ct[i]??null;this.currentTrack.info.colorSpace.primaries=a}break;case v.Projection:{if(this.currentTrack?.info?.type!=="video")break;this.readContiguousElements(e,r)}break;case v.ProjectionPoseRoll:{if(this.currentTrack?.info?.type!=="video")break;let a=-e.readFloat(r);try{this.currentTrack.info.rotation=Tt(a)}catch{}}break;case v.Audio:{if(this.currentTrack?.info?.type!=="audio")break;this.readContiguousElements(e,r)}break;case v.SamplingFrequency:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.sampleRate=e.readFloat(r)}break;case v.Channels:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.numberOfChannels=e.readUnsignedInt(r)}break;case v.BitDepth:{if(this.currentTrack?.info?.type!=="audio")break;this.currentTrack.info.bitDepth=e.readUnsignedInt(r)}break;case v.CuePoint:{if(!this.currentSegment)break;this.readContiguousElements(e,r),this.currentCueTime=null}break;case v.CueTime:this.currentCueTime=e.readUnsignedInt(r);break;case v.CueTrackPositions:{if(this.currentCueTime===null)break;p(this.currentSegment);let i={time:this.currentCueTime,trackId:-1,clusterPosition:-1};this.currentSegment.cuePoints.push(i),this.readContiguousElements(e,r),(i.trackId===-1||i.clusterPosition===-1)&&this.currentSegment.cuePoints.pop()}break;case v.CueTrack:{let i=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!i)break;i.trackId=e.readUnsignedInt(r)}break;case v.CueClusterPosition:{let i=this.currentSegment?.cuePoints[this.currentSegment.cuePoints.length-1];if(!i)break;p(this.currentSegment),i.clusterPosition=this.currentSegment.dataStartPos+e.readUnsignedInt(r)}break;case v.Timestamp:{if(!this.currentCluster)break;this.currentCluster.timestamp=e.readUnsignedInt(r)}break;case v.SimpleBlock:{if(!this.currentCluster)break;let i=e.readVarInt(),a=e.readS16(),c=!!(e.readU8()&128);this.getTrackDataInCluster(this.currentCluster,i).blocks.push({timestamp:a,duration:0,isKeyFrame:c,referencedTimestamps:[],data:e.readBytes(r-(e.pos-s))})}break;case v.BlockGroup:{if(!this.currentCluster)break;if(this.readContiguousElements(e,r),this.currentBlock){for(let i=0;i<this.currentBlock.referencedTimestamps.length;i++)this.currentBlock.referencedTimestamps[i]+=this.currentBlock.timestamp;this.currentBlock=null}}break;case v.Block:{if(!this.currentCluster)break;let i=e.readVarInt(),a=e.readS16(),o=e.readU8(),c=this.getTrackDataInCluster(this.currentCluster,i);this.currentBlock={timestamp:a,duration:0,isKeyFrame:!0,referencedTimestamps:[],data:e.readBytes(r-(e.pos-s))},c.blocks.push(this.currentBlock)}break;case v.BlockDuration:{if(!this.currentBlock)break;this.currentBlock.duration=e.readUnsignedInt(r)}break;case v.ReferenceBlock:{if(!this.currentBlock)break;this.currentBlock.isKeyFrame=!1;let i=e.readSignedInt(r);this.currentBlock.referencedTimestamps.push(i)}break}e.pos=s+r}},jt=class{constructor(e){this.internalTrack=e,this.packetToClusterLocation=new WeakMap}getId(){return this.internalTrack.id}getCodec(){throw new Error("Not implemented on base class.")}async computeDuration(){let e=await this.getPacket(1/0,{metadataOnly:!0});return(e?.timestamp??0)+(e?.duration??0)}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:D(this.internalTrack.clusters,r.elementStartPos,i=>i.elementStartPos),blockIndex:0,correctBlockFound:!0};r=r.nextCluster}}return{clusterIndex:-1,blockIndex:-1,correctBlockFound:!1}},-1/0,1/0,e)}intoTimescale(e){return Fe(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),i=s.blocks[r.blockIndex],a=D(this.internalTrack.clusters,r.cluster.elementStartPos,o=>o.elementStartPos);return p(a!==-1),this.performClusterLookup(()=>{if(r.blockIndex+1<s.blocks.length)return{clusterIndex:a,blockIndex:r.blockIndex+1,correctBlockFound:!0};{let o=r.cluster;for(;o.nextCluster;)if(o=o.nextCluster,o.trackData.get(this.internalTrack.id)){let l=D(this.internalTrack.clusters,o.elementStartPos,d=>d.elementStartPos);return p(l!==-1),{clusterIndex:l,blockIndex:0,correctBlockFound:!0}}return{clusterIndex:a,blockIndex:-1,correctBlockFound:!1}}},i.timestamp,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),i=s.blocks[r.blockIndex],a=D(this.internalTrack.clusters,r.cluster.elementStartPos,o=>o.elementStartPos);return p(a!==-1),this.performClusterLookup(()=>{let o=s.blocks.findIndex((c,l)=>c.isKeyFrame&&l>r.blockIndex);if(o!==-1)return{clusterIndex:a,blockIndex:o,correctBlockFound:!0};{let c=r.cluster;for(;c.nextCluster;){c=c.nextCluster;let l=c.trackData.get(this.internalTrack.id);if(l&&l.firstKeyFrameTimestamp!==null){let d=D(this.internalTrack.clusters,c.elementStartPos,h=>h.elementStartPos);p(d!==-1);let u=l.blocks.findIndex(h=>h.isKeyFrame);return p(u!==-1),{clusterIndex:d,blockIndex:u,correctBlockFound:!0}}}return{clusterIndex:a,blockIndex:-1,correctBlockFound:!1}}},i.timestamp,1/0,t)}async fetchPacketInCluster(e,t,r){if(t===-1)return null;let i=e.trackData.get(this.internalTrack.id).blocks[t];p(i);let a=r.metadataOnly?z:i.data,o=i.timestamp/this.internalTrack.segment.timestampFactor,c=i.duration/this.internalTrack.segment.timestampFactor,l=new B(a,i.isKeyFrame?"key":"delta",o,c,e.dataStartPos+t,i.data.byteLength);return this.packetToClusterLocation.set(l,{cluster:e,blockIndex:t}),l}findBlockInClustersForTimestamp(e){let t=F(this.internalTrack.clusters,e,i=>i.trackData.get(this.internalTrack.id).startTimestamp),r=-1,s=!1;if(t!==-1){let a=this.internalTrack.clusters[t].trackData.get(this.internalTrack.id),o=F(a.presentationTimestamps,e,c=>c.timestamp);p(o!==-1),r=a.presentationTimestamps[o].blockIndex,s=e<a.endTimestamp}return{clusterIndex:t,blockIndex:r,correctBlockFound:s}}findKeyBlockInClustersForTimestamp(e){let t=F(this.internalTrack.clustersWithKeyFrame,e,a=>a.trackData.get(this.internalTrack.id).firstKeyFrameTimestamp),r=-1,s=-1,i=!1;if(t!==-1){let a=this.internalTrack.clustersWithKeyFrame[t];r=D(this.internalTrack.clusters,a.elementStartPos,d=>d.elementStartPos),p(r!==-1);let o=a.trackData.get(this.internalTrack.id),c=Rt(o.presentationTimestamps,d=>o.blocks[d.blockIndex].isKeyFrame&&d.timestamp<=e);p(c!==-1),s=o.presentationTimestamps[c].blockIndex,i=e<o.endTimestamp}return{clusterIndex:r,blockIndex:s,correctBlockFound:i}}async performClusterLookup(e,t,r,s){let{demuxer:i,segment:a}=this.internalTrack,o=await a.clusterLookupMutex.acquire();try{let{clusterIndex:c,blockIndex:l,correctBlockFound:d}=e();if(d){let k=this.internalTrack.clusters[c];return this.fetchPacketInCluster(k,l,s)}let u=i.metadataReader,h=i.clusterReader,m=null,f=c,w=l,g=F(this.internalTrack.cuePoints,t,k=>k.time),b=g!==-1?this.internalTrack.cuePoints[g]:null,y=!1;if(c===-1)u.pos=b?.clusterPosition??a.clusterSeekStartPos,y=u.pos===a.clusterSeekStartPos;else{let k=this.internalTrack.clusters[c];!b||k.elementStartPos>=b.clusterPosition?(u.pos=k.elementEndPos,m=k):u.pos=b.clusterPosition}for(;u.pos<a.elementEndPos;){if(m){let R=m.trackData.get(this.internalTrack.id);if(R&&R.startTimestamp>r)break;if(m.nextCluster){u.pos=m.nextCluster.elementEndPos,m=m.nextCluster;continue}}await u.reader.loadRange(u.pos,u.pos+ge);let k=u.pos,x=u.readElementHeader(),S=x.id,_=x.size,P=u.pos;if(S===v.Cluster){let R=D(a.clusters,k,ar=>ar.elementStartPos),E;R===-1?(u.pos=k,E=await i.readCluster(a)):E=a.clusters[R],m&&(m.nextCluster=E),m=E,y&&(E.isKnownToBeFirstCluster=!0,y=!1);let{clusterIndex:A,blockIndex:ie,correctBlockFound:cn}=e();if(cn){let ar=this.internalTrack.clusters[A];return this.fetchPacketInCluster(ar,ie,s)}A!==-1&&(f=A,w=ie)}if(_===null){S===v.Cluster?(p(m),_=m.elementEndPos-P):(h.pos=P,_=(await h.searchForNextElementId(_r,a.elementEndPos)??a.elementEndPos)-P);let R=P+_;if(R>a.elementEndPos-Ut)break;if(h.pos=R,h.readElementId()===v.Segment){a.elementEndPos=R;break}}u.pos=P+_}let I=null,T=f!==-1?this.internalTrack.clusters[f]:null;if(T&&(I=await this.fetchPacketInCluster(T,w,s)),!I&&b&&(!T||T.elementStartPos<b.clusterPosition)){let x=this.internalTrack.cuePoints[g-1]?.time??-1/0;return this.performClusterLookup(e,x,r,s)}return I}finally{o()}}},Mr=class extends jt{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:Dt({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?Is(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Ps(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?Bt(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?Ot(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}},Vr=class extends jt{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:At({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}},qn=n=>{let e=new Map;for(let i=0;i<n.length;i++){let a=n[i];e.set(a.timestamp,a)}let t=new Set,r=[],s=i=>{if(!t.has(i)){t.add(i);for(let a=0;a<i.referencedTimestamps.length;a++){let o=i.referencedTimestamps[a],c=e.get(o);c&&s(c)}r.push(i)}};for(let i=0;i<n.length;i++)s(n[i]);return r};var Ne=class{constructor(e){this.reader=e,this.pos=0,this.fileSize=null}readBytes(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);return this.pos+=e,new Uint8Array(t.buffer,r,e)}readU16(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+2);return this.pos+=2,e.getUint16(t,!1)}readU32(){let{view:e,offset:t}=this.reader.getViewAndOffset(this.pos,this.pos+4);return this.pos+=4,e.getUint32(t,!1)}readAscii(e){let{view:t,offset:r}=this.reader.getViewAndOffset(this.pos,this.pos+e);this.pos+=e;let s="";for(let i=0;i<e;i++)s+=String.fromCharCode(t.getUint8(r+i));return s}readId3(){return this.readAscii(3)!=="ID3"?(this.pos-=3,null):(this.pos+=3,{size:Gn(this.readU32())})}readNextFrameHeader(e){for(p(this.fileSize),e??=this.fileSize;this.pos<=e-4;){let t=this.readU32();this.pos-=4;let r=zs(t,this);if(r)return r}return null}},Gn=n=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=n&e,e>>=8;return t};var $t=class extends H{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.allSamples=[],this.tracks=[],this.reader=new Ne(e._mainReader)}async readMetadata(){return this.metadataPromise??=(async()=>{let e=await this.input.source.getSize();this.reader.fileSize=e,await this.reader.reader.loadRange(0,e);let t=this.reader.readId3();t&&(this.reader.pos+=t.size);let r=0;for(;;){let s=this.reader.readNextFrameHeader();if(!s)break;let i=Us(s.mpegVersionId,s.channel);this.reader.pos=s.startPos+i;let a=this.reader.readU32(),o=a===Bs||a===Os;if(this.reader.pos=s.startPos+s.totalSize-1,o)continue;this.firstFrameHeader||(this.firstFrameHeader=s);let c=s.audioSamplesInFrame/s.sampleRate,l={timestamp:r/s.sampleRate,duration:c,dataStart:s.startPos,dataSize:s.totalSize};this.allSamples.push(l),r+=s.audioSamplesInFrame}if(!this.firstFrameHeader)throw new Error("No MP3 frames found.");this.tracks=[new M(new Lr(this))]})()}async getMimeType(){return"audio/mpeg"}async getTracks(){return await this.readMetadata(),this.tracks}async computeDuration(){await this.readMetadata();let e=U(this.allSamples);return p(e),e.timestamp+e.duration}},Lr=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return p(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate/this.demuxer.firstFrameHeader.audioSamplesInFrame}computeDuration(){return this.demuxer.computeDuration()}getLanguageCode(){return L}getCodec(){return"mp3"}getNumberOfChannels(){return p(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.channel===3?1:2}getSampleRate(){return p(this.demuxer.firstFrameHeader),this.demuxer.firstFrameHeader.sampleRate}async getDecoderConfig(){return p(this.demuxer.firstFrameHeader),{codec:"mp3",numberOfChannels:this.demuxer.firstFrameHeader.channel===3?1:2,sampleRate:this.demuxer.firstFrameHeader.sampleRate}}getPacketAtIndex(e,t){if(e===-1)return null;let r=this.demuxer.allSamples[e];if(!r)return null;let s;return t.metadataOnly?s=z:(this.demuxer.reader.pos=r.dataStart,s=this.demuxer.reader.readBytes(r.dataSize)),new B(s,"key",r.timestamp,r.duration,e,r.dataSize)}async getFirstPacket(e){return this.getPacketAtIndex(0,e)}async getNextPacket(e,t){let r=D(this.demuxer.allSamples,e.timestamp,s=>s.timestamp);if(r===-1)throw new Error("Packet was not created from this track.");return this.getPacketAtIndex(r+1,t)}async getPacket(e,t){let r=F(this.demuxer.allSamples,e,s=>s.timestamp);return this.getPacketAtIndex(r,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var qt=class extends H{constructor(e){super(e),this.readingMutex=new re,this.metadataPromise=null,this.fileSize=null,this.bitstreams=[],this.tracks=[],this.reader=new Be(new W(e.source,64*2**20))}async readMetadata(){return this.metadataPromise??=(async()=>{for(this.fileSize=await this.input.source.getSize();this.reader.pos<this.fileSize-Oe;){await this.reader.reader.loadRange(this.reader.pos,this.reader.pos+ke);let e=this.reader.readPageHeader();if(!e||!!!(e.headerType&2))break;this.bitstreams.push({serialNumber:e.serialNumber,bosPage:e,description:null,numberOfChannels:-1,sampleRate:-1,codecInfo:{codec:null,vorbisInfo:null,opusInfo:null},lastMetadataPacket:null}),this.reader.pos=e.headerStartPos+e.totalSize}for(let e of this.bitstreams){let t=await this.readPacket(this.reader,e.bosPage,0);t&&(t.data.byteLength>=7&&t.data[0]===1&&t.data[1]===118&&t.data[2]===111&&t.data[3]===114&&t.data[4]===98&&t.data[5]===105&&t.data[6]===115?await this.readVorbisMetadata(t,e):t.data.byteLength>=8&&t.data[0]===79&&t.data[1]===112&&t.data[2]===117&&t.data[3]===115&&t.data[4]===72&&t.data[5]===101&&t.data[6]===97&&t.data[7]===100&&await this.readOpusMetadata(t,e),e.codecInfo.codec!==null&&this.tracks.push(new M(new Hr(e,this))))}})()}async readVorbisMetadata(e,t){let r=await this.findNextPacketStart(this.reader,e);if(!r)return;let s=await this.readPacket(this.reader,r.startPage,r.startSegmentIndex);if(!s||(r=await this.findNextPacketStart(this.reader,s),!r))return;let i=await this.readPacket(this.reader,r.startPage,r.startSegmentIndex);if(!i||s.data[0]!==3||i.data[0]!==5)return;let a=[],o=u=>{for(;a.push(Math.min(255,u)),!(u<255);)u-=255};o(e.data.length),o(s.data.length);let c=new Uint8Array(1+a.length+e.data.length+s.data.length+i.data.length);c[0]=a.length,c.set(a,1),c.set(e.data,1+a.length),c.set(s.data,1+a.length+e.data.length),c.set(i.data,1+a.length+e.data.length+s.data.length),t.codecInfo.codec="vorbis",t.description=c,t.lastMetadataPacket=i;let l=G(e.data);t.numberOfChannels=l.getUint8(11),t.sampleRate=l.getUint32(12,!0);let d=l.getUint8(28);t.codecInfo.vorbisInfo={blocksizes:[1<<(d&15),1<<(d>>4)],modeBlockflags:_s(i.data).modeBlockflags}}async readOpusMetadata(e,t){let r=await this.findNextPacketStart(this.reader,e);if(!r)return;let s=await this.readPacket(this.reader,r.startPage,r.startSegmentIndex);if(!s)return;t.codecInfo.codec="opus",t.description=e.data,t.lastMetadataPacket=s;let i=Rs(e.data);t.numberOfChannels=i.outputChannelCount,t.sampleRate=i.inputSampleRate,t.codecInfo.opusInfo={preSkip:i.preSkip}}async readPacket(e,t,r){p(r<t.lacingValues.length),p(this.fileSize);let s=0;for(let h=0;h<r;h++)s+=t.lacingValues[h];let i=t,a=s,o=r,c=[];e:for(;;){await e.reader.loadRange(i.dataStartPos,i.dataStartPos+i.dataSize),e.pos=i.dataStartPos;let h=e.readBytes(i.dataSize);for(;;){if(o===i.lacingValues.length){c.push(h.subarray(s,a));break}let m=i.lacingValues[o];if(a+=m,m<255){c.push(h.subarray(s,a));break e}o++}for(;;){if(e.pos=i.headerStartPos+i.totalSize,e.pos>=this.fileSize-Oe)return null;await e.reader.loadRange(e.pos,e.pos+ke);let m=e.readPageHeader();if(!m)return null;if(i=m,i.serialNumber===t.serialNumber)break}s=0,a=0,o=0}let l=c.reduce((h,m)=>h+m.length,0),d=new Uint8Array(l),u=0;for(let h=0;h<c.length;h++){let m=c[h];d.set(m,u),u+=m.length}return{data:d,endPage:i,endSegmentIndex:o}}async findNextPacketStart(e,t){if(p(this.fileSize!==null),t.endSegmentIndex<t.endPage.lacingValues.length-1)return{startPage:t.endPage,startSegmentIndex:t.endSegmentIndex+1};if(!!(t.endPage.headerType&4))return null;for(e.pos=t.endPage.headerStartPos+t.endPage.totalSize;;){if(e.pos>=this.fileSize-Oe)return null;await e.reader.loadRange(e.pos,e.pos+ke);let s=e.readPageHeader();if(!s)return null;if(s.serialNumber===t.endPage.serialNumber)return{startPage:s,startSegmentIndex:0};e.pos=s.headerStartPos+s.totalSize}}async getMimeType(){await this.readMetadata();let e=await Promise.all(this.tracks.map(t=>t.getCodecParameterString()));return Ls({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)}},Hr=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.internalSampleRate=e.codecInfo.codec==="opus"?ks: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}async getDecoderConfig(){return p(this.bitstream.codecInfo.codec),{codec:this.bitstream.codecInfo.codec,numberOfChannels:this.bitstream.numberOfChannels,sampleRate:this.bitstream.sampleRate,description:this.bitstream.description??void 0}}getLanguageCode(){return L}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"?(p(this.bitstream.codecInfo.opusInfo),e-this.bitstream.codecInfo.opusInfo.preSkip):e}createEncodedPacketFromOggPacket(e,t,r){if(!e)return null;let{durationInSamples:s,vorbisBlockSize:i}=Ns(e.data,this.bitstream.codecInfo,t.vorbisLastBlocksize),a=new B(r.metadataOnly?z: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(a,{packet:e,timestampInSamples:t.timestampInSamples,durationInSamples:s,vorbisBlockSize:i}),a}async getFirstPacket(e,t=!0){let r=t?await this.demuxer.readingMutex.acquire():null;try{p(this.bitstream.lastMetadataPacket);let s=await this.demuxer.findNextPacketStart(this.demuxer.reader,this.bitstream.lastMetadataPacket);if(!s)return null;let i=0;this.bitstream.codecInfo.codec==="opus"&&(p(this.bitstream.codecInfo.opusInfo),i-=this.bitstream.codecInfo.opusInfo.preSkip);let a=await this.demuxer.readPacket(this.demuxer.reader,s.startPage,s.startSegmentIndex);return this.createEncodedPacketFromOggPacket(a,{timestampInSamples:i,vorbisLastBlocksize:null},e)}finally{r?.()}}async getNextPacket(e,t){let r=await this.demuxer.readingMutex.acquire();try{let s=this.encodedPacketToMetadata.get(e);if(!s)throw new Error("Packet was not created from this track.");let i=await this.demuxer.findNextPacketStart(this.demuxer.reader,s.packet);if(!i)return null;let a=s.timestampInSamples+s.durationInSamples,o=await this.demuxer.readPacket(this.demuxer.reader,i.startPage,i.startSegmentIndex);return this.createEncodedPacketFromOggPacket(o,{timestampInSamples:a,vorbisLastBlocksize:s.vorbisBlockSize},t)}finally{r()}}async getPacket(e,t){let r=await this.demuxer.readingMutex.acquire();try{p(this.demuxer.fileSize!==null);let s=Fe(e*this.internalSampleRate,14);if(s===0)return this.getFirstPacket(t,!1);if(s<0)return null;let i=this.demuxer.reader;p(this.bitstream.lastMetadataPacket);let a=await this.demuxer.findNextPacketStart(i,this.bitstream.lastMetadataPacket);if(!a)return null;let o=a.startPage,c=this.demuxer.fileSize,l=[o];e:for(;o.headerStartPos+o.totalSize<c;){let T=o.headerStartPos,k=Math.floor((T+c)/2),x=k;for(;;){let S=Math.min(x+Hs,c-Oe);if(await i.reader.loadRange(x,S),i.pos=x,!i.findNextPageHeader(S)){c=k+Oe;continue e}await i.reader.loadRange(i.pos,i.pos+ke);let P=i.readPageHeader();p(P);let R=!1;if(P.serialNumber===this.bitstream.serialNumber)R=!0;else{await i.reader.loadRange(P.headerStartPos,P.headerStartPos+P.totalSize),i.pos=P.headerStartPos;let A=i.readBytes(P.totalSize);R=Vs(A)===P.checksum}if(!R){x=P.headerStartPos+4;continue}if(R&&P.serialNumber!==this.bitstream.serialNumber){x=P.headerStartPos+P.totalSize;continue}if(P.granulePosition===-1){x=P.headerStartPos+P.totalSize;continue}this.granulePositionToTimestampInSamples(P.granulePosition)>s?c=P.headerStartPos:(o=P,l.push(P));continue e}}let d=a.startPage;for(let T of l){if(T.granulePosition===o.granulePosition)break;(!d||T.headerStartPos>d.headerStartPos)&&(d=T)}let u=d,h=[u];for(;!(u.serialNumber===this.bitstream.serialNumber&&u.granulePosition===o.granulePosition);){i.pos=u.headerStartPos+u.totalSize,await i.reader.loadRange(i.pos,i.pos+ke);let T=i.readPageHeader();p(T),u=T,u.serialNumber===this.bitstream.serialNumber&&h.push(u)}p(u.granulePosition!==-1);let m=null,f,w,g=u,b=0;if(u.headerStartPos===a.startPage.headerStartPos)f=this.granulePositionToTimestampInSamples(0),w=!0,m=0;else{f=0,w=!1;for(let x=u.lacingValues.length-1;x>=0;x--)if(u.lacingValues[x]<255){m=x+1;break}if(m===null)throw new Error("Invalid page with granule position: no packets end on this page.");b=m-1;let T={data:z,endPage:g,endSegmentIndex:b};if(await this.demuxer.findNextPacketStart(i,T)){let x=Gs(h,u,m);p(x);let S=qs(h,x.page,x.segmentIndex);S&&(u=S.page,m=S.segmentIndex)}else for(;;){let x=Gs(h,u,m);if(!x)break;let S=qs(h,x.page,x.segmentIndex);if(!S)break;if(u=S.page,m=S.segmentIndex,x.page.headerStartPos!==g.headerStartPos){g=x.page,b=x.segmentIndex;break}}}let y=null,I=null;for(;u!==null;){p(m!==null);let T=await this.demuxer.readPacket(i,u,m);if(!T)break;if(!(u.headerStartPos===a.startPage.headerStartPos&&m<a.startSegmentIndex)){let S=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:f,vorbisLastBlocksize:I?.vorbisBlockSize??null},t);p(S);let _=this.encodedPacketToMetadata.get(S);if(p(_),!w&&T.endPage.headerStartPos===g.headerStartPos&&T.endSegmentIndex===b?(f=this.granulePositionToTimestampInSamples(u.granulePosition),w=!0,S=this.createEncodedPacketFromOggPacket(T,{timestampInSamples:f-_.durationInSamples,vorbisLastBlocksize:I?.vorbisBlockSize??null},t),p(S),_=this.encodedPacketToMetadata.get(S),p(_)):f+=_.durationInSamples,y=S,I=_,w&&(Math.max(f,0)>s||Math.max(_.timestampInSamples,0)===s))break}let x=await this.demuxer.findNextPacketStart(i,T);if(!x)break;u=x.startPage,m=x.startSegmentIndex}return y}finally{r()}}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}},qs=(n,e,t)=>{let r=e,s=t;e:for(;;){for(s--,s;s>=0;s--)if(r.lacingValues[s]<255){s++;break e}if(p(s===-1),!(r.headerType&1)){s=0;break}let a=Tr(n,o=>o.headerStartPos<r.headerStartPos);if(!a)return null;r=a,s=r.lacingValues.length}if(p(s!==-1),s===r.lacingValues.length){let i=n[n.indexOf(r)+1];p(i),r=i,s=0}return{page:r,segmentIndex:s}},Gs=(n,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let r=Tr(n,s=>s.headerStartPos<e.headerStartPos);return r?{page:r,segmentIndex:r.lacingValues.length-1}:null};var Q=class{},tt=class extends Q{async _getMajorBrand(e){if(await e._mainReader.source.getSize()<12)return null;let r=new Te(e._mainReader);return r.pos=4,r.readAscii(4)!=="ftyp"?null:r.readAscii(4)}_createDemuxer(e){return new Lt(e)}},Gt=class extends tt{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},Kt=class extends tt{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},rt=class extends Q{async isSupportedEBMLOfDocType(e,t){if(await e._mainReader.source.getSize()<8)return!1;let s=new we(e._mainReader),i=s.readVarIntSize();if(i<1||i>8||s.readUnsignedInt(i)!==v.EBML)return!1;let o=s.readElementSize();if(o===null)return!1;let c=s.pos;for(;s.pos<c+o;){let{id:l,size:d}=s.readElementHeader(),u=s.pos;if(d===null)return!1;switch(l){case v.EBMLVersion:if(s.readUnsignedInt(d)!==1)return!1;break;case v.EBMLReadVersion:if(s.readUnsignedInt(d)!==1)return!1;break;case v.DocType:if(s.readString(d)!==t)return!1;break;case v.DocTypeVersion:if(s.readUnsignedInt(d)>4)return!1;break}s.pos=u+d}return!0}_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"matroska")}_createDemuxer(e){return new Wt(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},Qt=class extends rt{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},Xt=class extends Q{async _canReadInput(e){let t=await e._mainReader.source.getSize();if(t<4)return!1;let r=new Ne(e._mainReader);r.fileSize=t;let s=r.readId3();s&&(r.pos+=s.size);let i=r.pos;await r.reader.loadRange(r.pos,r.pos+4096);let a=r.readNextFrameHeader(Math.min(i+4096,t));if(!a)return!1;if(s)return!0;r.pos=a.startPos+a.totalSize,await r.reader.loadRange(r.pos,r.pos+4);let o=r.readNextFrameHeader(r.pos+4);return!(!o||a.channel!==o.channel||a.sampleRate!==o.sampleRate)}_createDemuxer(e){return new $t(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},Yt=class extends Q{async _canReadInput(e){if(await e._mainReader.source.getSize()<12)return!1;let r=new xe(e._mainReader),s=r.readAscii(4);return s!=="RIFF"&&s!=="RIFX"?!1:(r.pos=8,r.readAscii(4)==="WAVE")}_createDemuxer(e){return new Vt(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},Zt=class extends Q{async _canReadInput(e){return await e._mainReader.source.getSize()<4?!1:new Be(e._mainReader).readAscii(4)==="OggS"}_createDemuxer(e){return new qt(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},Ks=new Gt,Qs=new Kt,Xs=new rt,Ys=new Qt,Zs=new Xt,Js=new Yt,en=new Zt,Le=[Ks,Qs,Xs,Ys,Js,en,Zs];var ne=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 Q)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof Se))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._mainReader=new W(e.source)}_getDemuxer(){return this._demuxerPromise??=(async()=>{await this._mainReader.loadRange(0,4096);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(),p(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 getPrimaryVideoTrack(){return(await this.getTracks()).find(t=>t.isVideoTrack())??null}async getAudioTracks(){return(await this.getTracks()).filter(t=>t.isAudioTrack())}async getPrimaryAudioTrack(){return(await this.getTracks()).find(t=>t.isAudioTrack())??null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}};var Jt=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 tn=n=>xt.host(({work:e},t)=>({async world(){n.count++}}));async function st(n){if(n instanceof FileSystemFileHandle){let e=await n.getFile();return new Je(e)}else return new et(n)}var er=class{machina;thread;static async setup(e){let t=new Jt,r=await xt.thread({label:"OmnitoolDriver",workerUrl:e.workerUrl,setupHost:tn(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 ne({source:await st(e),formats:Le}).getPrimaryAudioTrack())?.computeDuration()}async getVideoDuration(e){return await(await new ne({source:await st(e),formats:Le}).getPrimaryVideoTrack())?.computeDuration()}decode(e){let t=null,r=new TransformStream({async transform(i,a){let o=await e.onFrame?.(i)??i;t?.close(),a.enqueue(o),t=o}}),s=new TransformStream;return this.thread.work.decode[Ie]({transfer:[r.writable,s.writable]})({source:e.source,video:r.writable,audio:s.writable}),{audio:s.readable,video:r.readable}}async encode({readables:e,config:t}){let s=await(await window.showSaveFilePicker()).createWritable(),i=new WritableStream({async write(a){await s.write(a)},async close(){await s.close()}});return await this.thread.work.encode[Ie]({transfer:[e.audio,e.video,i]})({readables:e,config:t,bridge:i})}async composite(e){let t=this.#e(e);return await this.thread.work.composite[Ie]({transfer:t})(e)}#e(e){let t=[],r=s=>{if(Array.isArray(s))for(let i of s)r(i);else s&&typeof s=="object"&&"kind"in s&&s.kind==="image"&&s.frame instanceof VideoFrame&&t.push(s.frame)};return r(e),t}};var Kn=new URL("../driver/driver.worker.bundle.js",import.meta.url),tr={driver:er.setup({workerUrl:Kn})};function O(n,e,t,r){return new(t||(t=Promise))(function(s,i){function a(l){try{c(r.next(l))}catch(d){i(d)}}function o(l){try{c(r.throw(l))}catch(d){i(d)}}function c(l){var d;l.done?s(l.value):(d=l.value,d instanceof t?d:new t(function(u){u(d)})).then(a,o)}c((r=r.apply(n,e||[])).next())})}var ve=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))}},rr={decode:function(n,e){return O(this,void 0,void 0,function*(){let t=new AudioContext({sampleRate:e});return t.decodeAudioData(n).finally(()=>t.close())})},createBuffer:function(n,e){return typeof n[0]=="number"&&(n=[n]),function(t){let r=t[0];if(r.some(s=>s>1||s<-1)){let s=r.length,i=0;for(let a=0;a<s;a++){let o=Math.abs(r[a]);o>i&&(i=o)}for(let a of t)for(let o=0;o<s;o++)a[o]/=i}}(n),{duration:e,length:n[0].length,sampleRate:n[0].length/e,numberOfChannels:n.length,getChannelData:t=>n?.[t],copyFromChannel:AudioBuffer.prototype.copyFromChannel,copyToChannel:AudioBuffer.prototype.copyToChannel}}};function sn(n,e){let t=e.xmlns?document.createElementNS(e.xmlns,n):document.createElement(n);for(let[r,s]of Object.entries(e))if(r==="children"&&s)for(let[i,a]of Object.entries(s))a instanceof Node?t.appendChild(a):typeof a=="string"?t.appendChild(document.createTextNode(a)):t.appendChild(sn(i,a));else r==="style"?Object.assign(t.style,s):r==="textContent"?t.textContent=s:t.setAttribute(r,s.toString());return t}function rn(n,e,t){let r=sn(n,e||{});return t?.appendChild(r),r}var Qn=Object.freeze({__proto__:null,createElement:rn,default:rn}),Xn={fetchBlob:function(n,e,t){return O(this,void 0,void 0,function*(){let r=yield fetch(n,t);if(r.status>=400)throw new Error(`Failed to fetch ${n}: ${r.status} (${r.statusText})`);return function(s,i){O(this,void 0,void 0,function*(){if(!s.body||!s.headers)return;let a=s.body.getReader(),o=Number(s.headers.get("Content-Length"))||0,c=0,l=u=>O(this,void 0,void 0,function*(){c+=u?.length||0;let h=Math.round(c/o*100);i(h)}),d=()=>O(this,void 0,void 0,function*(){let u;try{u=yield a.read()}catch{return}u.done||(l(u.value),yield d())});d()})}(r.clone(),e),r.blob()})}},Wr=class extends ve{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 O(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)}},it=class n extends ve{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,i]=this.initHtml();r.appendChild(s),this.container=s,this.scrollContainer=i.querySelector(".scroll"),this.wrapper=i.querySelector(".wrapper"),this.canvasWrapper=i.querySelector(".canvases"),this.progressWrapper=i.querySelector(".progress"),this.cursor=i.querySelector(".cursor"),t&&i.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,i=t.clientY-r.top;return[s/r.width,i/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,i=t/r,a=(t+s)/r;this.emit("scroll",i,a,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,i=3,a=0,o=100){if(!e)return()=>{};let c=matchMedia("(pointer: coarse)").matches,l=()=>{},d=u=>{if(u.button!==a)return;u.preventDefault(),u.stopPropagation();let h=u.clientX,m=u.clientY,f=!1,w=Date.now(),g=k=>{if(k.preventDefault(),k.stopPropagation(),c&&Date.now()-w<o)return;let x=k.clientX,S=k.clientY,_=x-h,P=S-m;if(f||Math.abs(_)>i||Math.abs(P)>i){let R=e.getBoundingClientRect(),{left:E,top:A}=R;f||(r?.(h-E,m-A),f=!0),t(_,P,x-E,S-A),h=x,m=S}},b=k=>{if(f){let x=k.clientX,S=k.clientY,_=e.getBoundingClientRect(),{left:P,top:R}=_;s?.(x-P,S-R)}l()},y=k=>{k.relatedTarget&&k.relatedTarget!==document.documentElement||b(k)},I=k=>{f&&(k.stopPropagation(),k.preventDefault())},T=k=>{f&&k.preventDefault()};document.addEventListener("pointermove",g),document.addEventListener("pointerup",b),document.addEventListener("pointerout",y),document.addEventListener("pointercancel",y),document.addEventListener("touchmove",T,{passive:!1}),document.addEventListener("click",I,{capture:!0}),l=()=>{document.removeEventListener("pointermove",g),document.removeEventListener("pointerup",b),document.removeEventListener("pointerout",y),document.removeEventListener("pointercancel",y),document.removeEventListener("touchmove",T),setTimeout(()=>{document.removeEventListener("click",I,{capture:!0})},10)}};return e.addEventListener("pointerdown",d),()=>{l(),e.removeEventListener("pointerdown",d)}}(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 i=this.parent.clientHeight||128;return t?.every(a=>!a.overlay)?i/s:i}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=`
1
+ var f_=Object.create;var Yd=Object.defineProperty;var m_=Object.getOwnPropertyDescriptor;var p_=Object.getOwnPropertyNames;var g_=Object.getPrototypeOf,x_=Object.prototype.hasOwnProperty;var b=(i,e)=>()=>(i&&(e=i(i=0)),e);var Kd=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports);var y_=(i,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of p_(e))!x_.call(i,s)&&s!==t&&Yd(i,s,{get:()=>e[s],enumerable:!(r=m_(e,s))||r.enumerable});return i};var Zd=(i,e,t)=>(t=i!=null?f_(g_(i)):{},y_(e||!i||!i.__esModule?Yd(t,"default",{value:i,enumerable:!0}):t,i));var A,tu,fa,N,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||{}),tu=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},fa=(i,e)=>tu(i).priority??e,N={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(tu).forEach(e=>{e.type.forEach(t=>this._removeHandlers[t]?.(e))}),this},add(...i){return i.map(tu).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)=>fa(o.value,t)-fa(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)=>fa(n,t)-fa(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 zm=Kd((DD,ru)=>{"use strict";var fS=Object.prototype.hasOwnProperty,De="~";function Ls(){}Object.create&&(Ls.prototype=Object.create(null),new Ls().__proto__||(De=!1));function mS(i,e,t){this.fn=i,this.context=e,this.once=t||!1}function Um(i,e,t,r,s){if(typeof t!="function")throw new TypeError("The listener must be a function");var n=new mS(t,r||i,s),o=De?De+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 ma(i,e){--i._eventsCount===0?i._events=new Ls:delete i._events[e]}function Ie(){this._events=new Ls,this._eventsCount=0}Ie.prototype.eventNames=function(){var e=[],t,r;if(this._eventsCount===0)return e;for(r in t=this._events)fS.call(t,r)&&e.push(De?r.slice(1):r);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e};Ie.prototype.listeners=function(e){var t=De?De+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=De?De+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=De?De+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 Um(this,e,t,r,!1)};Ie.prototype.once=function(e,t,r){return Um(this,e,t,r,!0)};Ie.prototype.removeListener=function(e,t,r,s){var n=De?De+e:e;if(!this._events[n])return this;if(!t)return ma(this,n),this;var o=this._events[n];if(o.fn)o.fn===t&&(!s||o.once)&&(!r||o.context===r)&&ma(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:ma(this,n)}return this};Ie.prototype.removeAllListeners=function(e){var t;return e?(t=De?De+e:e,this._events[t]&&ma(this,t)):(this._events=new Ls,this._eventsCount=0),this};Ie.prototype.off=Ie.prototype.removeListener;Ie.prototype.addListener=Ie.prototype.on;Ie.prefixed=De;Ie.EventEmitter=Ie;typeof ru<"u"&&(ru.exports=Ie)});var Gm,ie,He=b(()=>{Gm=Zd(zm(),1),ie=Gm.default});var pS,$t,_e,tt,qm,Lm,iu,gS,pa,Xm,Ym,Nm,Vm,Wm,Ns,xS,yS,bS,wS,ou,Hm,_S,su,nu,jm,au,ft,$m,Km,Zm=b(()=>{pS={grad:.9,turn:360,rad:360/(2*Math.PI)},$t=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},tt=function(i,e,t){return e===void 0&&(e=0),t===void 0&&(t=1),i>t?t:i>e?i:e},qm=function(i){return(i=isFinite(i)?i%360:0)>0?i:i+360},Lm=function(i){return{r:tt(i.r,0,255),g:tt(i.g,0,255),b:tt(i.b,0,255),a:tt(i.a)}},iu=function(i){return{r:_e(i.r),g:_e(i.g),b:_e(i.b),a:_e(i.a,3)}},gS=/^#([0-9a-f]{3,8})$/i,pa=function(i){var e=i.toString(16);return e.length<2?"0"+e:e},Xm=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}},Ym=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}},Nm=function(i){return{h:qm(i.h),s:tt(i.s,0,100),l:tt(i.l,0,100),a:tt(i.a)}},Vm=function(i){return{h:_e(i.h),s:_e(i.s),l:_e(i.l),a:_e(i.a,3)}},Wm=function(i){return Ym((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},Ns=function(i){return{h:(e=Xm(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},xS=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s*,\s*([+-]?\d*\.?\d+)%\s*,\s*([+-]?\d*\.?\d+)%\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,yS=/^hsla?\(\s*([+-]?\d*\.?\d+)(deg|rad|grad|turn)?\s+([+-]?\d*\.?\d+)%\s+([+-]?\d*\.?\d+)%\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,bS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*,\s*([+-]?\d*\.?\d+)(%)?\s*(?:,\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,wS=/^rgba?\(\s*([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s+([+-]?\d*\.?\d+)(%)?\s*(?:\/\s*([+-]?\d*\.?\d+)(%)?\s*)?\)$/i,ou={string:[[function(i){var e=gS.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=bS.exec(i)||wS.exec(i);return e?e[2]!==e[4]||e[4]!==e[6]?null:Lm({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=xS.exec(i)||yS.exec(i);if(!e)return null;var t,r,s=Nm({h:(t=e[1],r=e[2],r===void 0&&(r="deg"),Number(t)*(pS[r]||1)),s:Number(e[3]),l:Number(e[4]),a:e[5]===void 0?1:Number(e[5])/(e[6]?100:1)});return Wm(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 $t(e)&&$t(t)&&$t(r)?Lm({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(!$t(e)||!$t(t)||!$t(r))return null;var o=Nm({h:Number(e),s:Number(t),l:Number(r),a:Number(n)});return Wm(o)},"hsl"],[function(i){var e=i.h,t=i.s,r=i.v,s=i.a,n=s===void 0?1:s;if(!$t(e)||!$t(t)||!$t(r))return null;var o=function(a){return{h:qm(a.h),s:tt(a.s,0,100),v:tt(a.v,0,100),a:tt(a.a)}}({h:Number(e),s:Number(t),v:Number(r),a:Number(n)});return Ym(o)},"hsv"]]},Hm=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]},_S=function(i){return typeof i=="string"?Hm(i.trim(),ou.string):typeof i=="object"&&i!==null?Hm(i,ou.object):[null,void 0]},su=function(i,e){var t=Ns(i);return{h:t.h,s:tt(t.s+100*e,0,100),l:t.l,a:t.a}},nu=function(i){return(299*i.r+587*i.g+114*i.b)/1e3/255},jm=function(i,e){var t=Ns(i);return{h:t.h,s:t.s,l:tt(t.l+100*e,0,100),a:t.a}},au=function(){function i(e){this.parsed=_S(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(nu(this.rgba),2)},i.prototype.isDark=function(){return nu(this.rgba)<.5},i.prototype.isLight=function(){return nu(this.rgba)>=.5},i.prototype.toHex=function(){return e=iu(this.rgba),t=e.r,r=e.g,s=e.b,o=(n=e.a)<1?pa(_e(255*n)):"","#"+pa(t)+pa(r)+pa(s)+o;var e,t,r,s,n,o},i.prototype.toRgb=function(){return iu(this.rgba)},i.prototype.toRgbString=function(){return e=iu(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 Vm(Ns(this.rgba))},i.prototype.toHslString=function(){return e=Vm(Ns(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=Xm(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 ft({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),ft(su(this.rgba,e))},i.prototype.desaturate=function(e){return e===void 0&&(e=.1),ft(su(this.rgba,-e))},i.prototype.grayscale=function(){return ft(su(this.rgba,-1))},i.prototype.lighten=function(e){return e===void 0&&(e=.1),ft(jm(this.rgba,e))},i.prototype.darken=function(e){return e===void 0&&(e=.1),ft(jm(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"?ft({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=Ns(this.rgba);return typeof e=="number"?ft({h:e,s:t.s,l:t.l,a:t.a}):_e(t.h)},i.prototype.isEqual=function(e){return this.toHex()===ft(e).toHex()},i}(),ft=function(i){return i instanceof au?i:new au(i)},$m=[],Km=function(i){i.forEach(function(e){$m.indexOf(e)<0&&(e(au,ou),$m.push(e))})}});function Qm(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 Jm=b(()=>{});var Bi,X,je=b(()=>{Zm();Jm();Km([Qm]);Bi=class Vs{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 Vs)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]=Vs._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=Vs.HEX_PATTERN.exec(e);a&&(e=`#${a[2]}`)}let o=ft(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 Vs||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}};Bi.shared=new Bi;Bi._temp=new Bi;Bi.HEX_PATTERN=/^(#|0x)?(([a-f0-9]{3}){1,2}([a-f0-9]{2})?)$/i;X=Bi});var ep,tp=b(()=>{"use strict";ep={cullArea:null,cullable:!1,cullableChildren:!0}});var rp,ip,sp,cu=b(()=>{"use strict";rp=Math.PI*2,ip=180/Math.PI,sp=Math.PI/180});var Y,lu,Tt=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 lu.x=0,lu.y=0,lu}},lu=new Y});var F,SS,TS,re=b(()=>{cu();Tt();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(rp-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 TS.identity()}static get shared(){return SS.identity()}},SS=new F,TS=new F});var Oe,uu=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 hu[i]===void 0&&(hu[i]=-1),++hu[i]}var hu,Ue=b(()=>{"use strict";hu={default:-1}});function L(i,e,t=3){if(np[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))),np[e]=!0}var np,$,op,pe=b(()=>{"use strict";np={},$="8.0.0",op="8.3.4"});var Nr,du=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 fu,be,Vr=b(()=>{du();fu=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 fu});var ap,cp=b(()=>{pe();ap={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){L("v8.6.0","cacheAsBitmap is deprecated, use cacheAsTexture instead."),this.cacheAsTexture(i)}}});function ga(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 mu=b(()=>{"use strict"});var lp,up=b(()=>{mu();pe();lp={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)}ga(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||L($,"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 hp,dp=b(()=>{"use strict";hp={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 Ws,fp=b(()=>{"use strict";Ws=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 pu,xa,mp=b(()=>{G();Vr();pu=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)}},xa=new pu;N.handleByList(A.MaskEffect,xa._effectClasses)});var pp,gp=b(()=>{fp();mp();pp={_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),xa.returnMaskEffect(e),this._maskEffect=null),i!=null&&(this._maskEffect=xa.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 Ws);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 Ws),this._filterEffect.filterArea=i},get filterArea(){return this._filterEffect?.filterArea}}});var xp,yp=b(()=>{pe();xp={label:null,get name(){return L($,"Container.name property has been removed, use Container.label instead"),this.label},set name(i){L($,"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 ya,Z,$e=b(()=>{Tt();ya=[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=ya[0].set(e.left,e.top),c=ya[1].set(e.left,e.bottom),l=ya[2].set(e.right,e.top),u=ya[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 bp,le,mt=b(()=>{re();$e();bp=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=bp,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=bp,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,Ze,Wr=b(()=>{re();du();mt();ge=new Nr(F),Ze=new Nr(le)});var kS,wp,_p=b(()=>{re();mt();Wr();kS=new F,wp={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=Ze.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(kS).invert()),e.addBounds(r,this.relativeGroupTransform)),e.addBounds(r),Ze.return(r)}else this.renderGroup&&(e.addBounds(r,this.relativeGroupTransform),Ze.return(r))}}});function ba(i,e,t){t.clear();let r,s;return i.parent?e?r=i.parent.worldTransform:(s=ge.get().identity(),r=wa(i,s)):r=F.IDENTITY,Sp(i,t,r,e),s&&ge.return(s),t.isValid||t.set(0,0,0,0),t}function Sp(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=Ze.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++)Sp(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),Ze.return(e)}r||ge.return(s)}function wa(i,e){let t=i.parent;return t&&(wa(t,e),t.updateLocalTransform(),e.append(t.localTransform)),e}var _a=b(()=>{re();Wr()});function Sa(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 gu=b(()=>{"use strict"});function xu(i,e){return i===Tp?e:e===Tp?i:Sa(i,e)}var Tp,kp=b(()=>{gu();Tp=16777215});function Hs(i){return((i&255)<<16)+(i&65280)+(i>>16&255)}var vp,Pp=b(()=>{_a();Wr();kp();vp={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=wa(this,ge.get().identity());return i.appendFrom(this.localTransform,t),ge.return(t),i},getGlobalTint(i){if(i)return this.renderGroup?Hs(this.renderGroup.worldColor):this.parentRenderGroup?Hs(xu(this.localColor,this.parentRenderGroup.worldColor)):this.tint;let e=this.localColor,t=this.parent;for(;t;)e=xu(e,t.localColor),t=t.parent;return Hs(e)}}});function Ta(i,e,t){return e.clear(),t||(t=F.IDENTITY),Cp(i,e,t,i,!0),e.isValid||e.set(0,0,0,0),e}function Cp(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=Ze.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++)Cp(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),Ze.return(e)}ge.return(n)}var yu=b(()=>{re();Wr()});function bu(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&&bu(s,e)}return e.didChange}var Ep=b(()=>{"use strict"});var vS,Ap,Ip=b(()=>{re();mt();_a();yu();Ep();vS=new F,Ap={_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),bu(this,i),i.didChange&&Ta(this,i.localBounds,vS),i.localBounds},getBounds(i,e){return ba(this,i,e||new le)}}});var Mp,Bp=b(()=>{"use strict";Mp={_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 PS(i,e){return i._zIndex-e._zIndex}var Fp,Rp=b(()=>{"use strict";Fp={_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(PS))}}});var Dp,Op=b(()=>{Tt();Wr();Dp={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 Fi,wu=b(()=>{Ue();Fi=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 qt(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 _u(i){return!(i&i-1)&&!!i}var js=b(()=>{"use strict"});function ka(i){let e={};for(let t in i)i[t]!==void 0&&(e[t]=i[t]);return e}var Su=b(()=>{"use strict"});function CS(i){let e=Up[i];return e===void 0&&(Up[i]=K("resource")),e}var Up,zp,rt,Ri=b(()=>{He();Ue();pe();Up=Object.create(null);zp=class Gp extends ie{constructor(e={}){super(),this._resourceType="textureSampler",this._touched=0,this._maxAnisotropy=1,this.destroyed=!1,e={...Gp.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){L($,"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=CS(e),this._resourceId}destroy(){this.destroyed=!0,this.emit("destroy",this),this.emit("change",this),this.removeAllListeners()}};zp.defaultOptions={addressMode:"clamp-to-edge",scaleMode:"linear"};rt=zp});var Lp,we,Xt=b(()=>{He();js();Su();Ue();Ri();Lp=class Np 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={...Np.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 rt(ka(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=_u(this.pixelWidth)&&_u(this.pixelHeight)}static test(e){throw new Error("Unimplemented")}};Lp.defaultOptions={resolution:1,format:"bgra8unorm",alphaMode:"premultiply-alpha-on-upload",dimensions:"2d",mipLevelCount:1,autoGenerateMipmaps:!1,sampleCount:1,antialias:!1,autoGarbageCollect:!1};we=Lp});function ES(){for(let i=0;i<16;i++){let e=[];Tu.push(e);for(let t=0;t<16;t++){let r=va(Hr[i]*Hr[t]+$r[i]*jr[t]),s=va(jr[i]*Hr[t]+qr[i]*jr[t]),n=va(Hr[i]*$r[t]+$r[i]*qr[t]),o=va(jr[i]*$r[t]+qr[i]*qr[t]);for(let a=0;a<16;a++)if(Hr[a]===r&&jr[a]===s&&$r[a]===n&&qr[a]===o){e.push(a);break}}}for(let i=0;i<16;i++){let e=new F;e.set(Hr[i],jr[i],$r[i],qr[i],0,0),Vp.push(e)}}var Hr,jr,$r,qr,Tu,Vp,va,se,Wp=b(()=>{re();Hr=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],jr=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],$r=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],qr=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],Tu=[],Vp=[],va=Math.sign;ES();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=>Hr[i],uY:i=>jr[i],vX:i=>$r[i],vY:i=>qr[i],inv:i=>i&8?i&15:-i&7,add:(i,e)=>Tu[i][e],sub:(i,e)=>Tu[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=Vp[se.inv(e)];s.tx=t,s.ty=r,i.append(s)}}});var ku,Hp=b(()=>{"use strict";ku=()=>{}});var Xr,vu=b(()=>{G();Xt();Xr=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}};Xr.extension=A.TextureSource});var jp,Pa,$p=b(()=>{re();jp=new F,Pa=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&&(jp.set(r.width/s.width,0,0,r.height/s.height,-s.x/s.width,-s.y/s.height),this.mapCoord.append(jp));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();Wp();$e();Ue();pe();Hp();vu();Xt();$p();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 Pa(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 L($,"Texture.baseTexture is now Texture.source"),this._source}};O.EMPTY=new O({label:"EMPTY",source:new we({label:"EMPTY"})});O.EMPTY.destroy=ku;O.WHITE=new O({source:new Xr({resource:new Uint8Array([255,255,255,255]),width:1,height:1,alphaMode:"premultiply-alpha-on-upload",label:"WHITE"}),label:"WHITE"});O.WHITE.destroy=ku});var AS,Pu,Me,Di=b(()=>{js();Xt();Te();Ri();AS=0,Pu=class{constructor(e){this._poolKeyHash=Object.create(null),this._texturePool={},this.textureOptions=e||{},this.enableFullScreen=!1,this.textureStyle=new rt(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_${AS++}`})}getOptimalTexture(e,t,r=1,s){let n=Math.ceil(e*r-1e-6),o=Math.ceil(t*r-1e-6);n=qt(n),o=qt(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 Pu});var Ca,qp=b(()=>{re();wu();Di();Ca=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 Fi,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 Xp(i,e,t={}){for(let r in e)!t[r]&&e[r]!==void 0&&(i[r]=e[r])}var Yp=b(()=>{"use strict"});var Cu,Eu,Au,Kp,IS,Iu,pt,$s=b(()=>{He();je();tp();G();re();cu();uu();Ue();pe();Vr();cp();up();dp();gp();yp();_p();Pp();Ip();Bp();Rp();Op();qp();Yp();Cu=new Oe(null),Eu=new Oe(null),Au=new Oe(null,1,1),Kp=1,IS=2,Iu=4,pt=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=Au,this._pivot=Eu,this._skew=Cu,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=[],Xp(this,e,{children:!0,parent:!0,effects:!0}),e.children?.forEach(t=>this.addChild(t)),e.parent?.addChild(this)}static mixin(e){L("8.8.0","Container.mixin is deprecated, please use extensions.mixin instead."),N.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||L($,"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(Ca,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*ip}set angle(e){this.rotation=e*sp}get pivot(){return this._pivot===Eu&&(this._pivot=new Oe(this,0,0)),this._pivot}set pivot(e){this._pivot===Eu&&(this._pivot=new Oe(this,0,0)),typeof e=="number"?this._pivot.set(e):this._pivot.copyFrom(e)}get skew(){return this._skew===Cu&&(this._skew=new Oe(this,0,0)),this._skew}set skew(e){this._skew===Cu&&(this._skew=new Oe(this,0,0)),this._skew.copyFrom(e)}get scale(){return this._scale===Au&&(this._scale=new Oe(this,1,1)),this._scale}set scale(e){this._scale===Au&&(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|=Kp,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|=Kp,this._onUpdate())}get tint(){return Hs(this.localColor)}set blendMode(e){this.localBlendMode!==e&&(this.parentRenderGroup&&(this.parentRenderGroup.structureDidChange=!0),this._updateFlags|=IS,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|=Iu,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|=Iu,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|=Iu,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}};N.mixin(pt,lp,wp,Dp,Mp,Ap,pp,xp,Fp,ep,ap,vp,hp)});var hr,Ea=b(()=>{Tt();hr=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 qs(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(Mu)&&!s(Yt),ipod:s(Zp),tablet:!s(Mu)&&(s(Qp)||ag(e))&&!s(Yt),universal:s(Jp),device:(s(Mu)||s(Zp)||s(Qp)||s(Jp)||ag(e))&&!s(Yt)},amazon:{phone:s(Oi),tablet:!s(Oi)&&s(Aa),device:s(Oi)||s(Aa)},android:{phone:!s(Yt)&&s(Oi)||!s(Yt)&&s(Bu),tablet:!s(Yt)&&!s(Oi)&&!s(Bu)&&(s(Aa)||s(eg)),device:!s(Yt)&&(s(Oi)||s(Aa)||s(Bu)||s(eg))||s(/\bokhttp\b/i)},windows:{phone:s(Yt),tablet:s(tg),device:s(Yt)||s(tg)},other:{blackberry:s(rg),blackberry10:s(ig),opera:s(sg),firefox:s(og),chrome:s(ng),device:s(rg)||s(ig)||s(sg)||s(og)||s(ng)},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 Mu,Zp,Qp,Jp,Bu,eg,Oi,Aa,Yt,tg,rg,ig,sg,ng,og,ag,Fu=b(()=>{Mu=/iPhone/i,Zp=/iPod/i,Qp=/iPad/i,Jp=/\biOS-universal(?:.+)Mac\b/i,Bu=/\bAndroid(?:.+)Mobile\b/i,eg=/Android/i,Oi=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,Aa=/Silk/i,Yt=/Windows Phone/i,tg=/\bWindows(?:.+)ARM\b/i,rg=/BlackBerry/i,ig=/BB10/i,sg=/Opera Mini/i,ng=/\b(CriOS|Chrome)(?:.+)Mobile/i,og=/Mobile(?:.+)Firefox\b/i,ag=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"}});var cg=b(()=>{Fu();Fu()});var BS,lg,ug=b(()=>{cg();BS=qs.default??qs,lg=BS(globalThis.navigator)});var FS,Ia,RS,DS,hg,dg,OS,US,zS,Ru,mg,pg=b(()=>{Ea();G();ug();mu();FS=9,Ia=100,RS=0,DS=0,hg=2,dg=1,OS=-1e3,US=-1e3,zS=2,Ru=class fg{constructor(e,t=lg){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=`${dg}px`,e.style.height=`${dg}px`,e.style.position="absolute",e.style.top=`${OS}px`,e.style.left=`${US}px`,e.style.zIndex=zS.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=`${Ia}px`,this._div.style.height=`${Ia}px`,this._div.style.position="absolute",this._div.style.top=`${RS}px`,this._div.style.left=`${DS}px`,this._div.style.zIndex=hg.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:{...fg.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,ga(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=`${Ia}px`,t.style.height=`${Ia}px`,t.style.backgroundColor=this.debug?"rgba(255,255,255,0.5)":"transparent",t.style.position="absolute",t.style.zIndex=hg.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 hr(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!==FS||!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()}};Ru.extension={type:[A.WebGLSystem,A.WebGPUSystem],name:"accessibility"};Ru.defaultOptions={enabledByDefault:!1,debug:!1,activateOnTab:!0,deactivateOnMouseMove:!0};mg=Ru});var gg,xg=b(()=>{"use strict";gg={accessible:!1,accessibleTitle:null,accessibleHint:null,tabIndex:0,accessibleType:"button",accessibleText:null,accessiblePointerEvents:"auto",accessibleChildren:!0,_accessibleActive:!1,_accessibleDiv:null,_renderId:-1}});var yg=b(()=>{G();$s();pg();xg();N.add(mg);N.mixin(pt,gg)});var Xs,bg=b(()=>{G();Xs=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}};Xs.extension=A.Application});var dr,Ma=b(()=>{"use strict";dr=(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))(dr||{})});var Ui,wg=b(()=>{"use strict";Ui=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 _g,gt,Ba=b(()=>{Ma();wg();_g=class Qe{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 Ui(null,null,1/0),this.deltaMS=1/Qe.targetFPMS,this.elapsedMS=1/Qe.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=dr.NORMAL){return this._addListener(new Ui(e,t,r))}addOnce(e,t,r=dr.NORMAL){return this._addListener(new Ui(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*Qe.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,Qe.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(!Qe._shared){let e=Qe._shared=new Qe;e.autoStart=!0,e._protected=!0}return Qe._shared}static get system(){if(!Qe._system){let e=Qe._system=new Qe;e.autoStart=!0,e._protected=!0}return Qe._system}};_g.targetFPMS=.06;gt=_g});var Ys,Sg=b(()=>{G();Ma();Ba();Ys=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,dr.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?gt.shared:new gt,e.autoStart&&this.start()}static destroy(){if(this._ticker){let e=this._ticker;this.ticker=null,e.destroy()}}};Ys.extension=A.Application});var Du=b(()=>{G();bg();Sg();N.add(Xs);N.add(Ys)});function q(...i){Ou!==Tg&&(Ou++,Ou===Tg?console.warn("PixiJS Warning: too many warnings, no more warnings will be reported to the console by PixiJS."):console.warn("PixiJS Warning: ",...i))}var Ou,Tg,ze=b(()=>{"use strict";Ou=0,Tg=500});var Uu,kt,zu=b(()=>{Ma();Ba();Uu=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||(gt.system.add(this._tickerUpdate,this,dr.INTERACTION),this._tickerAdded=!0)}removeTickerListener(){this._tickerAdded&&(gt.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())}},kt=new Uu});var Kt,Fa=b(()=>{Tt();Ea();Kt=class extends hr{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,Gu=b(()=>{Fa();Ge=class extends Kt{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 vt,Lu=b(()=>{Fa();vt=class extends Kt{constructor(){super(...arguments),this.DOM_DELTA_PIXEL=0,this.DOM_DELTA_LINE=1,this.DOM_DELTA_PAGE=2}};vt.DOM_DELTA_PIXEL=0;vt.DOM_DELTA_LINE=1;vt.DOM_DELTA_PAGE=2});var GS,LS,Ks,Ra,kg=b(()=>{He();Tt();ze();zu();Fa();Gu();Lu();GS=2048,LS=new Y,Ks=new Y,Ra=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){kt.pauseUpdate=!0;let s=this._isPointerMoveEvent&&this.enableGlobalMoveEvents?"hitTestMoveRecursive":"hitTestRecursive",n=this[s](this.rootTarget,this.rootTarget.eventMode,LS.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<GS&&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")&&(kt.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")&&(kt.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,Ks),!e.hitArea.contains(Ks.x,Ks.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,Ks),e.containsPoint(Ks)):!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 vt)){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(vt);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 Kt&&t instanceof Kt&&(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 NS,VS,Vu,Da,Wu=b(()=>{G();kg();zu();Gu();Lu();NS=1,VS={touchstart:"pointerdown",touchend:"pointerup",touchendoutside:"pointerupoutside",touchmove:"pointermove",touchcancel:"pointercancel"},Vu=class Nu{constructor(e){this.supportsTouchEvents="ontouchstart"in globalThis,this.supportsPointerEvents=!!globalThis.PointerEvent,this.domElement=null,this.resolution=1,this.renderer=e,this.rootBoundary=new Ra(null),kt.init(this),this.autoPreventDefault=!0,this._eventsAdded=!1,this._rootPointerEvent=new Ge(null),this._rootWheelEvent=new vt(null),this.cursorStyles={default:"inherit",pointer:"pointer"},this.features=new Proxy({...Nu.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,Nu._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,kt.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,kt.domElement=e,this._addEvents()}_addEvents(){if(this._eventsAdded||!this.domElement)return;kt.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;kt.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=NS),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}};Vu.extension={name:"events",type:[A.WebGLSystem,A.CanvasSystem,A.WebGPUSystem],priority:-1};Vu.defaultEventFeatures={move:!0,globalMove:!0,click:!0,wheel:!0};Da=Vu});var vg,Pg=b(()=>{Wu();Ea();vg={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??Da.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 hr))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 Cg=b(()=>{G();$s();Wu();Pg();N.add(Da);N.mixin(pt,vg)});var Zs,Eg=b(()=>{G();Zs=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}};Zs.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"dom"}});var zi,Hu=b(()=>{mt();$s();zi=class extends pt{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 Ag=b(()=>{G();Eg();N.add(Zs)});var ju,Ig=b(()=>{"use strict";ju=(i=>(i[i.Low=0]="Low",i[i.Normal=1]="Normal",i[i.High=2]="High",i))(ju||{})});var Mg,Bg=b(()=>{"use strict";Mg={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 Fg,xe,Pt=b(()=>{Bg();Fg=Mg,xe={get(){return Fg},set(i){Fg=i}}});function xt(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 WS(i){return i.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function HS(i,e,t){return i.replace(new RegExp(WS(e),"g"),t)}function jS(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 Yr,$u=b(()=>{Pt();Yr={toPosix(i){return HS(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){xt(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(xt(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("/")?Yr.join(s,i.slice(1)):this.isAbsolute(i)?i:this.join(r,i)},normalize(i){if(xt(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=jS(i,!1),i.length>0&&r&&(i+="/"),t?`/${i}`:e+i},isAbsolute(i){return xt(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(xt(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(xt(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){xt(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){xt(i),e&&xt(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){xt(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){xt(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 fr,qu=b(()=>{"use strict";fr=(i,e,t=!1)=>(Array.isArray(i)||(i=[i]),e?i.map(r=>typeof r=="string"||t?e(r):r):i)});function Rg(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?Rg(i.replace(r[t],a),e,t+1,r,s):s.push(i.replace(r[t],a))}}function Dg(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)}),Rg(i,s,0,t,r)}else r.push(i);return r}var Og=b(()=>{"use strict"});var Xu,Ug=b(()=>{"use strict";Xu=i=>!Array.isArray(i)});function $S(i){return i.split(".").pop().split("?").shift().split("#").shift()}var Js,zg=b(()=>{ze();$u();qu();Og();Ug();Js=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 fr(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`)},fr(t).forEach(n=>{let{src:o}=n,{data:a,format:c,loadParser:l}=n,u=fr(o).map(f=>typeof f=="string"?Dg(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=Xu(e);e=fr(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=Xu(e);e=fr(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=Yr.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??$S(e.src),e}};Js.RETINA_PREFIX=/@([0-9\.]+)x/});var Yu,Gg=b(()=>{"use strict";Yu=(i,e)=>{let t=e.split("?")[1];return t&&(i+=`?${t}`),i}});var Lg,Ku,Ng=b(()=>{$e();Xt();Te();Lg=class en{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<=en.BATCH_SIZE?(this._processFrames(0),this._processAnimations(),this._parseComplete()):this._nextBatch()})}_processFrames(e){let t=e,r=en.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*en.BATCH_SIZE),this._batchIndex++,setTimeout(()=>{this._batchIndex*en.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=[]}};Lg.BATCH_SIZE=1e3;Ku=Lg});function Vg(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=Yr.dirname(i[0]);e.linkedSheets.forEach((n,o)=>{let a=Vg([`${s}/${e.data.meta.related_multi_packs[o]}`],n,!0);Object.assign(r,a)})}return r}var qS,Wg,Hg=b(()=>{Ig();zg();Gg();G();Te();$u();Ng();qS=["jpg","png","jpeg","avif","webp","basis","etc2","bc7","bc6h","bc5","bc4","bc3","bc2","bc1","eac","astc"];Wg={extension:A.Asset,cache:{test:i=>i instanceof Ku,getCacheableAssets:(i,e)=>Vg(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"&&qS.includes(s)},parse:i=>{let e=i.split(".");return{resolution:parseFloat(Js.RETINA_PREFIX.exec(i)?.[1]??"1"),format:e[e.length-2],src:i}}},loader:{name:"spritesheetLoader",extension:{type:A.LoadParser,priority:ju.Normal,name:"spritesheetLoader"},async testParse(i,e){return Yr.extname(e.src).toLowerCase()===".json"&&!!i.frames},async parse(i,e,t){let{texture:r,imageFilename:s,textureOptions:n,cachePrefix:o}=e?.data??{},a=Yr.dirname(e.src);a&&a.lastIndexOf("/")!==a.length-1&&(a+="/");let c;if(r instanceof O)c=r;else{let h=Yu(a+(s??i.meta.image),e.src);c=(await t.load([{src:h,data:n}]))[h]}let l=new Ku({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=Yu(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 Oa=b(()=>{G();Hg();N.add(Wg)});function Ua(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 Zu=b(()=>{"use strict"});var tn,jg=b(()=>{uu();Te();Zu();pe();Hu();tn=class i extends zi{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 Ua(this._visualBounds,this._anchor,this._texture),this._visualBounds}get sourceBounds(){return L("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 za(i,e,t){let r=XS;i.measurable=!0,ba(i,t,r),e.addBoundsMask(r),i.measurable=!1}var XS,Qu=b(()=>{mt();_a();XS=new le});function Ga(i,e,t){let r=Ze.get();i.measurable=!0;let s=ge.get().identity(),n=$g(i,t,s);Ta(i,r,n),i.measurable=!1,e.addBoundsMask(r),ge.return(s),Ze.return(r)}function $g(i,e,t){return i?(i!==e&&($g(i.parent,e,t),i.updateLocalTransform(),t.append(i.localTransform)),t):(q("Mask bounds, renderable is not inside the root container"),t)}var Ju=b(()=>{yu();Wr();ze()});var rn,qg=b(()=>{G();jg();Qu();Ju();rn=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 tn),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||za(this.mask,e,t)}addLocalBounds(e,t){Ga(this.mask,e,t)}containsPoint(e,t){let r=this.mask;return t(r,e)}destroy(){this.reset()}static test(e){return e instanceof tn}};rn.extension=A.MaskEffect});var sn,Xg=b(()=>{G();sn=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"}};sn.extension=A.MaskEffect});var nn,Yg=b(()=>{G();$s();Qu();Ju();nn=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){za(this.mask,e,t)}addLocalBounds(e,t){Ga(this.mask,e,t)}containsPoint(e,t){let r=this.mask;return t(r,e)}destroy(){this.reset()}static test(e){return e instanceof pt}};nn.extension=A.MaskEffect});var on,Kg=b(()=>{Pt();G();Xt();on=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"))}};on.extension=A.TextureSource});var Ct,La=b(()=>{G();Xt();Ct=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}};Ct.extension=A.TextureSource});async function Zg(){return eh??(eh=(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"})()),eh}var eh,Qg=b(()=>{"use strict"});var Na,ex,tx=b(()=>{G();Ba();Qg();Xt();Na=class Jg extends we{constructor(e){super(e),this.isReady=!1,this.uploadMethodId="video",e={...Jg.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=gt.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 Zg(),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&&(gt.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||(gt.shared.add(this.updateFrame,this),this._isConnectedToTicker=!0,this._msToNextUpdate=0)):(this._videoFrameRequestCallbackHandle!==null&&(this.resource.cancelVideoFrameCallback(this._videoFrameRequestCallbackHandle),this._videoFrameRequestCallbackHandle=null),this._isConnectedToTicker&&(gt.shared.remove(this.updateFrame,this),this._isConnectedToTicker=!1,this._msToNextUpdate=0))}static test(e){return globalThis.HTMLVideoElement&&e instanceof HTMLVideoElement}};Na.extension=A.TextureSource;Na.defaultOptions={...we.defaultOptions,autoLoad:!0,autoPlay:!0,updateFPS:0,crossorigin:!0,loop:!1,muted:!0,playsinline:!0,preload:!1};Na.MIME_TYPES={ogv:"video/ogg",mov:"video/quicktime",m4v:"video/mp4"};ex=Na});var th,ye,an=b(()=>{ze();qu();th=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=fr(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 th});function rx(i={}){let e=i&&i.resource,t=e?i.resource:i,r=e?i:{resource:i};for(let s=0;s<rh.length;s++){let n=rh[s];if(n.test(t))return new n(r)}throw new Error(`Could not find a source type for resource: ${r.resource}`)}function ix(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:rx(s)});return n.on("destroy",()=>{ye.has(r)&&ye.remove(r)}),e||ye.set(r,n),n}function sx(i,e=!1){return typeof i=="string"?ye.get(i):i instanceof we?new O({source:i}):ix(i,e)}var rh,ih=b(()=>{an();G();Xt();Te();rh=[];N.handleByList(A.TextureSource,rh);O.from=sx;we.from=rx});var Va=b(()=>{G();qg();Xg();Yg();vu();Kg();La();tx();ih();N.add(rn,sn,nn,ex,Ct,on,Xr)});var it,cn=b(()=>{"use strict";it=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 ox(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 nx[r]||YS(i,e,r,t)}function YS(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 it(s);return nx[t]=o,o}var nx,ax=b(()=>{cn();Te();nx={}});var Et,sh=b(()=>{"use strict";Et=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 nh(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 cx=b(()=>{"use strict"});var lx,ux=b(()=>{"use strict";lx={normal:"normal-npm",add:"add-npm",screen:"screen-npm"}});function Zt(i,e){return e.alphaMode==="no-premultiply-alpha"&&lx[i]||i}var ln=b(()=>{ux()});function Ha(){return(!Wa||Wa?.isContextLost())&&(Wa=xe.get().createCanvas().getContext("webgl",{})),Wa}var Wa,oh=b(()=>{Pt()});function ZS(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 hx(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=KS.replace(/%forloop%/gi,ZS(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 KS,dx=b(()=>{"use strict";KS=["precision mediump float;","void main(void){","float test = 0.1;","%forloop%","gl_FragColor = vec4(0.0);","}"].join(`
21
+ `)});function fx(){if(Gi)return Gi;let i=Ha();return Gi=i.getParameter(i.MAX_TEXTURE_IMAGE_UNITS),Gi=hx(Gi,i),i.getExtension("WEBGL_lose_context")?.loseContext(),Gi}var Gi,mx=b(()=>{oh();dx();Gi=null});var ja,px=b(()=>{"use strict";ja=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 gx(){return ch>0?yx[--ch]:new ah}function xx(i){yx[ch++]=i}var ah,yx,ch,un,bx,_x,Sx=b(()=>{Ue();sh();pe();cx();ln();mx();px();ah=class{constructor(){this.renderPipeId="batch",this.action="startBatch",this.start=0,this.size=0,this.textures=new ja,this.blendMode="normal",this.topology="triangle-strip",this.canBundle=!0}destroy(){this.textures=null,this.gpuBindGroup=null,this.bindGroup=null,this.batcher=null}},yx=[],ch=0;un=0,bx=class wx{constructor(e){this.uid=K("batcher"),this.dirty=!0,this.batchIndex=0,this.batches=[],this._elements=[],e={...wx.defaultOptions,...e},e.maxTextures||(L("v8.8.0","maxTextures is a required option for Batcher now, please pass it in the options"),e.maxTextures=fx());let{maxTextures:t,attributesInitialSize:r,indicesInitialSize:s}=e;this.attributeBuffer=new Et(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++)xx(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=gx(),s=r.textures;s.clear();let n=t[this.elementStart],o=Zt(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=Zt(g.blendMode,x),_=o!==w||a!==g.topology;if(x._batchTick===un&&!_){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=un,(s.count>=m||_)&&(this._finishBatch(r,d,h-d,s,o,a,e,f),f="renderBatch",d=h,o=w,a=g.topology,r=gx(),s=r.textures,s.clear(),++un),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,++un),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,++un,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 Et(t);nh(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 nh(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++)xx(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}};bx.defaultOptions={maxTextures:null,attributesInitialSize:4,indicesInitialSize:6};_x=bx});var ee,Li=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,Ni=b(()=>{He();Ue();Li();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 lh(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 Tx=b(()=>{Ni();Li()});function kx(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 vx=b(()=>{"use strict"});function QS(i){return(i instanceof ke||Array.isArray(i)||i.BYTES_PER_ELEMENT)&&(i={buffer:i}),i.buffer=lh(i.buffer,!1),i}var At,hn=b(()=>{He();mt();Ue();Ni();Tx();vx();At=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=QS(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=lh(e,!0),this.buffers.push(this.indexBuffer)}get bounds(){return this._boundsDirty?(this._boundsDirty=!1,kx(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 JS,eT,$a,Px=b(()=>{Ni();Li();hn();JS=new Float32Array(1),eT=new Uint32Array(1),$a=class extends At{constructor(){let t=new ke({data:JS,label:"attribute-batch-buffer",usage:ee.VERTEX|ee.COPY_DST,shrinkToFit:!1}),r=new ke({data:eT,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 Vi(i,e){let t=Cx[i];return t===void 0&&(uh[e]===void 0&&(uh[e]=1),Cx[i]=t=uh[e]++),t}var uh,Cx,qa=b(()=>{"use strict";uh=Object.create(null),Cx=Object.create(null)});function Ex(){if(!Xa){Xa="mediump";let i=Ha();i&&i.getShaderPrecisionFormat&&(Xa=i.getShaderPrecisionFormat(i.FRAGMENT_SHADER,i.HIGH_FLOAT).precision?"highp":"mediump")}return Xa}var Xa,Ax=b(()=>{oh()});function Ix(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 Mx=b(()=>{"use strict"});function Bx(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 Fx=b(()=>{"use strict"});function Rx(i,e){return e?`#version 300 es
38
+ ${i}`:i}var Dx=b(()=>{"use strict"});function Ox(i,{name:e="pixi-program"},t=!0){e=e.replace(/\s+/g,"-"),e+=t?"-fragment":"-vertex";let r=t?tT:rT;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 tT,rT,Ux=b(()=>{"use strict";tT={},rT={}});function zx(i,e){return e?i.replace("#version 300 es",""):i}var Gx=b(()=>{"use strict"});var hh,dh,Lx,Wi,Ya=b(()=>{qa();Ax();Mx();Fx();Dx();Ux();Gx();hh={stripVersion:zx,ensurePrecision:Bx,addProgramDefines:Ix,setProgramName:Ox,insertVersion:Rx},dh=Object.create(null),Lx=class fh{constructor(e){e={...fh.defaultOptions,...e};let t=e.fragment.indexOf("#version 300 es")!==-1,r={stripVersion:t,ensurePrecision:{requestedFragmentPrecision:e.preferredFragmentPrecision,requestedVertexPrecision:e.preferredVertexPrecision,maxSupportedVertexPrecision:"highp",maxSupportedFragmentPrecision:Ex()},setProgramName:{name:e.name},addProgramDefines:t,insertVersion:t},s=e.fragment,n=e.vertex;Object.keys(hh).forEach(o=>{let a=r[o];s=hh[o](s,a,!0),n=hh[o](n,a,!1)}),this.fragment=s,this.vertex=n,this.transformFeedbackVaryings=e.transformFeedbackVaryings,this._key=Vi(`${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 dh[t]||(dh[t]=new fh(e)),dh[t]}};Lx.defaultOptions={preferredVertexPrecision:"highp",preferredFragmentPrecision:"mediump"};Wi=Lx});function Kr(i){return Nx[i]??Nx.float32}var Nx,Ka=b(()=>{"use strict";Nx={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 Vx({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=iT[a[3]]??"float32";t[a[2]]={location:parseInt(a[1],10),format:c,stride:Kr(c).stride,offset:0,instance:!1,start:0}}}}return t}var iT,Wx=b(()=>{Ka();iT={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 Za(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 Hx=b(()=>{"use strict"});var Hi,jx=b(()=>{"use strict";Hi=(i=>(i[i.VERTEX=1]="VERTEX",i[i.FRAGMENT=2]="FRAGMENT",i[i.COMPUTE=4]="COMPUTE",i))(Hi||{})});function $x({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:Hi.VERTEX|Hi.FRAGMENT,buffer:{type:"uniform"}}):r.type==="sampler"?e[r.group].push({binding:r.binding,visibility:Hi.FRAGMENT,sampler:{type:"filtering"}}):r.type==="texture_2d"&&e[r.group].push({binding:r.binding,visibility:Hi.FRAGMENT,texture:{sampleType:"float",viewDimension:"2d",multisampled:!1}})}return e}var qx=b(()=>{jx()});function Xx({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 Yx=b(()=>{"use strict"});function Kx(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 Zx=b(()=>{"use strict"});var mh,mr,Qa=b(()=>{qa();Wx();Hx();qx();Yx();Zx();mh=Object.create(null),mr=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=Za(t.source);this.structsAndGroups=a}else{let a=Za(r.source),c=Za(t.source);this.structsAndGroups=Kx(a,c)}this.layout=s??Xx(this.structsAndGroups),this.gpuLayout=n??$x(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=Vi(r,"program")}get attributeData(){return this._attributeData??(this._attributeData=Vx(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 mh[t]||(mh[t]=new i(e)),mh[t]}}});function ph(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 Qx=b(()=>{ze()});function gh(i){let e={};return(i.match(sT)?.map(r=>r.replace(/[{()}]/g,""))??[]).forEach(r=>{e[r]=[]}),e}var sT,Jx=b(()=>{"use strict";sT=/\{\{(.*?)\}\}/g});function ey(i,e){let t,r=/@in\s+([^;]+);/g;for(;(t=r.exec(i))!==null;)e.push(t[1])}function xh(i,e,t=!1){let r=[];ey(e,r),i.forEach(a=>{a.header&&ey(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 ty=b(()=>{"use strict"});function ry(i,e){let t,r=/@out\s+([^;]+);/g;for(;(t=r.exec(i))!==null;)e.push(t[1])}function nT(i){let t=/\b(\w+)\s*:/g.exec(i);return t?t[1]:""}function oT(i){let e=/@.*?\s+/g;return i.replace(e,"")}function iy(i,e){let t=[];ry(e,t),i.forEach(c=>{c.header&&ry(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 ${oT(c)};`).join(`
44
+ `),o=`return VSOutput(
45
+ ${t.sort().map(c=>` ${nT(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 sy=b(()=>{"use strict"});function yh(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 ny=b(()=>{"use strict"});function oy({template:i,bits:e}){let t=cy(i,e);if(pr[t])return pr[t];let{vertex:r,fragment:s}=cT(i,e);return pr[t]=ly(r,s,e),pr[t]}function ay({template:i,bits:e}){let t=cy(i,e);return pr[t]||(pr[t]=ly(i.vertex,i.fragment,e)),pr[t]}function cT(i,e){let t=e.map(o=>o.vertex).filter(o=>!!o),r=e.map(o=>o.fragment).filter(o=>!!o),s=xh(t,i.vertex,!0);s=iy(t,s);let n=xh(r,i.fragment,!0);return{vertex:s,fragment:n}}function cy(i,e){return e.map(t=>(bh.has(t)||bh.set(t,aT++),bh.get(t))).sort((t,r)=>t-r).join("-")+i.vertex+i.fragment}function ly(i,e,t){let r=gh(i),s=gh(e);return t.forEach(n=>{ph(n.vertex,r,n.name),ph(n.fragment,s,n.name)}),{vertex:yh(i,r),fragment:yh(e,s)}}var pr,bh,aT,uy=b(()=>{Qx();Jx();ty();sy();ny();pr=Object.create(null),bh=new Map,aT=0});var hy,dy,fy,my,py=b(()=>{"use strict";hy=`
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
+ `,dy=`
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
+ `,fy=`
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
+ `,my=`
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 gy,xy,yy=b(()=>{"use strict";gy={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
+ `}},xy={name:"global-uniforms-bit",vertex:{header:`
190
+ uniform mat3 uProjectionMatrix;
191
+ uniform mat3 uWorldTransformMatrix;
192
+ uniform vec4 uWorldColorAlpha;
193
+ uniform vec2 uResolution;
194
+ `}}});function ji({bits:i,name:e}){let t=oy({template:{fragment:dy,vertex:hy},bits:[gy,...i]});return mr.from({name:e,vertex:{source:t.vertex,entryPoint:"main"},fragment:{source:t.fragment,entryPoint:"main"}})}function $i({bits:i,name:e}){return new Wi({name:e,...ay({template:{vertex:fy,fragment:my},bits:[xy,...i]})})}var Ja=b(()=>{Ya();Qa();uy();py();yy()});var ec,tc,wh=b(()=>{"use strict";ec={name:"color-bit",vertex:{header:`
195
+ @in aColor: vec4<f32>;
196
+ `,main:`
197
+ vColor *= vec4<f32>(aColor.rgb * aColor.a, aColor.a);
198
+ `}},tc={name:"color-bit",vertex:{header:`
199
+ in vec4 aColor;
200
+ `,main:`
201
+ vColor *= vec4(aColor.rgb * aColor.a, aColor.a);
202
+ `}}});function lT(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 uT(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 rc(i){return _h[i]||(_h[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
+ ${lT(i)}
218
+ `,main:`
219
+ var uvDx = dpdx(vUV);
220
+ var uvDy = dpdy(vUV);
221
+
222
+ ${uT(i)}
223
+ `}}),_h[i]}function hT(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 ic(i){return Sh[i]||(Sh[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
+ ${hT(i)}
243
+ `}}),Sh[i]}var _h,Sh,Th=b(()=>{"use strict";_h={};Sh={}});var qi,Xi,sc=b(()=>{"use strict";qi={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
+ `}},Xi={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 kh,by,wy=b(()=>{"use strict";kh=["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>"],by=kh.reduce((i,e)=>(i[e]=!0,i),{})});function _y(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 Sy=b(()=>{"use strict"});var Ty,Le,gr=b(()=>{Ue();qa();wy();Sy();Ty=class ky{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={...ky.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,!by[n.type])throw new Error(`Uniform type ${n.type} is not supported. Supported uniform types are: ${kh.join(", ")}`);n.value??(n.value=_y(n.type,n.size)),r[s]=n.value}this.uniforms=r,this._dirtyId=1,this.ubo=t.ubo,this.isStatic=t.isStatic,this._signature=Vi(Object.keys(r).map(s=>`${s}-${e[s].type}`).join("-"),"uniform-group")}update(){this._dirtyId++}};Ty.defaultOptions={ubo:!1,isStatic:!1};Le=Ty});function nc(i){let e=vy[i];if(e)return e;let t=new Int32Array(i);for(let r=0;r<i;r++)t[r]=r;return e=vy[i]=new Le({uTextures:{value:t,type:"i32",size:i}},{isStatic:!0}),e}var vy,vh=b(()=>{gr();vy={}});var It,dn=b(()=>{"use strict";It=(i=>(i[i.WEBGL=1]="WEBGL",i[i.WEBGPU=2]="WEBGPU",i[i.BOTH=3]="BOTH",i))(It||{})});var Mt,fn=b(()=>{He();Ue();Ya();cn();Qa();dn();gr();Mt=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|=It.WEBGPU),r&&(o|=It.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 it,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 Le(d));let f=c[h];f&&(s[f.group]||(s[f.group]=new it,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 it,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=mr.from(t)),r&&(o=Wi.from(r)),new i({gpuProgram:n,glProgram:o,...s})}}});var oc,Py=b(()=>{Ja();wh();Th();sc();vh();fn();oc=class extends Mt{constructor(e){let t=$i({name:"batch",bits:[tc,ic(e),Xi]}),r=ji({name:"batch",bits:[ec,rc(e),qi]});super({glProgram:t,gpuProgram:r,resources:{batchSamplers:nc(e)}})}}});var Ph,Cy,Ay,Iy=b(()=>{G();Sx();Px();Py();Ph=null,Cy=class Ey extends _x{constructor(e){super(e),this.geometry=new $a,this.name=Ey.extension.name,this.vertexSize=6,Ph??(Ph=new oc(e.maxTextures)),this.shader=Ph}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}};Cy.extension={type:[A.Batcher],name:"default"};Ay=Cy});function My(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 By(i,e,t,r){let s=0;for(e*=t;s<r;)i[e]=0,i[e+1]=0,e+=t,s++}var Fy=b(()=>{"use strict"});function Ch(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 Ry=b(()=>{"use strict"});var dT,Zr,Eh=b(()=>{re();gu();dT=new F,Zr=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?Sa(t,r.groupColor)+(this.alpha*r.groupAlpha*255<<24):t+(this.alpha*255<<24)}get transform(){return this.renderable?.groupTransform||dT}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 Yi,Dy,Oy,Uy=b(()=>{G();Yi={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}},Dy={...Yi,extension:{...Yi.extension,name:"ellipse"}},Oy={...Yi,extension:{...Yi.extension,name:"roundedRectangle"}}});function zy(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 Gy=b(()=>{"use strict"});function Ly(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 Qr(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 Ny(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=zy(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,tr=(u.y+l.y)*.5;i.unshift(te,tr),i.push(te,tr)}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,R=0,j=0,he=Math.sqrt(C*C+E*E);C/=he,E/=he,C*=y,E*=y;let ls=c,V=(1-ls)*2,H=ls*2;h||(a.cap==="round"?p+=Qr(_-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+=Ly(_,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,R=-(v-P),j=T-M,he=Math.sqrt(R*R+j*j),R/=he,j/=he,R*=y,j*=y;let tr=T-_,us=S-v,hs=T-M,ds=P-v,jd=tr*hs+us*ds,Gn=us*hs-ds*tr,fs=Gn<0;if(Math.abs(Gn)<.001*Math.abs(jd)){f.push(T-C*V,v-E*V),f.push(T+C*H,v+E*H),jd>=0&&(a.join==="round"?p+=Qr(T,v,T-C*V,v-E*V,T-R*V,v-j*V,f,!1)+4:p+=2,f.push(T-R*H,v-j*H),f.push(T+R*V,v+j*V));continue}let $d=(-C+_)*(-E+v)-(-C+T)*(-E+S),qd=(-R+M)*(-j+v)-(-R+T)*(-j+P),Ln=(tr*qd-hs*$d)/Gn,Nn=(ds*$d-us*qd)/Gn,tl=(Ln-T)*(Ln-T)+(Nn-v)*(Nn-v),wr=T+(Ln-T)*V,_r=v+(Nn-v)*V,Sr=T-(Ln-T)*H,Tr=v-(Nn-v)*H,h_=Math.min(tr*tr+us*us,hs*hs+ds*ds),Xd=fs?V:H,d_=h_+Xd*Xd*x;tl<=d_?a.join==="bevel"||tl/x>w?(fs?(f.push(wr,_r),f.push(T+C*H,v+E*H),f.push(wr,_r),f.push(T+R*H,v+j*H)):(f.push(T-C*V,v-E*V),f.push(Sr,Tr),f.push(T-R*V,v-j*V),f.push(Sr,Tr)),p+=2):a.join==="round"?fs?(f.push(wr,_r),f.push(T+C*H,v+E*H),p+=Qr(T,v,T+C*H,v+E*H,T+R*H,v+j*H,f,!0)+4,f.push(wr,_r),f.push(T+R*H,v+j*H)):(f.push(T-C*V,v-E*V),f.push(Sr,Tr),p+=Qr(T,v,T-C*V,v-E*V,T-R*V,v-j*V,f,!1)+4,f.push(T-R*V,v-j*V),f.push(Sr,Tr)):(f.push(wr,_r),f.push(Sr,Tr)):(f.push(T-C*V,v-E*V),f.push(T+C*H,v+E*H),a.join==="round"?fs?p+=Qr(T,v,T+C*H,v+E*H,T+R*H,v+j*H,f,!0)+2:p+=Qr(T,v,T-C*V,v-E*V,T-R*V,v-j*V,f,!1)+2:a.join==="miter"&&tl/x<=w&&(fs?(f.push(Sr,Tr),f.push(Sr,Tr)):(f.push(wr,_r),f.push(wr,_r)),p+=2),f.push(T-R*V,v-j*V),f.push(T+R*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+=Qr(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+=Ly(T,v,C,E,V,H,!1,f)));let u_=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))<u_)&&n.push(te,te+1,te+2)}var Vy=b(()=>{Tt();Gy()});function Wy(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 Hy=b(()=>{});function lc(i,e,t=2){let r=e&&e.length,s=r?e[0]*t:i.length,n=$y(i,0,s,t,!0),o=[];if(!n||n.next===n.prev)return o;let a,c,l;if(r&&(n=bT(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 pn(n,o,t,a,c,l,0),o}function $y(i,e,t,r,s){let n;if(s===IT(i,e,t,r)>0)for(let o=e;o<t;o+=r)n=jy(o/r|0,i[o],i[o+1],n);else for(let o=t-r;o>=e;o-=r)n=jy(o/r|0,i[o],i[o+1],n);return n&&Ki(n,n.next)&&(xn(n),n=n.next),n}function Jr(i,e){if(!i)return i;e||(e=i);let t=i,r;do if(r=!1,!t.steiner&&(Ki(t,t.next)||ue(t.prev,t,t.next)===0)){if(xn(t),t=e=t.prev,t===t.next)break;r=!0}else t=t.next;while(r||t!==e);return e}function pn(i,e,t,r,s,n,o){if(!i)return;!o&&n&&kT(i,r,s,n);let a=i;for(;i.prev!==i.next;){let c=i.prev,l=i.next;if(n?gT(i,r,s,n):pT(i)){e.push(c.i,i.i,l.i),xn(i),i=l.next,a=l.next;continue}if(i=l,i===a){o?o===1?(i=xT(Jr(i),e),pn(i,e,t,r,s,n,2)):o===2&&yT(i,e,t,r,s,n):pn(Jr(i),e,t,r,s,n,1);break}}}function pT(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&&mn(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 gT(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=Ah(f,m,e,t,r),x=Ah(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&&mn(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&&mn(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&&mn(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&&mn(a,u,c,h,l,d,_.x,_.y)&&ue(_.prev,_,_.next)>=0)return!1;_=_.nextZ}return!0}function xT(i,e){let t=i;do{let r=t.prev,s=t.next.next;!Ki(r,s)&&Xy(r,t,t.next,s)&&gn(r,s)&&gn(s,r)&&(e.push(r.i,t.i,s.i),xn(t),xn(t.next),t=i=s),t=t.next}while(t!==i);return Jr(t)}function yT(i,e,t,r,s,n){let o=i;do{let a=o.next.next;for(;a!==o.prev;){if(o.i!==a.i&&CT(o,a)){let c=Yy(o,a);o=Jr(o,o.next),c=Jr(c,c.next),pn(o,e,t,r,s,n,0),pn(c,e,t,r,s,n,0);return}a=a.next}o=o.next}while(o!==i)}function bT(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=$y(i,a,c,r,!1);l===l.next&&(l.steiner=!0),s.push(PT(l))}s.sort(wT);for(let n=0;n<s.length;n++)t=_T(s[n],t);return t}function wT(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 _T(i,e){let t=ST(i,e);if(!t)return e;let r=Yy(t,i);return Jr(r,r.next),Jr(t,t.next)}function ST(i,e){let t=e,r=i.x,s=i.y,n=-1/0,o;if(Ki(i,t))return t;do{if(Ki(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&&qy(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);gn(t,i)&&(h<u||h===u&&(t.x>o.x||t.x===o.x&&TT(o,t)))&&(o=t,u=h)}t=t.next}while(t!==a);return o}function TT(i,e){return ue(i.prev,i,e.prev)<0&&ue(e.next,i,i.next)<0}function kT(i,e,t,r){let s=i;do s.z===0&&(s.z=Ah(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,vT(s)}function vT(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 Ah(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 PT(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 qy(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 mn(i,e,t,r,s,n,o,a){return!(i===o&&e===a)&&qy(i,e,t,r,s,n,o,a)}function CT(i,e){return i.next.i!==e.i&&i.prev.i!==e.i&&!ET(i,e)&&(gn(i,e)&&gn(e,i)&&AT(i,e)&&(ue(i.prev,i,e.prev)||ue(i,e.prev,e))||Ki(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 Ki(i,e){return i.x===e.x&&i.y===e.y}function Xy(i,e,t,r){let s=cc(ue(i,e,t)),n=cc(ue(i,e,r)),o=cc(ue(t,r,i)),a=cc(ue(t,r,e));return!!(s!==n&&o!==a||s===0&&ac(i,t,e)||n===0&&ac(i,r,e)||o===0&&ac(t,i,r)||a===0&&ac(t,e,r))}function ac(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 cc(i){return i>0?1:i<0?-1:0}function ET(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&&Xy(t,t.next,i,e))return!0;t=t.next}while(t!==i);return!1}function gn(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 AT(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 Yy(i,e){let t=Ih(i.i,i.x,i.y),r=Ih(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 jy(i,e,t,r){let s=Ih(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 xn(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 Ih(i,e,t){return{i,x:e,y:t,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function IT(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 Ky=b(()=>{});var Zy,Qy=b(()=>{Ky();He();Zy=lc.default||lc});function uc(i,e,t,r,s,n,o){let a=Zy(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 Mh=b(()=>{Qy()});var MT,Jy,eb=b(()=>{G();Mh();MT=[],Jy={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){uc(i,MT,e,t,r,s,n)}}});var tb,rb=b(()=>{G();tb={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 ib,sb=b(()=>{G();ib={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 ob(i,e){for(let t=0;t<e.length;t++){let r=e[t];i.addColorStop(r.offset,r.color)}}function ab(i,e){let t=xe.get().createCanvas(i,e),r=t.getContext("2d");return{canvas:t,context:r}}function BT(i){let e=i[0]??{};return(typeof e=="number"||i[1])&&(L("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 nb,Fh,qe,Zi=b(()=>{je();Pt();re();La();Te();Ue();pe();Su();nb=[{offset:0,color:"white"},{offset:1,color:"black"}],Fh=class Bh{constructor(...e){this.uid=K("fillGradient"),this.type="linear",this.colorStops=[];let t=BT(e);t={...t.type==="radial"?Bh.defaultRadialOptions:Bh.defaultLinearOptions,...ka(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:nb,l=this._textureSize,{canvas:u,context:h}=ab(l,1),d=a?h.createLinearGradient(this._textureSize,0,0,0):h.createLinearGradient(0,0,this._textureSize,0);ob(d,c),h.fillStyle=d,h.fillRect(0,0,l,1),this.texture=new O({source:new Ct({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:nb,t=this._textureSize,{canvas:r,context:s}=ab(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);ob(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 Ct({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}};Fh.defaultLinearOptions={start:{x:0,y:0},end:{x:0,y:1},colorStops:[],textureSpace:"local",type:"linear",textureSize:256,wrapMode:"clamp-to-edge"};Fh.defaultRadialOptions={center:{x:.5,y:.5},innerRadius:0,outerRadius:.5,colorStops:[],scale:1,textureSpace:"local",type:"radial",textureSize:256,wrapMode:"clamp-to-edge"};qe=Fh});function cb(i,e,t,r){let s=e.matrix?i.copyFrom(e.matrix).invert():i.identity();if(e.textureSpace==="local"){let o=t.getBounds(RT);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(FT.copyFrom(r).invert()),s}var FT,RT,lb=b(()=>{re();$e();Zi();FT=new F,RT=new Z});function hb(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")UT(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&&ub(l.shapePath,c,!0,r,t),l&&(a.shapePrimitives[a.shapePrimitives.length-1].holes=l.shapePath.shapePrimitives),ub(a,c,o,r,t)}}}function UT(i,e,t){let r=[],s=hc.rectangle,n=DT;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&&Ch(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(Zr);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 ub(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=hc[c.type];if(!d.build(c,h))return;let f=a.length,m=n.length/2,p="triangle-list";if(l&&Ch(h,l),t){let w=c.closePath??!0,_=e;_.pixelLine?(Wy(h,w,n,a),p="line-list"):Ny(h,_,!1,w,n,a)}else if(u){let w=[],_=h.slice();zT(u).forEach(T=>{w.push(_.length/2),_.push(...T)}),uc(_,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=cb(OT,e,c,l);My(n,2,m,o,g,2,n.length/2-m,w)}else By(o,g,2,n.length/2-m);let x=be.get(Zr);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 zT(i){let e=[];for(let t=0;t<i.length;t++){let r=i[t].shape,s=[];hc[r.type].build(r,s)&&e.push(s)}return e}var hc,DT,OT,db=b(()=>{G();re();$e();Fy();Ry();Te();Vr();Eh();Uy();Vy();Hy();eb();rb();sb();lb();Mh();hc={};N.handleByMap(A.ShapeBuilder,hc);N.add(tb,Jy,ib,Yi,Dy,Oy);DT=new Z,OT=new F});var Rh,Dh,Uh,Qi,dc=b(()=>{G();ax();Iy();wu();pe();Vr();db();Rh=class{constructor(){this.batches=[],this.geometryData={vertices:[],uvs:[],indices:[]}}},Dh=class{constructor(){this.instructions=new Fi}init(e){this.batcher=new Ay({maxTextures:e}),this.instructions.reset()}get geometry(){return L(op,"GraphicsContextRenderData#geometry is deprecated, please use batcher.geometry instead."),this.batcher.geometry}},Uh=class Oh{constructor(e){this._gpuContextHash={},this._graphicsDataContextHash=Object.create(null),this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuContextHash"),e.renderableGC.addManagedHash(this,"_graphicsDataContextHash")}init(e){Oh.defaultOptions.bezierSmoothness=e?.bezierSmoothness??Oh.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),hb(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(Dh,{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=ox(h.textures.textures,h.textures.count,this._renderer.limits.maxBatchableTextures)}return this._graphicsDataContextHash[e.uid]=t,t}_initContext(e){let t=new Rh;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)}};Uh.extension={type:[A.WebGLSystem,A.WebGPUSystem,A.CanvasSystem],name:"graphicsContext"};Uh.defaultOptions={bezierSmoothness:.5};Qi=Uh});var GT,zh,Gh,Lh,Nh,Vh,Wh,Hh,ei,fc=b(()=>{"use strict";GT={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},zh=0,Gh=1,Lh=2,Nh=3,Vh=4,Wh=5,Hh=class fb{constructor(){this.data=0,this.blendMode="normal",this.polygonOffset=0,this.blend=!0,this.depthMask=!0}get blend(){return!!(this.data&1<<zh)}set blend(e){!!(this.data&1<<zh)!==e&&(this.data^=1<<zh)}get offsets(){return!!(this.data&1<<Gh)}set offsets(e){!!(this.data&1<<Gh)!==e&&(this.data^=1<<Gh)}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<<Lh)}set culling(e){!!(this.data&1<<Lh)!==e&&(this.data^=1<<Lh)}get depthTest(){return!!(this.data&1<<Nh)}set depthTest(e){!!(this.data&1<<Nh)!==e&&(this.data^=1<<Nh)}get depthMask(){return!!(this.data&1<<Wh)}set depthMask(e){!!(this.data&1<<Wh)!==e&&(this.data^=1<<Wh)}get clockwiseFrontFace(){return!!(this.data&1<<Vh)}set clockwiseFrontFace(e){!!(this.data&1<<Vh)!==e&&(this.data^=1<<Vh)}get blendMode(){return this._blendMode}set blendMode(e){this.blend=e!=="none",this._blendMode=e,this._blendModeId=GT[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 fb;return e.depthTest=!1,e.blend=!0,e}};Hh.default2d=Hh.for2d();ei=Hh});function xr(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 yn=b(()=>{"use strict"});var jh,bn,mb=b(()=>{G();fc();Vr();yn();Eh();jh=class{constructor(){this.batches=[],this.batched=!1}destroy(){this.batches.forEach(e=>{be.return(e)}),this.batches.length=0}},bn=class{constructor(e,t){this.state=ei.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,xr(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 jh;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(Zr);return o.copyTo(a),a.renderable=e,a.roundPixels=n,a})}destroy(){this.renderer=null,this._adaptor.destroy(),this._adaptor=null,this.state=null}};bn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"graphics"}});var $h=b(()=>{G();dc();mb();N.add(bn);N.add(Qi)});var yr,mc=b(()=>{"use strict";yr=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 pc,wn,pb=b(()=>{G();re();cn();gr();ln();yn();mc();pc=class{destroy(){}},wn=class{constructor(e,t){this.localUniforms=new Le({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 it({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=Zt(e.groupBlendMode,e.texture._source);let t=this.localUniforms;t.uniforms.uTransformMatrix=e.groupTransform,t.uniforms.uRound=this.renderer._roundPixels|e._roundPixels,t.update(),xr(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 pc),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 pc),e._gpuData[this.renderer.uid].batchableMesh||this._initBatchableMesh(e)}_initBatchableMesh(e){let t=new yr;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}};wn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"mesh"}});var qh=b(()=>{G();pb();N.add(wn)});var gc,gb=b(()=>{"use strict";gc=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 Xh(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 xb=b(()=>{"use strict"});function bb(i){return{dynamicUpdate:yb(i,!0),staticUpdate:yb(i,!1)}}function yb(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=Kr(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 wb=b(()=>{Ka()});function LT(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 xc,_b=b(()=>{Ni();Li();hn();Ka();sh();xb();wb();xc=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=Kr(h.format);h.dynamic?n+=d.stride:s+=d.stride}this._dynamicStride=n/4,this._staticStride=s/4,this.staticAttributeBuffer=new Et(t*4*s),this.dynamicAttributeBuffer=new Et(t*4*n),this.indexBuffer=Xh(t);let o=new At,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=Kr(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=LT(e);return this._generateParticleUpdateCache[t]?this._generateParticleUpdateCache[t]:(this._generateParticleUpdateCache[t]=this.generateParticleUpdate(e),this._generateParticleUpdateCache[t])}generateParticleUpdate(e){return bb(e)}update(e,t){e.length>this._size&&(t=!0,this._size=Math.max(e.length,this._size*1.5|0),this.staticAttributeBuffer=new Et(this._size*this._staticStride*4*4),this.dynamicAttributeBuffer=new Et(this._size*this._dynamicStride*4*4),this.indexBuffer=Xh(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 Sb,Tb=b(()=>{Sb=`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 kb,vb=b(()=>{kb=`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 Yh,Pb=b(()=>{Yh=`
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 yc,Cb=b(()=>{je();re();Ya();Qa();fn();Te();Ri();Tb();vb();Pb();yc=class extends Mt{constructor(){let e=Wi.from({vertex:kb,fragment:Sb}),t=mr.from({fragment:{source:Yh,entryPoint:"mainFragment"},vertex:{source:Yh,entryPoint:"mainVertex"}});super({glProgram:e,gpuProgram:t,resources:{uTexture:O.WHITE.source,uSampler:new rt({}),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 Ji,Kh=b(()=>{re();gr();ln();fc();yn();_b();Cb();Ji=class{constructor(e,t){this.state=ei.for2d(),this.localUniforms=new Le({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 yc,this.state=ei.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 xc({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=Zt(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,xr(e.groupColorAlpha,o.uColor,0),this.adaptor.execute(this,e)}destroy(){this.defaultShader&&(this.defaultShader.destroy(),this.defaultShader=null)}}});var _n,Eb=b(()=>{G();gb();Kh();_n=class extends Ji{constructor(e){super(e,new gc)}};_n.extension={type:[A.WebGLPipes],name:"particle"}});var bc,Ab=b(()=>{"use strict";bc=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 Sn,Ib=b(()=>{G();Ab();Kh();Sn=class extends Ji{constructor(e){super(e,new bc)}};Sn.extension={type:[A.WebGPUPipes],name:"particle"}});var Zh=b(()=>{G();Eb();Ib();N.add(_n);N.add(Sn)});function Tn(i,e){let{texture:t,bounds:r}=i;Ua(r,e._anchor,t);let s=e._style._getFinalPadding();r.minX-=s,r.minY-=s,r.maxX-=s,r.maxY-=s}var Qh=b(()=>{Zu()});var es,Jh=b(()=>{"use strict";es=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 wc,Mb=b(()=>{Jh();wc=class extends es{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 kn,Bb=b(()=>{G();Qh();Mb();kn=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),Tn(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new wc(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}};kn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"text"}});var Fb,Qt,_c=b(()=>{re();Ue();Fb={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"}},Qt=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=Fb[t].addressModeU,e.source.style.addressModeV=Fb[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 Db=Kd((u6,Rb)=>{Rb.exports=VT;var ed={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},NT=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function VT(i){var e=[];return i.replace(NT,function(t,r,s){var n=r.toLowerCase();for(s=HT(s),n=="m"&&s.length>2&&(e.push([r].concat(s.splice(0,2))),n="l",r=r=="m"?"l":"L");;){if(s.length==ed[n])return s.unshift(r),e.push(s);if(s.length<ed[n])throw new Error("malformed path data");e.push([r].concat(s.splice(0,ed[n])))}}),e}var WT=/-?[0-9]*\.?[0-9]+(?:e[-+]?\d+)?/ig;function HT(i){var e=i.match(WT);return e?e.map(Number):[]}});function Ub(i,e){let t=(0,Ob.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 Ob,zb=b(()=>{Ob=Zd(Db(),1);ze()});var Sc,Gb=b(()=>{$e();Sc=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 Tc,Lb=b(()=>{$e();Tc=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 Nb(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 Vb=b(()=>{"use strict"});var jT,$T,ts,Wb=b(()=>{Vb();$e();ts=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(jT),r=e.getBounds($T);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=Nb(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 kc,vc,Hb=b(()=>{$e();kc=(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},vc=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&&kc(e,t,d,f,l,h,u)||e>g-l&&t<f&&kc(e,t,g-l,f,l,h,u)||e>g-l&&t>y-l&&kc(e,t,g-l,y-l,l,h,u)||e<d&&t>y-l&&kc(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 Cc(i,e,t,r,s,n,o,a,c,l){let h=Math.min(.99,Math.max(0,l??Qi.defaultOptions.bezierSmoothness)),d=(XT-h)/1;return d*=d,YT(e,t,r,s,n,o,a,c,i,d),i}function YT(i,e,t,r,s,n,o,a,c,l){rd(i,e,t,r,s,n,o,a,c,l,0),c.push(o,a)}function rd(i,e,t,r,s,n,o,a,c,l,u){if(u>qT)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),R,j;if(C>Pc&&E>Pc){if((C+E)*(C+E)<=l*(M*M+P*P)){if(rs<td){c.push(T,v);return}let he=Math.atan2(n-r,s-t);if(R=Math.abs(he-Math.atan2(r-e,t-i)),j=Math.abs(Math.atan2(a-n,o-s)-he),R>=h&&(R=2*h-R),j>=h&&(j=2*h-j),R+j<rs){c.push(T,v);return}if(ti!==0){if(R>ti){c.push(t,r);return}if(j>ti){c.push(s,n);return}}}}else if(C>Pc){if(C*C<=l*(M*M+P*P)){if(rs<td){c.push(T,v);return}if(R=Math.abs(Math.atan2(n-r,s-t)-Math.atan2(r-e,t-i)),R>=h&&(R=2*h-R),R<rs){c.push(t,r),c.push(s,n);return}if(ti!==0&&R>ti){c.push(t,r);return}}}else if(E>Pc){if(E*E<=l*(M*M+P*P)){if(rs<td){c.push(T,v);return}if(R=Math.abs(Math.atan2(a-n,o-s)-Math.atan2(n-r,s-t)),R>=h&&(R=2*h-R),R<rs){c.push(t,r),c.push(s,n);return}if(ti!==0&&R>ti){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}}rd(i,e,d,f,x,w,T,v,c,l,u+1),rd(T,v,_,S,g,y,o,a,c,l,u+1)}var qT,Pc,XT,td,rs,ti,id=b(()=>{dc();qT=8,Pc=11920929e-14,XT=1,td=.01,rs=0,ti=0});function $b(i,e,t,r,s,n,o,a){let l=Math.min(.99,Math.max(0,a??Qi.defaultOptions.bezierSmoothness)),u=(QT-l)/1;return u*=u,ek(e,t,r,s,n,o,i,u),i}function ek(i,e,t,r,s,n,o,a){sd(o,i,e,t,r,s,n,a,0),o.push(s,n)}function sd(i,e,t,r,s,n,o,a,c){if(c>KT)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>ZT){if(x*x<=a*(g*g+y*y)){if(jb<JT){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<jb){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}sd(i,e,t,u,h,m,p,a,c+1),sd(i,m,p,d,f,n,o,a,c+1)}var KT,ZT,QT,JT,jb,qb=b(()=>{dc();KT=8,ZT=11920929e-14,QT=1,JT=.01,jb=0});function Ec(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 nd=b(()=>{"use strict"});function Xb(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-_);Ec(i,_+e,S+t,n,C,E,l*u>h*c)}var Yb=b(()=>{nd()});function tk(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 Zb(i,e,t,r,s,n,o,a=0,c=0,l=0){if(n===0||o===0)return;let u=Math.sin(a*vn/360),h=Math.cos(a*vn/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)),rk(e,t,r,s,n,o,c,l,u,h,d,f,od);let{ang1:p,ang2:g}=od,{centerX:y,centerY:x}=od,w=Math.abs(g)/(vn/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=tk(p,g),{x:C,y:E}=ad(P[0],n,o,h,u,y,x,v),{x:R,y:j}=ad(P[1],n,o,h,u,y,x,v),{x:he,y:ls}=ad(P[2],n,o,h,u,y,x,v);Cc(i,S,T,C,E,R,j,he,ls),S=he,T=ls,p+=g}}var vn,od,ad,Kb,rk,Qb=b(()=>{id();vn=Math.PI*2,od={centerX:0,centerY:0,ang1:0,ang2:0},ad=({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};Kb=(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)},rk=(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=Kb(1,0,T,v),E=Kb(T,v,M,P);a===0&&E>0&&(E-=vn),a===1&&E<0&&(E+=vn),d.centerX=_,d.centerY=S,d.ang1=C,d.ang2=E}});function Jb(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 e0(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 t0=b(()=>{"use strict"});var ik,Ac,r0=b(()=>{Gb();Lb();Wb();$e();Hb();mt();id();qb();nd();Yb();Qb();t0();ik=new Z,Ac=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 Ec(a,e,t,r,s,n,o),this}arcTo(e,t,r,s,n){this._ensurePoly();let o=this._currentPoly.points;return Xb(o,e,t,r,s,n),this}arcToSvg(e,t,r,s,n,o,a){let c=this._currentPoly.points;return Zb(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 Cc(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 $b(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 Sc(e,t,r),s),this}poly(e,t,r){let s=new ts(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?e0(this,e,t,s):Jb(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 Tc(e,t,r,s),n),this}roundRect(e,t,r,s,n,o){return this.drawShape(new vc(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 ts,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 ts,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(ik);s.transform?e.addRect(n,s.transform):e.addRect(n)}return e}}});function Pn(i,e){return i?i.prepend(e):e.clone()}var br,cd=b(()=>{Tt();Ue();ze();zb();r0();br=class i{constructor(e,t=!1){this.instructions=[],this.uid=K("graphicsPath"),this._dirty=!0,this.checkForHoles=t,typeof e=="string"?Ub(e,this):this.instructions=e?.slice()??[]}get shapePath(){return this._shapePath||(this._shapePath=new Ac(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]=Pn(x[3],e);break;case"rect":x[4]=Pn(x[4],e);break;case"ellipse":x[8]=Pn(x[8],e);break;case"roundRect":x[5]=Pn(x[5],e);break;case"addPath":x[0].transform(e);break;case"poly":x[2]=Pn(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 ld=b(()=>{"use strict"});function i0(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]=sk(o);break;case"radialgradient":e.defs[o.id]=nk(o);break;default:break}}}}function sk(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 nk(i){return q("[SVG Parser] Radial gradients are not yet supported"),new qe(0,0,1,0)}var s0=b(()=>{je();ze();Zi();ld()});function ud(i){let e=i.match(/url\s*\(\s*['"]?\s*#([^'"\s)]+)\s*['"]?\s*\)/i);return e?e[1]:""}var n0=b(()=>{"use strict"});function hd(i,e){let t=i.getAttribute("style"),r={},s={},n={strokeStyle:r,fillStyle:s,useFill:!1,useStroke:!1};for(let o in o0){let a=i.getAttribute(o);a&&a0(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(":");o0[l]&&a0(e,n,l,u.trim())}}return{strokeStyle:n.useStroke?r:null,fillStyle:n.useFill?s:null,useFill:n.useFill,useStroke:n.useStroke}}function a0(i,e,t,r){switch(t){case"stroke":if(r!=="none"){if(r.startsWith("url(")){let s=ud(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=ud(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 o0,c0=b(()=>{je();n0();o0={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 l0(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 br};i0(i,t);let r=i.children,{fillStyle:s,strokeStyle:n}=hd(i,t);for(let o=0;o<r.length;o++){let a=r[o];a.nodeName.toLowerCase()!=="defs"&&u0(a,t,s,n)}return e}function u0(i,e,t,r){let s=i.children,{fillStyle:n,strokeStyle:o}=hd(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 br(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++)u0(s[P],e,t,r)}var h0=b(()=>{ze();cd();s0();ld();c0()});function ok(i){return X.isColorLike(i)}function d0(i){return i instanceof Qt}function f0(i){return i instanceof qe}function ak(i){return i instanceof O}function ck(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 lk(i,e,t){return i.texture=e,{...t,...i}}function m0(i,e,t){return i.fill=e,i.color=16777215,i.texture=e.texture,i.matrix=e.transform,{...t,...i}}function p0(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 uk(i,e){let t={...e,...i},r=X.shared.setValue(t.color);return t.alpha*=r.alpha,t.color=r.toNumber(),t}function Jt(i,e){if(i==null)return null;let t={},r=i;return ok(i)?ck(t,i,e):ak(i)?lk(t,i,e):d0(i)?m0(t,i,e):f0(i)?p0(t,i,e):r.fill&&d0(r.fill)?m0(r,r.fill,e):r.fill&&f0(r.fill)?p0(r,r.fill,e):uk(r,e)}function is(i,e){let{width:t,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...c}=e,l=Jt(i,c);return l?{width:t,alignment:r,miterLimit:s,cap:n,join:o,pixelLine:a,...l}:null}var dd=b(()=>{je();Te();Zi();_c()});var hk,g0,fd,Je,md=b(()=>{He();je();re();Tt();Te();Ue();pe();mt();cd();h0();dd();hk=new Y,g0=new F,fd=class Bt extends ie{constructor(){super(...arguments),this.uid=K("graphicsContext"),this.dirty=!0,this.batchMode="auto",this.instructions=[],this._activePath=new br,this._transform=new F,this._fillStyle={...Bt.defaultFillStyle},this._strokeStyle={...Bt.defaultStrokeStyle},this._stateStack=[],this._tick=0,this._bounds=new le,this._boundsDirty=!0}clone(){let e=new Bt;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=Jt(e,Bt.defaultFillStyle)}get strokeStyle(){return this._strokeStyle}set strokeStyle(e){this._strokeStyle=is(e,Bt.defaultStrokeStyle)}setFillStyle(e){return this._fillStyle=Jt(e,Bt.defaultFillStyle),this}setStrokeStyle(e){return this._strokeStyle=Jt(e,Bt.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 br,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"&&(L($,"GraphicsContext.fill(color, alpha) is deprecated, use GraphicsContext.fill({ color, alpha }) instead"),e={color:e,alpha:t}),this._fillStyle=Jt(e,Bt.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=is(e,Bt.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++,l0(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):(g0.set(e,t,r,s,n,o),this._transform.append(g0),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,hk):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}};fd.defaultFillStyle={color:16777215,alpha:1,texture:O.WHITE,matrix:null,fill:null,textureSpace:"local"};fd.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};Je=fd});function y0(i){let e=[],t=0;for(let r=0;r<x0.length;r++){let s=`_${x0[r]}`;e[t++]=i[s]}return t=b0(i._fill,e,t),t=fk(i._stroke,e,t),t=mk(i.dropShadow,e,t),t=dk(i.filters,e,t),e.join("-")}function dk(i,e,t){if(!i)return t;for(let r of i)e[t++]=r.uid;return t}function b0(i,e,t){return i&&(e[t++]=i.color,e[t++]=i.alpha,e[t++]=i.fill?.styleKey),t}function fk(i,e,t){return i&&(t=b0(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 mk(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 x0,w0=b(()=>{je();x0=["align","breakWords","cssOverrides","fontVariant","fontWeight","leading","letterSpacing","lineHeight","padding","textBaseline","trim","whiteSpace","wordWrap","wordWrapWidth","fontFamily","fontStyle","fontSize"]});function pk(i){let e=i;if(typeof e.dropShadow=="boolean"&&e.dropShadow){let t=st.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){L($,"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 Qt)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)){L($,"gradient fill is now a fill pattern: `new FillGradient(...)`");let t;i.fontSize==null?i.fontSize=st.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 pd,st,Cn=b(()=>{He();je();pe();Zi();_c();md();dd();w0();pd=class ss extends ie{constructor(e={}){super(),pk(e);let t={...ss.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({...ss.defaultDropShadow,...e}):this._dropShadow=e?this._createProxy({...ss.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({...Je.defaultFillStyle,...e},()=>{this._fill=Jt({...this._originalFill},Je.defaultFillStyle)})),this._fill=Jt(e===0?"black":e,Je.defaultFillStyle),this.update())}get stroke(){return this._originalStroke}set stroke(e){e!==this._originalStroke&&(this._originalStroke=e,this._isFillStyle(e)&&(this._originalStroke=this._createProxy({...Je.defaultStrokeStyle,...e},()=>{this._stroke=is({...this._originalStroke},Je.defaultStrokeStyle)})),this._stroke=is(e,Je.defaultStrokeStyle),this.update())}_generateKey(){return this._styleKey=y0(this),this._styleKey}update(){this._styleKey=null,this.emit("update",this)}reset(){let e=ss.defaultTextStyle;for(let t in e)this[t]=e[t]}get styleKey(){return this._styleKey||this._generateKey()}clone(){return new ss({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 Qt)}};pd.defaultDropShadow={alpha:1,angle:Math.PI/6,blur:0,color:"black",distance:5};pd.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};st=pd});function Ic(i,e,t,r){let s=gk;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 gk,gd=b(()=>{Di();mt();gk=new le});var xd,Ft,En=b(()=>{Pt();js();xd=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=qt(e),t=qt(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={}}},Ft=new xd});function xk(i,e){ri||(ri=xe.get().createCanvas(256,128),er=ri.getContext("2d",{willReadFrequently:!0}),er.globalCompositeOperation="copy",er.globalAlpha=1),(ri.width<i||ri.height<e)&&(ri.width=qt(i),ri.height=qt(e))}function _0(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 S0(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 T0(...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(xk(s,n),!er)throw new TypeError("Failed to get canvas 2D context");er.drawImage(t,0,0,s,n,0,0,s*r,n*r);let c=er.getImageData(0,0,s,n).data,l=0,u=0,h=s-1,d=n-1;for(;u<n&&_0(c,s,u);)++u;if(u===n)return Z.EMPTY;for(;_0(c,s,d);)--d;for(;S0(c,s,l,u,d);)++l;for(;S0(c,s,h,u,d);)--h;return++h,++d,er.globalCompositeOperation="source-over",er.strokeRect(l,u,h-l,d-u),er.globalCompositeOperation="copy",o??(o=new Z),o.set(l/r,u/r,(h-l)/r,(d-u)/r),o}var ri,er,k0=b(()=>{Pt();js();$e();ri=null,er=null});function ii(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)&&!yk.includes(s)&&(s=`"${s}"`),t[r]=s}return`${i.fontStyle} ${i.fontVariant} ${i.fontWeight} ${e} ${t.join(",")}`}var yk,Mc=b(()=>{"use strict";yk=["serif","sans-serif","monospace","cursive","fantasy","system-ui"]});var yd,Rt,Xe,An=b(()=>{Pt();Mc();yd={willReadFrequently:!0},Rt=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=ii(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",yd),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",yd)?.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",yd)),U.__context}};Rt.METRICS_STRING="|\xC9q\xC5";Rt.BASELINE_SYMBOL="M";Rt.BASELINE_MULTIPLIER=1.4;Rt.HEIGHT_MULTIPLIER=2;Rt.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]})();Rt.experimentalLetterSpacing=!1;Rt._fonts={};Rt._newlines=[10,13];Rt._breakingSpaces=[9,32,8192,8193,8194,8195,8196,8197,8198,8200,8201,8202,8287,12288];Xe=Rt});function ns(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 Qt){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*v0)/v0,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 v0,bd=b(()=>{je();re();Te();ze();Zi();_c();v0=1e5});var P0,wd,Bc,C0=b(()=>{je();$e();En();k0();An();Mc();bd();P0=new Z,wd=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=Ft.getOptimalCanvasAndContext(a,c);this._renderTextToCanvas(t,r,n,s,l);let u=r.trim?T0({canvas:l.canvas,width:a,height:c,resolution:1,output:P0}):P0.set(0,0,a,c);return{canvasAndContext:l,frame:u}}returnCanvasAndContext(e){Ft.returnCanvasAndContext(e)}_renderTextToCanvas(e,t,r,s,n){let{canvas:o,context:a}=n,c=ii(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 R=P.blur*s,j=P.distance*s;a.shadowBlur=R,a.shadowOffsetX=Math.cos(P.angle)*j,a.shadowOffsetY=Math.sin(P.angle)*j+T}else{if(a.fillStyle=t._fill?ns(t._fill,a,l):null,t._stroke?.width){let P=t._stroke.width*t._stroke.alignment;a.strokeStyle=ns(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}}},Bc=new wd});var In,E0=b(()=>{G();Di();Ri();pe();Cn();gd();C0();In=class{constructor(e){this._renderer=e}getTexture(e,t,r,s){typeof e=="string"&&(L("8.0.0","CanvasTextSystem.getTexture: Use object TextOptions instead of separate arguments"),e={text:e,style:r,resolution:t}),e.style instanceof st||(e.style=new st(e.style)),e.textureStyle instanceof rt||(e.textureStyle=new rt(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}=Bc.getCanvasAndContext({text:n,style:o,resolution:c}),h=Ic(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),Bc.returnCanvasAndContext(u),d}return this._renderer.texture.initSource(h._source),Bc.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(){L("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}};In.extension={type:[A.WebGLSystem,A.WebGPUSystem,A.CanvasSystem],name:"canvasText"}});var _d=b(()=>{G();Bb();E0();N.add(In);N.add(kn)});var Fc,A0=b(()=>{pe();Hu();md();Fc=class i extends zi{constructor(e){e instanceof Je&&(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 Je,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){L($,"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){L($,"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(){L($,"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!==Je.defaultStrokeStyle.width||e.color!==Je.defaultStrokeStyle.color||e.alpha!==Je.defaultStrokeStyle.alpha)&&this.context.stroke(),this}drawCircle(...e){return L($,"Graphics#drawCircle has been renamed to Graphics#circle"),this._callContextMethod("circle",e)}drawEllipse(...e){return L($,"Graphics#drawEllipse has been renamed to Graphics#ellipse"),this._callContextMethod("ellipse",e)}drawPolygon(...e){return L($,"Graphics#drawPolygon has been renamed to Graphics#poly"),this._callContextMethod("poly",e)}drawRect(...e){return L($,"Graphics#drawRect has been renamed to Graphics#rect"),this._callContextMethod("rect",e)}drawRoundedRect(...e){return L($,"Graphics#drawRoundedRect has been renamed to Graphics#roundRect"),this._callContextMethod("roundRect",e)}drawStar(...e){return L($,"Graphics#drawStar has been renamed to Graphics#star"),this._callContextMethod("star",e)}}});var I0,M0,B0=b(()=>{"use strict";I0={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
+ `}},M0={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 F0,R0,D0=b(()=>{"use strict";F0={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
+ `}},R0={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 Sd,Td,Rc,O0=b(()=>{re();Ja();wh();Th();sc();vh();fn();gr();B0();D0();Rc=class extends Mt{constructor(e){let t=new Le({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"}});Sd??(Sd=ji({name:"sdf-shader",bits:[ec,rc(e),I0,F0,qi]})),Td??(Td=$i({name:"sdf-shader",bits:[tc,ic(e),M0,R0,Xi]})),super({glProgram:Td,gpuProgram:Sd,resources:{localUniforms:t,batchSamplers:nc(e)}})}}});var Dc,U0=b(()=>{He();pe();Dc=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 L($,"BitmapFont.font is deprecated, please use BitmapFont.fontFamily instead."),this.fontFamily}get pageTextures(){return L($,"BitmapFont.pageTextures is deprecated, please use BitmapFont.pages instead."),this.pages}get size(){return L($,"BitmapFont.size is deprecated, please use BitmapFont.fontMetrics.fontSize instead."),this.fontMetrics.fontSize}get distanceFieldRange(){return L($,"BitmapFont.distanceFieldRange is deprecated, please use BitmapFont.distanceField.range instead."),this.distanceField.range}get distanceFieldType(){return L($,"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 z0,kd,L0=b(()=>{je();$e();En();La();Te();Ri();pe();An();Mc();bd();Cn();U0();z0=class G0 extends Dc{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={...G0.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=ii(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 rt?t.textureStyle:new rt(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 L($,"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=Ft.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 Ct({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=ii(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=ns(s,e)),t._fill&&(e.fillStyle=ns(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];Ft.returnCanvasAndContext(t),r.destroy(!0)}this.pages=null}};z0.defaultOptions={textureSize:512,style:new st,mipmap:!0};kd=z0});function Oc(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"?bk(s):e.align==="right"?wk(s):e.align==="justify"&&_k(s),s}function bk(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 wk(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 _k(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 vd=b(()=>{"use strict"});function N0(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 V0=b(()=>{"use strict"});var Uc,Pd,W0,H0=b(()=>{an();pe();ze();An();Cn();L0();vd();V0();Uc=0,Pd=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 kd({style:t,overrideFill:s,overrideSize:!0,...this.defaultOptions});Uc++,Uc>50&&q("BitmapText",`You have dynamically created ${Uc} bitmap fonts, this can be inefficient. Try pre installing your font styles using \`BitmapFont.install({name:"style1", style})\``),o.once("destroy",()=>{Uc--,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 Oc(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},L($,"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 st?s:new st(s),o=n._fill.fill!==null&&n._fill.fill!==void 0,a=new kd({style:n,overrideFill:o,skipKerning:t.skipKerning,padding:t.padding,resolution:t.resolution,overrideSize:!1,textureStyle:t.textureStyle}),c=N0(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()}},W0=new Pd});function j0(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 Cd,Mn,$0=b(()=>{an();G();A0();An();O0();H0();vd();Cd=class extends Fc{destroy(){this.context.customShader&&this.context.customShader.destroy(),super.destroy()}},Mn=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);j0(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);j0(e,t),this._renderer.renderPipes.graphics.updateRenderable(t),t.context.customShader&&this._updateDistanceField(e)}_updateContext(e,t){let{context:r}=t,s=W0.getFont(e.text,e._style);r.clear(),s.distanceField.type!=="none"&&(r.customShader||(r.customShader=new Rc(this._renderer.limits.maxBatchableTextures)));let n=Xe.graphemeSegmenter(e.text),o=e._style,a=s.baseLineOffset,c=Oc(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 Cd;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}};Mn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"bitmapText"}});var Ed=b(()=>{G();$0();N.add(Mn)});var zc,q0=b(()=>{Jh();zc=class extends es{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 Bn,X0=b(()=>{G();Te();Qh();q0();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).catch(s=>{console.error(s)}),e._didTextUpdate=!1,Tn(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,Tn(t,e)}_getGpuText(e){return e._gpuData[this._renderer.uid]||this.initGpuText(e)}initGpuText(e){let t=new zc(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}};Bn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"htmlText"}});function Y0(){let{userAgent:i}=xe.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(i)}var K0=b(()=>{Pt()});var Z0,Q0,os,Ad=b(()=>{"use strict";Z0="http://www.w3.org/2000/svg",Q0="http://www.w3.org/1999/xhtml",os=class{constructor(){this.svgRoot=document.createElementNS(Z0,"svg"),this.foreignObject=document.createElementNS(Z0,"foreignObject"),this.domElement=document.createElementNS(Q0,"div"),this.styleElement=document.createElementNS(Q0,"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 tw(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?[iw(e)]:[],...i.dropShadow?[rw(i.dropShadow)]:[],...i.cssOverrides].join(";")} }`];return Sk(i.tagStyles,s),s.join(" ")}function rw(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 iw(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 Sk(i,e){for(let t in i){let r=i[t],s=[];for(let n in r)ew[n]?s.push(ew[n](r[n])):J0[n]&&s.push(J0[n].replace("{{VALUE}}",r[n]));e.push(`${t} { ${s.join(";")} }`)}}var J0,ew,sw=b(()=>{je();J0={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"},ew={fill:i=>`color: ${X.shared.setValue(i).toHex()}`,breakWords:i=>`word-wrap: ${i?"break-all":"break-word"}`,stroke:iw,dropShadow:rw}});var Gc,nw=b(()=>{ze();Cn();sw();Gc=class i extends st{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=tw(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 ow(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 aw=b(()=>{"use strict"});async function cw(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 lw=b(()=>{Pt()});async function Id(i,e){let t=await cw(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 uw=b(()=>{lw()});async function hw(i,e,t){let r=i.filter(s=>ye.has(`${s}-and-url`)).map((s,n)=>{if(!Lc.has(s)){let{url:o}=ye.get(`${s}-and-url`);n===0?Lc.set(s,Id({fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:s},o)):Lc.set(s,Id({fontWeight:t.fontWeight,fontStyle:t.fontStyle,fontFamily:s},o))}return Lc.get(s)});return(await Promise.all(r)).join(`
474
+ `)}var Lc,dw=b(()=>{an();uw();Lc=new Map});function fw(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 mw=b(()=>{"use strict"});function pw(i,e){let t=Ft.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 gw=b(()=>{En()});function xw(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 yw=b(()=>{"use strict"});function ww(i,e,t,r){r||(r=bw||(bw=new os));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 bw,_w=b(()=>{Ad()});var Fn,Sw=b(()=>{G();En();Di();dn();K0();ze();Vr();gd();Ad();nw();aw();dw();mw();gw();yw();_w();Fn=class{constructor(e){this._renderer=e,this._createCanvas=e.type===It.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(os),a=ow(t,r),c=await hw(a,r,Gc.defaultTextStyle),l=ww(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=fw(t,r,s,c,o);await xw(d,m,Y0()&&a.length>0);let p=d,g;this._createCanvas&&(g=pw(d,s));let y=Ic(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),Ft.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}};Fn.extension={type:[A.WebGLSystem,A.WebGPUSystem,A.CanvasSystem],name:"htmlText"}});var Md=b(()=>{G();X0();Sw();N.add(Fn);N.add(Bn)});var Tw,as,Nc=b(()=>{Ni();Li();hn();pe();Tw=class kw extends At{constructor(...e){let t=e[0]??{};t instanceof Float32Array&&(L($,"use new MeshGeometry({ positions, uvs, indices }) instead"),t={positions:t,uvs:e[1],indices:e[2]}),t={...kw.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}};Tw.defaultOptions={topology:"triangle-list",shrinkBuffersToFit:!1};as=Tw});var Rn,Aj,vw,Pw=b(()=>{"use strict";Rn={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
+ `}},Aj={...Rn,vertex:{...Rn.vertex,header:Rn.vertex.header.replace("group(1)","group(2)")}},vw={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 Cw,Ew,Aw=b(()=>{"use strict";Cw={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
+ `}},Ew={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 Bd,Fd,Vc,Iw=b(()=>{re();Ja();Pw();sc();fn();gr();Te();Aw();Vc=class extends Mt{constructor(){Bd??(Bd=ji({name:"tiling-sprite-shader",bits:[Rn,Cw,qi]})),Fd??(Fd=$i({name:"tiling-sprite-shader",bits:[vw,Ew,Xi]}));let e=new Le({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:Fd,gpuProgram:Bd,resources:{localUniforms:new Le({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 Wc,Mw=b(()=>{Nc();Wc=class extends as{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 Bw(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 Fw=b(()=>{"use strict"});function Rw(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 Dw=b(()=>{"use strict"});function Ow(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),Rw(e,2,0,a)}var Uw=b(()=>{re();Dw()});var Hc,Rd,Dn,zw=b(()=>{G();ln();fc();dn();yn();mc();Nc();Iw();Mw();Fw();Uw();Hc=new Wc,Rd=class{constructor(){this.canBatch=!0,this.geometry=new as({indices:Hc.indices.slice(),positions:Hc.positions.slice(),uvs:Hc.uvs.slice()})}destroy(){this.geometry.destroy(),this.shader?.destroy()}},Dn=class{constructor(e){this._state=ei.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 yr);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 Vc),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,xr(e.groupColorAlpha,r.uColor,0),this._state.blendMode=Zt(e.groupBlendMode,e.texture._source),this._renderer.encoder.draw({geometry:Hc,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 Rd;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()),Ow(e,r.uvs),Bw(e,r.positions)}destroy(){this._renderer=null}_updateCanBatch(e){let t=this._getTilingSpriteData(e),r=e.texture,s=!0;return this._renderer.type===It.WEBGL&&(s=this._renderer.context.supports.nonPowOf2wrapping),t.canBatch=r.textureMatrix.isSimple&&(s||r.source.isPowerOfTwo),t.canBatch}};Dn.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"tilingSprite"}});var Dd=b(()=>{G();zw();N.add(Dn)});var Gw,Nw,Vw=b(()=>{pe();Nc();Gw=class Lw extends as{constructor(...e){super({});let t=e[0]??{};typeof t=="number"&&(L($,"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={...Lw.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()}};Gw.defaultOptions={width:100,height:100,verticesX:10,verticesY:10};Nw=Gw});var Ww,jw,$w=b(()=>{Vw();Ww=class Hw extends Nw{constructor(e={}){e={...Hw.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()}};Ww.defaultOptions={width:100,height:100,leftWidth:10,topHeight:10,rightWidth:10,bottomHeight:10,originalWidth:100,originalHeight:100};jw=Ww});var Od,On,qw=b(()=>{G();mc();$w();Od=class extends yr{constructor(){super(),this.geometry=new jw}destroy(){this.geometry.destroy()}},On=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 Od,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}};On.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"nineSliceSprite"}});var Ud=b(()=>{G();qw();N.add(On)});var Un,Xw=b(()=>{G();Un=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}};Un.extension={type:[A.WebGLPipes,A.WebGPUPipes,A.CanvasPipes],name:"filter"}});function Yw(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 Kw=b(()=>{"use strict"});var Tk,zd,zn,Zw=b(()=>{G();re();cn();hn();gr();Te();Di();dn();mt();Kw();ze();Tk=new At({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])}),zd=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}}},zn=class{constructor(e){this._filterStackIndex=0,this._filterStack=[],this._filterGlobalUniforms=new Le({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 it({}),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?Yw(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:Tk,shader:e,state:e._state,topology:"triangle-list"}),n.type===It.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 zd),this._filterStackIndex++,e}};zn.extension={type:[A.WebGLSystem,A.WebGPUSystem],name:"filter"}});var Gd=b(()=>{G();Xw();Zw();N.add(zn);N.add(Un)});var kk={};var Qw=b(()=>{yg();Du();Cg();Ag();Oa();Va();$h();qh();Zh();_d();Ed();Md();Dd();Ud();Gd()});var vk={};var e_=b(()=>{Du();Oa();Va();$h();qh();Zh();_d();Ed();Md();Dd();Ud();Gd()});function rl(i,e){return{error:t=>i.error({...e,...t}),rpcRequest:t=>i.rpcRequest({...e,...t}),rpcError:t=>i.rpcError({...e,...t})}}var Vn=()=>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 Qd(){return Vn()}var rr=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 Wn=()=>({none:i=>i,uncolor:w_,mix:__,hex:S_,rgb:Jd,bgRgb:T_});function w_(i){return i.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,"")}function __(...i){return e=>{for(let t of i)e=t(e);return e}}function S_(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,Jd(t,r,s)}function Jd(i,e,t){let r=`\x1B[38;2;${i};${e};${t}m`;return s=>`${r}${s}${rr.reset}`}function T_(i,e,t){let r=`\x1B[48;2;${i};${e};${t}m`;return s=>`${r}${s}${rr.reset}`}var ms={...Object.fromEntries(Object.entries(rr).map(([i])=>[i,e=>e])),...Wn()};var ps={...Object.fromEntries(Object.entries(rr).map(([i,e])=>[i,t=>`${e}${t}${rr.reset}`])),...Wn()};function il(){return typeof Deno<"u"&&typeof Deno.version<"u"}function sl(){return typeof process<"u"&&process.versions&&process.versions.node}function ef(){return sl()?process.env.FORCE_COLOR||process.stdout.isTTY&&process.env.TERM!=="dumb":il()?Deno.env.get("FORCE_COLOR")||Deno.isatty(Deno.stdout.rid)&&Deno.env.get("TERM")!=="dumb":!1}var nl=()=>ef()?ps:ms;var Hn=()=>({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 gs(...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 k_(){return{icon:"\u{1F6A8}",now:()=>Date.now()}}var jn=i=>({colors:e,theme:t})=>{let r={...k_(),...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 tf(){return gs(Hn(),jn())}var $n=()=>({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 qn=()=>({stdout:async i=>void process.stdout.write(i+`
574
+ `),stderr:async i=>void process.stderr.write(i+`
575
+ `)});var Xn=()=>({stdout:async i=>console.log(i),stderr:async i=>console.error(i)});var rf=()=>il()?$n():sl()?qn():Xn();var sf=()=>({stdout:async()=>{},stderr:async()=>{}});function nf(){return()=>({stdout:i=>i,stderr:i=>i})}var ni=class i{static writers={auto:rf,void:sf,deno:$n,node:qn,console:Xn};static colors={auto:nl,colorful:()=>ps,colorless:()=>ms};static themes={auto:Qd,basic:Vn};static shapers={auto:tf,none:nf,errors:Hn,timestamp:jn};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=gs(...e),this}};var xs=class extends ni{static dummy(){return new this().setWriter(ni.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 yt=class extends xs{rpcRequest=async()=>{}};var bt=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 kr=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(bt.random(i))},string(i){return kr.fromBytes(i)},bytes(i){return kr.toBytes(i)}});var ol=58,Yn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",al=Object.freeze({fromBytes(i){let e=BigInt("0x"+kr.fromBytes(i)),t="";for(;e>0;){let r=e%BigInt(ol);e=e/BigInt(ol),t=Yn[Number(r)]+t}for(let r of i)if(r===0)t=Yn[0]+t;else break;return t},toBytes(i){let e=BigInt(0);for(let o of i){let a=Yn.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(ol)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let r=kr.toBytes(t),s=0;for(let o of i)if(o===Yn[0])s++;else break;let n=new Uint8Array(s+r.length);return n.set(r,s),n},random(i=32){return this.fromBytes(bt.random(i))},string(i){return al.fromBytes(i)},bytes(i){return al.toBytes(i)}});var of=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(bt.random(e))}};var cl=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(bt.random(i))},string(i){return cl.fromBytes(i)},bytes(i){return cl.toBytes(i)}});var af=Object.freeze({fromBytes(i){return new TextDecoder().decode(i)},toBytes(i){return new TextEncoder().encode(i)},string(i){return af.fromBytes(i)},bytes(i){return af.toBytes(i)}});var Kn=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 ys=class extends Error{milliseconds;name=this.constructor.name;constructor(e){super(`deadline exceeded (${(e/1e3).toFixed(1)} seconds)`),this.milliseconds=e}};function Zn(i,e){return i<=0||i===1/0?e():new Promise((t,r)=>{let s=setTimeout(()=>r(new ys(i)),i);e().then(t).catch(r).finally(()=>clearTimeout(s))})}function vr(){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 cf(i,e){let t=i;for(let r of e)if(t=t[r],Kn.unset(t))break;return t}function v_(i){return{map:e=>lf(i,e),filter:e=>uf(i,e)}}v_.pipe=Object.freeze({map:i=>e=>lf(e,i),filter:i=>e=>uf(e,i)});var lf=(i,e)=>Object.fromEntries(Object.entries(i).map(([t,r])=>[t,e(r,t)])),uf=(i,e)=>Object.fromEntries(Object.entries(i).filter(([t,r])=>e(r,t)));function P_(){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}=vr(),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=P_()[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 ir;(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}})(ir||(ir={}));var Jn=class extends Error{name=this.constructor.name},Pr=class extends Error{name=this.constructor.name};async function hf({tap:i,request:e,action:t}){let r=ir.getId(e);try{let s=await t();return r===null?null:{id:r,result:s,jsonrpc:ir.version}}catch(s){return i.rpcError({request:e,error:s}),r===null?null:{id:r,jsonrpc:ir.version,error:s instanceof Jn?{code:ir.errorCodes.serverError,message:s.message}:{code:ir.errorCodes.unexposedError,message:"unexposed error"}}}}function eo(i){let e=i.tap??new yt;return async t=>{let r=t.method.split("."),s=cf(i.fns,r),n=async()=>await s(...t.params);return e.rpcRequest({request:t}),await hf({tap:e,request:t,action:n})}}var Cr=Symbol("tune"),C_=Symbol("query"),E_=Symbol("notify"),A_=Symbol("settings");function df(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===Cr?o=>(...a)=>i(t,a,{...r,...o}):n===E_?(...o)=>i(t,o,{...r,notify:!0}):n===C_?(...o)=>i(t,o,{...r,notify:!1}):n===A_?r:(s[n]||(s[n]=e([...t,n])),s[n])},set:(s,n,o)=>(s[n]=o,!0)})}return e([])}function Er(i){let{endpoint:e,tap:t=new yt}=i,r=1;return df(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 Pr("response was null, but shouldn't be, because the request was not a notification");if("error"in h)throw new Pr(i.label?`${i.label}: ${h.error.message}`:h.error.message);return h.result})}function bs(i){return Er({endpoint:eo(i),tap:i.tap})}var Ar=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 to(i,e){return i.addEventListener("message",e),()=>i.removeEventListener("message",e)}function ff(i,e){return async(t,{transfer:r}={})=>{if("id"in t){let s=vr();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 mf(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 pf(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 oi=class extends Ar{#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)),to(e,t=>this.recv(t.data,t)))}dispose(){this.#e.dispose()}};var ro=class{remote;transfer;constructor(e){this.remote=e}};var ll=Object.freeze({timeout:6e4,maxRequestBytes:1e7});var io=class{timeout;pending=new Map;constructor(e){this.timeout=e}async wait(e,t){let r=vr();return this.pending.set(e,{method:t,deferred:r}),await Zn(this.timeout,()=>r.promise).catch(s=>{throw s instanceof ys&&(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 Pr(e.error.message)):t.deferred.resolve(e))}};var Ir=class{options;remote;remoteEndpoint;#e;#t=new Dt;constructor(e){this.options=e;let{conduit:t,tap:r}=e;this.#e=new io(e.timeout??ll.timeout),this.remoteEndpoint=ff(this.#e,t.sendRequest.pub.bind(t.sendRequest)),this.remote=Er({endpoint:this.remoteEndpoint,tap:r&&rl(r,{remote:!0})}),this.#t.add(t.recv.sub(s=>this.recv(s)))}async recv(e){let t=new ro(this.remote),{conduit:r,rpc:s,tap:n}=this.options,{requests:o,responses:a}=mf(e);for(let h of a)this.#e.deliverResponse(h);if(!s)return;let c=await s(t),l=eo({fns:c,tap:n&&rl(n,{remote:!1})}),u=await pf(l,o);u&&await r.sendResponse(u,t.transfer)}dispose(){this.#t.dispose()}};var Ot={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 Ut=new yt;async function gf(i,e,t={}){let r=t.tap??Ut,s=new Ir({tap:r,timeout:t.timeout??1/0,conduit:new oi(i.getSelf()),rpc:async n=>e(Ot.derive.host(n))});return await s.remote.infra.ready(),s.remote.host}var nt=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 Ne=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(nt.random(i))},string(i){return Ne.fromBytes(i)},bytes(i){return Ne.toBytes(i)}});var ul=["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 hl=["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 zt={defaults:{groupSize:4,wordSeparator:".",groupSeparator:" "},random(i,e){let t=nt.random(i);return this.fromBytes(t,e)},fromBytes(i,e={}){let{groupSize:t=zt.defaults.groupSize,wordSeparator:r=zt.defaults.wordSeparator,groupSeparator:s=zt.defaults.groupSeparator}=e,n=[],o=[];i.forEach((c,l)=>{let u=l%2===0?ul:hl;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?ul:hl).findIndex(c=>c===s);if(a===-1)throw new Error(`unknown triplet ${s}`);return a}))},toHex(i){return Ne.fromBytes(zt.toBytes(i))},fromHex(i,e){return zt.fromBytes(Ne.toBytes(i),e)}};var dl=58,so="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz",ws=Object.freeze({fromBytes(i){let e=BigInt("0x"+Ne.fromBytes(i)),t="";for(;e>0;){let r=e%BigInt(dl);e=e/BigInt(dl),t=so[Number(r)]+t}for(let r of i)if(r===0)t=so[0]+t;else break;return t},toBytes(i){let e=BigInt(0);for(let o of i){let a=so.indexOf(o);if(a===-1)throw new Error(`Invalid character '${o}' in base58 string`);e=e*BigInt(dl)+BigInt(a)}let t=e.toString(16);t.length%2!==0&&(t="0"+t);let r=Ne.toBytes(t),s=0;for(let o of i)if(o===so[0])s++;else break;let n=new Uint8Array(s+r.length);return n.set(r,s),n},random(i=32){return this.fromBytes(nt.random(i))},string(i){return ws.fromBytes(i)},bytes(i){return ws.toBytes(i)}});var ot={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 zt.toBytes(e.join(""));let t=e.pop(),r=e.join("");return new Uint8Array([...zt.toBytes(r),...ws.toBytes(t)])},parse(i,e){let t=ot.toBytes(i);return ot.build.fromBytes(t,e)},build:{fromBytes(i,e={}){let{delimiter:t,previewBytes:r,sigilBytes:s}={...ot.defaults,...e},n=u=>i.length>0?zt.fromBytes(i.slice(0,u),{wordSeparator:t,groupSeparator:t}):"",o=n(s),a=n(r),c=i.length>r?ws.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=Ne.toBytes(i);return ot.build.fromBytes(t,e)}},toHex(i){let e=ot.toBytes(i);return Ne.fromBytes(e)},fromBytes(i,e){return ot.build.fromBytes(i,e).thumbprint},fromHex(i,e){return ot.fromBytes(Ne.toBytes(i),e)},sigil:{fromHex(i,e){return ot.build.fromHex(i,e).sigil},fromBytes(i,e){return ot.build.fromBytes(i,e).sigil}}};var xf=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(nt.random(e))}};var fl=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(nt.random(i))},string(i){return fl.fromBytes(i)},bytes(i){return fl.toBytes(i)}});var yf=Object.freeze({fromBytes(i){return new TextDecoder().decode(i)},toBytes(i){return new TextEncoder().encode(i)},string(i){return yf.fromBytes(i)},bytes(i){return yf.toBytes(i)}});var ml=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 _s(){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 no=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 F_(i){return{map:e=>bf(i,e),filter:e=>wf(i,e)}}F_.pipe=Object.freeze({map:i=>e=>bf(e,i),filter:i=>e=>wf(e,i)});var bf=(i,e)=>Object.fromEntries(Object.entries(i).map(([t,r])=>[t,e(r,t)])),wf=(i,e)=>Object.fromEntries(Object.entries(i).filter(([t,r])=>e(r,t)));var ai=class{worker;messenger;constructor(e,t){this.worker=e,this.messenger=t}static async make(e,t){let r=t.tap??Ut,s=t.label??"comrade",n=e.loadWorker(t.workerUrl,s),o=_s(),a={async ready(){o.resolve()}},c=new Ir({tap:r,timeout:t.timeout??1/0,conduit:new oi(n),rpc:async l=>({infra:a,host:t.setupHost(Ot.derive.work(l))})});return await o.promise,new this(n,c)}get work(){return this.messenger.remote}terminate(){this.worker.terminate()}};var oo=class{threads;static async make(e,t){let r=t.workerCount??e.guessOptimalThreadCount(),s=await Promise.all([...Array(r)].map(async(n,o)=>ai.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??Ut,s=async(n,o)=>this.#r({request:n,prom:_s(),transfer:o?.transfer});this.work=Er({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 _f=i=>({thread:e=>ai.make(i,e),cluster:e=>oo.make(i,e),worker:(e,t={})=>gf(i,e,t),work:e=>e,host:e=>e,mocks(e){let{setupWork:t,setupHost:r,tap:s=Ut}=e,n=Ot.mock.host(),o=Ot.mock.work();return o.work=bs({tap:s,fns:t(n)}),n.host=bs({tap:s,fns:r(o)}),{workShell:o,hostShell:n,work:o.work,host:n.host}},mockWork(e,t=Ut){let r=Ot.mock.host(),s=Ot.mock.work();return s.work=bs({tap:t,fns:e(r)}),{workShell:s,hostShell:r,work:s.work,mockHost:n=>(r.host=bs({tap:t,fns:n(s)}),{workShell:s,hostShell:r,work:s.work,host:r.host})}}});var Sf=()=>({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 R_=Sf(),ao=_f(R_);function k(i){if(!i)throw new Error("Assertion failed.")}var lo=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}},D=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)},ci=i=>{let e=D(i);return(e&1)===0?-(e>>1):e+1>>1};var sr=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,D_=new TextEncoder;var gl=i=>Object.fromEntries(Object.entries(i).map(([e,t])=>[t,e])),xl={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},uo=gl(xl),yl={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pg:16,hlg:18},ho=gl(yl),bl={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},fo=gl(bl);var wl=i=>i instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&i instanceof SharedArrayBuffer||ArrayBuffer.isView(i),et=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}},_l=i=>[...i].map(e=>e.toString(16).padStart(2,"0")).join(""),Sl=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},at=(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 Tl=(i,e)=>{for(let t=i.length-1;t>=0;t--)if(e(i[t]))return i[t]},mo=(i,e)=>{for(let t=i.length-1;t>=0;t--)if(e(i[t]))return t;return-1},Tf=async function*(i){Symbol.iterator in i?yield*i[Symbol.iterator]():yield*i[Symbol.asyncIterator]()},kf=i=>{if(!(Symbol.iterator in i)&&!(Symbol.asyncIterator in i))throw new TypeError("Argument must be an iterable or async iterable.")},Ss=i=>{throw new Error(`Unexpected value: ${i}`)};var kl=(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}}),po=(i,e,t)=>Math.max(e,Math.min(t,i)),Pe="und",Mr=(i,e)=>{let t=10**e;return Math.round(i*t)/t},vf=(i,e)=>Math.round(i/e)*e,Pf=i=>{let e=0;for(;i;)e++,i>>=1;return e},O_=/^[a-z]{3}$/,go=i=>O_.test(i),nr=1e6*(1+Number.EPSILON),xo=(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]=xo(i[r],e[r]):t[r]=e[r];return t},vl=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 co=class{constructor(){this.currentPromise=Promise.resolve()}call(e){return this.currentPromise=this.currentPromise.then(e)}},pl=null,yo=()=>{if(pl!==null)return pl;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 pl=i,i},Br=(i,e)=>i!==-1?i:e,bo=(i,e,t,r)=>i<=r&&t<=e;var Cf=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 or=class{constructor(e,t){this.data=e,this.mimeType=t}};var ks=["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"],U_=["aac","opus","mp3","vorbis","flac"],sM=[...U_,...ks];var Fr=[{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 Ef=".01.01.01.01.00",Af=".0.110.01.01.01.0";var wo=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.${_l(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.${_l(t.subarray(1,4))}`}else if(e==="hevc"){let c,l,u,h,d,f;if(n)c=n.generalProfileSpace,l=n.generalProfileIdc,u=Sl(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=Sl(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(Fr).level;for(let w of Fr)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(Ef)&&(g=g.slice(0,-Ef.length)),g}else if(e==="av1"){if(!a){let w=i.width*i.height,_=ve(Fr).level;for(let S of Fr)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?xl[r.primaries]:1,p=r?.transfer?yl[r.transfer]:1,g=r?.matrix?bl[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(Af)&&(x=x.slice(0,-Af.length)),x}}throw new TypeError(`Unhandled codec '${e}'.`)};var _o=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.${Cl(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&&ks.includes(e))return e}throw new TypeError(`Unhandled codec '${e}'.`)},Ts=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],Pl=[-1,1,2,3,4,5,6,8],Cl=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<Ts.length&&(s=Ts[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}},If=48e3,z_=/^pcm-([usf])(\d+)+(be)?$/,Mf=i=>{if(k(ks.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=z_.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 li;(function(i){i[i.IDR=5]="IDR",i[i.SPS=7]="SPS",i[i.PPS=8]="PPS",i[i.SPS_EXT=13]="SPS_EXT"})(li||(li={}));var Re;(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"})(Re||(Re={}));var To=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},Ff=(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):(Ss(e),k(!1)),r+=e;let o=i.subarray(r,r+n);t.push(o),r+=n}return t},El=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 G_=(i,e)=>{if(e.description){let s=(sr(e.description)[4]&3)+1;return Ff(i,s)}else return To(i)},So=i=>i[0]&31,Rf=i=>{try{let e=To(i),t=e.filter(d=>So(d)===li.SPS),r=e.filter(d=>So(d)===li.PPS),s=e.filter(d=>So(d)===li.SPS_EXT);if(t.length===0||r.length===0)return null;let n=t[0],o=new fe(El(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){D(o);let d=D(o);d===3&&o.skipBits(1);let f=D(o),m=D(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 Al=(i,e)=>{if(e.description){let s=(sr(e.description)[21]&3)+1;return Ff(i,s)}else return To(i)},Gt=i=>i[0]>>1&63,Df=i=>{try{let e=To(i),t=e.filter(C=>Gt(C)===Re.VPS_NUT),r=e.filter(C=>Gt(C)===Re.SPS_NUT),s=e.filter(C=>Gt(C)===Re.PPS_NUT),n=e.filter(C=>Gt(C)===Re.PREFIX_SEI_NUT||Gt(C)===Re.SUFFIX_SEI_NUT);if(r.length===0||s.length===0)return null;let o=r[0],a=new fe(El(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}=L_(a,c);D(a);let g=D(a);g===3&&a.skipBits(1),D(a),D(a),a.readBits(1)&&(D(a),D(a),D(a),D(a));let y=D(a),x=D(a);D(a);let _=a.readBits(1)?0:c;for(let C=_;C<=c;C++)D(a),D(a),D(a);D(a),D(a),D(a),D(a),D(a),D(a),a.readBits(1)&&a.readBits(1)&&N_(a),a.skipBits(1),a.skipBits(1),a.readBits(1)&&(a.skipBits(4),a.skipBits(4),D(a),D(a),a.skipBits(1));let S=D(a);if(V_(a,S),a.readBits(1)){let C=D(a);for(let E=0;E<C;E++)D(a),a.skipBits(1)}a.skipBits(1),a.skipBits(1);let T=0;a.readBits(1)&&(T=H_(a,c));let v=0;if(s.length>0){let C=s[0],E=new fe(El(C));E.skipBits(16),D(E),D(E),E.skipBits(1),E.skipBits(1),E.skipBits(3),E.skipBits(1),E.skipBits(1),D(E),D(E),ci(E),E.skipBits(1),E.skipBits(1),E.readBits(1)&&D(E),ci(E),ci(E),E.skipBits(1),E.skipBits(1),E.skipBits(1),E.skipBits(1);let R=E.readBits(1),j=E.readBits(1);!R&&!j?v=0:R&&!j?v=2:!R&&j?v=3:v=0}let M=[...t.length?[{arrayCompleteness:1,nalUnitType:Re.VPS_NUT,nalUnits:t}]:[],...r.length?[{arrayCompleteness:1,nalUnitType:Re.SPS_NUT,nalUnits:r}]:[],...s.length?[{arrayCompleteness:1,nalUnitType:Re.PPS_NUT,nalUnits:s}]:[],...n.length?[{arrayCompleteness:1,nalUnitType:Gt(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}},L_=(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}},N_=i=>{for(let e=0;e<4;e++)for(let t=0;t<(e===3?2:6);t++)if(!i.readBits(1))D(i);else{let s=Math.min(64,1<<4+(e<<1));e>1&&ci(i);for(let n=0;n<s;n++)ci(i)}},V_=(i,e)=>{let t=[];for(let r=0;r<e;r++)t[r]=W_(i,r,e,t)},W_=(i,e,t,r)=>{let s=0,n=0,o=0;if(e!==0&&(n=i.readBits(1)),n){if(e===t){let c=D(i);o=e-(c+1)}else o=e-1;i.readBits(1),D(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=D(i),c=D(i);for(let l=0;l<a;l++)D(i),i.readBits(1);for(let l=0;l<c;l++)D(i),i.readBits(1);s=a+c}return s},H_=(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)&&(D(i),D(i)),i.readBits(1),i.readBits(1),i.readBits(1),i.readBits(1)&&(D(i),D(i),D(i),D(i)),i.readBits(1)&&(i.readBits(32),i.readBits(32),i.readBits(1)&&D(i),i.readBits(1)&&j_(i,!0,e)),i.readBits(1)){i.readBits(1),i.readBits(1),i.readBits(1);let t=D(i);return D(i),D(i),D(i),D(i),t}return 0},j_=(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?D(i):l=i.readBits(1)===1;let u=1;l||(u=D(i)+1),r&&Bf(i,u,n),s&&Bf(i,u,n)}},Bf=(i,e,t)=>{for(let r=0;r<e;r++)D(i),D(i),t&&(D(i),D(i)),i.readBits(1)};var ko=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(Fr).level;for(let T of Fr)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}},Of=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)}},vo=i=>{for(let{type:e,data:t}of Of(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},Uf=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}},$_=[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],zf=i=>{let e=i[0]>>3;return{durationInSamples:$_[e]}},Gf=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}},Lf=async(i,e)=>{switch(k(i.codec),i.codec){case"avc":{let t=await i.getDecoderConfig();return k(t),G_(e.data,t).some(n=>So(n)===li.IDR)?"key":"delta"}case"hevc":{let t=await i.getDecoderConfig();return k(t),Al(e.data,t).some(n=>{let o=Gt(n);return Re.BLA_W_LP<=o&&o<=Re.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 Of(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:Ss(i.codec),k(!1)}};var Nf=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 Po=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 ui(n.bytes,n.view,n.offset,e,r):null):s?new ui(s.bytes,s.view,s.offset,e,r):null}requestSliceRange(e,t,r){if(this.fileSize!==null)return this.requestSlice(e,po(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,po(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)}}},ui=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++),hi=(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},di=i=>{let e=Ce(i),t=z(i);return e*256+t},vs=i=>{let e=i.view.getInt16(i.bufferPos,!1);return i.bufferPos+=2,e},Lt=(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},Rr=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},q_=i=>{let e=i.view.getInt32(i.bufferPos,!0);return i.bufferPos+=4,e},Il=(i,e)=>{let t,r;return e?(t=Lt(i,!0),r=Lt(i,!0)):(r=Lt(i,!1),t=Lt(i,!1)),r*4294967296+t},Ye=i=>{let e=B(i),t=B(i);return e*4294967296+t},Vf=i=>{let e=Nt(i),t=B(i);return e*4294967296+t},Wf=i=>{let e=Rr(i);return q_(i)*4294967296+e},Hf=i=>{let e=i.view.getFloat32(i.bufferPos,!1);return i.bufferPos+=4,e},Co=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 Vt=8,Dr=16,wt=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}},ar=i=>Nt(i)/65536,Eo=i=>Nt(i)/1073741824,Ao=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},ct=i=>{let e=Ce(i);return i.skip(2),Be.decode(W(i,e))},jf=i=>{let e=wt(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 or(r,"image/jpeg");case 14:return new or(r,"image/png");case 27:return new or(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 X_=[I.EBML,I.Segment],fi=[I.SeekHead,I.Info,I.Cluster,I.Tracks,I.Cues,I.Attachments,I.Chapters,I.Tags],Io=[...X_,...fi];var Ml=8,Ve=2,lt=2*Ml,Bl=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},mi=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},$f=(i,e)=>{let t=J(i,e);return t&1<<e*8-1&&(t-=2**(e*8)),t},Mo=i=>{let e=Bl(i);return e===null?null:J(i,e)},Fl=i=>{let e=z(i);return e===255?e=null:(i.skip(-1),e=mi(i),e===72057594037927940&&(e=null)),e},ut=i=>{let e=Mo(i);if(e===null)return null;let t=Fl(i);return{id:e,size:t}},cr=(i,e)=>{let t=W(i,e),r=0;for(;r<e&&t[r]!==0;)r+=1;return String.fromCharCode(...t.subarray(0,r))},pi=(i,e)=>{let t=W(i,e),r=0;for(;r<e&&t[r]!==0;)r+=1;return Be.decode(t.subarray(0,r))},Bo=(i,e)=>{if(e===0)return 0;if(e!==4&&e!==8)throw new Error("Bad float size "+e);return e===4?Hf(i):Co(i)},Fo=async(i,e,t,r)=>{let s=new Set(t),n=e;for(;r===null||n<r;){let o=i.requestSliceRange(n,Ve,lt);if(o instanceof Promise&&(o=await o),!o)break;let a=ut(o);if(!a)break;if(s.has(a.id))return{pos:n,found:!0};Wt(a.size),n=o.filePos+a.size}return{pos:r!==null&&r>n?r:n,found:!1}},Rl=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<Ml)break;for(let c=0;c<a.length-Ml;c++){a.filePos=o;let l=Mo(a);if(l!==null&&n.has(l))return o;o++}}return null},ht={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 Wt(i){if(i===null)throw new Error("Undefined element size is used in a place where it is not supported.")}var qf=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 Y_={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]},K_={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]},Z_={0:[11025,12e3,8e3,-1],2:[22050,24e3,16e3,-1],3:[44100,48e3,32e3,-1]},Xf=1483304551,Yf=1231971951,Q_=(i,e,t,r)=>Math.floor(i===3?(12*e/t+r)*4:144*e/t+r),Kf=(i,e)=>i===3?e===3?21:36:e===3?13:21,Zf=(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?Y_[a]?.[c]:K_[a]?.[c];if(!g||g===-1)return{header:null,bytesAdvanced:1};let y=g*1e3,x=Z_[o]?.[l];if(!x||x===-1)return{header:null,bytesAdvanced:1};let w=Q_(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 Ro=i=>{let e=2130706432,t=0;for(;e!==0;)t>>=1,t|=i&e,e>>=8;return t};var xi;(function(i){i[i.Unsynchronisation=128]="Unsynchronisation",i[i.ExtendedHeader=64]="ExtendedHeader",i[i.ExperimentalIndicator=32]="ExperimentalIndicator",i[i.Footer=16]="Footer"})(xi||(xi={}));var yi;(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"})(yi||(yi={}));var Ps=128,wi=10,bi=["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"],Cs=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=Zf(n,i.fileSize!==null?i.fileSize-r:null);if(o.header)return{header:o.header,startPos:r};r+=o.bytesAdvanced}return null},Jf=(i,e)=>{let t=i.filePos;e.raw??={},e.raw.TAG??=W(i,Ps-3),i.filePos=t;let r=gi(i,30);r&&(e.title??=r);let s=gi(i,30);s&&(e.artist??=s);let n=gi(i,30);n&&(e.album??=n);let o=gi(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=gi(i,28),i.skip(2)}else i.skip(-30),l=gi(i,30);l&&(e.comment??=l);let u=z(i);u<bi.length&&(e.genre??=bi[u])},gi=(i,e)=>{let t=W(i,e),r=Br(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()},Es=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=Ro(o);return{majorVersion:r,revision:s,flags:n,size:a}},em=(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 Dl(e,r);if(e.flags&xi.Footer&&s.removeFooter(),e.flags&xi.Unsynchronisation&&e.majorVersion===3&&s.ununsynchronizeAll(),e.flags&xi.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&xi.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(bi[f]!==void 0){t.genre??=bi[f];break}}if(d=/^\d+$/.exec(h),d){let f=Number.parseInt(d[0]);if(bi[f]!==void 0){t.genre??=bi[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}},Dl=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-wi),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?Ro(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:Ro(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 yi.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 yi.UTF_16_WITH_BOM:if(s[0]===255&&s[1]===254){let n=new TextDecoder("utf-16le"),o=Br(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=Br(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=Br(s.findIndex(o=>o===0),s.length);return this.pos=r+Math.min(n+1,s.length),Be.decode(s.subarray(0,n))}case yi.UTF_16_BE_NO_BOM:{let n=new TextDecoder("utf-16be"),o=Br(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 yi.UTF_8:{let n=Br(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 Ol=1399285583,J_=79764919,tm=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^J_:e<<1;tm[i]=e>>>0&4294967295}var rm=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^tm[r>>>24^n])>>>0}return e.setUint32(22,t,!0),r},im=(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<<Pf(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=zf(i).durationInSamples);return{durationInSamples:r,vorbisBlockSize:s}},sm=i=>{let e="audio/ogg";if(i.codecStrings){let t=[...new Set(i.codecStrings)];e+=`; codecs="${t.join(", ")}"`}return e};var lr=27,Or=282,nm=Or+65025,_i=i=>{let e=i.filePos;if(Rr(i)!==Ol)return null;i.skip(1);let r=z(i),s=Wf(i),n=Rr(i),o=Rr(i),a=Rr(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}},om=(i,e)=>{for(;i.filePos<e-3;){let t=Rr(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===Ol)return!0;i.skip(1)}}return!1};var We=class{constructor(e){this.input=e}};var Do=[],Ul=[];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(nr*this.timestamp)}get microsecondDuration(){return Math.trunc(nr*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 Is=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(nr*this.timestamp)}get microsecondDuration(){return Math.trunc(nr*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=sr(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*nr),duration:Math.trunc((t.duration??0)*nr)}),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),As(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||(As(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),As(this._data)?this._data.allocationSize():this._data instanceof Uint8Array?this._data.byteLength:this.codedWidth*this.codedHeight*4}async copyTo(e){if(!wl(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),As(this._data))await this._data.copyTo(e);else if(this._data instanceof Uint8Array)sr(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);sr(e).set(s.data)}}toVideoFrame(){if(this._closed)throw new Error("VideoSample is closed.");return k(this._data!==null),As(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}},As=i=>typeof VideoFrame<"u"&&i instanceof VideoFrame;var Si=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.")},Ur=i=>{if(typeof i!="number"||Number.isNaN(i))throw new TypeError("timestamp must be a number.")},zl=(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,Ti=class{constructor(e){if(!(e instanceof ki))throw new TypeError("track must be an InputTrack.");this._track=e}getFirstPacket(e={}){return Si(e),zl(this._track,this._track._backing.getFirstPacket(e),e)}getPacket(e,t={}){return Ur(e),Si(t),zl(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 Si(t),zl(this._track,this._track._backing.getNextPacket(e,t),t)}async getKeyPacket(e,t={}){if(Ur(e),Si(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(Si(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.");Si(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}}}},Gl=class{constructor(e,t){this.onSample=e,this.onError=t}},Oo=class{mediaSamplesInRange(e=0,t=1/0){Ur(e),Ur(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=am(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){kf(e);let t=Tf(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=am(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(Ur(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}}}},am=i=>i===0?40:8,Ll=class extends Gl{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 co,this.customDecoderQueueSize=0,this.inputTimestamps=[],this.sampleQueue=[],this.currentPacketIndex=0,this.raslSkipped=!1;let a=Do.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 Is))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(yo()){if(this.sampleQueue.length>0&&l.timestamp>=ve(this.sampleQueue).timestamp){for(let u of this.sampleQueue)this.finalizeAndEmitSample(u);this.sampleQueue.length=0}at(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 Is(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(Al(e.data,this.decoderConfig).some(s=>{let n=Gt(s);return n===Re.RASL_N||n===Re.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),yo()||at(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()),yo()){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}},Uo=class extends Oo{constructor(e){if(!(e instanceof _t))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 Ll(e,t,r,n,s,o)}_createPacketSink(){return new Ti(this._videoTrack)}async getSample(e){Ur(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)}},Ms=class{constructor(e,t={}){if(this._nextCanvasIndex=0,!(e instanceof _t))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 Uo(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){Ur(e);let t=await this._videoSampleSink.getSample(e);return t&&this._videoSampleToWrappedCanvas(t)}canvases(e=0,t=1/0){return kl(this._videoSampleSink.samples(e,t),r=>this._videoSampleToWrappedCanvas(r))}canvasesAtTimestamps(e){return kl(this._videoSampleSink.samplesAtTimestamps(e),t=>t&&this._videoSampleToWrappedCanvas(t))}};var ki=class{constructor(e){this._backing=e}isVideoTrack(){return this instanceof _t}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 Ti(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}}},_t=class extends ki{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),Do.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:Lf(this,e)}},Ae=class extends ki{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),Ul.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 Ht;(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"})(Ht||(Ht={}));var zo=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=Lt(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=Lt(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=Il(d,r);l=Il(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 Nl(this)))})()}async parseFmtChunk(e,t,r){let s=this.reader.requestSlice(e,t);if(s instanceof Promise&&(s=await s),!s)return;let n=hi(s,r),o=hi(s,r),a=Lt(s,r);s.skip(4);let c=hi(s,r),l;if(t===14?l=8:l=hi(s,r),t>=18&&n!==357){let u=hi(s,r),h=t-18;if(Math.min(h,u)>=22&&n===Ht.EXTENSIBLE){s.skip(6);let f=W(s,16);n=f[0]|f[1]<<8}}(n===Ht.MULAW||n===Ht.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=Lt(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===Ht.MULAW)return"ulaw";if(this.audioInfo.format===Ht.ALAW)return"alaw";if(this.audioInfo.format===Ht.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===Ht.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}},vi=2048,Nl=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*vi*this.demuxer.audioInfo.blockSizeInBytes;if(r>=this.demuxer.dataSize)return null;let s=Math.min(vi*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*vi/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/vi,(this.demuxer.dataSize-1)/(vi*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/vi);return this.getPacketAtIndex(r+1,t)}getKeyPacket(e,t){return this.getPacket(e,t)}getNextKeyPacket(e,t){return this.getNextPacket(e,t)}};var zr=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 Bs=class extends zr{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 Go({maxCacheSize:t.maxCacheSize??8*2**20,maxWorkerCount:4,runWorker:this._runWorker.bind(this),prefetchProfile:lm.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}},cm=.5*2**20,Fs=class extends zr{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 Go({maxCacheSize:t.maxCacheSize??64*2**20,maxWorkerCount:2,runWorker:this._runWorker.bind(this),prefetchProfile:lm.network})}async _retrieveSize(){let e=new AbortController,t=await vl(this._url,xo(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,cm));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 vl(this._url,xo(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 lm={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(bo(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+cm),{start:i,end:e}}},Go=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(bo(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||bo(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 eS=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"]),Lo=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 et,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 Nf({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,Vt,Dr);if(t instanceof Promise&&(t=await t),!t)break;let r=e,s=wt(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,Vt,Dr);if(n instanceof Promise&&(n=await n),n){let o=wt(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&&ks.includes(e.info.codec)&&t.sampleCompositionTimeOffsets.length===0){k(e.info?.type==="audio");let n=Mf(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,Vt,Dr);t instanceof Promise&&(t=await t),k(t);let r=wt(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-Vt;){if(h?.nextFragment)h=h.nextFragment,u=h.moofOffset+h.moofSize;else{let p=this.reader.requestSliceRange(u,Vt,Dr);if(p instanceof Promise&&(p=await p),!p)break;let g=u,y=wt(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),hm(c,p.endTimestamp)}c.startTimestampIsFinal=!0}return o}readContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-Vt&&this.traverseBox(e););}*iterateContiguousBoxes(e){let t=e.filePos;for(;e.filePos-t<=e.length-Vt;){let r=e.filePos,s=wt(e);if(!s)break;yield{boxInfo:s,slice:e},e.filePos=r+s.totalSize}}traverseBox(e){let t=e.filePos,r=wt(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 _t(new Vl(a)),this.tracks.push(o)}else if(o.info.type==="audio"&&o.info.numberOfChannels!==-1){let a=o;o.inputTrack=new Ae(new Wl(a)),this.tracks.push(o)}}this.currentTrack=null}break;case"tkhd":{let o=this.currentTrack;if(!o)break;let a=z(e);if(!((di(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=[ar(e),ar(e),Eo(e),ar(e),ar(e),Eo(e),ar(e),ar(e),Eo(e)],h=lo(vf(sS(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?Vf(e):Nt(e),m=ar(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;go(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=wt(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=Co(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:uo[c],transfer:ho[l],matrix:fo[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),Ao(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=Ao(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=Ao(e);if(o.info.codecDescription=W(e,y),o.info.codec==="aac"){let x=Cl(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=vs(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=di(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,di,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)),at(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){at(this.currentTrack.fragments,this.currentFragment,l=>l.moofOffset),o.firstKeyFrameTimestamp!==null&&at(this.currentTrack.fragmentsWithKeyFrame,this.currentFragment,l=>l.moofOffset);let{currentFragmentState:c}=this.currentTrack;k(c),c.startTimestamp!==null&&(hm(o,c.startTimestamp),o.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{k(this.currentFragment),e.skip(1);let o=di(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=di(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 R=!(C&65536);_.samples.push({presentationTimestamp:w+E,duration:M,byteOffset:x,byteSize:P,isKeyFrame:R}),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??={},eS.has(a.name)?this.metadataTags.raw[a.name]??=ct(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??=ct(c);break;case"\xA9des":this.currentTrack||(this.metadataTags.description??=ct(c));break;case"\xA9ART":this.currentTrack||(this.metadataTags.artist??=ct(c));break;case"\xA9alb":this.currentTrack||(this.metadataTags.album??=ct(c));break;case"albr":this.currentTrack||(this.metadataTags.albumArtist??=ct(c));break;case"\xA9gen":this.currentTrack||(this.metadataTags.genre??=ct(c));break;case"\xA9day":if(!this.currentTrack){let l=new Date(ct(c));Number.isNaN(l.getTime())||(this.metadataTags.date??=l)}break;case"\xA9cmt":this.currentTrack||(this.metadataTags.comment??=ct(c));break;case"\xA9lyr":this.currentTrack||(this.metadataTags.lyrics??=ct(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=jf(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 or?(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}},No=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 Mr(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=um(s,r),o=await this.fetchPacketForSampleIndex(n,t);return!dm(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=um(s,r),o=n===-1?-1:rS(s,n),a=await this.fetchPacketForSampleIndex(o,t);return!dm(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=iS(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=tS(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=mo(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,Vt,Dr);if(x instanceof Promise&&(x=await x),!x)break;let w=p,_=wt(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()}}},Vl=class extends No{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&&ko(e.data)}else if(this.internalTrack.info.codec==="av1"&&!this.internalTrack.info.av1CodecInfo){let e=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=e&&vo(e.data)}return{codec:wo(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}},Wl=class extends No{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:_o(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:this.internalTrack.info.codecDescription??void 0}:null}},um=(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)}},tS=(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}},rS=(i,e)=>{if(!i.keySampleIndices)return e;let t=Q(i.keySampleIndices,e,r=>r);return i.keySampleIndices[t]??-1},iS=(i,e)=>{if(!i.keySampleIndices)return e+1;let t=Q(i.keySampleIndices,e,r=>r);return i.keySampleIndices[t+1]??-1},hm=(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},sS=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},dm=i=>i.sampleSizes.length===0;var jt;(function(i){i[i.None=0]="None",i[i.Xiph=1]="Xiph",i[i.FixedSize=2]="FixedSize",i[i.Ebml=3]="Ebml"})(jt||(jt={}));var Hl=[{id:I.SeekHead,flag:"seekHeadSeen"},{id:I.Info,flag:"infoSeen"},{id:I.Tracks,flag:"tracksSeen"},{id:I.Cues,flag:"cuesSeen"}],fm=10*2**20,Vo=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 qf({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,lt);if(t instanceof Promise&&(t=await t),!t)break;let r=ut(t);if(!r)break;let s=r.id,n=r.size,o=t.filePos;if(s===I.EBML){Wt(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 Fo(this.reader,o,Io,this.reader.fileSize)).pos-o);let a=ve(this.segments);a&&(a.elementEndPos=o+n)}Wt(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 et,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,lt);if(c instanceof Promise&&(c=await c),!c)break;let l=r,u=ut(c);if(!u||!fi.includes(u.id)&&u.id!==I.Void){let p=await Rl(this.reader,l,fi,Math.min(this.currentSegment.elementEndPos??1/0,l+fm));if(p){r=p;continue}else break}let{id:h,size:d}=u,f=c.filePos,m=Hl.findIndex(p=>p.id===h);if(m!==-1){let p=Hl[m].flag;this.currentSegment[p]=!0,Wt(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,Wt(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=Hl.find(p=>p.id===c.id);if(!l||this.currentSegment[l.flag])continue;let u=this.reader.requestSliceRange(e+c.segmentPosition,Ve,lt);if(u instanceof Promise&&(u=await u),!u)continue;let h=ut(u);if(!h)continue;let{id:d,size:f}=h;if(d!==l.id)continue;Wt(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,lt);r instanceof Promise&&(r=await r),k(r);let s=e,n=ut(r);k(n);let o=n.id,a=n.size,c=r.filePos;a===null&&(a=(await Fo(this.reader,c,Io,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!==jt.None}m&&(d.blocks=nS(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===jt.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&&(at(f.clusters,u,w=>w.elementStartPos),d.firstKeyFrameTimestamp!==null&&at(f.clustersWithKeyFrame,u,w=>w.elementStartPos))}return at(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===jt.None)continue;let n=ui.tempFromBytes(s.data),o=[],a=z(n)+1;switch(s.lacing){case jt.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 jt.FixedSize:{let c=n.length-1,l=Math.floor(c/a);for(let u=0;u<a;u++)o.push(l)}break;case jt.Ebml:{let c=mi(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=mi(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:jt.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,lt);if(r instanceof Promise&&(r=await r),!r)continue;let s=ut(r);if(!s||s.id!==t.id)continue;let{size:n}=s;Wt(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=ut(e);if(!t)return!1;let{id:r,size:s}=t,n=e.filePos;switch(Wt(s),r){case I.DocType:this.isWebM=cr(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=Bo(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===ht.avc?(this.currentTrack.info.codec="avc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):this.currentTrack.codecId===ht.hevc?(this.currentTrack.info.codec="hevc",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===ht.vp8?this.currentTrack.info.codec="vp8":a===ht.vp9?this.currentTrack.info.codec="vp9":a===ht.av1&&(this.currentTrack.info.codec="av1");let c=this.currentTrack,l=new _t(new jl(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===ht.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===ht.mp3?this.currentTrack.info.codec="mp3":a===ht.opus?(this.currentTrack.info.codec="opus",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===ht.vorbis?(this.currentTrack.info.codec="vorbis",this.currentTrack.info.codecDescription=this.currentTrack.codecPrivate):a===ht.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 $l(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=cr(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=pi(e,s)}break;case I.Language:{if(!this.currentTrack||this.currentTrack.languageCode!==Pe)break;this.currentTrack.languageCode=cr(e,s),go(this.currentTrack.languageCode)||(this.currentTrack.languageCode=Pe)}break;case I.LanguageBCP47:{if(!this.currentTrack)break;let a=cr(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=fo[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=ho[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=uo[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=-Bo(e,s);try{this.currentTrack.info.rotation=lo(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=Bo(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=mi(e);if(o===null)break;let a=vs(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=mi(e);if(o===null)break;let a=vs(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=$f(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=pi(e,s);break;case I.TagString:{if(!this.currentSimpleTagName)break;let o=pi(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=pi(e,s)}break;case I.FileMediaType:{if(!this.currentAttachedFile)break;this.currentAttachedFile.fileMediaType=cr(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=pi(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}}},Wo=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 Mr(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=mo(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,lt);if(w instanceof Promise&&(w=await w),!w)break;let _=g,S=ut(w);if(!S||!fi.includes(S.id)&&S.id!==I.Void){let P=await Rl(n.reader,_,fi,Math.min(o.elementEndPos??1/0,_+fm));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:R,correctBlockFound:j}=e();if(j){let he=this.internalTrack.clusters[E];return this.fetchPacketInCluster(he,R,s)}E!==-1&&(d=E,f=R)}if(v===null){T===I.Cluster?(k(h),v=h.elementEndPos-M):v=(await Fo(n.reader,M,Io,o.elementEndPos)).pos-M;let P=M+v;if(o.elementEndPos!==null&&P>o.elementEndPos-Ve)break;{let C=n.reader.requestSliceRange(P,Ve,lt);if(C instanceof Promise&&(C=await C),!C)break;if(Mo(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()}}},jl=class extends Wo{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:wo({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?Rf(e.data):null,hevcCodecInfo:this.internalTrack.info.codec==="hevc"&&e?Df(e.data):null,vp9CodecInfo:this.internalTrack.info.codec==="vp9"&&e?ko(e.data):null,av1CodecInfo:this.internalTrack.info.codec==="av1"&&e?vo(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}},$l=class extends Wo{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:_o({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}},nS=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 Ho=class extends We{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.metadataTags=null,this.tracks=[],this.readingMutex=new et,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 ql(this))]})()}async advanceReader(){if(this.lastLoadedPos===0)for(;;){let a=this.reader.requestSlice(this.lastLoadedPos,wi);if(a instanceof Promise&&(a=await a),!a){this.lastSampleLoaded=!0;return}let c=Es(a);if(!c)break;this.lastLoadedPos=a.filePos+c.size}let e=await Cs(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=Kf(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===Xf||a===Yf)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,wi);if(s instanceof Promise&&(s=await s),!s)break;let n=Es(s);if(!n)break;r=!0;let o=this.reader.requestSlice(s.filePos,n.size);if(o instanceof Promise&&(o=await o),!o)break;em(o,n,this.metadataTags),t=s.filePos+n.size}if(!r&&this.reader.fileSize!==null&&this.reader.fileSize>=Ps){let s=this.reader.requestSlice(this.reader.fileSize-Ps,Ps);s instanceof Promise&&(s=await s),k(s),de(s,3)==="TAG"&&Jf(s,this.metadataTags)}return this.metadataTags}finally{e()}}},ql=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 jo=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,lr,Or);if(t instanceof Promise&&(t=await t),!t)break;let r=_i(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 Xl(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:Gf(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=Uf(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=Cf(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,lr,Or);if(m instanceof Promise&&(m=await m),!m)return null;let p=_i(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,lr,Or);if(s instanceof Promise&&(s=await s),!s)return null;let n=_i(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 sm({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}},Xl=class{constructor(e,t){this.bitstream=e,this.demuxer=t,this.encodedPacketToMetadata=new WeakMap,this.sequentialScanCache=[],this.sequentialScanMutex=new et,this.internalSampleRate=e.codecInfo.codec==="opus"?If: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}=im(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=Mr(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(_+nm,o-lr),T=this.demuxer.reader.requestSlice(_,S-_);if(T instanceof Promise&&(T=await T),k(T),!om(T,S)){o=w+lr;continue e}let M=this.demuxer.reader.requestSliceRange(T.filePos,lr,Or);M instanceof Promise&&(M=await M),k(M);let P=_i(M);k(P);let C=!1;if(P.serialNumber===this.bitstream.serialNumber)C=!0;else{let R=this.demuxer.reader.requestSlice(P.headerStartPos,P.totalSize);R instanceof Promise&&(R=await R),k(R);let j=W(R,P.totalSize);C=rm(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,lr,Or);w instanceof Promise&&(w=await w),k(w);let _=_i(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 _=pm(u,l,h);k(_);let S=mm(u,_.page,_.segmentIndex);S&&(l=S.page,h=S.segmentIndex)}else for(;;){let _=pm(u,l,h);if(!_)break;let S=mm(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=Mr(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)}},mm=(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=Tl(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}},pm=(i,e,t)=>{if(t>0)return{page:e,segmentIndex:t-1};let r=Tl(i,s=>s.headerStartPos<e.headerStartPos);return r?{page:r,segmentIndex:r.lacingValues.length-1}:null};var Pi=7,Ci=9,Rs=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 Yl=1024,$o=class extends We{constructor(e){super(e),this.metadataPromise=null,this.firstFrameHeader=null,this.loadedSamples=[],this.tracks=[],this.readingMutex=new et,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 Kl(this))]})()}async advanceReader(){let e=this.reader.requestSliceRange(this.lastLoadedPos,Pi,Ci);if(e instanceof Promise&&(e=await e),!e){this.lastSampleLoaded=!0;return}let t=Rs(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=Ts[t.samplingFrequencyIndex];k(r!==void 0);let s=Yl/r,n=t.crcCheck?Ci:Pi,o={timestamp:this.nextTimestampInSamples/r,duration:s,dataStart:t.startPos+n,dataSize:t.frameLength-n};this.loadedSamples.push(o),this.nextTimestampInSamples+=Yl,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{}}},Kl=class{constructor(e){this.demuxer=e}getId(){return 1}async getFirstTimestamp(){return 0}getTimeResolution(){return this.getSampleRate()/Yl}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=Ts[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 dt=class{},Ds=class extends dt{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 Lo(e)}},qo=class extends Ds{async _canReadInput(e){let t=await this._getMajorBrand(e);return!!t&&t!=="qt "}get name(){return"MP4"}get mimeType(){return"video/mp4"}},Xo=class extends Ds{async _canReadInput(e){return await this._getMajorBrand(e)==="qt "}get name(){return"QuickTime File Format"}get mimeType(){return"video/quicktime"}},Os=class extends dt{async isSupportedEBMLOfDocType(e,t){let r=e._reader.requestSlice(0,lt);if(r instanceof Promise&&(r=await r),!r)return!1;let s=Bl(r);if(s===null||s<1||s>8||J(r,s)!==I.EBML)return!1;let o=Fl(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=ut(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(cr(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 Vo(e)}get name(){return"Matroska"}get mimeType(){return"video/x-matroska"}},Yo=class extends Os{_canReadInput(e){return this.isSupportedEBMLOfDocType(e,"webm")}get name(){return"WebM"}get mimeType(){return"video/webm"}},Ko=class extends dt{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,wi);if(l instanceof Promise&&(l=await l),!l)break;let u=Es(l);if(!u)break;s=!0,r=l.filePos+u.size}let n=await Cs(e._reader,r,r+4096);if(!n)return!1;if(s)return!0;r=n.startPos+=n.header.totalSize;let o=await Cs(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 Ho(e)}get name(){return"MP3"}get mimeType(){return"audio/mpeg"}},Zo=class extends dt{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 zo(e)}get name(){return"WAVE"}get mimeType(){return"audio/wav"}},Qo=class extends dt{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 jo(e)}get name(){return"Ogg"}get mimeType(){return"application/ogg"}},Jo=class extends dt{async _canReadInput(e){let t=e._reader.requestSliceRange(0,Pi,Ci);if(t instanceof Promise&&(t=await t),!t)return!1;let r=Rs(t);if(!r||(t=e._reader.requestSliceRange(r.frameLength,Pi,Ci),t instanceof Promise&&(t=await t),!t))return!1;let s=Rs(t);return s?r.objectType===s.objectType&&r.samplingFrequencyIndex===s.samplingFrequencyIndex&&r.channelConfiguration===s.channelConfiguration:!1}_createDemuxer(e){return new $o(e)}get name(){return"ADTS"}get mimeType(){return"audio/aac"}},gm=new qo,xm=new Xo,ym=new Os,bm=new Yo,wm=new Ko,_m=new Zo,Sm=new Qo,Tm=new Jo,ur=[gm,xm,ym,bm,_m,Sm,wm,Tm];var St=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 dt)))throw new TypeError("options.formats must be an array of InputFormat.");if(!(e.source instanceof zr))throw new TypeError("options.source must be a Source.");this._formats=e.formats,this._source=e.source,this._reader=new Po(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 ea=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 km=i=>ao.host(e=>({async world(){i.count++}}));async function Gr(i){return i instanceof Blob?new Bs(i):new Fs(i)}var ta=class{machina;thread;static async setup(e){let t=new ea,r=await ao.thread({label:"OmnitoolDriver",workerUrl:e?.workerUrl??"/node_modules/@omnimedia/omnitool/x/driver/driver.worker.bundle.min.js",setupHost:km(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 St({source:await Gr(e),formats:ur}).getPrimaryAudioTrack())?.computeDuration()}async getVideoDuration(e){return await(await new St({source:await Gr(e),formats:ur}).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[Cr]({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[Cr]({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[Cr]({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[Cr]({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 Lr=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))}},ra={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 Pm(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(Pm(n,o));else r==="style"?Object.assign(t.style,s):r==="textContent"?t.textContent=s:t.setAttribute(r,s.toString());return t}function vm(i,e,t){let r=Pm(i,e||{});return t?.appendChild(r),r}var oS=Object.freeze({__proto__:null,createElement:vm,default:vm}),aS={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()})}},Zl=class extends Lr{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)}},zs=class i extends Lr{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:R}=C;m||(r?.(d-E,f-R),m=!0),t(M,P,T-E,v-R),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=`
8
576
  <style${r?` nonce="${r}"`:""}>
9
577
  :host {
10
578
  user-select: none;
@@ -76,37 +644,39 @@ var J;(function(n){n.version="2.0";function e(t){return"id"in t?t.id:null}n.getI
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,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((i,a)=>{s(),r=a,t=setTimeout(()=>{t=void 0,r=void 0,i()},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),i=r.createLinearGradient(0,0,0,s),a=1/(e.length-1);return e.forEach((o,c)=>{let l=c*a;i.addColorStop(l,o)}),i}getPixelRatio(){return Math.max(1,window.devicePixelRatio||1)}renderBarWaveform(e,t,r,s){let i=e[0],a=e[1]||e[0],o=i.length,{width:c,height:l}=r.canvas,d=l/2,u=this.getPixelRatio(),h=t.barWidth?t.barWidth*u:1,m=t.barGap?t.barGap*u:t.barWidth?h/2:0,f=t.barRadius||0,w=c/(h+m)/o,g=f&&"roundRect"in r?"roundRect":"rect";r.beginPath();let b=0,y=0,I=0;for(let T=0;T<=o;T++){let k=Math.round(T*w);if(k>b){let _=Math.round(y*d*s),P=_+Math.round(I*d*s)||1,R=d-_;t.barAlign==="top"?R=0:t.barAlign==="bottom"&&(R=l-P),r[g](b*(h+m),R,h,P,f),b=k,y=0,I=0}let x=Math.abs(i[T]||0),S=Math.abs(a[T]||0);x>y&&(y=x),S>I&&(I=S)}r.fill(),r.closePath()}renderLineWaveform(e,t,r,s){let i=a=>{let o=e[a]||e[0],c=o.length,{height:l}=r.canvas,d=l/2,u=r.canvas.width/c;r.moveTo(0,d);let h=0,m=0;for(let f=0;f<=c;f++){let w=Math.round(f*u);if(w>h){let b=d+(Math.round(m*d*s)||1)*(a===0?-1:1);r.lineTo(h,b),h=w,m=0}let g=Math.abs(o[f]||0);g>m&&(m=g)}r.lineTo(h,d)};r.beginPath(),i(0),i(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 i=Array.from(e[0]).reduce((a,o)=>Math.max(a,Math.abs(o)),0);s=i?1/i:1}t.barWidth||t.barGap||t.barAlign?this.renderBarWaveform(e,t,r,s):this.renderLineWaveform(e,t,r,s)}renderSingleCanvas(e,t,r,s,i,a,o){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(i)}px`,a.appendChild(l);let d=l.getContext("2d");if(this.renderWaveform(e,t,d),l.width>0&&l.height>0){let u=l.cloneNode(),h=u.getContext("2d");h.drawImage(l,0,0),h.globalCompositeOperation="source-in",h.fillStyle=this.convertColorValues(t.progressColor),h.fillRect(0,0,l.width,l.height),o.appendChild(u)}}renderMultiCanvas(e,t,r,s,i,a){let o=this.getPixelRatio(),{clientWidth:c}=this.scrollContainer,l=r/o,d=Math.min(n.MAX_CANVAS_WIDTH,c,l),u={};if(t.barWidth||t.barGap){let g=t.barWidth||.5,b=g+(t.barGap||g/2);d%b!=0&&(d=Math.floor(d/b)*b)}if(d===0)return;let h=g=>{if(g<0||g>=m||u[g])return;u[g]=!0;let b=g*d,y=Math.min(l-b,d);if(t.barWidth||t.barGap){let T=t.barWidth||.5,k=T+(t.barGap||T/2);y=Math.floor(y/k)*k}if(y<=0)return;let I=e.map(T=>{let k=Math.floor(b/l*T.length),x=Math.floor((b+y)/l*T.length);return T.slice(k,x)});this.renderSingleCanvas(I,t,y,s,b,i,a)},m=Math.ceil(l/d);if(!this.isScrollable){for(let g=0;g<m;g++)h(g);return}let f=this.scrollContainer.scrollLeft/l,w=Math.floor(f*m);if(h(w-1),h(w),h(w+1),m>1){let g=this.on("scroll",()=>{let{scrollLeft:b}=this.scrollContainer,y=Math.floor(b/l*m);Object.keys(u).length>n.MAX_NODES&&(i.innerHTML="",a.innerHTML="",u={}),h(y-1),h(y),h(y+1)});this.unsubscribeOnScroll.push(g)}}renderChannel(e,t,r,s){var{overlay:i}=t,a=function(d,u){var h={};for(var m in d)Object.prototype.hasOwnProperty.call(d,m)&&u.indexOf(m)<0&&(h[m]=d[m]);if(d!=null&&typeof Object.getOwnPropertySymbols=="function"){var f=0;for(m=Object.getOwnPropertySymbols(d);f<m.length;f++)u.indexOf(m[f])<0&&Object.prototype.propertyIsEnumerable.call(d,m[f])&&(h[m[f]]=d[m[f]])}return h}(t,["overlay"]);let o=document.createElement("div"),c=this.getHeight(a.height,a.splitChannels);o.style.height=`${c}px`,i&&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,a,r,c,o,l)}render(e){return O(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,i=Math.ceil(e.duration*(this.options.minPxPerSec||0));this.isScrollable=i>s;let a=this.options.fillParent&&!this.isScrollable,o=(a?s:i)*r;if(this.wrapper.style.width=a?"100%":`${i}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(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:i}=this.scrollContainer,a=e*s,o=r,c=r+i,l=i/2;if(this.isDragging)a+30>c?this.scrollContainer.scrollLeft+=30:a-30<o&&(this.scrollContainer.scrollLeft-=30);else{(a<o||a>c)&&(this.scrollContainer.scrollLeft=a-(this.options.autoCenter?l:0));let d=a-r-l;t&&this.options.autoCenter&&d>0&&(this.scrollContainer.scrollLeft+=Math.min(d,10))}{let d=this.scrollContainer.scrollLeft,u=d/s,h=(d+i)/s;this.emit("scroll",u,h,d,d+i)}}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 O(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 i=Array.from(s).map(a=>a.toDataURL(e,t));return Promise.resolve(i)}return Promise.all(Array.from(s).map(i=>new Promise((a,o)=>{i.toBlob(c=>{c?a(c):o(new Error("Could not export image"))},e,t)})))})}};it.MAX_CANVAS_WIDTH=8e3,it.MAX_NODES=10;var jr=class extends ve{constructor(){super(...arguments),this.unsubscribe=()=>{}}start(){this.unsubscribe=this.on("tick",()=>{requestAnimationFrame(()=>{this.emit("tick")})}),this.emit("tick")}stop(){this.unsubscribe()}destroy(){this.unsubscribe()}},nt=class extends ve{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 O(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 O(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 O(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}},Yn={waveColor:"#999",progressColor:"#555",cursorWidth:1,minPxPerSec:0,fillParent:!0,interact:!0,dragToSeek:!1,autoScroll:!0,autoCenter:!0,sampleRate:8e3},He=class n extends Wr{static create(e){return new n(e)}constructor(e){let t=e.media||(e.backend==="WebAudio"?new nt: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({},Yn,e),this.timer=new jr;let r=t?void 0:this.getMediaElement();this.renderer=new it(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:i,duration:a}=this.options;(s||i&&a)&&this.load(s,i,a).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 i=this.getDuration();this.emit("scroll",e*i,t*i,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=rr.createBuffer(this.exportPeaks(),e.duration)),e.peaks&&e.duration&&(this.decodedData=rr.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 O(this,void 0,void 0,function*(){var i;if(this.emit("load",e),!this.options.media&&this.isPlaying()&&this.pause(),this.decodedData=null,this.stopAtPosition=null,!t&&!r){let o=this.options.fetchParams||{};window.AbortController&&!o.signal&&(this.abortController=new AbortController,o.signal=(i=this.abortController)===null||i===void 0?void 0:i.signal);let c=d=>this.emit("loading",d);t=yield Xn.fetchBlob(e,c,o);let l=this.options.blobMimeType;l&&(t=new Blob([t],{type:l}))}this.setSrc(e,t);let a=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 nt&&(o.duration=a)}if(r)this.decodedData=rr.createBuffer(r,a||0);else if(t){let o=yield t.arrayBuffer();this.decodedData=yield rr.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,r){return O(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 O(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),i=[];for(let a=0;a<s;a++){let o=this.decodedData.getChannelData(a),c=[],l=o.length/t;for(let d=0;d<t;d++){let u=o.slice(Math.floor(d*l),Math.ceil((d+1)*l)),h=0;for(let m=0;m<u.length;m++){let f=u[m];Math.abs(f)>Math.abs(h)&&(h=f)}c.push(Math.round(h*r)/r)}i.push(c)}return i}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 O(this,void 0,void 0,function*(){e!=null&&this.setTime(e);let s=yield r.play.call(this);return t!=null&&(this.media instanceof nt?this.media.stopAt(t):this.stopAtPosition=t),s})}playPause(){return O(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 O(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()}};He.BasePlugin=class extends ve{constructor(n){super(),this.subscriptions=[],this.isDestroyed=!1,this.options=n}onInit(){}_init(n){this.isDestroyed&&(this.subscriptions=[],this.isDestroyed=!1),this.wavesurfer=n,this.onInit()}destroy(){this.emit("destroy"),this.subscriptions.forEach(n=>n()),this.subscriptions=[],this.isDestroyed=!0,this.wavesurfer=void 0}},He.dom=Qn;var sr=class n{wavesurfer;constructor(e,t,r){this.wavesurfer=He.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){let r=await tr.driver,s=r.decode({source:e}).audio.getReader(),i=[],a=[],o=1024,c=await r.getAudioDuration(e);for(;;){let{done:l,value:d}=await s.read();if(l)break;let u=d.numberOfFrames,h=new Float32Array(u);d.copyTo(h,{planeIndex:0});for(let m=0;m<h.length;m++)if(a.push(h[m]),a.length>=o){let f=a.splice(0,o),w=Math.min(...f),g=Math.max(...f);i.push(w,g)}d.close()}return new n(i,t,c??0)}set width(e){this.wavesurfer.setOptions({width:e})}};async function nn(){let n=document.querySelector(".waveform-demo"),e=document.querySelector(".width"),t=await sr.init("/assets/temp/gl.mp4",n);e.addEventListener("change",()=>{let r=+e.value;t.width=r})}var nr=class n{videoTrack;options;#e;#t=new Map;#r=[0,0];constructor(e,t){this.videoTrack=e,this.options=t,this.#e=new Ze(e,t.canvasSinkOptions)}static async init(e,t){let s=await new ne({formats:Le,source:await st(e)}).getPrimaryVideoTrack();if(s)return new n(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}#s([e,t]){let r=t-e;return[e-r,t+r]}async#o(){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 i=[...r].filter(c=>!this.#t.has(c)),a=0;for await(let c of this.#e.canvasesAtTimestamps(i))if(c){let l=i[a++];this.#t.set(l,c)}for(let c of this.#t.keys())r.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.#s(e);this.#r[0]===t[0]&&this.#r[1]===t[1]||(this.#r=t,this.#a())}#n=null;#i=!1;async#a(){if(this.#n){this.#i=!0;return}this.#n=this.#o(),await this.#n,this.#n=null,this.#i&&(this.#i=!1,await this.#a())}getThumbnail(e){return this.#t.get(e)}};async function an(n){let e=document.querySelector(".range"),t=document.querySelector(".range-view"),r=document.querySelector(".range-size"),s=document.querySelector(".frequency"),i=document.querySelector(".frequency-view"),a=document.querySelector("#filmstrip"),o=1e3/10/1e3,c=.5,l=await nr.init(n,{onChange(d){let u=d.sort((h,m)=>h.time-m.time);a.replaceChildren(...u.map(({time:h,canvas:m})=>Zn(h,m.canvas)))},frequency:o,canvasSinkOptions:{width:80,height:50,fit:"fill"}});r.addEventListener("change",()=>{c=+r.value;let[d,u]=[+e.value,+e.value+c];l.range=[d,u],t.textContent=`visible time range: [${d}, ${u}]`}),e.addEventListener("change",()=>{let[d,u]=[+e.value,+e.value+c];l.range=[d,u],t.textContent=`visible time range: [${d}, ${u}]`}),s.addEventListener("change",()=>{l.frequency=1e3/+s.value/1e3,i.textContent=`frame every ${l.frequency.toFixed(3)} second (${s.value} frames per second)`}),l.range=[10,10.5]}function Zn(n,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=`${n.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 $r(n,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 i(){let a=n.decode({source:e,async onFrame(o){let c=await n.composite([{kind:"image",frame:o},{kind:"text",content:"omnitool",fontSize:50,color:"green"}]);return o.close(),s?.drawImage(c,0,0),c}});await n.encode({readables:a,config:{audio:{codec:"opus",bitrate:128e3},video:{codec:"vp9",bitrate:1e6}}})}return{canvas:r,run:i}}var ir=await tr.driver,Jn=document.querySelector(".results"),ei=document.querySelector(".fetch"),ti=document.querySelector(".import");ei?.addEventListener("click",si);ti?.addEventListener("click",ri);nn();await ir.thread.work.hello(),ir.machina.count===1?console.log("\u2705 driver works"):console.error("\u274C FAIL driver call didn't work");async function ri(){let[n]=await window.showOpenFilePicker(),e=$r(ir,n);await an(n),on(e,n.name)}async function si(){let n=["/assets/temp/gl.mp4"];for(let e of n){let t=$r(ir,"/assets/temp/gl.mp4");on(t,e)}}async function on(n,e){let t=document.createElement("div");Jn.append(t);let r=document.createElement("p");r.textContent=e,t.append(r),t.append(n.canvas),await n.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)})))})}};zs.MAX_CANVAS_WIDTH=8e3,zs.MAX_NODES=10;var Ql=class extends Lr{constructor(){super(...arguments),this.unsubscribe=()=>{}}start(){this.unsubscribe=this.on("tick",()=>{requestAnimationFrame(()=>{this.emit("tick")})}),this.emit("tick")}stop(){this.unsubscribe()}destroy(){this.unsubscribe()}},Us=class extends Lr{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}},cS={waveColor:"#999",progressColor:"#555",cursorWidth:1,minPxPerSec:0,fillParent:!0,interact:!0,dragToSeek:!1,autoScroll:!0,autoCenter:!0,sampleRate:8e3},Ei=class i extends Zl{static create(e){return new i(e)}constructor(e){let t=e.media||(e.backend==="WebAudio"?new Us: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({},cS,e),this.timer=new Ql;let r=t?void 0:this.getMediaElement();this.renderer=new zs(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=ra.createBuffer(this.exportPeaks(),e.duration)),e.peaks&&e.duration&&(this.decodedData=ra.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 aS.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 Us&&(a.duration=o)}if(r)this.decodedData=ra.createBuffer(r,o||0);else if(t){let a=yield t.arrayBuffer();this.decodedData=yield ra.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 Us?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()}};Ei.BasePlugin=class extends Lr{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}},Ei.dom=oS;var ia=class i{wavesurfer;constructor(e,t,r){this.wavesurfer=Ei.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 Cm(i){let e=document.querySelector(".waveform-demo"),t=document.querySelector(".width"),r=await ia.init(i,"/assets/temp/gl.mp4",e);t.addEventListener("change",()=>{let s=+t.value;r.width=s})}var sa=class i{videoTrack;options;#e;#t=new Map;#r=[0,0];constructor(e,t){this.videoTrack=e,this.options=t,this.#e=new Ms(e,t.canvasSinkOptions)}static async init(e,t){let s=await new St({formats:ur,source:await Gr(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#s(){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())}#n=null;#o=!1;async#a(){if(this.#n){this.#o=!0;return}this.#n=this.#s(),await this.#n,this.#n=null,this.#o&&(this.#o=!1,await this.#a())}getThumbnail(e){return this.#t.get(e)}};async function Em(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 sa.init(i,{onChange(u){let h=u.sort((d,f)=>d.time-f.time);o.replaceChildren(...h.map(({time:d,canvas:f})=>lS(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 lS(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 Jl(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",style:{fontSize:50,fill:"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",i[i.TextStyle=8]="TextStyle"})(me||(me={}));var na;(function(i){i[i.Crossfade=0]="Crossfade"})(na||(na={}));var oa=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 St({formats:ur,source:await Gr(e)});return{audio:!!await t.getPrimaryAudioTrack(),video:!!await t.getPrimaryVideoTrack()}}};var aa=class{#e=new no;async store(e){let t=await oa.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}};function Am(i,e){let t,r,s=[];function n(){t=[],r&&clearTimeout(r),r=void 0,s=[]}return n(),(...o)=>{t=o,r&&clearTimeout(r);let a=new Promise((c,l)=>{s.push({resolve:c,reject:l})});return r=setTimeout(()=>{Promise.resolve().then(()=>e(...t)).then(c=>{for(let{resolve:l}of s)l(c);n()}).catch(c=>{for(let{reject:l}of s)l(c);n()})},i),a}}function Im(){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 uS(){let i=new Set;async function e(...c){await Promise.all([...i].map(l=>l(...c)))}function t(c){return i.add(c),()=>{i.delete(c)}}async function r(...c){return e(...c)}function s(c){return t(c)}async function n(c){let{promise:l,resolve:u}=Im(),h=s(async(...d)=>{c&&await c(...d),u(d),h()});return l}function o(){i.clear()}let a={pub:r,sub:s,publish:e,subscribe:t,on:t,next:n,clear:o};return Object.assign(s,a),Object.assign(r,a),a}function ca(i){let e=uS();return i&&e.sub(i),e.sub}var eu=class{#e=[];#t=new WeakMap;#r=[];#i=new Set;notifyRead(e){this.#e.at(-1)?.add(e)}async notifyWrite(e){if(this.#i.has(e))throw new Error("circularity forbidden");let t=this.#s(e).pub();return this.#r.at(-1)?.add(t),t}observe(e){this.#e.push(new Set);let t=e();return{seen:this.#e.pop(),result:t}}subscribe(e,t){return this.#s(e)(async()=>{let r=new Set;this.#r.push(r),this.#i.add(e),r.add(t()),this.#i.delete(e),await Promise.all(r),this.#r.pop()})}#s(e){let t=this.#t.get(e);return t||(t=ca(),this.#t.set(e,t)),t}},Ke=globalThis[Symbol.for("e280.tracker")]??=new eu;var Ai=class{sneak;constructor(e){this.sneak=e}get(){return Ke.notifyRead(this),this.sneak}get value(){return this.get()}};var Ii=class extends Ai{on=ca();dispose(){this.on.clear()}};function la(i,e=i){let{seen:t,result:r}=Ke.observe(i),s=Am(0,e),n=[],o=()=>n.forEach(a=>a());for(let a of t){let c=Ke.subscribe(a,s);n.push(c)}return{result:r,dispose:o}}function Mi(i,e){return i===e}var ua=class extends Ii{#e;constructor(e,t){let r=t?.compare??Mi,{result:s,dispose:n}=la(e,async()=>{let o=e();!r(this.sneak,o)&&(this.sneak=o,await Promise.all([Ke.notifyWrite(this),this.on.pub(o)]))});super(s),this.#e=n}toString(){return`(derived "${String(this.get())}")`}dispose(){super.dispose(),this.#e()}get core(){return this}fn(){let e=this;function t(){return e.get()}return t.core=e,t.get=e.get.bind(e),t.on=e.on,t.dispose=e.dispose.bind(e),t.fn=e.fn.bind(e),Object.defineProperty(t,"value",{get:()=>e.value}),Object.defineProperty(t,"sneak",{get:()=>e.sneak}),t}};var ha=class extends Ai{#e;#t;#r=!1;#i;constructor(e,t){super(void 0),this.#e=e,this.#t=t?.compare??Mi}toString(){return`($lazy "${String(this.get())}")`}get(){if(!this.#i){let{result:e,dispose:t}=la(this.#e,()=>this.#r=!0);this.#i=t,this.sneak=e}if(this.#r){this.#r=!1;let e=this.#e();!this.#t(this.sneak,e)&&(this.sneak=e,Ke.notifyWrite(this))}return super.get()}dispose(){this.#i&&this.#i()}get core(){return this}fn(){let e=this;function t(){return e.get()}return t.core=e,t.get=e.get.bind(e),t.dispose=e.dispose.bind(e),t.fn=e.fn.bind(e),Object.defineProperty(t,"value",{get:()=>e.value}),Object.defineProperty(t,"sneak",{get:()=>e.sneak}),t}};var da=class extends Ii{#e=!1;#t;constructor(e,t){super(e),this.#t=t?.compare??Mi}toString(){return`($signal "${String(this.get())}")`}async set(e,t=!1){let r=this.sneak;return this.sneak=e,(t||!this.#t(r,e))&&await this.publish(),e}get value(){return this.get()}set value(e){this.set(e)}async publish(){if(this.#e)throw new Error("forbid circularity");let e=this.sneak,t=Promise.resolve();try{this.#e=!0,t=Promise.all([Ke.notifyWrite(this),this.on.publish(e)])}finally{this.#e=!1}return await t,e}get core(){return this}fn(){let e=this;function t(r){return arguments.length===0?e.get():e.set(arguments[0])}return t.core=e,t.get=e.get.bind(e),t.set=e.set.bind(e),t.on=e.on,t.dispose=e.dispose.bind(e),t.publish=e.publish.bind(e),t.fn=e.fn.bind(e),Object.defineProperty(t,"value",{get:()=>e.value,set:r=>e.value=r}),Object.defineProperty(t,"sneak",{get:()=>e.sneak,set:r=>e.sneak=r}),t}};function hS(i,e){return new ha(i,e).fn()}function Mm(i,e){return new ua(i,e).fn()}function Gs(i,e){return new da(i,e).fn()}Gs.lazy=hS;Gs.derived=Mm;var Bm=(i,e)=>{let t=!1,r=null,s=60,n=1e3/s,o=0,a=0,c=0,l=0,u=h=>{if(!t)return;let d=h-a;for(a=h,c+=d,l+=d,e(l);c>=n;)i(o),o+=n,c-=n;r=requestAnimationFrame(u)};return{play(){t||(t=!0,a=performance.now(),r=requestAnimationFrame(u))},pause(){t&&(t=!1,r!==null&&cancelAnimationFrame(r),r=null)},seek(h){o=h,c=0,l=h,e(h)},dispose(){this.pause()},isPlaying(){return t},setFPS(h){s=h,n=1e3/s}}},Fm=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 Rm=i=>i instanceof Blob?URL.createObjectURL(i):String(i);function Om(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=Rm(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=Rm(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 Dm(c,l/1e3),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 Dm(a,l/1e3),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 Dm(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 Jw={extension:{type:A.Environment,name:"browser",priority:-1},test:()=>!0,load:async()=>{await Promise.resolve().then(()=>(Qw(),kk))}};G();var t_={extension:{type:A.Environment,name:"webworker",priority:0},test:()=>typeof self<"u"&&self.WorkerGlobalScope!==void 0,load:async()=>{await Promise.resolve().then(()=>(e_(),vk))}};G();Va();Oa();ih();He();N.add(Jw,t_);var r_=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 i_=(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]},s_=[1,0,0,1,0,0];var Ld=(i,e)=>i.get(e),jc=(i,e,t)=>{let r=t??s_;if(e.spatialId){let s=Ld(i,e.spatialId),n=r_(s.transform);r=i_(n,r)}return r},cs=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,jc(this.items,e,t));case me.Audio:return this.sampler.audio(e);case me.Text:{let r=jc(this.items,e,t),s=e.styleId!==void 0?this.items.get(e.styleId):void 0;return{duration:e.duration,visuals:{sampleAt:async n=>n<0||n>=e.duration?[]:[{kind:"text",content:e.content,style:s?.style,matrix:r}]}}}case me.Gap:return{duration:e.duration,visuals:{sampleAt:async()=>[]}};case me.Stack:{let r=jc(this.items,e,t),s=await Promise.all(e.childrenIds.map(n=>this.build(Ld(this.items,n),r)));return this.#r(s)}case me.Sequence:{let r=jc(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=>Ld(this.items,o)),s=await this.#s(r,t);return{duration:s.reduce((o,a)=>o+a.duration,0),visuals:this.#t(s),audio:this.composeAudio_Sequence(s)}}async#s(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.#n(n,o,c);r.push(l),s++}return r}async#n(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 Nd=class extends cs{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 Vd(i,e,t){return new Nd(e,t).build(i)}var $c=class{driver;canvas;root;sampler;resolveMedia;currentTime=Gs(0);#e=Bm(e=>this.#t(e),e=>this.currentTime(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=Om(()=>"/assets/temp/gl.mp4"),o=await Vd(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);let s=await this.root.visuals?.sampleAt(r)??[],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);let t=await this.root.visuals?.sampleAt(e)??[],r=await this.driver.composite(t);this.context.drawImage(r,0,0),r.close()}setFPS(e){this.#e.setFPS(e)}async update(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]));this.root=await Vd(t,r,this.sampler),await this.seek(this.currentTime())}};var qc=class{state;#e=0;constructor(e){this.state=e}require(e){return e===void 0?void 0:this.state.project.items.find(r=>r.id===e)}#t(){return this.#e++}#r(e){this.state.project=e(this.state.project)}register(e){this.#r(t=>({...t,items:[...t.items,e]}))}textStyle=e=>{let t={id:this.#t(),kind:me.TextStyle,style:e};return this.register(t),t};spatial=e=>{let t={id:this.#t(),kind:me.Spatial,transform:e};return this.register(t),t};sequence=(...e)=>{let t={id:this.#t(),kind:me.Sequence,childrenIds:e.map(r=>r.id)};return this.register(t),t};stack=(...e)=>{let t={kind:me.Stack,id:this.#t(),childrenIds:e.map(r=>r.id)};return this.register(t),t};video=(e,t)=>{if(!e.hasVideo)throw new Error(`Video clip error: media "${e.datafile.filename}" has no video track.`);let r={kind:me.Video,id:this.#t(),mediaHash:e.datafile.checksum.hash,start:t?.start??0,duration:t?.duration??e.duration};return this.register(r),r};audio=(e,t)=>{if(!e.hasAudio)throw new Error(`Audio clip error: media "${e.datafile.filename}" has no audio track.`);let r={kind:me.Audio,id:this.#t(),mediaHash:e.datafile.checksum.hash,start:t?.start??0,duration:t?.duration??e.duration};return this.register(r),r};text=e=>{let t={id:this.#t(),content:e,kind:me.Text,duration:2e3};return this.register(t),t};gap=e=>{let t={id:this.#t(),kind:me.Gap,duration:e};return this.register(t),t};transition={crossfade:e=>{let t={id:this.#t(),kind:me.Transition,effect:na.Crossfade,duration:e};return this.register(t),t}};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))}set=(e,t)=>{this.#r(r=>({...r,items:r.items.map(s=>s.id===e?{...s,...t}:s)}))}};var Xc=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 Yc=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 n_=i=>Math.round(i*1e6);function o_(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 Xc(a.getReader());return t.set(s.id,c),c}return{async video(s,n){let o=await r(s),a=n_(s.start??0);return{duration:s.duration,visuals:{sampleAt:async c=>{let l=await o.atOrNear(a+n_(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 Yc(c.getReader()).stream()}}}},async dispose(){let s=Array.from([...t.values()],n=>n.cancel());t.clear(),await Promise.all(s)}}}var Wd=class extends cs{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 a_(i,e,t){return new Wd(e,t).build(i)}var Kc=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=o_(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 a_(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 Fm({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 Zc=class{driver;resources=new aa;#e;constructor(e){this.driver=e,this.#e=new Kc(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 qc({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 Qc=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=Ne.fromBytes(r),n=ot.sigil.fromBytes(r);return new this(e,r,s,n)}};var Jc=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 Qc.make(e),s=t??r.nickname;return new this(e,s,r)}static async load(e){throw new Error("TODO implement")}};var si=await ta.setup({workerUrl:new URL("../driver/driver.worker.bundle.min.js",import.meta.url)}),Pk=document.querySelector(".results"),Ck=document.querySelector(".fetch"),Ek=document.querySelector(".import"),Ak=document.querySelector(".play"),Ik=document.querySelector(".stop"),Mk=document.querySelector(".seek");Ck?.addEventListener("click",Uk);Ek?.addEventListener("click",Ok);var c_=new Zc(si),Bk=await fetch("/assets/temp/gl.mp4"),Fk=await Bk.arrayBuffer(),Rk=new Uint8Array(Fk),{videoA:Hd}=await c_.load({videoA:Jc.make(Rk)}),Dk=c_.timeline(i=>i.sequence(i.stack(i.video(Hd,{duration:5e3}),i.audio(Hd,{duration:8e3})),i.video(Hd,{duration:7e3}))),el=await $c.create(si,Dk);document.body.appendChild(el.canvas);Ak.addEventListener("click",()=>el.play());Ik.addEventListener("click",()=>el.pause());Mk.addEventListener("change",async i=>{let e=i.target;await el.seek(+e.value)});Cm(si);await si.thread.work.hello(),si.machina.count===1?console.log("\u2705 driver works"):console.error("\u274C FAIL driver call didn't work");async function Ok(){let[i]=await window.showOpenFilePicker(),e=await i.getFile(),t=Jl(si,e);await Em(e),l_(t,i.name)}async function Uk(){let i=["/assets/temp/gl.mp4"];for(let e of i){let t=Jl(si,"/assets/temp/gl.mp4");l_(t,e)}}async function l_(i,e){let t=document.createElement("div");Pk.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
- mediabunny/dist/modules/misc.js:
83
- mediabunny/dist/modules/custom-coder.js:
84
- mediabunny/dist/modules/codec.js:
85
- mediabunny/dist/modules/codec-data.js:
86
- mediabunny/dist/modules/isobmff/isobmff-misc.js:
87
- mediabunny/dist/modules/matroska/ebml.js:
88
- mediabunny/dist/modules/matroska/matroska-misc.js:
89
- mediabunny/dist/modules/mp3/mp3-misc.js:
90
- mediabunny/dist/modules/ogg/ogg-misc.js:
91
- mediabunny/dist/modules/ogg/ogg-reader.js:
92
- mediabunny/dist/modules/demuxer.js:
93
- mediabunny/dist/modules/packet.js:
94
- mediabunny/dist/modules/sample.js:
95
- mediabunny/dist/modules/media-sink.js:
96
- mediabunny/dist/modules/input-track.js:
97
- mediabunny/dist/modules/reader.js:
98
- mediabunny/dist/modules/wave/riff-reader.js:
99
- mediabunny/dist/modules/wave/wave-demuxer.js:
100
- mediabunny/dist/modules/source.js:
101
- mediabunny/dist/modules/isobmff/isobmff-reader.js:
102
- mediabunny/dist/modules/isobmff/isobmff-demuxer.js:
103
- mediabunny/dist/modules/matroska/matroska-demuxer.js:
104
- mediabunny/dist/modules/mp3/mp3-reader.js:
105
- mediabunny/dist/modules/mp3/mp3-demuxer.js:
106
- mediabunny/dist/modules/ogg/ogg-demuxer.js:
107
- mediabunny/dist/modules/input-format.js:
108
- mediabunny/dist/modules/input.js:
109
- mediabunny/dist/modules/index.js:
650
+ mediabunny/dist/modules/src/misc.js:
651
+ mediabunny/dist/modules/src/tags.js:
652
+ mediabunny/dist/modules/src/codec.js:
653
+ mediabunny/dist/modules/src/codec-data.js:
654
+ mediabunny/dist/modules/src/isobmff/isobmff-misc.js:
655
+ mediabunny/dist/modules/src/reader.js:
656
+ mediabunny/dist/modules/src/isobmff/isobmff-reader.js:
657
+ mediabunny/dist/modules/src/matroska/ebml.js:
658
+ mediabunny/dist/modules/src/matroska/matroska-misc.js:
659
+ mediabunny/dist/modules/shared/mp3-misc.js:
660
+ mediabunny/dist/modules/src/mp3/mp3-reader.js:
661
+ mediabunny/dist/modules/src/ogg/ogg-misc.js:
662
+ mediabunny/dist/modules/src/ogg/ogg-reader.js:
663
+ mediabunny/dist/modules/src/demuxer.js:
664
+ mediabunny/dist/modules/src/custom-coder.js:
665
+ mediabunny/dist/modules/src/packet.js:
666
+ mediabunny/dist/modules/src/sample.js:
667
+ mediabunny/dist/modules/src/media-sink.js:
668
+ mediabunny/dist/modules/src/input-track.js:
669
+ mediabunny/dist/modules/src/wave/wave-demuxer.js:
670
+ mediabunny/dist/modules/src/source.js:
671
+ mediabunny/dist/modules/src/isobmff/isobmff-demuxer.js:
672
+ mediabunny/dist/modules/src/matroska/matroska-demuxer.js:
673
+ mediabunny/dist/modules/src/mp3/mp3-demuxer.js:
674
+ mediabunny/dist/modules/src/ogg/ogg-demuxer.js:
675
+ mediabunny/dist/modules/src/adts/adts-reader.js:
676
+ mediabunny/dist/modules/src/adts/adts-demuxer.js:
677
+ mediabunny/dist/modules/src/input-format.js:
678
+ mediabunny/dist/modules/src/input.js:
679
+ mediabunny/dist/modules/src/index.js:
110
680
  (*!
111
681
  * Copyright (c) 2025-present, Vanilagy and contributors
112
682
  *